pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpdljz01kbbuild/dotenv/

Update:
I tried again by

removing python-dotenv from Pipfile
pipenv install
pipenv install python-dotenv

and everything worked this time.
Very annoying bug that I can't even reproduce. :/
$ pipenv --support
Pipenv version: '2018.11.26'
Pipenv location: '/usr/lib/python3.7/site-packages/pipenv'
Python location: '/usr/bin/python3'
Python installations found:

3.7.2: /usr/bin/python3
3.7.2: /usr/bin/python3.7m

PEP 508 Information:
{'implementation_name': 'cpython',
 'implementation_version': '3.7.2',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.19.15-300.fc29.x86_64',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Mon Jan 14 16:32:35 UTC 2019',
 'python_full_version': '3.7.2',
 'python_version': '3.7',
 'sys_platform': 'linux'}

System environment variables:

LS_COLORS
SSH_CONNECTION
LANG
HISTCONTROL
HOSTNAME
XDG_SESSION_ID
USER
SELINUX_ROLE_REQUESTED
PWD
HOME
SSH_CLIENT
SELINUX_LEVEL_REQUESTED
SSH_TTY
MAIL
TERM
SHELL
XMODIFIERS
SELINUX_USE_CURRENT_RANGE
SHLVL
LOGNAME
DBUS_SESSION_BUS_ADDRESS
XDG_RUNTIME_DIR
PATH
HISTSIZE
LESSOPEN
_
OLDPWD
PIP_DISABLE_PIP_VERSION_CHECK
PYTHONDONTWRITEBYTECODE
PIP_SHIMS_BASE_MODULE
PIP_PYTHON_PATH
PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:
Debug–specific environment variables:

PATH: /home/kus/.local/bin:/home/kus/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
SHELL: /bin/bash
LANG: en_US.UTF-8
PWD: /home/kus/src/hoback

Contents of Pipfile ('/home/kus/src/hoback/Pipfile'):
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
attrs = "*"
pendulum = "*"
pytest = "*"
dotenv = "*"
requests = "*"

[requires]
python_version = "3.7"

[kus@mcny hoback]$ cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
attrs = ""
pendulum = ""
pytest = ""
dotenv = ""
requests = "*"
[requires]
python_version = "3.7"
[kus@mcny hoback]$ pipenv install
Creating a virtualenv for this project…
Pipfile: /home/kus/src/hoback/Pipfile
Using /usr/bin/python3 (3.7.2) to create virtualenv…
⠸ Creating virtual environment...Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/kus/.local/share/virtualenvs/hoback-lLNYaQ2O/bin/python3
Also creating executable in /home/kus/.local/share/virtualenvs/hoback-lLNYaQ2O/bin/python
Installing setuptools, pip, wheel...done.
✔ Successfully created virtual environment!
Virtualenv location: /home/kus/.local/share/virtualenvs/hoback-lLNYaQ2O
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in
main()
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpdljz01kbbuild/dotenv/
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in
main()
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/usr/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/usr/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/usr/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpdljz01kbbuild/dotenv/

Hi,
I had a similar issue trying to install fasttext. I used python 3.6, pipenv 2018.11.26
Here's the output:
Installing fasttext… Adding fasttext to Pipfile's [packages]… ✔ Installation Succeeded  Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✘ Locking Failed!  Traceback (most recent call last):   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 126, in <module>     main()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 119, in main     parsed.requirements_dir, parsed.packages)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 85, in _main     requirements_dir=requirements_dir,   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 69, in resolve     req_dir=requirements_dir   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps     req_dir=req_dir,   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps     resolved_tree = resolver.resolve()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 385, in resolve     results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve     has_changed, best_matches = self._resolve_one_round()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round     for dep in self._iter_dependencies(best_match):   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies     dependencies = self.repository.get_dependencies(ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies     legacy_results = self.get_legacy_dependencies(ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies     results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs     results = resolver._resolve_one(reqset, ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one     abstract_dist = self._get_abstract_dist_for(req_to_install)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for     self.require_hashes   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement     abstract_dist.prep_for_dist(finder, self.build_isolation)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist     self.req.run_egg_info()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info     command_desc='python setup.py egg_info')   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess     % (command_desc, proc.returncode, cwd)) pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/0p/jzqrs8f13ng487wzp2s9v55m2t7yz3/T/tmprugebpakbuild/fasttext/ File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 126, in <module>     main()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 119, in main     parsed.requirements_dir, parsed.packages)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 85, in _main     requirements_dir=requirements_dir,   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 69, in resolve     req_dir=requirements_dir   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps     req_dir=req_dir,   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps     resolved_tree = resolver.resolve()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 385, in resolve     results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve     has_changed, best_matches = self._resolve_one_round()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round     for dep in self._iter_dependencies(best_match):   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies     dependencies = self.repository.get_dependencies(ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies     legacy_results = self.get_legacy_dependencies(ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies     results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs     results = resolver._resolve_one(reqset, ireq)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one     abstract_dist = self._get_abstract_dist_for(req_to_install)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for     self.require_hashes   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement     abstract_dist.prep_for_dist(finder, self.build_isolation)   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist     self.req.run_egg_info()   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info     command_desc='python setup.py egg_info')   File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess     % (command_desc, proc.returncode, cwd)) pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/0p/jzqrs8f13ng487wzp2s9v55m2t7yz3/T/tmprugebpakbuild/fasttext/

I am fairly confident these are fixed in master, try pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv and let me know if that works
thanks!

I am fairly confident these are fixed in master, try pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv and let me know if that works
thanks!

Thanks! I have tried this but it stays in the cloning stage without any progress:
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Obtaining pipenv from git+https://github.com/pypa/pipenv.git@master#egg=pipenv
Cloning https://github.com/pypa/pipenv.git (to revision master) to ./src/pipenv

Ah if you are cloning in china it will be quite slow, apologies. I will test this for you

