Can this package be installed without a CUDA device?

I tried to install cudatoolkit-dev on a machine without GPU / CUDA enabled device (to test if I can compile something, without running), by creating a new clean env on an Ubuntu 18.04 laptop. The installation seems to work initially (no errors), but the toolkit actually doesn't seem to be installed.
Creation of the env:

```
(base) joris@joris-XPS-13-9380:~/scipy$ conda create -n test-cuda cudatoolkit-dev
Collecting package metadata: done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.6.14
latest version: 4.7.5
Please update conda by running
$ conda update -n base conda

Package Plan
environment location: /home/joris/miniconda3/envs/test-cuda
added / updated specs:
- cudatoolkit-dev
The following packages will be downloaded:
package                    |            build
---------------------------|-----------------
sqlite-3.29.0              |       hcee41ef_0         2.0 MB  conda-forge
------------------------------------------------------------
                                       Total:         2.0 MB

The following NEW packages will be INSTALLED:
_libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
asn1crypto         conda-forge/linux-64::asn1crypto-0.24.0-py37_1003
bzip2              conda-forge/linux-64::bzip2-1.0.6-h14c3975_1002
ca-certificates    conda-forge/linux-64::ca-certificates-2019.6.16-hecc5488_0
certifi            conda-forge/linux-64::certifi-2019.6.16-py37_0
cffi               conda-forge/linux-64::cffi-1.12.3-py37h8022711_0
chardet            conda-forge/linux-64::chardet-3.0.4-py37_1003
conda              conda-forge/linux-64::conda-4.7.5-py37_0
conda-package-han~ conda-forge/linux-64::conda-package-handling-1.3.11-py37_0
cryptography       conda-forge/linux-64::cryptography-2.7-py37h72c5cf5_0
cudatoolkit-dev    conda-forge/linux-64::cudatoolkit-dev-10.0-1
icu                conda-forge/linux-64::icu-58.2-hf484d3e_1000
idna               conda-forge/linux-64::idna-2.8-py37_1000
libarchive         conda-forge/linux-64::libarchive-3.3.3-hb44662c_1005
libffi             conda-forge/linux-64::libffi-3.2.1-he1b5a44_1006
libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
libiconv           conda-forge/linux-64::libiconv-1.15-h516909a_1005
libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
libxml2            conda-forge/linux-64::libxml2-2.9.9-h13577e0_1
lz4-c              conda-forge/linux-64::lz4-c-1.8.3-he1b5a44_1001
lzo                conda-forge/linux-64::lzo-2.10-h14c3975_1000
ncurses            conda-forge/linux-64::ncurses-6.1-hf484d3e_1002
openssl            conda-forge/linux-64::openssl-1.1.1c-h516909a_0
pip                conda-forge/linux-64::pip-19.1.1-py37_0
pycosat            conda-forge/linux-64::pycosat-0.6.3-py37h14c3975_1001
pycparser          conda-forge/linux-64::pycparser-2.19-py37_1
pyopenssl          conda-forge/linux-64::pyopenssl-19.0.0-py37_0
pysocks            conda-forge/linux-64::pysocks-1.7.0-py37_0
python             conda-forge/linux-64::python-3.7.3-h33d41f4_1
python-libarchive~ conda-forge/linux-64::python-libarchive-c-2.8-py37_1004
readline           conda-forge/linux-64::readline-8.0-hf8c457e_0
requests           conda-forge/linux-64::requests-2.22.0-py37_0
ruamel_yaml        conda-forge/linux-64::ruamel_yaml-0.15.71-py37h14c3975_1000
setuptools         conda-forge/linux-64::setuptools-41.0.1-py37_0
six                conda-forge/linux-64::six-1.12.0-py37_1000
sqlite             conda-forge/linux-64::sqlite-3.29.0-hcee41ef_0
tk                 conda-forge/linux-64::tk-8.6.9-hed695b0_1002
tqdm               conda-forge/noarch::tqdm-4.32.2-py_0
urllib3            conda-forge/linux-64::urllib3-1.24.3-py37_0
wheel              conda-forge/linux-64::wheel-0.33.4-py37_0
xz                 conda-forge/linux-64::xz-5.2.4-h14c3975_1001
yaml               conda-forge/linux-64::yaml-0.1.7-h14c3975_1001
zlib               conda-forge/linux-64::zlib-1.2.11-h14c3975_1004
zstd               conda-forge/linux-64::zstd-1.4.0-h3b9ef0a_0
Proceed ([y]/n)?
Downloading and Extracting Packages
sqlite-3.29.0        | 2.0 MB    | ######################################################################################################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

To activate this environment, use

$ conda activate test-cuda

To deactivate an active environment, use

$ conda deactivate

```
Activating the env already case some errors:
(base) joris@joris-XPS-13-9380:~/scipy$ act test-cuda
ln: target '/home/joris/miniconda3/envs/test-cuda/bin/zstdmt' is not a directory
ln: target '/home/joris/miniconda3/envs/test-cuda/lib/xml2Conf.sh' is not a directory
ln: target '/home/joris/miniconda3/envs/test-cuda/bin/zstdmt' is not a directory
ln: target '/home/joris/miniconda3/envs/test-cuda/lib/xml2Conf.sh' is not a directory
ln: target '/home/joris/miniconda3/envs/test-cuda/lib/xml2Conf.sh' is not a directory
ln: target '/home/joris/miniconda3/envs/test-cuda/include/zstd.h' is not a directory

After that, the nvcc compiler is not on the path, the pkgs/cudatoolkit-dev dir is empty except for a md5sum.txt file (although the cudatoolkit-dev-activate.sh script tries to link to bins located there).
So at least it seems the installation was not complete?

Environment (conda list):

$ conda list
# packages in environment at /home/joris/miniconda3/envs/test-cuda:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main
asn1crypto                0.24.0                py37_1003    conda-forge
bzip2                     1.0.6             h14c3975_1002    conda-forge
ca-certificates           2019.6.16            hecc5488_0    conda-forge
certifi                   2019.6.16                py37_0    conda-forge
cffi                      1.12.3           py37h8022711_0    conda-forge
chardet                   3.0.4                 py37_1003    conda-forge
conda                     4.7.5                    py37_0    conda-forge
conda-package-handling    1.3.11                   py37_0    conda-forge
cryptography              2.7              py37h72c5cf5_0    conda-forge
cudatoolkit-dev           10.0                          1    conda-forge
icu                       58.2              hf484d3e_1000    conda-forge
idna                      2.8                   py37_1000    conda-forge
libarchive                3.3.3             hb44662c_1005    conda-forge
libffi                    3.2.1             he1b5a44_1006    conda-forge
libgcc-ng                 9.1.0                hdf63c60_0
libiconv                  1.15              h516909a_1005    conda-forge
libstdcxx-ng              9.1.0                hdf63c60_0
libxml2                   2.9.9                h13577e0_1    conda-forge
lz4-c                     1.8.3             he1b5a44_1001    conda-forge
lzo                       2.10              h14c3975_1000    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
openssl                   1.1.1c               h516909a_0    conda-forge
pip                       19.1.1                   py37_0    conda-forge
pycosat                   0.6.3           py37h14c3975_1001    conda-forge
pycparser                 2.19                     py37_1    conda-forge
pyopenssl                 19.0.0                   py37_0    conda-forge
pysocks                   1.7.0                    py37_0    conda-forge
python                    3.7.3                h33d41f4_1    conda-forge
python-libarchive-c       2.8                   py37_1004    conda-forge
readline                  8.0                  hf8c457e_0    conda-forge
requests                  2.22.0                   py37_0    conda-forge
ruamel_yaml               0.15.71         py37h14c3975_1000    conda-forge
setuptools                41.0.1                   py37_0    conda-forge
six                       1.12.0                py37_1000    conda-forge
sqlite                    3.29.0               hcee41ef_0    conda-forge
tk                        8.6.9             hed695b0_1002    conda-forge
tqdm                      4.32.2                     py_0    conda-forge
urllib3                   1.24.3                   py37_0    conda-forge
wheel                     0.33.4                   py37_0    conda-forge
xz                        5.2.4             h14c3975_1001    conda-forge
yaml                      0.1.7             h14c3975_1001    conda-forge
zlib                      1.2.11            h14c3975_1004    conda-forge
zstd                      1.4.0                h3b9ef0a_0    conda-forge

Details about  conda and system ( conda info ):

$ conda info

     active environment : test-cuda
    active env location : /home/joris/miniconda3/envs/test-cuda
            shell level : 2
       user config file : /home/joris/.condarc
 populated config files : /home/joris/.condarc
          conda version : 4.6.14
    conda-build version : not installed
         python version : 3.7.3.final.0
       base environment : /home/joris/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/joris/miniconda3/pkgs
                          /home/joris/.conda/pkgs
       envs directories : /home/joris/miniconda3/envs
                          /home/joris/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.14 requests/2.22.0 CPython/3.7.3 Linux/4.15.0-1043-oem ubuntu/18.04.2 glibc/2.27
                UID:GID : 1001:1001
             netrc file : None
           offline mode : False

As stated in the README

This package consists of a post-install script that downloads and installs the full cuda toolkit(compiler, libraries, with the exception of cuda drivers).

A cuda device is needed.

