[mpir] build failure

Host Environment

OS: macOS 10.15.6
Compiler: Apple clang version 11.0.0 (clang-1<IP_ADDRESS>)

To Reproduce
Steps to reproduce the behavior:
./vcpkg install mpir
Failure logs
adam@hapkido ~/vcpkg (master) $ ./vcpkg update
Using local portfile versions. To update the local portfiles, use `git pull`.
No packages need updating.
adam@hapkido ~/vcpkg (master) $ ./vcpkg install cgal
Computing installation plan...
The following packages will be built and installed:
    cgal[core]:x64-osx
  * mpfr[core]:x64-osx
  * mpir[core]:x64-osx
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-osx...
Starting package 1/3: mpir:x64-osx
Building package mpir[core]:x64-osx...
Could not locate cached archive: /Users/adam/.cache/vcpkg/archives/14/14db082b0b5ca6b8bcc158242a352827189d1169.zip
-- Using cached /Users/adam/vcpkg/downloads/mpir-3.0.0.tar.bz2
-- Cleaning sources at /Users/adam/vcpkg/buildtrees/mpir/src/3.0.0-a3f571144a.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /Users/adam/vcpkg/downloads/mpir-3.0.0.tar.bz2
-- Using source at /Users/adam/vcpkg/buildtrees/mpir/src/3.0.0-a3f571144a.clean
-- mpir requires autoconf from the system package manager (example: "sudo apt-get install autoconf")
-- Generating configure for x64-osx
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:72 (message):
    Command failed: autoreconf -vfi
    Working Directory: /Users/adam/vcpkg/buildtrees/mpir/src/3.0.0-a3f571144a.clean/
    Error code: No such file or directory
    See logs for more information:

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_make.cmake:355 (vcpkg_execute_required_process)
  ports/mpir/portfile.cmake:33 (vcpkg_configure_make)
  scripts/ports.cmake:79 (include)

Error: Building package mpir:x64-osx failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: mpir:x64-osx
  Vcpkg version: 2020.06.15-unknownhash

Additionally, attach any relevant sections from the log files above.

-Please attach any additional failure logs mentioned in the console output.
Additional context
Updated vcpkg ports today, updated version broke. It looks like a dependency on autoconf was introduced, which wasn't there before.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at ef037af3d [libmodbus] Fix static linkage error (#12530)
adam@hapkido ~/vcpkg (ef037af3d) $ ./vcpkg install cgal
Computing installation plan...
The following packages will be built and installed:
    cgal[core]:x64-osx
  * mpfr[core]:x64-osx
  * mpir[core]:x64-osx
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-osx...
Starting package 1/3: mpir:x64-osx
Building package mpir[core]:x64-osx...
Could not locate cached archive: /Users/adam/.cache/vcpkg/archives/72/725628e3ee94f4a5a4901f3aa08fc1a246965da7.zip
-- Using cached /Users/adam/vcpkg/downloads/mpir-3.0.0.tar.bz2
-- Cleaning sources at /Users/adam/vcpkg/buildtrees/mpir/src/3.0.0-a3f571144a.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /Users/adam/vcpkg/downloads/mpir-3.0.0.tar.bz2
-- Using source at /Users/adam/vcpkg/buildtrees/mpir/src/3.0.0-a3f571144a.clean
-- Configuring x64-osx-dbg
-- Building x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-rel
-- Installing: /Users/adam/vcpkg/packages/mpir_x64-osx/share/mpir/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /Users/adam/.cache/vcpkg/archives/72/725628e3ee94f4a5a4901f3aa08fc1a246965da7.zip
Building package mpir[core]:x64-osx... done
Installing package mpir[core]:x64-osx...
Installing package mpir[core]:x64-osx... done
Elapsed time for package mpir:x64-osx: 1.458 min
Starting package 2/3: mpfr:x64-osx
Building package mpfr[core]:x64-osx...
Could not locate cached archive: /Users/adam/.cache/vcpkg/archives/e3/e30f9bf5e07f74682b891b36471ad5c25b6affeb.zip
-- Using cached /Users/adam/vcpkg/downloads/mpfr-4.0.2.tar.xz
-- Extracting source /Users/adam/vcpkg/downloads/mpfr-4.0.2.tar.xz
-- Using source at /Users/adam/vcpkg/buildtrees/mpfr/src/mpfr-4-e3d076d3ce.clean
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
-- Building x64-osx-rel
-- Installing: /Users/adam/vcpkg/packages/mpfr_x64-osx/share/mpfr/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /Users/adam/.cache/vcpkg/archives/e3/e30f9bf5e07f74682b891b36471ad5c25b6affeb.zip
Building package mpfr[core]:x64-osx... done
Installing package mpfr[core]:x64-osx...
Installing package mpfr[core]:x64-osx... done
Elapsed time for package mpfr:x64-osx: 8.32 s
Starting package 3/3: cgal:x64-osx
Building package cgal[core]:x64-osx...
Could not locate cached archive: /Users/adam/.cache/vcpkg/archives/09/09fff132e28fd863043d7a0d468abbd9f1a2891f.zip
-- Using cached /Users/adam/vcpkg/downloads/CGAL-cgal-releases-CGAL-5.0.2.tar.gz
-- Extracting source /Users/adam/vcpkg/downloads/CGAL-cgal-releases-CGAL-5.0.2.tar.gz
-- Using source at /Users/adam/vcpkg/buildtrees/cgal/src/CGAL-5.0.2-a51092ce6d.clean
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
-- Building x64-osx-rel
-- Installing: /Users/adam/vcpkg/packages/cgal_x64-osx/share/cgal/copyright
-- Installing: /Users/adam/vcpkg/packages/cgal_x64-osx/share/cgal/usage
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /Users/adam/.cache/vcpkg/archives/09/09fff132e28fd863043d7a0d468abbd9f1a2891f.zip
Building package cgal[core]:x64-osx... done
Installing package cgal[core]:x64-osx...
Installing package cgal[core]:x64-osx... done
Elapsed time for package cgal:x64-osx: 42.24 s

Total elapsed time: 2.331 min

The package cgal provides CMake targets:

    find_package(CGAL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE CGAL::CGAL)

Hey @acgetchell, it looks like the modern version requires running autoconf -- can you install autoconf and automake via brew?
$ brew install autoconf automake

Could you try that? You may also need to set CFLAGS in the vcpkg install, which will be fixed in a PR:
$ CFLAGS=-Wno-implicit-function-declaration ./vcpkg install mpir

@strega-nil Thanks for the fix!


Add collection .IfContains and IfNotContains

Add the following extension methods for collections:
var collection = new[] { "one", "two", "three" };

collection.Throw().IfCotnains("one");
collection.Throw().IfNotContains("four");

And the corresponding methods for collection properties
var foo = new { Numbers = new[] { "one", "two", "three" } };

foo.Throw().IfCotnains(f => f.Numbers, "one");
foo.Throw().IfNotContains(f => f.Numbers, "four");

@mantinband Great Work.
I will pick this issue for developing.

Awesome 🔥🔥 let me know if you have any questions 🤙🏼

@mantinband Sure, Thanks

I added them here #43

Can this issue be closed? Changes seem to be integrated in main-branch.

@mantinband  I added IfContains and IfNoContains collection properties in this pull request
#44


Applying PR corrections from https://github.com/Quansight/qhub-ops/pull/79

fixed typos in config file templates. This mirrors PR https://github.com/Quansight/qhub-ops/pull/79 by @ftarlaci

Merging this PR since I have already reviewed https://github.com/Quansight/qhub-ops/pull/79


Create Basic UI Hello World

Create a very basic GUI that runs and presents Hello World text.

Did some research and it looks like the Java default library has something called Swing and this appears to be fairly useful.
I plan on playing around with this to see if it works for this.

Code has been committed. Creating PR for review.


data/VERSION file and "client denied by server configuration" log - Fail2Ban problem

Hello everybody.
I have Rainloop version 1.13.0 installed in Apache2 version 2.4.25 in Debian.
The documentation contains that "data" folder shouldn't be accesible from Internet, as you can see here https://www.rainloop.net/docs/installation/#notice
I create the .htaccess file denying access to data folder, and now I change this config to apache conf file with this lines:
  <Directory "/var/www/html/rainloop/data/" >
    Require all denied
  </Directory>

But the result is allways the same, the  Apache2 error log allways shows:
[Mon Sep 30 13:25:41.547907 2019] [access_compat:error] [pid 654] [client <IP_ADDRESS>:6228] AH01797: client denied by server configuration: /var/www/html/rainloop/data/VERSION, referer: https://xxx/?admin
All directories and files permissions are Ok, as the documentation says, and I haven't problem when I click on "about" menu, showing the current version of the software.
But this vehaviur affects the fail2ban filters, because Apache filter has the same line that I have shown some lines before:
failregex = ^%(_apache_error_client)s (AH(01797|01630): )?client denied by server configuration: (uri )?\S*(, referer: \S+)?\s*$
Fail2ban allows create a whitelist in where add IP addressess, but it is not effective at all.
Is neccesary another Apache configuration??? if it is not possible, could you fix this issue or tell me something wrong in my config, please???
Thanks in advance.
Regards

dev/Stores/Admin/App.js
Remove the if (settingsGet('Auth')) { ... } part


samples/bluetooth/periodic_adv/, print random address after every reset

Is your enhancement proposal related to a problem? Please describe.
periodic_adv is very useful sample to illustrate how periodic advertising works, there is a problem that if you have a packet sniffer and there are a lot of Bluetooth LE devices nearby, it's hard to track this periodic_adv device by eye balls because you don't know the random address of this periodic_adv device.
Describe the solution you'd like
Is it possible to print the random address via printk(). Furthermore, for all the samples which uses Bluetooth LE random address, can Bluetooth LE random address being printk() after every reset?
Describe alternatives you've considered
None.
Additional context
Below is the log, and I find that Identity: F6:14:B5:7B:EC:61 (random) doesn't mean a real device address.
Starting Periodic Advertising Demo
[00:00:00.257,934]  bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.257,934]  bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.257,934]  bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.5 Build 0
[00:00:00.258,514]  bt_hci_core: Identity: F6:14:B5:7B:EC:61 (random)
[00:00:00.258,514]  bt_hci_core: HCI: version 5.2 (0x0b) revision 0x0000, manufacturer 0x05f1
[00:00:00.258,514]  bt_hci_core: LMP: version 5.2 (0x0b) subver 0xffff

I'm not entirely sure that's possible to do from the application, but I'll try to see what I can do.

One solution would be to change the advertiser to use the identity, rather than a random generated address.
@kaiser-ren Would it be a better solution if the device kept the same address, rather than printing the newly generated one? I guess that would make sniffing easier.

