Failed to install wildgaussians with conda backend doe to cuda version mismatch

When I directly use the command nerfbaselines train --method wild-gaussians --data ./data/drone --backend conda to run wildgaussian, there will be a mismatch between the pytorch version and the cuda version, which cause the following error:
Processing ./submodules/simple-knn
Preparing metadata (setup.py) ... done
Obtaining file:///home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/src/wild-gaussians/submodules/diff-gaussian-rasterization
Preparing metadata (setup.py) ... done
Building wheels for collected packages: simple_knn
Building wheel for simple_knn (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [50 lines of output]
running bdist_wheel
running build
running build_ext
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/src/wild-gaussians/submodules/simple-knn/setup.py", line 21, in
setup(
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/init.py", line 104, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 184, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
dist.run_commands()
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command
super().run_command(command)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/wheel/_bdist_wheel.py", line 378, in run
self.run_command("build")
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command
super().run_command(command)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 132, in run
self.run_command(cmd_name)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command
super().run_command(command)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 91, in run
_build_ext.run(self)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run
self.build_extensions()
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/torch/utils/cpp_extension.py", line 499, in build_extensions
_check_cuda_version(compiler_name, compiler_version)
File "/home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/lib/python3.11/site-packages/torch/utils/cpp_extension.py", line 387, in _check_cuda_version
raise RuntimeError(CUDA_MISMATCH_MESSAGE.format(cuda_str_version, torch.version.cuda))
RuntimeError:
The detected CUDA version (12.6) mismatches the version that was used to compile
PyTorch (11.7). Please make sure to use the same CUDA versions.
  [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
Running setup.py clean for simple_knn
Failed to build simple_knn
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (simple_knn)
Traceback (most recent call last):
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/bin/nerfbaselines", line 8, in
sys.exit(main())
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/site-packages/click/core.py", line 1157, in call
return self.main(args, **kwargs)
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/cli/_common.py", line 499, in invoke
return super().invoke(ctx)
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, ctx.params)
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/site-packages/click/core.py", line 783, in invoke
return __callback(args, *kwargs)
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/cli/_common.py", line 440, in wrapped
raise e
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/cli/_common.py", line 433, in wrapped
return fn(args, **kwargs)
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/cli/_train.py", line 93, in train_command
method_cls = stack.enter_context(build_method_class(method_spec, backend_name))
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/contextlib.py", line 425, in enter_context
result = _cm_type.enter(cm)
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/contextlib.py", line 113, in enter
return next(self.gen)
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/_method_utils.py", line 87, in build_method_class
backend_impl.install()
File "/mnt/sdb2/user/code/nerfbaselines/nerfbaselines/backends/_conda.py", line 196, in install
subprocess.check_call(["bash", "-l", "-c", conda_get_install_script(self._spec, package_path=package_path)])
File "/mnt/sdb1/user/anaconda3/envs/nerfbaseline/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['bash', '-l', '-c', 'set -eo pipefail\n\n# Clear old environments\nwas_message=0\nif [ -d /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians ]; then\n    for hash in $(ls -1 /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians); do\n        if [ "$hash" != 96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1 ]; then\n            if [ "$was_message" -eq 0 ]; then\n                echo "Clearing old environments"\n                was_message=1\n            fi\n            echo "   Removing old environment $hash"\n            rm -rf /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians"/$hash"\n        fi\n    done\nfi\n\n# Create new environment\neval "$(conda shell.bash hook)"\nmkdir -p /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1\nif [ ! -e /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.ack.txt ]; then\nif [ -e /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/pid ] && [ ! -e /proc/$(cat /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/pid) ] && [ "$(cat /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/nodename)" = "$(hostname)" ]; then\n    echo "Removing stale lock file /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock (no process running)"\n    rm -rf /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock\nfi\nif ! mkdir /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock 2>/dev/null; then\n    # Wait for the other process to write PID\n    sleep 1\n    pid=$(cat /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/pid)\n    nodename=$(cat /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/nodename)\n    echo "Creating new is already running (lock: /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock,pid:$pid,nodename:$nodename)" >&2\n    echo "Waiting for the other process to finish" >&2\n    while [ -e /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock ] || [ -e /proc/$pid ]; do\n        sleep 1\n    done\n    if [ ! -e /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.ack.txt ]; then\n        echo "The other process failed to build the environment." >&2\n        exit 1\n    else\n        echo "The other process finished building the environment." >&2\n        exit 0\n    fi\nfi\necho $(hostname) > /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/nodename\necho $$ > /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock/pid\ntrap "rm -rf /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.lock" EXIT\necho "Creating new environment /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians"\n\nrm -rf /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians\nconda deactivate\nconda create --prefix /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians -y -c conda-forge --override-channels python=3.11\nconda activate /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians\necho -e 'channels:\n  - conda-forge\n' > /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.condarc\nconda install -y pip conda-build ffmpeg\npip install --upgrade pip setuptools\nmkdir -p /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/nb-sources\nmkdir -p /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/src\ncd /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/src\n\ngit clone https://github.com/jkulhanek/wild-gaussians.git\ncd wild-gaussians\ngit checkout 481e46b478fc259e991bf4873b139c0ad33613ec\nconda install -y --override-channels -c nvidia/label/cuda-11.8.0 cuda-toolkit\nif [ "$NERFBASELINES_DOCKER_BUILD" != "1" ]; then\nconda install -y gcc_linux-64=11 gxx_linux-64=11 make=4.3 cmake=3.28.3 -c conda-forge\nfi\npip install --upgrade pip\npip install 'numpy<2.0.0' -r requirements.txt\nLIBRARY_PATH="$CONDA_PREFIX/lib/stubs" pip install -e ./submodules/diff-gaussian-rasterization ./submodules/simple-knn\npip install -e .\npip install opencv-python-headless\n\nfunction nb-post-install () {\nif [ "$NERFBASELINES_DOCKER_BUILD" = "1" ]; then\n# Reduce size of the environment by removing unused files\nfind "$CONDA_PREFIX" -name '.a' -delete\nfind "$CONDA_PREFIX" -type d -name 'nsight' -exec rm -r {} +\n# Replace all libs under $CONDA_PREFIX/lib with symlinks to pkgs/cuda-toolkit/targets/x86_64-linux/lib\nfor lib in "$CONDA_PREFIX"/lib/.so; do \n    if [ ! -f "$lib" ] || [ -L "$lib" ]; then continue; fi;\n    lib="${lib%.so}.so";libname=$(basename "$lib");\n    tgt="$CONDA_PREFIX/pkgs/cuda-toolkit/targets/x86_64-linux/lib/$libname"\n    if [ -f "$tgt" ]; then echo "Deleting $lib"; rm "$lib"; for tgtlib in "$tgt"; do ln -s "$tgtlib" "$(dirname "$lib")"; done; fi;\ndone\nfi\n}\n\npip install 'Pillow>=8.2.0' 'click>=8.0.0' 'gdown>=4.7.1' 'importlib-metadata>=6.0.0' 'matplotlib>=3.4.2' 'mediapy>=1.1.2' 'numpy<2.0.0,>=1.19.5' 'opencv-python>=4.6.0' 'requests>=2.25.1' 'scipy' 'splines>=0.3.1' 'tensorboard>=2.5.0' 'tqdm>=4.61.1' 'typing-extensions>=4.4.0' 'viser<0.2.0' 'wandb>=0.13.3'\n\n# Prepare default nerfbaselines\nsite_packages="$(python -c 'import site; print(site.getsitepackages()[0])')"\nif [[ "$site_packages" != "$CONDA_PREFIX/" ]]; then\n    echo "ERROR: site-packages is not in the conda environment"; exit 1;\nfi\nln -s /mnt/sdb2/user/code/nerfbaselines/nerfbaselines "$site_packages"\n\n# Add nerfbaselines to the path\nif ! nerfbaselines >/dev/null 2>&1; then\n    echo '#!/usr/bin/env python3\nfrom nerfbaselines.main import main; main()'>"$CONDA_PREFIX/bin/nerfbaselines"\n    chmod +x "$CONDA_PREFIX/bin/nerfbaselines"\nfi\n\necho '#!/bin/bash' > /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.activate.sh\necho 'eval "$(conda shell.bash hook)"' >> /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.activate.sh\necho 'conda activate /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians;export NERFBASELINES_BACKEND=python;export NERFBASELINES_ALLOWED_METHODS=""' >> /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.activate.sh\necho 'exec "$@"' >> /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.activate.sh\nchmod +x /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians/.activate.sh\n# If function nb-post-install is declared, run it\nif declare -f nb-post-install >/dev/null; then\n    nb-post-install || exit 1\nfi\ntouch /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.ack.txt\necho "0" > /home/user/.cache/nerfbaselines/conda-envs/wild-gaussians/96f523e19958a2942a6bf095d3a3cb45dd3e80e1e01aa0c32c7b94ef2f2790d1/wild-gaussians.ack.txt\nfi\n']' returned non-zero exit status 1.

Hi, thanks for the traceback!
I've done some fixes, can you please try with the current main?
pip install git+https://github.com/nerfbaselines/nerfbaselines.git

@jkulhanek Hi, I install the lastest nerfbaseline following pip install git+https://github.com/nerfbaselines/nerfbaselines.git. But it meets the same problem. It is weird.

Can you send me your os version and environment variables? env | grep cuda?

@jkulhanek Here is my environment variables:
LIBRARY_PATH=:/usr/local/cuda-11.8/lib64
LD_LIBRARY_PATH=/usr/local/opencv-3.4.16/lib:/usr/local/cuda-11.8/lib64/
PATH=/home/user/anaconda3/bin:/home/user/anaconda3/condabin:/usr/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda-11.8/bin

I run it on ubuntu 20.04 and cuda 11.8.

I see, can you please send the full output of the command?

@jkulhanek It is full output of the command. And I can sucessfully run wild-gaussian following the origin reposity；
git clone git@github.com:jkulhanek/wild-gaussians.git
cd wild-gaussians

conda create -y -n wg python=3.11
conda activate wg
conda install -y --override-channels -c nvidia/label/cuda-11.8.0 cuda-toolkit
conda env config vars set NERFBASELINES_BACKEND=python
pip install --upgrade pip
pip install -r requirements.txt
pip install nerfbaselines>=1.2.0
pip install -e ./submodules/diff-gaussian-rasterization ./submodules/simple-knn
pip install -e .

So I think there is no problem with my cuda environment settings. But when I use the nerfbaseline command to create wild-gaussian, the above error occurs, which is strange.

I don’t think the command you’ve sent is the full output of ‘nerfbaselines train’. At the begining it should say something about a new emvironment being created and afterwards you should see it installing torch and cuda toolkit. This would be helpful for me because perhaps it tries to install a wrong version of cuda or torch for some reason. Perhaps you can capture the output (stdout, stderr) to a file and send it?  Thank you very much for your kind help.

@jkulhanek Sorry, I mistakenly thought you meant the full output of env | grep. This is the full output text of the nerfbaselines train --method wild-gaussians --data ./data/drone --backend conda command.
1.txt

@Sugar55888 thank you! by inspecting your output I saw cuda 12.6 was indeed installed. Can you try with the newest main version. I believe it will fix the issue now. If not, can you please post the output again. Sorry to bother you, but in my case, the installation worked fine even before so I cannot reproduce the issue locally.

@jkulhanek Thank you! I have scuccessfully run the wild-gaussian using nerfbaseline now.

Great! glad it helped. The fixed install script will be part of the next nerfbaselines release in a few days.


Very slow network performance with FastDP+Encryption on linux kernel 4.12

Hi,
I have a huge issue with the following setup:

weave-net 2.0.1
kubernetes 1.7
docker version 17.05-ce
CoreOS with kernel 4.12.2
fastdp enabled
encryption enabled

What you expected to happen?
I expect a network performance with a bandwidth of >60% of the original bandwidth. Our servers connected with 1Gbit, so I would say with encryption something about 600Mbit would be great.
I tested the whole setup with a older CoreOS version with kernel 4.11 and the results are great:
Hardware machines without virtualization: ~900Mbit
Virtualized with XEN ~850Mbit
Virtualized with Xen with AES-NI disabled: ~250Mbit (really great without AES-NI I think)
What changed? Linux kernel from 4.12 to 4.11. Docker from 17.05-ce to 1.12.6.
All of this is faster than the setup with linux kernel 4.12. (results in what happend)
Using kernel 4.12 + WEAVE_NO_FASTDP=true + encryption is okay. The iperf bandwidth results are also about 800 to 900Mbit BUT the cpu load is about 100 to 200 percent (weave process).
What happened?
I've got a bandwidth (tested with iperf) of 3 to 55Mbit using coreos with linux kernel 4.12-2
Results of different setups:
55 Mbit: NOT virtualized machines (notebook)
25 Mbit: Virtualized machines (Virtualbox) on a notebook
6 Mbit: Virtualized machines (XenServer 7.2/7.0).
Disabling the tso (ethtool -K ...) is increasing the performance from 6 Mbit to 100Mbit but the cpu load of the ksoftirqd process is increasing, too (from 5 to 100 percent).
How to reproduce it?
Use CoreOS with the linux kernel 4.12.2 (today: beta and alpha releases (alpha got docker 17.05-ce))
Install kubernetes
Install weave-net with ./kubectl create -f ....
Install kube dns (kubernetes dns addon)
Run pods with ubuntu (I started a daemonset to run this pod on each machine)
exec in the pods container (ubuntu) and install and run iperf
Anything else we need to know?
I used the same configuration files for the different setups.
I found a commit for the kernel 4.12 which changed / added something to the xfrm hardware offloading. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d77e38e612a017480157fe6d2c1422f42cb5b7e3
It would be fine if anybode can reproduce this issue.
Some information missing? Please let me know. But you have to know that I reinstalled the cluster to test with the older CoreOS version so the log files are deleted. So it would be fine if anybody else can reproduce it.

@nesc58 Thanks for the report.
I'm quite surprised to see that with WEAVE_NO_FASTDP=true you achieved such a high performance. For comparison, please see the benchmarks we conducted https://www.weave.works/blog/weave-net-performance-fast-datapath/ .
How do you ensure that iperf client and server pods are not scheduled on the same machine?
Also, could you run the same vanilla weave benchmarks as we did in your old and new setup?

Hi @brb,
I have deployed a DaemonSet, so the ubuntu pod I used was scheduled to all nodes.
kubectl get pods -o wide shows the ip addresses of the pods and host machines or the configured node name.
The DaemonSet includes the following:
One container with the latest ubuntu image: Ubuntu
Configured containerporrs: The default iperf ports, depends on iperf version. I used iperf instead of iperf3
That's it.
Exec in each pod and install iperf, run one as server and connected the others via pod ips displayed by the kubectl command
I cannot test it the next days because I am testing the etcd snapshot and restore function and so on. So I can only test with the current setup which is working.
In the next time I don't have access to an other infrastructure to test it again.
Hope the error is reproducable.

The problem still existing with Kernel 4.13.3-coreos-r1.
The problem is: CoreOS updated the stable version to Kernel 4.12. Now I am unable to use WeaveWorks with encryption + fastdp with CoreOS. Stable: Kernel 4.12 with poor performance and Kernel 4.13, too.

I can reproduce but in a a different context.. -- not using weave or docker, but IPsec mGRE tunnels.
w/ Ubuntu any kernel beyond 4.11 is performing very very bad. when downgrades to 4.10 the regression is over, performance is good.
tested using AWS and GCP instances. didnt test on bare metal.
you may want to add more data on this bug I filed couple days ago.
https://bugzilla.kernel.org/show_bug.cgi?id=197513

Hi,
I am glad to relay there is an available patch for kernel >=4.12 that could fix this problem.
more info => https://bugzilla.kernel.org/show_bug.cgi?id=197513

@zenvdeluca Thanks for investigating this. Well done for identifying what looks like the root cause! Let's hope that patch lands soon and gets ported to all the affected kernel versions.

We've just been hit by this, and gone through the whole investigation loop. This appears to work around the problem, at the cost of increased cpu usage: ethtool -K weave tso off

@zenvdeluca any news on getting that kernel patch merged?

Should be in kernel v4.14-rc8 (container linux >= 1590.0.0) https://github.com/torvalds/linux/commit/73b9fc49b4c0116a04eda3979f64ed9b540b153c

We've not had further reports of this, so it's a fair guess that the kernel fix has propagated sufficiently far and is doing its job. -> closing.


Playbook for Dashboard Deployment

See #245 and #110

Fetch the current environments from Poseidon and writes the environments.json file

May be implemented via an Ansible playbook

Generates and deploys the current dashboard

Grizzly may be useful

From the Issue description, I assume that it is out of scope of this issue to have an influx and Grafana (Terraform) provisioning?!

Mh. Technically, I would say so. However, we probably need that in order to tackle this issue. Let's see whether I can start with a template...

I started with the required Terraform files and some basic Ansible script that installs the required dependencies. A PR is in our GitLab next to yours 🙂

Grizzly might be a good solution and I like to have some wraper for the API. What if we try to base the Ansible playbook on https://github.com/ansible-collections/community.grafana? Some parts might work pretty well (such as synchronizing dashboards) and others (such as defining the datasources) might be a bit more difficult. One advantage I see is the better integration with Ansible instead of "just" executing a CLI tool. However, for some use cases it doesn't work nicely with Ansible and using a CLI tool is required (such as I did for Influx).

Yeah, I like the use of the Ansible Collection! It is easy to use and has more documentation that Grizzly.
Why do you prefer the community version? I have a slight preference to the official collection as we can then structure the definitions in template files (as I got them now) and not directly in the Ansible rules..

Good Point! With the community version it seemed more complicated on the first look. On the second look, this complexity is introduced by parameters such as the authentication which is required for our use case :ok_hand:
I'm not completely finished with my part but have a general understanding. If you want, we can finish it tomorrow together?!


fix: now handles circular references better

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Rest Client needs to be updated for how it reads a Response Stream

The current implementation in the Rest layer is expecting Response->BodyStream->Read(buffer, size) to fill the buffer up to size. And assumes that using a buffer as big as Response->BodyStream->Length() will require only one read() to have the entire body content in the buffer.
However the assumption is wrong. Since the BodyBuffer could be performing I/O, it could return less bytes than requested.
The implementation needs to loop until the Read operation returns 0.
Only the MemoryStramBody working on contiguous memory could warranty that one Read() operation could return the entire content.
So, the code that is implemented in Rest Client needs to be updated from
        auto bodyStream = http_response.GetBodyStream();
        std::vector<uint8_t> bodyContent(static_cast<std::size_t>(bodyStream->Length()));
        bodyStream->Read(&bodyContent[0], bodyContent.size());

to something like:
        auto bodyStream = http_response.GetBodyStream();
        auto bodyContent = std::vector<uint8_t>();
        // Read 1k at at time or maybe 64k.  This can be changed
        {
          constexpr uint64_t fixedSize = 1024;
          uint8_t tempBuffer[fixedSize];
          auto readBytes = uint64_t();
          do
          {
            readBytes = bodyStream->Read(tempBuffer, fixedSize);
            bodyContent.insert(bodyContent.end(), tempBuffer, tempBuffer + readBytes);
          } while (readBytes != 0);
        }

or
  std::vector<uint8_t> ReadBodyStream(std::unique_ptr<Azure::Core::Http::BodyStream>& stream)
  {
    auto s = stream->Length();
    std::vector<uint8_t> body(s, '\x00');
    // Read 64k at at time 8 388 608
    {
      constexpr uint64_t fixedSize = 1024 * 64;
      uint8_t tempBuffer[fixedSize];
      auto readBytes = uint64_t();
      auto offset = uint64_t();
      do
      {
        readBytes = stream->Read(tempBuffer, fixedSize);
        for (uint64_t index = 0; index != readBytes; index++)
        {
          body[offset + index] = tempBuffer[index];
        }
        offset += readBytes;
      } while (readBytes != 0);
    }

    return body;
  }

This issue is making storage CI tests:
2: [  FAILED  ] 5 tests, listed below:
2: [  FAILED  ] BlobServiceClientTest.ListContainers
2: [  FAILED  ] BlobContainerClientTest.ListBlobsFlat
2: [  FAILED  ] BlobContainerClientTest.ListBlobsHierarchy
2: [  FAILED  ] BlockBlobClientTest.StageBlock
2: [  FAILED  ] PageBlobClientTest.UploadClear
Because the Stream is not properly read to a buffer.
Functions to be fixed:
static ListContainersSegment ListBlobContainersParseResponse(
          Azure::Core::Http::Response& http_response)

static UserDelegationKey GetUserDelegationKeyParseResponse(
          Azure::Core::Http::Response& http_response)

static BlobsFlatSegment ListBlobsParseResponse(
         Azure::Core::Http::Response& http_response)

static BlobBlockListInfo GetBlockListParseResponse(
        Azure::Core::Http::Response& http_response)

static PageRangesInfoInternal GetPageRangesParseResponse(
          Azure::Core::Http::Response& http_response)

@vhvb1989 A question suddenly came to my mind, what CurlBodyStream::Length() will return if it's a chunked HTTP response?
We may need to make clear the semantics of BodyStream::Length and BodyStream::Read.

@JinmingHu-MSFT CurlBodyStream would return 0 for length when size is unknown.
BodyStream uses uint64_t for the length, so the option of returning -1 is not really an option.
This was one of the reasons I changed how the bodyStream is used on the protocol layer.  We can't always know the size of the body content to just make one read from the stream as:
auto size = bodyStream.Length();
bodyStream.Read(buffer, size);

Because we might be dealing with a chunked or unknown body content size, we need to just keep pulling data from stream until it returns 0. At that point, only at that point we would know the size of the body content length.
@JeffreyRichter  @RickWinter  I would like to talk about this in out meeting.  I wonder if we can add IsKnownSize() to BodyStream contract?

CurlBodyStream would return 0 for length when size is unknown.
BodyStream uses uint64_t for the length, so the option of returning -1 is not really an option.

What if the body size is actually 0? How can our users differentiate these two situations?

CurlBodyStream would return 0 for length when size is unknown.
BodyStream uses uint64_t for the length, so the option of returning -1 is not really an option.

What if the body size is actually 0? How can our users differentiate these two situations?

yeah, I've talked about this with Jeff. We will change utint64 to int64 and return -1 for unknown size.

Storage code all updated.


Docs look broken on mobile resolutions

@jasonmelgoza could you perhaps take a look?

Will do. What causes this to happen? Small browser window?

Yeah, we had some responsive design capabilities before, so you could scale down your window, but now it just all overlaps :(

Cool. I'll take a look.

@gampleman and @jasonmelgoza is this still an issue that needs to be addressed? or can we close this issue?

@gampleman @blanquer I'll take a look.

This looks still valid.


Custom Font Rendering not working everytime

Bug reports:
Hi,
I have some issues with rendering canvas with custom fonts and custom icon font. most of the time it doesn't render correctly and the font is not aligned properly. It only works very randomly. I found out this happens in the step the canvas is created, the iframe which is created looks just fine.
How it should look like:

How it randomly looks:

most of the time it works correctly the first time i call html2canvas, the second or third time it is distorted. Maybe the fourth time works again. it really happens very randomly.
i already tried to play around with the Html2CanvasOptions, setting my own canvas shows me the same results, setting 'letterRendering: true' also doesn't work...
has anybody already encountered the same issue or has a solution for me?
Specifications:

html2canvas version tested with: v1.0.0-alpha.12
Browser & version: Safari, Chrome
Operating system: Mojave, High Sierra

It doesn't actually take a screen shot of the screen that you are viewing.  It recreates the DOM elements as it thinks it appears.


Planning for Version 1.x

Raysect's major version is currently sitting on V0.x due to the core API and architecture remaining relatively stable. The current architecture has worked well, however we have identified some areas where the core architecture has limited our ability to cleanly supply features our users desire. For example, access to additional location metadata specific to primitives. To provide access to this data requires a significant change to the optical material surface evaluation methods and modification of all materials. In addition we now wish to prepare the core to support polarisation and scattering.
This issue will be used to collect a list of proposed API changes and additional core features for raysect's V1 architecture. Once the list is assembled, separate V1 issues will be created to address the implementation of specific changes.

Proposed raysect.optical changes:

Pass Intersection object to all relevant material evaluation methods rather than unpacking.

This will allow future expansion of the attributes passed to the materials without changing the material API. It would also permit primitives to supply their own sub-classes of Intersection that include additional meta data. For example meshes can additionally return triangle ID and barycentric coordinates for mesh intersection. This has been a commonly requested feature.
Adding UV texture coordinates (texture support) will then require no API changes.

Rename Spectrum to UnpolarisedSpectrum, add a new based class Spectrum and prepare for the addition of PolarisedSpectrum. Update Ray to include a polarised toggle.

The Ray will internally hold an integrator attribute that is populated with an unpolarised or polarised integrator depending on configuration. Depending on the integrator used, either an UnpolarisedSpectrum or a PolarisedSpectrum object will be returned.
If this approach proves awkward to handle via cython (due to type inference), the Ray will be split into unpolarised.Ray and polarised.Ray with corresponding Spectrum objects. This may be cleaner but will require user code refactoring.

Rework all materials to provide calculation paths for polarised, unpolarised and volume scattering.

The current material evaluation methods will be renamed to evaluate_surface_unpolarised and evaluate_volume_unpolarised. Methods evaluate_surface_polarised and evaluate_volume_polarised will be added to support polarised rays. Methods evaluate_scatter_unpolarised and evaluate_scatter_polarised will be added to support physics than can be modelled as volume scattering effects (e.g. mie scattering, gradients of refractive index and gravitational lensing). Volume scatting will allow the ray to be refired at any point along the original ray path and permit the spectrum to be altered.

Created a new v1/development branch: 8be63a5e4e06e38850b739872187359ed16f530c.
All feature/bug fix branches targetting v1 should be prefixed with v1/ e.g v1/feature/polarisation.

It has been decided that v1 will only support polarised light and reuse the existing class names. This will simplify the package for both users and developers.


recommend

recommend to support relative path of the image to render:

Relative path is already supported (default, the current directory is root).
Did you run it on Mac? and did you start appliction from .app file?
It is a story on an unix-like system instead of Mac, however if we start application by clicking the executable file. the current directory will be the home directory (~/).
I provide MarkdownScrollViewer.AssetPathRoot.
You can change root by setting this property to the directory path.

Relative path is already supported (default, the current directory is root).
Did you run it on Mac? and did you start appliction from .app file?
It is a story on an unix-like system instead of Mac, however if we start application by clicking the executable file. the current directory will be the home directory (~/).
I provide MarkdownScrollViewer.AssetPathRoot.
You can change root by setting this property to the directory path.

great!

Besides, I want to complain about the render of the markdownpreviewer control. when the textbox's content changes, the markdownpreviewer render again and scroll to the top of content, could we only refresh content with no scroll? Or if we could bind the relative location between the input textbox and markdownPreview?

and why it auto wrap?

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

and why it auto wrap?

MarkdownScrollViewer uses FormattedText to check all text elements whether wrapping is required.
It's looks like character-based wrapping like Chinese and Japanese is not considered in Avalonia, which results in line breaks at unexpected positions.

For now, I'm not sure if I should ignore the behavior of Avalonia and implement wrap-processing myself.

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

Ok! Thanks

and why it auto wrap?

MarkdownScrollViewer uses FormattedText to check all text elements whether wrapping is required.
It's looks like character-based wrapping like Chinese and Japanese is not considered in Avalonia, which results in line breaks at unexpected positions.

For now, I'm not sure if I should ignore the behavior of Avalonia and implement wrap-processing myself.

Thanks, anyway

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

Ok! Thanks

In v0.10.0-a9 and v0.9.0-a9, I add new property 'SaveScrollValueWhenContentUpdated' and ScrollValue to MarkdownScrollViewer
The first property save scroll value even if scroll changed.
The second property change scroll value. If you reflesh content, please set expected initial scroll value to it.
View:
<md:MarkdownScrollViewer
    SaveScrollValueWhenContentUpdated="True"
    ScrollValue="{Binding ScrollValueInitial}"
    />

ViewModel (ReactiveUI):
public Vector ScrollValueInitial => new Vector(0, 0);
...
public void LoadNewMarkdown(){
    // Load some markdown content...
    ...
    // Reset Scroll Value
    this.RaisePropertyChanged(nameof(ScrollValueInitial));
}

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

Ok! Thanks

In v0.10.0-a9 and v0.9.0-a9, I add new property 'SaveScrollValueWhenContentUpdated' and ScrollValue to MarkdownScrollViewer
The first property save scroll value even if scroll changed.
The second property change scroll value. If you reflesh content, please set expected initial scroll value to it.
View:
<md:MarkdownScrollViewer
    SaveScrollValueWhenContentUpdated="True"
    ScrollValue="{Binding ScrollValueInitial}"
    />

ViewModel (ReactiveUI):
public Vector ScrollValueInitial => new Vector(0, 0);
...
public void LoadNewMarkdown(){
    // Load some markdown content...
    ...
    // Reset Scroll Value
    this.RaisePropertyChanged(nameof(ScrollValueInitial));
}

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

Ok! Thanks

In v0.10.0-a9 and v0.9.0-a9, I add new property 'SaveScrollValueWhenContentUpdated' and ScrollValue to MarkdownScrollViewer
The first property save scroll value even if scroll changed.
The second property change scroll value. If you reflesh content, please set expected initial scroll value to it.
View:
<md:MarkdownScrollViewer
    SaveScrollValueWhenContentUpdated="True"
    ScrollValue="{Binding ScrollValueInitial}"
    />

ViewModel (ReactiveUI):
public Vector ScrollValueInitial => new Vector(0, 0);
...
public void LoadNewMarkdown(){
    // Load some markdown content...
    ...
    // Reset Scroll Value
    this.RaisePropertyChanged(nameof(ScrollValueInitial));
}

Hi, there has another quest:

could we only refresh content with no scroll?

I'm checking the API reference,
I may be able to add properties for providing scroll saving property and scroll value property.

Or if we could bind the relative location between the input textbox and markdownPreview?

There is no method. TextBox is not provide property to get scroll value.
For current Avalonia version, I can only support the first question.

Ok! Thanks

In v0.10.0-a9 and v0.9.0-a9, I add new property 'SaveScrollValueWhenContentUpdated' and ScrollValue to MarkdownScrollViewer
The first property save scroll value even if scroll changed.
The second property change scroll value. If you reflesh content, please set expected initial scroll value to it.
View:
<md:MarkdownScrollViewer
    SaveScrollValueWhenContentUpdated="True"
    ScrollValue="{Binding ScrollValueInitial}"
    />

ViewModel (ReactiveUI):
public Vector ScrollValueInitial => new Vector(0, 0);
...
public void LoadNewMarkdown(){
    // Load some markdown content...
    ...
    // Reset Scroll Value
    this.RaisePropertyChanged(nameof(ScrollValueInitial));
}

Hi, there has another quest:

I search on the Internet about markdown code rules, it not support this character, but I recommend that two and more blank lines, We could translate to N-1 blank lines (N is blank lines, one for break a paragraph, N -1 for blank lines).

I search on the Internet about markdown code rules, it not support this character, but I recommend that two and more blank lines, We could translate to N-1 blank lines (N is blank lines, one for break a paragraph, N -1 for blank lines).

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and  Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and  Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

If we introduce html style tag like '' or plain text style tag '\n', it could pollute the markdown text.

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

If we introduce html style tag like '' or plain text style tag '\n', it could pollute the markdown text.

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

In my opinions, one blank line is enough to tell a paragraph. If we could support it, it would be more convenient.

Hm... I think enhance syntax have to be more clear.
Some people insert empty line to change section. and may not mind the number of empty line.
For example, Insert 1 blank line in chapter and Insert 2 blank lines before header.
## Chapter 1
some text
some text

some text
some text

## Chapter2
some text
some text

It should be unified with the line breaks in the table cells that have already been implemented, but I think it is better to specify the line breaks with \n or
.

In my opinions, one blank line is enough to tell a paragraph. If we could support it, it would be more convenient.

About
, It is implemented on Github, and We can avoid to treat
 as line break using backslash.
In addition, many user realise it
If I implement to leave a blank line as a vertical align space, It difficult to provide a workaround for those who don't want it and want to leave a blank line for markdown readability.

About
, It is implemented on Github, and We can avoid to treat
 as line break using backslash.
In addition, many user realise it
If I implement to leave a blank line as a vertical align space, It difficult to provide a workaround for those who don't want it and want to leave a blank line for markdown readability.

About
, It is implemented on Github, and We can avoid to treat  as line break using backslash.
In addition, many user realise it
If I implement to leave a blank line as a vertical align space, It difficult to provide a workaround for those who don't want it and want to leave a blank line for markdown readability.

maybe, you are right. but i still think it will pollute the style of markdown if an html style tag introduced in.

About
, It is implemented on Github, and We can avoid to treat  as line break using backslash.
In addition, many user realise it
If I implement to leave a blank line as a vertical align space, It difficult to provide a workaround for those who don't want it and want to leave a blank line for markdown readability.

maybe, you are right. but i still think it will pollute the style of markdown if an html style tag introduced in.

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

It's nice to have so much thought. In my opinion, I may not need these styles for the time being. In many web versions of markdown parsing tools, they often provide additional buttons to achieve alignment, merge cell operations, etc., rather than relying on parsing syntax.

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

It's nice to have so much thought. In my opinion, I may not need these styles for the time being. In many web versions of markdown parsing tools, they often provide additional buttons to achieve alignment, merge cell operations, etc., rather than relying on parsing syntax.

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not stan, dard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

So, How to add more blank lines to markdownScrollViewer?

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not stan, dard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

So, How to add more blank lines to markdownScrollViewer?

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

I have an option to support more blank lines with a property, for example it is defalt set "false" to behave not to add blank lines and "true" to behave to add blank lines.

Probably, the discussion will not solve it, so I think that there is only choice to provide an option; not reduce space duplication and line break duplication.
By the way, Markdown.Avalonia provides some extension syntaxes, which are not standard Markdown.
(Partial extensions explain on document. and you can look all preview in README.MD)
Do you have any thoughts about them?

I have an option to support more blank lines with a property, for example it is defalt set "false" to behave not to add blank lines and "true" to behave to add blank lines.

I'm not going to add any options for parsing to the MarkdownScrollViewer. It accepts an another markdown parse engine which may be not support that option.
I'm going to make new a markdown parse engine FlexibleMarkdown.
FlexibleMarkdown has switching options for linebreak and other extensions(all options default is false).

I'm not going to add any options for parsing to the MarkdownScrollViewer. It accepts an another markdown parse engine which may be not support that option.
I'm going to make new a markdown parse engine FlexibleMarkdown.
FlexibleMarkdown has switching options for linebreak and other extensions(all options default is false).

I'm not going to add any options for parsing to the MarkdownScrollViewer. It accepts an another markdown parse engine which may be not support that option.
I'm going to make new a markdown parse engine FlexibleMarkdown.
FlexibleMarkdown has switching options for linebreak and other extensions(all options default is false).

Looking forward to your new pushes!

I'm not going to add any options for parsing to the MarkdownScrollViewer. It accepts an another markdown parse engine which may be not support that option.
I'm going to make new a markdown parse engine FlexibleMarkdown.
FlexibleMarkdown has switching options for linebreak and other extensions(all options default is false).

Looking forward to your new pushes!


Improve recommendation for AD join user account

Discourage use of Administrator.  Give information about explicit
permissions needed to be set for AD join user account.

@sumit-bose could I ask if you agree with the wording here for the AD integration system role? This originates from https://github.com/linux-system-roles/ad_integration/issues/22

@sumit-bose could I ask if you agree with the wording here for the AD integration system role? This originates from #22

Hi,
yes, yes I agree with the wording and with recommending a dedicated user instead of the Administrator user.
bye,
Sumit


Clickable banner

testing

 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.Rebecca Borison seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@borisonr I'm going to close this to keep the PR queue small 😛

Oh lol sounds good, I forgot about this


Add Snackbar for Invalid Links.

Related to #806

/cc @samitron7

@googlebot I consent.

One note: with the dark theme that we have in the editor, I didn't even notice the Snackbar message at all until I started looking for it specifically since I knew it had to come with the PR.
UX question: Could the Snackbar message perhaps be closer to the link or be with a different color to stand out from the dark theme?
The location of the Snackbar is a bit risky since it's on top of Media (at least on my screen) and the images below that could disguise it well -- that's not in our control what kind of images the user has.
Not sure the current messaging is accessible in terms of being visually well noticeable especially while the focus of the user is on the link area of the editor (the opposite side). Thoughts?

cc @pbakaus @samitron7

@obetomuniz The PHP tests seem to need an update as well. Can do that in a bit.


Error building manually with swift build -c release -Xswiftc -static-stdlib

Compile Swift Module 'Playground' (1 sources)
/Users/mihaicris/cloned/Playground/Sources/main.swift:36:9: error: use of unresolved identifier 'autoRun'
        autoRun = options.autoRun
        ^~~~~~~
Darwin.au_open:1:13: note: did you mean 'au_open'?
public func au_open() -> Int32
            ^
error: terminated(1): /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-build-tool -f /Users/mihaicris/cloned/Playground/.build/release.yaml main output:

Needed to update Package.swift to get the latest version of all dependencies. Fixed now on master 🙂


Increment required codeception version

I tested phantoman with codeception 2.2.0-rc2 and it worked for me

Hi there @priidikvaikla. I had to use a slightly different requirement indicator so that it supports 2.X version instead of everything greater than 2.1 which would also include 3.0 in the future. This should all be handled now by PR #45

Thanks! @grantlucas


[AutoPR monitor/resource-manager] [DO NOT MERGE, until feb 20] Adding 2018-01-01 version for metrics API

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2435

@AutorestCI install

Installation instruction
Package azure-mgmt-monitor
You can install the package azure-mgmt-monitor of this PR using the following command:
pip install "git+https://github.com/Azure/azure-sdk-for-python@restapi_auto_2435#egg=azure-mgmt-monitor&subdirectory=azure-mgmt-monitor"
You can build a wheel to distribute for test using the following command:
pip wheel --no-deps "git+https://github.com/Azure/azure-sdk-for-python@restapi_auto_2435#egg=azure-mgmt-monitor&subdirectory=azure-mgmt-monitor"
If you have a local clone of this repository, you can also do:

git checkout restapi_auto_2435
pip install -e ./azure-mgmt-monitor

Or build a wheel file to distribute for testing:

git checkout restapi_auto_2435
pip wheel --no-deps ./azure-mgmt-monitor


File data/locale/en/LC_MESSAGES/FFGo.mo missing, ffgo does not start up.

When I run ffgo from this git-repository, I get an error about some missing translation:
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/ffgo/misc.py", line 244, in __init__
    self.translator = gettext.translation(
  File "/usr/lib/python3.9/gettext.py", line 592, in translation
    raise FileNotFoundError(ENOENT,
FileNotFoundError: [Errno 2] No translation file found for domain: 'FFGo'

Error: unable to initialize the translation system. Your installation is
missing the file '/usr/lib/python3.9/site-
packages/ffgo/data/locale/en/LC_MESSAGES/FFGo.mo'. If you simply cloned or
downloaded FFGo's Git repository, it is quite normal that .mo files are
missing (they must be generated from their .po sources). Please refer to
FFGo's installation guide: docs/INSTALL/INSTALL_en. It has specific
instructions that must be followed for a successful installation from the Git
repository.

My locale is:
locale:
LANG=C
LC_CTYPE=en_US.UTF8
LC_NUMERIC=C
LC_TIME=C
LC_COLLATE=C
LC_MONETARY=C
LC_MESSAGES=C
LC_PAPER=de_DE.UTF8
LC_NAME=C
LC_ADDRESS=C
LC_TELEPHONE=C
LC_MEASUREMENT=C
LC_IDENTIFICATION=C
LC_ALL=

Running the latest release, version 1.12.7 from here, does not produce the error but works.
I use the Arch Linux package from the AUR.

Hello,
This is quite normal and explained in the error message you pasted. The .mo files are generated files, they just don't belong to a source code repository. As the FFGo error message told you, you should read docs/INSTALL/INSTALL_en, in particular section INSTALLATION FROM THE GIT REPOSITORY. This will give you simple steps to generate the .mo files and start FFGo.
Regards


Event url changed after editing

Just earlier I edited our event at https://opencollective.com/opensourcedesign/events/opensourcedesign-summit-371ev (by manually editing, see https://github.com/opencollective/opencollective/issues/480)
Since then, the strange -371ev suffix is in the URL and doesn’t seem to be possible to remove. Our current links are broken and the event is this weekend, so it would be great if that can be changed. :)
@asood123 @piamancini

we'll look into it now!

referenced here: https://github.com/opencollective/opencollective/issues/471

Fixed. Sorry about that - we moved to a new url scheme for events in our upgrade last week and a few of the active events needed to be changed to be backwards compatible. Original link should work now.

Great stuff, thank you so much! :) Just in time for the last announcement I needed to send out to attendees.


Spawning containers in a defined network like 'docker run --net=my_network

Hi testcontainers coders,
thanks @rnorth for the hint to add this issue in the correct space.
I'm running testcontainers to spawn Docker containers for unit testing. The Jenkins server which executes the tests is running in a Docker container as well. The Jenkins Container is spawned in a defined Docker network with the option "docker run --net".
The problem is, that code which runs in the Jenkins container, like JUnit tests, which are executed with "mvn test" can not access the MySql testcontainer, which is spawned in the default network.
Is there a way to spawn a testcontainer from java in a non default network?
Best regards and thanks
Chris

Hi Chris
Thanks for raising this :)
The ability to specify a network is something I recently added to the v1.1 branch, in preparation for release of that. It's mainly there to aid docker-compose v2 support, but I think ought to work for your purposes as well. It's the new withNetworkMode(String) method on GenericContainer.
Would you mind giving the v1.1 branch a try and report back if it doesn't do what you need it to? As it's pre-release, you can obtain the binary libs through jitpack, as described here
Thanks
Richard

Added some JUnit tests to illustrate this - you'll need to use the correct network name instead, obviously!
https://github.com/testcontainers/testcontainers-java/blob/1.1/core/src/test/java/org/testcontainers/junit/DockerNetworkModeTest.java

Hi Richard,
thanks for your support. I will give this a try as soon as possible.
Best regards
Chris

Hi Richard,
finally finished testing this on our integration server.
<dependency>
      <groupId>com.github.testcontainers</groupId>
      <artifactId>testcontainers-java</artifactId>
      <version>68f6488</version>
    </dependency>

It works now!
For reasons I still investigate I can only access the container via its Container IP Address
String containerIpAddress = container.getContainerInfo()
                                .getNetworkSettings()
                                .getNetworks()
                                .get(DOCKER_NETWORK)
                                .getIpAddress();

And the exposed port 3306
This why I switched from the MySQLContainer to the GenericContainer with my own WaitStrategy.
But the testcontainers new feature "withNetworkMode" is working as expected.
Thanks for your support!
Best regards
Chris

Hi Chris
Thanks for the update - glad to hear that it's working for you. Please do
let me know if you come up with ideas for implementing the getter for
container IP address in this situation! It seems it could be a difficult
thing to bring into the library itself, but perhaps there's an elegant
solution!
Thanks
Richard
On Fri, 8 Jul 2016 at 14:23, sourcecase<EMAIL_ADDRESS>wrote:

Hi Richard,
finally finished testing this on our integration server.

com.github.testcontainers
testcontainers-java
68f6488

It works now!
For reasons I still investigate I can only access the container via its
Container IP Address
String containerIpAddress = container.getContainerInfo()
.getNetworkSettings()
.getNetworks()
.get(DOCKER_NETWORK)
.getIpAddress();
And the exposed port 3306
This why I switched from the MySQLContainer to the GenericContainer with
my own WaitStrategy.
But the testcontainers new feature "withNetworkMode" is working as
expected.
Thanks for your support!
Best regards
Chris
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/testcontainers/testcontainers-java/issues/168#issuecomment-231357960,
or mute the thread
https://github.com/notifications/unsubscribe/AAIET_G-xzLtkhsdtMjs99V3BdAAUY-Lks5qTk9HgaJpZM4JEHf-
.

--
Richard


BIGTOP-3682: Failed to build sqoop for Debian 11 on Arm64

Failed to build: Cannot run program "python" No such file or directory.

Description of PR
This PR is to fix build issue of sqoop for Debian 11 on Arm64, which is described in BIGTOP-3682.
How was this patch tested?
Successfully build on Arm64 Debian 11.
For code changes:

[ ] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'BIGTOP-3638. Your PR title ...')?
[ ] Make sure that newly added files do not have any licensing issues. When in doubt refer to https://www.apache.org/licenses/

@guyuqi I think it's already been resolved with the latest Debian 11 image for ARM64. (I've just rebuilt it just before :)
[ec2-user@ip-172-31-28-215 bigtop]$ facter architecture
aarch64
[ec2-user@ip-172-31-28-215 bigtop]$ ./gradlew allclean sqoop-pkg-ind -POS=debian-11