Thanks for the answer!
Now, to me (but I am a CUDA / GPU noob) the README doesn't make that really clear. I know a cuda device is needed for all functionality, but in principle you can compile with nvcc without having a cuda device (AFAIK).
And I am also wondering, could the post install script raise an error if does not succeed? That might make it less confusing

I concur. The post install script could use some improvements in error handling.

I know a cuda device is needed for all functionality, but in principle you can compile with nvcc without having a cuda device (AFAIK).

@jorisvandenbossche, you are right. It's possible to use this package without a CUDA device, however, if you ever need functionality that requires access to cuda driver, it won't work.

A case, where installing cudatoolkit-dev to machine without a CUDA device would be needed, is building third-party libraries such as omniscidb-cuda (see https://github.com/conda-forge/staged-recipes/pull/9225) that uses nvcc, in conda-forge CI.
What would be needed to fix this issue?

Another use case would in a HPC environment where you install the package on a build node with no GPU, then run it on a compute node with no internet.


Plug-in enables two lights per one M150 command

When entering the "M150" command 2 lights of the RGB lights come on. For example,

the command "M150 R" turns green lights on as well as the requested "R" red lights,

the command "M150 G" turns blue lights on as well as the request green lights,

the command "M150 B" turns on red lights as well as the requested blue lights.

the command "M150 R U B" turns all the lights off

finally the command "M150 R0", "M150 G0", or "M150 U0" turns on all lights making it appear white

I've tried uninstalling/reinstalling the plug-in to no notable change in the actions above and have verified pin location and even moved to other GPIO pins.
Use pigpiod is unchecked
cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Octoprint 1.4.0
LED setup
12v led strip ran thru relays
All relays work fine with enclosure plug in but would have to be toggled on/off. But within this plugin, not so well.

Hi!
I'm experiencing the same issue. Have you had any luck finding a solution?
Regards,
Christian

Are either or both of you using pigpiod?  I hate to admit it, but OctoPrint setup is really outdated.  I'll see if I can get some time later this week to get my Pi upgraded with the latest OctoPrint to reproduce.

I'm a complete beginner when it comes to Pi's and I've never used them for anything else than Octoprint. Can the GPIO pins be connected to ground?


Contribute to documentation

This week, I successfully used this project to set up driverless printing to my HP LaserJet P1005 from a Raspberry Pi 2. :raised_hands:
I'd love to be able to contribute to documentation to make this easier for others.
But there doesn't seem to be a documentation system in place yet...

some projects store documentation in the project wiki (see Documenting your project with wikis)

advantages: easy for to add/edit documentation without submitting pull requests
disadvantages: when a new major version is released, it's hard to tell v1 docs from v2, etc.

some projects store documentation in a docs/ folder (see About GitHub Pages and Configuring a publishing source for your GitHub Pages site)

advantages: v1 documentation is in the v1 branch; v2 documentation is the v2 branch
disadvantages: have to submit PRs to update docs
note: this way also works well with ReadTheDocs versioned documentation if you prefer that over GitHub Pages

(I personally like option 2)
Maintainers, do you have a preference for where I should start submitting documentation?

Thanks a lot for reporting the first issue on the HPLIP Printer Application, and under the 3113 downloaders up to now (including you) no one reported a bug in the actual software.
And thank you for giving feedback on your experience with the HP LaserJet P1005, a printer which needs its firmware loaded everytime when it is turned on, and that on a Raspberry Pi 2 which is an ARM system and not amd64, and so knowing that the download of the proprietary plugin and after that the automatic firmware loading by the Printer Application all work as designed by me, also on non-amd64.
I even was not able to test everything straight away on my amd64 boxes, not having an appropriate printer. I did some tricks testing this on the non-firmware-needing HP OfficeJet Pro 8730, creating a fake firmware file which is simply a PDF file (this my printer prints raw, without any filters nor IPP, simply via classic USB) renamed to what a firmware file looks like, edited HPLIP's models.dat telling that my printer needs firmware, and after that getting the file printed everytime when I had turned on the printer, meaning that the "firmware" got uploaded into it.
Did you any special things for that? Or all straight-forward (click "proprietary plugin" in the web interface, follow screen instructions to download plugin, create queue for your printer via "Add printer", ...)? If you most note-worthy steps are on the level of getting a systemd-based system, get snapd on it, and afterwards the Printer Application Snap itself, you should also consider the snapcraft.io forum.
Even if we do not have decided on the documentation concept yet, could you post here in this issue report what exactly you have done and in general what you wanted to write into the documentation?
Now to the actual question of your issue report, I am also in favor of documentation concept (2). This integrates best with our projects (I think "cups" does such a thing already) this way we have a documentation version for each version of the software and we can keep track of its development.
To make a start, good parts of README.md will probably get into the documentation, and also any of your special experiences.

Hey @tillkamppeter, thanks for the quick response; and thank you very much for your hard work on hplip-printer-app!
My LaserJet P1005 has always been a bit of a pain to get working on a new computer. For a number of reasons, I had been looking for some way that I could install the HPLIP drivers on a Raspberry Pi, so I could send something to the Pi, and let it figure out how to print it, i.e.: to save me the hassle of trying to get it working on a new computer or after a reformat.
For a while, I was looking into setting up CUPS and sharing printers through it, but reading that CUPS was dropping driver support in favour of IPP, I decided to teach myself a bit more about IPP; which lead me to @michaelrsweet's LPrint, which led me to PAPPL, which led me here!
So far, while I've hit some hiccups, I'm not sure if they're actually bugs or not... those hiccups might just be my own ignorance :upside_down_face: (as a software developer myself, I'm acutely aware that sometimes problems exist between the chair and the keyboard)

To confirm some of your questions, yes, I'm using a Raspberry Pi 2 model B, which has an ARM Cortex-A7 (a.k.a.  armv7+ a.k.a. armv7l a.k.a. armhf, a 32-bit architecture). I installed Raspberry Pi OS Lite (Lite = no GUI), based on Debian 11 Bullseye... here is my uname and lsb_release:
$ uname -a
Linux my-hostname 5.10.63-v7+ #1488 SMP Thu Nov 18 16:14:44 GMT 2021 armv7l GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye

... once logged into the new Raspbian install, I had to install snapd, and the hplip-printer-app...
$ sudo apt install snapd
$ sudo snap install --edge hplip-printer-app

I then went to the web UI at http://my-hostname.local:8000/ to configure...

I clicked "Add Printer"... I can't remember exactly what I did but it became clear that I had to install the proprietary plugin, so...
I went back to the home screen to click "Install Proprietary Plugin", and followed the steps
I then clicked "Add printer" again, and set it up
It worked right away after that: i was able to successfully print from:

the hplip-printer-app web UI, iOS 15.2, Android 11, Windows 11, and macOS 11.6 Big Sur without any issues;
Ubuntu 21.10 Impish and Fedora SilverBlue 35 by adding the printer by its address (http://<ip-addr>:8000/ipp/print/myprintername) and choosing the "Generic PostScript" driver (whatever Linux's CUPS auto-detects doesn't seem to work).

However, I remember now that the "first print after starting the printer" (i.e.: where the firmware gets loaded) happened a few weeks ago when I plugged it into my old macOS box... I didn't understand what was happening before. I had just become accustomed to not turning off the printer - and if it gets restarted after a power failure to print a test page from macOS via direct USB connection. Thanks for clarifying what was happening there.
As I was typing this response, though I decided to perform a small experiment to see if I could figure out if the firmware was working... I printed a test page (which worked), then power-cycled the printer, and then tried to print another test page (which has gotten stuck in "Processing" for about an hour now, which i think means the firmware may not have been properly loaded after the power cycle). Restarting the Raspberry Pi doesn't seem to have fixed the problem. So I may have just found the first bug (sorry!). I can file that as a separate ticket soon (I want to try printing a test page from macOS over a direct USB connection, and then plugging it back into the Raspberry Pi to see if that unblocks the print queue... I'd also like some sleep, as it's getting pretty late in my timezone).

Regarding the documentation; thanks for the response; I'll look into submitting a pull request soon!
Thanks again for your hard work, quick and friendly response, and for your help! :smile:

I have now updated the Snap to 3.21.12, but without any further fixes and investigations, only tested whether a print queue satys conserved and uses the current HPLIP's PPD file and whether the proprietary plugin installed under the HPLIP 3.21.8 Snap gets automatically updated when updating to the HPLIP 3.21.12 Snap. All this is the case. The plugin update can be slow.
The Snap Store is currently building the new Snap version, and if you did not change any settings on your system, in the end of the process the Snap Store will update your installed 3.12.8 Snap by 3.12.21 and the Snap itself will update your plugin.
This can improve your situation but does not necessarily do so, as no active changes concerning your problem are done.
Please report back how it all works for you.

Hi @tillkamppeter, sorry for the delay in responding.
While on revision 247 (i.e.: version 3.12.8), I power-cycled the printer, and confirmed I could not print. I then updated the snap to revision 251 (i.e.: version  3.21.12). It did keep the print queue and settings. Checking the "Install Proprietary Plugin" page, it reported "Plugin installed and up-to-date" and tried again - I still could not print.
I unplugged the printer from the Raspberry Pi (USB) and plugged it into my macOS machine (Big Sur, running the macOS "HP LaserJet P1005, 1.6.1 (greyscale)" driver, over USB), and printed a test page. I then plugged the printer back into the Raspberry Pi and tried again... I could print again from the Raspberry Pi.
(sounds like the macOS 1.6.1 driver loads the firmware properly; but the Linux HPLIP 3.2.12 driver does not)
But... if I power-cycle the printer and then run...
$ lsusb -d 03f0:3d17 # i.e.: list HP LaserJet P1005s attached to the system
Bus 001 Device 004: ID 03f0:3d17 HP, Inc LaserJet P1005
$ sudo snap run --shell hplip-printer-app # i.e.: enter the hplip-printer-app snap filesystem
$ hp-firmware -y3 -s 001:004 # i.e.: bus:device from the lsusb output earlier

... the printer whirs, and I can print after that (the -y3 - i.e.: wait 3 seconds - is from https://bbs.archlinux.org/viewtopic.php?id=157931 - I can test other values to see if they work)
I'll file this as a separate issue though.


Fix bug parsing 0 epoch expiry times

As per https://github.com/guzzle/guzzle/issues/1952 expiry times
specified as Thu, 01 Jan 1970 00:00:00 GMT should be treated as
expired, but they weren't because 0 was implicitly casting to a bool in
SetCookie::isExpired().

👍

Great patch, thanks a lot and sorry for the delay.


V-analyzer crashes without .v-analyzer/config.toml

Describe the bug
V-analyzer crashes without .v-analyzer/config.toml on ubuntu 24.04
Expected Behavior
Not crash, or explicitly state that projects need this file
Current Behavior
V-analyzer crashes without ./v-analyzer/config.toml on ubuntu 24.04
Reproduction Steps
Create a new project on ubuntu 24.04 and it will produce the error
Possible Solution
copy this repos config.toml file to the project
Additional Information/Context
[Info  - 3:45:45 PM] v-analyzer version: 0.0.3-beta.1, commit: a796f25, OS: linux x64
[Info  - 3:45:45 PM] v-analyzer executable path: /home/username/.config/v-analyzer/bin/v-analyzer
[Info  - 3:45:46 PM] v-analyzer build with V aef3643
[Info  - 3:45:46 PM] v-analyzer build at 2023-12-13 12:53:18
[Info  - 3:45:46 PM] Client / Editor: Visual Studio Code 1.95.3 (PID: 198880)
[Info  - 3:45:46 PM] Using global config: /home/username/.config/v-analyzer/config.toml
[Info  - 3:45:46 PM] Found toolchain candidates:
[Info  - 3:45:46 PM]   /home/username/Documents/v
[Info  - 3:45:46 PM] Using "/home/username/Documents/v" as toolchain
[Info  - 3:45:46 PM] Using "/home/username/.cache/v-analyzer" as cache dir
[Info  - 3:45:46 PM] Using "/home/username/.vmodules" as vmodules root
[Info  - 3:45:46 PM] Indexing /home/username/.vmodules
[Info  - 3:45:46 PM] Indexing /home/username/Documents/v/vlib
[Info  - 3:45:46 PM] Indexing /home/username/.config/v-analyzer/metadata
[Info  - 3:45:46 PM] Indexing /home/username/Documents/projectname
signal 11: segmentation fault
addr2line: '[0x48fb95]': No such file
[0x48fb95]
addr2line: '[0x47923c]': No such file
[0x47923c]
addr2line: '[0x40f8c3]': No such file
[0x40f8c3]
addr2line: '[0x40fa0b]': No such file
[0x40fa0b]
addr2line: '[0x61359b]': No such file
[0x61359b]
addr2line: '[0x6b59a0]': No such file
[0x6b59a0]
Environment details (v doctor output)
V full version: V 0.4.8 dab25ca.61e38b9
OS: linux, Ubuntu 24.04.1 LTS
Processor: 12 cpus, 64bit, little endian, 13th Gen Intel(R) Core(TM) i5-1335U
getwd: /home/username/Documents/v-analyzer
vexe: /home/usernameDocuments/v/v
vexe mtime: 2024-11-18 14:42:14
vroot: OK, value: /home/username/Documents/v
VMODULES: OK, value: /home/username/.vmodules
VTMP: OK, value: /tmp/v_1000
Git version: git version 2.43.0
Git vroot status: weekly.2024.39-453-g61e38b9b
.git/config present: true
CC version: cc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
emcc version: N/A
thirdparty/tcc status: thirdparty-linux-amd64 0134e9b9
Editor name
VSCode
v-analyzer Version
v-analyzer version 0.0.3-beta.1.a796f25
VS Code Extension Version
Published 2023-07-02, 21:17:04
Last released 2023-07-03, 13:18:06
Last updated 2024-11-15, 10:24:42
Identifier vosca.vscode-v-analyzer

It was a faulty installation, from vscode, when I used the script properly in the readme, it worked


Update links on website

Added commits from #135 (with a small typo fix) and #138, and included changes to links in those files


ERROR: Failed building wheel for mmcv-full

installing reqs ends with this:
active_rotated_filter.cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\include\yvals.h(17): fatal error C1083: Cannot open include file: 'crtdbg.h': No such file or directory
error: command 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\HostX86\x64\cl.exe' failed with exit code 2
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mmcv-full
Running setup.py clean for mmcv-full
Successfully built metaseg thinplate segment-anything
Failed to build pycocotools mmcv-full
ERROR: Could not build wheels for pycocotools, mmcv-full, which is required to install pyproject.toml-based projects
C:\Users\XXXXX\Documents\Github\track-anything>

Hello, we have updated the requirements and the way installing mmcv, please check our latest push

in my case, this failed initially as well. i followed intructions on their git hub readme
pip install -U openmim
mim install mmcv

We avoid using pip install mmcv, replace with pip install openmim, https://github.com/gaomingqi/Track-Anything/blob/35850bdb735d1544ca0927094c5b21978282cce3/requirements.txt#L15 and run the mim install mmcv in app.py https://github.com/gaomingqi/Track-Anything/blob/35850bdb735d1544ca0927094c5b21978282cce3/app.py#L19-L22


Crash on titleFormatter property

Report
What did you do?
Set block to  txtField.titleFormatter
What did you expect to happen?
configuration of placeholder text format
What happened instead?
Crash on line  txtField.titleFormatter = { (text: String) in return text }
Thread 1: EXC_BAD_ACCESS (code=257, address=0x1a1b723bec9)
Environment
Xcode Version: 9.4.1 (9F2000)
SkyFloatingLabelTextField Version: 3.5.1
Deployment Target: iOS 11.4
Base SDK: iOS 10.0
Method of Integration: CocoaPods

Is this reproducible in a barebones project? Can you attach an example project if so?

Sorry, it was my mistake. I incorrectly connected IBOutlets.


No direct references to settings

Make sure, that settings are only adressed via methods, so that changing structures gets easier.

change for modifications
get for retrieving information

This would allow making the save method private as well.

Went through everything and replaced, as demanded: https://github.com/Idrinth/IDotD/commit/bd3ccfd1b752e04470344633d414dd680db63769
Requires in-deep check @Idrinth for each replacement, I likely replaced complex calls faulty.

did you test if your branch still works, @Ardenian ?

It does not, @Idrinth, therefore I assume something has to be wrong.

have a look at your seperator, does it match the one in the getter?
src/mods/chat.js lines 316 and src/mods/land.js 10 use different ones

That's one part of the medal, the other one is most likely in tier.js lines 96+, pretty sure I messed up the array stuff


Add CLI KES_PLAYER_DISABLE_WEBGL

The purpose here is to disable visualizations and restore the CDG's original background. This is important for some CDGs that have a complex background or that have multiple singers lyrics in different colors that happen to be the same as the most recent background command.
When KES_PLAYER_DISABLE_WEBGL is not defined or "0" nothing changes. When KES_PLAYER_DISABLE_WEBGL is any number other than "0", WEBGL is disabled.
Please double check this. I don't have a JS IDE or any way to test this. However, I have programmed in more than a dozen languages, including a couple of assembly languages, and this seems like a trivial edit.

Thanks, as discussed in the dev channel, since the visualizer is independent of the CD+Graphics layer this won't be any different than simply turning off the visualizer at the start of a session.


Bump golangci-lint to v1.58.2

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This PR updates the .golangci.yaml file to address the following warnings:

Deprecated configuration options linters.staticcheck.go and linters.stylecheck.go are replaced with global run.go.
Moved exclude files configuration from the deprecated run.skip-files to issues.exclude-files.

Special notes for your reviewer:
None
Does this PR introduce a user-facing change?
NONE

@wzshiming I actually see a few  issues in these files, I'm attaching the screenshot of the run logs for the golangci-lint run (checked from both the main branch as well as this branch and the issue looks to be with the files below). Do you want me to update those files as well?

https://github.com/kubernetes-sigs/kwok/actions/runs/9281935006/job/25538890886?pr=1121
 level=warning msg="[runner] Can't run linter goanalysis_metalinter: the_only_name: cannot find rule: max-control-nesting"
  level=error msg="Running error: 1 error occurred:\n\t* can't run linter goanalysis_metalinter: the_only_name: cannot find rule: max-control-nesting\n\n"

It seems to be a problem with your configuration, make sure the lint is the same as the version you have configuration.

/approve
/lgtm


Update suggested Curl command

-sSf is better for errors.
-L handles redirects.

Nice, great improvement, thanks!


ReferenceError: Promise is not defined

Hi,
I used this interface with success in a ubuntu based docker container.
I've upgraded now the system to the latest docker version and I have this error...
ReferenceError: Promise is not defined. See bellow
Not sure where to start... Or what is the cause of this. Any ideas?
root@b17e220955cf:/producer# node /scripts/capture-test.js

/node_modules/chrome-remote-interface/lib/chrome.js:42
        return new Promise(function (fulfill, reject) {
                   ^
ReferenceError: Promise is not defined
    at Chrome.send (/node_modules/chrome-remote-interface/lib/chrome.js:42:20)
    at Object.handler [as enable] (/node_modules/chrome-remote-interface/lib/chrome.js:108:21)
    at EventEmitter.<anonymous> (/scripts/capture-test.js:9:17)
    at EventEmitter.emit (events.js:95:17)
    at WebSocket.<anonymous> (/node_modules/chrome-remote-interface/lib/chrome.js:251:23)
    at WebSocket.EventEmitter.emit (events.js:92:17)
    at WebSocket.establishConnection (/node_modules/chrome-remote-interface/node_modules/ws/lib/WebSocket.js:887:8)
    at ClientRequest.upgrade (/node_modules/chrome-remote-interface/node_modules/ws/lib/WebSocket.js:778:25)
    at ClientRequest.g (events.js:180:16)
    at ClientRequest.EventEmitter.emit (events.js:106:17)

capture-test.js - contains your sample API usage code. Copy pasted.

Which version of Node.js are you using? You can find it out by running node --version.
Also try to run the following in your environment:
$ node -p 'new Promise((f, r) => f(42))'
Promise { 42 }

node version: v0.10.25
root@9886acca1338:/producer# node --version
v0.10.25

Now, I've migrated the docker container to Ubuntu 16.04 and it seems to have fixed the problem.
I'll dig further to gather a bit more info.
It seems that
npm install es6-promise and putting this in the js also might work
var Promise = require("es6-promise").Promise

Yup, that's the problem, native ES6 promises are not present in v0.10.25. IMHO updating to a more recent version of Node.js is better than using a polyfill.
I should probably state the minimum  required Node.js version in package.json.

Thanks for the time and replies. I thought this is not a bug from your code, just I didn't know where to go :)
I'll close this.

I've added the check in the package.json, you should now get a warning if you use a version older than 0.12.15.


TypeError: not a string when exec llama.py

conda install -c conda-forge cudatoolkit-dev
mkdir repositories
cd repositories
git clone https://github.com/qwopqwop200/GPTQ-for-LLaMa
cd GPTQ-for-LLaMa
git reset --hard 468c47c01b4fe370616747b6d69a2d3f48bab5e4
python setup_cuda.py install

download model from decapoda-research/llama-7b-hf into ~/llama-7b-hf
when exce :
CUDA_VISIBLE_DEVICES=0 python llama.py ~/llama-7b-hf c4 --wbits 4 --groupsize 128 --save llama7b-4bit.pt
raise exception:
Traceback (most recent call last):
  File "/home/user01/GPTQ-for-LLaMa/llama.py", line 404, in <module>
    dataloader, testloader = get_loaders(
  File "/home/user01/GPTQ-for-LLaMa/datautils.py", line 111, in get_loaders
    return get_c4(nsamples, seed, seqlen, model)
  File "/home/user01/GPTQ-for-LLaMa/datautils.py", line 64, in get_c4
    tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False)
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/transformers/models/auto/tokenization_auto.py", line 694, in from_pretrained
    return tokenizer_class.from_pretrained(pretrained_model_name_or_path, *inputs, **kwargs)
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/transformers/tokenization_utils_base.py", line 1811, in from_pretrained
    return cls._from_pretrained(
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/transformers/tokenization_utils_base.py", line 1965, in _from_pretrained
    tokenizer = cls(*init_inputs, **init_kwargs)
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/transformers/models/llama/tokenization_llama.py", line 96, in __init__
    self.sp_model.Load(vocab_file)
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/sentencepiece/__init__.py", line 905, in Load
    return self.LoadFromFile(model_file)
  File "/home/user01/conda/envs/gptq/lib/python3.9/site-packages/sentencepiece/__init__.py", line 310, in LoadFromFile
    return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)
TypeError: not a string

The model was converted to old Transformers. Convert the model again

Thank you for your quick reply. how to Convert the model again ?

Thank you for your quick reply. how to Convert the model again ?

huggyllama/llama-7b use it

It's working! Thank you very much!

If you also see the warning: "The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization.
The tokenizer class you load from this checkpoint is 'PreTrainedTokenizerFast'.
The class this function is called from is 'LlamaTokenizer'.
You are using the legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. This means that tokens that come after special tokens will
not be properly handled. We recommend you to read the related pull request available at https://github.com/huggingface/transformers/pull/24565 ", make sure to set tokenizer type to be None.


add command to list container images

When I create containers using custom images, I need an easy way to tell which image was used for each container, so I can rebuild containers that use old images.
"lxc list -c nF" provides such a list, but uses the image fingerprint, which needs further looup.
Add a command that shows the image alias instead.

Added command:
lxdops container images
It lists all LXD instances, even though it is historically named "container"


Genome List: Antimicrobial Resistance_evidence

Change the filter label to "Antimicrobial Resistance Evidence" to make it consistent with others.

Fixed


add heroku deploy button

Moved out proxy server code to separate repo and added Heroku deploy button - https://github.com/ayastreb/bandwidth-hero-proxy
You can also deploy to Webtask.io now :)


Filter cardinality values

Is it possible possible to alert on cardinality having some range. ex:
*| agg:terms field:event_data.TargetUserName| agg:card field:event_data.IpAddress
This returns the unique count of ip adresses per user. I want to trigger an alarm when the count is in range [x TO y].

You can create an expression filter via the Advanced tab. Something like content['count'] > 1 && content['count'] < 10 will work.

That said, I'd like to fix this as the current behaviour with aggs and a result filter is not intuitive.


Container build improvements

Producing all the genersted sources is now done using
'make gen' which runs the build steps within the build-tools
container.

'make fmt' now runs formatting steps from the build-tools
container.

Update common files and common protos.

Please provide a description for what this PR is for.
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@geeknoid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

e2e-mixer-no_auth_istio
3abef752eff45f49c678bcbb5880a64430724409
link
/test e2e-mixer-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test e2e-mixer-no_auth

/retest

@geeknoid: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test pilot-multicluster-e2e

integ-mixer-k8s-tests_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test integ-mixer-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test pilot-multicluster-e2e

integ-mixer-k8s-tests_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test integ-mixer-k8s-tests

e2e-simpleTestsMinProfile_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test e2e-simpleTestsMinProfile

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test pilot-multicluster-e2e

integ-mixer-k8s-tests_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test integ-mixer-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test integ-mixer-k8s-tests

lintmodern_istio
71cf6364f6c6ba6e84243b3c5be9af04df01595e
link
/test lintmodern

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@geeknoid: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
2c3d15b9f77dc11cc4599aa2e2082dc82851c100
link
/test integ-mixer-k8s-tests

pilot-e2e-envoyv2-v1alpha3_istio
71cf6364f6c6ba6e84243b3c5be9af04df01595e
link
/test pilot-e2e-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test pilot-e2e-envoyv2-v1alpha3

/retest


Sub Format hides excel's Format function

Formatter module contains public sub format().
Excel has a built-in function called Format.
if I add a reference to your project (so I can call exportVbProject) I my calls to the latter are mistaken for calls to the former which causes errors.

That is a good point. The format function should be renamed. Any suggestions for a short and clear name? Maybe 'FormatVba()'.
For now, just use the fully qualified name i.e.  ModuleName.FunctionName() to call the function. That will always work as expected.

What about FormatActiveCodePane ?
Certainly not short by quite clear.

please look at the patch https://github.com/hilkoc/vbaDeveloper/pull/43 above


Need some help to update pdpython to python3

Hi,
I hope you are still receiving notifications about this project.
Very cool project by the way. Thanks very much for sharing. I have a similar effort for max/msp py-js.
In any case, I tried to update your project to python3 and I've managed to compile without errors but upon loading I get the following in the console:
Appending current canvas path to Python load path: /Users/sa/Downloads/src/pdpython/install-OSX
Error: unable to import Python module python_help.

While the patch page seems active without any red colors to indicate failure to load the external, when I click on any of the demo objects on it I get only the following message in the console:
Warning: message sent to uninitialized python object.

So it seems that I'm close but missing something.
Could you please have a look at my 1 commit which includes all of the fixes for python3 compatibility. Please see: https://github.com/shakfu/pdpython
Clearly it would be great to get your project up python3 compatibility as python2 is pretty much dead and unsupported now.
Thanks again,
S

Ok, I fixed it. Python 3 support works!
Please check my second commit. I will see if I can make a pull request.
S

Added PR #3 to convert to python3


macOS image with Android SDK bundled?

Similar request to https://github.com/cirruslabs/docker-images-windows/issues/3 - if we could have Android SDK pre-bundled here it would help with some integration tests I want to write.  Otherwise I'd have to pull it down and try to cache it.

I'm actually working on a VM with Flutter pre-installed. Can include Android SDK as well!
But first need to make a Homebrew formula that works. Formulas in https://github.com/flutter/flutter/issues/14050 don't quite work, you can't change channel if you are using them.

Nice!
In this case, I wouldn't want flutter installed, just the Android SDK.  Part of the test would be pulling flutter down

Will it be ok to have Flutter pre-installed though? macOS VMs uses layers but they are still pretty huge, don't want to create too many of them.

Should be fine

You might have an easier time just doing git clone (maybe single branch) followed by flutter precache


New icon

I made a new icon for the mod based on the Sodium icon
I left an SVG in the root of the project
Reasons for a new icon:
Assuming that mods like Sodium Extras and Xander's Sodium Options have their icon based on the Sodium icon, it's only fair that Indium also based it on it.
The purple color was maintained, in a light tone following the green tone of the Sodium icon.
A high quality preview of the icon (1024x)

Details

Thanks for the PR, but I would prefer to keep the current icon. I think the branding for Indium should be visually distinct from Sodium and the other Caffeine mods, as users could confuse the mod for being a Caffeine mod itself. Confusing branding could make users more likely to report Indium issues to the Caffeine discord rather than the Indium issue tracker.


Mac OS: Unidentified developer

I'm running the .dmg for the first time (normally use the Git repos). I got this message when opening:

This is an OS security feature that, by default, is turned on on OSX. It's not anything for us to handle. If you google the warning, you can find ways to by-pass it, be it on a one-off basis or globally.

 It's not anything for us to handle.

What about signing the app?

I will verify the signature and update if necessary.

ah, @JustinDrake . Wasn't even aware of that? Good to know!

Hey @JustinDrake which OSX are you using btw?

@hoffmabc Version 10.10.5 (14F1605)

I used an Apple cert and it seems it's getting a non-trusted issuer error so I'll see what's up.

@rmisio Are you working on an OpenBazaar project? When did you get involved with OB?

Are you questioning my authority!?
Just Kidding :) I started back in January and I work mainly on the client.

@rmisio Cool. Are you paid by OB1? Volunteer?

I am paid.

All releases will be signed correctly from here on.


Resolve "Setup callback hook for base classes"

Migrated from GitLab: https://gitlab.com/meltano/sdk/-/merge_requests/194
Originally created by @rabidaudio on 2021-10-25 23:51:20

Closes #247

I think the connector protocol (https://github.com/meltano/sdk/issues/1355) will handle this


refactor: core pkg uses slog

The pull request depends #407

Codecov Report

Merging #410 (52772cc) into master (1c41ec0) will increase coverage by 0.62%.
The diff coverage is 63.31%.

@@            Coverage Diff             @@
##           master     #410      +/-   ##
==========================================
+ Coverage   59.44%   60.06%   +0.62%
==========================================
  Files          41       40       -1
  Lines        2796     2827      +31
==========================================
+ Hits         1662     1698      +36
+ Misses       1008     1003       -5
  Partials      126      126

Impacted Files
Coverage Δ

core/core.go
100.00% <ø> (ø)

core/frame/frame.go
32.20% <ø> (+0.95%)
:arrow_up:

options.go
33.87% <0.00%> (ø)

rx/runtime.go
0.00% <0.00%> (ø)

rx/stream_operator.go
32.82% <0.00%> (ø)

sfn.go
23.71% <16.66%> (ø)

zipper_notwindows.go
26.31% <20.00%> (+1.31%)
:arrow_up:

core/listener_default.go
50.00% <33.33%> (ø)

source.go
47.16% <33.33%> (ø)

zipper.go
27.15% <38.46%> (+1.32%)
:arrow_up:

... and 11 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[ADR] 51. Pulsar MailQueue

ADR for https://github.com/apache/james-project/pull/808
TODO:

Message on the mailing list regarding this ADR, the future of pulsar in James, etc...
Review and answer my tiny 3 technical questions over this work.
Open JIRAs for follow up work. Create a pulsar epic and link all JIRAs to it.

With questions answered the ADR is in its final form, ready for a final review.


Segfault when cds/rds connections fail on startup

Config and backtrace here:
https://gist.github.com/mattwoodyard/aedc9cd486cb626626fa6a2b36f7bbc4
It appears to be related to name resolution - using a resolvable name in the config yields a running envoy (albeit obviously not working).

I'll work on fixing this issue today. Thank  you for reporting it.


Prepublish checklist is advising that the background image is too small on the page

Bug Description
Added image to a page, set the image as background but prepublish checklist shows that the Image is too small on the page. (seems to be based on the size on page PRIOR to setting as background)
Expected Behaviour

Steps to Reproduce

Place an image on the page
Drag the image to the edge of the workspace to designate it as a background image
Prepublish check will indicate the error message noted.

Screenshots

Additional Context

Plugin Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

So this investigation highlighted to me a quirk (which others may already be aware of) with background images in that when they are made into a background image they retain their existing bounding rect/positioning info which is then used to re-place the image when it's detached.
Because of this, both mediaElementSizeOnPage (this bug) and the related mediaElementResolution have to work differently for background images. For size on page, I solved this by just ignoring background images for this error since they're handled differently. For mediaElementResolution, though, we'd need to calculate resolution differently than we are currently doing for background images since the bounding rect info is incorrect.
I see two paths for this:

Ignore background images in mediaElementSizeOnPage and create new ticket to calculate mediaElementResolution differently for background images
When images are attached as background images, we re-calculate the bounding rect, then as part of detaching, we do some sort of automatic placement like if we were to pull the image from the media library.

This may be related to #5379
Thoughts? @swissspidy @carlos-kelly @o-fernandez

On further investigation mediaElementResolution probably wouldn't be an issue in normal circumstances, but I implemented some code around this in the process of exploring: #5439


fix: make expose core ingress optional

This is to make expose core ingress optional to accommodate the requirement mentioned in  https://github.com/goharbor/harbor-operator/issues/955
Signed-off-by: Shou-En Hsiao<EMAIL_ADDRESS>

Still debugging the chart test failure. Will push another commit once resolve the issue.


chore(pie-button): DSW-000 dummy button change

╔══════════════════════════════════════════════════════════════════════════════════════════════════╗
║ Please click the Preview tab and select a different PR template if your change isn't for an    ║
║ existing web component.                                                                          ║
║                                                                                ║
║                                                                                ║
║ PIE Docs Template                                         ║
║ New Web Component Template                       ║
╚══════════════════════════════════════════════════════════════════════════════════════════════════╝
Describe your changes (can list changeset entries if preferable)
Author Checklist (complete before requesting a review)

[ ] I have performed a self-review of my code
[ ] I have added Playwright component tests or ensured they exist for affected code.
[ ] I have added Playwright Viual tests or ensured they exist for affected code.
[ ] I have reviewed the Storybook preview
[ ] I have reviewed visual test updates properly before approving
[ ] If changes will affect consumers of the package, I have created a changeset entry.
[ ] If a changeset file has been created, I have used the /snapit functionality to test my changes in a consuming application.

Reviewer checklists (complete before approving)
Reviewer 1

[ ] If there are visual test updates, I have reviewed them

Reviewer 2

[ ] If there are visual test updates, I have reviewed them

/snapit


[WIP] ReferenceType Configuration

Q
A

Bug fix?
no

New feature?
yes

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed tickets
#350

License
MIT

Doc PR
none yet

This is a WIP PR for fixing #350.
Right now, IRIs are relative, which means that it's impossible to tell from which host they come from. This PR attempts to fix that.
Tasks:

[x] Reference Type can set in the configuration via the new configuration key reference_type. The supported values are absolute_url, absolute_path, relative_path and network_path, as supported by the UrlGeneratorInterface
[x] The configuration key's default value is absolute_path to ensure BC
[ ] CollectionNormalizer uses the request_uri as @id. This must be changed, but I'm not certain what's reasonable
[ ] Documentation PR
[ ] Unit Tests / Behat Tests. I'm not sure on how to test absolute_url and network_path as host names change of course, and I don't know how to do a Behat Test with a changing configuration

@felicitus don't worry if the StyleCI fails, it cannot pass completely atm.
I'm not sure if this should be configuration, To me it would make more sense to have the FQCN for the reference type. But @dunglas is more qualified than me to answer this Hydra question.

AFAIK relatives IRIs are perfect valid according to JSON-LD and Hydra spec. All available tools implementing these specs are able to deal with relative URLs. Using relative URLs has the advantage of reducing the size of the JSON document (performance, bandwidth...).
However, I've nothing against making this behavior configurable if we keep relative URLs as default.

@dunglas yes, relative URIs should be default. However, in my scenario, I need to know the source of an entity, a relative URI was not enough in my case ;)

Yes it would be nice to have the option and I'll be pleased to merge your marge when finished.
A workaround that works too is to change the JSON-LD document until retrieved and before saving it to transform relative URLs to absolute ones.

@felicitus any news about this PR?

@sroze unfortunately no, I haven't had time to improve it yet.

@felicitus any update regarding this PR? It would be nice to have.

Unfortunately no, tbh I completely forgot about this. I will put it on my list :)

@felicitus Do you want some help on this ?

@Simperfit sure, any help is appreciated :)