One solution would be to change the advertiser to use the identity, rather than a random generated address.
I'm not sure what identity means, it looks like a Bluetooth device address, if can leverage it, I believe this is a solution to go.
@kaiser-ren Would it be a better solution if the device kept the same address, rather than printing the newly generated one? I guess that would make sniffing easier.
"kept the same address" means to use public address instead of random, correct? If this sample is experimental, that's fine.

@Thalley , I took into it today for how to print random address, here is the thing:

Actually, Zephyr Bluetooth stack prints the random address automatically by bt_dev_show_info(), I believe a random address is created during bt_enable()
Howevery, after calling bt_le_ext_adv_create(), the random address creates again and the new one replaces the one created by bt_enable()
Thus, the random address printed at bt_dev_show_info() is not the one used for adv ext.
I think this is a bug, isn't it?

@Thalley , I took into it today for how to print random address, here is the thing:

Actually, Zephyr Bluetooth stack prints the random address automatically by bt_dev_show_info(), I believe a random address is created during bt_enable()
Howevery, after calling bt_le_ext_adv_create(), the random address creates again and the new one replaces the one created by bt_enable()
Thus, the random address printed at bt_dev_show_info() is not the one used for adv ext.
I think this is a bug, isn't it?

No, that is a privacy feature.
The address you see from bt_dev_show_info() is the identify address, which may be a public (BT SIG assigned) or random address.
When advertising, you do normally not advertise with your identify to avoid tracking of your device (privacy), so advertising will generally create a new random address (if using extended advertising like here, you'd have a random address per advertising set), which will also be updated periodically (typically around every ~15min).
We can change the advertising parameters so that it will advertise with the identify address, and also stop it from updating that, so that you will advertise with a static address. Since this is a sample, unrelated to privacy, I think that will be right way to go.

@kaiser-ren Btw, have you tried enabling CONFIG_BT_LOG_SNIFFER_INFO?

I just tried this option, but compiling was failed, how about you? Attached the west build log below:
renkai@Kais-MacBook-Pro zephyr % west build -p auto -b nrf52840dk_nrf52840 ./samples/bluetooth/periodic_adv
-- west build: generating a build system
Including boilerplate (Zephyr base (cached)): /Users/renkai/zephyrproject/zephyr/cmake/app/boilerplate.cmake
-- Application: /Users/renkai/zephyrproject/zephyr/samples/bluetooth/periodic_adv
-- Zephyr version: 2.5.99 (/Users/renkai/zephyrproject/zephyr)
-- Found west (found suitable version "0.9.0", minimum required is "0.7.1")
-- Board: nrf52840dk_nrf52840
-- Cache files will be written to: /Users/renkai/Library/Caches/zephyr
-- Found dtc: /usr/local/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6")
-- Found toolchain: gnuarmemb (/Users/renkai/gcc-arm-none-eabi-9-2019-q4-major)
-- Found BOARD.dts: /Users/renkai/zephyrproject/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840.dts
-- Generated zephyr.dts: /Users/renkai/zephyrproject/zephyr/build/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: /Users/renkai/zephyrproject/zephyr/build/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: /Users/renkai/zephyrproject/zephyr/build/zephyr/include/generated/device_extern.h
Parsing /Users/renkai/zephyrproject/zephyr/Kconfig
Loaded configuration '/Users/renkai/zephyrproject/zephyr/boards/arm/nrf52840dk_nrf52840/nrf52840dk_nrf52840_defconfig'
Merged configuration '/Users/renkai/zephyrproject/zephyr/samples/bluetooth/periodic_adv/prj.conf'
Merged configuration '/Users/renkai/zephyrproject/zephyr/samples/bluetooth/periodic_adv/boards/nrf52840dk_nrf52840.conf'
Configuration saved to '/Users/renkai/zephyrproject/zephyr/build/zephyr/.config'
Kconfig header saved to '/Users/renkai/zephyrproject/zephyr/build/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /Users/renkai/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
CMake Warning at ../../../subsys/bluetooth/host/CMakeLists.txt:80 (message):
One of these options are enabled:
CONFIG_BT_DEBUG_SMP CONFIG_BT_DEBUG_KEYS CONFIG_BT_LOG_SNIFFER_INFO.
Private security keys such as the LTK will be printed out, do not use in
production.

CMake Deprecation Warning at /Users/renkai/zephyrproject/modules/lib/civetweb/CMakeLists.txt:2 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument  value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/renkai/zephyrproject/zephyr/build
-- west build: building application
[1/197] Preparing syscall dependency handling
[190/197] Linking C executable zephyr/zephyr_prebuilt.elf
FAILED: zephyr/zephyr_prebuilt.elf zephyr/zephyr_prebuilt.map
: && ccache /Users/renkai/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc   zephyr/CMakeFiles/zephyr_prebuilt.dir/misc/empty_file.c.obj -o zephyr/zephyr_prebuilt.elf  -Wl,-T  zephyr/linker.cmd  -Wl,-Map=/Users/renkai/zephyrproject/zephyr/build/zephyr/zephyr_prebuilt.map  -Wl,--whole-archive  app/libapp.a  zephyr/libzephyr.a  zephyr/arch/common/libarch__common.a  zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a  zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a  zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/libarch__arm__core__aarch32__cortex_m__mpu.a  zephyr/lib/libc/minimal/liblib__libc__minimal.a  zephyr/lib/posix/liblib__posix.a  zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a  zephyr/soc/arm/nordic_nrf/nrf52/libsoc__arm__nordic_nrf__nrf52.a  zephyr/subsys/bluetooth/common/libsubsys__bluetooth__common.a  zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a  zephyr/subsys/bluetooth/controller/libsubsys__bluetooth__controller.a  zephyr/subsys/net/libsubsys__net.a  zephyr/subsys/random/libsubsys__random.a  zephyr/drivers/gpio/libdrivers__gpio.a  zephyr/drivers/serial/libdrivers__serial.a  zephyr/drivers/entropy/libdrivers__entropy.a  modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj  -L"/Users/renkai/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7e-m/nofp"  -L/Users/renkai/zephyrproject/zephyr/build/zephyr  -lgcc  zephyr/arch/common/libisr_tables.a  -mcpu=cortex-m4  -mthumb  -mabi=aapcs  -Wl,--gc-sections  -Wl,--build-id=none  -Wl,--sort-common=descending  -Wl,--sort-section=alignment  -Wl,-u,_OffsetAbsSyms  -Wl,-u,_ConfigAbsSyms  -nostdlib  -static  -no-pie  -Wl,-X  -Wl,-N  -Wl,--orphan-handling=warn && cd /Users/renkai/zephyrproject/zephyr/build/zephyr && /usr/local/Cellar/cmake/3.19.3/bin/cmake -E echo
/Users/renkai/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a(hci_core.c.obj): in function bt_dev_show_info': /Users/renkai/zephyrproject/zephyr/subsys/bluetooth/host/hci_core.c:6152: undefined reference to bt_keys_foreach'
/Users/renkai/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /Users/renkai/zephyrproject/zephyr/subsys/bluetooth/host/hci_core.c:6137: undefined reference to `bt_keys_show_sniffer_info'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake --build /Users/renkai/zephyrproject/zephyr/build
renkai@Kais-MacBook-Pro zephyr %

@kaiser-ren I haven't tried that myself yet (I'm unfortunately quite busy at the moment). If the compile fails, then I guess we should create another Github issue for that :) This enhancement is still valid regardless though.

I just tried this option, but compiling was failed, how about you?

Yes, I have submitted a fix for that, there was an issue with enabling it without BT_SMP enabled.
Fix here: https://github.com/zephyrproject-rtos/zephyr/pull/33653

Thus, the random address printed at bt_dev_show_info() is not the one used for adv ext.
I think this is a bug, isn't it?

It is intentional and as Thalley explained, each time the non-connectable advertiser (broadcaster) is started it generates a new NRPA address, one option as mentioned is to disable this behavior with the USE_IDENTITY option.
In most cases bt_le_ext_adv_oob_get_local could have been used here to get the NRPA, except for this case.
I will investigate if that is something that should be supported.
For now I think using CONFIG_BT_LOG_SNIFFER_INFO might be the best option for you after it has been fixed since your use-case is one of the reasons it was added.

I just tried this option, but compiling was failed, how about you?

Yes, I have submitted a fix for that, there was an issue with enabling it without BT_SMP enabled.
Fix here: #33653

Thus, the random address printed at bt_dev_show_info() is not the one used for adv ext.
I think this is a bug, isn't it?

It is intentional and as Thalley explained, each time the non-connectable advertiser (broadcaster) is started it generates a new NRPA address, one option as mentioned is to disable this behavior with the USE_IDENTITY option.
In most cases bt_le_ext_adv_oob_get_local could have been used here to get the NRPA, except for this case.
I will investigate if that is something that should be supported.
For now I think using CONFIG_BT_LOG_SNIFFER_INFO might be the best option for you after it has been fixed since your use-case is one of the reasons it was added.

Great, I'm looking forward to having this fix merged ASAP.

This is not an enhancement, but a test requirement, to be able to sniff packets. User samples should not compromise on security features.
Users to update local version of sample (with conscious decision to use identity address) or use tests/bluetooth/shell application for test purposes.

I just tried this option, but compiling was failed, how about you?

Yes, I have submitted a fix for that, there was an issue with enabling it without BT_SMP enabled.
Fix here: #33653

Thus, the random address printed at bt_dev_show_info() is not the one used for adv ext.
I think this is a bug, isn't it?

It is intentional and as Thalley explained, each time the non-connectable advertiser (broadcaster) is started it generates a new NRPA address, one option as mentioned is to disable this behavior with the USE_IDENTITY option.
In most cases bt_le_ext_adv_oob_get_local could have been used here to get the NRPA, except for this case.
I will investigate if that is something that should be supported.
For now I think using CONFIG_BT_LOG_SNIFFER_INFO might be the best option for you after it has been fixed since your use-case is one of the reasons it was added.

Great, I'm looking forward to having this fix merged ASAP.

I verified, CONFIG_BT_LOG_SNIFFER_INFO method works. I can capture the address of periodic advertise after reset the board.

I verified, CONFIG_BT_LOG_SNIFFER_INFO method works. I can capture the address of periodic advertise after reset the board.

@kaiser-ren Is that enough to close this issue?

Great works, thanks.


chore: Let db adapter to decide how to handle database target and source names.

When I started looking into adding sqlite support I noticed that for sqlite in database.yml you have db like db/development.sqlite3 so just adding a suffix won't work, it should have a bit different logic. So I've extracted these db name method to db adapter class and future sqlite adapter can have specific logic for it.

@nashby I've added tests and took the liberty of rebasing.

Aaand it doesn't break 😄 I'm still a bit hesitant about this - would like to see how it would work once there is a SQLite adapter.

@nashby Most, if not all, of the necessary abstractions should now be covered by #11.


Func start error message:  Worker was unable to load function WebhookProvisioning: 'TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string.

Running Func Start gives me this error (now I have tried it twice in separate projects)
`Application started. Press Ctrl+C to shut down.
Http Functions:
    WebhookProvisioning: [POST] http://localhost:7071/api/newworkspace

[08.03.2020 17:41:03] Worker 7ca130ff-18ee-43f0-9aaf-e0165be82040 connecting on <IP_ADDRESS>:61157
webhookHandler: [POST] http://localhost:7071/api/webhookHandler
[08.03.2020 17:41:03] Worker was unable to load function WebhookProvisioning: 'TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received '''
[08.03.2020 17:41:03] Worker failed to function id b25f312f-de64-45fe-9823-abb70a1f5dda.
[08.03.2020 17:41:03] Result: Failure
Exception: Worker was unable to load function WebhookProvisioning: 'TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received '''
Stack: TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received ''
at Module.require (internal/modules/cjs/loader.js:689:11)
at require (internal/modules/cjs/helpers.js:25:18)
at FunctionLoader.load (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:18757:22)
at WorkerChannel.functionLoadRequest (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:16565:38)
at ClientDuplexStream.WorkerChannel.eventStream.on (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:16503:30)
at ClientDuplexStream.emit (events.js:198:13)
at addChunk (_stream_readable.js:287:12)
at readableAddChunk (_stream_readable.js:268:11)
at ClientDuplexStream.Readable.push (_stream_readable.js:223:10)
at Object.onReceiveMessage (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:20589:19).
[08.03.2020 17:41:08] Host lock lease acquired by instance ID '000000000000000000000000327E9FD6'.
[08.03.2020 17:41:46] Debugger attached.`

I registered the webhook on the SP list and that worked.
But testingby adding a list item gives a 500 status error:
Executed 'Functions.webhookHandler' (Succeeded, Id=e07ca597-8217-4ea5-87bc-3946f4727aaf)
[08.03.2020 18:20:40] Executed 'Functions.WebhookProvisioning' (Succeeded, Id=8627e247-95b6-4271-a0fa-759202832e91)
[08.03.2020 18:20:40] Executed HTTP request: {
[08.03.2020 18:20:40]   "requestId": "c3e3d1ed-adc1-405a-9386-1a8ce73a3b72",
[08.03.2020 18:20:40]   "method": "POST",
[08.03.2020 18:20:40]   "uri": "/api/newworkspace",
[08.03.2020 18:20:40]   "identities": [
[08.03.2020 18:20:40]     {
[08.03.2020 18:20:40]       "type": "WebJobsAuthLevel",
[08.03.2020 18:20:40]       "level": "Admin"
[08.03.2020 18:20:40]     }
[08.03.2020 18:20:40]   ],
[08.03.2020 18:20:40]   "status": 500,
[08.03.2020 18:20:40]   "duration": 760
[08.03.2020 18:20:40] }

Running Func Start gives me this error (now I have tried it twice in separate projects)
`Application started. Press Ctrl+C to shut down.
Http Functions:
    WebhookProvisioning: [POST] http://localhost:7071/api/newworkspace

[08.03.2020 17:41:03] Worker 7ca130ff-18ee-43f0-9aaf-e0165be82040 connecting on <IP_ADDRESS>:61157
webhookHandler: [POST] http://localhost:7071/api/webhookHandler
[08.03.2020 17:41:03] Worker was unable to load function WebhookProvisioning: 'TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received '''
[08.03.2020 17:41:03] Worker failed to function id b25f312f-de64-45fe-9823-abb70a1f5dda.
[08.03.2020 17:41:03] Result: Failure
Exception: Worker was unable to load function WebhookProvisioning: 'TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received '''
Stack: TypeError [ERR_INVALID_ARG_VALUE]: The argument 'id' must be a non-empty string. Received ''
at Module.require (internal/modules/cjs/loader.js:689:11)
at require (internal/modules/cjs/helpers.js:25:18)
at FunctionLoader.load (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:18757:22)
at WorkerChannel.functionLoadRequest (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:16565:38)
at ClientDuplexStream.WorkerChannel.eventStream.on (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:16503:30)
at ClientDuplexStream.emit (events.js:198:13)
at addChunk (_stream_readable.js:287:12)
at readableAddChunk (_stream_readable.js:268:11)
at ClientDuplexStream.Readable.push (_stream_readable.js:223:10)
at Object.onReceiveMessage (C:\Users\PerOveSandhåland\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\node\worker-bundle.js:20589:19).
[08.03.2020 17:41:08] Host lock lease acquired by instance ID '000000000000000000000000327E9FD6'.
[08.03.2020 17:41:46] Debugger attached.`

hello,
from my point of view you just re.check name of all the files, most of cases there is mistake of dot(.) , or any other special character.. so just check it and rewrite it


[BUG] error handling needs to be done correctly

Describe the bug
Currently, all errors that might occur are being returned up the function call stack with the intention of being returned to the files in the cmd directory. cobra provides functionality for handling errors by providing Run or RunE in the cmdNameCmd struct which allows you to return an error to cobra and it tries and handles it.
With the current concurrency model of grofer, the functions for retrieving data and rendering data are put in go-routines because of why "returning" an error to that function is rendered pointless.
Proposal:
Have a channel of type error which blocks waiting for an event to occur, on a successful run, nil could be passed to the channel in which case the program can exit, whereas, on the occurrence of an error, the error can be taken out of the channel and handled or returned to another function if need be for handling.
To Reproduce
Steps to reproduce the behavior:

Go to src/general/cpuInfo.go
Change "mpstat" to "baby-shark-dodododo" (hopefully not a valid command although that would be awesome) on line 52
Execute: go run grofer.go --cpuinfo
Everything renders fine.

Expected behavior
Error messages must be displayed.
Desktop (please complete the following information):

OS: Kubuntu 20.04
Go Version: 1.14.7

Additional context
Since such errors aren't handled, the kill signal does not execute properly on pressing the q key which is meant to exit the program. There is an error that's occurred but that goroutine cannot handle it which is why the kill signal works in the rendering part but does not work correctly in the data serving part and it blocks there and the services of ctrl + c need to be employed.

Hi.
I read this proposal, and I've made some rough fixes.
https://github.com/pesos/grofer/compare/master...egawata:wip_fix_error_handling

Adds a channel to receive error from info.GetCPULoad.
Uses a context instead of channels, to communicate between goroutines. This would make a communication between goroutines a bit simpler.
Pressing q works well to exit the program.

If this change helps fix this issue, I'll make a PR.

That's a better approach @egawata , thanks!
That does simplify error handling in this case. This got me searching for better ways to handle errors in a concurrent setting and I'd like your opinion on using errgroup which is basically meant for synchronizing, handling and passing errors occurred in one or more related goroutines. The idea remains the same as you suggested, using contexts but this might simplify things further in our case.
Let me know what you think!

@MadhavJivrajani
Thank you for your kind advice! I've tried rewriting it with errgroup.
https://github.com/pesos/grofer/compare/master...egawata:wip_fix_error_handling_by_errgroup
I also think that is very simple and right solution to our case. 😄

It looks good for the most part, error handling seems to work great, I had a few queries which I was hoping you could address:

Why is errCanceledByUser a new type of error?
Since you've use errgroup group, instead of returning errors in each eg.Go(...) would it be better to call eg.Wait() since that will collectively wait for all of the associated goroutines to complete as well as collect errors from them and return it back to the caller.

My reference

Thank you for your advice 😃

Why is errCanceledByUser a new type of error?

All goroutines are canceled when one of eg.Go() in errgroup returns non-nil error. To accomplish this, each eg.Go() section should return error, even if there is actually no error.
Now overallGraph.RenderCPUinfo in the second eg.Go() returns no error (maybe when q pressed), so I make it return dummy error (errCanceledByUser) Of course, it shouldn't be handled as an error.

would it be better to call eg.Wait() since that will collectively wait for all of the associated goroutines to complete as well as collect errors from them and return it back to the caller?

In my code, it seems eg.Wait() would be called, wait until all eg.Go() to complete, and return the first error (if any) properly.
If you think it is better to return the error to its caller (meaning cobra), only adding return err will do that, although it makes error messages too verbose.
Please give me your opinion if I've misunderstood something. Thanks!

Oh alright, that makes sense, please go ahead and open the PR and we can move forward with this!
Currently, you've implemented error handling only for grofer -c, can you implement the same for the parts as well? Starting with the else clause in root.go, error handling would need to be implemented for all aspects that have a TUI component which includes grofer proc [-p PID][-r refresh_rate].
For example, in serveStats.go, errors are not being handled correctly.

can you implement the same for the parts as well?

Ok, I'll do the same and open PR. 😃

@egawata when you receive from the channel of ctx.Done wouldn't it make sense to return ctx.Err() instead of a simple return? What I see from your changes to RenderCPUinfo() function, you're waiting on the return values of this function back in root.
If there's something I'm missing please let me know. Thanks!

@Gituser143
Thank you for your opinion! 😃
I think it is a good style of func to return an error which indicates the reason, or nil if everything has gone well. I agree returning ctx.Err() is better than a simple error.
The main reason why I don't do that is that the error will always be discarded. At the time the routine in RenderCPUinfo() receives from ctx.Done channel, other goroutine in the same errgroup has already returned a non-nil error. eg.Wait() returns only the first non-nil error from other goroutine, not RenderCPUinfo().
Again, I think adding a return value of type error to RenderCPUinfo() is good, but we would be better wait to do it until we really need it. How do you think?

Sorry for posting in a short time. There's another solution. How do you think, @Gituser143 @MadhavJivrajani ?

Defines a custom error in somewhere in general (for example, general/errors.go)
RenderCPUinfo() returns the custom error when q or Ctrl-C pressed, and returns ctx.Err() when receiving from ctx.Done().

The solution looks good! It'll ensure that returns are non-empty too! We could use this for custom error in other functions used with grofer -c and grofer proc too.
If you'd implement this, it would be great! :smile:

I concur with @Gituser143 this looks great, thanks!


custom scrollbar for textarea doesnt work

Tried implementing ng-scrollbars for textarea but it dint work eventhough it was initialized for the textarea.
The jquery version has a workaround for textarea but the angular one works only on divs and no other element. Support for textarea would be of great help. Anyone who has faced this before?

+1


[KBFS-1526] Store MD version numbers and extra fields

This makes it possible to store V3 MD objects in
MDServerMemory, MDServerDisk, and mdJournal.
Test coverage will be added in a future PR.

@strib for main review, but @aalness you should take a look too to make sure I'm handling the extra V3 fields similarly to how the server would handle them (and I had a question for you).

Addressed all @strib's comments, although @aalness still waiting on a few questions for you.

CI failure is chat.


ci: add -e to test.sh

'go test' exiting non-zero was not causing the build to fail

The checks are failing because the underlying tests really are failing, but this was previously masked by a missing set -e in the test.sh script.

I used admin override to merge this despite the failures


Don't use wrappers for grpc metadata

This switches the current usage of NewContext and FromContext to use the
underlying methods in the metadata package.  The wrappers will be removed in
future versions of grpc.
Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Had the same changes in https://github.com/docker/swarmkit/pull/2452 (https://github.com/docker/swarmkit/pull/2452/commits/079fc3c4bd47cf50bfa883e7eba321d1f2e1763d) (looks like that needs a rebase); if we actually bump the versions, some tests needed updating; https://github.com/docker/swarmkit/pull/2452/commits/4f9eceedd2efe04307ec76226f683de8489415ec

@thaJeztah i know.  not bumping with this change for that reason

@dperny I believe the one we're using was deprecated and then finally removed.  It just calls the new one.

@dperny @cyli correct; see my comment on the other pr: https://github.com/docker/swarmkit/pull/2452#issuecomment-345382287


Input Blur before outstanding request returns

Quickly type in an address into the Geosuggest input, and tab out of the input before it has come back with suggestions. When the suggestions return, the geosuggest__suggests--hidden class is no longer applied to the suggestions and subsequent action on the page will not hide them until you activate the blur event on the input again.
On blur, any outstanding requests should be canceled and suggestions should not be shown.

We need the close this issue @ro-ka

Yes. Thanks.


[FEATURE]

Description
Add a badge that displays number of  viewer has viewed the profile at the top right of the image of the User Card in the Popular Profiles page to display number .
Screenshots

Similar to above profile in the below one.

Additional information
No response

Please assign this to me.

Sure, assigned


linuxPackages_5_1.rtlwifi_new fails to build

Describe the bug
The packages rtwifi_new do not build for the 5.x Kernel. Which is a bummer because I can't use an older Kernel because of driver issues https://github.com/NixOS/nixpkgs/issues/69289
To Reproduce
boot.extraModulePackages = [ pkgs.linuxPackages_5.1.rtlwifi_new ];
boot.kernelPackages = pkgs.linuxPackages_5_1;

$ nixos-rebuild switch
@Mic92

Fixed in master and 19.09. Does this also affect 19.03?

Yes it does!

Should be fixed.


don't run things as root

to be more specific, see the subject :)

@openzipkin/devops-tooling anyone want to smash this? although I'm not sure the impact of root user with a distroless image, I suspect it would still be good to not run as root.

I can help with this.
MySQL, Cassandra and Elasticsearch images already run with non-root user; I can extend this to zipkin and zipkin-kafka images.
nginx container image runs as root as it exposes 80 port. We could potentially change it to nginxinc/nginx-unprivileged. I know that this is an issue in Openshift where root is not allowed.

My two cents re. impact: strictly speaking, running as root in Docker is not in itself a security issue. With user namespace support in Docker, there's no reason that root inside the container should be root outside the container. That said, methinks it's good practice to not run as root inside containers we provide, just to avoid any unpleasantness in less sophisticated setups.

I know that this is an issue in Openshift where root is not allowed.

Thanks for surfacing this, I have zero exposure to Openshift, so good to know!
@jeqo nginx/nginx-unprivileged looks solid. Let me know if you need help (because bandwidth or stuck). Thanks!

thanks @abesto !
just to clarify, the issue with Openshift is actually to run it on port 80. I can add this change as part of a PR.
After a deeper review of the zipkin-ui, it seems to be using a non-root user already, so I think there is no need to change base image.

ps I asked to not change the proxy image off port 80 (instead if there is something odd about openshift, remap it there).
reason is demo apps in java almost always use port 8080 and also demonstrating a proxy is routinely port 80.
Thanks for the help @jeqo!


Error installing udev rules.

When i insert the command: sudo /tmp/hwi-2.0.214759361391458857839.tmp installudevrules
I obtain this error:
{"error": "installudevrules failed: [Errno 6] No such device or address", "code": -13}
What should i do to fix that?

You can also install them manually: https://github.com/bitcoin-core/HWI/blob/d6a8cdef3b904a8a7ea5e316a83cb4037046202d/hwilib/udev/README.md

Getting the same error on ubuntu 18.04, 20,04, and 22.04 . However, after running the command, it "seems" to work okay despite the error.
Also, a few more comments about the udev rules install process:

Why isn't this just done automatically by the .deb package? You already have to run sudo to do that anyway. Does it really hurt to do it for everyone even if they aren't using a hardware wallet? Running this command you are having them install rules for a bunch of wallets they may not have, so why not just have everybody do it?
This entire process of running a binary executable with sudo in your /tmp directory with a randomly generated name seems a bit sketchy. Honestly would rather just be referenced in the GUI to the link above than encourage people to use this (but doing it automatically by the .deb package would really be best).

Getting the same error on ubuntu 18.04, 20,04, and 22.04 . However, after running the command, it "seems" to work okay despite the error.

Consider opening an issue on https://github.com/bitcoin-core/HWI/issues - it would be good to get this sorted.

Does it really hurt to do it for everyone even if they aren't using a hardware wallet?

That's an open question - in my experience some will not want this, perhaps perceiving it as a security issue as unlikely as that is. For example, Coldcard users who only use it in airgapped may want this possibility of understanding USB communications disabled. Not a strong argument, but a possible one.
I'd be happy to consider a PR for a postinst script though.

Honestly would rather just be referenced in the GUI to the link above

That could be added - but some will be daunted by those instructions and running the HWI command is simpler.


posix: Recently enabled POSIX+newlib tests fail to build with gnuarmemb

With c894aa31a6d61d2f51f6a534558d1aa5e45362f4 landing, we see failures in these POSIX+newlib tests built using ARM GCC embedded toolchain (gnuarmemb) in our (Linaro's) CI: https://ci.linaro.org/job/zephyr-upstream/PLATFORM=frdm_k64f,ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb,label=docker-xenial-amd64-13/3584/console
Specific failure is:
01:46:54 make[3]: Entering directory `/home/buildslave/srv/zephyr/master/gnuarmemb/frdm_k64f/frdm_k64f/tests/posix/fs/portability.posix.newlib'
01:46:54 [ 80%] Building C object zephyr/CMakeFiles/priv_stacks_prebuilt.dir/misc/empty_file.c.obj
01:46:54 [ 81%] Linking C executable priv_stacks_prebuilt.elf
01:46:54 /home/buildslave/srv/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-writer.o): In function `_write_r':
01:46:54 writer.c:(.text._write_r+0x12): undefined reference to `_write'
01:46:54 /home/buildslave/srv/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-closer.o): In function `_close_r':
01:46:54 closer.c:(.text._close_r+0xc): undefined reference to `_close'
01:46:54 /home/buildslave/srv/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-lseekr.o): In function `_lseek_r':
01:46:54 lseekr.c:(.text._lseek_r+0x12): undefined reference to `_lseek'
01:46:54 /home/buildslave/srv/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-readr.o): In function `_read_r':
01:46:54 readr.c:(.text._read_r+0x12): undefined reference to `_read'
01:46:54 collect2: error: ld returned 1 exit status