...

Unable to find image 'bigtop/slaves:trunk-debian-11-aarch64' locally
trunk-debian-11-aarch64: Pulling from bigtop/slaves

...

Digest: sha256:12a27bd8d63a7e9d61969f13594c28eab91a5c1ce3654386e2576a0ecdb84ed6
Status: Downloaded newer image for bigtop/slaves:trunk-debian-11-aarch64

...

> Task :sqoop-pkg
Caching disabled for task ':sqoop-pkg' because:
  Build cache is disabled
Task ':sqoop-pkg' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
:sqoop-pkg (Thread[Execution worker for ':',5,main]) completed. Took 0.001 secs.

BUILD SUCCESSFUL in 11m 47s

Is this sufficient for building Sqoop on ARM64? I personally think that linking python in sqoop/do-component-build is not so good, because it changes global environment depending on if building Sqoop or not.

It makes sense. Thanks, @sekikn


inception: Reset undefined fields when reusing objects.

When reusing objects with sync.Pool, for example, and unmarshaling
objects, this resets the old fields, which are not defined in the
current JSON to their Zero values.
For example:
type M struct {
     Y []int
}

type A struct {
     I int
 T *M
}

type B struct {
     X int
     Z *A    `json:"Z,omitempty"`
     Y int   `json:"Y,omitempty"`
     K []int `json:"K,omitempty"`
}