@felicitus Maybe you  should restart from the actual master and ill be glad to help you ;)

@Simperfit if you have an idea regarding  Unit Tests / Behat Tests. I'm not sure on how to test absolute_url and network_path as host names change of course, and I don't know how to do a Behat Test with a changing configuration please let me know, that's the issue I'm having most trouble with

I was searching in this way too @felicitus but couldn't find anything about it. @sroze Do you have any idea how we can test that in behat ?

I just came across this issue. It looks quite similar to the pull request I just opened: https://github.com/api-platform/core/pull/751
I am not yet sure what would be the best way to add this feature..
Which way to go?

@maechler I thinks this is the right way to go

I think this should be restarted from exisint master, if you want to, feel free to ping me, i'll help ;).


Disable creation of unnecessary log files

OS: Ubuntu 18.04
SDK: 2.34.0
Device: D415
Issue Description: I am experiencing a purely cosmetic issue, where calls to log_to_console() create log files, i.e. yyyy-MM-dd-HH_mm_ss.log, that remain empty because no logging to file with log_to_file() was requested. I suspect log_to_callback() to result in a similar behaviour as it also calls open() internally, but I have not tested my hypothesis. I assume that this behaviour is unintentional.
Suggested Solution: Configure filename for logging ONLY if it was requested, in which case minimum_file_severity is different than RS2_LOG_SEVERITY_NONE.