As Linaro is committed to support Zephyr buildability with gnuarmemb, I'm going to look into that.

@galak: FYI

First thing to see if it's a recent regression, or it was like that always, we just exposed that with recent enabling of POSIX+newlib builds. So, I did git co @{"1 month ago"} (which landed at 5c23843e65c294a9274da8631dc6050642704003), and after patching a number of header conflicts (so, we actually improved since then), I get the same failure:
/home/pfalcon/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x12): undefined reference to `_write'
/home/pfalcon/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xc): undefined reference to `_close'
/home/pfalcon/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x12): undefined reference to `_lseek'
/home/pfalcon/toolchain/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/lib/thumb/v7e-m/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x12): undefined reference to `_read'
collect2: error: ld returned 1 exit status
zephyr/CMakeFiles/priv_stacks_prebuilt.dir/build.make:100: recipe for target 'zephyr/priv_stacks_prebuilt.elf' failed

So, it's not new, and I'll be investigating ways to deal with it.

So I think we might need to expose FUNC_ALIAS(_lseek, lseek, int) more broadly in lib/libc/newlib/libc-hooks.c.

So I think we might need to expose FUNC_ALIAS(_lseek, lseek, int) more broadly in lib/libc/newlib/libc-hooks.c.

Yes, except stuff there are stubs to be used as a fallback when no real POSIX funcs are there. We perhaps can factor out FUNC_ALIAS'es to a common place, but the the question which is the primary - read() or _read().  IIRC, from viewpoint of newlib, _read is a syscall, whereas read() is libc function. Which is subtle distinction we already discussed with @andrewboie on planning to add syscall for POSIX unistd part, and agreed, that for us, the syscall would be called sys_read. Bottom line: no matter what would be done now, it would need to be redone later when the actual syscalls are implemented. Then just let me propose the easiest and smallest by delta solution: https://github.com/zephyrproject-rtos/zephyr/pull/13940


