Tracking issue for cross-compilation needs and issues

Cross-compiling with numpy.distutils isn't really supported, and we regularly receive issues related to that. With the move to Meson (gh-13615), cross-compiling becomes supported. This issue aims to provide an overview of cross-compiling needs users have expressed in the past. That will help when implementing cross-compilation support and coming up with relevant test cases.

Yocto Linux has come up multiple times:

gh-8571 (main issue, still open - mentions successful result in this comment on gh-8571)
gh-10770
gh-8226

Buildroot has come up several times as well:

gh-9875
https://news.ycombinator.com/item?id=27953673 (multiple mentions of cross-compiling SciPy in those comments)

Pyodide is cross-compiling to WebAssembly:

gh-15290 (overview issue)
https://github.com/scipy/scipy/pull/15288#issuecomment-1002834295 (some discussion on Meson & Emscripten)

Void Linux is cross-compiling SciPy; the numpy.distutils based build worked, and the move to Meson yielded one problem - see gh-16783. For the cross-compile support files in Void, see here
Linaro has a repo for cross-compiling packages for Windows on ARM at https://gitlab.com/Linaro/windowsonarm/packages. It does not contain SciPy yet; it'd be interesting to see that though. Meson cross-compiling support should work with that toolchain; invoking the build through pip or build may have a few rough edges (not sure until it's tried). See this NumPy mailing list thread for more details.

Both Yocto and Buildroot are ways to generate an embedded Linux distribution through cross-compilation. We should aim to test at least one of those, preferably in CI. Related build systems that were mentioned are OpenEmbedded and Bitbake. https://github.com/scipy/scipy/issues/8571#issuecomment-715877299 mentions crossenv (not quite a build system, more virtualenv trickery for distutils) to build for Yocto.

Cross-compiling to 32-bit ARM: gh-10727
Cross-compiling on Cray XT (old, not so relevant anymore): gh-1857
An effort to make numpy.distutils more amenable to cross-compilation: https://github.com/numpy/numpy/issues/17620 (also mentions Yocto/OpenEmbedded).
The one place we are successfully cross-compiling is in https://github.com/MacPython/scipy-wheels to produce arm64 macOS wheels from x86_64 macOS CI jobs - and that happens to work because the differences between x86_64 and arm64 builds are fairly limited.

I've added Pyodide to the description. Yesterday we merged Meson support, so whoever needs cross-compiling should try and use that - see docs at https://mesonbuild.com/Cross-compilation.html. If anyone tries, please share experiences.

Added Windows on ARM to the description.

@rgommers, I've been experimenting with cibuildwheel, specifically the macos-arm64 cross compilation target. I find that when gfortran is installed in a non-standard location, e.g: /opt/gfortran-darwin-arm64/bin/arm64-apple-darwin20.0.0-gfortran AND the FC environment is set to that location (export FC=/opt/gfortran-darwin-arm64/bin/arm64-apple-darwin20.0.0-gfortran) then meson build doesn't pick up that gfortran is installed. i.e. it's ignoring the FC environment variable.

Meson cross compilation support should be using the cross file only, I think.