Travis CI build: github.com/AndrejOrsula/librealsense/runs/626951088 (passed)

Hi @AndrejOrsula
Thank you very much for the contribution.


fix-navbar-title-redirect: fix navbar title redirection to /

Description
Fixes the dashboard to go back to the dashboard or "/".
This was due to the overlap between the search box and the navbar title.
Fixes #509
Type of change

[x] 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 not work as expected)
[ ] This change requires a documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@carpecodeum can you review the PR and let me know if the approach is fine ?

can you include a gif showing the working of the fix?

@carpecodeum

lgtm


Configuration doesn't get mounted when depeloying the helm chart

On booting the exporter pod by applying the helm chart, the logs read:
level=info msg="No configmap data specified, falling back to metric file /etc/dcgm-exporter/dcp-metrics-included.csv"
I solved the issue by adding a volume mount and associated volume to the daemon set. I believe the role, rolebinding, service account and configmap are all working correctly, but the mechanism for explicitly giving the pods spawned by the daemon set access to the configmap contents is omitted. This may have been missed because the fallback mechanism only results in an info level log, not a warning or error.
My implementation relies on terraform, so it is possible something got lost in translation.
Here's my solution with terraform:
resource "kubernetes_daemonset" "daemonset_workbench_dcgm_exporter" {
  metadata {
[...]
  }
  spec {
    strategy {
      type = "RollingUpdate"
    }
    selector {
     [...]
    }
    template {
      [...]
      }
      spec {
        container {
            image             = "nvcr.io/nvidia/k8s/dcgm-exporter:2.2.9-2.5.0-ubuntu20.04"
            name              = "dcgm-exporter-pod"
            image_pull_policy = "IfNotPresent"
            args = [
              "-f",
              "/etc/dcgm-exporter/dcp-metrics-included.csv",
            ]
            env {
                name = "DCGM_EXPORTER_KUBERNETES"
                value = "true"
            }
            env {
                name = "DCGM_EXPORTER_LISTEN"
                value = ":9400"
            }
            port {
                container_port = 9400
                name = "metrics"
            }
            readiness_probe {
              http_get {
                path = "/health"
                port = 9400
              }
              initial_delay_seconds = 45
            }
            security_context {
              capabilities {
                add = [
                  "SYS_ADMIN",
                ]
              }
              run_as_non_root = false
              run_as_user = 0
            }
            volume_mount {
              mount_path = "/var/lib/kubelet/pod-resources"
              name       = "pod-gpu-resources"
              read_only = true
            }
            volume_mount {
              name = "dcgm-exporter-config-volume"
              mount_path = "/etc/dcgm-exporter/dcp-metrics-included.csv"
              sub_path   = "dcp-metrics-included.csv"
            }
        }

        service_account_name = "dcgm-exporter-sa"
        volume {
          host_path {
            path = "/var/lib/kubelet/pod-resources"
          }
          name = "pod-gpu-resources"
        }
        volume {
          name = "dcgm-exporter-config-volume"
          config_map {
            name = "dcgm-exporter-metrics-cm"
          }
        }
      }
    }
  }
}