buf0 = []byte(`{"X":1,"Z":{"I":3, "T":[3,4]},"Y":4,"K":[1,2,3]}`)
buf1 = []byte(`{"X":1,"K":[1,2,3]}`)

x0 := B{}
x0.UnmarshalJSON(buf0)
x1 := x0
x1.UnmarshalJSON(buf1)

This ensures that x0 != x1 by setting the fields in x1.Z = nil and x1.Y = 0
after marshalling all JSON objects.

Looks very useful and would surely prevent bugs.
I think it should get some test cases?

@pquerna did you have a look at this?

@pquerna I just updated the pull request with code that hides this feature behind a command line flag. This is needed for ffjson to continue being a drop in replacement for the normal json.
I also improved the test case and squashed all commits into one. I also did some benchmarking and it doesn't affect the performance at all, which is expected as it's only a couple of if statements.
I think you can really merge this now so other people can also use it.

Oh and I also fixed make clean and made sure make test rebuilds all the files as otherwise the tests might be using old generated files.

@pquerna is this project dead?

Thank you.


graphics naming for movies

Changes in the code were made to accommodate a re-naming of scenarios.  In this process, it appears that a discrepancy was introduced between how the movie graphics for wqm_baseline and wqm_reference were named v.s. those for the other scenarios.  What this means for the Main region results is that the baseline and reference graphics are named according to:
${case}_${run_tags[${SLURM_ARRAY_TASK_ID}]}_percentDO_lt_${DOthresh}_wc_%d.png