@eli-schwartz, I'm unsure of what "using the cross file" means. I've been experiencing issues trying to cross compile macos-arm64 using cibuildwheel. When it gets to the delocate-listdeps stage it's finding that all the .so don't have the arm64 architecture (https://github.com/andyfaff/scipy/runs/7623425367?check_suite_focus=true, L11083. I'm assuming that means that the wrong fortran compiler/wrong fortran flags where used.

    Build type: native build
    Project name: SciPy
    Project version: 1.10.0.dev0
    C compiler for the host machine: clang (clang 12.0.0 "Apple clang version 12.0.0 (clang-1<IP_ADDRESS>)")
    C linker for the host machine: clang ld64 609.8
    C++ compiler for the host machine: clang++ (clang 12.0.0 "Apple clang version 12.0.0 (clang-1<IP_ADDRESS>)")
    C++ linker for the host machine: clang++ ld64 609.8
    Host machine cpu family: x86_64
    Host machine cpu: x86_64
    Compiler for C supports arguments -Wno-unused-but-set-variable: NO
    Library m found: YES
    Fortran compiler for the host machine: gfortran (gcc 4.9.0 "GNU Fortran (GCC) 4.9.0")
    Fortran linker for the host machine: gfortran ld64 609.8

Cross compilation was not activated (see: "native build"), and it looks like you're setting a variable $FC_ARM64 which is probably not getting looked at? I don't see anywhere that $FC itself is set.

I've got to the stage where the FC variable is set to the correct cross compiler for arm64 (https://github.com/andyfaff/scipy/runs/7624660619?check_suite_focus=true, L463).
From reading this link it seems that a cross build definition file has to be written. This presumably could get written in the cibw_before_build.sh script, which gets run just before cibuildwheel tries to build the wheel. I think cibuildwheel is using pyproject.toml to build the wheel, which uses the mesonpy build-backend. Presumably this calls meson at some point.
My questions now are:

where does the cross file have to be placed?
is there an example cross file that I can copy from?
how do I tell the build system to use the cross file? At the moment cibuildwheel just looks at pyproject.toml and builds everything, there's no interaction with meson itself.

There's an open PR to have the mesonpy backend accept arguments and forward them to Meson, which I think you'll need.
The --cross-file argument expects a filepath, not a filename, so it can and should be an absolute path for example $PWD/foo.ini (or else it will be searched for in/relative to Meson's working directory, and I'm not sure what pip or build do with that).
There's an overview and example at https://mesonbuild.com/Cross-compilation.html
Also meson env2mfile is an experimental command to generate machine files based on environment variables and other things, it may be helpful or at least help show you what a machine file looks like.

@andyfaffn, @rgommers
for information, scipy is now supported by Buildroot. It's been in the pipeline for about 3 years, mostly slowed down due to issues related to pybind (which we properly support now).
I'm working on upgrading to 1.9.0 right now and move on from distutils
(see how we do it today right here)
to meson (see my latest proposal for that right there).
I could use your help for the upgrade to meson. The serie comprises two patches at the moment.
The first one solves the fortran compiler location that you guys also faced. The buildroot infrastructure did not know how to describe a fortran cross-compiler to this day. Then, the second patch upgrades from disuttils to meson. The build starts fine, we want a blas=lapack context in BR to this day. And reaches a linking issue, that I think we already faced and have solved with distutils:
[235/1572] Linking target scipy/special/_ufuncs_cxx.cpython-310-x86_64-linux-gnu.so
FAILED: scipy/special/_ufuncs_cxx.cpython-310-x86_64-linux-gnu.so
/arm-buildroot-linux-gnueabihf/bin/ld: (linking)
host/lib/python3.10/site-packages/numpy/core/include/../lib/libnpymath.a: error adding symbols: file format not recognized

it's trying to link against some inner numpy objects, but it is cross-linking, while the files located are for the build machine.
I think at the time I fixed that with some LDFLAGS (gcc -L) tricks (line 37 for our current infrastructure).
Any ideas or input on this "error" ?

note that it is the first time i'm dealing with meson, yet it is quite straightforward and I can probably provide some input here

it seems that a cross build definition file has to be written

@andyfaff  indeed, if you look at the first patch of my v2 in the proposal, you will see the part of buildroot that takes care of generating this file

is there an example cross file that I can copy from?

you could download a buildroot (main branch), apply my v2, select an architecture like raspberrypi4_64_defconfig and manually select PYTHON3 + PYTHON_SCIPY, I would be interested if you had any idea on the current error we get.
If you're only interested in the cross-file, here's what buildroot generates with the proposal
(base) ➜  buildroot git:(master) ✗ cat output/build/python-scipy-1.9.0/build/cross-compilation.conf
# Note: Buildroot's and Meson's terminologies differ about the meaning
# of 'build', 'host' and 'target':
# - Buildroot's 'host' is Meson's 'build'
# - Buildroot's 'target' is Meson's 'host'

[binaries]
c = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-gcc'
cpp = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-g++'
ar = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-gcc-ar'
strip = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-strip'
cmake = '/usr/bin/cmake'
fortran = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-gfortran'
pkgconfig = '/home/xx/git/oscimp_br2_external/buildroot/output/host/bin/pkgconf'
g-ir-compiler = '/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/bin/g-ir-compiler'
g-ir-scanner = '/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/bin/g-ir-scanner'

[built-in options]
c_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
c_link_args = []
cpp_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
cpp_link_args = []
fortran_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
fortran_link_args = []
wrap_mode = 'nodownload'
cmake_prefix_path = '/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/cmake'

[properties]
needs_exe_wrapper = true
sys_root = '/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot'
pkg_config_libdir = '/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/xx/git/oscimp_br2_external/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig'
pkg_config_static = 'false'
# enable meson build to pass a toolchain file to cmake
cmake_toolchain_file = '/home/xx/git/oscimp_br2_external/buildroot/output/host/share/buildroot/toolchainfile.cmake'
cmake_defaults = false

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'cortex-a7'
endian = 'little'

Very nice, thanks for the details @gwbres. I'm curious, is there a pull request / CI type setup somewhere? I have never used Buildroot before and it'd be great to see what those commands actually do in a CI log (e.g., (eval $(meson-package))).

it's trying to link against some inner numpy objects, but it is cross-linking, while the files located are for the build machine.

So this is picking up the Python install (py3) from the build env rather than the target it looks like: https://github.com/scipy/scipy/blob/8ac08076584b7af12a7c71b9fd7c435a2702fd9a/scipy/meson.build#L40-L59
I'm guessing that the cross file should have the location of the target interpreter, so that that changes and dependency('python') picks up the right thing. Can you easily add a python entry under [binaries]?

The need to run the target Python interpreter should disappear once we resolve https://github.com/mesonbuild/meson/issues/9598. It may be a problem to do so now.

@rgommers

Can you easily add a python entry under [binaries]

yes we can do that easily.

The need to run the target Python interpreter should disappear once we resolve https://github.com/mesonbuild/meson/issues/9598

thank you guys for all the information

is there a pull request / CI type setup somewhere?
I have never used Buildroot before and it'd be great to see what those >commands actually do in a CI log (e.g., (eval $(meson-package)))

Contributing to buildroot does not make use of pull requests, so unfortunately there is no such web based thing that I could forward you, other than the submitted patch above.
Hopefully buildroot is much quicker and easier to use than yocto, here are some commands you can play somewhere and will initiate a build with scipy-1.9.0 (so meson version, not current buildroot), assuming you downloaded the patch previously mentioned
# I'll make use of an extra buildroot layer, sort of like a yocto meta
# so we can take advantage of predefined images, that embed scipy.
# by doing this, you don't have do customize anything manually
git clone https://github.com/oscimp/oscimp_br2_external # grab the layer
cd oscimp_br2_external
source sourceme.ggm
# this layer is not compatible with the latest BR tree,
# do this, so `make` does not fail
rm -rf package/volk
sed -i '/volk/d' Config.in
git clone https://github.com/buildroot/buildroot # download current BR tree
cd buildroot
patch -p1 < ~/Downloads/v2-*  # apply the two patches from the link above
make raspberrypi4_64_scipy_defconfig # prepare for custom image
make # initiate the build, build will fail @50% of scipy-1.9.0

Thanks @gwbres, that worked out of the box on Arch Linux after installing cpio and upgrading to GCC 9.
support/misc/cross-compilation.conf.in generates for the scipy package build this cross file (as ./output/build/python-scipy-1.9.0/build/cross-compilation.conf):
# Note: Buildroot's and Meson's terminologies differ about the meaning
# of 'build', 'host' and 'target':
# - Buildroot's 'host' is Meson's 'build'
# - Buildroot's 'target' is Meson's 'host'

[binaries]
c = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-gcc'
cpp = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-g++'
ar = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-gcc-ar'
strip = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-strip'
cmake = '/usr/bin/cmake'
fortran = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-gfortran'
pkgconfig = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf'
g-ir-compiler = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/bin/g-ir-compiler'
g-ir-scanner = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/bin/g-ir-scanner'

[built-in options]
c_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
c_link_args = []
cpp_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
cpp_link_args = []
fortran_args = ['-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-Os', '-g0', '-D_FORTIFY_SOURCE=1']
fortran_link_args = []
wrap_mode = 'nodownload'
cmake_prefix_path = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/cmake'

[properties]
needs_exe_wrapper = true
sys_root = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot'
pkg_config_libdir = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig:/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/share/pkgconfig'
pkg_config_static = 'false'
# enable meson build to pass a toolchain file to cmake
cmake_toolchain_file = '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/share/buildroot/toolchainfile.cmake'
cmake_defaults = false

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'cortex-a72'
endian = 'little'

Looking at the build log in output/build/python-scipy-1.9.0/build/meson-logs/meson-log.txt, it finds the host Python:
Program python3 found: YES (/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/python3)

Then here is when it goes wrong in determining the correct path to libnpymath.a:

Searching for 'python-3.10' via pkgconfig lookup in LIBPC
Pkg-config binary for 1 is not cached.
Pkg-config binary for 1 specified from cross file, native file, or env var as ['/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf']
Found pkg-config: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf (1.6.3)
Determining dependency 'python-3.10' with pkg-config executable '/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf'
env[PKG_CONFIG_LIBDIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig:/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/share/pkgconfig
env[PKG_CONFIG_PATH]:
env[PKG_CONFIG_SYSROOT_DIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot
Called `/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf --modversion python-3.10` -> 0
3.10
env[PKG_CONFIG_LIBDIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig:/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/share/pkgconfig
env[PKG_CONFIG_PATH]:
env[PKG_CONFIG_SYSROOT_DIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot
Called `/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf --cflags python-3.10` -> 0
-I/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/python3.10
env[PKG_CONFIG_LIBDIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig:/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/share/pkgconfig
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]:
env[PKG_CONFIG_SYSROOT_DIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot
Called `/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf --libs python-3.10` -> 0

env[PKG_CONFIG_LIBDIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/pkgconfig:/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/share/pkgconfig
env[PKG_CONFIG_PATH]:
env[PKG_CONFIG_SYSROOT_DIR]: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot
Called `/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/pkgconf --libs python-3.10` -> 0

Running command: /home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/bin/python3 -c import os; os.chdir(".."); import numpy; print(numpy.get_include())
--- stdout ---
/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/lib/python3.10/site-packages/numpy/core/include

libnpymath.a is present on the target:
$ find . -type f -name "libnpymath.a"./output/target/usr/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a
./output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a
./output/host/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a
./output/build/host-python-numpy-1.21.2/build/temp.linux-x86_64-3.10/libnpymath.a
./output/build/python-numpy-1.21.2/build/temp.linux-aarch64-3.10/libnpymath.a

I think one confusing thing is that we use python for code generation tasks (in which case host python - in Buildroot's terminology, so on the build machine - is fine), for obtaining paths to source code like the f2py and pybind11 sources (in which case host python and host f2py/pybind11 is also fine), and for obtaining paths to two static libraries: libnpymath.a and libnpyrandom.a (those need to come from the target).
And finally we also use the py3.extension_module etc.; here py3 is the host Python but Meson knows it's cross-compiling and does its thing to build extensions for the target Python, as can be seen in the detailed log above from Meson looking for python-3.10 via pkg-config and then including this in the compile flags:
-I/home/rgommers/code/tmp/buildroot-scipy/oscimp_br2_external/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/python3.10

Okay, so far so good. We just need to override the paths to the two static libraries we need it looks like.

you got it right, host-python can be used on the build machine to generate code and locate things.
./output/host/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a
# is the one to use on the build machine, so the one being unfortunately prefered
./output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a
# is cross-compiled and the one we should use

We just need to override the paths to the two static libraries we need it looks like.

what is the entry point to do so?
In buildroot we can customize the arguments and environment passed to "Ninja", I tried to add the correct numpy/core path to Ninja "LINK_ARGS" variable, but nothing changed..

I think this needs changing in scipy/meson.build to explicitly take into account cross-compiling and construct the path from target site-packages if meson.is_cross_build() is true.

It does seem that buildroot uses the same methodology, and thus needs the same solution, as @ericonr from Void Linux.
One possible solution, which is a bit unfortunately heavyweight, is to run the unmodified cross-compile python via qemu as the specified python. This would sidestep the "use a custom sysconfig data" modifications, but on the other hand, emulating python via qemu isn't optimal.

What I'm going to try right now is to not query the path but simply:
if meson.is_cross_build()
  incdir_numpy = py3.get_install_dir() / 'numpy' / 'core' / 'include'
else
  incdir_numpy = run_command(py3,    # like before

@gwbres what is the best way to apply a patch? Have a patch file in package/python-scipy, or point this to a local repo somehow?
PYTHON_SCIPY_VERSION = 1.9.0
PYTHON_SCIPY_SOURCE = scipy-$(PYTHON_SCIPY_VERSION).tar.gz
PYTHON_SCIPY_SITE = https://github.com/scipy/scipy/releases/download/v$(PYTHON_SCIPY_VERSION)

The latter would be nicer to iterate, is that possible?

@rgommers
congratulations, it works.
I manually modified the "libnpyrandom" and libnpymath" path, in scipy/meson.build, and it worked.

what is the best way to apply a patch

If you have a patch file (*.patch) that was generated so that it applies correctly at the base of the scipy repo, you can simply put it in buildroot/package/python-scipy, and buildroot will automatically apply it before "configure" step, see other  existing patches
ls buildroot/package/*/*.patch

Great, thanks!

So hardcoding the path worked for @gwbres, but my patch above does not, it ends with:
ERROR: Include dir /usr/lib/python3.10/site-packages/numpy/core/include does not exist

So that created the path relative to sysroot, the full path we need is:
./output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/python3.10/site-packages/numpy/core/lib/libnpymath.a

sys_root is specified in the cross file. It looks like Meson will automatically prepend the sysroot to -I and -L when compiling, but that doesn't help here; we need the correct absolute path passed to include_directories. It doesn't look like there is a good way to do that. Not too surprising, this is a little hacky; such paths should be obtained from pkg-config normally or we have to build the path knowledge into dependency('numpy') rather than trying to run the target Python to obtain them. @eli-schwartz as a short-term fix, is there a way to get Meson to tell me the absolute path (including sysroot) to the site-packages dir of the target Python?

Hello guys,
@rgommers, as far as my personal case is concerned, we have the temporary solution to help locate the libs. It turned out pybind11 is also faulty in some architecture, so I also tweak its localization ('host-pybind' this time, not cross-compiled; as opposed to the libs).
By doing this, everything passes, installation process seems perfect.
When I log into the generated system, scipy is unusable, it says the "extension modules cannot be imported":
import scipy.special
ImportError: the scipy install you are using seems to be broken, extension modules cannot be imported, please try reinstalling
# inner trace
ImportError: cannot import name '_ccallback_c' from 'scipy.lib'
usr/lib/python3.10/site-packages/_lib/_ccalback.py

Would you have any idea? from my perspective, nothing seems to be wrong. All binaries were properly cross-compiled, scipy populates a /usr/lib/python3.10/scipy which seems fine.

The issue is not specific to _ccallback_c, that is simply the first extension module that's imported in scipy/__init__.py. There can be multiple root causes, it's not possible to tell from the error here. There's a few things to try that will give more info:

cd scipy/_lib followed by `python -c "import _ccallback_c" will give a better traceback
use ldd, objdump or readelf to obtain the list of shared libraries that the extension module depends on (it may show what is missing)
if you can share your latest patch, I can try it locally and see if I can reproduce the failure. I don't have a Raspberry Pi, but I'd like to see if I can reproduce it under Qemu; that is what we need to do anyway if we want to run a cross-compile to an arm64 flavor in CI (which I do want to add)

@gwbres: pybind11 is a header-only library and, for many such libraries, the distinction between host and build arches is probably irrelevant. However, if some implementation details like field widths or struct packing are rendered into the headers at the time pybind11 is installed, you can have all sorts of alignment problems that in the compiled object that are invisible during compilation.
Although I've used pybind11, I've never looked deeply into its implementation. Given that it is manipulating the CPython runtime, there is a fair chance these kinds of issues manifest here.
Alternatively, this could be unrelated to pybind11 and instead just some other incompatibility in your cross build.

I finally have time to start revisiting this topic. First up is supporting specifying the paths to the host (non-native) versions of numpy, pybind11 and pythran (plus basic docs): gh-18034.

@doronbehar thanks for sharing! First thought: yes, I would be interested in a cross-compile CI job based on Nix (just one, for now at least, with the latest versions of all dependencies).
An issue with GitHub Actions is that it only provides x86-64 runners, so testing for example cross-compiling to aarch64 or armv7hf would require QEMU for testing. In that case we can test only a subset of the full test suite (e.g. special or linalg only), because it's very slow. The alternative is to test on Cirrus CI. It has more capabilities, but I'm not yet as familiar with it - we'd probably need to write the logic to trigger the test job on a different architecture in Starlark. @andyfaff do you have any thoughts on Cirrus vs. GHA here?

I don't think it matters which CI one uses in terms of speed. My initial thought is for GHA, simply because you can have a standalone yml config. However, if you're trying to demonstrate a build on x86_64 and host of aarch64 I'd choose cirrus. This is because you can have different tasks that use different OS/arch. For example when we build wheels on cirrus we make macosx_arm64 and manylinux_aarch64 in their own tasks. We then have a subsequent task that uses a generic linux/x86_64  to upload the wheels created by the others. Here we could demonstrate cross compile on x86_64, then have a subsequent task that would test natively on aarch64..
Other thoughts:

I'm not sure how fast cross-compiling will be. I did some initial experimentation trying to make manylinux_aarch64 by using QEMU in GHA. It was quite slow, and didn't even finish the build. That could've been due to the way I was using QEMU. Cross compiling may be a lot faster, cibuildwheel + GHA managed to build the macosx_arm64 wheels straightforwardly. meson is also a lot faster to build with (steer clear of setup.py).
There are ways to setup QEMU straightforwardly on GHA e.g.  https://github.com/marketplace/actions/cross-platform-action or https://github.com/docker/setup-qemu-action. Or follow the documentation in https://cibuildwheel.readthedocs.io/en/stable/faq/#emulation

For example when we build wheels on cirrus we make macosx_arm64 and manylinux_aarch64 in their own tasks. We then have a subsequent task that uses a generic linux/x86_64 to upload the wheels created by the others.

Great, thanks - if we already have that then let's follow the same pattern.

I'm not sure how fast cross-compiling will be.

It's about as fast as a native build. No emulation is needed (modulo maybe a few very quick tasks); the compiler does the same amount of work.

I made a wiki entry for best practice in developing CI configurations at https://github.com/scipy/scipy/wiki/Best-practice-for-development-of-CI-configurations.

Great, thanks - if we already have that then let's follow the same pattern.

I suggest making a standalone CI configuration in https://github.com/scipy/scipy/tree/main/ci. Call it e.g. cirrus_cross_compile.yml.
https://github.com/scipy/scipy/blob/main/ci/cirrus_wheels.yml shows how to link tasks one after the other.
https://github.com/scipy/scipy/blob/main/ci/cirrus_general_ci.yml shows how to do a clone on Cirrus.
The configuration gets added by amending the last line of .cirrus.star to return fs.read("ci/cirrus_general_ci.yml") + fs.read("ci/cirrus_cross_compile.yml")

Adding myself as interested in this as original bug marked closed

any chance that cross compilation instruction for openWRT OS could be included ?

That's better asked to the openWRT OS team - any relevant differences between that OS and other Linux/embedded OSes are not something we are aware of or can maintain docs for.

i have tried there for numpy, but still no answer ... i am trying with crossenv but still cant get the hang of it


Rework step findings

Parse steps that end with yaml and verify that a script is
found and is executable, log the error if not.
Signed-off-by: Adam Stokes<EMAIL_ADDRESS>

Looks good. As for running steps in tui mode, we do want that. maybe we should punt to the step metadata and define defaults there and just let tui mode use those defaults. Or we could have an environment variable that tells the script that it is running as tui. Then it could do whatever it needs to work.

Looks good. As for running steps in tui mode, we do want that. maybe we should punt to the step metadata and define defaults there and just let tui mode use those defaults. Or we could have an environment variable that tells the script that it is running as tui. Then it could do whatever it needs to work.

Ok, I'll create an issue to get the steps implemented in TUI mode


Discord itself.

So it seems that discord is pretty fast these Days when it comes to taking down your account when using Discord. Will it be possible somehow to update pysilon to maybe make it... more friendly to discord? Or maybe even add a own Gui like "Quasar" just a thought tho IF this project is even still in working cuz i really love it and cant get my mind of this Genuies project in addition to the ez to use setup and perfect tools for it like everything about it is or was perfect... no im missing the time when my accounts wouldnt last only two days for trying it out with myself
this is more of a question than a bug report..

Hey, just use the ModdedPysilon version, it covers every bug and it make sure your discord account never get banned.
Leave me a star if you like my project ;)


Selectable lists - fails to import any JSON, even the example given in documentation

The following command, using only the example JSON from the Selectable Lists page, results in "JSON Import Failed."
/usr/local/bin/dialog -d --title "test window" --jsonstring '{
"selectitems" : [
		{"title" : "Select 1", "values" : ["one","two","three"]},
		{"title" : "Select 2", "values" : ["red","green","blue"], "default" : "red"},
		{"title" : "Select 3", "values" : ["up","down","left","right"]}
	]
}'

https://jsonlint.com says this is valid JSON.

btw this is version 1.11.1, downloaded two days ago.

--jsonstring doesn't like newlines in the json structure because in order to be able to support newline characters (i.e the literal text \n) within a --message block it will convert \n to \\n and this breaks the valid json check. Stick everything on one line and it will work.

which BTW is why JSON rocks - you can smash an entire json into a single line and it's still valid. Try that with YAML and see how far you get 😛

Step 1. Open BBEdit.
Step 2. Paste JSON.
Step 3. Click Text > Remove Line Breaks.
Step 4. Do a celebratory fist pump in the air.
Step 5. Bow in gratitude toward the author.
Step 6: Humbly ask the author to update this page with a bit more clarity and remind implementers to smash their JSON into a single line.  :)

it's a bit of a compromise I know - One thing I'd like to do is let you have multiple --jsonstring so you can create content piecemeal.

JSON page has been updated BTW with a note on how --jsonstring will expect input

which BTW is why JSON rocks - you can smash an entire json into a single line and it's still valid. Try that with YAML and see how far you get 😛

Of course it totally borks if you put a comma after the last item in an array, unlike well designed languages such as Python.


Added version information per Issue 152

Includes information (release number, release date, compliance date) for R5.0.3 and R5.1

Closes https://github.com/Project-Counter/cop5/issues/152

5.0.3 is a bugfix only release that should become effective when it is published.


refactored, optimized and beautified some parts of the code.

added auto_capture support
switched to ruby 1.9 syntax
used spree coding guidelines

Thank you for the changes, i like the new hash syntax more, too.
The spree coding guidelines are these? http://guides.spreecommerce.org/developer/contributing.html
i've done some following changes on that. and transferred it all to 3.1 branch:
Are the scopes for Spree::PaymentMethod and Spree::Payment mandatory or are these kind of scopes you make normally when doing payment methods? They are not used anywhere..
ec85a6b54373ee246132cb35702170aad40adc25
I am not sure if the payment method should support auto capture true, because the payment is not really captured when there is a success redirect. But i can live with it, because the default in spree payment method for this is false by default.
And the capturing of the payment should not take place in the order class i suppose.
bdd839b237405f7883edf1ee27e7c47de5e0412f

The scopes aren't neccessary. i did them so i can easy scope over to make a list of all payments and whatever. you can keep them or remove them. i do stuff like that because it's useful for future and somebody might need it anyways.
for the guidelines, yeah those guidelines. trying to keep code conventions and using as much spree functionality like order.paid? if possible.


Will the hotline issue TANs for quick PCR-Tests?

Your Question
From Twitter reports I heard that the TAN hotline does currently not issue TANs for quick PCR tests. Will this change with version 2.19, as in this version quick PCR tests are also supported in the app?

@Ein-Tim As far as I understood, should the feature be officially implemented then it is also planned that TANs are issued for quick PCR tests.

Okay, thanks. I thought this feature is planned for 2.19, isn't it?

Hi @Ein-Tim, planned yes, particularly in the sense, that the app is being prepared for that functionality. There might be changes in the mean-time, as usual.

@dsarkar
Okay, thanks.
I'll leave this issue open until the version is released & will ask you for confirmation again then.
Enjoy Friday!

Seems like the hotline will not issue TANs for quick PCR tests: https://github.com/corona-warn-app/cwa-website/pull/2528.
Closing this issue.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How i can use Leaflet.Snap.Gridlines? i can't find it

It looks like this was added by @germanjoey in this commit: https://github.com/makinacorpus/Leaflet.Snap/commit/a1a8d11839df05a30d10c5aba14553e139a84a7b
And subsequently removed in a cleanup (but the docs remained): https://github.com/makinacorpus/Leaflet.Snap/commit/ba1f7e9c4f4926e676548a67db4d1c77ac3f3e86
Perhaps the implementation wasn't 100% bug free or something.... gonna check it out and see if I can salvage some of it.


HA for kafka manager

How can I configure kafka Manager on 2 nodes for same kafka Clusters?
If I configure a separate KM with different ZK for same kafka cluster, then both KM portal shows different metrics and different consumers, which looks like due to KafkaManagedOffsetCache is shared in that case.
KM1/ZK1 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
KM2/ZK2 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
Looking to keep KM available in case one of my KM node crashes

any idea on this?

Not sure why u can't already run 2 KM instances at same time.  Each instance will haven its own offset cache.

@patelh will KafkaManagedOffsetCache cause any issue like conflict as using same kafka cluster by two different KM?

The below design is working with no issue
KM1/ZK1 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
KM2/ZK2 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
now need two types of instances, one is readonly and other admin access. as KM doesn't support RBAC, so I created 2 instances by copying to new home directory and able to restart successfully
KM1/ZK1 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
KM2/ZK1 -> MyCluster1, MyCluster2, MyCluster3......,MyCluster20
But on accessing the KM GUI, only 1 of them works and other gets error
`
! @75mekbfcn - Internal server error, for (GET) [/km/] ->
play.api.UnexpectedException: Unexpected exception[IllegalStateException: cannot enqueue after timer shutdown]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:261) ~[com.typesafe.play.play_2.11-2.4.6.jar:2.4.6]
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[com.typesafe.play.play_2.11-2.4.6.jar:2.4.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:151) [com.typesafe.play.play-netty-server_2.11-2.4.6.jar:2.4.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:148) [com.typesafe.play.play-netty-server_2.11-2.4.6.jar:2.4.6]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [org.scala-lang.scala-library-2.11.8.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:216) [org.scala-lang.scala-library-2.11.8.jar:na]
at scala.util.Try$.apply(Try.scala:192) [org.scala-lang.scala-library-2.11.8.jar:na]
at scala.util.Failure.recover(Try.scala:216) [org.scala-lang.scala-library-2.11.8.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:326) [org.scala-lang.scala-library-2.11.8.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:326) [org.scala-lang.scala-library-2.11.8.jar:na]
Caused by: java.lang.IllegalStateException: cannot enqueue after timer shutdown
at akka.actor.LightArrayRevolverScheduler.scheduleOnce(Scheduler.scala:277) ~[com.typesafe.akka.akka-actor_2.11-2.3.14.jar:na]
at akka.actor.Scheduler$class.scheduleOnce(Scheduler.scala:117) ~[com.typesafe.akka.akka-actor_2.11-2.3.14.jar:na]
at akka.actor.LightArrayRevolverScheduler.scheduleOnce(Scheduler.scala:182) ~[com.typesafe.akka.akka-actor_2.11-2.3.14.jar:na]
at akka.pattern.PromiseActorRef$.apply(AskSupport.scala:333) ~[com.typesafe.akka.akka-actor_2.11-2.3.14.jar:na]
at akka.pattern.AskableActorSelection$.ask$extension(AskSupport.scala:158) ~[com.typesafe.akka.akka-actor_2.11-2.3.14.jar:na]
at kafka.manager.KafkaManager.kafka$manager$KafkaManager$$tryWithKafkaManagerActor(KafkaManager.scala:195) ~[kafka-manager.kafka-manager-<IP_ADDRESS>-sans-externalized.jar:na]
at kafka.manager.KafkaManager.getClusterList(KafkaManager.scala:580) ~[kafka-manager.kafka-manager-<IP_ADDRESS>-sans-externalized.jar:na]
at controllers.Application$$anonfun$index$1.apply(Application.scala:24) ~[kafka-manager.kafka-manager-<IP_ADDRESS>-sans-externalized.jar:na]
at controllers.Application$$anonfun$index$1.apply(Application.scala:24) ~[kafka-manager.kafka-manager-<IP_ADDRESS>-sans-externalized.jar:na]
at play.api.mvc.ActionBuilder$$anonfun$async$1.apply(Action.scala:456) ~[com.typesafe.play.play_2.11-2.4.6.jar:2.4.6]
`
also see error as  #401
Is there anyway to run two duplicate instances using same ZK ?

This problem has been solved in the new version.
props.put(org.apache.kafka.clients.consumer.ConsumerConfig.GROUP_ID_CONFIG, s"KMOffsetCache-$hostname")

The above solution addresses the problem  of different instances of Kafka Manager on different nodes.
Could we extend it bit to include port number in the consumer group name?
Currently we run two instances of Kafka Manager(for backup and load sharing) on the same node in Dev environment where resource is limited. And we found each instance just contained partial information about the Kafka cluster because the two instances are in the same group.


fix(plugin): fix plugin runner race condition

Description
A new plugin runner instance is created for each input, that means that none of the synchronization mechanisms work in the underlying code (each has it's own mutex).
https://github.com/openclarity/vmclarity/blob/bcdab9c5380728b7a27308d2b096972c2f632b94/scanner/families/plugins/runner/runner.go#L61
This leads to race conditons in several places (docker network creation, image pulling, etc).
WARNING[2024-07-15T19:23:10Z] Scan job "kics" for input rootfs:/terragoat3/ failed  input="rootfs:/terragoat3/" app=vmclarity family=plugins error="error during plugin execution: failed to start plugin runner: failed to create plugin container: failed to start container: Error response from daemon: network vmclarity-plugins-network is ambiguous (5 matches found on name)" scanner=kics metadata="Scanner=kics Input=rootfs:/terragoat3/ InputSize=2 M

Type of Change

[X] Bug Fix
[ ] New Feature
[ ] Breaking Change
[ ] Refactor
[ ] Documentation
[ ] Other (please describe)

Checklist

[x] I have read the contributing guidelines
[ ] Existing issues have been referenced (where applicable)
[ ] I have verified this change is not present in other open pull requests
[ ] Functionality is documented
[ ] All code style checks pass
[ ] New code contribution is covered by automated tests
[ ] All new and existing tests pass

Is this fixes #1890?

No, this is a quick for for a race condition in the Docker plugin handler.


docker images have stopped getting specific tags

We were looking at selecting a version of this image (avoid unexpected future changes) but noticed that the tags on docker hub are just being pushed as latest. i.e. no specific version tags since 7 months ago.
Is this intentional and could it be possible to adopt a semver style so we could utilise the latest images while still getting pinned versions?
Also, thanks for the great module! Saved a lot of time

there have been new tags now and there will be more in the future. the images are now available via Microsoft Container Registry. the tags can be found at https://hub.docker.com/r/microsoft/iot-edge-opc-publisher/


Enable Sourcegraph

Sourcegraph is a good place to read and dive in code. please enable it :)
Just go to https://sourcegraph.com/github.com/cyfdecyf/cow
Thank you!

Enabled now :)
I've heard about Sourcegraph before but haven't tried it. It seems really nice at first glance.

Thanks!


Sev snp enhancements v1

Hi there,
This pull request adds miscellaneous patches to address minor issues in computing the launch digest and formatting MetadataWrapper as a JSON.
Thank you!

@derpsteb Hi there. Could you please confirm whether this pull request looks good? Thank you so much!

@derpsteb Thank you for approving!
The following commit conflicts with my pull request, and I just fixed it:
https://github.com/virtee/sev-snp-measure-go/commit/7ac59e8bc6812faeb56356f8d4e8edd56f829f27

@derpsteb Could you please merge this pull request?

Closing this one as resolved by #5 .
I only realized now that I had "rebase and merge" selected and not "create merge commit". Thus, github rightfully complained that some commits are conflicting.
Anyways. Hope it works now.


⚠ TiendaEnLinea has degraded performance

In afa126f, TiendaEnLinea (https://www.fahorro.com/) experienced degraded performance:

HTTP code: 200
Response time: 5591 ms

Resolved: TiendaEnLinea performance has improved in 8877c41.


can not update

I got the error blow when updating atom-react, and the version of my Atom is 1.4.0.
npm WARN addRemoteGit git+https://github.com/millermedeiros/rocambole.git#1bd5044df1d6c888a1bd1b511158fb34b011e9aa resetting remote /Users/superlin/.atom/.apm/_git-remotes/https-github-com-millermedeiros-rocambole-git-fa28ae6f because of error: Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
npm ERR! git clone --template=/Users/superlin/.atom/.apm/_git-remotes/_templates --mirror https://github.com/millermedeiros/rocambole.git /Users/superlin/.atom/.apm/_git-remotes/https-github-com-millermedeiros-rocambole-git-fa28ae6f: Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
npm ERR! Darwin 15.4.0
npm ERR! argv "/Applications/Atom.app/Contents/Resources/app/apm/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Users/superlin/.atom/.apm/.apmrc" "--userconfig" "/Users/superlin/.atom/.apmrc" "install" "/private/var/folders/mk/l3ytycgn7vn6l0xw7jwwzc4c0000gn/T/d-116022-872-1l1x8x5/package.tgz" "--target=0.34.5" "--arch=x64"
npm ERR! node v0.10.40
npm ERR! npm  v2.13.3
npm ERR! code 69
npm ERR! Command failed:
npm ERR!
npm ERR! Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
npm ERR!
npm ERR!
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /private/var/folders/mk/l3ytycgn7vn6l0xw7jwwzc4c0000gn/T/apm-install-dir-116022-872-2npov6/npm-debug.log

having the same issue. using atom 1.6.2

I just received this when attempting to update to 0.16.1.  Any ideas on how to fix?


Problem when "Write to the single file" is checked in XLSX export

Description
When we checked "Write to the single file" in XLSX export, if we using the variables datasource, catalog or schema (these was the options that i tested), the value comes as empty.
Follow some prints to explain better.
DBeaver Version
Community edition 22.1.5
Operating System
Windows 10 x64 21H2 build 19044.1889
Database and driver
Database MySQL
MySQL driver JBDC 8.0.17
Steps to reproduce

First try use the variable catalog without checked "Write to the single file"
Try look on left layer: confirm > in the Objects > Target, the name generated there catalog value

AND

Now try checking "Write to the single file".

The name generated comes with the catalog value empty.

Additional context
Extension: DBeaver Office Extension

Hello @maphstay,
This is the expected behavior. The option Write to the single file, well, writes everything into a single file. Therefore the output filename must not be unique.
Perhaps you wanted to use the Append to the end of the file option?

Yeah, i can append the name statically, but this way i need change the value for some database that i want export.
In my case too i need edit label sheet to comes with the table name, this is possible using write to the single file ?

No, it's not possible.

so for now this is all, I appreciate your help.


Observable10

Add Observable 10 palette
https://observablehq.com/blog/crafting-data-colors

This is already in dicopal since https://github.com/riatelab/dicopal.js/releases/tag/0.8.0, see also the README which lists it.


Question. Toggle Tiled Map service with check box?

I have some imagery in my Map Tour.  I have added a checkbox to my Map Tour application.  Which file in the template do I need to modify to toggle this imagery on and off with the checkbox?  Is their a way to target the web map and the services in that map within the template to change their visibility when the box is checked on and off?

Yes MapTour is registering a global variable named app, though app.map you can access the map and do your magic :)
I recommend that you add your code in index.html, you can register your click event after this line https://github.com/Esri/map-tour-storytelling-template-js/blob/master/MapTour/src/index.html#L1172

Cool! It works!...I decided to go with two buttons instead of check box but it works perfect. Thank you so much!
Here is what I did, just for other's reference....
I added two html buttons in the index.html file like this.....
                            <button id="imgbtnon">Flood Imagery</button>
    			<button id="imgbtnoff">Streets</button>

Then I added JS to the end of the index.html like this....
if (isInBuilderMode) {
require(["storymaps/builder/Builder", "storymaps/maptour/builder/BuilderView"], function(Builder, BuilderView) {
Core.init(new MainView(), Builder);
Builder.init(Core, new BuilderView());
});
}
else
Core.init(new MainView());
function addListeners(){
document.getElementById('imgbtnon').onclick = function(){
var FloodLayer = app.map.getLayer(app.map.layerIds[1]);
FloodLayer.setVisibility(true);
}
document.getElementById('imgbtnoff').onclick = function(){
var FloodLayer =   app.map.getLayer(app.map.layerIds[1]);
FloodLayer.setVisibility(false);
}
}
window.onload = addListeners;
});
}
);
});
}


Design changes

Related Issue

Design Changes

Closes: #145

@jain-rishabh-21 Please label this PR as per the GGSOC. My name is not on the leaderboard.

@jain-rishabh-21 Do me a favor and add labels related to GGSOC and assign me to this PR. This way, the contribution will count towards the leaderboard points. Currently, it is not being counted.


Nested responsive element has incorrect size

Live Demo
http://lolmaus.github.io/loadimpact-assignment/#/requests
Steps to reproduce:

Open the page at 700px width
Click the "more options" link
See the options component aligned vertically, that's the small layout
The larger horizontal layout appears only after window resize

The options component is displayed/hidden via jQuery's .slideUp() and .slideDown().
I expected to resolve this issue with eqjs.refreshNodes() but it does not help.
Screenshot

Note that the third red circle shows the width of the parent element (they both have the same width). The element in question has its width displayed as auto, maybe this has something to do with the issue.

Element queries work only on element that has layout (so its width can be calculated).
Your <div class="paginatorWithOptions-options-inner"> element is hidden when page loads (its parent has display: none style) so it has no layout and the element query doesn't get applied.
You will have to detect the moment when the element becomes visible (maybe use jQuery callback when slidedown animation starts?) and then call eqjs.query() to recalculate the element query.

Ah, eqjs.query() does work, thank you!
I was sure that eqjs.refreshNodes() should also do the thing:

Alternatively, you can use eqjs.refreshNodes() to update the listing of nodes that is use by eqjs.query() with all of the nodes currently in the DOM.


(PUP-6531) improve service provider detection on Ubuntu

Rather than relying on version strings to determine which init-system is
in use, use the fact that the presence of /run/systemd/system (on
Debian-based systems generally, but I only can confirm for Ubuntu)
implies systemd is suitable.
Additionally, do not attempt to to use upstart in that case. However, if
systemd is not in use and upstart is the init-system (as detected by the
presence of the appropriate binaries as currently), treat upstart as
suitable.
Not-signed-off-by: Nishanth Aravamudan<EMAIL_ADDRESS>

To be clear, I'm expecting this to fail to build (as it did). I don't know puppet or ruby well enough to express that systemd should be suitable if /run/systemd/system is detected and upstart should be suitable if not. Both will be further constrained by the expected executables.

CLA signed by all contributors.

I just tweaked this a bit, to basically not let upstart only rely on the executable detection for suitability. I think it's incorrect, actually, and upstart should only be used if systemd is not detected as being running.
Also, I've found puppet describe service --providers, but I've not yet found a way to tell me the list of puppet providers that are suitable? I can run with --debug and get a list of those not suitable, but I can't yet determine if puppet is using systemctl because of the debian provider or the systemd provider.

Ok, this version works now for CI purposes and I think we'll pull this into Ubuntu, at least, as it means we don't need to worry that upstream's puppet has the right version checks in it.
I think it also fixes a long-standing bug (pseudo-bug?) with puppet where just having upstart (package) installed was enough for upstart to be considered a suitable init-system (which leads to issues like https://bugs.launchpad.net/ubuntu/+source/puppet/+bug/1570472).

@kylog would you be able to take a look at this? Just want  some verification this is sane, so we can at least apply it to Ubuntu's puppet for the time being.

Could we have some movement on this?  This is a really basic, fundamental bug in puppet that effectively makes it unusable on recent versions of Ubuntu.

@nacc This all looks pretty reasonable to me. There's a minor conflict in the systemd provider that prevents merging though.

I am out of the country right now, but I will do my best to refresh my PR
soon. If someone wants to rebase it themselves in the meanwhile, feel free.
Thanks,
Nish

Hi @nacc, with the 5.5.x branch being cut, can you check again on this conflict?  Thanks!

Can one of the admins verify this patch?

Hi,
We haven't recieved responses to our last couple comments - Please let us know if you want to keep moving forward with this, otherwise I'm going to close it in a couple more weeks

Since there has been no movement on this PR in the last few weeks, I'm going to close this. This doesn't mean we don't value this work. If you decide to pick this up again, please either reopen this pull request or create a new one. Thank you!


TypeError: 'NoneType' object is not subscriptable

当我选用ns_Transfomer运行时报出TypeError: 'NoneType' object is not subscriptable这样的错误，但选择Transformer没有这样的问题

Hi，did you resolve the problem.If so,can you tell me how to do that.Thank you^_^

Hi，did you resolve the problem.If so,can you tell me how to do that.Thank you^_^

I'm sorry, I don't know what the reason for the mistake is.

Fine


[IMPAC-411] disable kpis feature on current_user.kpi_disabled

https://github.com/maestrano/maestrano-hub/pull/330
https://github.com/maestrano/mno-enterprise/pull/176

@cesar-tonnoir We could.. But I thought it could be useful to also be able to disable it on the front-end as well. What about we change the Theming service default to enabled? So then it feels like it's back-end driven, unless wanted otherwise. If you strongly feel this is unnecessary I am happy to remove this. Let me know.

Yep ok, sounds good to me
Le jeu. 22 déc. 2016 20:39, Xaun Lopez<EMAIL_ADDRESS>a écrit :

@cesar-tonnoir https://github.com/cesar-tonnoir We could.. But I
thought it could be useful to also be able to disable it on the front-end
as well. What about we change the Theming service default to enabled? So
then it feels like it's back-end driven, unless wanted otherwise. If you
strongly feel this is unnecessary I am happy to remove this. Let me know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/maestrano/impac-angular/pull/279#issuecomment-268759164,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJI4QdtnrvwVf8N3AjKEXh5coOM5ukT8ks5rKkU5gaJpZM4LRyoO
.

--
Cesar Tonnoir
Product Manager - Impac!
Maestrano
Australia
Suite 504, 46 Market Street, Sydney, NSW 2000
Ph | +61 (0) 2 9279 4344 Mob | +61 (0) 468 900 269
USA
404 5th Ave, Suite 5012, New York, NY 10018
Ph | +1<PHONE_NUMBER>
Dubai | Singapore | London
<EMAIL_ADDRESS>| www.maestrano.com

@cesar-tonnoir pushed change, please approve :)


fix: ar headers parsing

golang array slicing does not include the last element,
the code fixes reading large archives,
previously filesize was wrong

Thanks, looks good to me!


OIDC: Environments and delegate-access

User Story
Complete OIDC work for the environments terraform and delegate-access.
This will need to have changes to the OIDC provider in the root account, see conversation here - https://mojdt.slack.com/archives/C013RM6MFFW/p1667824037263999
User Type(s)

Value

Questions / Assumptions / Hypothesis

Definition of done

[x] delegate-access converted
[x] environments converted
[ ] readme has been updated
[ ] user docs have been updated
[x] another team member has reviewed
[x] tests are green
[ ] UR test OR added to continual research plan

Reference
How to write good user stories

Related Issues:
https://github.com/ministryofjustice/modernisation-platform/issues/2568
https://github.com/ministryofjustice/modernisation-platform/issues/2593
Context:
We would like to convert workflows that currently run with organisation master account iam user credentials to use OIDC. Organisation master account already has an OIDC provider so the change only requires a github web identity assumable role in the master account which has permissions to assume these roles.
Prerequisite PRs:
Module that creates a Github Web Identity Assumable Role here: https://github.com/ministryofjustice/modernisation-platform-github-oidc-role
PRs that creates/fixes this role in the org master account here: https://github.com/ministryofjustice/aws-root-account/pull/628 & https://github.com/ministryofjustice/aws-root-account/pull/629
https://github.com/ministryofjustice/modernisation-platform/pull/2686:

Gives the new role permissions on the state bucket
Converts new-environments/delegate-access workflow job to OIDC
Converts scheduled-baseline/delegate-access workflow job to OIDC

https://github.com/ministryofjustice/modernisation-platform/pull/2694:

Converts remaining jobs to OIDC.


Vulnerability roundup 85: jhead-3.03: 3 advisories [7.1]

search, files

[ ] CVE-2020-6624 CVSSv3=7.1 (nixos-20.03, nixos-unstable)
[ ] CVE-2020-6625 CVSSv3=7.1 (nixos-20.03, nixos-unstable)
[ ] CVE-2019-19035 CVSSv3=5.5 (nixos-20.03, nixos-unstable)

Scanned versions: nixos-20.03: a84b797b28e; nixos-unstable: 22c98819ccd. May contain false positives.
Cc @rycee

CVE-2019-19035 should now be fixed in 20.03 (8b38149d616ca46cdd08d78316eea5eaa210043d) and unstable (7395b11cd4c2a16fa060e8b419113ca872d36c78). These commits probably also fix CVE-2020-6625 but I haven't been able to confirm.

Can this be closed with #107627?

Yes, I may revisit this in the future but will close for now.


Suggestion: add an npc argument in the sit/sleep command to control remote npc

Hi, the idea is to add an npc object argument in the sit/sleep command. This way we can order remotely for the npc to sit or sleep. Exemple - sit <npc[46]>

Nonsense request of a feature that already exists https://one.denizenscript.com/denizen/vids/The Player and NPC Arguments


copy from one bucket to another

Copies all secrets files from one base to another base
Requires user to have access to resources for both from and to aws-secrets
Takes from and to base names as arguments
Does download files locally when processing

@gcampo88 I fixed this up some more, if you want to take a look now


Simple triangle demo with new CLI code

set-trust and set-balance will auto-create the two nodes involved if they don't exist yet, and if the <to> was not a friend of the <from> yet, a from.meet(to) will be issued, that will lead to a meet message so the to can also add the from as a friend.

$ deno run -A ./src/run.ts set-trust bob charlie 10 XCH
node added to batched network simulator: charlie
bob emits message charlie meet
error: Uncaught (in promise) TypeError: probe.isVirginFor is not a function
        if (probe.isVirginFor(friend)) {
                  ^
    at file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:140:19
    at Array.forEach (<anonymous>)
    at ProbesEngine.flushProbesQueue (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:135:34)
    at ProbesEngine.tryToSendProbes (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:157:12)
    at ProbesEngine.queueProbe (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:168:10)
    at file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:175:12
    at Array.forEach (<anonymous>)
    at ProbesEngine.queueAllFloodProbes (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:172:20)
    at ProbesEngine.addFriend (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/engine/probesengine.ts:190:10)
    at Saiga.meet (file:///Users/michiel/gh/ledgerloops/ledgerloops/src/saiga.ts:176:23)


Using geolocation the the package

This issue I am having: http://stackoverflow.com/questions/31192327/current-position-on-map-meteor
I have been stuck on this for 3 days, any ideas how I should tackle this? @dburles

Hey @JulianSamarjiev sorry I haven't got back to this sooner, did you manage to figure it out? I can't see any code in your example for creating a marker. Perhaps look into Meteor's own package for geolocation, it may simplify things.
Seems like a simple idea for an example app, I may take a look into doing a blog post on that :)

Cheers for getting back, I will take a second crack at it once I get some time :) keep up the good work :)!


Socratic Seminar 24 Reading List (June 18, 2024)

https://www.meetup.com/boston-bitdevs/events/301432750
Drop links here!

Quantum resitance addresses
https://github.com/cryptoquick/bips/blob/p2qrh/bip-p2qrh.mediawiki

Risk analysis framework for bitcoin L2s and sidechains
https://delvingbitcoin.org/t/proposed-risk-framework-for-bitcoin-l2s-and-sidechains/933

"ZK Rollup on Bitcoin" whitepaper, or "How to build a trustless two-way BTC peg"
https://github.com/alpenlabs/Technical-Whitepaper/blob/main/whitepaper_v085.pdf

CISA research https://cisaresearch.org/

Utreexo beta release: https://groups.google.com/g/bitcoindev/c/5GyV9af9lv4

https://github.com/rustyrussell/bips/blob/guilt/varops/bip-unknown-var-budget-script.mediawiki

SNARKnado: a practical, round-efficient SNARK verifier on bitcoin
https://www.alpenlabs.io/blog/snarknado-practical-round-efficient-snark-verifier-on-bitcoin

https://github.com/supertestnet/hedgehog

Hedgehog - A protocol for improved layer two bitcoin payments

https://delvingbitcoin.org/t/64-bit-arithmetic-soft-fork/397/49

64 bit arithmetic soft fork

https://delvingbitcoin.org/t/mutual-exclusiveness-of-op-codes/890

Should overlapping soft fork proposals be considered mutually exclusive?

especially post from ajtowns

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html

[bitcoin-dev] New transaction policies (nVersion=3) for contracting protocols

More on v3 txs:

Activation PR to Core https://github.com/bitcoin/bitcoin/pull/29496
BIP-431 https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki
Optech topic list https://bitcoinops.org/en/topics/version-3-transaction-relay/

Wasabi Wallet coinjoin coordinator shuts down...
https://x.com/wasabiwallet/status/1786083838415769673
... then 10 new coordinators appear:
https://x.com/nopara73/status/1797232582003691699
FreeSabi bot tracking wabisabi coordinator liquidity:
https://x.com/FreeSabiBot

Dev Bounties with Bitcoin

Stacker News policy and results
Sphinx bounty platform
Also, Zeus, Mostro

Thanks all for the contributions to the reading list! Closing this issue now that June's event is over. Next Boston BitDevs will be in September :)


No bug - Pass command line arguments through npm run.

My intended use case is to specify the path the browser loads per-window
UI from.
r? @Mossop

LGTM

Coverage remained the same at 83.871% when pulling 84e29b1051d97cb24a30e6b6c613660db4dff418 on ncalexan:args into 2acd09c9fc2287fe8389ef7e37c1fd2c67e37e86 on mozilla:master.


Identifier attestation tokenscript

See https://community.tokenscript.org/t/tokenscript-meeting-39/390
@jot2re this draft branch is where you should commit your work on modeling the structure of every piece of message needed in the MVP attestation protocol.

@colourful-land is it ok I merge this into master?

@colourful-land is it ok I resolve the trivial conflicts and merge this into master?

Yes, can you check and solve the conflicts?


Alba Integration Test Fails with Wolverine Middleware host

Describe the bug
Hi Team,
I want to use Wolverine endpoints in my application.
When I add Wolverine middleware in the program file: builder.Host.UseWolverine();
the app works fine, but my integration test with Alba host fails with the error:
System.AggregateException : An error occurred while writing to logger(s). (Cannot access a disposed object.
Object name: 'EventLogInternal'.)
Seems to be coming from Microsoft.Extensions.Logging.
However, when I exclude Wolverine middleware and use Minimal API the Test project passes my test.
To Reproduce
Steps to reproduce the behavior:

Run dotnet test for the test project in this sample project: [https://github.com/franks1/NurseRegistry]

Expected behavior
I expect that the test project should not fail.
Screenshots

@franks1 I cloned your repro and the one test in there passes on my box. There's no middleware in the project, or at least no Wolverine middleware. I added some fake middleware that used an ILogger and still didn't see what you saw. Hit me up on Discord if you want, but for right now I'm closing this just for the sake of bookkeeping.

@franks1 I cloned your repro and the one test in there passes on my box. There's no middleware in the project, or at least no Wolverine middleware. I added some fake middleware that used an ILogger and still didn't see what you saw. Hit me up on Discord if you want, but for right now I'm closing this just for the sake of bookkeeping.

Thank you . I will surely get in touch on discord. Thank you

@franks1 Did you solve this for yourself? Running into the exact same issue.

Well, I think I solved it for myself. I was calling DisposeAsync() on the Alba host, but calling StopAsync() instead seems to have solved the problem.

I seem to have solved this for myself. I was calling DisposeAsync() on the Alba host, but should have been calling StopAsync() instead.


Throttle.java: Do not hardcode the number of semaphores

It may be a good idea to replace numeric constants used for the number of semaphores with some number derived from the number of available CPU cores / threads.

What values would you propose?

My idea was that instead of hardcoding constant number of semaphores, you would only hardcode multipliers (of available threads/cores).
For example if you know that 32 concurrent tasks work well on a system with 16 threads, you would simply hardcode a multiplier of 2.
Then you wouldn't have to change your source when someone, some time later, uses this tool with 64 available threads.
Simply put: make the tool scalable with a system with an infinite amount of cores.

I get the idea. But what exact values would you propose?
Assuming n is the number of processors online, what should be the value of maxCheckoutTasks, maxSrpmTasks and maxRpmTasks?

From my personal experience: checkout is limited by network and disk, I think it is fine to keep the number hardcoded.
For Srpm and Rpm tasks I would say something around 3/2× up to 2× of the available CPU threads.

Commits 9a3d6f6ac8cdda505953230c27f7696537a11bbe and d10ba982447672d47c6873a055488f63c85b1abf addressed this.


No longer runs or builds due to many old dependencies

Tried to run from clean checkout but all package dependencies are quite old and cannot be resolved.
Tried on Win 10 64 bits.

@robotiko it's Not maintained

Hi, thanks for the reply.


Q: Unique lookup values

Hello!
I was wondering if you could help me with a lookup. I want to show the unique quarters that are associated with related days. Right now I only know how to show the quarter for each which gives me a lot of repeat values. How can I only show the unique values?
Thank you!

If you use a custom summarizing function you could apply more logic to the pages
return [...(new Map(pages.map(x => [x.quarter.path, x.quarter])).values())]

Hello! I tried your solution and this is what I got. Not quite working!

Can you share a couple example note yaml sections and/or the property config?

Is this what you mean?

With these notes in the root of my vault:
March.md
W1.md
W2.md
and this fileclass defined:
testissue.md
I get the desired behavior, but I'm not sure I have the notes set up quite the same as you 😅


Added basic middleware capabilities

What did I do?

Added apply_middleware() method to Store that accepts fn(&T, &U). It is essentially the same as subscribing to the store except this also allows you to get the specific action that was dispatched.
Added a logger middleware in the todo_list example.
I also changed the definition of reducer from fn(&T, U) -> T to fn(&T, &U) -> T. I had to use the action in more than one place inside the dispatch function. If you know a better way to do this let me know. I am still pretty new to rust so any helpful criticism is very much appreciated.
Updated README.md with updated information on middleware and new reducer definition.

Notes for the future:
My goal for the next few days/week is to change the Store to support interior mutability. Essentially, the struct Store would become immutable, but these Store methods would edit data inside the Store that is mutable. I'm a little unfamiliar with this kind of stuff, but I know rust has good support for it. What interior mutability would allow is to do things like chaining store methods and writing a middleware platform that could manipulate the store; all without  handing out a mutable reference of the store to the user.

Quick update: I have a version ready that allows for chaining store operations. Since the current implementation already passes around a mutable reference of the store it isn't a bad thing that the individual store methods return another mutable reference. I will add that in a separate PR sometime later today.

I haven't forgotten about this, but I will probably not have time to dig into it (and make a new github org) until tomorrow.
Redux actions should be immutable anyway, so changing the signature of reducers shouldn't pose any problems.
I would like to have a look at creating an apply_middleware more true to the original, at least in functionality, if not implementation. With access to only state and action the majority of redux middleware could not be written.

I agree. I can look more into this sometime this weekend. Don't merge this pr in until you feel the middleware support is sufficient. I'll look more into improving it over the next few days.

Did you have any specific ideas for what functionality the apply_middleware method should have?

There are basically two features that I can think of, redux middleware has access to the store for doing two things, dispatch and getState(), you already feed the state into the middleware, so the thing that is missing there is a way for the middleware to dispatch an action of it's own.
This is the thing I'm sure I would need to create any kind of middleware for handling side effects.
The second feature is that in Redux the middleware runs in a sequence, and each middleware controls when (and if) the next middleware in the chain is called, which also controls when (and if) the reducer is called.
I think a good idea is probably to port a few more middlewares from javascript to see that the apply_middleware we have is good enough to build things on, I started having a go at redux-thunk, but haven't gotten very far yet.

Alright thanks for the input! I will be working on this sometime in the next few days and will do some more research on reduxjs to see if I can't more closely mimic its middleware.

So after tinkering with this for about 30 minutes I figured out that there are basically two options to allow for action dispatches within middleware (for rust).
First option: We could essentially 'fake' the dispatch and just give them a mutable version of the state. I think there might be some decent ways of wrapping this up to give the impression of being handed a dispatch function without doing it. This would however have the drawback that any actions dispatched within middleware wouldn't ever go back through the middleware.
Second option: We switch the Store model over to  an interior mutability environment where we can pass around immutable references of the Store that can still update the state within the store. This would allow for middleware to accept a Store reference directly and can then dispatch actions or get the state from the Store reference.
I'm definitely leaning toward the second option. Let me know what you think about these methods of doing it and if you think of a better solution I'd be happy to hear it!

I think your instinct is definitely right 🙂 and I can't think of any other way to properly implement middleware without wrapping the internal state in a RefCell (or Cell theoretically).

I haven't used the interior mutability types since I first learned about them so I'll start doing more research and add those changes to the library sometime this week!


Test modifier for onboarding

What's this PR do?
This is a variation / modifier for onboarding to make it full screen.
We will apply the modifier via Optimizely for now on campaigns with no competition/voter reg/etc modal flow
How should this be reviewed?
Add -onboarding class to the onboarding div
Any background context you want to provide?
This was 90% mobile ready but we decided to not worry about that for now, we'll only target desktop in optimizely
Relevant tickets
Fixes 1 part of #6929
Checklist

[ ] Documentation added for new features/changed endpoints.
[ ] Tested on staging.
[ ] Pinged a PM if this is a larger PR that would benefit from some additional testing love.

Add -onboarding class to the onboarding div

Do you mean -fullscreen?

Add a screenshot of what it looks like in the issue description!

Do you mean -fullscreen?

Uhhhhhhh :shifty: 👀

@weerd okie dokes flipped it to percents

¡OLÉ! :sheep: it!

🚂 🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋🚋 🚋


Feature/dyslexia swap feature

For issue 344
-I've added Google style docstrings to my code. here
-I have added tests to cover my changes. here

thanks for your work @ArkajyotiChakraborty, we will adapt your code into the library


SDK version >=6.13.0 for DMA compliance

Report
On what Platform are you having the issue?
Android
Issue
Have received an email from AppsFlyer indicating that version >=6.13.0 for their Android SDK allows us to pass consent for DMA compliance which Google is taking into effect on 6th March 2024.
Can we get the SDKs updated so we can ensure we are compliant before that date?

I'm wondering the same thing. It's also not completely clear how to implement it. Will it be a new kind of prompt?


Get mobile working again

@keybase/react-hackers
Changes to settings tab from more tab and coming soon stuff didn't happen on mobile so stuff ended up breaking.
This fixes it.

:+1:


Add GPU usage to verbose metrics

Help users understand how much of the model fit into their GPU without having to resort to inspecting the server log
A few examples from different systems and models
eval rate:            4.40 tokens/s
gpu usage:            1 GPU (14/27 layers) 3.2 GB (2.0 GB GPU)

eval rate:            6.64 tokens/s
gpu usage:            1 GPU (27/27 layers) 3.2 GB

eval rate:            18.44 tokens/s
gpu usage:            2 GPUs (27/33 layers) 27 GB (24 GB GPU)

eval rate:            19.58 tokens/s
gpu usage:            CPU (0/27 layers) 3.2 GB

https://github.com/ollama/ollama/pull/4190 broke lint on windows. gofmt is still a problem

Still chewing on the optimal UX, so I've removed the UX from this PR to lay the groundwork for a follow up PR to expose it in the UX.


432Hz Batch Converter - "Shift pitch" text fields max out at 4 digits (technically 5 if you include a value of 10000)

As you know, interpolation and high frame rates can be quite useful, and it's best to use exact multiples e.g. 2x, 3x, etc.
However, many TVs, such as my own, does not support any refresh rates below 49.091Hz nor any refresh rates above 64Hz.
So for 24fps content, I will sometimes instead slightly speed them up to 24.55fps so that, with 2x interpolation, they'll play at 49.1fps.
This is easy enough with true 24.000fps content since the ratio necessary only needs 3 digits for exact precision—with "round pitch" unchecked and "skip tempo adjustment for quality" checked, you simply just set it to shift pitch from 480Hz to 491Hz.
The problem are those pesky 24000/1001 videos (more commonly referred to as 23.976) since the exact ratio for that would be shifting pitch from 480000Hz to 491491Hz which requires 6 digits of precision, and 432Hz Batch Converter only allows for 4 digits of precision (technically 5 if you include a value of 10000Hz).

What's the actual problem, and what would you suggest as a solution?

the exact ratio for that would be shifting pitch from 480000Hz to 491491Hz which requires 6 digits of precision, and 432Hz Batch Converter only allows for 4 digits of precision

I'm just looking for more than 4 digits of precision is all.

It might be a display-only limitation. I could allow displaying more digits. I suspect it's parsing your 9 digits anyway.

I just did some tests and I can definitely say that it's not just a visual issue and it is in fact limited to 4 digits of precision.
I simply generated a sine wave in Audacity with a length of 491491 samples which, in the aforementioned scenario, should have the resulting sped-up audio have a length of 480000 samples... but it does not.
By contrast, if I generate a sine wave in Audacity with a length of 491400 samples, then the aforementioned scenario does indeed give the resulting sped-up audio a length of exactly 480000 samples due to the fact that 491491 was truncated to 4914.

I looked at the Shift Pitch box, it allows any digits of precision you need.
Do you need to put a value above 10000Hz?? What for? That would just result in a super high-pitch noise.

That would just result in a super high-pitch noise.

That's only if you have auto pitch-detection enabled.
The issue is that I have that function unchecked and so I'm specifying both the input and the output pitch, and I'm putting in a source value that is definitely higher than the actual pitch in order to have greater precision.
For example, the automatic pitch detection can detect values like 441.4 so, in order to manually recreate that, I have to put in a source value of 4414 (without decimal) and an output pitch of 4320. But that's all the more I can do—I can't put in even more precision, like from 441325 to 432000 where 441325 represents a pitch of 441.325Hz.

If it's only the ration between the 2 values that matter, why can't you put decimals in both values?

...holy bananas, I had no idea it accepted up to 14 decimal places!
In the past, gosh, uh... decade?  In order to test how many digits a text field accepts in a program or a website, I always just first type<PHONE_NUMBER>1234567890... and, when I did that, it truncated the result to only 4 digits.
It never even crossed my mind that it'd truncate digits differently if you used a decimal point!
I guess my problem is solved then, but Isn't this sort of inconsistent behavior in the UI?

Values that are too far out could cause problems, no guarantee that they'd play properly, and it's not the intended purpose. As for decimals, I have no reason for rounding. Higher precision can end up useful sometimes.
So I'll close this.


fix: on-cel-expression typo on openstack populator

Needs https://github.com/kubev2v/forklift/pull/1199 to be merged

@mnecas @yaacov this one can be merged!


added support for secrets and OAuth2 cred flow

Hello @Meyce - finally had a moment to get my changes up to a fork and get a PR open across the fork to your repo.  Take a look, let me know what needs changing or if the changes here are acceptable.  This allows for a developer to select between your original cert based bearer auth implementation or use the creds & client secret auth implementation, along with a simple write of a payload to STDOUT and an updated readme.md with usage instructions.  Thanks!

Any interest in this PR still?


Does not run

Does not run on ubuntu-16.04-desktop-amd64.iso:
me@host:~$ /home/me/Downloads/ShmupWarz-x86_64.AppImage
/home/me/Downloads/ShmupWarz-x86_64.AppImage: error while loading shared libraries: libSDL2_image-2.0.so.0: cannot open shared object file: No such file or directory

At least the following libraries are missing from the AppImage:

libSDL2_image-2.0.so.0 => not found
libSDL2_mixer-2.0.so.0 => not found
libSDL2_ttf-2.0.so.0 => not found
libsndio.so.6.1 => not found

I've read the wiki, but I don't understand the automated testing process - I'm not finding AppImageAssistant anywhere.
Anyway, I have a spare laptop I use for testing. I did a fresh install of Trisquel7, and repoduced those errors and fixed it.
I think I'm getting it now, so here is an updated download
ShmupWarz-x86_64.AppImage download

AppImageAssistant is outdated. You can use the testappimage script like this:
testappimage /path/to/some-live.iso /path/to/some.AppDir

Hm, docker isn't compatible with either of my linux systems.
On ElementaryOS, the script fails:
Using OverlayFS because kernel is 4.x or newer
mount: wrong fs type, bad option, bad superblock on /dev/loop2,
missing codepage or helper program, or other error
On Trisquel, Docker is available in the ppa, but the prerequisites aren't all there due to their concern for my 'freedom'- Trisquel is utra gnu.
I guess that leaves travis+docker. I don't know about that. I don't like travis, and I've never used docker. That sounds too much like work:)
So, I also did an experiment over the holiday - I asked my wife to try install chrome on linux using the .deb on their website, and she said it was as easy as in Windows. But she had trouble with doing the chmod thing to install my game...I forget that not everyone uses the command line. I think I'm going to put AppImage on hold for now - the geek in me loves it, but it may not fit my goals.

I've had good successes with using Ubuntu Live ISOs.

No command line needed :-)

http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80

I forget about doing it that way, elementaryos doesn't expose that checkbox.
I may end up offering both appimage and apt-get installs. There is a lot of overlap. The sdl libraries have to be built from source, so I am building all my binaries on launchpad, it's way easier to use than travis, and that populates my ppa. Then I could re-package those to make the appimage.  It looks like you have some examples of that conversion.
Launchpad does a lot of quality control, it's hard make a build that is missing bits. So I am going to focus on that - testing is a bit sticky. When I try testing on a live iso, I get fusermount: mount failed: Operation not permitted cannot mount AppImage, please check your FUSE setup.

VirtualBox works. So it runs on a fresh install from ubuntu-16.04-desktop-amd64.iso:

I forget about doing it that way, elementaryos doesn't expose that checkbox.

Pretty sure there is a differently-worded but similar option in elementaryOS.

I may end up offering both appimage and apt-get installs. There is a lot of overlap. The sdl libraries have to be built from source, so I am building all my binaries on launchpad, it's way easier to use than travis, and that populates my ppa. Then I could re-package those to make the appimage. It looks like you have some examples of that conversion.

Indeed, if you have everything in a ppa for trusty, then it's a matter of something like
app: ShmupWarz
union: true

ingredients:
  dist: trusty
  sources:
    - deb http://us.archive.ubuntu.com/ubuntu/ trusty main universe
  ppas:
    - darkoverlordofdata/myppa

to convert it to an AppImage.

When I try testing on a live iso, I get fusermount: mount failed: Operation not permitted cannot mount AppImage, please check your FUSE setup.

Which OS and how did you run it?

I have 2 systems -
Elementary Loki, kernel 4.4.0-57-generic.
Trisquel7 kernel 3.13.0-106-lowlatency
Pretty much anything I tried doing with Docker on either was failing, and I have no other requirement for it or experience with it. I decided using docker would be too much scope creep.
The only real issue with Elementary is trying to explain groups to a Windows user...

Yes, this is one area where Elementary is more complicated than need be. Check out the optional appimaged daemon which makes setting the executable bit manually unnecessary.


Jupyter notebook extension corrupted

I uninstalled jupyter notebooks because it was not interacting with the kernel correctly.
Note - I have anaconda3 installed. That was the extension's fault. I can start jupyter in my browser and it worked just fine. It ran infinitely - or for more than 60 seconds which is close enough on a local machine, frankly.
Right. Smaller problem. Big problem. I uninstalled Jupyter. And reinstalled Jupyter to see if that would do much to help. And uh, now I can't create notebooks. At all. The setting doesn't exist anymore. It shows the underlying JSON of the notebook when opened. Reinstalling the extension does nothing.
Other symptoms of this issue: running an interactive window produces the following error:
"The editor could not be opened due to an unexpected error: UNKNOWN notebook type 'interactive'"
Logging shows nothing indicating an extension failure:
Visual Studio Code (1.77.3, undefined, desktop)
Jupyter Extension Version: 2023.3.1201040234.
Python Extension Version: 2023.6.1.
Workspace folder c:\Users\admin\AppData\Roaming\Factorio\mods\general-testing
User belongs to experiment group 'jupyterEnhancedDataViewer'
User belongs to experiment group 'jupyterTest'
info 21:53:29.284: LSP Notebooks experiment is enabled
warn 21:53:30.108: Failed to get activated env vars for d:\tango\scoop\apps\python\current\python.exe in 578ms
info 21:53:30.121: Process Execution: > d:\tango\scoop\apps\python\current\python.exe -c "import site;print("USER_BASE_VALUE");print(site.USER_SITE);print("USER_BASE_VALUE");"
> d:\tango\scoop\apps\python\current\python.exe -c "import site;print("USER_BASE_VALUE");print(site.USER_SITE);print("USER_BASE_VALUE");"
info 21:53:30.230: Process Execution: > d:\tango\scoop\apps\python\current\python.exe -m pip list
> d:\tango\scoop\apps\python\current\python.exe -m pip list
info 21:53:37.749: Starting interactive window for resource '' with controller '.jvsc74a57bd010218cfcb948c60146421182469e243cbcb6fe2a6fbb9cd42c00c8e7c79225b6.d:\tango\scoop\apps\python\current\python.exe.d:\tango\scoop\apps\python\current\python.exe.-m#ipykernel_launcher (Interactive)'
info 21:58:56.705: Process Execution: > d:\tango\scoop\apps\anaconda3\current\python.exe -m pip list
> d:\tango\scoop\apps\anaconda3\current\python.exe -m pip list
info 21:59:06.967: Starting interactive window for resource '' with controller '.jvsc74a57bd0485f3aa15c5c44eac83971d5e45f5f47fc35f40cfcb344183b12d5cdb818d1b7.d:\tango\scoop\apps\anaconda3\current\python.exe.d:\tango\scoop\apps\anaconda3\current\python.exe.-m#ipykernel_launcher (Interactive)'

Attempted to uninstall and reinstall code. This did not resolve the issue.

@CoffeeCecil may I ask what version of VS Code and Jupyter extension are you using? There are multiple issues mentioned in this issue, including notebook document can't be opened/created, and also "not interacting with the kernel correctly". We want to make sure that your set up is up to date and troubleshoot together.

Figured it out, you just need to delete the user preferences cached in app-data as well as reinstall the program.


Clean libvterm files when running "make clean"

Codecov Report

Merging #5027 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5027      +/-   ##
==========================================
- Coverage   81.97%   81.97%   -0.01%
==========================================
  Files         133      133
  Lines      146566   146566
==========================================
- Hits       120149   120144       -5
- Misses      26417    26422       +5

Impacted Files
Coverage Δ

src/ui.c
69.06% <0%> (-1.26%)
:arrow_down:

src/mouse.c
71.28% <0%> (-0.09%)
:arrow_down:

src/channel.c
84.18% <0%> (-0.08%)
:arrow_down:

src/term.c
79.5% <0%> (-0.06%)
:arrow_down:

src/os_unix.c
63.45% <0%> (-0.05%)
:arrow_down:

src/window.c
88.29% <0%> (+0.06%)
:arrow_up:

src/gui.c
63.75% <0%> (+0.1%)
:arrow_up:

src/gui_gtk_x11.c
58.35% <0%> (+0.24%)
:arrow_up:

src/if_xcmdsrv.c
86.17% <0%> (+0.53%)
:arrow_up:

src/gui_beval.c
63.36% <0%> (+0.86%)
:arrow_up:

Continue to review full report at Codecov.

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

Instead of listing the files in src/Makefile, how about doing:
cd libvterm; $(MAKE)  clean

Instead of listing the files in src/Makefile, how about doing:
cd libvterm; $(MAKE) clean

That's what I originally did, but since you're not using libvterm's Makefile to perform the build, there are things that don't get regenerated.

James McCoy wrote:

Instead of listing the files in src/Makefile, how about doing:
cd libvterm; $(MAKE) clean

That's what I originally did, but since you're not using libvterm's
Makefile to perform the build, there are things that don't get
regenerated.

OK, it's a bit messy, since running the tests does use the libvterm
Makefile.  That's also how most of those files are generated.
Looking at this I also realize that renaming the libvterm source files
makes merging difficult.  Let's see if I can do that in another way.
--
LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
ARTHUR:    No, that's Saint Ives.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Update vidi-toolbag-metrics to support tagging and host

These have landed in 0.8.0. Plugin needs to be updated.

We also have UI supporting grouping that needs to be wired up to this data.


add equal method to nacosServiceInstance

Describe what this PR does / why we need it
when I replace my config server by nacos, I found I can't compare NacosServiceInstance.
Does this pull request fix one issue?

Describe how you did it
Add equals and hashcode method just like org.springframework.cloud.client.DefaultServiceInstance.
Describe how to verify it
Special notes for reviews

 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.wujieheng 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.


Idle Notification when Runelite is the active window

Can you please either by default or with a toggle add the idle or prayer/hp low notification when the RuneLite client window is the open/active window? Its nice to have a notification when you are doing something else in the room or watching tv when window is still open.
Thank you! and thank you for all that you've done. This client is amazing

Go to "RuneLite" settings, there is setting "Send notification when focused".


How to integrate module specific or project-specific settings?

We already have a mechanism in place to store and update user- or instance specific settings. However, currently we have no generic definition where and how to display these settings.
The existing settings for the information about the organization and the term-lists are much more specific, but we should also have a place where we can just add settings when needed.

Closing due to duplicate of #99


 Still issues with scenarios such as:

Collisions near a wall
Multiple collisions at once (one collision can push ball inside another ball)
Using radius as a "weight"
Bounces do not seem all natural (lose energy, not fully elastic?)


notifications: Focus app when a notification is triggered.

Fixes: https://github.com/zulip/zulip-electron/issues/358

Merged, thanks @cPhost 🚀


PromQL one to many matching with different label sets

When I have a metric with different label sets, for example:
label_metric{foo="a", bar="b"} 0
label_metric{foo="a", bar="c"} 0

my_metric{foo="a", bar="b"} 5
my_metric{foo="a"} 3

When I use the following aggregation:
min by (foo, bar) (
  my_metric
)

I get an expected result:
my_metric{foo="a", bar="b"} 5
my_metric{foo="a"} 3

But when I instead use one to many operation:
label_metric
+ on (foo, bar) group_left()
my_metric

I would expect a following result:
{foo="a", bar="b"} 5
{foo="a", bar="c"} 3

as it would be consistent with the aggregation operations behaviour.
But instead, I get the following result:
{foo="a", bar="b"} 5

This is behaviour is inconsistent with the aggregation operation behaviour. Is there any reason for this inconsistency? The problem I see here is that the group_left() operation can silently drop data. This is confusing, but more importantly it doesn't seem to be right, given that this data could be correctly paired.

This behaviour is consistent, and as expected.
It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.

This behaviour is consistent, and as expected.
It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


Trying to get in touch regarding a security issue

Hey there!
I'd like to report a security issue but cannot find contact instructions on your repository.
If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.
Thank you for your consideration, and I look forward to hearing from you!
(cc @huntr-helper)

Since this is a development tool that should not see the production environments, I would say that reporting such issues in the issue tracker should be enough. We can add SECURITY.md file, but I am not sure what we would place into it since we do not have a separate process for handling security issues right now.


View Style Props: Added Snack Example 🍿

In Reference to #1579
This PR adds a Snack Example for View Style Props.

Here is the snack preview link for the work I submitted
LMK if this looks good to you


👩🔬 [Investment Day] - Localize zip/postal/post code based on locale region

📲 What
This work has been inspired by @krstnfx and it simply localizes our Zip code field depending on the Locale.regionCode. You can read more here.
🤔 Why
It's a nice a11y/inclusivity touch for our users.
🛠 How
We're simply checking Locale.regionCode and decide which string to show based on that. Since we've previously already localized Zip code into our supported languages (which already use their region flavours) this PR simply touches our English localization for base or non-supported languages (i.e. English, Swedish, Czech, etc.)
👀 See
Trello, screenshots, external resources?

🇺🇸en_US
🌏 en_GB

🇨🇦 en_CA
🇨🇦 fr_CA

♿ Accessibility
Since this only affects the base language the device language must be set to English

[ ] Zip code field is properly pronounced by VoiceOver when the device region is set to 🇺🇸
[ ] Postal code field is properly pronounced by VoiceOver when the device region is set to 🇨🇦
[ ] Post code field is properly pronounced by VoiceOver when the device region is set to anything else

✅ Acceptance criteria
Since this only affects the base language the device language must be set to English

[ ] The field shows Zip code label when the device region is set to 🇺🇸
[ ] The field shows Postal code when the device region is set to 🇨🇦
[ ] The field shows Post code when the device region is set to anything else

⏰ TODO

[x] Have @dannyalright weight in on this and maybe test it on device

I've opened up a PR to address the strings first https://github.com/kickstarter/kickstarter/pull/16343 (so current status is still blocked).

Blocked after discussing this with Jazzy - waiting for the translations

The strings have been translated (and are actually identical to what we previously had)...should be good to go for final review.