Same problem. But your solution didn't help.

The message in the log is not an error.
There are two ways to specify metrics configuration:

via CSV file
via ConfigMap
If you choose the latter and your dcgm-exporter command line has -m namespace:config-map-name argument, then dcgm-exporter will try to find such config map and fall back to the csv file if such config map does not exist.
Please take a look here , here and here for examples

@nikkon-dev Please note that option #2 does not work.  I applied and received the following in the logs:
"time="2022-12-06T17:32:19Z" level=info msg="Malformed configmap contents. No metrics found, falling back to metric file /etc/dcgm-exporter/default-counters.csv"
"
Please find my values.yaml attached.  It appears that the configmap that is supplied is broken.
`
Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
image:
repository: nvcr.io/nvidia/k8s/dcgm-exporter
pullPolicy: IfNotPresent
Image tag defaults to AppVersion, but you can use the tag key
for the image tag, e.g:
tag: 3.0.4-3.0.0-ubuntu20.04
Comment the following line to stop profiling metrics from DCGM
arguments: ["-m", "metrics:exporter-metrics-config-map"]
NOTE: in general, add any command line arguments to arguments above
and they will be passed through.
Use "-r", ":" to connect to an already running hostengine
Example arguments: ["-r", "host123:5555"]
Use "-n" to remove the hostname tag from the output.
Example arguments: ["-n"]
Use "-d" to specify the devices to monitor. -d must be followed by a string
in the following format: [f] or [g[:numeric_range][+]][i[:numeric_range]]
Where a numeric range is something like 0-4 or 0,2,4, etc.
Example arguments: ["-d", "g+i"] to monitor all GPUs and GPU instances or
["-d", "g:0-3"] to monitor GPUs 0-3.
Use "-m" to specify the namespace and name of a configmap containing
the watched exporter fields.
Example arguments: ["-m", "default:exporter-metrics-config-map"]
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
namespaceOverride: ""
serviceAccount:
Specifies whether a service account should be created
create: true
Annotations to add to the service account
annotations: {}
The name of the service account to use.
If not set and create is true, a name is generated using the fullname template
name:
podAnnotations: {}
Using this annotation which is required for prometheus scraping
prometheus.io/scrape: "true"
prometheus.io/port: "9400"
podSecurityContext: {}
fsGroup: 2000
securityContext:
runAsNonRoot: false
runAsUser: 0
capabilities:
add: ["SYS_ADMIN"]
readOnlyRootFilesystem: true
service:
enable: true
type: ClusterIP
port: 9400
address: ":9400"
Annotations to add to the service
annotations: {}
resources: {}
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
serviceMonitor:
enabled: true
interval: 15s
honorLabels: false
additionalLabels: {}
#monitoring: prometheus
relabelings: []
# - sourceLabels: [__meta_kubernetes_pod_node_name]
#   separator: ;
#   regex: ^(.*)$
#   targetLabel: nodename
#   replacement: $1
#   action: replace
mapPodsMetrics: false
nodeSelector: {}
#node: gpu
tolerations: []
#- operator: Exists
affinity: {}
#nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: nvidia-gpu
operator: Exists
extraHostVolumes: []
#- name: host-binaries
hostPath: /opt/bin
extraConfigMapVolumes:

name: exporter-metrics-volume
configMap:
name: exporter-metrics-config-map

extraVolumeMounts: []
#- name: host-binaries
mountPath: /opt/bin
readOnly: true
extraEnv: []
#- name: EXTRA_VAR
value: "TheStringValue"
kubeletPath: "/var/lib/kubelet/pod-resources"
`

Have you provided the config map itself? https://github.com/NVIDIA/dcgm-exporter/blob/574d63d717af9a4447092070d9501ec1eb83873e/deployment/templates/metrics-configmap.yaml

How to provide it while installing the helm chart ?

I have the same issue, and I verified that the serviceaccount does have access to read the configmap.
time="2023-11-01T20:42:27Z" level=info msg="Starting dcgm-exporter"
time="2023-11-01T20:42:27Z" level=info msg="DCGM successfully initialized!"
time="2023-11-01T20:42:27Z" level=info msg="Collecting DCP Metrics"
time="2023-11-01T20:42:29Z" level=info msg="Malformed configmap contents. No metrics found, falling back to metric file /etc/dcgm-exporter/default-counters.csv"
time="2023-11-01T20:42:29Z" level=info msg="Kubernetes metrics collection enabled!"
time="2023-11-01T20:42:29Z" level=info msg="Pipeline starting"
time="2023-11-01T20:42:29Z" level=info msg="Starting webserver"

Using the serviceaccount successfully fetches the configmap:
% k get configmap/exporter-metrics-config-map -n dcgm-exporter  -o yaml | yq .kind
ConfigMap

spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchFields:
          - key: metadata.name
            operator: In
            values:
            - ip-10-160-18-33.ec2.internal
  containers:
  - args:
    - -m
    - dcgm-exporter:exporter-metrics-config-map
    env:
    - name: DCGM_EXPORTER_KUBERNETES
      value: "true"
    - name: DCGM_EXPORTER_LISTEN
      value: :9400
    image: nvcr.io/nvidia/k8s/dcgm-exporter:2.4.6-2.6.9-ubuntu20.04

Is it a version issue? I noticed this https://github.com/NVIDIA/dcgm-exporter/blob/3.1.3-3.1.2/pkg/dcgmexporter/parser.go#L179 got added later on, but essentially the CSV is malformed if it has # in it before this version
https://github.com/NVIDIA/dcgm-exporter/commit/ab8709786594b51a91ffa13443acb3cee894e5cd
I also debugged this No metrics found with a small main.go script locally (go run main.go)
package main

import (
	"encoding/csv"
	"log"
	"os"
)

func main() {
	filePath := "test.csv"
	f, err := os.Open(filePath)
	if err != nil {
		log.Fatal("Unable to read input file "+filePath, err)
	}
	defer f.Close()
	r := csv.NewReader(f)
	// r.Comment = '#' // Comment in to see it work

	records, err := r.ReadAll()
	if err != nil {
		println(err.Error())
	}
	for _, record := range records {
		for _, item := range record {
			print(item)
		}
		println("")
	}
}

No response.


can you please add  github.com/hbstack/social-share-buttons  to this theme ? Thank you.

can you please add  github.com/hbstack/social-share-buttons  to this theme ? Thank you.

Done.

Blog: https://hbstack.dev/modules/blog/social-share-buttons/
Docs: https://hbstack.dev/modules/docs/social-share-buttons/


SP5: Remove the negative area from graph in the Y-Axis, disabling decimal ticks

ScottPlot Version: 5.0.5-beta
Question: I was working on SP4 for a Scatter Graph before realizing it's not useable on Linux, and therefore migrated to SP5, however I haven't been able to replicate the functionality of a few functions as of yet in the newer version.
The first function that I require from SP4 is to remove the negative area of the graph which I was doing with Plot.YAxis.SetBoundary(-.1) beforehand. I have tried to do this a few times with Plot.LeftAxis.Range.Set(-.1, 1000), setting Min/Max values but nothing have seemed to work as it did in SP4.
Second issue is to remove the decimal range/ticks on the graph, for which I've tried implementing ScottPlot.TickGenerators.NumericFixedInterval, but then the automatic spacing isn't in place and wouldn't work for larger values. I simply had to use plt.YAxis.MinimumTickSpacing(1) with SP4 on the other hand.
It'd be really appreciated if someone can guide me on how this can be done over in SP5, thanks!

Hi @ahmad-qamar,
ScottPlot 5 is not released yet and its API is continuing to change as I work on it, so it's possible these features are not available yet or that if I tell you how to do it today it may no longer function as expected tomorrow.
Backing up, ScottPlot 4 works on Linux if you target .NET 6 and if that's possible for your app it is probably the best solution.
https://scottplot.net/faq/dependencies/
I'll close this issue for now, but after ScottPlot 5 is out of preview (and the cookbook and demo apps are complete) if you still can't figure out how to achieve these behaviors let me know and we can open this issue back up 👍


Implement cascade deletion instead of adhoc code

see https://docs.sqlalchemy.org/en/14/orm/cascades.html#delete
this implies deleting the records instead of disabling them, of course. But I like it because it's "automatic" and "standard".
Instead of doing this:
https://github.com/baobabsoluciones/corn/blob/d94a6fb29cb9670734550d076c87909d6bb4071d/cornflow/endpoints/meta_resource.py#L92-L99

I know that we can delete on cascade, postgres and sql alchemy allow it, but I do not think that we should let the user permanently delete, just disable or set the information for deletion and have an automatic process that deletes that information periodically once a set amount of time has passed

I know that we can delete on cascade, postgres and sql alchemy allow it, but I do not think that we should let the user permanently delete, just disable or set the information for deletion and have an automatic process that deletes that information periodically once a set amount of time has passed

ok, I close this for now since it's not really urgent.


[Snyk] Security upgrade @angular/cli from 1.0.0 to 6.0.0

Snyk has created this PR to fix 2 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

infrastructure/oss/testdata/package.json
infrastructure/oss/testdata/package-lock.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Improper Verification of Cryptographic Signature SNYK-JS-ELLIPTIC-8187303
  828

Denial of Service (DoS) SNYK-JS-HTTPPROXYMIDDLEWARE-8229906
  828

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Denial of Service (DoS)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Dart 2 compatibility

Any date to make it Dart 2 compatible?
https://pub.dartlang.org/packages/socket_io

I created #8 for this.


[franka_description] Docs say gazebo=true triggers use of paper's estimated paremters, but they are always used?

From docs:
https://github.com/frankaemika/docs/blame/12fb63aa406b3e33dfc57a97ad5a5362e1ad8aad/source/franka_ros.rst#L36-L39
However, upon inspection, it looks like the inertial parameters are not dependent on the gazebo parameters?
https://github.com/frankaemika/franka_ros/blob/a58d3052a241304392847df6464234c83d728a38/franka_description/robots/common/utils.xacro#L4-L6
Is this intended? If so, can the docs be updated?
If not, can this possibly be fixed?
Relates
https://github.com/frankaemika/franka_ros2/issues/11
https://www.franka-community.de/t/panda-dynamic-model/4573/3

Hi @EricCousineau-TRI
sorry for the late reply. The inertia parameters are dependent on the gazebo arg but not in the place you searched for. Rather the condition is placed a little bit further down in the link_with_sc macro:
https://github.com/frankaemika/franka_ros/blob/develop/franka_description/robots/common/utils.xacro#L51-L53
You can also verify that by simply inspecting the URDFs ;)
$ xacro $(rospack find franka_description)/robots/fr3/fr3.urdf.xacro | grep "<inertial>" | wc -l
0

$ xacro $(rospack find franka_description)/robots/fr3/fr3.urdf.xacro gazebo:=true | grep "<inertial>" | wc -l
8

I hope this answers your questsion. Feel free to reopen the ticket if not.
All the best


[FEATURE] Allow to use the plugin without WRITE_EXTERNAL_STORAGE permission

Is your feature request related to a problem? Please describe.
READ_EXTERNAL_STORAGE is obviously needed to show the photos but WRITE_EXTERNAL_STORAGE seems to be unnecessary for a lot of cases. To decrease chances of accidentally changing files it would be better to use as few permissions as possible. Currently, this is not possible because of how PhotoManager.requestPermission works.
The permission can be easily stripped from the manifest by adding an entry like <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE " tools:node="remove"/> to my app's manifest. However, since PhotoManager.requestPermission always requires WRITE permission it fails.
Describe the solution you'd like
It would be nice if you could add a method like PhotoManager.requestReadOnlyPermission which does the same as PhotoManager.requestPermission but only requests READ_EXTERNAL_STORAGE.
Describe alternatives you've considered
I could implement such a method in my app by copying your code but it seems like a more general approach would benefit other projects as well.
Additional context
Add any other context or screenshots about the feature request here.

Discussed offline with @CaiJingLong , these permissions are in group as storage permission group in Android. So it won't be separate at present.

Hi all, do we need to somehow deal with this requestLegacyExternalStorage for Android?
As I understand, some security policy changes and Google play require removing this field from the Android manifest for android 11. And switch to the Scoped Storage.

Starting May 5th, you must let us know why your app requires broad storage access

We've detected that your app contains the requestLegacyExternalStorage flag in the manifest file of 1 or more of your app bundles or APKs.
Developers with apps on devices running Android 11+ must use Scoped Storage to give users better access control over their device storage. To release your app on Android 11 or newer after May 5th, you must either:
Update your app to use more privacy friendly best practices, such as the Storage Access Framework or Media Store API
Update your app to declare the All files access (MANAGE_EXTERNAL_STORAGE) permission in the manifest file, and complete the All files access permission declaration in Play Console from May 5th
Remove the All files access permission from your app entirely
For apps targeting Android 11, the requestLegacyExternalStorage flag will be ignored. You must use the All files access permission to retain broad access.
Apps requesting access to the All files access permission without a permitted use will be removed from Google Play, and you won't be able to publish updates.

Closing since it's a won't fix issue.


Setup rubocop and integrate into CI

Fixed via https://github.com/ucsdlib/earp/commit/9ac859b582024e02d527c0f46e4d65a183623f60


Custom generators are not working

API Platform version(s) affected: 3.2.20
Description
When I'm trying to get the custom generator working, it fails with an error stating that BaseGenerator is not exported.
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/generators/BaseGenerator' is not defined by "exports" in<EMAIL_ADDRESS>imported from /app/generator/Generator.js
at new NodeError (node:internal/errors:405:5)
    at exportsNotFound (node:internal/modules/esm/resolve:366:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:713:9)
    at packageResolve (node:internal/modules/esm/resolve:899:14)
    at moduleResolve (node:internal/modules/esm/resolve:973:20)
    at defaultResolve (node:internal/modules/esm/resolve:1193:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:404:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:373:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:250:38)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:39) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