vs.
${case}_${run_folders[${SLURM_ARRAY_TASK_ID}]}_percentDO_lt_${DOthresh}_wc_%d.png

for the scenarios.
The "fix" for now is a clunky one.  I run create_percentHypoxic_movie.sh once for the scenarios using run_folders and once using run_tags (in the file name following -I).  For ease of application in future regions, the naming convention used for creating graphics and folders needs to be revised so there is consistency across the scenarios as well as the "wqm" baseline and reference runs.

Clarification: This code will work for creating regional graphics for all scenarios, it just won't re-name the movie files to reflect the desired naming convention:
apptainer exec --bind ${graphics_dir} --bind ${output_dir} ~/ffmpeg.sif ffmpeg -start_number 6 -framerate 6 -i ${graphics_dir}${case}_${run_tags[${SLURM_ARRAY_TASK_ID}]}_percentDO_lt_${DOthresh}_wc_%d.png -c:v libx264 -pix_fmt yuv420p -vcodec mpeg4 ${output_dir}${case}_${run_tags[${SLURM_ARRAY_TASK_ID}]}_percentDO_lt_${DOthresh}_${frame}.mp4


add some coding and algorithm solutions

small fix on fizzbuzz (upper-lower case)
a solution on std dev
a solution on counter
a solution on top counter
a solution on rle
a solution on idf
3 solution on fibonacci
a solution on most frequent outcome
a solution on reverse a linked list
a solution on flip a binary tree
a solution on binary search
2 solution on deduplication
2 solution on intersection
2 solution on union
a solution on addition
a solution on check is binary search tree