Need validation for funblocks numbers

Numbers in funblocks aren't validated.  If you type something that's not a number, you just get an error in the generated source.  (Or, if you type a valid expression, perhaps even no error!)

The validation code is acting funny.  It seems to only validate that some prefix of the text is a valid number.  That leads to confusing behavior, where if I type "2/3", I get no error indicator, but the input silently changes to 2.

This is due to the way Javascript's parseFloat behaves, which is used in the validation. parseFloat truncates the starting number out of the string if the string contains other characters.
I'll change it to Number for more intuitive behavior.


Ensure transactionHash and blockHash are hash32

Signed-off-by: Nana-EC<EMAIL_ADDRESS>Description:
Update transactionHash and blockHash to be hash32 compliant
Related issue(s):
Fixes #289
Notes for reviewer:
Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Codecov Report

Merging #294 (6d92377) into main (dc57c06) will increase coverage by 0.35%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #294      +/-   ##
==========================================
+ Coverage   57.46%   57.81%   +0.35%
==========================================
  Files           9        9
  Lines         804      825      +21
  Branches      126      131       +5
==========================================
+ Hits          462      477      +15
- Misses        317      322       +5
- Partials       25       26       +1

Impacted Files
Coverage Δ

packages/relay/src/lib/eth.ts
59.94% <ø> (+1.09%)
:arrow_up:

packages/relay/src/lib/precheck.ts
50.00% <0.00%> (-24.08%)
:arrow_down:

packages/relay/src/lib/clients/sdkClient.ts
6.93% <0.00%> (+0.62%)
:arrow_up:

packages/relay/src/lib/errors.ts
85.71% <0.00%> (+2.38%)
:arrow_up:

Continue to review full report at Codecov.

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


Feature condensed playback

In feature condensed playback, I think people want faster speed video more than skip video.

As a language learner I would say that a (Condensed + Auto Pause) would help me a lot.
Because I want to skip unspoken parts and then repeat the dialogue.

This is now implemented thanks to @artjomsR

"


Format: failed on formatting heredoc containing only interpolation

For example, the following code is failed by crystal tool format:
foo = <<-FOO
  #{__FILE__}
  FOO
# expecting DELIMITER_END, not `INTERPOLATION_START, `, at :2:3 (Exception)

I have a patch for this bug. However this bug is very special corner case. For instance this bug is not invoked by this code:
foo = <<-FOO
  #{__FILE__}: foo
  FOO

Perhaps, this bug does not cause problems in most cases.
I'd continue to find simpler way to fix this.

Why isn't INTERPOLATION_START consumed while iterating node.expressions?

Because the first interpolation of string literal (__FILE__) consumes the first whitespaces of the heredoc and iteration exits.


[OCaml] Odd indentation in type definitions

As of https://github.com/tweag/topiary/commit/6f71f3678970023c45be593350221aa8873915e7
Snippet 1
The following
type controller = Slug.t ->
    controller

gets formatted as
type controller =
Slug.t ->
controller

Snippet 2
The following
type controller =
  | C : Slug.t ->
      controller

gets formatted as
type controller =
  | C :
    Slug.t ->
      controller

with a peculiar indentation of this controller result. Intended?
Bonus: snippet 2'
The apparently multiline
type controller =
  | C : Slug.t -> controller

gets formatted as
type controller = | C : Slug.t -> controller