How to reproduce
Use the following package.json file:
{
  "name": "test-generator",
  "version": "1.0.0",
  "type": "module",
  "dependencies": {
    "@api-platform/create-client": "^0.10.0"
  }
}

Take generator and template from documentation https://api-platform.com/docs/create-client/custom/
Execute:
npm install
npm init @api-platform/client https://demo.api-platform.com/ ../test -- --generator "$(pwd)/Generator.js"

Additional Context
From what I see in the package.json file at https://github.com/api-platform/create-client/blob/main/package.json#L65, custom generators are tested only inside the create-client module.

Hello @misterx,
Thank you for bringing this to our attention.
We plan to address this issue in an upcoming release.
Please stay tuned for updates!


fix conditions for field padding with multiple icons

I extended the conditions for field padding such that the field text does not go below the icons if e.g. all three are shown when copyable, generatable and revealable are active, as well as any possible combination of them

@phpsa thanks for merging. Can you create a new release with this fix included?


jsxBracketSameLine is deprecated

Calling prettier on .jsx files via coc-prettier causes this warning to popup, even if jsxBracketSameLine is set to False (in my case, left as default).

Fixed by 6492058


[Maybe] Optimize task creation performance of ModuleVersionRecommendation

This plugin uses registerTask instead of createTask. Thats  sufficient   for "normal" gradle build to avoid unnecessary overhead, as the tasks are simply not created if not needed.
However during an IDE/IntelliJ sync  all tasks are actually created. This is can lead to reduced performance, especially when you have a look at all that stuff that happens in the constructor of ModuleVersionRecommendation which normally would be avoided if you dont call that target directly, however during a sync especially the creation of a new configuration at this stage can lead to odd sideeffects

I don't like the idea to removing tasks through options. It's not very idiomatic from my understanding. Plugins should register as many tasks as they like/need (and that should be cheap) and then Gradle should figure out which tasks are actually needed in a certain situation. There should not be additional options a user has to think about.
What we could consider in the future is splitting the plugin up into two:

One plugin with the minimal base functionality
One plugin providing the "helper" tasks

In any case, if the constructor of ModuleVersionRecommendation is too expensive, we should check how to move code from there into the task execution phase. Can you please share, which code is causing the issue?

and then Gradle should figure out which tasks are actually needed in a certain situation.
I would agree with that. But this is not how the IntelliJ Project sync works currently. Maybe we should crossreport this to Jetbrains?
The line of code that gave me project some hickups was this
       Configuration latestVersionsClasspath = configurations.create("latestVersionsClasspath", c -> {
since the configuration "latestVersionClasspath" is created and not just registered, everything that has been registered using configurations.configureEach will trigger immediatly at a very strange time to be triggered. Usually thats not an issue because if you are "just using gradle" the task will never be created so there is also no latestVersionClasspath. Then everything will work fine until you hit the intellij resync button and bam!

Cross linked issue: https://youtrack.jetbrains.com/issue/IDEA-360540/Gradle-project-sync-creates-each-task

Starting with 1.8, you can add the following to gradle.properties to deactivate the tasks:
org.gradlex.java-module-dependencies.register-help-tasks=false

I did it like this, because removing them from the plugin is a quite a breaking change. I'll leave this issue open for further work on 2.0. Then, we should remove the property again and decide which...

tasks to keep in this plugin if any (maybe moduleDependencies, analyzeModulePath).
tasks to remove completely (probably checkAllModuleInfo, check*ModuleInfo, recommendModuleVersions)
tasks to move to a separate plugin (something like java-module-migration). This can maybe even go into a separate git repository as such tasks that rewrite files in the project may be used independent of this plugin. Or just remove these as well. They are quite experimental at this stage.

Change seems good! Side note: some tasks are also shiped by extra-module-info..

Change seems good! Side note: some tasks are also shipped by extra-module-info..

Yes. It's the same "issue" there. I think it only adds that one task. But it should ideally also be moved to a separate plugin.


Describe sequence hashing strategy

We need to describe our hashing strategy with a mind for future compatibility with refget, to enable implementations to move forward with the schema.
I believe that this is the intent of recent work on the seqrepo, and now the seqrepo REST API: https://github.com/biocommons/seqrepo-rest-service/issues/1
@reece your commentary here will be very helpful.

There are three relevant functions to consider:

Serializing an object
Computing a digest on the serialized data
Generating an identifier form the digest

The Computed Identifiers section of the VMC spec covers these topics.
For this issue, I imaging that the digest will be exactly the same: SHA512, trucated at 24 bytes, base64url encoded. This information content of this form and TRUNC512 is identical (both are 192 bits of data), but TRUNC512 uses 50% more space to do so. The seqrepo refget api implements this conversion already and can lookup sequences using TRUNC512 formats.
We do need to finalized a decision about identifiers. See #32 for a discussion and continue that topic.
@ahwagner Please close if this answers your question.

Great, thanks @reece.

I'm reopening this issue. Now that we are considering a ga4gh-digest standard, I think we should have a discussion about what that will be. I think that the digest representation (hex vs. base64url) is a key component of that standard. We should pick one that is shared between refget and VR to give this decision more weight and solidarity between standards.
I have no strong preference for one encoding scheme or the other, only that they match.
@andrewyatz @reece comments?

Refget choose the hex representation partly because of similarities with the existing md5 representation (partly as well the default encoding format from most checksum tools is hex) and that we felt the representation didn’t need to go into a storage layer. It could easily be stored in its natural binary format and then converted into a transmission format I.e. hex on the fly.
That’s counter to the vr usecase where the extra space hex consumes versus other encodings does matter. Significantly. So I don’t overly mind how vr pins it’s colours to the mast on this. Base64 makes sense here and refget can adapt in future versions.
What does worry me is we sidecar a Ga4gh wide standard for digests into this product. I don’t know if that will make it easier or harder to get it through PRC. We still need to get the refget designers to agree to this otherwise it runs the risk of splintering the effort.
Andy

On 5 Jun 2019, at 21:57, Alex H. Wagner, PhD<EMAIL_ADDRESS>wrote:
I'm reopening this issue. Now that we are considering a ga4gh-digest standard, I think we should have a discussion about what that will be. I think that the digest representation (hex vs. base64url) is a key component of that standard. We should pick one that is shared between refget and VR to give this decision more weight and solidarity between standards.
I have no strong preference for one encoding scheme or the other, only that they match.
@andrewyatz @reece comments?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thank you, @andrewyatz. This is exactly the feedback I needed. I'm going to move ahead with extending the documentation in #71 describing our existing (base64url) encoding strategy.
I agree about the potential sidecar issue. I'm going to drop the notion of a GA4GH standard digest strategy from the documentation. If/when refget adopts the base64url representation, we can decide as a group if it is helpful / useful to push this as a GA4GH standard.


Smoke test

I expect to be updating this package frequently, since MaxMind puts out a new GeoLite2 database every Tuesday, and I'd like users to have the benefit of always having the latest as of when they install. @alfred-landrum had the good idea of creating some kind of smoke test that could easily tell me that everything is still functional after swapping a new DB. This would allow me to rationalize just merging my own DB-update PRs once the automation runs green.
This GitHub Actions smoke test does that by installing the package at the current SHA to an instance of Zeek and running a GeoLocation query against an IP that's believed to have a stable entry in the DB (it happens to be the one associated with my home Internet connection). Here's an example run of it failing when I told it to grep for the wrong location:
https://github.com/brimsec/geoip-conn/runs/896582430
Meanwhile, the run initiated by opening this PR should pass.
Per comments in the script, an unfortunate challenge I ran into is that the binary distributions of Zeek are apparently not linked with libmaxminddb. That meant I couldn't just use one of those and install geoip-conn on top of it. Instead I'm compiling Zeek for now. So, that takes time, but at least it's not manual labor. I asked on Zeek Slack if there'd be any interest in starting to link those binary packages to libmaxminddb, but no response yet. If my current approach here gets merged, maybe I'll open an official GitHub Issue against Zeek in hopes they'll do it and I'll be able to later circle back and make this faster.

Per my closing paragraph above, I've now opened https://github.com/zeek/zeek/issues/1086 in hopes the Zeek maintainers would be willing to start compiling the Zeek binary packages with libmaxminddb. If they move forward with that, I'll circle back and update this Action to use one of those binaries rather than burning time on compiling Zeek every time.


2.12 version isn't showing up in the Maven repositories

Thanks for this amazing library!

What is the status of the 2.12 publishing? That would be very nice!

I'm also curious about the status of this? I'm currently seeing issues with bucketHist when including the 2.11 version and do not see it when I include the source code directly.
Caused by: java.lang.NoSuchMethodError: scala.math.BigDecimal.to(Lscala/math/BigDecimal;)Lscala/collection/immutable/Range$Partial; 	at probability_monad.Distribution$class.bucketedHistHelper(Distribution.scala:233) 	at probability_monad.Distribution$class.bucketedHist(Distribution.scala:221) 	at probability_monad.Distribution$$anon$1.bucketedHist(Distribution.scala:16)

Thanks for the bump! I just published version 1.0.3 for 2.10, 2.11 and 2.12. @basarama let me know if that fixes the issue you're seeing.

Yeah, that fixed the issues I was seeing! Thanks for keeping this package active @jliszka I'm having a blast trying to make my load testing more dynamic utilizing some of the models.

Great to hear!