should be ready for another review now

Thank you for your contribution!

In my opinion, the solution to check_is_bst is a bit difficult to read, so if you think you could make it a bit more readable, I'll be glad to accept another PR


Add documentation of the new GC options for JVM version > 9

All the documented options are deprecated in the latest version of the JVM.

Merged as ebf1ccaae8fe1e9ad7f40430082c20824131201e, thanks!


Support Testable flow Phase 1

Goal
Support testable flow in studio including test mode and revamping of service and mapping tests editors.
Problem
We want to address the inconsistency of writing service and mapping tests as well as writing test data.
Additionally it is not very intuitive to create service tests today. To address this we will  move from a Lambda based assertion to specific type of assertions such as EqualToJSON etc.
Additionally the introduction of DataElement will allow to more intuitive create test data and share data across multiple tests.
Furthermore when executing test via studio the new apis will give more context to better debug failing tests such as execution result etc.
Phase 1: Graph and basic editor support

ability to define following testables with the following test types and embedded data types in text mode
ability to run the relevant tests through the global test runner (Legacy Test will not be supported via this mode) -> https://github.com/finos/legend-studio/issues/865.
Testables will run as part of the projects pipeline flow
ensure both flows use the testable test runners in engine. Studio should not use them to run
Testables to Support: Service, Mapping
Assert Types: EqualTo, EqualToJSON, EqualToTDS
Embedded Data: Relational, ServiceStore , ExternalFormat ModelStore