I can actually replicate this one, I think it has to do with trying to resolve sdists using the older approach with the vendored version of pip we have (it's still causing problems)
I can replicate this 100% of the time in docker using this dockerfile (wheel built from master)
FROM python:3.7.2

ENV PYTHONUNBUFFERED 1
RUN set -ex && mkdir -p /app
WORKDIR /app
COPY Pipfile .
COPY pipenv-2018.11.27.dev0-py3-none-any.whl .

RUN apt-get update && apt-get install -y \
    sudo && apt-get install -y \
    git
RUN set -ex && python3 -m pip install --upgrade pipenv-2018.11.27.dev0-py3-none-any.whl
# COPY Pipfile.lock .
# Install python requirements
RUN pipenv install

And this pipfile:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
attrs = "*"
pendulum = "*"
pytest = "*"
dotenv = "*"
requests = "*"

[requires]
python_version = "3.7"

I should point out that this specific issue is due to dotenv referring to a 2015 package which has a setup.py which attempts to import the package it is building in order to determine the version information.  This is not an accepted practice and will likely continue to break dependency resolution in various ways, and there is no real way to identify this on the fly. I'm going to close this now as the issue with logging is tracked in some other places

cannot install grpc, others just fine, fresh pipenv/ python 3.7.4
pipenv install grpc
Installing grpc…
Adding grpc to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock (5b5364) out of date, updating to (444a6d)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in
main()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpi_4b2s7cbuild/grpc/
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in
main()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
parsed.requirements_dir, parsed.packages)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
requirements_dir=requirements_dir,
File "/home/user/.local/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
req_dir=requirements_dir
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
req_dir=req_dir,
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
resolved_tree = resolver.resolve()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
legacy_results = self.get_legacy_dependencies(ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
self.require_hashes
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
abstract_dist.prep_for_dist(finder, self.build_isolation)
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
self.req.run_egg_info()
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
command_desc='python setup.py egg_info')
File "/home/user/.local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
% (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpi_4b2s7cbuild/grpc/

Same error in the installation of pyspider / python 3.7.4
Installing pyspider…
Adding pyspider to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
    self.require_hashes
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpn9iwk864build/pycurl/
File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
    self.require_hashes
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/home/cjchengtw/.local/pipx/venvs/pipenv/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /tmp/tmpn9iwk864build/pycurl/

Cannot install:
pipenv install tensorflow-gpu~=1.14

When will this be fixed? Most of my environments break!

Linux B85M-DS3H-A 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Confirming the github trick posted by techalchemy
sudo apt-get install python3.7
sudo apt-get install python3.7-dev
which pipenv # This was pointing to /usr/local/bin/pipenv
eval "$(pyenv init -)"
pip install -U pipenv  # this put it to /home/my_sweet_home/.pyenv/shims/pipenv
which pipenv
pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv #after this
pipenv install numpy # this worked
$ pipenv install --dev
Installing dependencies from Pipfile.lock (f3ffa0)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 54/54 — 00:00:09
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

This took way too long but... Now all works!

Linux B85M-DS3H-A 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Confirming the github trick posted by techalchemy
sudo apt-get install python3.7
sudo apt-get install python3.7-dev
which pipenv # This was pointing to /usr/local/bin/pipenv
eval "$(pyenv init -)"
pip install -U pipenv  # this put it to /home/my_sweet_home/.pyenv/shims/pipenv
which pipenv
pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv #after this
pipenv install numpy # this worked
$ pipenv install --dev
Installing dependencies from Pipfile.lock (f3ffa0)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 54/54 — 00:00:09
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

This took way too long but... Now all works!

Something in this worked to fix my issue. It seems that if you install pipenv incorrectly, it will cause other issues.

I am fairly confident these are fixed in master, try pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv and let me know if that works
thanks!

python 3.7.4  x86_64 Linux 5.3.11-1-MANJARO
Real helpful! I fixed the same issue by doing this.

Still seeing the issue even with the version from master on Python 3.8.0 (with Python 3.7.4 everything is fine).
Trying to install psycopg2-binary package, Windows 10, Git Bash output below, cmd is the same.
Output
Ignat@4790K ~/Projects/misc/pipenvissue
$ pipenv --version
pipenv, version 2018.11.27.dev0

Ignat@4790K ~/Projects/misc/pipenvissue
$ pipenv install psycopg2-binary
Installing psycopg2-binary…
Adding psycopg2-binary to Pipfile's [packages]…
Installation Succeeded
Pipfile.lock (db4242) out of date, updating to (996803)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
 Locking...Building requirements...
Resolving dependencies...
Locking Failed!
Traceback (most recent call last):
  File "c:/users/ignat/projects/src/pipenv/pipenv/resolver.py", line 807, in <module>
    main()
  File "c:/users/ignat/projects/src/pipenv/pipenv/resolver.py", line 802, in main
    _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system, parsed.write,
  File "c:/users/ignat/projects/src/pipenv/pipenv/resolver.py", line 785, in _main
    resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages)
  File "c:/users/ignat/projects/src/pipenv/pipenv/resolver.py", line 746, in resolve_packages
    results, resolver = resolve(
  File "c:/users/ignat/projects/src/pipenv/pipenv/resolver.py", line 728, in resolve
    return resolve_deps(
  File "c:\users\ignat\projects\src\pipenv\pipenv\utils.py", line 1359, in resolve_deps
    results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
  File "c:\users\ignat\projects\src\pipenv\pipenv\utils.py", line 1078, in actually_resolve_deps
    resolver.resolve()
  File "c:\users\ignat\projects\src\pipenv\pipenv\utils.py", line 799, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\resolver.py", line 205, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\resolver.py", line 300, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\repositories\pypi.py", line 202, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\repositories\pypi.py", line 350, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\piptools\repositories\pypi.py", line 309, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\resolve.py", line 301, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\resolve.py", line 246, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\operations\prepare.py", line 342, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\operations\prepare.py", line 158, in prep_for_dist
    self.req.prepare_metadata()
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\req\req_install.py", line 530, in prepare_metadata
    self.run_egg_info()
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\req\req_install.py", line 606, in run_egg_info
    call_subprocess(
  File "c:\users\ignat\projects\src\pipenv\pipenv\patched\notpip\_internal\utils\misc.py", line 759, in call_subprocess
    raise InstallationError(
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in C:\Users\Ignat\AppData\Local\Temp\tmpbmojv35osource\psycopg2-binary\

Nevermind. Just noticed python 3.8 isn't listed as supported for the project. I have been using pipenv with it for quite some time and this is the first time it fails. Took me by surprise, I guess I'll stay on 3.7 for a while longer...

Fails with fastText. Any fixes coming soon?
Installing fasttext…
Adding fasttext to Pipfile's [packages]…
✔ Installation Succeeded
Pipfile.lock (74255a) out of date, updating to (39863d)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
    self.require_hashes
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/by/fzpjpg4n2fl0pjs76_0pc7sh0000gn/T/tmpom_xfawsbuild/pyfasttext/
File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 85, in _main
    requirements_dir=requirements_dir,
  File "/usr/local/lib/python3.7/site-packages/pipenv/resolver.py", line 69, in resolve
    req_dir=requirements_dir
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 726, in resolve_deps
    req_dir=req_dir,
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for
    self.require_hashes
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/local/lib/python3.7/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/by/fzpjpg4n2fl0pjs76_0pc7sh0000gn/T/tmpom_xfawsbuild/pyfasttext/

I've run into this (with the version from PyPI) and found a few things. The main problem is that the code running setup.py does not capture the stdout+stderr so it's pretty hard to figure out what's going wrong. (Though I've checked the code in utils.py and, at a first sight, it does try to print the subprocess stdout+stderr, still it does not happen. Both are just empty, though in my case I was able to figure out, run pip manually and see the error message.)
Now what happened in my case is that I was trying to install a package and then the above error happened but with another package. (To be more specific, I installed openpyxl and then got the above error message referring to locustio which I had installed quite a long ago.) Then I tried pipenv lock and got the same message.
Turns out that I had locustio as locustio = "*" (i.e. it wasn't pinned) and the newest version is not compatible with the python version of the virtualenv (3.5 vs 3.6). I learned this by trying to upgrade it with pip (just in case that solves the problem). That is the error message that was swallowed by pipenv.
And the solution was to pin the offending package (based on the suggestion from setup.py) at a lower version. This may very well solve the issue temporarily for everyone.
Now the big question is (and this might be the root cause for all the above errors): why does pipenv lock try to install a newer version of a package than what is in the virtualenv currently?
I've double checked and if I unpin locustio then I have the error if I pin it at the correct version (for my python version) then locking completes without any problem. (Again: I'm not upgrading locust, just doing a lock!)

For anyone having this problem:

try to install the offending package with pip into the same virtualenv (be sure to use the same version specifier as in the Pipfile, if you just have *, then do a pip install -U <package_name>)
you'll probably see an error message when pip tries to run setup.py (this should be shown by pipenv). Act on this. If it's a compatibility warning then pin your package in your Pipfile accordingly. Yes, even if you were just trying to manually do a lock
install/lock

Ooh. This list of incompatible libraries is a deal breaker here. Especially considering pip install ran fine in my case. It would be nice if pipenv can do something sane here or at least not bomb out with an unintelligible error.

Hi,
I had a similar issue trying to install fasttext. I used python 3.6, pipenv 2018.11.26
Here's the output:
Installing fasttext… Adding fasttext to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✘ Locking Failed! Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 126, in <module> main() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 119, in main parsed.requirements_dir, parsed.packages) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 85, in _main requirements_dir=requirements_dir, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 69, in resolve req_dir=requirements_dir File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps req_dir=req_dir, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps resolved_tree = resolver.resolve() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 385, in resolve results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve has_changed, best_matches = self._resolve_one_round() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round for dep in self._iter_dependencies(best_match): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies dependencies = self.repository.get_dependencies(ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies legacy_results = self.get_legacy_dependencies(ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs results = resolver._resolve_one(reqset, ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one abstract_dist = self._get_abstract_dist_for(req_to_install) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for self.require_hashes File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement abstract_dist.prep_for_dist(finder, self.build_isolation) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist self.req.run_egg_info() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info command_desc='python setup.py egg_info') File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess % (command_desc, proc.returncode, cwd)) pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/0p/jzqrs8f13ng487wzp2s9v55m2t7yz3/T/tmprugebpakbuild/fasttext/ File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 126, in <module> main() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 119, in main parsed.requirements_dir, parsed.packages) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 85, in _main requirements_dir=requirements_dir, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/resolver.py", line 69, in resolve req_dir=requirements_dir File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 726, in resolve_deps req_dir=req_dir, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps resolved_tree = resolver.resolve() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/utils.py", line 385, in resolve results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve has_changed, best_matches = self._resolve_one_round() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round for dep in self._iter_dependencies(best_match): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies dependencies = self.repository.get_dependencies(ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies legacy_results = self.get_legacy_dependencies(ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs results = resolver._resolve_one(reqset, ireq) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one abstract_dist = self._get_abstract_dist_for(req_to_install) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 213, in _get_abstract_dist_for self.require_hashes File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement abstract_dist.prep_for_dist(finder, self.build_isolation) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist self.req.run_egg_info() File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 474, in run_egg_info command_desc='python setup.py egg_info') File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 705, in call_subprocess % (command_desc, proc.returncode, cwd)) pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/0p/jzqrs8f13ng487wzp2s9v55m2t7yz3/T/tmprugebpakbuild/fasttext/

I got the same error:

(tascout-backend) Allans-MacBook-Pro:tascout-backend allan$ pipenv install --dev
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
requirements.txt found, instead of Pipfile! Converting…
✔ Success!
Warning: Your Pipfile now contains pinned versions, if your requirements.txt did.
We recommend updating your Pipfile to specify the "*" version, instead.
Pipfile.lock (7032d5) out of date, updating to (51d910)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
✘ Locking Failed!
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 118, in main
    _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system,
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 78, in _main
    results = resolve(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 61, in resolve
    return resolve_deps(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 718, in resolve_deps
    resolved_tree, hashes, markers_lookup, resolver = actually_resolve_deps(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 211, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 470, in run_egg_info
    call_subprocess(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 703, in call_subprocess
    raise InstallationError(
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/42/9dlb7ml91z59hnkgw1t52gr40000gn/T/tmp6t6byeuwbuild/deepstreampy/
File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 118, in main
    _main(parsed.pre, parsed.clear, parsed.verbose, parsed.system,
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 78, in _main
    results = resolve(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/resolver.py", line 61, in resolve
    return resolve_deps(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 718, in resolve_deps
    resolved_tree, hashes, markers_lookup, resolver = actually_resolve_deps(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 480, in actually_resolve_deps
    resolved_tree = resolver.resolve()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/utils.py", line 385, in resolve
    results = self.resolver.resolve(max_rounds=environments.PIPENV_MAX_ROUNDS)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
    has_changed, best_matches = self._resolve_one_round()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 206, in _resolve_one_round
    for dep in self._iter_dependencies(best_match):
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/resolver.py", line 301, in _iter_dependencies
    dependencies = self.repository.get_dependencies(ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 234, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 426, in get_legacy_dependencies
    results, ireq = self.resolve_reqs(download_dir, ireq, wheel_cache)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 297, in resolve_reqs
    results = resolver._resolve_one(reqset, ireq)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 260, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/resolve.py", line 211, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 294, in prepare_linked_requirement
    abstract_dist.prep_for_dist(finder, self.build_isolation)
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/operations/prepare.py", line 127, in prep_for_dist
    self.req.run_egg_info()
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/req/req_install.py", line 470, in run_egg_info
    call_subprocess(
  File "/usr/local/Cellar/pipenv/2018.11.26_3/libexec/lib/python3.8/site-packages/pipenv/patched/notpip/_internal/utils/misc.py", line 703, in call_subprocess
    raise InstallationError(
pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in /var/folders/42/9dlb7ml91z59hnkgw1t52gr40000gn/T/tmp6t6byeuwbuild/deepstreampy/
(tascout-backend) Allans-MacBook-Pro:tascout-backend allan$

I figured out what was wrong for me by updating one of the calls in piipenv to set show_stdout=True from False, and then I found out that one of the packages I needed was looking for cython and didn't have it as a setup requirement

I figured out what was wrong for me by updating one of the calls in piipenv to set show_stdout=True from False, and then I found out that one of the packages I needed was looking for cython and didn't have it as a setup requirement

have u fixed?

Anyone - this is a problem for me at this time.  What is the status of a solution?  If someone has a work around, please share - other than skipping pipenv all together

I am fairly confident these are fixed in master, try pip install -e git+https://github.com/pypa/pipenv.git@master#egg=pipenv and let me know if that works
thanks!

doesnt exist

i cant run, i think the url has changed!


also ignore 'Release Engineering' for the regressions

Coverage remained the same at 48.843% when pulling ea91e7e5ac616774555c0e362cc62364316acb54 on sylvestre:master into c7c8255d64c7a1a5c2660559d00740b77585254f on mozilla:master.


[1.19 - Suggestion] Config for disabling pillage siege at night

Before starting, thank you for making this amazing mod. Me and my friends added this mod to custom modpack and really enjoying it.
But we dislike siege event because we can't prevent it no matter what light level or mobspawn preventing mod. So we added certain mod that prevent village zombie siege event and turn off every other mods config that generate simillar siege events.
So I was wondering if you could add some config to turn on/off pillager night siege event?
Thanks again.

Fixed: 1.19.2: c7b81ae, 1.18.2: 7de592e, 1.16.5: 7afe6fb


What is duktape's policy when receiving signals?

I'm curious about correctly writing an FFI to duktape from GHC Haskell. There are other Haskell bindings, but I'm not sure whether they're correct or just coincidentally working OK. I don't have much experience with signal handling in C, so I'm going off what I've read.
The RTS uses signals to trigger context switches and other threading features. In particular, using the system timers API, SIGVTALRM will be triggered on a regular basis. The C code being called apparently needs to be aware of this.
I believe it's possible for me to write some small wrapper C code to register a signal mask to prevent these signals from bothering the duktape functions.

Secondly, when declaring a foreign function, I can choose whether it is interruptible or not. If I mark it interruptible, that means that if I terminate the Haskell (green) thread using regular Haskell code, SIGPIPE will be signalled to the OS thread (see also). What does duktape do when it receives SIGPIPE, and SIGINT for that matter? Is it manifested as a JS exception? What's the relationship between "protected" functions and non-protected ones in this setting? I've read through the user guide a few times, but wasn't able to find clarity on this.

Use-case: I'd like to be able to execute PureScript from my Haskell code to have server-side rendering and validation as well as front-end. I want to do one-shot runs of code. Ideally I could execute the JS via duktape, which has fine-grained control over what functionality is available (e.g. I need timers API (setTimeout, used for asynchronous runs by a library I'm using, but not actual waiting), but not I/O).
However, due to the messiness in dealing with GHC's RTS, I'm wondering whether correctness-wise it may be easier to launch a nodejs program as a pipe and parse JSON output? :thinking: But then you have a much heavier dependency that needs to be kept around somewhere to be launched, etc. Trade-offs.

It's up to each Duktape/C native binding to handle signals internally as they see fit. Duktape itself doesn't care about signals, it doesn't register any signal handlers for example.

OK, that simplifies things a lot. Thank you!

Forgot to mention one place where Duktape does interact with signal handling: setjmp/longjmp. Current defaults are:

_setjmp(): macOs, iOS, cygwin
setjmp(): other platforms

You can also select the provider by overriding DUK_SETJMP() and DUK_LONGJMP() in duk_config.h, e.g. sigsetjmp() may be useful if you want to explicitly control signal mask handling.

OK, so I could:

Set a mask on SIGVTALARM before calling any Duktape function (particularly the eval).
I make sure to override the setjmp/longjmp macros with sigsetjmp/siglongjmp.
I can use DUK_USE_EXEC_TIMEOUT_CHECK to implement "cancel"/interrupting an eval call.

Instead of running Duktape on a thread that may be killed (which triggers SIGPIPE), I would instead run it in a "background" thread that's paying attention to a "timeout :: Bool" value. A strawman thread that serves as a stand-in for Duktape would receive the Haskell kill exception and set the "timeout=True" and wait for the background thread to terminate in due course.
After the timeout occurs and the RangeError exception has propagated back up to a duk_peval-or-equivalent call, I presume the heap can be used again? Or should I destroy the heap and start with a fresh one next time I want to evaluate something?

Sounds good to me, once the RangeError propagates out to a protected call, you can keep on using the heap normally as long as you ensure the DUK_USE_EXEC_TIMEOUT_CHECK() behavior is reset for the next call (i.e. it won't timeout right away).

Thanks, that's very helpful. :+1:

When the DUK_USE_EXEC_TIMEOUT_CHECK -macro is executed by the bytecode executor, is it safe to call a global function object within the duk_context being interrupted?

The interrupt check is really quite simple at present and there has been no thought about executing Duktape calls within the interrupt check.
But, I think calling a function from the interrupt check should work fine because a function may be get called for various other reasons within the bytecode executor - e.g. a property read may invoke a Proxy trap, and the bytecode executor is generally unaware of the situation.
If this doesn't work, it should be relatively easy to fix because the executor must tolerate recursive calls elsewhere.


add support for newer releases of node_exporter

Similar to PR #2 - this PR fixes the path for versions of node_exporter >= 0.12. It keeps the default as 0.11.0 for backwards compatiability and adds some spec tests to help ensure we're doing the right thing.

Thank you, I am looking at it right now.


Update: 1.21.2

Extremely work in progress and uses a version of Noxesium published to my maven, though I'd thought I'd share this as a jumping off point for 1.21.2.
Compiles but crashes when using the navigator item, perhaps something to do with update FixOffhandSwapMixin?

heya, thanks for the PR, ngl i didn't see this when i started my update to 1.21.3, but it was useful in making sure i implemented everything correctly lol
thanks for the contribution <33


postcss and postcss-jit-props integration

I was wondering if there were ever any thoughts of integrating this with postcss and postcss-jit-props to remove unused variable definitions from the final project.
This would make the experience as simple as tailwindcss with the benefit of using plain CSS only.

I’d definitely be open to a PR for a bundled postcss plugin, but tbh I think it would be of pretty limited benefit, you’d be trimming a couple of bytes of CSS in most cases. The whole default library weighs a few kb (unlike pre-jIt tailwind) and you can strip modules with one line in config


Pipeline placeholder ^^ etc.

Hi,
I think it would be a good idea to have the possiblity of aligning Civet more closely to the pipeline operator proposal (hack style).
I think the only thing needed would be a configuration option to change something like:
pp:= & |> (JSON.stringify ., null, 2) |> console.log
to
pp:= & |> (JSON.stringify ^^, null, 2) |> console.log
I also think it's a bit more readable.
Any thoughts welcome :)

The TC39 pipe proposal actually uses % currently, though there's various other notation mentioned. (I think ^^ is an older proposal. Note that it currently means logical xor in Civet, though that might be fine parsing wise, just confusing.)
TC39's % placeholder also has a different meaning than our current placeholders . and &: it can only be used in pipelines, and the arrow function gets pulled all the way out to just before the pipeline. See https://github.com/DanielXMoore/Civet/issues/75#issuecomment-1365340146
It's interesting to look at the examples from the proposal. All of them currently can be written using . and/or &, but it depends on the example. Here's one example that needs both:
return links
  |> Object.keys(.).map(function (rel) {
    return '<' + links[rel] + '>; rel="' + rel + '"';
  })
  |> link + &.join(', ')
  |> this.set('Link', .);

Now that we have good general support for placeholders, I wonder if we should add a pipeline-specific one, in particular to align with the TC39 pipe proposal as you say. Simple example:
data |> f(%) + g(%)
↓↓↓
f(data) + g(data)

This example can't be written with & (it won't pull outside the function calls) nor with . (each call makes its own function). And in general it could be nice to work with pipelines without having to think about the intricacies of & vs. ., and just have a placeholder that refers to the previous pipeline result.
I think the only hard part is we need to choose a placeholder syntax. % seems OK. ^ and <, or ^^ or <<, make some sense in the ways they point, though we've discussed using ^ for other things (implicit imports). I wonder if there's something obviously syntactically related to the pipeline |> itself.
Related, another option we've discussed (also mentioned in the TC39 bikeshedding issue) is
data |x> f(x) + g(x)
↓↓↓
f(data) + g(data)

where you can put any identifier (e.g. $) in between | and >.

I'm not sure about that paren operator, but I'd definitely like to support standard JS destructuring:
[1,2] |[a,b]> a + b // 3
["head","tail","tail"] |[h,...t]> [h,t] // ["head",["tail","tail"]]
[1,2,10] |$> $[0]+$[2] // 11
{a:1,b:2,c:10} |{a,b}> a+b // 3

Admittedly |x> looks a little unwieldly when it grows to a destructuring pattern.
This notation is mentioned in https://github.com/tc39/proposal-pipeline-operator/issues/91#issuecomment-363092439 so it's plausibly being considered for the TC39 proposal. Although there are hundreds of proposals in that issue, so who knows what they will decide.
@STRd6 What do you think of this notation? Worth trying? It is a little funny that |x> is just shorthand for |> (x) =>, but it is shorter, and it will be easy to implement.

@edemaine if you're excited about trying |id> it go for it! Destructuring in there is fine as well. We probably won't really know the pros and cons until we try out using it ourselves.


Add document structure to Testing Applications

Design and Concepts of Testing Applications in the MW SDN shall be described in a set of documents linked with Testing Applications.

[ ] Complement the set of documents in markdown format
[ ] Add just a headline and a couple of bullet points that are describing the planned content into the respective document
[ ] Link these documents with Testing Applications

Please, take existing chapters (e.g. Specifying Applications) as a reference.

To be assigned to RajithaPitta as soon as she accepted the invite for Collaborator.


KeyError on self._in_use_connections.remove(connection)

Version: 2.10.5
Platform: Python 2.7, Ubuntu
This is a very rare occurrence on a very high traffic server but I receive a key error occasionally from here:
self._in_use_connections.remove(connection)
https://github.com/andymccurdy/redis-py/blob/2.10.5/redis/connection.py#L913
I haven't been able to reproduce this in testing or root out the cause.
Theories:
self._available_connections is a list so you could  append in the same connection more then once. Then when you try to self._in_use_connections.add(connection)
https://github.com/andymccurdy/redis-py/blob/2.10.5/redis/connection.py#L898
You get no error for using the same connection. Until you try to release _in_use_connections is a set so were the add() multiple times desen't raise an error remove() will.

Can you elaborate on your setup a little more? Are you using redis-py in a forked or multiprocess or threaded environment?

So this is a Flask(Nginx+) I think threaded Is the correct answer for this.

I have the same problem with python 2.7 + Django + uwsgi.
class RedisManager(Singleton):
    redis_conf = settings.BASE_PLUGIN_REDIS_CONFIG
    info_connection_pool = redis.ConnectionPool(
        host=redis_conf['info']['host'], port=redis_conf['info']['port'], decode_responses=True, db=0)

    @property
    def info_client(self):
        return redis.Redis(connection_pool=self.info_connection_pool)

Sometimes I get the following error
  File "/media/disk1/fordata/web_server/project/paas-pcs-platform/1.0.796-preonline/bem/base_plugin/util.py", line 62, in __init__
    self._init_redis_connection_pool()
  File "/media/disk1/fordata/web_server/project/paas-pcs-platform/1.0.796-preonline/bem/base_plugin/util.py", line 67, in _init_redis_connection_pool
    assert redis.Redis(connection_pool=self.status_connection_pool).ping(
  File "/data/web_server/project/paas-pcs-platform/venv/lib/python2.7/site-packages/redis/client.py", line 1037, in ping
    return self.execute_command('PING')
  File "/data/web_server/project/paas-pcs-platform/venv/lib/python2.7/site-packages/redis/client.py", line 784, in execute_command
    pool.release(connection)
  File "/data/web_server/project/paas-pcs-platform/venv/lib/python2.7/site-packages/redis/connection.py", line 1032, in release
    self._in_use_connections.remove(connection)
KeyError: Connection<host=xxxxx,port=xxxxx,db=0>

I guess the problem is caused by the Shared connection pool used by workers ？

We get the same issue. Forked environment, all connections are made after fork.

@kmerenkov What version of redis-py are you using? 3.2.0+ fixes a lot of the problems with connections in forked processes.

What version of redis-py are you using?

3.2.1

 def reset(self):
        self.pid = os.getpid()
        self._created_connections = 0
        self._available_connections = []
        self._in_use_connections = set()
        self._check_lock = threading.Lock()

    def _checkpid(self):
        if self.pid != os.getpid():
            with self._check_lock:
                if self.pid == os.getpid():
                    # another thread already did the work while we waited
                    # on the lock.
                    return
                self.reset()

    def get_connection(self, command_name, *keys, **options):
        "Get a connection from the pool"
        self._checkpid()
        try:
            connection = self._available_connections.pop()
        except IndexError:
            connection = self.make_connection()

I guess there's one case, thread A and B, A get lock and then call reset(), when A set pid with self.pid = os.getpid() but not self._in_use_connections = set(), B enter the _checkpid() and fail to meet the condition  if self.pid != os.getpid(), so B return and get connection from old _available_connections


Use tejado/pgoapi as requirement instead of keeping a local copy

A quick diff between tejado's master and your feature-multiple-accounts branch shows mostly whitespace and import differences, and the PGoApiWorker class that was added to pgoapi.py.
Maybe the threading code should go somewhere else, so you can remove the pgoapi directory and add tejado/pgoapi.git to requirements.txt. This would make for an even cleaner and smaller codebase, and easier fixes from upstream.

We basically rebuilt pgoapi to be multithreaded and to use multiple accounts. I'm not entirely sure if it is possible to write a top-level api class without modifying a few things deep within pgoapi, however, I will take a look at it.

The PokemonGo-Map people managed it (without too many changes) in their pgoapi-purge branch, and modrzew's pokeminer also uses multiple workers with the upstream pgoapi.
I'd be happy to give this a try, but I'd rather wait out the current API issue.

We did too many changes to use it as a dependency.


[HUDI-696] Add unit test for CommitsCommand

What is the purpose of the pull request
Fix bug of command commits compare
Add unit test for CommitsCommand
Brief change log
(for example:)

Add unit test for CommitsCommand

Verify this pull request
This pull request is a trivial rework / code cleanup without any test coverage.
Committer checklist

[x] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #1724 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

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

@leesf : Had rebase, please review again when free.


Update to rollups 0.9.0

Closes cartesi-corp/honeypot#8
Closes cartesi-corp/honeypot#25
Closes cartesi-corp/honeypot#29
Closes cartesi-corp/honeypot#18
Closes #4

I still have to sync some configuration changes which are still in progress as part of the updats being done at rollups-examples.
Besides, I noticed that I had to prepend the compose commands with the definition of variable NETWORK to properly load a validator node on any of the teststets as follows:
NETWORK=sepolia docker compose --env-file env.sepolia -f docker-compose-testnet.yml up

This still bares investigation as setting an environment file should have sufficed.

There are a number of things to fix, especially related to:

Using correct docker image versions

"DELETE" commit removed, uncovering the final image names :-)

Adequate instructions for running things on testnets

Changes ongoing

Btw, just mentioning that it looks like there is no issue with the NETWORK env var, things are working as expected

Thanks for the update but sorry for letting you know it was fine earlier!

Commits have been squashed. PR ready to be merged.


updated OpenLink Virtuoso; fixed some other typos

Uh I have conflicts here...

Colliding inserts should be easily handled on your side.... but there it is.  The BBoxDB addition is orthogonal to my edits.


Extension com.chamburr.Glance.QLPlugin not found

Environment

App version? 1.4.1
macOS version? 12.2.1

Bug Information

What are you trying to do?
Preview any supported file
What's the expected behavior?
Appears quicklook window with the file's content
What's the actual behavior?
Appears quicklook window, but no content is displayed

Hello, this issue usually appears when Glance is not installed properly. Please try to delete /Applications/Glance.app and install again by follow the steps here. Let me know if this helped!

Restart before installation fixed the problem. Now everything works fine. Thanks!

You can also force the system to reload the quicklook generator list by running the following command:
qlmanage -r


Resize and StartStop Schedule

HI,
I am trying to schedule and instance to run from 6am to 10pm daily as office hour. But on weekday, it use t2.large instance and weekend use t2.micro.
i set the following
"periods": {
"SS": [
<EMAIL_ADDRESS><EMAIL_ADDRESS>]
Where office-hours and weekend-office-hours is 05:59 - 21.59.
But the Instance start at midnight.
Can you please help out?
Thank You

Hi can you please try to create the 2 periods and the scheduler in the same manner as described in he sample below?
$ scheduler-cli create-period --stack InstanceScheduler --name office-hours-period --begintime 05:59 --endtime 21:59 --weekdays mon-fri
{
   "Period": {
      "Name": "office-hours-period",
      "Endtime": "21:59",
      "Type": "period",
      "Begintime": "05:59",
      "Weekdays": [
         "mon-fri"
      ]
   }
}
$ scheduler-cli create-period --stack InstanceScheduler --name weekend-office-hours-period --begintime 05:59 --endtime 21:59 --weekdays sat-sun
{
   "Period": {
      "Name": "weekend-office-hours-period",
      "Endtime": "21:59",
      "Type": "period",
      "Begintime": "05:59",
      "Weekdays": [
         "sat-sun"
      ]
   }
}
$ scheduler-cli create-schedule --stack InstanceScheduler --name office-hours-schedule --periods weekend-office-hours-period<EMAIL_ADDRESS>--timezone Europe/London
{
   "Schedule": {
      "RetainRunning": true,
      "Enforced": true,
      "Name": "office-hours-schedule",
      "UseMetrics": true,
      "StopNewInstances": true,
      "Periods": [
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>      ],
      "UseMaintenanceWindow": true,
      "Timezone": "Europe/London",
      "Type": "schedule"
   }
}
$ scheduler-cli describe-schedule-usage --stack InstanceScheduler --name office-hours-schedule  --startdate 20181101 --enddate 20181107
{
   "Usage": {
      "2018-11-07": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Office-hours-period": {
               "Begin": "11/07/18 05:59:00",
               "End": "11/07/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-06": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Office-hours-period": {
               "Begin": "11/06/18 05:59:00",
               "End": "11/06/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-05": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Office-hours-period": {
               "Begin": "11/05/18 05:59:00",
               "End": "11/05/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-04": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Weekend-office-hours-period": {
               "Begin": "11/04/18 05:59:00",
               "End": "11/04/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-03": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Weekend-office-hours-period": {
               "Begin": "11/03/18 05:59:00",
               "End": "11/03/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-02": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Office-hours-period": {
               "Begin": "11/02/18 05:59:00",
               "End": "11/02/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      },
      "2018-11-01": {
         "BillingHours": 16,
         "RunningPeriods": {
            "Office-hours-period": {
               "Begin": "11/01/18 05:59:00",
               "End": "11/01/18 21:59:00",
               "BillingHours": 16,
               "BillingSeconds": 57600
            }
         },
         "BillingSeconds": 57600
      }
   },
   "Schedule": "office-hours-schedule"
}

HI, The following is what i wrote. but it doesn't seem to be shut down at 21.59. it just switch the instance type when it is on the begin type and what is show on log.
{
"begintime": {
"S": "05:59"
},
"description": {
"S": "Office hours period"
},
"endtime": {
"S": "21.59"
},
"name": {
"S": "office-hours-period"
},
"type": {
"S": "period"
},
"weekdays": {
"SS": [
"mon-fri"
]
}
}

{
"begintime": {
"S": "05:59"
},
"description": {
"S": "weekend office hours period"
},
"endtime": {
"S": "21.59"
},
"name": {
"S": "weekend-office-hours-period"
},
"type": {
"S": "period"
},
"weekdays": {
"SS": [
"sat-sun"
]
}
}

{
"description": {
"S": "Office hour in Sydney(Australia)"
},
"enforced": {
"BOOL": true
},
"name": {
"S": "OfficeHour-OnOff-hours"
},
"periods": {
"SS": [
<EMAIL_ADDRESS><EMAIL_ADDRESS>]
},
"retain_running": {
"BOOL": true
},
"stop_new_instances": {
"BOOL": true
},
"timezone": {
"S": "Australia/Sydney"
},
"type": {
"S": "schedule"
}
}
00:15:46
2018-11-04 - 13:15:46.580 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
2018-11-04 - 13:15:46.580 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : Current state is running, instance type is t2.micro, schedule is "OfficeHour-OnOff-hours"
2018-11-04 - 13:15:47.634 - DEBUG : Current state is running, instance type is t2.micro, schedule is "OfficeHour-OnOff-hours"
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : Time used to determine desired for instance is Mon Nov 5 00:15:40 2018
2018-11-04 - 13:15:47.634 - DEBUG : Time used to determine desired for instance is Mon Nov 5 00:15:40 2018
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : Checking conditions for period "weekend-office-hours-period"
2018-11-04 - 13:15:47.634 - DEBUG : Checking conditions for period "weekend-office-hours-period"
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : [stopped] Weekday "mon" not in weekdays (sat-sun)
2018-11-04 - 13:15:47.634 - DEBUG : [stopped] Weekday "mon" not in weekdays (sat-sun)
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : Checking conditions for period "office-hours-period"
2018-11-04 - 13:15:47.634 - DEBUG : Checking conditions for period "office-hours-period"
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : [running] Weekday "mon" in weekdays (mon-fri)
2018-11-04 - 13:15:47.634 - DEBUG : [running] Weekday "mon" in weekdays (mon-fri)
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : [running] Time 00:15:40 is before starttime 05:59:00, returned state is any
2018-11-04 - 13:15:47.634 - DEBUG : [running] Time 00:15:40 is before starttime 05:59:00, returned state is any
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : "Any" state period found for current time in schedule "OfficeHour-OnOff-hours", desired state is any
2018-11-04 - 13:15:47.634 - DEBUG : "Any" state period found for current time in schedule "OfficeHour-OnOff-hours", desired state is any
00:15:47
2018-11-04 - 13:15:47.634 - DEBUG : Desired state for instance from schedule "OfficeHour-OnOff-hours" is any, last desired state was running, actual state is running
2018-11-04 - 13:15:47.634 - DEBUG : Desired state for instance from schedule "OfficeHour-OnOff-hours" is any, last desired state was running, actual state is running

Closing due to time elapsed since last correspondence. Please re-open this if you are still having an issue.


Add unit test coverage for all StreamFrameTypes

All stream frame types have a derived method called streamFrameType() that we need to add unit test coverage for. As part of this ticket, if there is any other derived business logic or otherwise in each StreamFrame we should add coverage for it.

This was resolved in 2e252c2 but I called out the wrong issue

This is complete and merged to master.


Deprecate BingMaps (ideally replace with AzureMaps)

Is your feature request related to a problem? Please describe.
Today I received the following email from Bing Maps:

On May 21, 2024, we shared our vision for a single enterprise mapping platform at Microsoft and that we are unifying our Bing Maps for Enterprise offering under Azure Maps. This means that going forward, Azure Maps will combine the best of Bing Maps for Enterprise and Azure Maps. Today we are announcing that as part of these unification efforts, Bing Maps for Enterprise will be retired. The ability to purchase Bing Maps for Enterprise SKUs and the availability of the Bing Maps for Enterprise services will end according to the following timeline:

Customers using Bing Maps for Enterprise Basic or Free license will no longer be able to use Bing Maps for Enterprise services beyond June 30, 2025.
(a) Basic / Free Licenses customers who would like to continue using enterprise maps from Microsoft are encouraged to move to Azure Maps before June 30, 2025.
(b) Existing Basic / Free Licenses customers who would like to continue using Bing Maps for Enterprise until the service end date of June 30, 2028, can upgrade to a paid Enterprise License by contacting<EMAIL_ADDRESS>before June 30, 2025.
Bing Maps for Enterprise services will retire, and support will end on June 30, 2028, and customers will no longer be able to use any of the Bing Maps for Enterprise services.

Describe the solution you'd like
In light of this I was wondering if it would be worth deprecating the BingMaps module so future projects don't build projects against an API which is shutting down?
Azure maps published their own OL module: https://github.com/azure-samples/azure-maps-openlayers/tree/main/ so ideally it would be nice if this could be moved into the core of OL to replace the BingMaps module?  The Microsoft module hasn't been updated for years and doesn't work with OL5+ without webpack fudges https://github.com/Azure-Samples/azure-maps-openlayers/issues/2.

We're going to do that eventually anyway. If someone considers this more urgent, we're happy to accept a pull request.

The plugin's code looked fairly old in a lot of places and overcomplicated.  Here's what I ended up doing in case this helps anyone else:
I created a factory for returning either the Bing or Azure tile layer tile-layer-factory.js:
// Accepts a provider ("bing" or "azure"), and an API key (Bing API key or Azure maps primary key)

import TileLayer from "ol/layer/Tile";
import BingMaps from "ol/source/BingMaps";
import XYZ from "ol/source/XYZ";

export default class TileLayerFactory {
  constructor(provider, providerApiKey) {
    this.provider = provider;
    this.providerApiKey = providerApiKey;
  }

  get tileLayer() {
    return new TileLayer({
      visible: true,
      preload: Infinity,
      source: this.#source,
    });
  }

  get #source() {
    switch (this.provider) {
      case "bing":
        return this.#bingSource;
      case "azure":
        return this.#azureSource;
      default:
        new Error(`Unknown tile provider: ${this.provider}`);
    }
  }

  get #bingSource() {
    return new BingMaps({ key: this.providerApiKey, imagerySet: "AerialWithLabelsOnDemand" });
  }

  get #azureSource() {
    const url = "https://atlas.microsoft.com/map/tile";
    const params = [
      `subscription-key=${this.providerApiKey}`,
      "api-version=2.0",
      "tilesetId=microsoft.imagery",
      "zoom={z}",
      "x={x}",
      "y={y}",
    ];
    const azureMapsUrlTemplate = `${url}?${params.join("&")}`;
    return new XYZ({ url: azureMapsUrlTemplate });
  }
}


Review the old branch previewTest

Check if the test creation/edition works on user tests.

Branch testPreview:

It works until the Update ScreenButton commit, after that the user test codes are lost

Bugs:

When you edit a task, the system duplicate it
Pre test and post test redirrect to a 'File excluded' view on Google Drive
Reports view show a loading that never stops
Answers and analytics views are empty (just a white background), even after an answer was submitted
The camera, audio, timer and screen record don't stop after submitting the answer
The answer don't save on the store or on firebase, so all the progress is losted
The UI is really bad, that
The recoreds aren't saved on the storage or in the store, they are just BLOB files

Files that we can use:

ViewTask.vue (settings about the tasks)
TipButton.vue
AudioButton.vue
CameraButton.vue
ScreenButton.view


Lift cr-section when it's attached to a header?

Making this video made me realise that some folks may find it more intuitive to mark a header as a cr-section rather than use a div:
---
title: "My doc"
---

Ad minim ipsum in in exercitation cupidatat est deserunt cupidatat.

## Start of scrollytelling {.cr-section}

Blah blah blah... @cr-thing1

[...]

## No more scrollytelling

Et veniam laborum aute pariatur veniam consequat dolor ullamco elit velit Lorem anim eiusmod.

Quarto already wraps headings and their following content into <section>s, but the attributes, classes and IDs attached to the heading stay with the heading itself, so if you try this with Quarto currently, it doesn't work. If we recognised this instance in Lua and moved the class up to the section, it could still function the same way. Although I'm not sure if that section processing has been done when our filter runs, so it might be more difficult — maybe you'd have to have to a secondary filter.
Anyway, what do you think of this, @andrewpbray? Not sure if it's intuitive to others or an idiosyncrasy of my thinking 😅

Hey, I kinda like this! I was tinkering around with using ## at the beginning of the project, inspired by revealjs, but I was using them for stickies. Without a closing delimiter, it didn't seem practical, but using them for the cr-section makes more sense.
One thing we'd have to decide: what do we do with the text of the l2 header? Is that a l2 header at the top of the narrative block? or a header that precedes the cr section? (the former seems more natural i think).
One thing that this requires, which is probably fine, is a closing l2 header if you want to transition back to normal html. Those might have l2 text, they might not, which means you'd likely get a decent number of closeread sections that look like this:
## {.cr-section}

Here is my thing. @cr-mything

##

Normal HTML...

And that's not soooo different from just using :::.