Installation Instructions incomplete

Issue description
The installation instructions for developers on the docs are not quite correct (at least for my version). If I do
pip install -e .

in a clean virtual environment, I get an error first that Cython is not installed, and then that numpy is not installed.
Suggestion
Update installation docs to the following:
pip install Cython
pip install numpy
pip install -e .

Environment
venv
System description
MacOS 10.16 (Big Sur)
Python 3.8
Installed packages
None

Adding Cython to requirements.txt might solve the problem.

This problem is also somewhat happening on Windows. With pytorch 1.5.0 missing and require conda to resolve. I am attempting to add a conda YAML for possible alternative installation path that is more... cross platform compatible BUT require conda. Still an idea for now as I get it working at least on Windows.
Do you all know the rationale/history as to why we initially went with pip instead of conda? Was it related to Compute Canada?

Do you all know the rationale/history as to why we initially went with pip instead of conda? Was it related to Compute Canada?

a mix between CC and @kousu suggestions to not use conda

Thanks for catching this @ahill187. Build dependencies -- as opposed to runtime dependencies -- are always a bit tricky because they skim a chicken-or-egg problem.
First, is this really our bug? I'm trying to reproduce it but there are no cython files that I can see in this project, so we shouldn't need it. It might be that one of the dependencies is mispackaged, and that pip install cython numpy; pip install -e . is a workaround for their bug. If so, we should find it and submit a PR to them.
If it is our bug then I'll share a tip: the most correct way to handle build dependencies is with setup_requires: https://stackoverflow.com/a/38057196/2898673 though there's pyproject.toml which is trying to replace this. IMO (and seemingly in the opinion of a ton of python devs) it's too new and unstable to trust yet so I'm not going to cover it. I think you just need to add:
diff --git a/setup.py b/setup.py
index ad4d638e..8a869751 100644
--- a/setup.py
+++ b/setup.py
@@ -33,6 +33,10 @@ setup(
     python_requires='>=3.6, <3.9',
     packages=find_packages(exclude=['docs', 'tests']),
     include_package_data=True,
+    setup_requires=[
+        'cython',
+        'numpy',
+    ],
     install_requires=requirements,
     extras_require={
         'docs': [  # pin sphinx to match what RTD uses:

I fixed a similar bug in sklearn recently: https://github.com/scikit-image/scikit-image/pull/4920.

By the way, I want to clarify that  this isn't really an issue of conda vs pip. What conda provides is some optional repositories and the ability to package non-python code and have it depend on python code or vice versa (which pip doesn't easily allow). You still need to deal with build dependencies either way.
pip, for all its faults -- and it has many -- is a better standard because it's more canonical and can be easily consumed by conda, apt, pacman, and brew. If we get pip packaging right then we get distribution to 99% of OSes. conda is more of a special case.

I wasn't able to reproduce on Ubuntu20.04:

I stopped the install and ran pip install torch+cpu manually to work around their unfriendly packaging that we already solved in SCT:
https://github.com/neuropoly/spinalcordtoolbox/blob/82132c4c0ca4bd1fa07247288c2df614f0a5277c/requirements.txt#L28-L33
but other than that it installed fine
$ docker run -it --rm ubuntu:20.04
root@9f5366fb6c46:/ivadomed# apt-get update && apt-get install python3-pip git python3-virtualenv
root@9f5366fb6c46:/ivadomed# git clone https://github.com/ivadomed/ivadomed
root@9f5366fb6c46:/ivadomed# cd ivadomed/

root@9f5366fb6c46:/ivadomed# git clone https://github.com/ivadomed/ivadomedc^C
root@9f5366fb6c46:/ivadomed# cd ivadomed/p^C
root@9f5366fb6c46:/ivadomed# python3 -m virtualenv ~/venv
root@9f5366fb6c46:/ivadomed# . ~/venv/bin/activate
(venv) root@9f5366fb6c46:/ivadomed# python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path # to prove that we have an isolated venv: it uses the python stdlib but *not* /usr/lib/python3.8/site-packages
['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/root/venv/lib/python3.8/site-packages']
>>> ^D
(venv) root@9f5366fb6c46:/ivadomed# pip install -e .
Obtaining file:///ivadomed
Collecting bids-neuropoly>=0.2
  Using cached bids_neuropoly-0.2-py3-none-any.whl (3.1 kB)
Collecting csv-diff>=1.0
  Using cached csv_diff-1.1-py3-none-any.whl (12 kB)
Collecting h5py==2.10.0
  Using cached h5py-2.10.0-cp38-cp38-manylinux1_x86_64.whl (2.9 MB)
Collecting joblib
  Using cached joblib-1.0.1-py3-none-any.whl (303 kB)
Collecting matplotlib>=3.3.0
  Using cached matplotlib-3.4.0-cp38-cp38-manylinux1_x86_64.whl (10.3 MB)
Collecting nibabel
  Using cached nibabel-3.2.1-py3-none-any.whl (3.3 MB)
Collecting onnxruntime==1.4.0
  Using cached onnxruntime-1.4.0-cp38-cp38-manylinux2010_x86_64.whl (4.4 MB)
Collecting pandas
  Using cached pandas-1.2.3-cp38-cp38-manylinux1_x86_64.whl (9.7 MB)
Collecting pillow>=7.0.0
  Using cached Pillow-8.1.2-cp38-cp38-manylinux1_x86_64.whl (2.2 MB)
Collecting pre-commit==2.10.1
  Using cached pre_commit-2.10.1-py2.py3-none-any.whl (185 kB)
Collecting pybids>=0.12.4
  Using cached pybids-0.12.4-py2.py3-none-any.whl (3.2 MB)
Collecting pytest
  Using cached pytest-6.2.2-py3-none-any.whl (280 kB)
Collecting pytest-console-scripts
  Using cached pytest-console-scripts-1.1.0.tar.gz (13 kB)
Collecting pytest-ordering
  Using cached pytest_ordering-0.6-py3-none-any.whl (4.6 kB)
Collecting scikit-image
  Using cached scikit_image-0.18.1-cp38-cp38-manylinux1_x86_64.whl (30.2 MB)
Collecting scikit-learn>=0.20.3
  Using cached scikit_learn-0.24.1-cp38-cp38-manylinux2010_x86_64.whl (24.9 MB)
Collecting seaborn
  Using cached seaborn-0.11.1-py3-none-any.whl (285 kB)
Collecting sphinx-jsonschema
  Using cached sphinx-jsonschema-1.16.8.tar.gz (15 kB)
Collecting tensorboard
  Using cached tensorboard-2.4.1-py3-none-any.whl (10.6 MB)
Collecting torch==1.5.0
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/ec/77/6de2895b3f0953f5e4bd9c7bb3f04552124051d1c0eb66697354aa510bf9/torch-1.5.0-cp38-cp38-manylinux1_x86_64.whl
  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/ec/77/6de2895b3f0953f5e4bd9c7bb3f04552124051d1c0eb66697354aa510bf9/torch-1.5.0-cp38-cp38-manylinux1_x86_64.whl
  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/ec/77/6de2895b3f0953f5e4bd9c7bb3f04552124051d1c0eb66697354aa510bf9/torch-1.5.0-cp38-cp38-manylinux1_x86_64.whl
  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/ec/77/6de2895b3f0953f5e4bd9c7bb3f04552124051d1c0eb66697354aa510bf9/torch-1.5.0-cp38-cp38-manylinux1_x86_64.whl
  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/ec/77/6de2895b3f0953f5e4bd9c7bb3f04552124051d1c0eb66697354aa510bf9/torch-1.5.0-cp38-cp38-manylinux1_x86_64.whl
^CERROR: Operation cancelled by user
(venv) root@9f5366fb6c46:/ivadomed# [ "$(uname)" = "Linux" ] && pip install -f https://download.pytorch.org/whl/cpu/torch_stable.html torch==1.5.0+cpu
Looking in links: https://download.pytorch.org/whl/cpu/torch_stable.html
Collecting torch==1.5.0+cpu
  Downloading https://download.pytorch.org/whl/cpu/torch-1.5.0%2Bcpu-cp38-cp38-linux_x86_64.whl (127.3 MB)
     |████████████████████████████████| 127.3 MB 4.3 kB/s
Collecting numpy
  Downloading numpy-1.20.1-cp38-cp38-manylinux2010_x86_64.whl (15.4 MB)
     |████████████████████████████████| 15.4 MB 3.9 MB/s
Collecting future
  Downloading future-0.18.2.tar.gz (829 kB)
     |████████████████████████████████| 829 kB 2.9 MB/s
Building wheels for collected packages: future
  Building wheel for future (setup.py) ... done
  Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491058 sha256=f1f0092914fae7188fa1b89a9bfc7a67055e74d18298d790f50d4940fa5fbc46
  Stored in directory: /root/.cache/pip/wheels/8e/70/28/3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4
Successfully built future
Installing collected packages: numpy, future, torch
Successfully installed future-0.18.2 numpy-1.20.1 torch-1.5.0+cpu
(venv) root@9f5366fb6c46:/ivadomed# pip install -e .
Obtaining file:///ivadomed
Collecting bids-neuropoly>=0.2
  Using cached bids_neuropoly-0.2-py3-none-any.whl (3.1 kB)
Collecting csv-diff>=1.0
  Using cached csv_diff-1.1-py3-none-any.whl (12 kB)
Collecting h5py==2.10.0
  Using cached h5py-2.10.0-cp38-cp38-manylinux1_x86_64.whl (2.9 MB)
Collecting joblib
  Using cached joblib-1.0.1-py3-none-any.whl (303 kB)
Collecting matplotlib>=3.3.0
  Using cached matplotlib-3.4.0-cp38-cp38-manylinux1_x86_64.whl (10.3 MB)
Collecting nibabel
  Using cached nibabel-3.2.1-py3-none-any.whl (3.3 MB)
Collecting onnxruntime==1.4.0
  Using cached onnxruntime-1.4.0-cp38-cp38-manylinux2010_x86_64.whl (4.4 MB)
Collecting pandas
  Using cached pandas-1.2.3-cp38-cp38-manylinux1_x86_64.whl (9.7 MB)
Collecting pillow>=7.0.0
  Using cached Pillow-8.1.2-cp38-cp38-manylinux1_x86_64.whl (2.2 MB)
Collecting pre-commit==2.10.1
  Using cached pre_commit-2.10.1-py2.py3-none-any.whl (185 kB)
Collecting pybids>=0.12.4
  Using cached pybids-0.12.4-py2.py3-none-any.whl (3.2 MB)
Collecting pytest
  Using cached pytest-6.2.2-py3-none-any.whl (280 kB)
Collecting pytest-console-scripts
  Using cached pytest-console-scripts-1.1.0.tar.gz (13 kB)
Collecting pytest-ordering
  Using cached pytest_ordering-0.6-py3-none-any.whl (4.6 kB)
Collecting scikit-image
  Using cached scikit_image-0.18.1-cp38-cp38-manylinux1_x86_64.whl (30.2 MB)
Collecting scikit-learn>=0.20.3
  Using cached scikit_learn-0.24.1-cp38-cp38-manylinux2010_x86_64.whl (24.9 MB)
Collecting seaborn
  Using cached seaborn-0.11.1-py3-none-any.whl (285 kB)
Collecting sphinx-jsonschema
  Using cached sphinx-jsonschema-1.16.8.tar.gz (15 kB)
Collecting tensorboard
  Using cached tensorboard-2.4.1-py3-none-any.whl (10.6 MB)
Requirement already satisfied: torch==1.5.0 in /root/venv/lib/python3.8/site-packages (from ivadomed==2.7.4) (1.5.0+cpu)
Collecting torchvision==0.6.0
  Downloading torchvision-0.6.0-cp38-cp38-manylinux1_x86_64.whl (6.6 MB)
     |████████████████████████████████| 6.6 MB 5.4 kB/s
Collecting tqdm>=4.30
  Downloading tqdm-4.59.0-py2.py3-none-any.whl (74 kB)
     |████████████████████████████████| 74 kB 1.1 MB/s
Collecting dictdiffer
  Downloading dictdiffer-0.8.1-py2.py3-none-any.whl (16 kB)
Collecting click
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 564 kB/s
Requirement already satisfied: six in /root/venv/lib/python3.8/site-packages (from h5py==2.10.0->ivadomed==2.7.4) (1.14.0)
Requirement already satisfied: numpy>=1.7 in /root/venv/lib/python3.8/site-packages (from h5py==2.10.0->ivadomed==2.7.4) (1.20.1)
Collecting kiwisolver>=1.0.1
  Downloading kiwisolver-1.3.1-cp38-cp38-manylinux1_x86_64.whl (1.2 MB)
     |████████████████████████████████| 1.2 MB 3.5 MB/s
Requirement already satisfied: pyparsing>=2.2.1 in /root/venv/lib/python3.8/site-packages (from matplotlib>=3.3.0->ivadomed==2.7.4) (2.4.6)
Collecting cycler>=0.10
  Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Collecting python-dateutil>=2.7
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 3.9 MB/s
Requirement already satisfied: packaging>=14.3 in /root/venv/lib/python3.8/site-packages (from nibabel->ivadomed==2.7.4) (20.3)
Collecting protobuf
  Downloading protobuf-3.15.6-cp38-cp38-manylinux1_x86_64.whl (1.0 MB)
     |████████████████████████████████| 1.0 MB 3.8 MB/s
Collecting pytz>=2017.3
  Downloading pytz-2021.1-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 4.1 MB/s
Collecting virtualenv>=20.0.8
  Downloading virtualenv-20.4.3-py2.py3-none-any.whl (7.2 MB)
     |████████████████████████████████| 7.2 MB 4.0 MB/s
Collecting nodeenv>=0.11.1
  Downloading nodeenv-1.5.0-py2.py3-none-any.whl (21 kB)
Collecting identify>=1.0.0
  Downloading identify-2.2.1-py2.py3-none-any.whl (98 kB)
     |████████████████████████████████| 98 kB 2.2 MB/s
Collecting cfgv>=2.0.0
  Downloading cfgv-3.2.0-py2.py3-none-any.whl (7.3 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl (662 kB)
     |████████████████████████████████| 662 kB 4.1 MB/s
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting patsy
  Downloading patsy-0.5.1-py2.py3-none-any.whl (231 kB)
     |████████████████████████████████| 231 kB 4.1 MB/s
Collecting sqlalchemy<1.4.0.dev0
  Downloading SQLAlchemy-1.3.23-cp38-cp38-manylinux2010_x86_64.whl (1.3 MB)
     |████████████████████████████████| 1.3 MB 4.2 MB/s
Collecting bids-validator
  Downloading bids_validator-1.6.0-py2.py3-none-any.whl (15 kB)
Collecting num2words
  Downloading num2words-0.5.10-py3-none-any.whl (101 kB)
     |████████████████████████████████| 101 kB 2.3 MB/s
Collecting scipy
  Downloading scipy-1.6.2-cp38-cp38-manylinux1_x86_64.whl (27.2 MB)
     |████████████████████████████████| 27.2 MB 45 kB/s
Collecting iniconfig
  Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting py>=1.8.2
  Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 1.3 MB/s
Collecting pluggy<1.0.0a1,>=0.12
  Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting attrs>=19.2.0
  Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
     |████████████████████████████████| 49 kB 1.7 MB/s
Collecting mock>=2.0.0
  Downloading mock-4.0.3-py3-none-any.whl (28 kB)
Collecting networkx>=2.0
  Downloading networkx-2.5-py3-none-any.whl (1.6 MB)
     |████████████████████████████████| 1.6 MB 4.1 MB/s
Collecting imageio>=2.3.0
  Downloading imageio-2.9.0-py3-none-any.whl (3.3 MB)
     |████████████████████████████████| 3.3 MB 21 kB/s
Collecting tifffile>=2019.7.26
  Downloading tifffile-2021.3.17-py3-none-any.whl (163 kB)
     |████████████████████████████████| 163 kB 4.1 MB/s
Collecting PyWavelets>=1.1.1
  Downloading PyWavelets-1.1.1-cp38-cp38-manylinux1_x86_64.whl (4.4 MB)
     |████████████████████████████████| 4.4 MB 4.2 MB/s
Collecting threadpoolctl>=2.0.0
  Downloading threadpoolctl-2.1.0-py3-none-any.whl (12 kB)
Collecting docutils
  Downloading docutils-0.16-py2.py3-none-any.whl (548 kB)
     |████████████████████████████████| 548 kB 3.8 MB/s
Collecting jsonpointer
  Downloading jsonpointer-2.1-py2.py3-none-any.whl (7.4 kB)
Requirement already satisfied: requests in /root/venv/lib/python3.8/site-packages (from sphinx-jsonschema->ivadomed==2.7.4) (2.22.0)
Collecting google-auth<2,>=1.6.3
  Downloading google_auth-1.28.0-py2.py3-none-any.whl (136 kB)
     |████████████████████████████████| 136 kB 4.4 MB/s
Collecting markdown>=2.6.8
  Downloading Markdown-3.3.4-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 1.7 MB/s
Collecting tensorboard-plugin-wit>=1.6.0
  Downloading tensorboard_plugin_wit-1.8.0-py3-none-any.whl (781 kB)
     |████████████████████████████████| 781 kB 4.3 MB/s
Collecting google-auth-oauthlib<0.5,>=0.4.1
  Downloading google_auth_oauthlib-0.4.3-py2.py3-none-any.whl (18 kB)
Collecting absl-py>=0.4
  Downloading absl_py-0.12.0-py3-none-any.whl (129 kB)
     |████████████████████████████████| 129 kB 4.1 MB/s
Requirement already satisfied: setuptools>=41.0.0 in /root/venv/lib/python3.8/site-packages (from tensorboard->ivadomed==2.7.4) (44.0.0)
Requirement already satisfied: wheel>=0.26; python_version >= "3" in /root/venv/lib/python3.8/site-packages (from tensorboard->ivadomed==2.7.4) (0.34.2)
Collecting werkzeug>=0.11.15
  Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
     |████████████████████████████████| 298 kB 4.4 MB/s
Collecting grpcio>=1.24.3
  Downloading grpcio-1.36.1-cp38-cp38-manylinux2014_x86_64.whl (4.1 MB)
     |████████████████████████████████| 4.1 MB 287 kB/s
Requirement already satisfied: future in /root/venv/lib/python3.8/site-packages (from torch==1.5.0->ivadomed==2.7.4) (0.18.2)
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Requirement already satisfied: appdirs<2,>=1.4.3 in /root/venv/lib/python3.8/site-packages (from virtualenv>=20.0.8->pre-commit==2.10.1->ivadomed==2.7.4) (1.4.3)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
     |████████████████████████████████| 335 kB 4.3 MB/s
Collecting docopt>=0.6.2
  Downloading docopt-0.6.2.tar.gz (25 kB)
Collecting decorator>=4.3.0
  Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting rsa<5,>=3.1.4; python_version >= "3.6"
  Downloading rsa-4.7.2-py3-none-any.whl (34 kB)
Collecting cachetools<5.0,>=2.0.0
  Downloading cachetools-4.2.1-py3-none-any.whl (12 kB)
Collecting pyasn1-modules>=0.2.1
  Downloading pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
     |████████████████████████████████| 155 kB 4.3 MB/s
Collecting requests-oauthlib>=0.7.0
  Downloading requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)
Collecting pyasn1>=0.1.3
  Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
     |████████████████████████████████| 77 kB 1.0 MB/s
Collecting oauthlib>=3.0.0
  Downloading oauthlib-3.1.0-py2.py3-none-any.whl (147 kB)
     |████████████████████████████████| 147 kB 4.1 MB/s
Building wheels for collected packages: pytest-console-scripts, sphinx-jsonschema, docopt
  Building wheel for pytest-console-scripts (setup.py) ... done
  Created wheel for pytest-console-scripts: filename=pytest_console_scripts-1.1.0-py3-none-any.whl size=8701 sha256=507142fb70566f4ff72d89684c93f65d8c4c9c307b1da484af4ecea2422ca86b
  Stored in directory: /root/.cache/pip/wheels/a7/e8/e8/dde6e91974590030b9f47a4dd006b53409ad738afb34b82422
  Building wheel for sphinx-jsonschema (setup.py) ... done
  Created wheel for sphinx-jsonschema: filename=sphinx_jsonschema-1.16.8-py3-none-any.whl size=12619 sha256=3f4d126b6148a99be186b2b466afb7af80df8b5b95396f87872fffe6feb7a7f0
  Stored in directory: /root/.cache/pip/wheels/bc/c3/f7/9c0d21be1dc241fa21a9ccd0ca6209598a66bb96af581f5fd9
  Building wheel for docopt (setup.py) ... done
  Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13704 sha256=be66722cf410844b46e67798fade34b8171fd09fe61e8bda736c5340123bf67b
  Stored in directory: /root/.cache/pip/wheels/56/ea/58/ead137b087d9e326852a851351d1debf4ada529b6ac0ec4e8c
Successfully built pytest-console-scripts sphinx-jsonschema docopt
Installing collected packages: nibabel, patsy, sqlalchemy, click, bids-validator, docopt, num2words, pytz, python-dateutil, pandas, scipy, pybids, bids-neuropoly, dictdiffer, csv-diff, h5py, joblib, kiwisolver, cycler, pillow, matplotlib, protobuf, onnxruntime, filelock, distlib, virtualenv, nodeenv, identify, cfgv, pyyaml, toml, pre-commit, iniconfig, py, pluggy, attrs, pytest, mock, pytest-console-scripts, pytest-ordering, decorator, networkx, imageio, tifffile, PyWavelets, scikit-image, threadpoolctl, scikit-learn, seaborn, docutils, jsonpointer, sphinx-jsonschema, pyasn1, rsa, cachetools, pyasn1-modules, google-auth, markdown, tensorboard-plugin-wit, oauthlib, requests-oauthlib, google-auth-oauthlib, absl-py, werkzeug, grpcio, tensorboard, torchvision, tqdm, ivadomed
  Attempting uninstall: distlib
    Found existing installation: distlib 0.3.0
    Uninstalling distlib-0.3.0:
      Successfully uninstalled distlib-0.3.0
  Running setup.py develop for ivadomed
Successfully installed PyWavelets-1.1.1 absl-py-0.12.0 attrs-20.3.0 bids-neuropoly-0.2 bids-validator-1.6.0 cachetools-4.2.1 cfgv-3.2.0 click-7.1.2 csv-diff-1.1 cycler-0.10.0 decorator-4.4.2 dictdiffer-0.8.1 distlib-0.3.1 docopt-0.6.2 docutils-0.16 filelock-3.0.12 google-auth-1.28.0 google-auth-oauthlib-0.4.3 grpcio-1.36.1 h5py-2.10.0 identify-2.2.1 imageio-2.9.0 iniconfig-1.1.1 ivadomed joblib-1.0.1 jsonpointer-2.1 kiwisolver-1.3.1 markdown-3.3.4 matplotlib-3.4.0 mock-4.0.3 networkx-2.5 nibabel-3.2.1 nodeenv-1.5.0 num2words-0.5.10 oauthlib-3.1.0 onnxruntime-1.4.0 pandas-1.2.3 patsy-0.5.1 pillow-8.1.2 pluggy-0.13.1 pre-commit-2.10.1 protobuf-3.15.6 py-1.10.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pybids-0.12.4 pytest-6.2.2 pytest-console-scripts-1.1.0 pytest-ordering-0.6 python-dateutil-2.8.1 pytz-2021.1 pyyaml-5.4.1 requests-oauthlib-1.3.0 rsa-4.7.2 scikit-image-0.18.1 scikit-learn-0.24.1 scipy-1.6.2 seaborn-0.11.1 sphinx-jsonschema-1.16.8 sqlalchemy-1.3.23 tensorboard-2.4.1 tensorboard-plugin-wit-1.8.0 threadpoolctl-2.1.0 tifffile-2021.3.17 toml-0.10.2 torchvision-0.6.0 tqdm-4.59.0 virtualenv-20.4.3 werkzeug-1.0.1
(venv) root@9f5366fb6c46:/ivadomed#

Can you reproduce it @ahill187 ? It's probably because binary packages -- .whl files -- haven't been produced for all of our libraries for macOS 10.16 yet, which is triggering that library to build from source. And that supports my theory that it's a bug much like the one I solved for sklearn in one of them.

And once you can reproduce it, can you please try https://github.com/ivadomed/ivadomed/pull/741

And also, tip on reproduction: if you install https://showterm.io/ and run that just before doing your repro the rest of us will be able to follow along.
Or (and this might actually be a bit more useful) you could undercut showterm and just do what it does directly: write a repro.sh and sets up the venv and gets ivadomed and tries to install it, and run:
$ script -T repro1.timing repro1.script -c repro.sh && zip repro1.zip repro1.{timing,script}

then attach that .zip here.

I'm trying again to reproduce this, using --no-binary to force. But it's tedious. Some parts are impossible to build (:fist_raised:) from source -- onnxruntime stands out -- and others just take forever.

The installation instructions for developers on the docs are not quite correct (at least for my version). If I do
pip install -e .

in a ### clean virtual environment, I get an error first that Cython is not installed, and then that numpy is not installed.

When you say clean virtual environment? is this after or before requirements.txt install?

System description
MacOS 10.16 (Big Sur)
Python 3.8

Maybe we can attempt to use GitHub Action to catch this since current IvadoMed GitHub action is already using pip.

Wrong button :( sorry guys. Accidentally close commented instead. >.<

The installation instructions for developers on the docs are not quite correct (at least for my version). If I do
pip install -e .

in a clean virtual environment, I get an error first that Cython is not installed, and then that numpy is not installed.

@ahill187 I was gonna ask: the usage scenario for this, is  this for 1) user clone down, and install repo -e only, and getting everything setup for them automatically type of scenario? or 2) dev setup, which would typically require requirement.txt install before pip install -e .?
I was always under the assumption (which might be very wrong 😆) that for any dev setup, the steps would typically involve

clone repo
setup dedicated and isolated project specific venv/conda/docker/whatever environment in IDE/console
activate above environment and then pip install -e .

So if you are missing essentials like Cython/Numpy, wouldn't that mean that step 2 is skipped? I am not super familiar with jumping straight to 3 for dev kind of setup. Do you have an example of repo that which allow a dev (and not just user) environment to setup automatically/directly by pip install -e . ? That would be super cool if deployment of dev environment can be automated because I have been doing similar using Docker... tediously.
What I have also seen is using separate requirement.txt which cascade on each other for dev vs prod vs others but not sure if that applies here in terms of what is being aimed.

pip install is definitely capable of setting up the project's environment. It's a package manager! That's what it's supposed to be good at. I think what you're looking for is extras_require. In fact, at least one of pip's core devs recommends using it to handle testing: https://github.com/pypa/setuptools/issues/1684#issuecomment-648441338

I have found another pattern that works rather well - define a tests extra. I use testing, but a more common idiom is tests. Then, when you wish to install the test requirements, simply pip install .[tests] (or pip install -e .[tests])

(that whole thread is worth reading. it's super long but I found it extremely enlightening about both the mess that is and the goals for the future of pip)
In fact ivadomed is already using it:
https://github.com/ivadomed/ivadomed/blob/d9a5bdb652dd79e588dcf7988b7fae8e6ecf8be8/setup.py#L37-L44
Also, notice that pip's person is suggesting a 'testing' feature, not of a 'development' environment; https://12factor.net/config suggests

This method does not scale cleanly: as more deploys of the app are created, new environment names are necessary, such as staging or qa. As the project grows further, developers may add their own special environments like joes-staging, resulting in a combinatorial explosion of config which makes managing deploys of the app very brittle.

So instead of setting up requirements-dev.txt and requirements-staging.txt I think it's better to use these feature flags. Actually, come to think of it, I would rename that dev feature flag
https://github.com/ivadomed/ivadomed/blob/d9a5bdb652dd79e588dcf7988b7fae8e6ecf8be8/setup.py#L43
to maybe CI or lint, since it doesn't cover everything a dev might do and a dev might not even use it.
IMO requirements.txt was a poorly thought out system that filled a need but confused everyone in where and when it should be used, going against the Zen of Python's "there should be only one way to do it". I think extras_require is way better for handling the multiple deploy problem, and I think just using install_requires like normal is fine for handling regular installation.

Anyway the point is that the README can fail and we should either fix the README or fix the code. 🆙

Wow. Thank you @kousu for the excellent reference material. Definitely going to read it further. I have not delve into setup.py automated process much at all so massive TIL. Thanks a lot. :D

Looking at the installation doc recently, I think we should make a clear distinction for people who would like to install ivadomed via pipy vs. via cloning of the repository.
Currently, steps 1,2,3 assume pipy, while step 4 assumes that the repos has been cloned, but it is never mentioned earlier.
For inspiration: https://spinalcordtoolbox.com/user_section/installation/mac.html

Step 2 is already split nicely among Pipy vs repo.
Step 3 is a bit complicated because first level tab is related to CPU vs GPU. We can certainly  make it about Pipy (Windows/Linux) vs Pipy Mac vs vs Repo at first level tab and then 2nd level tab discussion CPU vs GPU. This will probably make it more clear from the first glance the route people should choose based on their experience level.
Once #1000 is finalized, this section will be drastically simplified as we will assume a version at the installation time Step 2 based on the intent and essentially merge Step 2/3 together into much simpler commands.
As for Step 4, I agree we should explicitly mention cloning down the repo as not all developers would clone repo to work/test on the code of the repo in all OS/testing scenarios.

With the recent merge of #1037. I think we have now addressed most of the original key points of the issue. #1000 when completed will usher in a much more simplified process which will begin the next round of documentation update on this but I think given the amount of effort and improvement that has been made since the opening of this issue, we are in a good place to close it.

Thank you for seeing this through to the end @dyt811!


The readme gulp table is hard to read

Suggestion
The readme gulp table was really hard to read for me and so I cleaned it up. In this pr I have fixed the problem.
🔍 Search Terms
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

📃 Motivating Example

💻 Use Cases

Honestly, the current version is both readable in plain text and as a markdown preview, whereas your improved version is much more difficult to read in plain text. Plus some of the lines look really weird:

The grayed color makes it difficult to read even in markdown preview view.

Honestly, the current version is both readable in plain text and as a markdown preview, whereas your improved version is much more difficult to read in plain text. Plus some of the lines look really weird:

The grayed color makes it difficult to read even in markdown preview view.

We really don't want that table taking up that much vertical space there. The format as-is is good enough.

We really don't want that table taking up that much vertical space there. The format as-is is good enough.


Screens for Customers

[ ] Read
[ ] Create

    public class Customer : BaseEntity
    {
        public virtual ICollection<ContractMapping> ContractMappings { get; set; }

        public virtual ICollection<Tenant> Tenants { get; set; }
    }

@rufer7  So there is no edit and no CUD on the Tenants- and ContractMappings-lists?


feat(semver): drop standard-version + all conventional-changelog config

Yo, this tool is awesome, thanks for it! 💫💫💫
Description
I have a project at Azure DevOps Repos (don't ask why) and the default diff link pattern of the generated change log was off. So...
About the PR:

I enabled all conventional-changelog config options and while I was at it,

https://github.com/jscutlery/semver/issues/613
https://github.com/jscutlery/semver/issues/457

I removed the deprecated dependency.

https://github.com/jscutlery/semver/issues/509

Hey, I'm in hollidays and back pretty soon! I'm excited to check your work. Thanks in advance.

@nowseemee Thanks a lot for the work!


How to plot a Map?

What happened so far
I searched for libraries to do one dimensional morphological operations on signals, re-discovered breeze, looked through the quickstart and lo and behold discovered this:

Awesome!

We're finally approaching python numpy levels of plot(whatever), excellent!
Despite being a complete Breeze newb I managed to plot some data from a Prometheus DB:

Next thing was to deal with the missing values just like Prometheus did in its graph.
It was not long that I was writing my own DomainFunction implicit.
Fast forward: I saw that there is an implicit for plotting Maps. Perfect, I thought, since my data looks like this:
science: IndexedSeq[Datapoint] = Vector(
  Datapoint(instant = 2021-04-04T14:00:00Z, value = "866549"),
  Datapoint(instant = 2021-04-04T15:00:00Z, value = "870944"),
  Datapoint(instant = 2021-04-04T16:00:00Z, value = "878367"),
  Datapoint(instant = 2021-04-04T17:00:00Z, value = "881706"),
  Datapoint(instant = 2021-04-04T18:00:00Z, value = "885156"),
  Datapoint(instant = 2021-04-04T19:00:00Z, value = "892424"),

or, a few maps later:
mappy: Map[Int, Double] = HashMap(
  449463 -> 1811260.0,
  449388 -> 1330179.0,
  449356 -> 1088255.0,
  449369 -> 1209736.0,
  449502 -> 2157084.0,

But how would I feed it to plot? After all, it takes an X and a Y and that Map already has both of those.
Glancing at the source I wasn't any wiser:
implicit def mapIsDomainFunction[T, K, V](implicit ev: T <:< collection.Map[K, V]): DomainFunction[T, K, V] = {
  new DomainFunction[T, K, V] {
    def domain(t: T): IndexedSeq[K] = t.keySet.toIndexedSeq
    def apply(t: T, k: K): V = {
      t(k)
    }
  }
}

It knows what the domain, the x axis, is and it knows how to get the values, the y axis, based on the domain. Right?
So why can't I just plot(mappy)? Since there's already an implicit for Map, is there any code that uses it? I searched the source on Github to no avail.
fwiw out of curiosity:
p += plot(mappy, mappy)

did at least compile and give me:

A straight line. Not overly surprising.
So: How to plot a Map? I might be persuaded into filing a PR for adding this to the quickstart once I know how to do it, so the next person (AKA me in a few months) won't have to scratch their head.

On a side note: I don't suppose a SparseVector is what I'm looking for to best model the missing values, is it?

On another side note: how does breeze know in which order to plot the map’s keys? After all it’s not an OrderedMap and I think my code compiled even without having an implicit Ordering for Instant.

Turns out, if I clone the repo and remove the Map DomainFunction implicit breeze still compiles. It would seem the implicit is unused and thus my search for code using relying on it was deemed fruitless from the very beginning.

Alright, I think I figured it out. It didn't help that I'm not an English native speaker. Once I learned what function domain translates to the veil of confusion started to lift itself.


change the froalaOptions dynamically

For below example, when uploading a file I need to pass a orderid to the "upload_file" url, but the orderid may be changed by user dynamically. Will the directive monitor the $scope.froalaOptions changes? If not, how can I do this? Thanks in advance.
function myCtrl($scope){
$scope.myHtml = "Hello World"
$scope.froalaOptions = {
fileUploadURL: '/upload_file?orderid=XXXXXXXX'
}
}

Hello @TonyWoo,
The directive does have a $scope.watch on the options object passed to the directive and since the fileUploadURL is one of the options that be changed after initialization it should update, please reopen if this is not the case for you.


feat: add words of docker

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


/delete by feed name

@0x111 is that ok to work on these issues? will you merge or review my code?

I will try my best. I don't use this app anymore so any improvement is welcome.


ChatClient connection sharding

A ChatClient should be able to create and maintain multiple connections to Twitch's chat server based on a configurable maximum amount of channels per connection.
While it's theoretically possible to send messages to channels you have not joined on a connection, all outgoing messages should be routed to the correct connection for the channel in order to not overwhelm one connection's send queue.

What's the status of this?

I don't currently have time for this, sorry, will pick it back up soon-ish.

As Twitch announced that there will be chat over EventSub soon, and also that IRC will stop supporting large numbers of channels even across multiple connections, this does not make sense to add anymore.


nullable vs type arrays (JSON Schema compatibility)

I understand that fully supporting type arrays is a challenge for a variety of reasons.  I would like to suggest that a compromise that would be functionally identical to nullable but compatible with JSON Schema:

type MUST be a string or a two-element array with unique items
if an array, one of the unique items MUST be "null"

The only way in which this is inherently more difficult to implement than nullable is that parsing type becomes slightly harder.  The functionality, validation outcomes, code generation, etc. should be identical.

I know this has been discussed greatly in the past, and as a brief recap:
I love OpenAPI, have been pushing it hard at work, and I also love contract testing. JSON Schema is fantastic at contract testing, doing this sort of thing:

Do we special case that particular use of the array? Or do we give the middle finger to people who want to generate models?

We'd still be left with an item on the "JSON Schema vs OAI discrepancies" list

I think the key thing is that the remaining item would be a "feature of JSON Schema that is not supported", while the current situation is "feature of JSON Schema that is functionally supported but requires a conflicting syntax".
I'm not that bothered by a system saying "hey, we don't quite want to use all of JSON Schema as defined for validation".  In fact, I want to spend effort in draft-08 making it easier to do that in general, so that projects like OpenAPI don't have to awkwardly document the deltas and either write their own tooling or try to wrap up existing tooling some way to forbid bits and pieces.
With the two-element array option, and some effort in draft-08 around being able to declare support for things like vocabulary subsets, we could get OAI and JSON Schema fully compatible with each other, without requiring OAI to support everything JSON Schema dreams up for validation.  After all, validation and code generation are really not the same things, and we should not pretend that they are.

Another reason for supporting @handrews suggestion is that despite commentary/opinion otherwise on whether the v2.0 spec formally permits this or not, the real world continues to intrude.
Companies like SAP (see http://api.sap.com/) produce exactly that construct in their v2.0 output. They expect tool providers to consume it because:

It is formally valid from the official spec,
The Swagger 2 on-line editor is happy with it,
A null value is essential in business APIs,
And they are big enough to insist

I can confirm that the first three bullet points in @RobJDean185's comment led to our use of two- and three-element array values for type  in Swagger 2.0 descriptions published on https://api.sap.com/.
The fourth bullet point actually didn't play a role :smile:
Once we support publishing OpenAPI 3.0.0 descriptions we'll of course strictly use single string values for type, combined with nullable and anyOf.
In Swagger 2.0 descriptions we also use "type":["number","string","null"] for

numeric data types that allow -Infinity, Infinity, and NaN, which unfortunately don't have a native representation in JSON and have to be represented as strings, or
numeric data types whose precision is larger than that of double, so numbers have to be wrapped as strings to avoid precision loss during JSON.parse() in JavaScript clients

(e.g. for data types DECFLOAT34, or NUMBER(...) with precision greater than 17)
This might be an addition to @handrews' proposal: also allow (a permutation of) this special three-element array for numeric data types.

The following script is used to convert nullable to type array in our project. Works well so far.
`def _convert_nullable(schema):
if schema['type'] == 'object':
for key, _ in schema['properties'].items():
schema['properties'][key] = _convert_nullable(
schema['properties'][key])
if schema['type'] == 'array':
    schema['items'] = _convert_nullable(schema['items'])

if 'nullable' in schema and schema['nullable']:
    schema['type'] = [schema['type'], 'null']

return schema`

We use the following script to convert nullable
def _convert_nullable(schema):
    ret = copy.deepcopy(schema)
    if ret['type'] == 'object':
        for key, _ in ret['properties'].items():
            ret['properties'][key] = _convert_nullable(
                ret['properties'][key])

    if ret['type'] == 'array':
        ret['items'] = _convert_nullable(ret['items'])

    if 'nullable' in ret and ret['nullable']:
        ret['type'] = [ret['type'], 'null']

    return ret

This would be a very helpful step towards aligning OpenAPI and JSON Schema.
Can we also confirm that null is permitted as a value in an OAS Schema that doesn't specify a type, and doesn't specify nullable as true or false? AFAICT, the current OpenAPI specification doesn't make it clear whether null is valid against a schema.
If we say that null values are valid by default, it's another step towards aligning OAS and JSON Schema, and it should make the transition to the new 2-element array syntax that much easier. With today's syntax, you can still disallow null values by specifying nullable: false or by specifying a type without nullable.

... Just revisited the spec and I see that nullable has a default value of false. There's no qualifier there about presence or absence of a type assertion. So here's a corrected table:

Valid Types
Current OAS Syntaxtype
nullable
New OAS Syntax

any time except null
not specified
not specified or false
not: {type: 'null'}

any type including null
not specified
true
{}

specific type T
T
not specified or false
type: T

specific type T or null
T
true
type: [T, 'null']

This has implications for allOf inheritance: A subtype cannot make a non-nullable type nullable. Even if the base type doesn't specify a type and doesn't specify nullable: false, it is non-nullable by default. So unless OpenAPI has some totally novel inheritance semantics for nullable, making a subtype nullable has no effect.
This is a subtle point that is probably going to trip up some API designers. See #1368 for an example. Maybe there's a way we can clarify this in the spec.

@tedepstein if you have a keyword that can possibly fail validation by being absent, that is very, very bad.  The empty schema {} must always pass.  Is this really the current behavior?  Because if so that is a conceptually huge (if hopefully very rare in practice) divergence from JSON Schema.
nullable is a fatally flawed keyword and the single biggest headache we have for interoperability.  Breaking the empty schema is so fundamental... I assume the only reason this works is that people either have never implemented it accurately or just very rarely use null.
If there is any wiggle room in the wording of the spec, the only way out of this that I can think of is to define the default behavior in terms of type.  Namely:
If type is present with any value, nullable defaults to false
If type is absent, nullable defaults to true
I wonder if any implementations effectively do that anyway.

@tedepstein if you have a keyword that can possibly fail validation by being absent, that is very, very bad. The empty schema {} must always pass. Is this really the current behavior? Because if so that is a conceptually huge (if hopefully very rare in practice) divergence from JSON Schema.
nullable is a fatally flawed keyword and the single biggest headache we have for interoperability. Breaking the empty schema is so fundamental...

Totally. nullable throws a monkey wrench into the whole JSON Schema paradigm. It's the only keyword that expands the allowed range of values. As such its neither an assertion, nor an annotation, nor an applicator. It's something else entirely.

I assume the only reason this works is that people either have never implemented it accurately or just very rarely use null.

I tend to think that this problem (and others) haven't surfaced very often because people rarely do schema validation. The mainstream code generators don't implement it. I don't know if there are open source libraries that implement OAS-compliant schema validation; and if there, they may not be widely used.

If there is any wiggle room in the wording of the spec, the only way out of this that I can think of is to define the default behavior in terms of type. Namely:
If type is present with any value, nullable defaults to false
If type is absent, nullable defaults to true

That's really what I was hoping for. Having a keyword with different default values, depending on another keyword, is definitely odd. But in this case, it would be much better than the alternative.
Strictly speaking, it would be a breaking change. But maybe the TSC will have an opinion about this, or some insight into the original intent.

I wonder if any implementations effectively do that anyway.

If anyone can point to any OpenAPI-compliant schema validators in the wild, that would help.

http://OpenAPI.tools/ plenty on there.
--
Phil Sturgeon
@philsturgeon

On Apr 29, 2019, at 07:09, Ted Epstein<EMAIL_ADDRESS>wrote:
@tedepstein if you have a keyword that can possibly fail validation by being absent, that is very, very bad. The empty schema {} must always pass. Is this really the current behavior? Because if so that is a conceptually huge (if hopefully very rare in practice) divergence from JSON Schema.
nullable is a fatally flawed keyword and the single biggest headache we have for interoperability. Breaking the empty schema is so fundamental...
Totally. nullable throws a monkey wrench into the whole JSON Schema paradigm. It's the only keyword that expands the allowed range of values. As such its neither an assertion, nor an annotation, nor an applicator. It's something else entirely.
I assume the only reason this works is that people either have never implemented it accurately or just very rarely use null.
I tend to think that this problem (and others) haven't surfaced very often because people rarely do schema validation. The mainstream code generators don't implement it. I don't know if there are open source libraries that implement OAS-compliant schema validation; and if there, they may not be widely used.
If there is any wiggle room in the wording of the spec, the only way out of this that I can think of is to define the default behavior in terms of type. Namely:
If type is present with any value, nullable defaults to false
If type is absent, nullable defaults to true
That's really what I was hoping for. Having a keyword with different default values, depending on another keyword, is definitely odd. But in this case, it would be much better than the alternative.
Strictly speaking, it would be a breaking change. But maybe the TSC will have an opinion about this, or some insight into the original intent.
I wonder if any implementations effectively do that anyway.
If anyone can point to any OpenAPI-compliant schema validators in the wild, that would help.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks, @philsturgeon .
@handrews , I think that answers our question. Assuming at least some of those message validators follow the spec exactly, changing nullable to a different default would be a breaking change.
But allowing the 2-element array as you've suggested, and possibly deprecating nullable, would not be.

I thought the idea was to add alternativeSchemas in 3.1 to avoid needing to worry about fixing any of this, then 4.0 kicks out Schema and makes alternativeSchema the new Schema.
Instead of trying to ad hoc fix single discrepancies between OpenAPI Schema Objects and the already out of date versions of JSON Schema it was roughly based on, the idea as I understood it was to get rid of OpenAPI Schema Objects entirely and let JSON Schema, XML Schema, Protobuf, etc take over the domain model.
--
Phil Sturgeon
@philsturgeon

On Apr 29, 2019, at 12:18, Ted Epstein<EMAIL_ADDRESS>wrote:
Thanks, @philsturgeon .
@handrews , I think that answers our question. Assuming at least some of those message validators follow the spec exactly, changing nullable to a different default would be a breaking change.
But allowing the 2-element array as you've suggested, and possibly deprecating nullable, would not be.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@philsturgeon there's also https://github.com/OAI/OpenAPI-Specification/pull/1766

Why can't we just add a type: null and then use oneOf for situations where you can provide an explicit value or null?  Then we don't need to support some foreign/new type where it's value is an array of types, yet we still have a way to indicate that null is a valid value.

@whitlockjc are you aware of how normal JSON Schema handles this?

I mean, that's an option, but why the excessive resistance to compatibility?

Here is the proposal to clarify nullable. It is currently under review by the TSC, hopefully to be included in a v3.0.3 patch release of the OpenAPI spec:
Proposal: Clarify Semantics of nullable in OpenAPI 3.0

This was fixed in #1977 so we can close this.


Makes the choice of ecCodes the default option in LISF

The config file has been updated to make the choice of
ecCodes library (instead of the older grib_api) the default
option while compiling LDT, LIS, or LVT.
Resolves #499

You approved your own pull request.  SHAME! SHAME!!!

If it is minor enough – I think I’ve earned it ☺
==============================================
Sujay Kumar, Ph.D.
Research Physical Scientist
Hydrological Sciences Laboratory
Code 617, Bldg 33, Rm G219
Ph:<PHONE_NUMBER>
Sujay.V.Kumar<EMAIL_ADDRESS>https://science.gsfc.nasa.gov/sed/bio/sujay.v.kumar
From: Eric Kemp<EMAIL_ADDRESS>Reply-To: NASA-LIS/LISF<EMAIL_ADDRESS>Date: Wednesday, April 8, 2020 at 4:12 PM
To: NASA-LIS/LISF<EMAIL_ADDRESS>Cc: "Kumar, Sujay V (GSFC-6170)"<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: [EXTERNAL] Re: [NASA-LIS/LISF] Makes the choice of ecCodes the default option in LISF (#500)
You approved your own pull request. SHAME! SHAME!!!
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_NASA-2DLIS_LISF_pull_500-23issuecomment-2D611168752&d=DwMCaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=F_5OVaHH7LvKtHALXneUaNCq8AEGjlqQaOsr45F7lQs&m=br_V6gXya4IgcIoHLGxZblq5Jv9fsAb7kLf_Lvmg_RU&s=wI0BmhD0bMjf2leg_q2B4HqneEZVanbFAwLunAdSM54&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ADC2XIYLAXOEHWBPQHJEKO3RLTK7XANCNFSM4MEGOEGQ&d=DwMCaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=F_5OVaHH7LvKtHALXneUaNCq8AEGjlqQaOsr45F7lQs&m=br_V6gXya4IgcIoHLGxZblq5Jv9fsAb7kLf_Lvmg_RU&s=ExveXQBOCFcKXqJoGQ_QVvy9OYROPjbXo84H7CTQYPE&e=.

Did you call Brendan to walk him through a simple PR? :-)

This was too simple; I know. :-)

Sorry - no.


Exclamation mark after hash (#!) not supported in routes

I'm trying to create a SEO friendly website using angular and by following Google specification for ajax based website (https://developers.google.com/webmasters/ajax-crawling/docs/getting-started).
They say that we should use #! in the url. I know that I also have to return a HTML snapshot of these pages and it is not the issue here.
So I just want something like that: www.mywebsite.com/something/#!/detail/1
The thing is that when using an exclamation mark in the route like that:
when('#!/detail/:id', {controller:DetailCtrl, templateUrl:'detail.html'}).
otherwise({redirectTo:'/other'})
I am always redirected to the otherwise url: "/other" .
I didn't find anything mentionning that using "#!" in url is prohibited. Therefore I just assume this is a bug ?

How you solved this issue, i have exactly the same issue and i have no idea how and why suddenly i got it?


Make exp_any return the earliest result

Previously, exp_any would return the match with the lowest index in the list
So this
exp_any(&vec![ReadUntil::String("hello"), ReadUntil::String("hell")]
With the input from the process as "hello", will sometimes return "hell", and sometimes "hello", depending on how much the readbuffer happened to have collected.

Is the only way to edit this commit-message to close the PR and open a new one?

I guess we can
bors merge


feature request: pedigree info in vcf header

Hi Brad,
I was wondering if it would be possible to add some pedigree headers to the output vcfs?
Since gemini db's are non standard anymore, we'd have to keep ped files around to identify family relations in a multisample vcf. It'd be handy (and up to spec) to keep this info handy in the VCF header.
Thanks
M

Matthias;
Thanks for the suggestion. We have skeleton code to add pedigree information for tumor/normal samples with the idea that it could eventually extend to more complex setups:
https://github.com/bcbio/bcbio-nextgen/blob/8f1d4cac6f8e1442b658522288b028ffde0ed5f1/bcbio/variation/annotation.py#L99
We'd welcome contributions here if you understand how to best encode information from PED files in the header. Thanks again for the discussion.

Hi Brad,
Thanks for the pointers. I've already opened a thread on the vcftools-help mailinglist, but I don't think that'll be of much use, since the last post there was about 6 years ago..
I'm not sure if there's a set way to encode pedigree info, but I'm looking into it.
Thanks
M

Thanks-- @matthdsm did you ever figure out how folks encode pedigree information in the header?

Hi Rory,
Nope, I've scoured the spec's for some concrete info, asked the forums and opened issues in the spec repo's, but I haven't got any answers to date.
All I know for sure is that it's possible, but there's no clear source on how to do it exactly 😞


watch not working on macOS

Hey, I can't get "watch" working by saving .svg in Inkscape. Have anyone had the same issue on macOS and got it working? Is there any package I need or change I can make?
I am using macOS Catalina 10.15.7 and Inkscape 1.0.1.
I have actually found a way by adding mapping to vim to call terminal, but I would like to automate it.
nnoremap <C-s>:   ! for FILE in ./figures/*.svg; do inkscape -D $FILE  -o .pdf --export-latex; done
I also tried this but didnt work at all.
I am quite new into vim, Latex and working with terminal, will be very happy for any advice.

Hey, Try to
Brew install fswatch
I got mine working this way.

Hey, Try to
Brew install fswatch
I got mine working this way.

@zighj74 thanks this worked for me!


Report intermediate results and R code used, for reproducibility

Description pending...

Closing the old issues, as we are rewriting the app


Add sqs connection details

Description of your changes
Added the SQS queue url to the connection details so that the value will appear in the secret created by writeConnectionSecretToRef
Fixes #730
I have:

[x] Run make reviewable test to ensure this PR is ready for review.

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

/test-examples="examples/sqs/queue.yaml"


Database first - ability to override default type mapping

i have simple table in MS SQL containing 2 columns:
ClientId - binary(8) primary key
ClientName - varchar(30)
When I add that table to my model I can see that ClientId type = Binary

What I would like to do is to override that type so that inside C# code I will be able to use int instead of byte[].
SELECT * FROM Clients WHERE ClientId = 0x0000000000000001 and SELECT * FROM Clients WHERE ClientId = 1 are giving me same results so why not allow to specify target mapping.
This would only require simple CAST inside SQL and just for select operation, all other work fine.
I'm aware I can use stored procedures for select and updates or even use SQL view. But sometimes for very simple applications this would be big convenience.
It's easier to say client with Id = 4067 than client with Id =0x0000000000000FE3
Can this be done?
I've posted same issue in EF7 issue tracker. Currently I'm using EF 6.1.3 so I'd like to have this working it that version, but at some point I'll be moving to EF Core so I'd also like that feature working there.

EF Team Triage: We are not planning to make changes in this area in EF6. If there is enough customer interest and a contributor is interested in sending a PR we may consider it.


chore: remove autoImplicit from Archive, Cache, Data

Split from #16154 – this PR contains just the less contentious changes. Four non-test files will remain after this.

bors merge


Create Spring Boot Application For CHD Order Consumer - GCI 763

Jira Story: GCI 763
Create spring boot application for CHD Order consumer

Some of the files have tabs instead of spaces, can these be formatted please? Also, the APPLICATION_NAMESPACE is usually put into a LoggingUtils class. Can this be implemented as well? (Will also need the structured logging dependency in the pom.xml) See certified-copies.orders.api.ch.gov.uk for an example of the LoggingUtils set up

Will do. For the tabs & the LoggingUtils class we should change the template we use then, because it is out of date and not properly formatted

How about adding more details on the README ? As a development team we need to focus more on keeping our documentation up-to-date . What do you think ?

How about adding more details on the README ? As a development team we need to focus more on keeping our documentation up-to-date . Just the basic requirements and environment variable needed . The purpose of this consumer, the topic it will be consuming from if you know that now (or add a placeholder for it and fill that in later) What do you think ?

I agree 100% and I have update the README file as well

Some of the files have tabs instead of spaces, can these be formatted please? Also, the APPLICATION_NAMESPACE is usually put into a LoggingUtils class. Can this be implemented as well? (Will also need the structured logging dependency in the pom.xml) See certified-copies.orders.api.ch.gov.uk for an example of the LoggingUtils set up

All changes applied


[Feat] Add modalities for vision server when handling pixel values for llava

Motivation
Previous llava hardcode the number of images, which is 16, to differentiate between video and multi-images, which might cause trouble when handling short videos and is inflexible.
Modifications
Allow to pass in a new modalities parameters when using the server to upload the images. By default the value will be image and everything will be just the same.
Checklist

[ ] Format your code according to the Contributor Guide.
[ ] Add unit tests as outlined in the Contributor Guide.
[ ] Update documentation as needed, including docstrings or example tutorials.

A checking here to make sure video tokens are processed correctly


Error logging and user attributes

Moved the mParticle specific stuff to the subspec folder

Note that I also removed the default Adobe implementations here, which was already done separately by CJ already.

Hey @JonnyLinja any chance you will have time to work on this? If not please close, and I will recreate with the necessary updates. Let me know either way


parse-latest.js served on the CDN via HTTPS is serving a non-minified version of the code

To recreate the problem please do the following:

Open https://www.parsecdn.com/js/parse-latest.js in your browser window
Open http://www.parsecdn.com/js/parse-latest.js in an other browser window

You will see that the HTTPS version is non-minified and the HTTP version is minified.
Please let me know if I need to open this issue in a different place.

parse-latest.js is supposed to be non-minified. If you want minified, use parse-latest.min.js
parsecdn.com isn't currently supported, since the hosted service is going away, and few people actually use the SDK in that form. From the statistics I have, it looks like most people host their own or use the npm package to build a single package. If people want a hosted CDN, I'll look into using CDNJS or something similar.

I will update README.md to reflect the fact that the cdn is not maintained. I'll also try to update the backlog of pre-built distributions available on the releases page of this GitHub repo.

@andrewimm Thank you for the clarification.

Is there a timeline for when that latest versions might be put on CDNJS or a similar service?

I just found out about npmcdn, which is an awesome service because it doesn't require any extra effort to publish there.
You can pull in the SDK from there with URLs like<EMAIL_ADDRESS>or<EMAIL_ADDRESS>Since it's a little awkward to call it "latest" at each version, I'll rename it to parse.js and parse.min.js from version 1.9.0 onwards. I'll update the README to contain this information when I do.

@andrewimm Thanks appreciate it!


Scheduled Maintenance

Is your feature request related to a problem? Please describe.
For some services there's recurrent Scheduled Maintenance window (for example at 3am, services going down for 15 min for backup purpose).
Describe the solution you'd like
Ability to create Scheduled Maintenance (for example every day/day-of-the-week/month/years between 3h00 and 3h15) that I can affect to the monitor. When the monitor hit that time, it goes in "maintenance mode" which does or doesn't affect the overall uptime (depending if the "Affect Uptime" box is ticked) and it's logged as maintenance (and after 3h15 it goes back to normal monitoring).

Duplicated enhancement #191


[all] Why LiveData requires UI update callbacks as against Observables

I need one clarification regarding LiveData usage Vs Observables. When we use observable attribute in ViewModel and reference in layout XML of Fragment/Activity, subsequent updates of observable attribute are auto handled in View (without requiring callback code). Whereas when using LiveData attribute (in place of observable), why do we have to write extra callback handler to update UI in Activity/Fragment class, it "increases boilerplate code". Shouldn’t DataBinding lib handle it internally just like with observables ? Am i missing anything? May be this change is already on the roadmap. Please advise.
Just to make it clear, i am referring to this code when using LiveData:
// Create the observer which updates the UI.
final Observer nameObserver = new Observer() {
@Override
public void onChanged(@Nullable final String newName) {
// Update the UI, in this case, a TextView.
mNameTextView.setText(newName);
}
};

What arun said :)


Comments - Tanya

Tanya has ideas and thoughts (not big ones though)

One general comment is the use of local, realised, regional, potential. In the text you tend to use potential and local as opposites. Is it not perhaps better to pair it as local - regional and realised - potential. It's a very nitty comment but I feel like the local - potential pairing is referring to different aspects. Personally I like regional - local since it links more explicitly to the scale we are thinking at.

The only other ‘big’ comment she has is that when we define p(x, y, z) for the first time it might be worth specify what xyz represent. Z wasnt immediately clear to her.


Please commit your Cargo.lock file in the repository

Not having a Cargo.lock file makes tiktoken harder to use by projects being packaged for deployment with Nix (which runs builds in a sandbox that only has network access when the hash of the content being downloaded is known ahead-of-time), and exposes users to unexpectedly having different dependency resolutions than a release was tested with upstream.

I intend to fix this in poetry2nix, which means that I get to choose the versions of dependencies. If you want to control which crates are used in Nix or other reproducible environments, then (at minimum) you need to add the lockfile to your releases.

I second this. Not having having a Cargo.lock makes it hard to use with EasyBuild

These are the latest recommendations from the Rust community afaik:

https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html
https://doc.rust-lang.org/cargo/faq.html#why-have-cargolock-in-version-control
https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries


Add CSE logging upload functionality

What type of PR is this?
/kind feature
What this PR does / why we need it:
This PR symlinks some log files into a subdirectory of /var/log/azure (/var/log/azure/aks), where the WALinuxAgent will pick them up and upload them to the host via WireServer. This will include these log files on an hourly upload. Additionally, a timeout has been added to provision.sh (set to 14m, one minute shorter than the CSE execution timeout), after which it will be killed and the logs will be uploaded to the host before the script terminates with the regular error conditions. This means that the provisioning logs for any failing Linux node can now be downloaded from the host.
Which issue(s) this PR fixes:
Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Opened against the wrong branch.


Using cloud-api-adaptor as a Go module is not allowed due to invalid chat in run-kata\x2dcontainers.mount filename

cloud-api-adaptor is not allowed to be imported as a Go module even when the fork has a tag created because the run-kata\x2dcontainers.mount file contains an invalid character in its filename.
I forked the confidential-containers/cloud-api-adaptor project and created some tags in my personal fork
https://github.com/mattarnoatibm/cloud-api-adaptor/tags
Create a go.mod file and attempt to include the module from my fork:
module github.com/mattarnoatibm/test-go-module

go 1.19

require (
   "github.com/mattarnoatibm/cloud-api-adaptor" v0.0.0-20230103115832-493f1c9091f3
)

Create a main.go file in the same directory:
package main

import (
    "fmt"
    "github.com/mattarnoatibm/cloud-api-adaptor/pkg/util/netops"
)

func main() {
    ns := netops.NS{}
    fmt.Printf("NS Name: %s", ns.Name)
}

Attempts to use go mod tidy and go get ... fail:
go mod tidy
go: downloading github.com/mattarnoatibm/cloud-api-adaptor v0.0.0-20230103115832-493f1c9091f3
github.com/mattarnoatibm/test-go-module imports
	github.com/mattarnoatibm/cloud-api-adaptor/pkg/util/netops: create zip: azure/image/files/etc/systemd/system/multi-user.target.wants/run-kata\x2dcontainers.mount: malformed file path "azure/image/files/etc/systemd/system/multi-user.target.wants/run-kata\\x2dcontainers.mount": invalid char '\\'
azure/image/files/etc/systemd/system/run-kata\x2dcontainers.mount: malformed file path "azure/image/files/etc/systemd/system/run-kata\\x2dcontainers.mount": invalid char '\\'
podvm/files/etc/systemd/system/multi-user.target.wants/run-kata\x2dcontainers.mount: malformed file path "podvm/files/etc/systemd/system/multi-user.target.wants/run-kata\\x2dcontainers.mount": invalid char '\\'
podvm/files/etc/systemd/system/run-kata\x2dcontainers.mount: malformed file path "podvm/files/etc/systemd/system/run-kata\\x2dcontainers.mount": invalid char '\\'
vsphere/image/files/etc/systemd/system/multi-user.target.wants/run-kata\x2dcontainers.mount: malformed file path "vsphere/image/files/etc/systemd/system/multi-user.target.wants/run-kata\\x2dcontainers.mount": invalid char '\\'
vsphere/image/files/etc/systemd/system/run-kata\x2dcontainers.mount: malformed file path "vsphere/image/files/etc/systemd/system/run-kata\\x2dcontainers.mount": invalid char '\\'

% go get github.com/mattarnoatibm/test-go-module
go<EMAIL_ADDRESS>verifying go.mod<EMAIL_ADDRESS>reading<EMAIL_ADDRESS>404 Not Found
	server response:
	not found: create zip: azure/image/files/etc/systemd/system/multi-user.target.wants/run-kata\x2dcontainers.mount: malformed file path "azure/image/files/etc/systemd/system/multi-user.target.wants/run-kata\\x2dcontainers.mount": invalid char '\\'
	azure/image/files/etc/systemd/system/run-kata\x2dcontainers.mount: malformed file path "azure/image/files/etc/systemd/system/run-kata\\x2dcontainers.mount": invalid char '\\'
	podvm/files/etc/systemd/system/multi-user.target.wants/run-kata\x2dcontainers.mount: malformed file path "podvm/files/etc/systemd/system/multi-user.target.wants/run-kata\\x2dcontainers.mount": invalid char '\\'
	[Truncated: too long.]

Converting cloud-api-adaptor to a multi-module workspace and making sure the workspace for the cloud-api-adaptor module does not contain any files with 'illegal' file names could be one way of solving this problem: https://github.com/confidential-containers/cloud-api-adaptor/issues/483.


"Șoldanu" is listed in the drop-down menu

Description:
"Șoldanu" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Șoldanu" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Șoldanu, CĂLĂRAȘI (Șoldanu)".


(PUP-9136) Explicitly call configure_type_defaults_on where needed

Beaker 4 removed the implicit calls to configure_type_defaults_on,
which populated values in the hash on a Beaker::Host object. This
updates the puppet tests to call it explicitly where those values are
needed.

Note that we haven't been seeing these errors in CI because it overrides the values in the gemfile with params that are pinning us to Beaker 3.

CLA signed by all contributors.

This seems like an oversight in beaker 4? I would expect beaker to always configure the default values based on the type, and have it continue to default to type AIO.

Nope, they very explicitly call it out as something you need to start doing yourself: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/upgrade_from_3_to_4.md#pedefaults-and-configure_type_defaults_on.

It occurs to be that beaker subcommands only persist session state as a result of the beaker init and beaker provision subcommands, but not later when running the presuite via beaker exec, and it's the presuite that causes the defaults to be set on the Host objects, e.g. privatebindir, etc. Or something like that...
I'd prefer that individual tests not have to "reset" the state every time. Ideally beaker would preserve state as a result of running the presuite. /cc @melissa @kevpl

@joshcooper @Magisus @kevpl I opened https://github.com/puppetlabs/beaker/pull/1544 so that we don't have to set the state for each test individually. I'd love to get a second set of eyes on this to make sure it works as expected. It worked for me locally, but I have a bunch of beaker-puppet changes as well, so I'd love to see it run in someone else's environment.

This is superseded by @melissa 's work in https://github.com/puppetlabs/beaker/pull/1544.


Courtesy push pipeline failures

Issue Description
Our courtesy push pipeline has started to fail consistently, we should get that fixed up. Its failing on the update unified deps step - https://dev.azure.com/mseng/PipelineTools/_build/results?buildId=14098132&view=logs&j=39b35c2a-6bbc-5806-91b1-4f11d00d1f59&t=ab027f4d-fc26-5299-7183-aa2f205e36b6
I'm routing this to our ABTT team, I'm happy to help out on this one though, just ping me or tag me here if any questions pop up

Error: Cannot find module 'D:\a\1\s\azure-pipelines-tasks\ci\courtesy-push\courtesy-push.js' This exact error can appear if it's not a 3rd sprint week as per whatsprintis.it. AzureDevOps checkout is skipped in this case and hence the path previously mentioned becomes invalid since the tasks' repo is cloned to D:\a\1\s\ directly. it seems that we can't just override the WEEK variable since it's set within the pipeline.
The first failure occurred due to the following error at Build all tasks / Run tests step: The job running on agent Azure Pipelines 33 ran longer than the maximum time of 90 minutes.. It seems that it was scheduled to run in a week and it has failed as expected due to the week number mismatch. The last attempt was made at the 3rd week is this one and it failed at the 'push release branch' step. It seems that it was required to pull commits from remote before pushing since the 'branch appeared to be behind its remote counterpart'

Error: Cannot find module 'D:\a\1\s\azure-pipelines-tasks\ci\courtesy-push\courtesy-push.js' This exact error can appear if it's not a 3rd sprint week as per whatsprintis.it. AzureDevOps checkout is skipped in this case and hence the path previously mentioned becomes invalid since the tasks' repo is cloned to D:\a\1\s\ directly. it seems that we can't just override the WEEK variable since it's set within the pipeline.
The first failure occurred due to the following error at Build all tasks / Run tests step: The job running on agent Azure Pipelines 33 ran longer than the maximum time of 90 minutes.. It seems that it was scheduled to run in a week and it has failed as expected due to the week number mismatch. The last attempt was made at the 3rd week is this one and it failed at the 'push release branch' step. It seems that it was required to pull commits from remote before pushing since the 'branch appeared to be behind its remote counterpart'

Merged the PR.
A fix was applied to avoid build failing if the pipeline runs not on the third week of a sprint (some steps are expected to be skipped in this case instead of build failing).
A fix was applied to avoid build failing if some commits are pushed to a release branch before a sprint ends.

Merged the PR.
A fix was applied to avoid build failing if the pipeline runs not on the third week of a sprint (some steps are expected to be skipped in this case instead of build failing).
A fix was applied to avoid build failing if some commits are pushed to a release branch before a sprint ends.


Upon update, inform about and ask for a decision for newly introduced template parameters

Current behaviour
When a new cookiecutter template parameter has been added to an existing template and I run cruft update to pull the changes, I am not informed

that there is a new variable now in the template,
nor (in case of choices) which values it could have,
nor which value is the default one.

Still, cruft will use the default value.
Only if I deliberately re-enter the parameters by using cruft update -i I have the chance to pick a non-default value.
Desired behaviour

cruft check will inform me about the new template variable and the default value.
cruft update will inform me about the new template variable and the default value, and it will query me for the desired value, before producing the update diff.

Version
Running version 2.12.0 here.

I would also like to add that I think it would be great if Cruft could allow you to "change your mind" later down the line. The use case for this would be:

I have a template that asks if I want to include a Dockerfile
I am planning to host on Heroku so I choose no
The Dockerfile is not generated as a result (post-process removes it for example)
I want to later on go back and answer "yes" to the Dockerfile question
The Dockerfile is produced as it would have been had I originally answered yes

Suggestion: an easy improvement here would be to automatically run cruft update --cookiecutter-input when new parameters are detected so that the user gets the opportunity to set those appropriately and verify the existing parameters.


Silently ignore empty lines so these can be ussed to keep connection ali...

...ve
I originally raised an issue for that - https://github.com/elasticsearch/logstash/issues/2621
But then I realised all plugins were moved out of the logstash into a separate repo so I am going to close that issue now.

The ICLA has been signed actually...

Jenkins standing by to test this. If you aren't a maintainer, you can ignore this comment. Someone with commit access, please review this and clear it for Jenkins to run; then  say 'jenkins, test it'.

I'll go ahead and close this PR which is replaced by #22.
Thank you @dimas for your work on this


License

Hi! Really great your docker-compose mail solution. I would like to contribute/change some configurations, but I could not find a license file. Could you tell me if it is GPL?

I just added the license, it's under the MIT license


Allow for using the "old" source way of activating virtual environments

Via https://github.com/microsoft/vscode-python/discussions/22270 . We would probably offer a setting to let you choose "command" or "environment variables" as how we would do virtual environment activation. We could leave the "on"/"off" option as separate so that things can (potentially) work with the dedicated "Python Terminal" command.

Thank you to everyone who upvoted this issue! Since the community showed interest in this feature request we will leave this issue open as something to consider implementing at some point in the future.
We do encourage people to continue 👍 the first/opening comment as it helps us prioritize our work based on what the community seems to want the most.

@brettcannon - hi, does it mean the terminal will auto-activated with correct conda env without the setting conda config --set auto_activate_base False. Like auto run a command conda activate xxx when the terminal is first initialized.

Like auto run a command conda activate xxx when the terminal is first initialized.

This feature request would bring back the old way of activating environments as an option. If you're asking about the current way via environment variables, then please open a Discussion.

I need this! I've been using Zsh for Humans, and something about it just doesn't work at all with the new activation method. I think it's related to it running inside a headless tmux session, or something like that.
The old way worked perfectly for me.
Here's what's happening to me with this new method:

Boring stuff
❯ which python
/home/micael/.pyenv/shims/python
❯ which mypy
/home/micael/projects/playground/.venv/bin/mypy
❯ echo $VIRTUAL_ENV

❯ echo $PATH
/home/micael/.pyenv/shims:/home/micael/bin:/home/micael/.vscode/extensions/ms-python.python-2024.7.11281013/python_files/deactivate/zsh:/home/micael/projects/playground/.venv/bin:/home/micael/.pyenv/bin:/home/micael/.local/bin:/home/micael/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/micael/.cache/zsh4humans/v5/fzf/bin
❯ . .venv/bin/activate
❯ which python
/home/micael/projects/playground/.venv/bin/python
❯ which mypy
/home/micael/projects/playground/.venv/bin/mypy
❯ echo $VIRTUAL_ENV
/home/micael/projects/playground/.venv
❯ echo $PATH
/home/micael/projects/playground/.venv/bin:/home/micael/.pyenv/shims:/home/micael/bin:/home/micael/.vscode/extensions/ms-python.python-2024.7.11281013/python_files/deactivate/zsh:/home/micael/projects/playground/.venv/bin:/home/micael/.pyenv/bin:/home/micael/.local/bin:/home/micael/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/micael/.cache/zsh4humans/v5/fzf/bin

Notice how which python and echo $VIRTUAL_ENV change after manually activating the venv. I also don't get the venv indicator on my prompt without activating manually.

#11039 is still labelled as "experiment"
So as a workaround, you can use the old source way of activating virtual environments by adding one of these options in your settings.json (from specific to general):

"python.experiments.optOutFrom": ["pythonTerminalEnvVarActivation"]: it will disable this specific experiment
"python.experiments.enabled": false: it will disable all python experiments
"telemetry.telemetryLevel": "off": it will opt you out of A/B testing from VS Code and all other Microsoft extensions


Tracked controllers go to origin on system button press

I think this is a bug with OpenVR actions but it should probably have a consideration in the SteamVR plugin.
In the newer versions of the SteamVR plugin which use the OpenVR action system, if the system button is pressed on a controller the TrackedDevicePose_t for both controllers from the api will send a blank transform matrix and bDeviceIsConnected and bDeviceIsConnected will both be false.
I have loaded up the old SteamVR plugin 1.2.3 and the controllers continue to be tracked normally on a system button press.
A hacky fix I have in place is in the UpdateValue method of SteamVR_Action_Pose to check for either of the above bools before SetCacheVariables() and to make sure changed is then set to false. Something like:
//(line 580 SteamVR_Action_Pose.cs)
if(poseActionData.pose.bPoseIsValid){
    SetCacheVariables();
    changed = GetChanged();
}else{
    changed = false;
}

Of course there needs to be a fix in OpenVR, but this could potentially be useful for controller disconnections sending in-game objects flying around.

Pretty sure this has been fixed. If not please create a new issue with repro steps and ideally an example project. Thanks!


[Outlook] Link to requirement sets and mode objects

Docs Build status updates of commit 014d22d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/objectmodel/preview-requirement-set/office.context.mailbox.diagnostics.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/office.context.mailbox.item.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/office.context.mailbox.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/office.context.mailbox.userProfile.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/office.context.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/office.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/outlook-api-requirement-sets.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


improve error messages in Maven registry client

Follow-up on https://github.com/google/osv-scanner/pull/857

Codecov Report
Attention: Patch coverage is 0% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 61.64%. Comparing base (b28c1c8) to head (f744be4).
Report is 28 commits behind head on main.

Files
Patch %
Lines

internal/resolution/datasource/maven_registry.go
0.00%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #859      +/-   ##
==========================================
+ Coverage   59.78%   61.64%   +1.86%
==========================================
  Files         136      144       +8
  Lines       11268     9189    -2079
==========================================
- Hits         6737     5665    -1072
+ Misses       4102     3048    -1054
- Partials      429      476      +47

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


ARTEMIS-801 Dealing properly with Spaces and Special Characters on br…

…oker
(cherry picked from commit<PHONE_NUMBER>ad1d58c7bc8a2c53ad98d1334c2303)
https://issues.jboss.org/browse/JBEAP-6434

jboss-1.4.0-x  is now superseeded by jboss-1.5.1-x which contains this commit.


Fix PrevalenceFields' display logic

PR was requested here.
When the location is set to 'Select location', and the Details drop-down is open, the fields were editable. The isEditable used the slightly wrong method which checks whether the top location has been set. This commit irons out that edge case.

I've just thought that a better solution might be to hide the Details section entirely if the user is in location-choosing mode but has not chosen a location.

I've just thought that a better solution might be to hide the Details section entirely if the user is in location-choosing mode but has not chosen a location.

No strong preference on the currently coded solution vs the one you proposed in the comments.
Just make sure you pull the latest code from main, since the new typeahead code is in place in the same areas you're editing.

No strong preference on the currently coded solution vs the one you proposed in the comments.
Just make sure you pull the latest code from main, since the new typeahead code is in place in the same areas you're editing.

I'll leave this as it is then.

I'll leave this as it is then.

Rebased on main.

Rebased on main.

I merged the other one. Since the branch is in your fork, I can't merge main in.

I merged the other one. Since the branch is in your fork, I can't merge main in.

Closing in favor of #679 so I can easily get it up to date with main.

Closing in favor of #679 so I can easily get it up to date with main.


Update New-SPEnterpriseSearchMetadataMapping.md

Added note regarding -VarientType switch in provided example. Addresses #2418.

OPS Build status updates of commit 92301d2:
:clock10: Preparing: average preparing time is 1 min(s) 13 sec(s)

OPS Build status updates of commit 92301d2:
:clock10: Incremental building: average incremental building time is 12 min(s) 23 sec(s)


Fix error page mount

Fixes https://artsyproduct.atlassian.net/browse/PLATFORM-1316
For some reason pointing the main template at index fails to load JS. Not sure exactly why, but pointing at the blank page template fixes the problem sufficiently.

Can't say I understand it, but I can verify this has the desired effect in staging!

I believe the main template has some options for including different scripts, going to try and find this to verify.

Note that for the error page there's no real need to include all of the other scripts that come along with the main layout; the blank page, with the footer, does the trick. That said I couldn't figure out for the life of me why different pieces of js on the page wouldn't initialize -- JS worked (where before the fix a couple months back no JS was included at all) but things like the dropdown menu and search simply wouldn't mount / execute properly. Things like main_layout and global_client_setup all booted properly too. It was a bit of rabbit hole.
Let me know if you find something!

I'm curious about this line, and not sure where the styledComponents var comes from for it- https://github.com/artsy/force/blob/master/src/desktop/components/main_layout/templates/index.jade#L20

That comes from stitch: https://github.com/artsy/force/blob/master/src/desktop/apps/article/routes.ts#L145


The post-training quantization results in significant precision loss for internal state model

The internal state model has assignVariable and varHandle and so on. So I use the following code to convert the internal state model into TFLite.
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen
converter.experimental_new_quantizer = True
converter.experimental_enable_resource_variables = True
converter._experimental_variable_quantization = True#converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.int8
converter.inference_output_type = tf.int8

However, I noticed an accuracy loss of about 10% compare to not converted model. Then, I used a non-stream model which has no assignVariable for Int8 quantization, and there was no significant accuracy loss. How can  I reduce the  accuracy loss for  internal state model ?

Hi, @ctwillson
I apologize for the delayed response, if possible could you please help us with your Google colab notebook along with model to replicate the similar behavior from our end ? Meanwhile please give it try with tf.float16 instead of tf.int8 or different quantization technique please refer this official documentation
Thank you for your cooperation and patience.


Added tcp_offset

The function tcp_offset isn't available before software version 3.12.0 and 5.5.1. It is needed in the ROS driver to transform the the force/torque measurements to the tcp frame.

I cannot find tcp_offset inside the RTDE guide.
Since you didn't modify the recipe file: Where is that supposed to come from?

It is correct that the function isn't documented in the RTDE guide, but it is still part of the interface.
I have modified the recipe file in the ROS driver, but I will go ahead and do it in the examples and the test in this repo as well.

Should we add a version requirement to the README or maybe even have a version check inside the interfaces where we can do that? Or would that be out of scope for this PR. Since we're raising the required Polyscope version with this PR, I think it makes sense to include something to the README at least.

Should we add a version requirement to the README or maybe even have a version check inside the interfaces where we can do that? Or would that be out of scope for this PR. Since we're raising the required Polyscope version with this PR, I think it makes sense to include something to the README at least.

I definitely agree that we should update the README with the required polyscope versions.
I think that it would be a good idea to have some kind of version check, since we might add more features in the future that is not supported by older versions of polyscope. Since the version is already available in the rtde client it shouldn't be to much of a hassle to add it to this PR.
There is probably a bit more work to figure out how to handle older versions in the ROS driver, since the function publishing the wrench is highly dependent on this function, at least for the e-series robots.

The version would not only affect the RTDE interface, but also primary and dashboard interfaces. Since all of them can be used standalone from this library, version checks would be needed everywhere.

a5e177b would be my suggestion for a minimal version compatibility notice (The tag does not yet exist, it would point to the last commit before this branch is merged). @urmahp @urrsk what do you think about that? This should give us the flexibility to announce such changes in the future, as well.

a5e177b would be my suggestion for a minimal version compatibility notice (The tag does not yet exist, it would point to the last commit before this branch is merged). @urmahp @urrsk what do you think about that? This should give us the flexibility to announce such changes in the future, as well.

Yes that look good and gives transparency


Wallet base ui

https://ob1company.atlassian.net/browse/OB-61
This PR includes some initial work on the top section of the wallet, notably:

Wallet is launchable from the wallet icon on the top menu bar
Current wallet balance is shown (transaction count is a dummy number until the transaction section will be implemented)
Ability to toggle between the Send and Receive money sections (the content of each section is mostly incomplete / not-functioning - it will be completed in a subsequent PR)
BTC ticker at the top of the wallet, which shows the value of 1 BTC in your currency (if your currency is not BTC)

@morebrownies do you want to give this a quick look? If everything looks good to you, it's ready to merge.

Yes! I will take a look in a few.

👍  Yeah looks good to me @rmisio @jjeffryes
The only thing I noticed that is off is the Amount input is missing the currency dropdown. I'm assuming you'll pick that up on the next PR though.


add PostProcessGeneratedCode and onDestroy + enhanced prompt

Hi, I fixed some minor stuffs, running smoother now, I also tried with gpt-4 API, works far better!

Thanks for the PR. It looks good to me. I'll re-check it later.


zoneMappings property is missing from ARM GET /subscriptions/{subscriptionId}/providers response definition

The definition here (and in other API versions) is missing this property definition on the ProviderResourceType definition:
https://github.com/Azure/azure-rest-api-specs/blob/8179f85219cba709013ac46ca9a2d99644423da7/specification/resources/resource-manager/Microsoft.Resources/stable/2019-07-01/resources.json#L2028-L2072
This affects our SDKs and docs - see https://docs.microsoft.com/en-us/rest/api/resources/providers/list#providerresourcetype

Hello, has any progress been made on this, or is there some other part of the Azure REST API that provides an authoritative list of supported AZs by resource provider?

Issue fixed with this PR: https://github.com/Azure/azure-rest-api-specs/pull/13936


[Microsoft.Billing] Fix S360 for promotion spec

ARM API Information (Control Plane)
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[x] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify - update existing version to fix issue with SDK, gap in response, and better description

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

Breaking change request: https://msazure.visualstudio.com/One/_workitems/edit/24582053

      "description": "Name of the promotion"

Name or Id?

Refers to: specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json:387 in f889b23. [](commit_id = f889b237c8eb9ebd11ed0e31424bb7c816085999, deletion_comment = False)

  "get": {

Even this is implemented wrong, this operation can't be a GET path. It is a POST Action.

Refers to: specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json:138 in f889b23. [](commit_id = f889b237c8eb9ebd11ed0e31424bb7c816085999, deletion_comment = False)

    "name": {

promotionName.

Refers to: specification/billing/resource-manager/Microsoft.Billing/preview/2020-11-01-preview/billingPromotions.json:389 in f889b23. [](commit_id = f889b237c8eb9ebd11ed0e31424bb7c816085999, deletion_comment = False)


Marshal packit-service API with flask-restx

Fixes  #2062

We decided to close this without merging.


Jwt中从payload取出字段的值设置到这个请求头中，转发给后端  这个参数没有示例配置。一直失败

Why do you need it?
Is your feature request related to a problem? Please describe in details
How could it be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
Other related information
Add any other context or screenshots about the feature request here.

https://higress.io/zh-cn/docs/plugins/jwt-auth
看下文档，注意是个数组：

@WCCRegistered 问题已经解决


Speaking time – current contribution projector: enhance with more speaking categories

Description: The Speaking time – current contribution projector needs to be enhanced with more speaking categories and an information about the speech category for each one in the projection. Currently it only displays a speech time and the name of a structure level, which isn't sufficient.
What should happen:
The Speaking time – current contribution projection should als include the following speech categories and times:

interventions
interposed questions
point of orders
normal contributions

The projection should switch between these contributions. Also it should display a short information about the category of the speech. Example: If a person speaks for a structure level, the structure level is displayed. If a person has an intervention, the description intervention should be displayed. The name should not be included. Only speech time and category.

The speech_state property is already sent to the client with the los projection.

Needs to be added to the projection in autoupdate