Phase 2: Advanced editor support (to be moved to a separate issue)

Service Testable Editor
Mapping Testable Editor
Editors for the following Embedded Data Types: Relational, ServiceStore and ExternalFormat
Enhance form support for the embedded data type editors by allowing users to specify the store while creating the data element and auto populate the properties for embedded data

Phase 3: Migration Plan from Legacy (to be moved to a separate issue)
TBD
Implementation
In order to fully support the new testable flow we must ensure the following

[ ] pure/engine Current testable elements tests are updated to the new testable framework

[ ] Mapping @gs-gunjan
[x] Service @hardikmaheshwari

[ ]  pure/engine DataElements are updated to support the follow embedded data

[x] ServiceStore @hardikmaheshwari
[ ] FlatData - need to add a test to ensure we can migrate flat data tests to the new testable flow
[ ] Relational @MauricioUyaguari

[x] Add Relational Data Compiler, Grammar, Studio
[x] Add equalToTDS Compiler,Grammar, Studio
[x] Relational should work with equalToJSON as well
[ ]  Ensure equalToTDS tests run with api
[ ] Investigate relational queries that return graph fetch break while running tests. (feeling its because the return type is complex [firm with person properties]

[x] ExternalFormat @hardikmaheshwari
[x] ModelStore @hardikmaheshwari

[ ] engine Ensure testable elements tests are run as part of run testable apis

[ ] Mapping @gs-gunjan
[x] Service @hardikmaheshwari

[ ] sdlc Ensure testable elements tests are run in sdlc pipeline @hardikmaheshwari
[ ] Support DataElement in text mode

[x] ServiceStore ( https://github.com/finos/legend-studio/issues/1078)
[x] Relational
[ ] Flatdata, still need ?
[x] ExternalFormat
[x] ModelStore

[ ] Support Testable tests in text mode

[ ] Mapping
[x] Service

[ ] Support DataElement in form mode

[ ] ServiceStore
[ ] Relational
[x] ExternalFormat  #1133
[ ] ModelStore

[x] Support executing Testable
[ ] Rework Service Test Editor
[ ] Rework Mapping Test Editor
[ ] Figure out Strategy for dealing with legacy tests. i.e transform them to new, read but not write. etc.
[ ] V0 of global test runner

[ ] Add panel of global test runner
[x] run tests for all testables

Concerns/To Check

[ ] should RelationalTestData support sql statements as input
[ ] Base 64 Encoding of TestData to avoid escape hacks

Data Element Model

Test and Test Result Model

Relevant PRS:

[ ] https://github.com/finos/legend-pure/pull/544
[ ] https://github.com/finos/legend-pure/pull/533
[x] https://github.com/finos/legend-pure/pull/521
[ ] https://github.com/finos/legend-engine/pull/658
[x] https://github.com/finos/legend-engine/pull/631
[ ] https://github.com/finos/legend-sdlc/pull/418
[ ] https://github.com/finos/legend-studio/pull/1114

WIP
Relational Test Grammar
###Data
Data my::RelationalData
{
  Relational
  #{
    PersonTable:
      {
        columns:
        [
          'id',
          'firstName',
          'lastName'
        ];
        rows:
        [
          '1,Mauricio,Uyaguari',
          '2,An,Phi'
        ];
      }
  }#
}

###Service
Service model::MyService
{
  pattern: '/d2c48a9c-70fa-46e3-8173-c355e774004f';
  documentation: '';
  autoActivateUpdates: true;
  execution: Single
  {
    query: |model::Person.all()->project([x|$x.firstName, x|$x.lastName], ['First Name', 'Last Name']);
    mapping: mapping::RelationalMapping;
    runtime: model::Runtime;
  }
  testSuites:
  [
    testSuite1:
    {
      data:
      [
        connections:
        [
          connection_1:
            Reference
            #{
              my::RelationalData
            }#
        ]
      ]
      tests:
      [
        test1:
        {
          asserts:
          [
            assert1:
              EqualToTDS
              #{
                expected :
                  {
                    columns:
                    [
                      'firstName',
                      'lastName'
                    ];
                    rows:
                    [
                      '1,Mauricio,Uyaguari',
                      '2,An,Phi'
                    ];
                  };
              }#
          ]
        }
      ]
    }
  ]
  test: Single
  {
    data: 'default\nPersonTable\nid,firstName,lastName\n1,John,Doe\n2,An,Phi\n3,Mauricio,Uyaguari\n-----\n';
    asserts:
    [
      { [], res: meta::pure::mapping::Result[1]|$res.values->cast(@TabularDataSet)->toOne().rows->map(r|$r.values->makeString(',')) == ['John,Doe', 'An,Phi', 'Mauricio,Uyaguari'] }
    ];
  }
}

