skopeo: 0.1.31 -> 0.1.32

Motivation for this change
New release.
This release also fixes a bug we get when pulling image gcr.io/google_containers/pause. See https://github.com/containers/image/pull/503.
Things done
I successfully rebuild and run the pulled Nix image.

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build skopeo

Success on x86_64-linux (full log)
Attempted: skopeo
Partial log (click to expand)
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin/bin
patching script interpreter paths in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin
checking for references to /build in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin...
shrinking RPATHs of ELF executables and libraries in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man
checking for references to /build in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man...
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
/nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin

Success on x86_64-darwin (full log)
Attempted: skopeo
Partial log (click to expand)
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
find: '/nix/store/v8fbs6rjqcnkrikyw15hkd49yhq5l2vp-skopeo-0.1.32': No such file or directory
/nix/store/xb8z83abg9va9hhaldb28mfr94nzy6ss-skopeo-0.1.32-bin

Success on aarch64-linux (full log)
Attempted: skopeo
Partial log (click to expand)
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/nh604yg8w9nynbggfpy5l3ymgv0cbi6n-skopeo-0.1.32-bin/bin
patching script interpreter paths in /nix/store/nh604yg8w9nynbggfpy5l3ymgv0cbi6n-skopeo-0.1.32-bin
checking for references to /build in /nix/store/nh604yg8w9nynbggfpy5l3ymgv0cbi6n-skopeo-0.1.32-bin...
shrinking RPATHs of ELF executables and libraries in /nix/store/wihd2rjqfd9xnkvr7md3g0aa91ykcnf2-skopeo-0.1.32-man
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/wihd2rjqfd9xnkvr7md3g0aa91ykcnf2-skopeo-0.1.32-man
checking for references to /build in /nix/store/wihd2rjqfd9xnkvr7md3g0aa91ykcnf2-skopeo-0.1.32-man...
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
/nix/store/nh604yg8w9nynbggfpy5l3ymgv0cbi6n-skopeo-0.1.32-bin

Success on x86_64-linux (full log)
Attempted: skopeo
Partial log (click to expand)
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin/bin
patching script interpreter paths in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin
checking for references to /build in /nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin...
shrinking RPATHs of ELF executables and libraries in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man
checking for references to /build in /nix/store/k5kx8ii5al35fp8012k2hy6bgafxhhrk-skopeo-0.1.32-man...
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
/nix/store/2dhrahil24gnniv5m9phfz7vykr50rlh-skopeo-0.1.32-bin

Note I will backport this to 18.09.


tessel push no longer works

We need to transfer over /resources/start_node_script.sh into /app/start and then change the permission with chmod +x /app/start. This used to to be working but we must have lost it in refactoring.
NEED MORE TESTS.

Maybe I'm missing something here? With t2-cli/master, I just did t2 push on two different T2s and both work exactly as expected. I can unplug them, hook up battery and they run.
I took screenshots of my process for the second one that I deployed to:

At this line:
root@bishop:/app# ls

I've moved over to another terminal and ran this:

(Note that I did have to ssh to both boards to manually delete the previous contents, but that's unrelated)

@rwaldron interesting! So to be clear, you did delete the entire contents of /app first? I wonder if maybe the start script just never got deleted (broken until https://github.com/tessel/t2-cli/pull/354 lands) and so you didn't see this problem.
But, taking a look at the source, it appears the code is still in here... I'll have to investigate further on my T2.

@rwaldron you're right! It was an issue with my branch that was fixing erase. But I will try to add a test to catch the problem (it deployed to /appstart instead of /app/start).


Show child device interfaces under parent device

As ...
Ozzie - Operator
I want ...
I would like to be able to view all interfaces of a device + all it's child devices in 1 view. (preferably under the parent device)
So that ...
It's clear for everyone that the port they are looking for is not 'forgotten to create', but just under a PCIe network card that is a separate child-device in the device bays.
I know this is done when...

Either a separate tab under each device classified as a 'parent' with all interface on its mounted child-devices.
Or just add them under the 'interfaces' tab of the parent device, with a clear distinction that shows the interface is located on a child device.

Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[X] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[X] UI/UX
[ ] Documentation
[ ] Other (not directly a platform feature)

Database Changes
No response
External Dependencies
No response

Thanks for the submission @BoudewijnSwen! This is a nice ask of what I can interpret as a "device hierarchy detail view".

As the data model exists today, this would go against the intent of device bays, which are meant to model blade server type devices.
In v2.3 we will implement device models which will support a much more rich set of hierarchical interface relationships. Namely linecard use cases.


Query recursive nameservers for DNS01 challenge in round robin fashion

Is your feature request related to a problem? Please describe.
We use DNS01 challenge for certificate issuing. Due to security requirements we can't use public nameservers, we have to use internal network nameservers (we have three). So we set these parameters for DNS01 Self Check:
--dns01-recursive-nameservers-only
--dns01-recursive-nameservers=<IP_ADDRESS>:53,<IP_ADDRESS>:53,<IP_ADDRESS>:53
This works, but takes a lot of time.
After a CertificateRequest is created I can see the following log entries in cert-manager logs:
cert-manager/challenges "msg"="propagation check failed" "error"="DNS record for \"***\" not yet propagated" "dnsName"="***" "resource_kind"="Challenge" "resource_name"="***" "resource_namespace"="default" "resource_version"="v1" "type"="DNS-01"
This check keeps failing for about 15 minutes, but after that time the check passes and the certificate is finally being issued.
The delay is caused by caching performed by the recursive nameservers and it's described in the cert-manager documentation.
During this delay I checked the _acme-challenge DNS TXT record in parallel, manually.
What I've found is the following:
if I query the first nameserver from the configuration:
dig @<IP_ADDRESS> -t txt _acme-challenge.*** I get NXDOMAIN, so I really hit the cached answer here.
However, if I check the last nameserver from the configuration:
dig @<IP_ADDRESS> -t txt _acme-challenge.*** I get the answer, the challenge TXT entry is found. The cert-manager self check keeps failing though.
This makes me think cert-manager uses only the first nameserver from its configuration (at least when it's accessible). Querying all the nameservers in round robin fashion could make the self check to pass sooner and that would significally increase the perfomance.
Describe the solution you'd like
Cert-manager queries all the recursive nameservers from its configuration in round robin fashion, not just first one.
Describe alternatives you've considered
I set up a reverse proxy in front of our nameservers. This way cert-manager sends its requests to the same address, but they get processed by different nameservers and it works. Cert-manager can still accidentally hit the nameserver with cached NXDOMAIN answer, but after several tries it hits a nameserver without it and the self check passes.
Environment details (remove if not applicable):

Kubernetes version: 1.25
Cloud-provider/provisioner: AWS
cert-manager version: 1.12.4
Install method: helm

/kind feature

We've found a related issue with the logic being stuck on one nameserver.
We have two nameservers configured, but for recent Certificate, cert-manager was stuck on the last nameserver in the list. That nameserver had been replaced, so cert-manager just kept failing on that cert with:
sync.go:190] cert-manager/challenges "msg"="propagation check failed" "error"="dial tcp <nameserver>:53: i/o timeout" "dnsName"="<FQDN>" "resource_kind"="Challenge" "resource_name"="<FQDN>-tls-8v224-35168-4685175" "resource_namespace"="amro" "resource_version"="v1" "type"="DNS-01"


Remove -DPYTHON_HOME and -DPYTHON3_HOME by default

Use Python prefix when python is built, instead of vim is built.
This allows upgrading Python without rebuilding Vim, when Python
is dynamically linked.

Codecov Report

Merging #2787 into master will increase coverage by 0.1%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #2787     +/-   ##
=========================================
+ Coverage   75.09%    75.2%   +0.1%
=========================================
  Files          91       92      +1
  Lines      131613   134385   +2772
=========================================
+ Hits        98832   101060   +2228
- Misses      32781    33325    +544

Impacted Files
Coverage Δ

src/if_python3.c
74.93% <0%> (-1.38%)
:arrow_down:

src/if_python.c
76.71% <0%> (-1.31%)
:arrow_down:

src/spellfile.c
73.94% <0%> (-1.05%)
:arrow_down:

src/if_perl.xs
85.86% <0%> (-0.36%)
:arrow_down:

src/netbeans.c
27.03% <0%> (-0.28%)
:arrow_down:

src/libvterm/src/screen.c
54.91% <0%> (-0.19%)
:arrow_down:

src/if_lua.c
54.17% <0%> (-0.16%)
:arrow_down:

src/eval.c
81.25% <0%> (-0.15%)
:arrow_down:

src/main.c
56.35% <0%> (-0.14%)
:arrow_down:

src/regexp.c
82.51% <0%> (-0.08%)
:arrow_down:

... and 67 more

Continue to review full report at Codecov.

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

Some refs of issues which may be caused by PYTHON_HOME:

https://github.com/macvim-dev/macvim/issues/393
https://github.com/macvim-dev/macvim/issues/562
https://github.com/macvim-dev/macvim/issues/647
https://github.com/macvim-dev/macvim/issues/667
https://github.com/Homebrew/homebrew-core/issues/22411
https://discourse.brew.sh/t/python2-support-in-macvim-bottle/1823/8?u=methane

Use Python prefix when python is built, instead of vim is built.
This allows upgrading Python without rebuilding Vim, when Python
is dynamically linked.

Unfortunately, the docs for Py_SetPythonHome() do not mention what happens if
the function is not called.  Are you implying that it will use some internal
default from when Python was built?
If I recall correctly, the reason it was done this way is that it's possible
that a system has more than one version of Python installed and Vim needs to
know wher the libraries are.  But after that the 'pythonhome' option was added,
so perhaps that is no longer a good reason.
--
hundred-and-one symptoms of being an internet addict:
115.
/// 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    ///

Unfortunately, the docs for Py_SetPythonHome() do not mention what happens if the function is not called. Are you implying that it will use some internal default from when Python was built?

Yes.  See PYTHONHOME document.
https://docs.python.org/3.6/using/cmdline.html#envvar-PYTHONHOME

If I recall correctly, the reason it was done this way is that it's possible that a system has more than one version of Python installed and Vim needs to know wher the libraries are.

This was added by Roland's report and patch.

https://groups.google.com/d/msg/vim_dev/aXKujTac9nE/ZJ3Y7sLveS0J
https://groups.google.com/d/msg/vim_dev/sl4-rVXz0VQ/DiXPs3QDBSYJ

He said python3 can't load it's libraries from /usr/local without Py_SetPythonHome.  But actually, Python can.
I assume his environment was broken; maybe, libpython3.x.so is loaded from where he didn't expect.
But I'm not sure because his mail doesn't have enough information about how Python is installed and linked.

But after that the 'pythonhome' option was added, so perhaps that is no longer a good reason.

Agree.

This issue is very important for binary distribution of Vim like MacVim.
When Python's path is different between builder and user, Python can't load standard libraries even when Vim can load python DLL and the python DLL knows right python prefix.
Many MacVim users are suffered from this issue.

thanks!

I have multiple versions of python installed in my system.  The $PYTHON_HOME points to something.
which python is set to a different version of python.
i wanted vim to use a 3rd version of python and i was setting that in the config using  --with-python-config-dir=
after this change
py import sys is broken with the following error
E887: Sorry, this command is disabled, the Python's site module could not be loaded.
Thanks
Rajdeep

@justrajdeep You should set the pythonhome (or pythonthreehome) option to the right Python in your vimrc.

Theorically speaking, pythonhome should point to exactly same build of python. It means there can be problem caused by private API mismatch.
If vim is linked to different python, fix linking is better than using only library of different python.
@justradeep how do you build vim? +python/dyn or +python? If later, is python statically linked or dynamically linked?

 --enable-pythoninterp=yes \
 --enable-python3interp=no \

in my config

gvim_version.txt

What ldd vim shows?

Rajdeep wrote:

I have multiple versions of python installed in my system.  The
$PYTHON_HOME points to something.
which python is set to a different version of python.
i wanted vim to use a 3rd version of python and i was setting that in
the config using  --with-python-config-dir=
after this change
py import sys is broken with the following error
E887: Sorry, this command is disabled, the Python's site module could not be loaded.

I suspected this might happen.  How about keeping the PYTHON_HOME flag
when with-python-config-dir was used?  Let me add that to configure so
you can try it out.
--
hundred-and-one symptoms of being an internet addict:
146. You experience ACTUAL physical withdrawal symptoms when away
from your 'puter and the net.
/// 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    ///

ldd_vim.txt

@justrajdeep Thanks.  It seems your vim statically linked Python.
Maybe, prefix is different when Python is executed by python command and libpython.a.
Could you try this?
$ python2 -c 'import sys; print sys.prefix, sys.exec_prefix'
/usr /usr

$ cat test.c
#include <Python.h>

int
main(int argc, char *argv[])
{
	printf("prefix = %s\n", Py_GetPrefix());
	printf("exec_prefix = %s\n", Py_GetExecPrefix());
	printf("path = %s\n", Py_GetPath());
	printf("pyhome = %s\n", Py_GetPythonHome());

	Py_Initialize();
	PyRun_SimpleString("from time import time,ctime\n"
			"print('Today is', ctime(time()))\n");
	return 0;
}

$ cc test.c -o test `python2-config --cflags --ldflags`
$ ./test
prefix = /usr
exec_prefix = /usr
path = /usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload
pyhome = (null)
('Today is', 'Wed Apr 11 01:41:59 2018')

Pasting python2 -m sysconfig output to gist is also helpful.

I suspected this might happen. How about keeping the PYTHON_HOME flag when with-python-config-dir was used? Let me add that to configure so you can try it out.

I don't like it.  When vim is distributed as binary, Python is in different location.
Especially, homebrew changes directly for every micro version at least.
For special case like that, people can set PYTHON_HOME by CFLAGS="-DPYTHON_HOME=$(python -c 'import sys; print(sys.prefix)).

@brammool I confirmed -DPYTHON_HOME is not necessary.
$ git checkout f59c6e8cee092433d325ba21a107654a8d84f776
$ ./configure --enable-pythoninterp=yes --with-python-config-dir=$HOME/pyenv/versions/2.7.13/lib/python2.7/config --prefix=$HOME/local/vim && make -j4 && make install
...
:py import sys; print sys.prefix, sys.exec_prefix
/home/inada-n/pyenv/versions/2.7.13 /home/inada-n/pyenv/versions/2.7.13

Please don't embed PYTHON_HOME by default.  It makes impossible to distribute vim binary safely.
Python library knows it's prefix.  Even if not, user can use set pythonhome.

@methane
$ python2 -c 'import sys; print sys.prefix, sys.exec_prefix'
/usr /usr

save.txt
$ cc test.c -o test `python2-config --cflags --ldflags`
$ ./test

test_out.txt
python2 -m sysconfig

sysconfig.txt

Sorry, I meant "python you want to use with vim", not /usr/bin/python2.

@justrajdeep When seeing test_out and sysconfig, your Python is fine.
Now I suspect you're linking different Python.
Your gvim_version.txt says:
Linking: gcc -L/tool/pandora64/.package/glib-2.32.1/lib -L/usr/lib64   -L/usr/lib64   -L.
(snip)
-L/tool/pandora64/.package/python-2.7.3/lib -Wl,-rpath,/usr/lib64 -lutil -L/usr/local/lib -Wl,--as-needed -o vim   -pthread
(snip)
-L/tool/pandora64/.package/python-2.7.3/lib/python2.7/config -lpython2.7
(snip)

Does this command really link /tool/pandora64/.package/python-2.7.3/lib/libpython2.7.a?
What's happen if you replace -lpython2.7 with /tool/pandora64/.package/python-2.7.3/lib/lib/python2.7.a?

@methane
i dont do manual linking anywhere
setenv LDFLAGS "-L/tool/pandora64/.package/python-2.7.3/lib -Wl,-rpath,/usr/lib64 -lutil"
...
--with-python-config-dir=/tool/pandora64/.package/python-2.7.3/lib/python2.7/config \
--x-libraries=/usr/lib64 \
--x-includes=/usr/include \
--enable-pythoninterp=yes \
--enable-python3interp=no \
...

then only command run is:
make clean && make distclean && ./my_config && make && make install

the following
/tool/pandora64/.package/python-2.7.3/bin/python2 -m sysconfig

has no outpout

The other report says it is necessary.

In common case (apt install python, yum install python, or pyenv), it's not necessary.

Note that Vim should work out of the box, that's why we have configure. Setting 'pythonhome' should only be needed in rare cases.

Yes.  And installing Vim and Python from binary distribution is the major case.
Many homebrew users are suffered from -DPYTHON3_HOME because homebrew installs python to different place for every revision.
And they can't set specify configure/compile option, because the binary is prebuilt.
I'm OK to adding opt-in option which use -DPYTHON_HOME and -DPYTHON3_HOME,
but please don't use it.
For another major cases (apt install python, yum install python, pyenv install python), -DPYTHON_HOME and -DPYTHON3_HOME are not required.
I don't know pandra64, but I think it's rare case.

@justrajdeep OK, I found inconsistencies in your environment.
I don't know why, but you have (maybe broken) Python 2.7.3 and 2.7.5.
When you run python or python2, Python 2.7.5 is used.
But Vim linked with Python 2.7.3.
Since Vim embeds sys.prefix of python command (not library), your Vim running with Python 2.7.5's standard library.
Even if it works with -DPYTHON_HOME or set pythonhome, it's not right approach.
While Python keeps ABI while micro versions, standard libraries use private API which are not part of ABI.  Python standard libraries are tightly coupled with Python executable and library.
So in your case, you need to fix your configure script to use Python 2.7.5's config, not 2.7.3.

@brammool Now I understand why @justrajdeep is confused.
Here is demonstration using v8.0.1688 (which uses -DPYTHON_HOME again):
# I have two Python 2.7; /usr/bin/python2 and ~/pyenv/versions/2.7.13/bin/python
# I don't set PATH for pyenv's Python 2.
inada-n@rinrin:~/work/vim (master=)$ which python2
/usr/bin/python2
inada-n@rinrin:~/work/vim (master=)$ python2 -V
Python 2.7.14
inada-n@rinrin:~/work/vim (master=)$ ~/pyenv/versions/2.7.13/bin/python2 -V
Python 2.7.13

# Let's configure Vim with pyenv's config dir.
inada-n@rinrin:~/work/vim (master=)$ ./configure --enable-pythoninterp=yes --with-python-config-dir=$HOME/pyenv/versions/2.7.13/lib/python2.7/config

# config.mk mixes two Pythons!
inada-n@rinrin:~/work/vim (master=)$ grep PYTHON_ src/auto/config.mk
PYTHON_SRC      = if_python.c
PYTHON_OBJ      = objects/if_python.o
PYTHON_CFLAGS   = -I/usr/include/python2.7 -DPYTHON_HOME='"/usr"' -pthread -fPIE
PYTHON_LIBS     = -L/home/inada-n/pyenv/versions/2.7.13/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic
PYTHON_CONFDIR  = /home/inada-n/pyenv/versions/2.7.13/lib/python2.7/config
PYTHON_GETPATH_CFLAGS = -DPYTHONPATH='":/usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/home/inada-n/.local/lib/python2.7/site-packages:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages"' -DPREFIX='"/usr"' -DEXEC_PREFIX='"/usr"'

When --with-python-config-dir option is used, is it strict requirement that config-dir is consistent with python command?
If no, I think we should calculate PYTHON_CFLAGS from config dir.

@justrajdeep FYI, I think removing --with-config-dir option is better approach.  configure can detect right config dir from your python command.

@methane

I think removing --with-config-dir option is better approach. configure can detect right config dir from your python command

my idea was to have the reverse effect, --with-config-dir option to dictate which python to be used for vim. Shell might have a different version of python which might be broken still vim would be un-impacted.

Looking at this again, I wonder why we can specify the config directory with --with-python-config-dir,
but we cannot define the name of the python executable.  It's fixed to search for "python2" and "python".
So, why don't we add an --with-python2 argument, and deprecate --with-python-config-dir ?

So, why don't we add an --with-python2 argument, and deprecate --with-python-config-dir ?

I concur you. +1.

There is --with-ruby-command option.
--with-python2-command and --with-python3-command will be consistent with it.


Make timeout and thread pool sizes configurable for workers

In the current implementation, worker timeout is hard coded within the ballerina native code. This needs to be configured through ballerina program.
Thread pool size for workers is currently hard coded. It is better to make this configurable.

In the current design, workers don't require a timeout as we are waiting till workers to complete itself.
But the requirement of the thread pool configuration is not addressed yet. It will get added with new worker scheduler.

The worker thread pool size can be now given by setting the Ballerina environment property "b7a.runtime.scheduler.threadpoolsize". This is set to 100 by default.


v4 LUIS - LUIS specific errors are suppressed and don't bubble up correctly

Using the 12. NLP-with-luis (javascript_nodejs) sample in the v4 branch.
If I set an incorrect subscription id for LUIS, LUIS correctly throws a 401 at ~/node_modules/azure-cognitiveservices-luis-runtime/lib/operations/prediction.js, line 180. However, the error isn't caught correctly, and the sample returns a 500 error.
The response.statusMessage has the correct error message but it isn't returned up the chain to the bot code. It looks like the code is looking in the response body but that isn't how LUIS returns errors currently.
The console window has:
BotFrameworkAdapter.processActivity(): 500 ERROR - Error
botFrameworkAdapter.ts:476
(node:8232) UnhandledPromiseRejectionWarning: Error
warning.js:18
at client.pipeline (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\azure-cognitiveservices-luis-runtime\lib\operations\prediction.js:182:19)
at retryCallback (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\filters\systemErrorRetryPolicyFilter.js:89:9)
at retryCallback (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\filters\exponentialRetryPolicyFilter.js:140:9)
at c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\filters\rpRegistrationFilter.js:59:14
at handleRedirect (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\filters\redirectFilter.js:39:9)
at c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\filters\formDataFilter.js:23:14
at Request.defaultRequest [as _callback] (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\lib\requestPipeline.js:125:16)
at Request.self.callback (c:\Users\diberry\repos\12.nlp-with-luis.node.js\node_modules\ms-rest\node_modules\request\request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
(node:8232) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
warning.js:18
(node:8232) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Thanks for reporting! We had a mutual issue in Microsoft/botbuilder-js#426 and merged in a fix today via  Microsoft/botbuilder-js#442.


A few more FuTIL questions.

I'm still in the process of figuring out the process of Dahlia -> FuTIL -> verilog, so any help that in regard is great.
Edit: ^ fud is the answer to this from Slack chat.
I had a few more questions on top of that.

Let's say I have a group inner_multiplies.
I want to do the following:

 group inner_multiplies {
      mult.left = reg1.out;
      mult.right = reg5.out;
      reg_inner1.in = mult.out;
      mult.left = reg2.out;
      mult.right = reg6.out;
      reg_inner2.in = mult.out;
      mult.left = reg3.out;
      mult.right = reg7.out;
      reg_inner3.in = mult.out;
      mult.left = reg4.out;
      mult.right = reg8.out;
      reg_inner4.in = mult.out;
      inner_multiplies[done] = reg_inner4.done;        // & reg_inner3.done & reg_inner2.done & reg_inner1.done
    }

How come I can't take the & of these done cases? Unnecessary perhaps, i.e. is it guaranteed that within a group, reg_inner1 will be completed before reg_inner2, and so on?

Given a function component X(a: 32, b:32) -> (res: 32) How can I put in some dummy values to actually test the result? I believe I just make a new component main() -> () { ... } and add some values for a, b, but how do I see the value of res?

In fib.expect, I see:

group cond0<"static"=0> {
      cond0[done] = 1'd1;
      lt0.left = i_0.out;
      lt0.right = const3.out;
    }

3a. What is <"static"=0> ?
3b. You set cond0[done] to 1 immediately. Why is this? Won't this mean that the rest may not necessarily compute, or is this not the case? If it is not the case, why would one put it in the beginning rather than the end of the group?

The error message when you try to do this might be misleading. You can write:

inner_multiplies[done] = reg_inner4.done & reg_inner3.done & reg_inner2.done & reg_inner1.done ? 1'd1;

The inner_multiplies[done] hole requires a one-bit signal. It can come from anywhere!

This is the classic problem of testing "hierarchical hardware designs" where you want to observe the state of the inner modules somehow. I would try doing something like:

cells {
   x = X; // instantiate the X component
}
wires {
  group test_X {
    x.a = 32'd1;
    x.b = 32'd2;
  }
}
control {
  test_X;
}

When you run this program through a simulator, you will notice that the simulation trace contains a signal .TOP.main.x.res which will have the values on that wire. Try getting the json trace first and seeing if you can find the signal. If not, we'll debug on slack.
3a. "static"=0 is an optimization attribute. There is compiler pass called static-timing that compiles groups in a special way when we know the exact number of cycles they run for.
3b. This is a so-called combinational group---a group that immediately compute the results. Their semantics is not yet precise. See the discussion in #207.

Thanks Rachit. A few follow-ups & new questions below.
Follow-up for 3a, Is there a 1:1, i.e. "static"=0 is 0 cycles? Also, out of curiosity, how do we know how many cycles an instruction takes? Isn't this dependent on specific hardware?
New Q1: about dot.data:
I haven't been able to compile and simulate this yet given issues on my end, but figured it has an easy answer anyways. I'm curious why dot has the value 97 here. Everything else makes sense. But why does the function name have value 97?
New Q2: Can you tell me where write_en is defined, its semantics, and how it differs from write_data (as well as its semantics)? Is this part of the primitive stdlib, or some verilog thing? I see it being used there, but not an actual definition.

Follow-up for 3a, Is there a 1:1, i.e. "static"=0 is 0 cycles?

Indeed! While FuTIL programs can specify those and we compile them but the semantics are not quite clear. This is also what the discussion about #207 is trying to get at.

Also, out of curiosity, how do we know how many cycles an instruction takes? Isn't this dependent on specific hardware?

Ah, this is true when you're working with CPUs. But with FuTIL, you're the one who's building that specific hardware so you get to decide who many cycles things take! For example, registers (memories) in hardware take one cycle to propagate their state from input to output which is the key way to add more cycles to an operation. For example, you add four registers in a multiplier's logic and now it takes 4 cycles!

I haven't been able to compile and simulate this yet given issues on my end, but figured it has an easy answer anyways. I'm curious why dot has the value 97 here. Everything else makes sense. But why does the function name have value 97?

The dot variable actually refers to this local variable: https://github.com/cucapra/futil/blob/fud/benchmarks/dot-product.fuse#L5
Dahlia compiles to FuTIL by "hoisting" all local variables to the top and turning them into a register. The data is providing a value of that. When we clean up our interfaces a bit more, you shouldn't see that variable.

Can you tell me where write_en is defined, its semantics, and how it differs from write_data (as well as its semantics)? Is this part of the primitive stdlib, or some verilog thing? I see it being used there, but not an actual definition.

write_en and write_data have the same semantics (but different names). With memories, your input signal can always have a value on it. You need some way to tell the register that the input signal is something that it needs to store. The write_en (or "write enable") signal is what tells registers that they need to write the value on their input. If the signal is not set, the register just ignores its input.

@cgyurgyik if the answers make sense, please close the issue.


Unable to insert payment history with Employee Ledger Entries in bank statement (Dutch localization)

This GitHub repository is dedicated to handling issues and feedback for the latest Developer Preview releases of the AL development tools for Dynamics 365 Business Central.
If you can reproduce the problem on the latest Business Central Developer preview version we will be happy to look further into it. Otherwise please contact the regular support channel.
You can open Support Request to CSS through PartnerSource portal or contact your Service Account Manager (SAM) in the local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also step by step direct you how to open a support request or how to get credentials if this is the first time for you / your company.
For more details please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://github.com/Microsoft/AL/wiki/Frequently-Asked-Questions#i-found-an-issue-on-nav-2018-what-do-i-do

Within the Dutch localization it is not possible to insert payment history with Employee Ledger Entries in bank statement (Dutch localization).
Message: You do not have the following permissions on TableData Employee Ledger Entry: Modify.
Cause: Effective user permission to this table is Indirect modify. The insert action requires Direct modify permission.
Solution (probably): add permission to properties in Table 11401 - CBG Statement Line


Only read to first semicolon in MIME type

Implemented to accept input from httpie, which appends
; charset=utf-8 to the mimetype application/x-www-form-urlencoded.

Thank you!


support expectation tests

l3build is focused around regression tests, i.e. evaluating test output by comparing with a previous output defined as correct. Especially when testing typeset output, boxes or other complex matter, the test goals are not intuitive to read. It can often be easier to write and comprehend expectation tests, that is specifying test content and expected result in the same format. The patches proposed herein make it possible to alternatively specify expected results in the same format as tests. If such an expectation specification (.lve) is present, the .tlg is generated from it. The test passes when both .lvt and .lve lead to the same output, after processing by the usual log formatting.
You can look at an example in a further branch showing test and expectation side-by-side in a dtx file, which provides a clean format to use thanks to b6b38b0412f0d96283db83e78203da77aa18640d.

I must be missing something fundamental here: the \tlg file is what you expect to get from running a test.

BTW, for testing typesetting the workflow can only really be to run a test by hand, check the visual appearance of the PDF then save the resulting log, as you can't be sure otherwise
that things 'look right'/

I'm going to raise this with the team as a whole: it's a relatively significant change and I'd like to get a broader feeling before doing anything.

I am aware that this change introduces a whole new variant of testing and thus is quite extensive, so I will try to provide you some more information to aid the decision. Here are the needs that led me to implementing this proposal.
Compactness
l3build is the only system I found to be sufficiently capable of automating tests for typeset output. PDFs cannot even be diffed directly. Graphical comparisons like ImageMagicks compare may introduce errors through rasterization. l3build does quite a good job enabling such tests by utilizing \tracingoutput=1 or \showbox, as denoted in the manual.
But storing the output of such tests lead to large .tlg, impossible to write by hand. Storing a simple .tex / .lve file that creates them not only takes up less space, but also makes it easier to understand the test intention.
Model of thought
Often, it is more intuitive to define an expected outcome in terms of TeX code.
Imagine for example, I want to test the basic LaTeX \include mechanism and ensure that a document composed from multiple files produces the exact same result that a single document containing all the content would, leaving sections intact. It would be convenient to specify a test that directly compares
\begin{document}
\include{file1}
\include{file2}
\section{main file content}
\end{content}

to
\section{contents of file1}
\section{contents of file2}
\section{main file content}

With the current state of l3build, one would have to resort to:

Write the expectation with all content in an .lvt file.
Run it through texlua build.lua save.
Modify the .lvt to use \include.
Compare this and future versions using texlua build.lua check.

Especially when the source code is under version control, the question arises whether to put the expectation specification (Step 1) into the history just to be overwritten right after.
Also, Step 1 can be done before the implementation of the tested feature, which can aid sort of a test-driven development process.
Portability.
This is more of a side effect. Now suppose that the aforementioned tests are run on another machine that has some weird version of LaTeX that typesets \section two points larger. When specified as a .tlg, the tests fail. A test specified as .lve and .lvt will still succeed, which I think is totally fine, as \section is expected to be left untouched. A change to \include on the other hand would make the test fail as it is intended.
I hope the example clarifies things a bit.

Interesting idea. I can see some minor benefits as well for cases where you might want to write, say, a plain TeX or vanilla LaTeX2e implementation and check against that. That’s particularly relevant, say, when you’re not entirely sure what the box log output is supposed to look like. I’m not sure how many times this situation would actually be relevant, though.
On the other hand, I do think we want quite a compelling use case before adding new features, and as Joseph says there is a fair bit you can do with “just” using the tlg file. I’d be interested to hear Frank’s views, especially.

On 14 March 2015 at 07:08, Will Robertson<EMAIL_ADDRESS>wrote:

Interesting idea. I can see some minor benefits as well for cases where
you might want to write, say, a plain TeX or vanilla LaTeX2e implementation
and check against that. That’s particularly relevant, say, when you’re not
entirely sure what the box log output is supposed to look like. I’m not
sure how many times this situation would actually be relevant, though.
On the other hand, I do think we want quite a compelling use case before
adding new features, and as Joseph says there is a fair bit you can do with
“just” using the tlg file. I’d be interested to hear Frank’s views,
especially.
—

As I commented previously to Joseph in sx.chat, this is very similar to the
"reftest" system
used to test javascript/css/html in browsers
https://developer.mozilla.org/en/docs/Creating_reftest-based_unit_tests
A difference here though is in the browser there is no analogue of
\showoutput to give
a representation of the rendering tree, so comparing the transient rendered
results of
two input files is often the only way.
Here, since the result comparison is still going via the normalised tlg log
it's not
so different from the existing tests. I think in this context it would be
more natural
to consider (and implement) as an extension of the "documented tlg"
mechanism just added
rather than generate the tlg from a dtx file essentially you are generating
it by running
the tlg generator over a different input file, but otherwise the test
mechanism is the same.
So on balance I'm not totally against the idea....
David

First and foremost, thanks for your consideration.

consider (and implement) as an extension of the "documented tlg" mechanism just added

I do think we want quite a compelling use case before adding new features

I assume that "documented tlg" means a .tlg generated from .dtx format. The two features actually play together quite nice. I will try to clarfy this with the use case I am currently struggling with. It isn't fetched too far from the example in my last post. I am currently developing a package that adjusts the sectioning levels. It would for example provide an environment sectup that turns \subsection into \section, \subsubsection into \subsection, \paragraph into \subsubsection, and so on. So I would like to test whether
\begin{sectup}
  \begin{sectup}
    \subsubsection{SubSubSection is two levels below Section}
  \end{sectup}
\end{sectup}

is equivalent to
\section{SubSubSection is two levels below Section}

I see no possibility to compare both commands directly with something like \ifx because the environment redefines all sectioning commands at once, where they become macros possibly relying on conditionals and counters themselves.
Utilizing a .tlg, even when packed into a .dtx, the complete output of the sectioning command has to be included, which would be.
 Utilizing the proposed patches together with the "documented .tlg" feature, this could be condensed into a single .dtx file
\include{regression-test.tex}
\documentclass{article}
\begin{document}
\START
%<*test>
\begin{sectup}
  \begin{sectup}
    \subsubsection{SubSubSection is two levels below Section}
  \end{sectup}
\end{sectup}
%</test>
%<expect>\section{SubSubSection is two levels below Section}
\newpage
\END

where flag test generates the .lvt and flag expect generates the .lve. In this format, the intention of the test is clearly visible. Or did I overlook a way to achieve something like this with .lvt and .tlg only?

I'm not sure your \section example is that good a demo: wouldn't you test that your input yielded \section rather than testing the typesetting?

test that your input yielded \section rather

Yes, I indeed think testing the commands directly instead of their output would be more optimal. But,

I see no possibility to compare both commands directly with something like \ifx because the environment redefines all sectioning commands at once, where they become macros possibly relying on conditionals and counters themselves.

So a comparison would have to figure out how to expand and evaluate the redefined \subsubsection until it becomes the original \section.
This gets even more complicated when a later environment should be able to figure out the topmost sectioning command automatically and adjust, working in combination with \include, quite similar to the example in my post before.


Crash with invalid byte sequence in UTF-8 error

Expected behavior
If ruby file contains invalid UTF character rubocop should either skip the file or throw an error that tells you what file has the issue.
Actual behavior
RuboCop will throw the following error without indicating which file failed to parse which makes these a bit tricky to track down with large codebases.
Inspecting 1 file
.

0 files inspected, no offenses detected
invalid byte sequence in UTF-8
/usr/local/lib/ruby/gems/2.7.0/gems/parser-<IP_ADDRESS>/lib/parser/source/buffer.rb:166:in `source='
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cached_data.rb:47:in `deserialize_offenses'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cached_data.rb:13:in `from_json'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/result_cache.rb:96:in `load'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:133:in `file_offense_cache'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:117:in `file_offenses'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:108:in `process_file'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:87:in `block in each_inspected_file'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:86:in `each'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:86:in `reduce'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:86:in `each_inspected_file'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:73:in `inspect_files'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/runner.rb:39:in `run'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli/command/execute_runner.rb:21:in `execute_runner'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli/command/execute_runner.rb:13:in `run'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli/command.rb:10:in `run'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli/environment.rb:17:in `run'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli.rb:65:in `run_command'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli.rb:72:in `execute_runners'
/Users/tsmith/dev/oss/rubocop/lib/rubocop/cli.rb:41:in `run'
/Users/tsmith/dev/oss/rubocop/exe/rubocop:13:in `block in <top (required)>'
/usr/local/Cellar/ruby/2.7.1/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
/Users/tsmith/dev/oss/rubocop/exe/rubocop:12:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/bin/rubocop:23:in `load'
/usr/local/lib/ruby/gems/2.7.0/bin/rubocop:23:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/opt/ruby/bin/bundle:23:in `load'
/usr/local/opt/ruby/bin/bundle:23:in `<main>'

Steps to reproduce the problem
Since I can't just paste the file in here's the source I'm trying to scan:
https://supermarket.chef.io/cookbooks/bind9-chroot/download
the file with the invalid character is at libraries/nameserver_proxy.rb
RuboCop version
master:
0.81.0 (using Parser <IP_ADDRESS>, running on ruby 2.7.1 x86_64-darwin19)

Ruby's default script encoding is UTF-8. OTOH, the file encoding seems to be Shift_JIS instead of UTF-8.
% nkf --guess nameserver_proxy.rb
Shift_JIS (LF)

A solution would be to convert the file encoding to UTF-8. Below is a example.
% nkf -w --overwrite nameserver_proxy.rb
% nkf --guess nameserver_proxy.rb
UTF-8 (LF)

Or specify Shift_JIS in the magic comment.
diff --git a/7848/nameserver_proxy.rb b/7848/nameserver_proxy.rb
index 0059a31..a27d37f 100644
--- a/7848/nameserver_proxy.rb
+++ b/7848/nameserver_proxy.rb
@@ -1,3 +1,5 @@
+# encoding: Shift_JIS
+
 module LeCafeAutomatique
   module Bind9
     module NameServer

Either way, matching the script and file encodings will solve the issue.

Closing based on the feedback.


Abnormal judgment of Resourcemanager HA

requests Parameters allow_redirects=False need to be added
def check_is_active_rm(url, timeout=30, auth=None, verify=True):
try:
response = requests.get(url + "/cluster", timeout=timeout, auth=auth, verify=verify, allow_redirects=False)
except requests.RequestException as e:
log.warning("Exception encountered accessing RM '{url}': '{err}', continuing...".format(url=url, err=e))
return False

Wait, whats wrong with allowing redirect? I would assume it makes sense to have if you want to redirect to different domain.

Any update?

Closing due to no response.


Housekeeping: Update zeit/ncc to vercel/ncc

Reopen #190 because https://github.com/vercel/ncc/issues/748 has been fixed.
Description:
zeit/ncc is no longer maintained, so it's better to replace it with vercel/ncc.
I've confirmed that this change does not affect file size so much:

dist/cleanup/index.js: 2694241 -> 2690020 (-4221 bytes)
dist/setup/index.js: 4060921 -> 4060960 (+39 bytes)

Related issue:
None
Check list:

[x] Mark if documentation changes are required.
[ ] Mark if tests were added or updated to cover the changes.

Hello @KengoTODA. Thank you for your pull request. It looks good, but because it produces a lot of changes for dist directory I'd like to test it more from our side. When we test it from our side, we'll merge your pull request.
Thank you for your participation and contributions.

The build failed due to an unstable npm repository. Simply run the workflow run then it will pass. I've confirmed in my repo.


coap client command causing segmentaion fault

I have had a look around and I believe that this could possibly be due to the recent changed to the COAP API in commit b6e72560a9cf73dd47a7d6a36fc7c827bfd7d91e.
When running the coap client ... command in the POSIX application it will crash.
I have run it through gdb and this was the output:
(gdb) run
Starting program: /home/user/Documents/openthread/output/i686-pc-linux-gnu/bin/ot-cli-ftd 1
> ifconfig up
Done
> ipaddr
fdde:ad00:beef:0:9832:4707:d09c:9a7d
fe80:0:0:0:48ed:5826:6782:8615
Done
> coap server start
Server started with resource '': Done
> coap client put fdde:ad00:beef:0:9832:4707:d09c:9a7d test con Message
                                                                       Program received signal SIGSEGV, Segmentation fault.
                                                                                Thread::Coap::CoapBase::NewMessage (this=0x80cfffc <sInstanceRaw+13948>, aHeader=..., aPriority=2 '\002')
    at /home/user/Documents/openthread/examples/../src/core/coap/coap_base.cpp:45
45	    VerifyOrExit(aHeader.GetLength() >= Header::kMinHeaderLength);
(gdb) where
#0  Thread::Coap::CoapBase::NewMessage (this=0x80cfffc <sInstanceRaw+13948>, aHeader=..., aPriority=2 '\002')
    at /home/user/Documents/openthread/examples/../src/core/coap/coap_base.cpp:45
#1  0x0806af57 in otCoapNewMessage (aInstance=0x80cc980 <sInstanceRaw>, aHeader=0x0) at /home/user/Documents/openthread/examples/../src/core/api/coap_api.cpp:131
#2  0x080503d9 in Thread::Cli::Coap::ProcessClient (argc=5, argv=0xbfffecc0) at /home/user/Documents/openthread/examples/../src/cli/cli_coap.cpp:259
...

Edit: I have since done a checkout of the initial commit of the coap client/server and it didn't work back then either, the change to the COAP API is therefore not the issue here

Thanks for posting this issue.  Couple issues while looking into this:

otCoapNewMessage() requires aHeader to be non-NULL but does not actually validate the argument.
The first call to otCoapNewMessage() in Coap::ProcessClient should be removed and replaced with NULL.  otCoapNewMessage() should be called after the header is created, which is done correctly later in the same method.

Would you be willing to submit a PR that fixes these two issues?

Okay so changing line 259 to read otMessage *message = NULL; will stop the message from being declared with a NULL header (therefore fixing the segmentation fault).
Other than that I can't see any changes that need to be made.
On line 321 the header is initialised by passing the coapType and coapCode to otCoapHeaderInit, both of which will both be non-NULL, so we can be certain that the header would be non-NULL and the message can be declared safely on line 326.
From that, I can only see one change, but if that was all that needs doing I will happily submit a pull request with the change

Unless you are talking about adding a validation check into the API code as well to make sure that it can't be initialised with NULL in the future

Yes, I am proposing that both changes should be made :)

Right, I re-read it afterward and realised what you were saying, shouldn't be a problem, I'll get onto that now

I've had a look into this, I should probably start by saying that I have never worked with c++ before, but I am still more than willing to fix this problem.
Starting with otCoapNewMessage It calls mThreadNetif.GetCoapClient().NewMessage(*(static_cast<const Coap::Header *>(aHeader))); so I followed the files that goes through:

thread/thread_netif.cpp uses the GetCoapClient method defined in thread_netif.hpp this leads to...
coap/coap_client.cpp but there is no reference to a NewMessage method.
I assume from here it must use NewMessage from coap_base.cpp (not sure how it does this but its the only place NewMessage is defined, perhaps through the #include but not sure).

This matches the gdb snippet I posted earlier where the crash appears to occur when aHeader.GetLength() is called, I assume because aHeader is NULL so it is calling NULL.GetLength().
Here is would make sense to verify that aHeader is not NULL before .GetLength() is called, currently I am using VerifyOrExit(aHeader != NULL); .
I am now in a situation where the code won't compile, I am wondering if I should be checking aHeader itself, pointer to (*aHeader) it or the memory address of it (&aHeader).
Finally I am pretty sure that I am in the right place, however it would be good to get clarification on that.
Otherwise if anything I have said doesn't make sense of if you have any other suggestions would be great.

The NULL-pointer check should go in C-API otCoapNewMessage() wrapper in src/core/api/coap_api.cpp.  The internal call to NewMessage() takes a reference, which implies that NULL is not a valid value.

Okay so looking at howmessage_api.cpp handles errors, I have gone ahead and done this:
otMessage *otCoapNewMessage(otInstance *aInstance, const otCoapHeader *aHeader)
{
    Message *message;

    VerifyOrExit(aHeader != NULL, message = NULL);
    message = aInstance->mThreadNetif.GetCoapClient().NewMessage(*(static_cast<const Coap::Header *>(aHeader)));

exit:
    return message;
}

Is this acceptable, by returning a NULL message it's going to likely cause errors elsewhere but maybe that should be left for the code using the API to check whether the message was created successfully.

Yes, that is perfectly fine.  NULL may also be returned if there are no message buffers available.  As a result, the caller needs to check the return value anyway.

#1606 Submitted


PYTHONPATH in .env file ignored with pyright extraPaths config

Environment data

Language Server version: 2022.1.1
OS and version: Linux RedHat 7
Python version: 3.9.7

Issue
This is a follow-up to #2195 - we want to merge the project's and user's extraPath setting. To do that, we have the extraPath variable specified inside a pyproject.toml file using:
[tool.pyright]
extraPaths = ["src/python"]

I also have a per-user PYTHONPATH specified inside a .env file like:
PYTHONPATH=/path/to/additional/libs

I expect that the paths in pyproject.toml and .env file will get merged, but the PYTHONPATH from the .env file is completely ignored instead. Using pyrightconfig.json has the same behavior. Merging the paths works if the extraPaths is specified ONLY in the vscode setting's python.analysis.extraPaths property (and NOT in the pyproject.toml/pyrightconfig.json file). However we prefer to not use this approach because: 1) Other pyright configurations like include are only supported in the pyright configuration file and keeping all pyright configurations in one place is more convenient, and 2) we prefer not to commit the vscode setting file to Git as some user actions unknowingly end up modifying the project's .vscode/settings.json file which causes conflicts.

Thanks for the report. Will look  at how this should work

we need to do expanding env:PYTHONPATH in other configurations as well.
see https://github.com/microsoft/pyrx/pull/852 and https://github.com/microsoft/vscode-python/pull/15107/files

Moving this issue to discussion as an enhancement request for comments and upvotes.


Preparing debian release for 0.7.0

Summary of changes:

Update copyright information in debian/copyright (see https://github.com/rhempel/ev3dev-lang-python/issues/207#issuecomment-250687801)
Fix lintian warnings (a line too long, and wrong weekday)
Get rid of hard-coded version in ev3dev/core.py, and replace it with auto-generated ev3de/version.py.

@dlech, I followed http://www.ev3dev.org/docs/devtools/packaging-for-ev3dev/ up to the point I have python3-ev3dev_0.7.0_all.deb in pbuilder-ev3dev/debian/jessie-armel/. lintian seems to like the package, and I am able to install it with dpkg -i python3-ev3dev_0.7.0_all.deb
>>> from ev3dev.version import __version__
>>> print(__version__)

gives me 0.7.0. Assuming nobody objects against the changes proposed here, what are my next steps?
Do I need to generate the package for other values of DIST and ARCH? Or this does not matter since the deb name suggests it is suitable for all arches?
How do I release the package? Just send the deb to you?

Thanks for doing this!

Can I get an approve from @dlech?

armel

Since this package does not contain any binary components, you can actually replace armel with amd64 and the build will run much faster.
You will also need to build a second time with OS=raspbian ARCH=armhf DIST=jessie to produce a package for raspberry pi.

what are my next steps?

If you will be the uploader, you need to run dch -r in the source code directory to update the changelog with your name/email. You will also need to send me an SSH public key that will be used for uploading.

How do I release the package? Just send the deb to you?

I will update http://www.ev3dev.org/docs/devtools/packaging-for-ev3dev/ shortly with more detailed steps on uploading.

Since this git repo has special handling of tags, you may not want to push the debian package tag. For the releases I did, I just pushed the tag to my personal fork.

Does gbp create annotated tags? If not, it should not affect anything. Also, the debian packaging script does not actually use tag info: it just dumps the version found in changelog into RELEASE-VERSION: https://github.com/rhempel/ev3dev-lang-python/blob/develop/debian/rules

Does gbp create annotated tags?

no

If not, it should not affect anything

I thought that it will update the readthedocs site.

Also, the debian packaging script does not actually use tag info: it just dumps the version found in changelog into RELEASE-VERSION:

Yes, this is intentional.


Style issues with archive tiles on mobile

Compare the Test and Zepplin below

title should be below number
publication date shouldn't wrap
more cushion space between end of title and author/publication headings

Tested on iPhone - looks good
except "Reset" option not available on mobile size or desktop?

hmmm...good point @wafaisfahany ! we actually don't have the "reset" option on any screen, although it is in the design. I can't remember if we decided that, or I just never implemented it for some reason...?? @rlskoeser @mnaydan any ideas?

I don't remember any discussion of it. Looking at the specs in Zeplin it doesn't actually look familiar to me; @gissoo was it a later addition? The placement in the designs makes it look like it is specific to the collections, but I don't know if that's the intention.

@rlskoeser @thatbudakguy No, my intention was and is for the "reset" to be available on all screens, the feature existed in the old designs and I did not change that, I never had the intention of not having it and don't remember any discussions about that in our process, it's been always in all the updated designs on Zeplin as far as I remember. The only place that I'm seeing now that I have not been showing it is on the collapsed search on Desktop versions where only the collections are the visible filters. Should I fix that to also show on the collapsed search? I can't remember if there was any discussion or not on that for the collapsed search actually

@rlskoeser @thatbudakguy @gissoo I don't remember any discussion of it. It seems like one of those things where the design suggests a certain functionality but we never actually discussed having dev team implement that functionality? I'm wary of having you guys implement a new feature this late in the game. What do you thinK?

I think it's unclear to me what it would do. Does it remove all of your selected collections? If so, you'd get zero results. Does it reset the selected collections to the default ones you get when you visit the search page? That might make more sense and is doable, but it'd definitely take work to implement and/or test (more likely a 2 than a 1).

I’m unsure what the original design intent was, however my understanding of this feature is that it would reset all of the user’s selections back to what their default states were, same with the collections.

@mnaydan I agree, I don't think we should implement it now. It seems to me that the form is perfectly usable without that feature, and also that it might require more conversation and revision before implementing anyway (e.g. the way it looks specific to the collections, and the fact that the publication date filter already has a separate 'clear selection' option).
If it's a feature you think PPA should have at some point, please create an issue to document it.

I'm so sorry, so the "Reset" was the revised version of the "Clear Selection", but somehow I forgot to erase the "Clear Selection" after I added the "Reset", so it conveys as if I added a new feature (which I kind of did because in my revision the collection filters would be reset too, unlike the old design), sincere apologies for missing this :(

As all the squishy-ness of the text is fixed on mobile, I am going to close this issue. We/I can circle back to the Reset feature if need be, but as @rlskoeser says the form works fine without it and we definitely won't add it in this iteration.


Added One-Stop RPC for the Protos Asset Store

Currently the owner parameter of get_by_tags is commented out in Rust, as I am currently not sure how to call (and test) the Custom RPC in JavaScript (using Polkadot.js) with the owner parameter

I will review properly on monday, can you fix conflicts with devel and resolve any solved conversation in this PR please? @aang114

I will review properly on monday, can you fix conflicts with devel and resolve any solved conversation in this PR please? @aang114

Done @sinkingsugar

Btw @sinkingsugar ,  the RPCs getByTags and getMetadataBatch are now entirely redundant. So you don't need to spend any time reading them at all.
I have just left there in for the time being. Will remove them later


Add a few checks for unsupported cases

Recreated the PR https://github.com/newrelic/open-install-library/pull/429

mark docker unsupported 131
check apt-get is stable
re-add license key in the config

@Julien4218 the tests are failing, but I'm not sure whether it's because of this

@jlegoff I believe the tests were failing because some non backward compatible changes were pushed to main from another PR yesterday.
I just merged latest main in this branch, let's see if that fixes the test. If it does, I'll move this PR forward.


Can you make a script for android app 1dm for downloading fb and instagram media

https://play.google.com/store/apps/details?id=idm.internet.download.manager

you can use youtube-dl  to download fb and instagram media.
If you are looking for an android app use power tube


Using with Volley

Hello
I am using Volley in my project to handle webservices.Is it possible to use this library with Volley?
if answer is negative, can you recommend me another library that is adaptive with Volley?
thanks in advance.

Dupe of #5


Link to "Azure Disk Encryption for Windows and Linux IaaS Virtual Machines" is outdated

When navigating the link "Azure Disk Encryption for Windows and Linux IaaS Virtual Machines", you will end up on a download page (https://gallery.technet.microsoft.com/Azure-Disk-Encryption-for-a0018eb0) which says it is outdated. It says in the text, that teh page was moved here: https://docs.microsoft.com/en-us/azure/security/azure-security-disk-encryption

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

ID: 8a580028-8116-e73b-3fe2-a9a307a8f292
Version Independent ID: 7a11b3b9-cd6e-8fc2-1289-aecdaaf3936b
Content: Security features that can be used with Azure Storage
Content Source: articles/security/fundamentals/storage-overview.md
Service: security
Sub-service: security-fundamentals
GitHub Login: @TerryLanfear
Microsoft Alias: terrylan

@Structed Thanks for your feedback and starting a pull request.  The author will review the changes to complete this pull request.

Cheers! I think it's already merged.

#please-close


fix(clusters): fix vlan ip query

Changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#911  👈
#908
#907
#905
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite


⚠ Bofrost.at has degraded performance

In cb8a5b1, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1637 ms

Resolved: Bofrost.at performance has improved in e84b17b.


Authentication, link and unlink with ORCID

References
Related to https://github.com/DSpace/DSpace/issues/8157
Includes https://github.com/DSpace/DSpace/pull/8232
Unique code in this PR (~4,000 lines of code) can be found via this diff:
https://github.com/DSpace/DSpace/compare/4Science:CST-5306...4Science:CST-5669
Description
This PR introduces:

the login via ORCID.
the link of an already existing profile with ORCID
the configuration of orcid synchronization

More details can be found here https://github.com/4Science/DSpace/releases/download/dspace-cris-2022.01.01/dspace-cris-2022.01.01.pdf (page 76 - ORCID Integration)
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[X] My PR passes Checkstyle validation based on the Code Style Guide.
[X] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[X] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[X] If my PR includes new, third-party dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[X] If my PR modifies the REST API, I've linked to the REST Contract page (or open PR) related to this change.

@LucaGiamminonni : When creating a PR which builds on another one, it's helpful to reviewers if you can provide a link to the "diff" of the two PRs... that way we don't have to review the same code twice.
In this situation, since this PR builds off #8232, it looks like a diff can be obtained by comparing their branches:
https://github.com/DSpace/DSpace/compare/4Science:CST-5306...4Science:CST-5669
The format is (notice the three dots between the branches)
https://github.com/DSpace/DSpace/compare/[root-branch]...[branch-which-adds-on]
If you could add this link to the description of all PRs which build on one another, that'd make it easier on reviewers.

@LucaGiamminonni I have tried testing this PR
I created a sandbox application-client and a sandbox ORCID account
At the moment I'm also testing with
orcid.domain-url= https://sandbox.orcid.org
orcid.api-url = https://sandbox.orcid.org/v3.0

This is not working for me
Can you please share the expected configuration to test this (you can keep the application-client out since that's private info)
This is also related to my previous request https://github.com/DSpace/DSpace/pull/8263#discussion_r864640512

Thanks @LucaGiamminonni this got me further.
Next I had to find how to make my email address visible. It would be good if REST specifies the email address being private directly, and Angular would display how to do that (it's not that obvious if you're looking in the orcid account settings)
I did configure my Sandbox ORCID application using the redirect URL https://{rest-server}/server/api/authn/orcid and it allowed me to authenticate in REST. Angular however didn't authenticate me. Was that not the correct URL to use?

Thanks @LucaGiamminonni for your feedback. I will check the updates after https://github.com/DSpace/DSpace/pull/8232 (I would like that feedback to be processed first, as we discussed last meeting)
I see the problem here can indeed also be solved using https://github.com/DSpace/dspace-angular/issues/1647
The big difference here is that the default of every ORCID account is to hide the email address. So every user will first see this meaningless error page
Maybe it's possible to use the /email scope from https://info.orcid.org/documentation/api-tutorials/api-tutorial-read-data-on-a-record/#easy-faq-2361 to fix this

@LucaGiamminonni I've re-reviewed this PR and marked my feedback as resolved where it was fixed
It's also good to see you added links to how the account can be created 👍
There are some comments still open, unresolved. Would be good if you can check them, but https://github.com/DSpace/DSpace/pull/8232 remains higher priority
We've also discussed the issue that occurs when the user doesn't expose their ORCID email (which is the default behavior)
One possible solution might be a simple redirect in REST when a successful ORCID authentication happens but no email address is present. This would redirect to an Angular page explaining them what they have to do.
Tim was also going to check if there would be alternative quick fixes to avoid having to fix https://github.com/DSpace/dspace-angular/issues/1647 completely

@LucaGiamminonni  : I looked at this a bit today, and I agree with @benbosman that the WhiteLabel Error page bug (https://github.com/DSpace/dspace-angular/issues/1647) is unfortunately more severe in this PR.  When that bug is encountered in Shibboleth, it's usually the sign of a misconfiguration (or unexpected configuration).  However, in this PR, that bug is encountered for end users if they don't share their email address from ORCID to DSpace. That means that ORCID authentication will not work for most users unless they are first informed that they need to share their email address with DSpace.
It seems to me that the core issue here is that login failures/errors are not redirected back to the UI.  So, for example. the OrcidLoginFilter class could override the default unsuccessfulAuthentication() method to redirect the error back to the User Interface (similar to how successfulAuthentication() also does a redirect).
One option may be to build logic that works something like this...

Attempt ORCID login from UI via an ORCID account that doesn't share its email
Request goes to configured ORCID login page (with a redirectUrl pointing at REST API)
Login succeeds in ORCID, redirects back to REST API (as that's the callback URL)
REST API attempts to complete authentication...finds a missing email address. (NOTE: Currently this throws a 401 exception which results in the generic whitelabel error page)
Instead of throwing the 401 exception, we could have the REST API redirect to UI at /login?error-code=401&error-msg="You have not shared your ORCID account email address with DSpace. Therefore login via ORCID is unsuccessful."  (This code would go in an OrcidLoginFilter.unsuccessfulAuthentication() method)

Ideally, the error message here would be under i18n (in Messages.properties), as that way we can translate it easily.

We would then need to update the /login route in the Angular UI to check for these error params, and if they are passed along, just display that error to the user.

If we cannot find an easy way to make this update to the existing /login route, we could add a new /error route (or /login-error or similar) which just displays these types of error messages to the user.

I don't believe that logic would be too complex to implement... and it's probably not a full fix for https://github.com/DSpace/dspace-angular/issues/1647, but it'd at least solve the major problem we are encountering with ORCID.  And, if it works well, we could implement something similar for ShibbolethLoginFilter that might do the same to avoid whitelabel error pages for Shib errors/failures.

@benbosman : If you have a chance to re-test/re-review, I think your prior feedback has now been addressed (and this PR looks good to me)

This is now at +2, so I'm merging this immediately and pushing to the demo site shortly after. Thanks again @LucaGiamminonni!


Example doesn't sync audio + video with ffmpeg.exe

Hi,
I am testing the project in a Windows environment with latest ffmpeg (ffmpeg-20151008-git-5911eeb-win64-static) but in local, I noticed that audio has some delay when ffmpeg mix audio & video.
Any idea?

I am experiencing the same issue with my project. I use MediaStreamRecorder, so I think it has to do with the browser. I have noticed it is was a bit worse on chrome than firefox.
I record a video from the webcam while uploading blobs at a set interval and compile them on the server. I have noticed that it is usually synced up, especially with smaller videos. When it does end up desyncing, it is somewhat random, but usually on longer videos. It seems to happen at a certain random point in the video as well. That is, it may start to desync at the 2 minute mark or 3 minute mark of a 5 minute video or possibly right a way.
Anyway, this is what I have experienced, I hope it helps even though I use MediaStreamRecorder.

Totally agree with you.
In a preliminar iteration, I used this example:
https://github.com/muaz-khan/RecordRTC/tree/master/RecordRTC-to-Nodejs
but finally, I used this combination:
https://github.com/collab-project/videojs-record
to upload a .webm file to server using express.
https://github.com/jabrena/CloudFoundryLab/tree/master/Node_Upload_file
I think that the unique web browser which it generate a real video in client side is Firefox.
Juan Antonio

I had this issue (or something similar) in Firefox. The audio and video would get out of sync if I used ffmpeg to transcode the webm from FF to an mp4. When manually running the transcoding I would get a lot of warnings about the audio timestamps:
[libvo_aacenc @ 05583c40] Queue input is backward in time [mp4 @ 05593860] Non-monotonous DTS in output stream 0:1; previous: 1201058, current: 1200512; changing to 1201059. This may result in incorrect timestamps in the output file.
I eventually fixed it by recalculating the timestamps for the audio by using an ffmpeg filter:
ffmpeg -i input.webm -filter:a "asetpts=N/SR/TB" output.mp4
More background info is on the ffmpeg website:
https://ffmpeg.org/ffmpeg-filters.html#setpts_002c-asetpts
Hope this helps.
Jos

Thank you for this I will try it out in my situation. It would be nice to
know what causes it and have it fixed, but this workaround is completely
fine.

ffmpeg.js codes are moved to a separate repository:

https://github.com/muaz-khan/Ffmpeg.js


Can the install command have --verbose by default

When I run the install command:
It just shows "Installing ruby-3.0.0..."
But the end-user has no idea of whether there is progress being made, oftentimes they feel they are stuck
Context: https://stackoverflow.com/a/25210537/1395129
I think a quick solution to fix this is, making the default behavior of the install command show verbose logs

Would love this as well. Something changed semi-recently (I think with ruby-build, but I'm also using asdf-ruby so maybe there) were I no longer get output. I'm unable to figure out the correct set of flags to pass thru to get ruby-build to show verbose output (for debugging why readline isn't being picked up)

I think it's hard to change the default. The whole build output is a lot lot of output, I doubt that is useful.
The ... should make it clear the user needs to wait, it's the same e.g. when installing a C extension.

It's been a while since I've run into this, but if I remember correctly the reason for this request (at least my reason for chiming in) was that the build was getting stuck on something, and wouldn't show any debug information.
This made it very hard to debug failures to build when things like openssl wasn't setup correctly, because it wouldn't spit any errors out.

I am experiencing the same problem. The build is stuck and I have no idea why. I don't know if I should be waiting or what.

I am experiencing the same problem. The build is stuck and I have no idea why. I don't know if I should be waiting or what.

If I remember correctly, the way I found the root cause was by inspecting the ruby-build helper in asdf ($HOME/.asdf/plugins/ruby/ruby-build/bin/ruby-build) or the lib/utils.sh file and just doing puts debugging (adding echo statements at various places until I found the error)

I have never seen a hang during building Ruby, so I think this is then mostly an issue about "how to find out what it's doing on slow machines when building Ruby?".
I think an easy way to address is to print the log and let people look at the log if they feel it takes too long, I'll make a PR for that.

I think this is then mostly an issue about "how to find out what it's doing on slow machines when building Ruby?"

When I first encountered this issue I was on a relatively new M1 macbook.
The actual scenario is a little bit hazy because it's been a while, but I believe it was related to this comment where jemalloc args weren't being recognized as expected, and the ruby build was hanging due to an error finding jemalloc and/or gmp because the flags I was using didn't behave the same (details in that PR).

I think an easy way to address is to print the log and let people look at the log if they feel it takes too long, I'll make a PR for that.

Thank you for this!


Crashes before showing Apps Screen on mobile

I don't have a USB-C cable to debug the app on my phone. Could anyone else be able to figure out what's wrong? Otherwise, will just drop mobile support

@colinkiama   what version of the app
What version on your device?
type of device etc.......

@colinkiama   were you able to determine the issue with mobile?

No.
On Mon, 8 Jul 2019, 02:56 Isaac Morris<EMAIL_ADDRESS>wrote:

@colinkiama https://github.com/colinkiama were you able to determine
the issue with mobile?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IsaacMorris1980/UWP-App-Launcher/issues/24?email_source=notifications&email_token=AD54SIFJNOSDRENNS6U3RTDP6KNFVA5CNFSM4HQGVKW2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZLYNCA#issuecomment-509052552,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD54SIHY6EIPACQGQRHPETLP6KNFVANCNFSM4HQGVKWQ
.


Not able to link with pyo3 in debug mode on Windows

Bug Description
In my debug builds, for years, I used to compile my third-parties from the source code in debug mode.
For example, I compile python 3.10.8 in debug mode and it produces:
python_d.exe
python3_d.dll
python310_d.dll
python3_d.lib
python310_d.lib
On my build chain, I would like to add the python cryptography third-party. When I compile it from the source code in debug mode, I have the following error:
python_d -m build --wheel --no-isolation -C--build-option="build --debug"
...
     Running `rustc --crate-name cryptography_rust --edition=2018 src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --crate-type cdylib --cfg "feature=\"default\"" --cfg "feature=\"extension-module\"" -C metadata=d36a220355622476 --out-dir C:\python-modules\cryptography\src\rust\target\debug\deps -C incremental=C:\python-modules\cryptography\src\rust\target\debug\incremental -L dependency=C:\python-modules\cryptography\src\rust\target\debug\deps --extern asn1=C:\python-modules\cryptography\src\rust\target\debug\deps\libasn1-89a4a2858d227583.rlib --extern chrono=C:\python-modules\cryptography\src\rust\target\debug\deps\libchrono-9c0c4c35fe6d5120.rlib --extern once_cell=C:\python-modules\cryptography\src\rust\target\debug\deps\libonce_cell-d359c42b90186127.rlib --extern ouroboros=C:\python-modules\cryptography\src\rust\target\debug\deps\libouroboros-818767ba07ca8884.rlib --extern pem=C:\python-modules\cryptography\src\rust\target\debug\deps\libpem-9d903dcf6b15ed52.rlib --extern pyo3=C:\python-modules\cryptography\src\rust\target\debug\deps\libpyo3-78c5487a10cfe0e9.rlib -L native=C:\usrlib\python\libs`
...
   = note: LINK : fatal error LNK1181: cannot open input file 'python3.lib'

This error is coming from the following line:
https://github.com/PyO3/pyo3/blob/56f11c252dd3382bee0611b085dabc437996d2c7/pyo3-build-config/src/impl_.rs#L1536
If I change WINDOWS_ABI3_LIB_NAME to "python310_d", it is linking fine and the cryptography third-party is working.
However, if I change WINDOWS_ABI3_LIB_NAME to "python3_d", it is linking fine but I have an error on the runtime:
ImportError: Module use of python3_d.dll conflicts with this version of Python.
This error is coming the following line in cpython repo:
https://github.com/python/cpython/blob/5f4ae86a639fb84260d622e31468da21dc468265/Python/dynload_win.c#L309-L330
The variable buffer is equals to python310_d.dll and the variable import_python is equals to python3_d.dll.
Could the linking of PyO3 in debug mode on Windows be fixed?
Steps to Reproduce

Compile python in debug mode
Compile python cryptography in debug mode

Backtrace
Here is the backtrace of the runtime error when I change WINDOWS_ABI3_LIB_NAME to "python3_d":
python_d.exe -vvvvvvvvv -c "from cryptography.fernet import Fernet"
...
# trying C:\usrlib\python\Lib\site-packages\cryptography\hazmat\bindings\_rust_d.cp310-win_amd64.pyd
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\usrlib\python\Lib\site-packages\cryptography\fernet.py", line 14, in <module>
    from cryptography.hazmat.primitives import hashes, padding
  File "<frozen importlib._bootstrap>", line 1078, in _handle_fromlist
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\usrlib\python\Lib\site-packages\cryptography\hazmat\primitives\padding.py", line 11, in <module>
    from cryptography.hazmat.bindings._rust import (
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 674, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1176, in create_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
ImportError: Module use of python3_d.dll conflicts with this version of Python.

Your operating system and version
Windows 10 21H2 (OS Build 19044.2130)
Your Python version (python --version)
Python 3.10.8 (in debug mode)
Your Rust version (rustc --version)
rustc 1.65.0 (897e37553 2022-11-02)
Your PyO3 version
0.15.2
How did you install python? Did you use a virtualenv?
Compilation from the source code in debug mode.
Additional Info
No response

Hi @dlaugt, sorry it has taken me so long to look at this.
I confirmed what you have found here. It looks like you've identified two separate issues:

Python has an issue when linking against python3_d.dll, which I've reported upstream at https://github.com/python/cpython/issues/101614
We don't detect debug builds on Windows. Turns out this isn't very clean, I have a solution at #2397


Tauri build action fails MacOS build - no private key?

See https://github.com/atomicdata-dev/atomic-data-rust/runs/6899029947?check_suite_focus=true
Error running CLI: A public key has been found, but no private key. Make sure to set `TAURI_PRIVATE_KEY` environment variable.
Error: Command failed with exit code 1: tauri build

The weird thing is that I actually have set the TAURI_PRIVATE_KEY secret in this github repo. I'm not sure why it can't be accessed

didi you find a solution ?


option minimal not working

🐞 Bug report
ng new --help
shows
....
--minimal
Create a workspace without any testing frameworks. (Use for learning purposes only.)
...
but
ng new newApp –-minimal
shows
Unknown option: '–-minimal'
Is this a regression?
I have searched for issues mentioning that but they all has been closed by the bot. Seem to have worked in much older versions
Description
this happens in cli command
ng new newApp –-minimal
🔬 Minimal Reproduction
ng new newApp –-minimal
🔥 Exception or Error
Unknown option: '–-minimal'
🌍 Your Environment
Angular CLI: 11.2.6
Node: 14.16.0
OS: linux x64
Angular:
...
Ivy Workspace:
Package                      Version
@angular-devkit/architect    0.1102.6 (cli-only)
@angular-devkit/core         11.2.6 (cli-only)
@angular-devkit/schematics   11.2.6 (cli-only)
@schematics/angular          11.2.6 (cli-only)
@schematics/update           0.1102.6 (cli-only)

The first character in the command argument doesn’t look like a dash.

these are two dashes as mentioned for all parameters from ng new --help

@alan-agius4 is referring to the first character in this sequence from above: "–-minimal".  "–" and "-" are different characters with the later being a dash.

very well spotted !
thought it is a copy paste error from some webblogs.
ng new newApp --minimal
works fine !


Adding cost item to FAQ

This adds a shortened version of the cost issue to the FAQ page with a link to the appropriate section.

Needs one more review and an approval


Form dropdown selection add "I want to report a bug or give feedback"

Note this is for both contact forms.
@m-sullivan7 Can you provide the exact copy for this?

I'll start by asking @ashleydraper if she has anything. She's been more involved in the contact form development than me. If she does not have anything at hand, I'll be happy to jump in!


Build and register toolchains for all SCALA_VERSIONS

Description
Build and register toolchains for all SCALA_VERSIONS.
There are aliases for toolchains for default Scala version provided – for backward-compatibility, similarly as in #1573.
Motivation
Originally #1290.
Partitioned from #1552.

@liucijus, are you available to review this?
Or possibly we could merge it (as the Governance says: One maintainer approval is enough if PR has been open for more than 7 days.)

@liucijus, are you available to review this?
Or possibly we could merge it (as the Governance says: One maintainer approval is enough if PR has been open for more than 7 days.)

Sorry, @aszady, forgot about this one :(


add support for using * tag to return all devices

My use case is to turn off all lights when a skill shot is hit (like Deadpool).  I didn't want to tag every light with a tag like "all" or "*" to accomplish this, but if there is a better way or this feature seems problematic, no worries if this PR is declined.
I didn't see any existing tests on this area -- if there are any, I'm happy to add a new one for this change.

This looks great, thanks!
I just checked the tests, looks like there’s a test for tags you can jump onto here:
https://github.com/missionpinball/mpf/blob/dev/mpf/tests/test_DeviceCollection.py#L29

Test updated.


ui-select-choices do not update changes in view (when model changes)

i'm using multiple iu-select and found out that ui-select-choices do not update the view when model is changed.
When element is deleted from binded array, it do not appear in the  ui-select-choices list and it is unavailable to select it again.
To reproduce the issue I uploaded code to Plunker
https://plnkr.co/edit/E1yErzVefrPlKurUsHH9?p=preview
To reproduce the issue:

choose any element form the list. It will appear in the ui-select-match and also in list above.

click on "close"  on the element in the list above. It will remove appropriate element from the binded array and also this element will disappear from ui-select-match.

Till now everything working excellent.

but if now you try to select new element from the list,
you will see that the element that was deleted on step2 is absent in the ui-select-choices list.

If this is not a bug, please explain what I disunderstand.
Great thank you.
UPDATE:
here is Punker with last version
https://plnkr.co/edit/yitp361WJzbyuBsSIUoC?p=preview

I don't see any issue in the plunker you have provided. I can see all the 3 choices every time

@dicbrus I think your plunkr is using an outdated version ui-select
<script data-require="ui-select@*" data-semver="0.8.3" src="https://cdn.rawgit.com/angular-ui/ui-select/v0.8.3/dist/select.min.js"></script>

By mistake, I added 0.8.3 version that is working excellent.
Here is the link to plunker with last ui-select version and also with problem
https://plnkr.co/edit/yitp361WJzbyuBsSIUoC?p=preview

Looks like $watchCollection calls refreshComponent but ctrl.selected isn't updated when the list of items is refreshed.

the issue with the same bug was opened before
https://github.com/angular-ui/ui-select/issues/918
and unfortunately was not solved.

https://github.com/angular-ui/ui-select/pull/1019/files
this solved the problem.

Hi all, the PR appears to still be open, am I missing something?

The PR needs a unit test


Dose it Handle the Occlusions (yolov5)?

Hi hope you will be doing well
my tracking camera move accordingly as object moves to track the obj lets it (person) suddenly occlusion appear.
I want to track the velocity of the object in occlusion and move on prediction that it might be moving (focus on not miss the enemy). camera is placed on gun.
Explanation of 1, 2, 3

camera track the person at (1) and moving accordingly as object move but,
at point (2) occlusion appear detection loss and object keep moving,
at point (3) we loss the object

Please give your precious time sincerely

It will handle the occlusion based on an extrapolation of where Norfair thinks the object will be (Kalman filter).
For this, you will have to do some tuning depending on your use case (hit_counter_max, initialization_delay, ...).

@dekked thanks for your response.
yolov5+DeepSORT mention this https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet/issues/368.
I also mention my point there -> https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet/issues/408
but the ReID concept can't handle my scenario.
Can you give me some clue or reference some other Tracker Please give some time Thanks


sublime-merge: 2063 -> 2068, sublime-merge-dev: 2062 -> 2067

Motivation for this change
Bump versions
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 151680 run on x86_64-linux 1

2 packages built:

sublime-merge
sublime-merge-dev


is there ?

My code in earlier issue is working fine
the login requires the following
"https://demo.tradelocker.com",
username = "", password = "", server = "KOT-DEMO"
can we enter account number ?

i found it -
i have to add the following
account_id=
You have to give the integer value of the account number
we dont have to sorround the number with single quotes / double quotes
Is there a documentation information - is there a help file / published by trade locker ?

You can view here.
https://github.com/TradeLocker/tradelocker-python/blob/main/src/tradelocker/tradelocker_api.py#L79-L90
As the function signature suggests int, they're required as int, but optional.  The debugger does query all accounts it seems if one is not specified.

Yes, you can specify the accNum as well.
The accountId and accNum should be specified with most REST calls, but if you only have a single account with your credentials, then it is not required to specify the accNum -- the library will infer it for you.


Update azure-pipeline.yaml to call mobilize plan

Summary of Changes
This commit updates the azure-pipeline.yaml file
to call the mobilize plan that is defined in rtos_oetest.
Justification
AB#2903031
Testing

Pipeline run
Mobilize run

Procedure

[X] This PR: changes user-visible behavior, fixes a bug, or impacts the project's security profile; and so it includes a CHANGELOG note.
[X] I certify that the contents of this pull request complies with the Developer Certificate of Origin.

/azp list

/azp list


[backport] Fix .gitignore to avoid ignoring some necessary files

Backport of #5836

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit d8fc8121cca89ab88cf108fa98d45ef309cd9c82, target branch v5) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

LGTM.


fix fix case failure of strict insert

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Update CI

GNU/Linux: Migrate to GitHub Actions
Windows: Stay on AppVeyor, just update Ruby versions

Don't migrate to GitHub Actions for now because it seems much heavy than appveyor to fork a process so that it's hard to adjust some fixed timeout values for some tests.

Results: https://github.com/ashie/serverengine/pull/2

appveyor seems to use ruby 1.9.3 on all matrix.

appveyor seems to use ruby 1.9.3 on all matrix.

Same changes work correctly on my forked repository:

https://github.com/ashie/serverengine/pull/3
https://ci.appveyor.com/project/ashie/serverengine/builds/37831708

Hmm... I see. Merged for testing.

Hmm, still failed ...

ruby 3.0 and ruby 2.7 tests use ruby 1.9 but others use correct version.

Now I've found the reason.
image: Visual Studio 2019 should be added: https://www.appveyor.com/docs/windows-images-software/#ruby
If it's omitted, the image when the project is created is used.

I changed project setting to use "Vistual Studio 2019". If next commit doesn't change the build image, we need to update appveyor.yml.

If next commit doesn't change the build image, we need to update appveyor.yml.

I've created #111 since the next commit doesn't take effect.


Feature/proxyable custom databases

This is a continuation of #205 just adding some specs with the new use cases

@samlown I think we need to move Jruby to allowed failures too, it's failing to install bundler


Download all artifacts in test-e2e-encap job

Signed-off-by: Hang Yan<EMAIL_ADDRESS>

/test-linux-e2e

/test-e2e

Codecov Report

Merging #2735 (2466d07) into main (8c5f0f1) will decrease coverage by 19.69%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #2735       +/-   ##
===========================================
- Coverage   60.68%   40.99%   -19.70%
===========================================
  Files         285      158      -127
  Lines       23033    19272     -3761
===========================================
- Hits        13978     7900     -6078
- Misses       7547    10624     +3077
+ Partials     1508      748      -760

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
40.99% <ø> (-0.03%)
:arrow_down:

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

Impacted Files
Coverage Δ

pkg/ovs/openflow/default.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/util/runtime/runtime.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/cniserver/pod_configuration_linux.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/ovs/openflow/logs.go
9.52% <0.00%> (-90.48%)
:arrow_down:

pkg/apis/controlplane/register.go
0.00% <0.00%> (-90.00%)
:arrow_down:

pkg/agent/nodeportlocal/k8s/annotations.go
0.00% <0.00%> (-83.88%)
:arrow_down:

pkg/agent/agent_linux.go
0.00% <0.00%> (-80.00%)
:arrow_down:

pkg/agent/client.go
0.00% <0.00%> (-77.42%)
:arrow_down:

pkg/ovs/ovsconfig/ovs_client_linux.go
0.00% <0.00%> (-76.93%)
:arrow_down:

pkg/flowaggregator/certificate.go
0.00% <0.00%> (-76.58%)
:arrow_down:

... and 231 more

/test-e2e

/assgin lzhecheng

@lzhecheng Can you help review this?

/skip-all