(I'd have expected it to stay multiline.)
Bonus: snippet 2''
The same as 2 without |
type controller =
    C : Slug.t ->
      controller

gets formatted as
type controller = C :
    Slug.t ->
      controller

(And the C went away :'( )

I would say P2 for snippet 1, and P3/P4 for snippets 2, 2' and 2''.

As far as I can tell, the extra indentation is intended in snippet 2, it looks better on things like
  | Zk_rollup_update :
    {
      zk_rollup: Zk_rollup.t;
      update: Zk_rollup.Update.t;
    } ->
      Kind.zk_rollup_update manager_operation


Using aiven_database and aiven_service_user or the community PostgreSQL provider?

The aiven_pg resource documentation advises using the community PostgreSQL provider to manage databases and users, but Aiven also has the aiven_database and aiven_service_user resources. It is not very clear for newcomers which one they should use.
Are there some best practices / guidelines regarding this?

aiven_database and aiven_service_user resource are deprecated, therefore closing this issue for inactivity.


Redstone issues?

I've noticed that Redstone isn't working. Can't attach a torch to the side of a block, and nothing powers up.

The redstone is not implemented yet


Graph Query does not return required results

Graph Query does not return required results

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

ID: 76fcf76c-a9b3-796d-8fba-57b5a02eb0fe
Version Independent ID: 1ac7ba80-31cf-d28b-670b-41cbdc753434
Content: Understand the Azure AD schema and custom expressions - Microsoft Entra
Content Source: articles/active-directory/hybrid/cloud-sync/concept-attributes.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@CedarITManager
Thanks for your feedback! We will investigate and update as appropriate.

@CedarITManager
could you please provide more information about the issue you are facing with the Graph Query? What is the query you are running and what are the expected results?

@CedarITManager
Since we have not heard back from you, we will now proceed to close this thread.
If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Issue on Large Videos

Thanks for great paper. When working with large videos the maximum duration of separation is 4min. Can this applied to whole video for separation at once

You can try setting the --duration_mult flag, e.g. --duration_mult 4 will use a video of 4x the default duration.
However, 4 minutes might be too much to fit in memory. In that case, you could try splitting the video into parts, separating them independently, and merging them together. There is an (undocumented) command line argument for doing this. Set the --duration flag with the length that you'd like (e.g. --duration 20 for a 20-second video). I've never tried it on a video that long, though.

Thanks for your reply. I will try doing by splitting and merging


docs: use placeholder for next release

Description
Use placeholder for next version in env var descriptions.
refs #9254
Related Issue

Fixes https://github.com/owncloud/ocis/issues/9254

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

We also need to document this in owncloud.dev, need to look for the right place.

Docs looks good, thanks for adding 👍


Include training parameters in generated model file

For model file:

include as comments the k value (1, 12, 123?) and the P + C. Parameters for generating the model
or encode in the filename if the model file doesn't accept this
also store R^2 value from the P & C in the file

According to the LIBSVM FAQ:

Q: May I put comments in data files?
We don't officially support this. But, currently LIBSVM is able to process data in the following format:
1 1:2 2:1 # your comments
Note that the character ":" should not appear in your comments.

svm-predict fails if there are comments on lines by themselves or at the end of the parameter lines. It only tolerates comments at the end of matrix rows
svm_type epsilon_svr  # comment here causes unknown text in model file: [#]
kernel_type linear
nr_class 2
total_sv 638
rho -0.238389
SV
-0.0009943847194573904 1:1 2:0 ...

svm-predict also fails if unknown text is found in the model file
svm_type epsilon_svr
comment info
kernel_type linear

unknown text in model file: [comment]

Since the training parameters can't be stored in the model file, I'll put them in the file name for now. They're also recorded in a log/info file.


renderer disconnected on Google Colab regardless of Python version

As discussed in this thread, I am having issues with Colab not rendering any visualisation whatsoever. The installations happen with no errors, the data is processed and trained fully, and I have switched my Python version to 3.9.17 based on the previously linked thread. Yet I consistently get "renderer disconnected". Any ideas of what I need to do to view my rendered object?
Edit: I do actually get some errors when I switch to Python 3.9.17. Not sure how to solve these:
Building wheels for collected packages: pycocotools, pyliblzfse
  error: subprocess-exited-with-error

  × Building wheel for pycocotools (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  Building wheel for pycocotools (pyproject.toml) ... error
  ERROR: Failed building wheel for pycocotools
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  Building wheel for pyliblzfse (setup.py) ... error
  ERROR: Failed building wheel for pyliblzfse
  Running setup.py clean for pyliblzfse
Failed to build pycocotools pyliblzfse
ERROR: Could not build wheels for pycocotools, pyliblzfse, which is required to install pyproject.toml-based projects

Edit: No longer getting that error (preserving it in the post for reference), but am still getting a "Renderer disconnected" message.

As a followup, I downgraded to Python 3.8, got rid of the error above, and am still getting Renderer Disconnected. @tancik I'd love your input on this issue if possible. Thanks!

Hi! Thanks for bringing this up, I am looking into it.
I pushed an update previously for the colab to work in 3.10, but perhaps a change to the viewer code has broken something here.

@akristoffersen Thanks for your reply! Have you found what it could be? I'm still dealing with the issue.
Alternately, is there any way to export a video if the viewer is not working, or do I require information from the viewer to run that kind of command? All I can create now is a mesh, which isn't ideal compared to the video/viewer. Thanks!


Cleaned up README.md

Cleaned up and added more details about the templates.  Added a few images for project file layouts.
I also fixed the links to the Community templates.  However, the Modern links are still broken.  Added a TODO to each, but can be fixed in a future PR.
Hope this helps.  Fun stuff 😄 🎉

Fantastic. Thanks


support swift 3 ?

I just install Xocde8 beta6
but it occur lot of error like below

are you going to update the code to support swift 3 ?

Hey Stephen,
yes, sure, I am going to update it to Swift 3 as soon as we have Xcode 8 GM.


add_film

[ ] web_page_title
[ ] title
[ ] release year
[ ] duration
[ ] country
[ ] genre
[ ] synopsis
[ ] poster
[ ] type
[ ] language version
[ ] platform
[ ] saga
[ ] Add new film button
[ ] <home.html>

[ ] when pressed "Add new film", redirect to <film_detail.htm> of the new film just created.

[ ] options from predefined atributes (platform, genre, etc.) clearly shown


fast coercion date and time

I benchmarked dry-types and activemodel and noticed that dry-types has low perfomance, and I dip inside code rails
https://github.com/rails/rails/blob/main/activemodel/lib/active_model/type/helpers/time_value.rb#L72
https://github.com/rails/rails/blob/main/activemodel/lib/active_model/type/date.rb#L30
rails use regexp for frequent case

@ermolaev why isn't it a patch to Ruby?

I mean it sounds strange we invent "performance-optimized" code and copy it between line libraries... What if there's another, even faster set of regex? :)

Just what I said lol https://github.com/rails/rails/commit/9ea15f1927393a88c0a5dbe250420b7afdfa6aed

Another thought (sorry for spamming): we should provide a way to fix the format to ISO8601. Mb it should be a different key, e.g. :iso_time and :iso_date. It'll be 💯 faster.

why isn't it a patch to Ruby?

ruby has other methods for parsing time in strict formats
Time.iso8601("2011-10-05T22:26:12-04:00")
Time.strptime("2000-10-31", "%Y-%m-%d")

this methods is fast, but this is a very strict format logic, this methods throw exeptions, and for fallback we need handle it, but exeptions is very slow
Dry::Types["params.date"] Dry::Types["json.date"] apply string in customs format and it more robust code for parsing times

Another thought (sorry for spamming): we should provide a way to fix the format to ISO8601. Mb it should be a different key, e.g. :iso_time and :iso_date. It'll be 100 faster.

I think new keys will be confuse developers, and nobody will use them, also better to encapsulate the parsing details in the library

this methods is fast, but this is a very strict format logic, this methods throw exeptions, and for fallback we need handle it, but exeptions is very slow

But we don't define Date.parse and Time.parse either. Shouldn't they be improved in Ruby instead? Currently, what we discuss here started as a custom parsing method for parsing time in the mysql adapter (!) in rails (https://github.com/rails/rails/commit/bd087e6716f8b48d48386c3d42e529849d7b68cd). It looks like nobody tried to backport it to Ruby itself.

I think new keys will be confuse developers, and nobody will use them, also better to encapsulate the parsing details in the library

These are strong assumptions and I don't share them. It's true that being faster by default is better but we also need to consider the price (support, bugs, etc). In my opinion, parsing dates without a predefined format is a potential source of errors. Delegating format detection to Time.parse you create an implicit dependency on how it operates. Not only it's slower, but it can also change quite randomly accepting more/fewer formats. This is likely not a problem for params but I'd expect json types to be more strict.
This is what I use personally
      TypeContainer.register(
        'json.iso_time',
        ::Types::Time.constrained(
          gteq: Time.new(2014, 1, 1),
          lteq: Time.new(2038, 1, 1)
        ).constructor { |value, &failed|
          Try[::ArgumentError] { ::Time.iso8601(value.sub(' ', 'T')) }.value_or {
            failed.(value)
          }
        }
      )

I'm not against the change (though I'm not sure about the implementation) but I think we should try adding it to Ruby first.
Side note: is there a safe strptime in Ruby?

I looked it up, seems like using Date._strptime or Date._iso8601 would be faster and cleaner. I checked, they are even defined in JRuby. WDYT?

I mean it sounds strange we invent "performance-optimized" code and copy it between line libraries... What if there's another, even faster set of regex? :)

Ruby has regexp for Time.iso8601 https://github.com/ruby/ruby/blob/v3_0_0/lib/time.rb#L614  :scream:

I looked it up, seems like using Date._strptime or Date._iso8601 would be faster and cleaner. I checked, they are even defined in JRuby. WDYT?

Date benchmark
ISO_DATE = /\A(\d{4})-(\d\d)-(\d\d)\z/
string = '2011-12-03'
Benchmark.ips do |x|
  x.report('parse') do |n|
    while n > 0
      Date.parse(string)
      n-=1
    end
  end

  x.report('_parse') do |n|
    while n > 0
      ::Date.new(*::Date._parse(string, false).values_at(:year, :mon, :mday))
      n-=1
    end
  end

  x.report('_iso8601') do |n|
    while n > 0
      ::Date.new(*::Date._iso8601(string).values_at(:year, :mon, :mday))
      n-=1
    end
  end

  x.report('_strptime') do |n|
    while n > 0
      ::Date.new(*Date._strptime(string, '%Y-%m-%d').values_at(:year, :mon, :mday))
      n-=1
    end
  end

  x.report('_strptime.values') do |n|
    while n > 0
      ::Date.new(*Date._strptime(string, '%Y-%m-%d').values)
      n-=1
    end
  end

  x.report('regexp') do |n|
    while n > 0
      if string =~ ISO_DATE
        ::Date.new($1.to_i, $2.to_i, $3.to_i)
      end
      n-=1
    end
  end

  x.compare!
end

# Comparison:
#     _strptime.values:  1282303.3 i/s
#            _strptime:  1194136.2 i/s - same-ish: difference falls within error
#               regexp:   997567.6 i/s - 1.29x  (± 0.00) slower
#             _iso8601:   529221.1 i/s - 2.42x  (± 0.00) slower
#                parse:   282310.3 i/s - 4.54x  (± 0.00) slower
#               _parse:   270369.9 i/s - 4.74x  (± 0.00) slower

Time benchmark
ISO_DATETIME = /
        \A
        (\d{4})-(\d\d)-(\d\d)(?:T|\s)            # 2020-06-20T
        (\d\d):(\d\d):(\d\d)(?:\.(\d{1,6})\d*)?  # 10:20:30.123456
        (?:(Z(?=\z)|[+-]\d\d)(?::?(\d\d))?)?     # +09:00
        \z
      /x.freeze
def fast_string_to_time(string)
  return unless ISO_DATETIME =~ string

  usec = $7.to_i
  usec_len = $7&.length
  if usec_len&.< 6
    usec *= 10**(6 - usec_len)
  end

  if $8
    offset = $8 == "Z" ? 0 : $8.to_i * 3600 + $9.to_i * 60
  end

  ::Time.local($1.to_i, $2.to_i, $3.to_i, $4.to_i, $5.to_i, $6.to_i, usec, offset)
end

string = '2021-02-04T01:48:47.551+03:00'

Benchmark.ips do |x|
  x.report('parse') do |n|
    while n > 0
      ::Time.parse(string)
      n-=1
    end
  end

  x.report('iso8601') do |n|
    while n > 0
      ::Time.iso8601(string)
      n-=1
    end
  end

  x.report('_parse') do |n|
    while n > 0
      ::Time.new(*::Date._parse(string, false).values_at(:year, :mon, :mday, :hour, :min, :sec, :sec_fraction))
      n-=1
    end
  end

  x.report('_iso8601') do |n|
    while n > 0
      ::Time.new(*::Date._iso8601(string).values_at(:year, :mon, :mday, :hour, :min, :sec, :sec_fraction))
      n-=1
    end
  end

  x.report('_strptime') do |n|
    while n > 0
      ::Time.new(*Date._strptime(string, '%Y-%m-%dT%H:%M:%S.%N%z').values_at(:year, :mon, :mday, :hour, :min, :sec, :sec_fraction))
      n-=1
    end
  end

  x.report('regexp') do |n|
    while n > 0
      fast_string_to_time(string)
      n-=1
    end
  end

  x.compare!
end

# Comparison:
#               regexp:   201472.4 i/s
#            _strptime:   159658.5 i/s - 1.26x  (± 0.00) slower
#             _iso8601:   140898.1 i/s - 1.43x  (± 0.00) slower
#              iso8601:   138998.2 i/s - 1.45x  (± 0.00) slower
#               _parse:    66379.7 i/s - 3.04x  (± 0.00) slower
#                parse:    57152.7 i/s - 3.53x  (± 0.00) slower

Thanks for this! A minor heads up. I benchmarked various options and looked into the ruby sources. It turns out that ruby itself relies on regular expressions internally. My benchmarking showed approx 20% difference between ._sptrptime and regexes though ._strptime is more accurate (doesn't parse invalid dates while regexes aren't so strict). I'm not yet sure which way is better, I'll get back to it sometime soon.


Include embedded errors list in error response

We have been running into validation errors integrating with Dwolla but it is difficult to debug since the embedded errors list does not get returned.
Error creating funding source","error":"[ValidationError] Validation error(s) present. See embedded errors list for more details."

Can there be a change here to include the embedded errors in the validation errors response?
https://github.com/kolanos/dwolla-v2-go/blob/master/hal.go#L33

@castlesb Does this not contain the embedded errors? https://github.com/kolanos/dwolla-v2-go/blob/master/hal.go#L28
Pull requests welcome.


Remove bower install instructions

Remove installing mocha via bower instruction because mocha no longer supports bower installs.
Description of the Change
Remove installing mocha via bower instruction because mocha no longer supports bower installs.  See the comments
Alternate Designs
N/A
Why should this be in core?
Mocha no longer supports bower installs
Benefits
N/A
Possible Drawbacks
N/A
Applicable issues
#3369

Coverage increased (+0.05%) to 90.063% when pulling e84feabc2d0e7929ceeef139ae5096b9b1cf0480 on goteamtim:master into 41cce5f165e11e17d8e578cbceb4430ba680eb40 on mochajs:master.

Thanks!


Address helm install error in tutorial.md

What this PR does / why we need it:
Address helm install error in tutorial.md.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #657
Special notes for your reviewer:
Release note:

NONE

/lgtm
/approve


Qiime2 Version - not able to do multiple states

Working on doing CTF using the qiime2 CLI, but got an error I don't quite understand.
!qiime gemelli ctf \
    --i-table  ../data/Microbiome/pool_filtered/RPCA/gemelli_filtered.qza \
    --m-sample-metadata-file ../data/Microbiome/14577_fixed.txt \
    --m-feature-metadata-file ../../shotgun_scripts/woltka_v2_taxonomy.qza \
    --p-state-column timepoint_number \
    --p-state-column timepoint_group \
    --p-individual-id-column marmoset_id \
    --output-dir ../data/Microbiome/pool_filtered/ctf-results

Error: (1/1?) Option '--p-state-column' was specified multiple times in the command.
But...
 --p-state-column TEXT  Metadata column containing state (e.g.,Time,
                         BodySite) across which samples are paired. At least
                         one is required but up to four are allowed by other
                         state inputs.                              [required]

So how do I specify more than one state?
--p-state-column timepoint_number,timepoint_group \
also did not work.
@gibsramen dug into this a bit, but sounds like it might not actually allow multiple states

I think this line:
https://github.com/biocore/gemelli/blob/28d418438814fe2734e5b6c46b21080e1a81af4e/gemelli/ctf.py#L623
is intended to allow multiple states but there does not seem to be a way to pass multiple states in that are coerced properly. I think a possible solution is to first check if the parameter passed to state_column is a list or a string and proceed accordingly. I am not sure how this could be integrated into Q2 as I don't know how they handled multiple arguments for the same parameter.

Thanks @callaband & @gibsramen. I think this is just a case of a maybe poorly worded parameter that is passed across the Q2 and standalone commands. The QIIME2 frame can not have variable outputs (from what I know) so there can not be variable state inputs. So what you are trying in QIIME2 is currently not possible in the current framework. The standalone command can do multiple states and will output variable outputs based on that.

Excellent, thanks!


Rename "supercluster" to "clusterset"

The multi-cluster SIG has chosen "clusterset" as the term for a multi-cluster, we should adjust to suit.
This is the overall tracking bug, because the website should be the last project to be updated.

[x] Rename in Lighthouse — https://github.com/submariner-io/lighthouse/pull/229
[x] Rename in the charts — https://github.com/submariner-io/submariner-charts/pull/55
[x] Rename in the operator — https://github.com/submariner-io/submariner-operator/pull/607
[x] Rename in the website — https://github.com/submariner-io/submariner-website/pull/215

This is done.


Memory leak after long run

[v] I have checked the FAQ, and issues and found no answer.

What version of pinpoint are you using?
1.8.3
Describe the bug
Memory slowly accumulates and does not shrink by GC, which is more obvious when application runs over a month.
What did you do to trigger the bug?
Keep application running for over a month, and observe its JVM usage.
Expected behavior
GC should fully reclaim heap memory.
Screenshots

Logs
N/A
Additional context
Memory Analyzer shows a great amount of DelayedShutdownHook introduced by Pinpoint-shutdown-hook.

@vector090 Hi~
Could you give me a heap-dump?

mail<EMAIL_ADDRESS>

@vector090 Hi~
Could you provide me a heap-dump?

mail<EMAIL_ADDRESS>

One moment please

@vector090 Hi~
Could you provide me a heap-dump?

mail<EMAIL_ADDRESS>

Sent. Please kindly check.

In my opinion, this is not the pinpoint bug.
The thread of the pinpoint has a pinpoint-xxx prefix.

DelayedShutdownHook-for-java.util.concurrent.Executors$DelegatedExecutorService
This thread is created by MoreExecutors in guava.
https://github.com/google/guava/blob/master/guava/src/com/google/common/util/concurrent/MoreExecutors.java#L263
It seems to be an executors leak of application, so check your code.

Working on it.

The root cause should should be elastic-job 2.0.0
Thanks.


Support versions and automatically report release on github

Would be nice to show badge with current version and automatically report new release on github: https://github.com/it-shark-pro/js-assignments/releases
Change Log can be automatically generated by github_changelog_generator
Can be done with Makefile comands.

Can be used badges from https://shields.io/
For example:
https://img.shields.io/github/release/it-shark-pro/js-assignments.svg


[Mutli-module gradlle project] Root Project with no source codes is being built

In a multi-module  sping boot-based gradle projects, I have a root project without any source codes, and a child project with a source code.
Goal: To build the child project named demo
First rmethod: gradlew.bat demo:bootJar   , I successfully build it.
Second method: gradlew.bat bootJar,  I got the below error
Execution failed for task ':bootJar'.
> Main class name has not been configured and it could not be resolved

I prefer the second method, so that in future, if i got more than 1 child project, i hope to build them all in one single command. But for now, even with 1 child project, i got the above error
I think the gradle is trying to build my root project, but it has no source codes.
How can i stop gradle from building the source code at the root project (since it does not have any)
but only build the source codes for all the child projects (using bootJar task in this case)

Do you have a reproducible example you could link to/attach here?  I suspect that you're applying the spring-boot plugin to all projects instead of just subprojects.

Hi,
here it is
plugins {
	id 'org.springframework.boot' version '2.2.6.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}
allprojects{
	repositories {
		mavenCentral()
	}
}

group = 'com.apress'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

subprojects{

	apply plugin: "java"
	apply plugin: "org.springframework.boot"
	apply plugin: "io.spring.dependency-management"

	dependencies {
		implementation 'org.springframework.boot:spring-boot-starter-web'
		testImplementation('org.springframework.boot:spring-boot-starter-test') {
			exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
		}
	}

}

project(':demo'){
     bootJar {
	enabled = true
	 mainClassName = 'com.apress.demo.WebApplication'
     }
}

My settiings.gradle
include 'demo'
project(':demo').projectDir = file('child_projects/demo')

Try removing the java plugin from the root plugins block.

Hi,
I remove the java plugin, as per suggested.
plugins {
	id 'org.springframework.boot' version '2.2.6.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}

I still get the same error. This time round, i add the --info.
As seen from below output, it is still trying to look for D:\Projects\Source_Codes\DemoProjects\demo\src\main\java  , which is the root project.
Evaluating root project 'demo' using build file 'D:\Projects\Source_Codes\DemoProjects\demo\build.gradle'.
Applying dependency management to configuration 'bootArchives' in project 'demo'
Applying dependency management to configuration 'archives' in project 'demo'
Applying dependency management to configuration 'default' in project 'demo'
Applying dependency management to configuration 'compile' in project 'demo'
Applying dependency management to configuration 'implementation' in project 'demo'
Applying dependency management to configuration 'runtime' in project 'demo'
Applying dependency management to configuration 'compileOnly' in project 'demo'
Applying dependency management to configuration 'compileClasspath' in project 'demo'
Applying dependency management to configuration 'annotationProcessor' in project 'demo'
Applying dependency management to configuration 'runtimeOnly' in project 'demo'
Applying dependency management to configuration 'runtimeClasspath' in project 'demo'
Applying dependency management to configuration 'testCompile' in project 'demo'
Applying dependency management to configuration 'testImplementation' in project 'demo'
Applying dependency management to configuration 'testRuntime' in project 'demo'
Applying dependency management to configuration 'testCompileOnly' in project 'demo'
Applying dependency management to configuration 'testCompileClasspath' in project 'demo'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'demo'
Applying dependency management to configuration 'testRuntimeOnly' in project 'demo'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'demo'
Applying dependency management to configuration 'apiElements' in project 'demo'
Applying dependency management to configuration 'runtimeElements' in project 'demo'
Applying dependency management to configuration 'annotationProcessor' in project 'demo'
Applying dependency management to configuration 'apiElements' in project 'demo'
Applying dependency management to configuration 'archives' in project 'demo'
Applying dependency management to configuration 'bootArchives' in project 'demo'
Applying dependency management to configuration 'compile' in project 'demo'
Applying dependency management to configuration 'compileClasspath' in project 'demo'
Applying dependency management to configuration 'compileOnly' in project 'demo'
Applying dependency management to configuration 'default' in project 'demo'
Applying dependency management to configuration 'implementation' in project 'demo'
Applying dependency management to configuration 'runtime' in project 'demo'
Applying dependency management to configuration 'runtimeClasspath' in project 'demo'
Applying dependency management to configuration 'runtimeElements' in project 'demo'
Applying dependency management to configuration 'runtimeOnly' in project 'demo'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'demo'
Applying dependency management to configuration 'testCompile' in project 'demo'
Applying dependency management to configuration 'testCompileClasspath' in project 'demo'
Applying dependency management to configuration 'testCompileOnly' in project 'demo'
Applying dependency management to configuration 'testImplementation' in project 'demo'
Applying dependency management to configuration 'testRuntime' in project 'demo'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'demo'
Applying dependency management to configuration 'testRuntimeOnly' in project 'demo'

> Configure project :demo
Evaluating project ':demo' using build file 'D:\Projects\Source_Codes\DemoProjects\demo\child_projects\demo\build.gradle'.
All projects evaluated.
Selected primary task 'bootJar' from project :
Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':bootJar', task ':demo:compileJava', task ':demo:processResources', task ':demo:classes', task ':demo:bootJar']
Tasks that were excluded: []
:compileJava (Thread[Daemon worker Thread 6,5,main]) started.

> Task :compileJava NO-SOURCE
file or directory 'D:\Projects\Source_Codes\DemoProjects\demo\src\main\java', not found
Skipping task ':compileJava' as it has no source files and no previous output files.
:compileJava (Thread[Daemon worker Thread 6,5,main]) completed. Took 0.012 secs.
:processResources (Thread[Daemon worker Thread 6,5,main]) started.

> Task :processResources NO-SOURCE
file or directory 'D:\Projects\Source_Codes\DemoProjects\demo\src\main\resources', not found
Skipping task ':processResources' as it has no source files and no previous output files.
:processResources (Thread[Daemon worker Thread 6,5,main]) completed. Took 0.001 secs.
:classes (Thread[Daemon worker Thread 6,5,main]) started.

> Task :classes UP-TO-DATE
Skipping task ':classes' as it has no actions.
:classes (Thread[Daemon worker Thread 6,5,main]) completed. Took 0.0 secs.
:bootJar (Thread[Daemon worker Thread 6,5,main]) started.

> Task :bootJar FAILED
Resolving global dependency management for project 'demo'
Excluding []
:bootJar (Thread[Daemon worker Thread 6,5,main]) completed. Took 0.272 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bootJar'.
> Main class name has not been configured and it could not be resolved

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
1 actionable task: 1 executed

Hi,
Issue solved. Beside removing java plugin from the root plugins block, i have to remove sourceCompatibility = '1.8' as well, and other configurations that i did not show in my above sample code.


Log has wrong group access

Rails Error: Unable to access log file. Please ensure that /opt/heliotrope/releases/20160315192027/log/production.log exists and is writable (ie, make it writable for user and group: chmod 0664 /opt/heliotrope/releases/20160315192027/log/production.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

Now that we've deployed code with the shared log directory, this is fixed. I also updated the logrotate script so the 0644 permissions will stick.


Need product name text overflow hidden

Can bigger product name adjusted in one line and more text can be hidden so that it doesn't effect the product image to displaced and text will be within the product name box.thanks

@Dtema1996 please take a look.

@troublediehard Check it out, please

done


Support SMCalFlow 2.x

Dear authors,
I'm brainstorming to add support for SMCalFlow 2.x. I understand OpenDF is written for 1.x and you mentioned:

Later, a second version was released (V2), which uses a slightly different format, but in this work we use V1.

But most recent works on this dataset use V2 for benchmarking. So, I'm thinking about an upgrade to V2 for broader audience. Could you offer me some suggestions if you have time?

Would it be easier to implement v2 support in OpenDF than to implement a downgrade script to convert v2 to v1?
From my limited understanding of OpenDF, I'll need to modify pre_simplify and simplify_graph. What's the difference between these two?

A list of references:

1.x doc: https://github.com/microsoft/task_oriented_dialogue_as_dataflow_synthesis/blob/master/README-LISPRESS-1.0.md
2.x doc: https://github.com/microsoft/task_oriented_dialogue_as_dataflow_synthesis/blob/master/README-LISPRESS.md

Hello,
Thanks again for your interest in OpenDF and your willingness to contribute to it.
For V2, I would need to read the paper again (Value-Agnostic Conversational Semantic Parsing), but as far as I recall, the transformation from V1 to V2 annotations was done automatically, without any manual corrections (and maybe some automatic filtering out of less than 1% dialogues, which failed some automatic type checks).
If this is the case, it means that the simplified expressions would look exactly the same, no matter if we started from V1 or V2, so benchmarking is not an issue, (i.e. the simplified OpenDF expressions are still the result of an automatic transformation of V1, either directly, or in two steps - going through V2).
Still, trying to do the simplification starting from V2 could be an interesting thing to do. Our current simplification (of V1) still has a lot of errors, so starting from scratch may bring some new ideas and insights. (it would be a time consuming task - probably weeks of work).
The simplification process itself is separate from the rest of the system - so you could use whatever method you want (either use the simplification mechanism already implemented in OpenDF, or write a new one), as long as the output is the "correct" simplified expression.
If you're interested to go this way, we can discuss this (please contact using the email address in the LREC paper).
Cheers

Thank you so much for your comments.
I didn't see the section describing how they transformed V1 in their paper Value-Agnostic Conversational Semantic Parsing. They processed both V1 and V2 by adding types declarations. But I do believe V1 and V2 only differ in their syntaxes (plus some filtering) according to their GitHub repo:

SMCalFlow 2.0: This is an updated version of the dataset released with the Task-Oriented Dialogue as Dataflow Synthesis (TACL 2020) paper, which removed a very small number of incorrectly annotated examples, dropped argument names for positional arguments (so that the programs are shorter), and added inferred type arguments for type-parameterized functions that were missing in the original SMCalFlow data.

For benchmarking, I mean V2 is shorter and V2 is strongly typed, which might be easier to parse by a model. Since V2 is easier for parsers, most people would expect other tool chains to use V2 too. I agree it's very time consuming. Hope the utilities in OpenDF will make it faster. Maybe I'll start with certain frequently used functions.

If you're interested to go this way, we can discuss this (please contact using the email address in the LREC paper).

Yes, I'll do in the weekdays using my work email. Thank you again!


ERROR:root: No template for Invoice.pdf

Hey,
Always getting the same error, tried both custom and predefined templates (using a french Google bill as example).
Any idea ?
My template :
issuer: Google Commerce Limited
fields:
  date: Récapitulatif pour la période suivante\s+:\s+(\d{1,2}\s+\w+\.\s+\d{4})
  ttc: Total en EUR\s+([\d,]+) €
  ht: Sous-total en EUR\s+([\d,]+) €
  tva_rate: TVA \((\d{1,3})%\)
  tva_amount: TVA \(\d{1,3}%\)\s+([\d,]+) €
keywords:
  - Google Commerce Limited
  - IE9825613N
options:
  currency: EUR
  date_formats:
    - '%d .%b .%Y'
  languages:
    - fr
  decimal_separator: ','

An example bill is attached
Invoice.pdf

I don't see the error. Which message do you get?
Which os are you using?

Hi, here is the full message

The --debug flag doesn't help, or I may be doing something wrong...
In case it helps, here is my script :
`import os
import pytesseract
import argparse
import logging.config
import logging
from pdf2image import convert_from_path
from invoice2data import extract_data
from invoice2data.extract.loader import read_templates
import google.auth
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
Parser les arguments de la ligne de commande
parser = argparse.ArgumentParser()
parser.add_argument("--debug", action="store_true",
help="activer le mode de débogage")
args = parser.parse_args()
Configurer le logger
if args.debug:
logging.basicConfig(level=logging.DEBUG)
else:
logging.basicConfig(level=logging.INFO)
def read_templates_from_folder(folder):
result = []
for path, subdirs, files in os.walk(folder):
for name in files:
if name.endswith(('.yml', '.yaml')):
file_path = os.path.join(path, name)
result.extend(read_templates(file_path))
print(f"Template loaded from {file_path}")
return result
def extract_data_from_invoice(pdf_path):
print("Extraction du texte à partir du fichier PDF...")
templates = read_templates_from_folder('Templates/')
try:
data = extract_data(pdf_path, templates=templates)  # Ajoutez cette ligne
print(f"Data extracted: {data}")  # Ajoutez cette ligne
return data
except Exception as e:
print(f"Error during extraction: {e}")
return None
def extract_invoice_data(data):
if not data:
return None
invoice_data = {}

date = data.get('date')
if date:
    invoice_data['date'] = date.strftime("%d/%m/%Y")

invoice_data['ht'] = data.get('ht')
invoice_data['tva_rate'] = data.get('tva_rate')
invoice_data['tva_amount'] = data.get('tva_amount')
invoice_data['ttc'] = data.get('ttc')

return invoice_data

def authenticate_google_sheets():
print("Authentification et création du service Google Sheets...")
creds = None
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
token_path = 'token.json'
credentials_path = 'credentials.json'
if creds and creds.expired and creds.refresh_token:
    creds.refresh(Request())
else:
    flow = InstalledAppFlow.from_client_secrets_file(credentials_path, SCOPES)
    creds = flow.run_local_server(port=0)

return build('sheets', 'v4', credentials=creds)

def update_google_sheet(service, sheet_id, data):
print("Mise à jour de la feuille de calcul Google Sheets...")
range_name = 'Sheet1!A1:E1'
values = [[data['date'], data['ht'], data['tva_rate'], data['tva_amount'], data['ttc']]]
body = {'values': values}
try:
    result = service.spreadsheets().values().append(
        spreadsheetId=sheet_id, range=range_name,
        valueInputOption='USER_ENTERED', insertDataOption='INSERT_ROWS', body=body).execute()
    print('{0} cells appended.'.format(result.get('updates').get('updatedCells')))
except HttpError as error:
    print('An error occurred: {0}'.format(error))
    return None

if name == 'main':
pdf_path = 'Bills/Invoice.pdf'
data = extract_data_from_invoice(pdf_path)
invoice_data = extract_invoice_data(data)
print("Données de facture extraites:", invoice_data)
if invoice_data:
    sheets_service = authenticate_google_sheets()
    sheet_id = '1A9UPxQ7uR6znZmZ96xJ7Klg2ycXKdFtGrSHmkVND2hs'
    update_google_sheet(sheets_service, sheet_id, invoice_data)
else:
    print("Aucune donnée de facture extraite.")`

Hey @bosd
Any idea ?

It doesn't work either with the templates supplied. So it's seems it's my installation...
I'll go with the try except block.

I actually ment try to check if your template / input file is correct.
By first testing it from the command line, thus bypassing your custom code.
invoice2data Invoice.pdf --input-reader=pdftotext --template-folder=/home/templates --debug
Also kindly make sure, your template includes a exclude_keywords and priority tag.

Now we are getting somewhere 😁
While adding the json support I assumed people where only storing .yml or .json files.
Having any other file in your template directory resolves in an error.
This is actually fixed in the source code of this repo.
(Todo: link to the commit)
Yet it has not been released on pypy.
When you download the source code straight from the master branch. It should work for you..
The ds store files can be annoying to get rid off and keep popping up.
When all those files are gone. You should not get this error anymore.

Now we are getting somewhere 😁
While adding the json support I assumed people where only storing .yml or .json files.
Having any other file in your template directory resolves in an error.
This is actually fixed in the source code of this repo.
(Todo: link to the commit)
Yet it has not been released on pypy.
When you download the source code straight from the master branch. It should work for you..
The ds store files can be annoying to get rid off and keep popping up.
When all those files are gone. You should not get this error anymore.

Thanks a lot, I'll try today 😉

So it worked, my templates are working and I'm able to extract datas by using Invoice2Data directly \o/
But for any reason, I can't make it work through my custom script 😢
I still get the "No template" error...

But for any reason, I can't make it work through my custom script cry

It might still be related to the ds_store files or any other file which makes the template directory dirty.
Did you update your installed code from the source in this repo?
You can download the zip from this repo, copy the src/invoice2data contents to the location where the lib is installed.
example, on my machine it is:
/home/user/.local/lib/python3.11/site-packages/invoice2data/
Try to debug your custom template reading, by printing the results.
def read_templates_from_folder(folder):
    result = []
    for path, subdirs, files in os.walk(folder):
        for name in files:
            if name.endswith(('.yml', '.yaml')):
                file_path = os.path.join(path, name)
                result.extend(read_templates(file_path))
                print(f"Template loaded from {file_path}")
    print(result)
    return result

So it worked, my templates are working and I'm able to extract datas by using Invoice2Data directly \o/ But for any reason, I can't make it work through my custom script 😢 I still get the "No template" error...

I custom source and install with python setup.py install. hope for you.

hey are you running the code as admin?


docs: update diagrams for dark mode and make intro page focus on Salesforce

I left a lot of comments on the preview app (not sure if related to this PR).


Edit: Disney Channel East (Canada)

Channel ID (required)
DisneyChannelEast.ca
Channel Name
No response
Alternative Names
No response
Network
No response
Owners
No response
Country
No response
Subdivision
No response
City
No response
Broadcast Area
No response
Languages
No response
Categories
No response
NSFW
None
Launched
No response
Closed
No response
Replaced By
No response
Website
No response
Logo
No response
Notes
No response

I have the stream for this channel: https://fl5.moveonjoy.com/DISNEY_CHANNEL/index.m3u8

https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md#how-to-add-a-new-stream-link-to-a-playlists


Missing standalone-chrome-debug manifest for selenium 4.0 and 4.1

I'm using selenium 4.1 and because of #4593 with testcontainers 1.16.0
When I start a test with it I get the following error:
2021-12-07 13:20:12,001 docker-java-stream--726727059-19 ERROR ResultCallbackTemplate:52 - Error during callback
  com.github.dockerjava.api.exception.NotFoundException: Status 404: {"message":"manifest for selenium/standalone-chrome-debug:4.1.0 not found: manifest unknown: manifest unknown"}

	at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:241) ~[testcontainers-1.16.0.jar:?]
	at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.lambda$executeAndStream$1(DefaultInvocationBuilder.java:269) ~[testcontainers-1.16.0.jar:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
 2021-12-07 13:20:12,052 main-1 INFO  TestCase:50 - Browser start

The class BrowserWebDriverContainer sets selenium/standalone-chrome-debug as default image to use for chrome. The latest tag for this image is 3.141.59 and not 4.1.0. The image selenium/standalone-chrome has the new tag 4.1.0. For me it looks like selenium has stopped creating a selenium/standalone-chrome-debug image since 4.0.
My workaround is to set selenium/standalone-chrome as custom image name via the BrowserWebDriverContainer constructor.
As a fix I would suggest to change the default image for chrome from selenium/standalone-chrome-debug  to selenium/standalone-chrome.

See #4686

The latest versions of Testcontainers for Java support multiple images.
https://github.com/testcontainers/testcontainers-java/blob/main/modules/selenium/src/main/java/org/testcontainers/containers/BrowserWebDriverContainer.java#L52-L60

AS mentioned previously this was done, and it is already available.


[ISSUE #5851] Sandbox API debugging, the target API method is not POST, and the response format is JSON. The API returns an exception.

…get method is not a POST request.

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

SKonst
@.***

HttpUtils#requestJson,This method is currently invoked in only one place.
The call stack of this method is as follows and the source code location..
org.apache.shenyu.admin.controller.SandboxController#proxyGateway. Line 52 - 55
    org.apache.shenyu.admin.service.impl.SandboxServiceImpl#requestProxyGateway. Line 79 - 110
        org.apache.shenyu.admin.utils#requestCall. Line 303 - 308
            org.apache.shenyu.admin.utils#requestJson. Line 226 - 231
------------------ 原始邮件 ------------------
发件人:                                                                                "apache/shenyu"                                                                                @.>;
发送时间: 2024年12月20日(星期五) 上午10:34
@.>;
<EMAIL_ADDRESS>主题: Re: [apache/shenyu] [ISSUE #5851] Sandbox API debugging, the target API method is not POST, and the response format is JSON. The API returns an exception. (PR #5852)
@yu199195 commented on this pull request.
In shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java:
>       * @return Response       * @throws IOException IOException       */      public Response requestJson(final String url, final String json, -        final Map<String, String> header) throws IOException { +        final Map<String, String> header, HTTPMethod method) throws IOException {
where is call this funcation？
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Allow cases where a constant label refers to an enumerated value

[@FroMage] I'd like to be able to switch on more than just literals, for example constants, like Java enums. Currently we can only switch on types or literals, but that's really bad because we can't switch on constants, which would lead to duplication that using constants would avoid.
For example:
String element = "foo";
void f(String val){
 switch(val)
 case(element) { ... }
}
void g(String val){
 switch(val)
 case(element) { ... }
}

As opposed to the worse:
String element = "foo";
void f(String val){
 switch(val)
 case("foo") { ... }
}
void g(String val){
 switch(val)
 case("foo") { ... }
}

Also ATM we can't switch on Java enums. I guess if we do allow constants then we will be able to fix that. If not, we should think of a way to allow that somehow.
[Migrated from ceylon/ceylon-spec#938]

I have edited the issue description since we've already supported switching on Java enums for a long time now.


Site media upload and provision is not working

The media upload is not working for PMR and it seems the images are not being served either.

Moving to wordpress so not relevant anymore