###Relational
Database store::TestDB
(
  Table PersonTable
  (
    id INTEGER PRIMARY KEY,
    firm_id INTEGER,
    firstName VARCHAR(200),
    lastName VARCHAR(200)
  )
)

###Pure
Class model::Person
{
  firstName: String[1];
  lastName: String[1];
}

###Mapping
Mapping mapping::RelationalMapping
(
  *model::Person: Relational
  {
    ~primaryKey
    (
      [store::TestDB]PersonTable.id
    )
    ~mainTable [store::TestDB]PersonTable
    firstName: [store::TestDB]PersonTable.firstName,
    lastName: [store::TestDB]PersonTable.lastName
  }

  MappingTests
  [
    test_csv
    (
      query: |model::Person.all()->project([x|$x.firstName, x|$x.lastName], ['First Name', 'Last Name']);
      data:
      [
        <Relational, CSV, store::TestDB,
          'default\n'+
          'PersonTable\n'+
          'id,firstName,lastName\n'+
          '1,Mauricio,Uyaguari\n'+
          '2,An,Phi\n'+
          '\n\n\n'
        >
      ];
      assert: '[{"values":["Mauricio","Uyaguari"]},{"values":["An","Phi"]}]';
    )
  ]
)

###Connection
RelationalDatabaseConnection model::MyConnection
{
  store: store::TestDB;
  type: H2;
  specification: LocalH2
  {
    testDataSetupSqls: [
      'Drop table if exists FirmTable;\nDrop table if exists PersonTable;\nCreate Table FirmTable(id INT, Legal_Name VARCHAR(200));\nCreate Table PersonTable(id INT, firm_id INT, lastName VARCHAR(200), firstName VARCHAR(200));\nInsert into FirmTable (id, Legal_Name) values (1, \'FirmA\');\nInsert into FirmTable (id, Legal_Name) values (2, \'Apple\');\nInsert into PersonTable (id, firm_id, lastName, firstName) values (1, 1, \'John\', \'Doe\');\nInsert into PersonTable (id, firm_id, lastName, firstName) values (2, 2, \'Tim\', \'Smith\');\nInsert into PersonTable (id, firm_id, lastName, firstName) values (3, 3, \'Nicole\', \'Doe\');\n\n'
      ];
  };
  auth: DefaultH2;
}

###Runtime
Runtime model::Runtime
{
  mappings:
  [
    mapping::RelationalMapping
  ];
  connections:
  [
    store::TestDB:
    [
      connection_1: model::MyConnection
    ]
  ];
}

@MauricioUyaguari I believe we don't need to support FlatData at the same level as stores/external format. FlatData is 1 type of ExternalFormat and that's the direction we are planning to take from engine perspective.
So I guess we don't need explicit steps for flatData. It was added as part of ExternalFormat support.
Let me know if this makes sense

@MauricioUyaguari We should not need any additional work to run mapping tests (when uplifted to testable) other than https://github.com/finos/legend-sdlc/pull/418, changes in this PR should run tests for all testables (service, mapping, persistence, etc) as long as implementation of TestableRunnerExtension for those are provided in engine

@MauricioUyaguari so phase 1 - global test runner won't run legacy test right?
Global Test Runner will only run Testable tests. No legacy tests will there.

Current Service M2M Grammar .
@hardikmaheshwari @gs-gunjan do we see potential consistency issues with the current service test grammars ?
###Service
Service mapping::ModelToModelMappingService2
{
  pattern: '/5a17dd83-825c-42cf-84ce-e016f306933e';
  documentation: '';
  autoActivateUpdates: true;
  execution: Single
  {
    query: |model::target::_Firm.all()->graphFetchChecked(#{model::target::_Firm{name,type,employees{fullName}}}#)->serialize(#{model::target::_Firm{name,type,employees{fullName}}}#);
    mapping: mapping::ModelToModelMapping;
    runtime:
    #{
      mappings:
      [
        mapping::ModelToModelMapping
      ];
      connections:
      [
        ModelStore:
        [
          connection_1:
          #{
            JsonModelConnection
            {
              class: model::Firm;
              url: 'data:application/json,%7B%22employees%22%3A%5B%7B%22firstName%22%3A%22firstName%2019%22%2C%22lastName%22%3A%22lastName%209%22%7D%5D%2C%22legalName%22%3A%22legalName%2072%22%2C%22type%22%3A%22llc%22%7D';
            }
          }#
        ]
      ];
    }#;
  }
  testSuites:
  [
    testSuite_1:
    {
      data:
      [
        connections:
        [
          connection_1:
            ExternalFormat
            #{
              contentType: 'application/json';
              data: '{\n  "employees": [\n    {\n      "firstName": "firstName 19",\n      "lastName": "lastName 9"\n    }\n  ],\n  "legalName": "legalName 72",\n  "type": "llc"\n}';
            }#
        ]
      ]
      tests:
      [
        test_1:
        {
          asserts:
          [
            assertion_1:
              EqualToJson
              #{
                expected :
                  ExternalFormat
                  #{
                    contentType: 'application/json';
                    data: '{\n  "defects" : [ ],\n  "source" : {\n    "defects" : [ ],\n    "source" : {\n      "number" : 2,\n      "record" : "{\\"employees\\":[{\\"firstName\\":\\"firstName 19\\",\\"lastName\\":\\"lastName 9\\"}],\\"legalName\\":\\"legalName 72\\",\\"type\\":\\"llc\\"}"\n    },\n    "value" : {\n      "employees" : [ {\n        "firstName" : "firstName 19",\n        "lastName" : "lastName 9"\n      } ],\n      "legalName" : "legalName 72",\n      "type" : "llc"\n    }\n  },\n  "value" : {\n    "name" : "legalName 72",\n    "type" : "LLC",\n    "employees" : [ {\n      "fullName" : "firstName 19 lastName 9"\n    } ]\n  }\n}';
                  }#;
              }#
          ]
        }
      ]
    }
  ]
}

Current Service M2M Grammar . @hardikmaheshwari @gs-gunjan do we see potential consistency issues with the current service test grammars ?
###Service
Service mapping::ModelToModelMappingService2
{
  pattern: '/5a17dd83-825c-42cf-84ce-e016f306933e';
  documentation: '';
  autoActivateUpdates: true;
  execution: Single
  {
    query: |model::target::_Firm.all()->graphFetchChecked(#{model::target::_Firm{name,type,employees{fullName}}}#)->serialize(#{model::target::_Firm{name,type,employees{fullName}}}#);
    mapping: mapping::ModelToModelMapping;
    runtime:
    #{
      mappings:
      [
        mapping::ModelToModelMapping
      ];
      connections:
      [
        ModelStore:
        [
          connection_1:
          #{
            JsonModelConnection
            {
              class: model::Firm;
              url: 'data:application/json,%7B%22employees%22%3A%5B%7B%22firstName%22%3A%22firstName%2019%22%2C%22lastName%22%3A%22lastName%209%22%7D%5D%2C%22legalName%22%3A%22legalName%2072%22%2C%22type%22%3A%22llc%22%7D';
            }
          }#
        ]
      ];
    }#;
  }
  testSuites:
  [
    testSuite_1:
    {
      data:
      [
        connections:
        [
          connection_1:
            ExternalFormat
            #{
              contentType: 'application/json';
              data: '{\n  "employees": [\n    {\n      "firstName": "firstName 19",\n      "lastName": "lastName 9"\n    }\n  ],\n  "legalName": "legalName 72",\n  "type": "llc"\n}';
            }#
        ]
      ]
      tests:
      [
        test_1:
        {
          asserts:
          [
            assertion_1:
              EqualToJson
              #{
                expected :
                  ExternalFormat
                  #{
                    contentType: 'application/json';
                    data: '{\n  "defects" : [ ],\n  "source" : {\n    "defects" : [ ],\n    "source" : {\n      "number" : 2,\n      "record" : "{\\"employees\\":[{\\"firstName\\":\\"firstName 19\\",\\"lastName\\":\\"lastName 9\\"}],\\"legalName\\":\\"legalName 72\\",\\"type\\":\\"llc\\"}"\n    },\n    "value" : {\n      "employees" : [ {\n        "firstName" : "firstName 19",\n        "lastName" : "lastName 9"\n      } ],\n      "legalName" : "legalName 72",\n      "type" : "llc"\n    }\n  },\n  "value" : {\n    "name" : "legalName 72",\n    "type" : "LLC",\n    "employees" : [ {\n      "fullName" : "firstName 19 lastName 9"\n    } ]\n  }\n}';
                  }#;
              }#
          ]
        }
      ]
    }
  ]
}

I am not sure I understand the consistency issue. Can you please provide more details?

Closing this since the major piece of work now falls on mapping test, so let's track this in https://github.com/finos/legend-studio/issues/1179


feat(core): add support for short duration vaults on mainnet

@aouahib could you review this and maybe try to test it a bit too? (maybe ask David to try to buy with leverage for a short duration supported asset)
If you're reasonably certain using 3 vaults will work on mainnet then I think this PR can be merged confidently.
Corresponding PR on the Marketplace: https://app.graphite.dev/github/pr/metastreet-labs/metastreet-new-marketplace/96/feat-add-sorting-to-SupportedCollectionsDropdown-and-Table?panel=stack

Current dependencies on/for this PR:

main

PR #181

PR #182

PR #183

PR #184   👈

This comment was auto-generated by Graphite.

⏳ This pull request is set to merge as part of a Graphite merge job
Job ID: 4I3yIBgvA5EigGegvIRw.
See details on graphite.dev


Undefined is not an object

Hello, I just started experimenting with this android background tasks, but i was not able to run even simple example.

I have started with create-react-native-app, ejected from expo, added react-native-background-task, linked, updated MainApplication.java and tried to implement Simple example from this project's readme. After running the app, i got this error. I want this to run just on android, so i did not install react-native-background-fetch.
My package versions:
"react": "16.3.0-alpha.1",
"react-native": "0.54.0",
"react-native-background-task": "^0.2.1",
"react-navigation": "^1.5.11"
Any clue about how to fix this? Thanks.

It seems react-native link should help. At least it worked for me.

@ivan-branets sadly, it didn't help
@jamesisaac any fix for this? thanks

Linking does not work for me neither


Developer should be able to add extensible and styleable auth component to an app

Closing due to inactivity. Will open for discussion later.


Extending the copy/move dialog?

I wonder if it's possible to somehow hook/extend the Windows copy dialog? I am interested specifically in changing the "Folder in Use" dialog to possibly add my own action

Any API for that in general?

Closing stale issues to focus on ones with end-user activity.


New Beamformer-class function "condense" for replacing/enhancing synthetic+integrate?

Suggestion to add a new function in the BeamformerBase function that comprises the functionality of both ".synthetic" and ".integrate". Purpose is to compress the result data and extract the actually interesting info (e.g. third-octave bands in defined sectors).
Most of the arguments passed to the function should be optional, so that it can be used more or less in the same way as .synthetic or .integrate alone. This would also make using the corresponding standalone functions after first applying .synthetic or .integrate unnecessary.
Important differences to the old functions are

no reshaping to grid anymore (should be done somewhere else)
ability to handle multiple requested frequency bands and sectors (but also still single ones)

The implementation of this could include a deprecation warning for .synthetic and .integrate
Any thoughts or naming ideas? (condense/compress/extract ... )

We could implement a private helper synthetic + integrate = condense function.
In addition, we alter the interface of the existing functions
def synthetic( self, f, num=0, sector=None):
def integrate( self, sector, f=0, num=0):

This could work as well.


Fix for LSN filtering issue

Fixes  a small error introduced into the filtering in the last features release
Changes proposed in this pull request:

How to test this code:

[ ]
[ ]

Has been tested on minimum requirements:

[ ]  Powershell 3
[ ]  Windows 7
[ ]  SQL Server 2000

Has been tested on maximum requirements:

[ ]  SQL Server vNext
[ ]  Windows 10
[ ]  Azure Database

Tests for tester:

[ ] Working/useful help content, including link to command on dbatools web site
[ ] All examples work as advertised
[ ] Does not contain template content
[ ] Does not contain excessive/unnecessary amounts of comments
[ ] Works remotely
[ ] Works locally
[ ] Works on lower versions or throws error specifying version not supported
[ ] Works with named instances
[ ] Works with clustered instances
[ ] Handles offline/read only databases
[ ] Supports multiple servers (at the command line or piped from Get-SqlRegisteredServerName)
[ ] No un-handled errors which stop the command working with multiple servers

reminds me..gotta add you as admin, brb

k merge it 👍

Well, that seemed to work :)

hahah 🥚 cellent!


instant.elapsed() will panic

this method is panic.  hyper::client::pool::702

Hm. This should never happen, sounds like a bug in libstd.

Hm. This should never happen, sounds like a bug in libstd.

I don't think of how to trigger the scene yet, which seems unlikely to happen.

I don't think of how to trigger the scene yet, which seems unlikely to happen.

Is the obtained CLOCK_MONOTONIC in multi-core CPU scenarios incorrect?

Is the obtained CLOCK_MONOTONIC in multi-core CPU scenarios incorrect?

What OS?
std::time::Instant contains code to fix non-monotonic monotonic clocks but it's not used on some platforms which have so far worked without it: https://doc.rust-lang.org/src/std/time.rs.html#224-264

What OS?
std::time::Instant contains code to fix non-monotonic monotonic clocks but it's not used on some platforms which have so far worked without it: https://doc.rust-lang.org/src/std/time.rs.html#224-264

Whether to replace elapsed with saturation_duration_since？

Whether to replace elapsed with saturation_duration_since？

Whether to replace elapsed with saturation_duration_since？

@seanmonstar Whether hyper will fix this issue, if it is waiting for std to fix it, then I will close the issue.

Fixed in #2746


update release.yaml run os to ubuntu-latest

Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

Codecov Report
Base: 17.55% // Head: 17.55% // No change to project coverage :thumbsup:

Coverage data is based on head (03ada25) compared to base (c5c90a2).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1930   +/-   ##
=======================================
  Coverage   17.55%   17.55%
=======================================
  Files         103      103
  Lines        9120     9120
=======================================
  Hits         1601     1601
  Misses       7306     7306
  Partials      213      213

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


On a directory, send redirects to the file path plus a slash, not the request URL plus a slash.

If http://<IP_ADDRESS>:8081/foo/bar maps to the directory /Users/justin/MyProject/foo/bar/, send redirects to http://<IP_ADDRESS>:8081/Users/justin/MyProject/foo/bar/ and nothttp://<IP_ADDRESS>:8081/foo/bar/.
The bug appears to be here https://github.com/pillarjs/send/blob/master/index.js#L675
It seems like it should be:
if (stat.isDirectory()) return self.redirect(self.req.originalUrl);

Hi @justinfagnani that can be a mistake in our documentation. You see, the path argument is not a file path, but it needs to be the URL path (https://github.com/pillarjs/send#sendreq-path-options) which is what we redirect off if you have not added a directory listener to customize the redirection logic.
You can do one of two different things to correct this:

Add a directory listener and customize how the redirect works to fit your needs (https://github.com/pillarjs/send#serving-from-a-root-directory-with-custom-error-handling is a pretty full example).
Just pass in the URL part as the path argument and use the root option for the rest of the path that is not part of the URL.

I hope that helps!

thanks for the quick reply @dougwilson
Regarding the value of path - for our case we're remapping URLs to different file paths, so we can't have path be a valid URL, and there's no one root that will make URLs map 1-1 to file paths. So we calculate the file path, and use that as the second argument. Works great, except for the redirect problem
I did work around this by defining a directory listener, like so:
    send(req, filePath)
        .on('directory',
            () => {
              res.statusCode = 301;
              res.setHeader('Location', req.originalUrl + '/');
              res.end('Redirecting to ' + req.originalUrl + '/');
            })
        .pipe(res);

But this really seems like it should be the correct default behavior. Other that the default redirect case, users never see filePath. Why wouldn't we always want to redirect based on the request URL?

Hi @justinfagnani my response and closure was around that you are reporting this as a bug, when it is functioning as designed and you're currently using it for something it was never designed for. If you would like to re-phrase this as a feature request, please feel free to open a new issue (or way, way better: a PR) that outlines (or codifies) a proposal for how you would like the module to behave and outline your use-case so we can have a discussion around the proposal :)
When you made this issue, you simply said it was a bug, but it's not: it is designed to work this way, and was never designed to accept full file paths as the path argument.


Support testing of cg_clif in rust's CI

This will need a change on the rust side too to run ./y.rs prepare --download-dir some/dir (if not building from a source tarball), vendor all deps as necessary and run ./y.rs test --out-dir some/other/dir --download-dir some/dir.
r? @jyn514
Part of #1290

Yeah, I needed a lot more changes. I got a branch over at https://github.com/bjorn3/rust/tree/test_cg_clif_in_ci. I'm going to call it a day for now though. I will sync the changes to this PR tomorrow and after this PR is merged I will first sync all changes to the rust repo before opening a PR with the actual CI integration.

@bjorn3 I've only read the commit descriptions but this looks broadly fine to me still :) let me know if you want a full review.

There are a couple of things left to implement for me. After that I would appreciate a full review. I will let you know when it is ready.

Landed part of the changes directly on master: dfaeab8c5c2d53323e30212bbfcde99451d74af5...4ece6d0e4427bc8691e135715867b4bd296a8e7b

Split out https://github.com/bjorn3/rustc_codegen_cranelift/pull/1374

Landed 5b3bc29008643203b4de3ffb4c5b5141039c88e6 and 134dc334857e453c50f8ea31b13cbda106204f20 directly on master.

https://github.com/bjorn3/rustc_codegen_cranelift/pull/1378 made it possible to test entirely with an LLVM compiled standard library. This avoids the need to vendor the standard library dependencies.

i'm not sure when i'll get a chance to look at this, sorry. you could ask someone on bootstrap to review or just open a PR directly to rust-lang/rust.

I'm going to skip implementing vendoring support on the rust side for now and instead skip the tests that need external crates. I intend to implement it later, but for now even running part of the tests is better than nothing.
@jyn514 no worries. I intend to merge this PR and put up a PR for rust-lang/rust today. Most of the complexity of this PR is vendoring support which isn't relevant for now given the above.