Missing info for package conflict

Issue description
When a dependency conflict occurs, on many occasions I see that there is not sufficient information to diagnose the conflict. This can sometimes occur when first installing a project, so I cannot run pipenv graph as no dependencies are installed (installation fails). For example, in the trace below we can see that pyspark==3.3.2 fails to install due to a conflict, but a conflict with what?
home$ pipenv install 'pyspark==3.3.2'
Loading .env environment variables...
Installing pyspark==3.3.2...
Resolving pyspark==3.3.2...
Adding pyspark to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock (3ffa3e) out of date, updating to (2149eb)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Resolving dependencies...
✘ Locking Failed!
⠏ Locking...
CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Cannot install -r /var/folders/ts/ypl0gvnn55z1y7gydrghpdxc0000gn/T/pipenv-2dq4knuw-requirements/pipenv-sdc6xfpf-constraints.txt (line 10), -r /var/folders/ts/ypl0gvnn55z1y7gydrghpdxc0000gn/T/pipenv-2dq4knuw-requirements/pipenv-sdc6xfpf-constraints.txt (line 12) and pyspark==3.3.2 because these package versions have conflicting dependencies.
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 704, in _main
[ResolutionFailure]:       resolve_packages(
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 662, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:       ^^^^^^^^
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/resolver.py", line 642, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1167, in resolve_deps
[ResolutionFailure]:       results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^^^^^^^^^^
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 948, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "/opt/homebrew/Cellar/pipenv/2023.7.23/libexec/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 690, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv run pip install <requirement_name> to bypass this mechanism, then run $ pipenv graph to inspect the versions actually installed in the virtualenv.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Expected result
The logs will show why the conflict occurs, i.e. what packages are conflicting.
Details
pipenv, version 2023.7.23

@boonware Have you tried running with --verbose or -v option?

Hi @matteius, I can confirm the same. I've reproduced it with a clean Docker machine with the following Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
dbt-core = "==1.6.0"
dbt-bigquery = "==1.6.0"
sqlfluff = "==2.2.1"
sqlfluff-templater-dbt = "==2.2.1"

[dev-packages]
data-diff = "==0.8.3"
dbt-osmosis = {version = "==0.11.23", extras = ["workbench"]}

[requires]
python_version = "3.11"

With pipenv 2023.07.23
> docker run --rm -it -v $(pwd):/app -w /app python:3.11-slim bash
> pip install pipenv==2023.07.23
> pipenv --version
pipenv, version 2023.7.23
> pipenv lock
Creating a virtualenv for this project...
Pipfile: /app/Pipfile
Using /usr/local/bin/python3 (3.11.4) to create virtualenv...
⠹ Creating virtual environment...created virtual environment CPython3.11.4.final.0-64 in 201ms
  creator CPython3Posix(dest=/root/.local/share/virtualenvs/app-4PlAip0Q, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
    added seed packages: pip==23.2.1, setuptools==68.0.0, wheel==0.41.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /root/.local/share/virtualenvs/app-4PlAip0Q
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
Resolving dependencies...
✘ Locking Failed!
⠇ Locking...
CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Cannot install data-diff and dbt-osmosis because these package versions have conflicting dependencies.
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/resolver.py", line 704, in _main
[ResolutionFailure]:       resolve_packages(
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/resolver.py", line 662, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:       ^^^^^^^^
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/resolver.py", line 642, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1167, in resolve_deps
[ResolutionFailure]:       results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
[ResolutionFailure]:       ^^^^^^^^^^^^^^^^^^^^^^
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 948, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 690, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv run pip install <requirement_name> to bypass this mechanism, then run $ pipenv graph to inspect the versions actually installed in the virtualenv.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/cli/command.py", line 364, in lock
    do_lock(
  File "/usr/local/lib/python3.11/site-packages/pipenv/routines/lock.py", line 65, in do_lock
    venv_resolve_deps(
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1110, in venv_resolve_deps
    c = resolve(cmd, st, project=project)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 985, in resolve
    raise RuntimeError("Failed to lock Pipfile.lock!")
RuntimeError: Failed to lock Pipfile.lock!

With pipenv 2023.07.11
> docker run --rm -it -v $(pwd):/app -w /app python:3.11-slim bash
> pip install pipenv==2023.07.11
> pipenv --version
pipenv, version 2023.7.11
> pipenv lock
Creating a virtualenv for this project...
Pipfile: /app/Pipfile
Using /usr/local/bin/python3 (3.11.4) to create virtualenv...
⠹ Creating virtual environment...created virtual environment CPython3.11.4.final.0-64 in 215ms
  creator CPython3Posix(dest=/root/.local/share/virtualenvs/app-4PlAip0Q, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
    added seed packages: pip==23.2.1, setuptools==68.0.0, wheel==0.41.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /root/.local/share/virtualenvs/app-4PlAip0Q
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success!
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
⠋ Locking...CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Cannot install data-diff and dbt-osmosis because these package versions have conflicting dependencies.
✘ Locking Failed!
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/patched/pip/_vendor/resolvelib/resolvers.py", line 439, in resolve
    raise ResolutionImpossible(self.state.backtrack_causes)
pipenv.patched.pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=SpecifierRequirement('protobuf<4,>=3.12'), parent=LinkCandidate('https://files.pythonhosted.org/packages/ed/7c/04aafd3877ab37635b6dbbf72dc95264cd7679e9e9f08978437e7a597809/streamlit-1.20.0-py2.py3-none-any.whl (from https://pypi.org/simple/streamlit/) (requires-python:>=3.7, !=3.9.7)')), RequirementInformation(requirement=SpecifierRequirement('protobuf==4.24.0; python_version >= "3.7"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/92/c0/0a2c4041a40b3ca1c47ec4dec4cbff0082f973292b80518db0a5bcdad03f/dbt_core-1.6.0-py3-none-any.whl (from https://pypi.org/simple/dbt-core/) (requires-python:>=3.8)'))]

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 709, in resolve
    results = resolver.resolve(self.constraints, check_supported_wheels=False)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/patched/pip/_internal/resolution/resolvelib/resolver.py", line 101, in resolve
    raise error from e
pipenv.patched.pip._internal.exceptions.DistributionNotFound: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1082, in venv_resolve_deps
    results = resolve_packages(
              ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/resolver.py", line 654, in resolve_packages
    results, resolver = resolve(
                        ^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/resolver.py", line 634, in resolve
    return resolve_deps(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1134, in resolve_deps
    results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
                                                         ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 969, in actually_resolve_deps
    resolver.resolve()
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 711, in resolve
    raise ResolutionFailure(message=str(e))
pipenv.exceptions.ResolutionFailure: ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pipenv/cli/command.py", line 364, in lock
    do_lock(
  File "/usr/local/lib/python3.11/site-packages/pipenv/routines/lock.py", line 65, in do_lock
    venv_resolve_deps(
  File "/usr/local/lib/python3.11/site-packages/pipenv/utils/resolver.py", line 1100, in venv_resolve_deps
    raise RuntimeError("There was a problem with locking.")
RuntimeError: There was a problem with locking.

As you can see, with 2023.07.11 we get
raise ResolutionImpossible(self.state.backtrack_causes)
pipenv.patched.pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=SpecifierRequirement('protobuf<4,>=3.12'), parent=LinkCandidate('https://files.pythonhosted.org/packages/ed/7c/04aafd3877ab37635b6dbbf72dc95264cd7679e9e9f08978437e7a597809/streamlit-1.20.0-py2.py3-none-any.whl (from https://pypi.org/simple/streamlit/) (requires-python:>=3.7, !=3.9.7)')), RequirementInformation(requirement=SpecifierRequirement('protobuf==4.24.0; python_version >= "3.7"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/92/c0/0a2c4041a40b3ca1c47ec4dec4cbff0082f973292b80518db0a5bcdad03f/dbt_core-1.6.0-py3-none-any.whl (from https://pypi.org/simple/dbt-core/) (requires-python:>=3.8)'))]

but not with 2023.07.23. I've tried also with the --verbose option and with Python 3.8 instead of 3.11, with the same result.

@boonware 2023.7.11 had an unintentional side effect where the resolver wasn't being run  in the target python version.   You can enable this "feature" in 2023.07.23 by setting env var:  PIPENV_RESOLVER_PARENT_PYTHON = 1
I think the problem is the error logging in the sub-process doesn't make it to the parent process.
That being said, it maybe the same, but could you also check the behavior with:  https://github.com/pypa/pipenv/pull/5793

@boonware Have you tried running with --verbose or -v option?

Yes, this does not show the conflict either.

I'll try out this option for my problem. It would be nice if the temporary file that is created and is referred to in the verbose error message as containing the conflicting package was somehow kept or had its contents logged on error, e.g. line 12 in /tmp/pipenv-<some-hash>/.../pipenv-constraints...txt.

@kalebmckale I think its a great point of frustration for many users and we should aim to improve the inter-process communication so that the output generated by pip is not lost.   Certainly there are some skilled python devs out there that can help once we merge the draft-no-reqslib branch. 🤞
I am about ready to merge that branch because at this point it fixes more issue reports than it causes, and I haven't heard any negative feedback about yet  on something that hasn't been addressed or isn't already an issue.  Having the resolver run in the parent process should yield more output, but just be aware if the parent python is a different version than the project python it may not be a consistent result.

Thanks for the word of caution. I will probably hold off until the next version instead.

I pushed a change to the future looking pipenv branch which get the -v flag working with the pip resolver again in a more expected way:  https://github.com/pypa/pipenv/pull/5793

I will be able to test it at work tomorrow. I'm off today. Will let you know then.

Discussed on #5793 and verbose output has greatly improved.

I believe the new release solves this.

Whats in the new release that resolves it?. Still does this for me and I'm mystified as to what actually is the thing thats conflicting. Like, couldnt it just say "Hey this thing wants version x but that thing wants version y"?

Not solved at all

ok just figured out you can check the cause via -- verbose maybe this could be included in some guide or catch the exception and expose the verbose mode message

Analysis for Issue #5823:
Analysis of Pipenv Issue #5823: Missing info for package conflict
1. Main Problem
The issue reports that Pipenv sometimes fails to provide enough information about dependency conflicts during package resolution, especially when installing a new project. This makes it difficult for users to diagnose and resolve the conflict, as they are not told which packages are causing the issue.
2. Comments Discussion

User sdepablos provides a concrete example with a Pipfile that consistently produces this error.
Maintainer matteius suggests using the --verbose flag to get more information.
User boonware confirms that even with --verbose, the conflict information is still missing.
User kalebmckale requests that the temporary files (which contain the conflicting package information) should be either kept or logged.
Maintainer matteius explains that the problem is due to the resolver running in a subprocess, which causes its output not to be properly relayed back to the main process. They also mention a draft branch that aims to solve this by running the resolver in the parent process.
Maintainer matteius claims the issue is solved in a new release. However, user shayneoneill and agalazis disagree and request reopening the issue.
User agalazis clarifies that using --verbose does reveal the conflict information, but suggests improving the error message to guide users towards using --verbose.

3. Proposed Resolution
The root cause seems to be the lack of proper error handling and communication between the main Pipenv process and the subprocess running the resolver. This can be resolved by:

Improving error reporting: Catch the ResolutionImpossible exception raised by the resolver subprocess and parse its "causes" attribute to extract the conflicting packages.
Displaying conflict information in the error message: Include the names of the conflicting packages in the error message presented to the user.
Guiding users towards using --verbose: If the conflict information is not available (e.g., due to a bug in the subprocess communication), the error message should explicitly advise users to try again with --verbose for more details.

4. Potential Code Changes
This snippet shows a potential way to implement the proposed changes, focusing on error handling:
# pipenv/utils/resolver.py - inside venv_resolve_deps() function
try:
results, hashes, internal_resolver = actually_resolve_deps(...)
except ResolutionFailure as e:
error_message = str(e)
# Try to extract conflict information from the exception.
try:
causes = e.__cause__.causes
conflicting_packages = [
cause.requirement.name for cause in causes
]
error_message += (
f"\nThe following packages have conflicting dependencies: "
f"{', '.join(conflicting_packages)}"
)
except AttributeError:
# Conflict information not available, advise using --verbose.
error_message += (
"\nPlease try again with the '--verbose' flag for more details."
)
raise ResolutionFailure(message=error_message)

5. Additional Steps

Thorough testing: The proposed changes need to be tested extensively with different scenarios and Pipfiles to ensure they correctly identify and display conflict information.
Consider PIPENV_RESOLVER_PARENT_PYTHON: Investigate if merging the draft branch mentioned by matteius (running the resolver in the parent process) would simplify error handling and provide more reliable conflict information.
Documentation: Update Pipenv documentation to clarify the use of --verbose and explain how to interpret the conflict information displayed in the error message.

By implementing these changes, Pipenv can become more user-friendly by providing clearer and more actionable information about dependency conflicts.


Have DNS resolvers return IPAddr objects

IPAddr objects encapsulate both IPv4 and IPv6 addresses as a single class, which is easier to work with than Resolv's separate Resolv::IPv4 and Resolv::IPv6 classes.
cc @TiagoCardoso1983

Nice! In all fairness, I think the ÌPAddrinstantiation blowsArgumentError` if you don't pass it a valid IP(v4 or v6) String, however, it seems that the instantiations are not done with arguments, so I guess it's all good.


MediaPipe Python Build: Unexpected Errors on Windows 11

OS Platform and Distribution
Windows 11
Compiler version
protoc-24.4
Programming Language and version
python 3.11
Installed using virtualenv? pip? Conda?(if python)
virtualenv
MediaPipe version
0.10.7
Bazel version
Bazelisk version: v1.18.0
XCode and Tulsi versions (if iOS)
No response
Android SDK and NDK versions (if android)
No response
Android AAR (if android)
None
OpenCV version (if running on desktop)
3.4.10
Describe the problem
Hello,  I'm relatively new to MediaPipe, and I have encountered an issue with my MediaPipe Python Package build on a Windows 11 system.
I have successfully installed and ran the 'hello world' example build following the MediaPipe intallation tutorial https://developers.google.com/mediapipe/framework/getting_started/install.
Later, I managed to build the python package according to the tutorial on:
https://github.com/google/mediapipe/blob/master/docs/getting_started/python.md
However, when I try to import and run my built python package, I encounter the following error:
File "G:\testest.py", line 119, in
with mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5) as pose:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "G:\mediapipe\mp_env\Lib\site-packages\mediapipe\python\solutions\pose.py", line 146, in init
super().init(
File "G:\mediapipe\mp_env\Lib\site-packages\mediapipe\python\solution_base.py", line 285, in init
self._graph = calculator_graph.CalculatorGraph(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: ValidatedGraphConfig Initialization failed.
Please note that I haven't made any modifications to the git clone of the MediaPipe source code. I just wanted to test if I could compile the MediaPipe python package on Windows 11.
Here are the steps before I encounter the problem.

git clone --depth 1 https://github.com/google/mediapipe.git
cd mediapipe
Edit the .bazelrc file add the following lines as instructed by https://bazel.build/configure/windows#build-c-with-msvc : --output_user_root=G:/temp,   startup --output_base=G:\bazel_output,    startup --windows_enable_symlinks,    build --enable_runfiles
Edite opencv path in the workspace file
Create a virtual environment with python 3.11: "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe" -m venv mp_env
pip install -r requirements.txt
python setup.py install --link-opencv
run a test python script which works with the official python package 0.10.7.
I hope someone can guide me on why my custom-built Python MediaPipe package doesn't work the same as the official one. Thank you in advance!
You can view the complete logs in the Complete Logs section.

Complete Logs
(mp_env) G:\>python testest.py
Video Parameters - Width:  1280  Height:  720  FPS:  60
Traceback (most recent call last):
  File "G:\testest.py", line 119, in <module>
    with mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5) as pose:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "G:\mediapipe\mp_env\Lib\site-packages\mediapipe\python\solutions\pose.py", line 146, in __init__
    super().__init__(
  File "G:\mediapipe\mp_env\Lib\site-packages\mediapipe\python\solution_base.py", line 285, in __init__
    self._graph = calculator_graph.CalculatorGraph(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: ValidatedGraphConfig Initialization failed.
ImageToTensorCalculator: ; RET_CHECK failure (mediapipe/calculators/tensor/image_to_tensor_calculator.cc:142) ValidateOptionOutputDims(options) returned INTERNAL: ; RET_CHECK failure (.\mediapipe/calculators/tensor/image_to_tensor_utils.h:136) options.has_output_tensor_float_range() || options.has_output_tensor_int_range() || options.has_output_tensor_uint_range()Output tensor range is required.
InferenceCalculatorCpu: ; RET_CHECK failure (mediapipe/calculators/tensor/inference_calculator_cpu.cc:56) !options.model_path().empty() ^ kSideInModel(cc).IsConnected()Either model as side packet or model path in options is required.
SplitDetectionVectorCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions.
ImageToTensorCalculator: ; RET_CHECK failure (mediapipe/calculators/tensor/image_to_tensor_calculator.cc:142) ValidateOptionOutputDims(options) returned INTERNAL: ; RET_CHECK failure (.\mediapipe/calculators/tensor/image_to_tensor_utils.h:136) options.has_output_tensor_float_range() || options.has_output_tensor_int_range() || options.has_output_tensor_uint_range()Output tensor range is required.
ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options.
ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options.
ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options.
SplitTensorVectorCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions.
SplitNormalizedLandmarkListCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions.
SplitLandmarkListCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions.

Hi @einsteinfantasy,
Based on the issue description, it appears that you are using the legacy Pose solution, which has been upgraded to the Pose landmark Task API as described here. We have discontinued support for legacy solutions that have already been upgraded.
However, the libraries, documentation, and source code for all the MediapPipe Legacy Solutions will continue to be available in our GitHub repository and through library distribution services, such as Maven and NPM.
You can continue to use those legacy solutions in your applications if you choose. Though, we would request you to check new Pose Landmarker Task API in the Python which can help you more easily build and customize ML solutions for your applications. These new solutions will provide a superset of capabilities available in the legacy solutions.
Thank you!!

Thank you for your prompt response.@kuaashish
I see my only choice is to close the issue now.
I understand from your reply that the pose solution I initially mentioned is considered legacy and is not actively supported. However, the primary focus of my project is on the holistic landmarks. As far as my research and understanding go, only the legacy solution currently supports holistic landmarks in MediaPipe.
Considering the significance of the holistic model for many applications, including mine, it's crucial for me to get this issue resolved. If the holistic model is also considered a legacy solution, this would pose challenges for developers who heavily rely on it.
I genuinely appreciate the effort and contributions from the MediaPipe team. However, I still want you to shine some light on how to rebuild the current MediaPipe with changes to use the holistic solution, considering it is most developers' only option.
Thank you for understanding and looking forward to your insights.

The new Holistic API is almost ready and will be released soon. Let us know if you are fine to wait for bit.

Hi @einsteinfantasy,
Our new Holistic Task API has been released. Could you give the new HolisticLandmarker task APIs a try and let us know if you encounter any issues?
Thank you!!

Hi @einsteinfantasy,
Our new Holistic Task API has been released. Could you give the new HolisticLandmarker task APIs a try and let us know if you encounter any issues?
Thank you!!

Thank you for sharing,I'm excited to give the new holistic APIs a try.
With the introduction of this API, can we also expect a holistic solution release in the near future?

Hi @einsteinfantasy,
Apologies for any inconvenience, but we are no longer maintaining legacy solutions. The release won't be possible as we. have transitioned to Task APIs, which are upgraded versions offering enhanced capabilities compared to the legacy solutions.
Thank you!!


Use plain css instead of vue-flickity

Seems that we are able to implement it by ourselves.

for previous/next buttons use smooth scrolling
for scrolling with a finger on mobile enable snapping using scroll-snap-* properties

Current state:
https://github.com/aeternity/superhero-wallet/blob/2b28c49ea382f8934d92de99f0488bb5b1292f77/src/popup/router/components/MenuCarousel.vue#L3-L27
cc: @etharner @imollov

@davidyuk I've already made my own solution and will publish it here https://github.com/aeternity/superhero-wallet/pull/872

Anything wrong with vue-flickity?
It's 651B minified and gizipped. Not to mention already implemented with all the bells and whistles on all platforms.
Also, this probably won't be the final design of it, as changes will be required to add more buttons. Discussed with @onvisions.

Anything wrong with vue-flickity?

It is not a CSS standard. I'm just curious is it possible to do the same using modern CSS, and to check will it work in modern browsers. If so then we don't be needed to deal with third-party code in the future to do similar things 🎉

I've already made my own solution last week

Interesting what you will use there 👀

Anything wrong with vue-flickity?

It is not a CSS standard. I'm just curious is it possible to do the same using modern CSS, and to check will it work in modern browsers. If so then we don't be needed to deal with third-party code in the future to do similar things 🎉

I've made this quick solution last week https://codepen.io/deuseth/pen/MWbzwex, for me it's quite adjustable for design changes

Looks nice, but shouldn't it be swipeable with a finger? (cc: @onvisions) If so then the initially proposed approach would be useful

fixed in #1154


the save method used in frame while generating thumbnail is automatically saving in app/public directory in laravel can we change the path of file

Q
A

Bug?
no

New Feature?
no

Version Used
Specific tag or commit sha

FFmpeg Version
FFmpeg or AVConv and version

OS
Your OS and version

####$path1=storage_path('app/public/video/'.$s);
$videos = $ffmpeg->open($path1);
$frame = $videos->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(6));
$frame->save('image6.jpg');
it is saving to app/public directory in laravel
How does PHP-FFMpeg behave at the moment?
####i want to change the path and save it to storage directory
What is the behavior you expect?
####just generate a frame and use save() it will save the image file into app/public directory
What are the steps to reproduce this bug? Please add code examples,
screenshots or links to GitHub repositories that reproduce the problem.
Possible Solutions
If you have already ideas how to solve the issue, add them here.
Otherwise remove this section.

i made a mistake while defining path


resolve user based on username#discriminator

for commands accepting users, the parser should be able to recognize the username#discriminator format, finding the user by searching in the cache. currently the id command supports this as its own special case, so try porting that logic to the user parser

i might have waited so long this is obsolete. still will probably look to see if it might be useful anymore

gonna call this one no longer useful


Link to blog post in docs gets redirected to blog front page

The link to https://0x0b.de/the-ramer-douglas-peucker-algorithm.html redirects to https://hirschmann.blog/.  Not sure if this is gone, or the blog post is rehosted in a hidden url on your new blog now.

这是来自QQ邮箱的假期自动回复邮件。你好，我最近正在休假中，无法亲自回复你的邮件。我将在假期结束后，尽快给你回复。


AssemblyInfo's are getting cleared during build/publish (ps-scripts)

Occurs when scripts are running with project opened in VS

您好，我想链接多个MySQL 数据库，该如何处理呢？

您好，我想链接多个MySQL 数据库，该如何处理呢？


Adds pilot name coloring as an option and Tobias's restructured MP Menu

the option is found in the mp menu and it is by default off.

We'll need to test the F out of the menu!


MapDB 3.0 expects file to not exist if creating a new database

If I create a empty file and ask MapDB 3.0  to init on it, It will fail on windows.

Also on re-open I am getting.  org.mapdb.DBException$WrongConfiguration: Store does not support Reserved Recids: class org.mapdb.StoreDirect
at org.mapdb.DB.(DB.kt:95)
at org.mapdb.DBMaker$Maker.make(DBMaker.kt:78)
Perhaps I am missing a close on jvm exit.

M1 and M2 do not support store reopen yet. That will be in milestone 3.


Suggestions of doing fuzzy testing on Dart program + Dart FFI?

Hi thanks for the great language and ecosystem! I wonder any suggestions of doing fuzzy testing on Dart program + Dart FFI?
When developing https://github.com/fzyzcjy/flutter_rust_bridge v2, though it looks stable, and I already have Valgrind as well as Sanitizers, but more tests never harm. Therefore, I am looking at fuzzy tests a little bit. It seems that there are many fuzzer libraries for Rust, C++, etc, but no very popular ones for Dart.
More concretely, I hope to have fuzzy testing on a Dart program + a Rust program, connected via Dart FFI, to detect potential problems such as misuse of Dart native C API, etc.
I saw https://dart.googlesource.com/sdk//+/19e844ed5b2757bb5abcc353e151be52eeeb43f8/runtime/tools/dartfuzz/README.md, but it detects divergence instead of crashes, so I am not sure whether it is suitable.
The https://aflplus.plus/docs/binaryonly_fuzzing/ or similar libraries has binary-only fuzzing which looks interesting. However, I am not sure whether this applies to Dart, which has a VM and runtime. For example, Valgrind is completely confused given any Dart program.

I saw https://dart.googlesource.com/sdk//+/19e844ed5b2757bb5abcc353e151be52eeeb43f8/runtime/tools/dartfuzz/README.md, but it detects divergence instead of crashes, so I am not sure whether it is suitable.

It should be relatively easy to use a subset of the code to check only for crashes.
The challenge we found with fuzzing dart:ffi is that it is really easy to generate a program that will crash if the fuzzer just generates random API calls:
void main() {
  final p = Pointer.fromAddress<Int8>(12345);
  p[87654] = 123; // Access unallocated memory!
}

So if you want to generate code that exercises FFI calls, you have to tell the generator to tell the subset of calls that is guaranteed to be safe. We have predefined a set of methods to be safe, for example:
https://github.com/dart-lang/sdk/blob/6ce0504924d4b273ffb5d0a6591769b3cb425890/runtime/tools/dartfuzz/dartfuzz.dart#L351-L352
Actually, there is not such a big difference between a test generator and a fuzzer. A test generator also generates a bunch of code that we know up front is not supposed to crash. A fuzzer takes this to the next step by making the set of tests it generates exponentially larger, but only running a small subset every time. My first suggestion would be to see if you can increase test coverage by generating tests for flutter_rust_bridge. You could potentially take some inspiration from https://github.com/dart-lang/sdk/tree/main/tests/ffi/generator.
If you already have a test generator, you could try to make it generate more and more different programs.
The amount of Random in dartfuzz is not that much, so I'm not sure if using dartfuzz itself would be useful. (In the FFI tests generators we also don't reuse code from other places, we just use string concatenation to generate C and Dart files.)
If you do find you'd want to reuse some dartfuzz things, I can see if there would be interest in making it a package that can be reused, as currently it's just a set of internal scripts.

The https://aflplus.plus/docs/binaryonly_fuzzing/ or similar libraries has binary-only fuzzing which looks interesting. However, I am not sure whether this applies to Dart, which has a VM and runtime. For example, Valgrind is completely confused given any Dart program.

Coverage guided fuzzing is an interesting concept, but you'd want to have the coverage of Rust types etc, not of the C++/Dart sources of the Dart executable itself. I'm not aware of any pre-existing tools in the Dart ecosystem that can do it for Dart-only code.
Extending the idea of coverage guided fuzzing to a code generator project takes this to another level. Just brainstorming out loud here: You'd want to make sure you have coverage of the all rust types, so probably you would want to randomly generate Rust programs and then check that the Rust programs that you feed into flutter_rust_bridge exercise all the lines of code in flutter_rust_bridge code generator. But making coverage guidance for this is hard, because the bool/enum conditions for your branching structure is not just some param that can be passed into FRB, it's a result of the parsing of the Rust program you generate. So the coverage guide would basically have to unparse Rust to achieve that. And then the second step would be to generate a Dart program that exercises all the generated bindings.
Because there is a code generator involved, and parsing a String to a program, I think pre-existing fuzzing solutions would not be a good fit. When writing a test generator you tackle both these problems: e.g. you generate both the Rust program and the Dart program exercising the Rust program in one go. If you make your test generator then do an exponential amount of programs, you can use Random to turn it into a fuzzer.
Okay, this has become a rather long essay. I hope it helps!

Thank you very much for the information! That looks interesting (though require a pretty amount of engineering so may not be implemented in a short term), and I do see what is going on with dartfuzz, the traditional fuzzer, and the test generators.


Speed up RSpec test (closes #1932)

Top 5 slowest example groups:

API::V2::Management::Tools   1.11 seconds average (1.11 seconds / 1 example) ./spec/api/v2/management/tools_spec.rb:4
API::V2::Management::Operations   1.02 seconds average (53.16 seconds / 52 examples) ./spec/api/v2/management/operations_spec.rb:4
API::V2::Management::Withdraws   0.92408 seconds average (21.25 seconds / 23 examples) ./spec/api/v2/management/withdraws_spec.rb:4
API::V2::Management::Transfers   0.90424 seconds average (25.32 seconds / 28 examples) ./spec/api/v2/management/transfers_spec.rb:4
API::V2::Management::Deposits   0.89089 seconds average (19.6 seconds / 22 examples) ./spec/api/v2/management/deposits_spec.rb:4

Timing
Finished in 6 minutes 27 seconds (files took 2.79 seconds to load)

Need to fix few tests and find why they are broken.

@shal Looks good for me if we have 2 times faster specs
I don't care if we mark specs as pending where Mocha expectation is broken
So if you fix other we can merge


polynomial modulus

Is it possible to change the polynomial modulus? It doesn't appear in the arguments of contextGen().

The parameter m in contextGen() is coefficient of the polynomial modulus in the form of 1*x^m+1. I am correcting the documentation right now.
Is this enough? Or would you rather have control over the whole polynomial expression?

That's enough! Thank you!

Closing issue!


[Feature][PagerDuty] Support specifying Custom Rate Limit with requests/min instead of requests/hour

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Use case
Based on the PagerDuty documentation and the PagerDuty community forum the Rate Limit for PagerDuty is 900 requests/min.
We should be able to specify Custom Rate Limit with requests/min instead of requests/hour for PagerDuty.

Also, the message PagerDuty does not specify a maximum value of rate limit. should be changed to PagerDuty specifies a maximum value of 900 requests/min for rate limit.
Description
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for the suggestion, however, I think we should keep it simple by converting Requests per Minute to Requests per Hour.
It would be 54000 Requests Per Hours in this case

My only concern here is how this requests/hour are distributed? Because 54000 requested/hour isn't necessarily the same as 900 requests/min.
For example, if I specify 54000 requests/hour, the code distributes it evenly throughout the whole hour (thus, using 900/min) or it tries to go as fast as possible and could, for example, do this 54000 requests in 10 minutes (then waiting 50minutes idle to request again)?

@Feggah Good question, it is evenly distributed. So, 900 rpm and 54000 rph are equivalent.

Awesome, I'll close this issue then. Thanks for the clarification!


Add Support for MongoDB 5, 6, 7 PYMONGO 4.6.1  Drop Python 3.6

This is a breaking Change because it drop Python 3.6. But I think that is the plan for Update 3.9.

Update PYMONGO to 4.6.1
Update mongoengine to 0.27.0
Remove Some Tets and Code because ssl_match_hostname parameter not exist in newer Versions.

I have tested it on my dev servers with 3 Different Mongo DB Setups:

mongodb flex Replika Set on Stackit Cloud Service (With SSL / User / Password)
mongo db single Stackit Cloud Service (With SSL / User / Password)
mongodb 7 local installation on devserver (Without SSL, Without User, Without Password)

According to the migration documentation ssl_match_hostname functionality was not dropped but replaced by tlsAllowInvalidHostnames https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html#renamed-uri-options

According to the migration documentation ssl_match_hostname functionality was not dropped but replaced by tlsAllowInvalidHostnames https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html#renamed-uri-options

okey. so id would be better to add this tlsAllowInvalidHostnames to replace the old ssl_match_hostname right ?

I think the work for adding support for mongodb 5+ will require working through the official migrate-to-pymongo4 document, checking the code base across the St2 repos (st2, orquesta, rbac, ldap, perhaps others) and update functions/methods/classes that reference the old v3 API.
The document recommends using pymongo 3.12 and turn on deprecation warnings to easily spot of the deprecated code.  There's also the fact that it should not be tested against python 3.6, but rather python3.8, which is to be our lowest supported version for the 3.9.0 release.
We have the choice of keeping ssl_* configuration names and transpose them to tls equivalent so that users don't need to adjust configuration files or update to use tls to reflect the correct name of the underlying technology being used.  Perhaps keeping ssl and tls versions for st2 v3.9.0 and with deprecation warnings of ssl version being removed in st2 v3.10

I think the work for adding support for mongodb 5+ will require working through the official migrate-to-pymongo4 document, checking the code base across the St2 repos (st2, orquesta, rbac, ldap, perhaps others) and update functions/methods/classes that reference the old v3 API.
The document recommends using pymongo 3.12 and turn on deprecation warnings to easily spot of the deprecated code. There's also the fact that it should not be tested against python 3.6, but rather python3.8, which is to be our lowest supported version for the 3.9.0 release.
We have the choice of keeping ssl_* configuration names and transpose them to tls equivalent so that users don't need to adjust configuration files or update to use tls to reflect the correct name of the underlying technology being used. Perhaps keeping ssl and tls versions for st2 v3.9.0 and with deprecation warnings of ssl version being removed in st2 v3.10

Thanks for the explanation. I thought it was too easy to just pull up the version.

I haven't read the PR, so this is a drive by comment after our TSC meeting.
Our codebase currently supports:
# mongoengine 0.24.0 has breaking changes to support pymongo 4.0
mongoengine>=0.21.0,<0.24.0
# pymongo 3.13 has backports of APIs from pymongo 4 to help w/ migration
pymongo>=3.11.0,<3.13.0

So, to update mongoengine/pymongo we need to migrate our code base based on:
https://docs.mongoengine.org/changelog.html#changes-in-0-24-0
https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html
https://pymongo.readthedocs.io/en/stable/changelog.html#changes-in-version-4-0

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: philipphomberger:x: Philipp HombergerPhilipp Homberger seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Enable more Transaction v5 tests

Motivation
Currently, most of Zebra's proptests are testing Transaction v4, but we also want to test Transaction v5 (and NU5).
Solution

make NU5 the default network upgrade for proptests
use arbitrary LedgerStates in more tests
stop skipping Canopy (and later) blocks in some tests

The code in this pull request has:

[x] Documentation Comments
[x] Property Tests

This is a replacement of https://github.com/ZcashFoundation/zebra/pull/2061
The automatic rebase didn't worked as expected, there are conflicts so i cherry picked the 2 commits involved and made a new PR.
Review
@oxarbitrage can review. These tests don't pass without his fixes to #2023.
These fixes also depend on #2060.
Follow Up Work
#2059 Use arbitrary LedgerStates in more tests to increase test coverage

Looks good but i cant approve as i created the PR even if the commits are from @teor2345

You can use admin-merge for cases like this.


Inv update

just one small thing -- that .RData file should not be included.  Add it to .gitignore and run git rm .RData (or git rm --cached .RData -- can't remember)

I think I did this correctly!

👍   Let's see how this looks on stage!


Account impersonation

I think I've done some big mistake, or discover one sever flow. As I really do not understand how does the blockchain work, I put my situation here for expert to debug it.
I used for a long time the milouse user and kept very seriously my secret key. Because of several PC change, I did not run twister for a long time. Today I wish open it again and reinstall it on my brand new PC.

I started the twister daemon
Immediatly after, I went on the html interface. It says I've ~1000 days to recover.
As it takes time, I want to reconnect quickly my old user. On the twister login page, I enter my secret key and my login name. It says « User must exist » or something like that.
I thought it has something to do with « local user » or something, so I tried to create a new user with the form just above. It says to me « milouse » is available.
So I created a new user, what give me a new secret key. What?
When the blockchain finish to login, I found my « milouse » profile with my configured avatar, wepage url, description and so on... but with the new secret key.

If I try to « switch user » using my old key, I got no error but keep stuck with the new secret key.
When I look at my profile, it says I've 162 twists, what seems to be ok regarding my old habits. But I cannot find a way to see them. My profile window only show one old message and nothing more. It seems I've lost all my contacts too.
So. Do I reach to overwrite my account ? And, more important, does it means anyone can get the control of someone else account, as soon as s·he tries to create his/her account before the blockchain download is complete?
I'm very confuse so any help / explanation will be thanked!

... aaand it seems I cannot post anything anymore. I always get a javascript alert saying « Bad ajax signature »

You have just created an inconsistency between your local wallet and the blockchain. This is a local inconsistency only, the rest of the network doesn't know about it.
No one else would accept your new public key into the blockchain because there is already another user there with the same name. That also explains why you cannot post, since no one (not even your local daemon) will accept the post signed by the wrong key. You will not be able to see your private messages either.
The best way to fix is to erase your wallet containing the wrong key. There is no impersonation here.

Ok, I'm reassured :)
I'll delete all local content and start again more smoothly. Thank you.


fix docs in pagination component

PaginationLink component was wrapped by PaginationItem Component (this Component is li element). so docs have to be fixed.

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


fix(README): typos

Codecov Report

Merging #136 (20fe284) into master (fe155b6) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #136   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           85        85
  Branches        21        21
=========================================
  Hits            85        85

Continue to review full report at Codecov.

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


Exporting importing packages using a list

Brought up in #12
Add support for generating a list of packages that are installed on the system. eg. machine-readable version of appget list
And on the other end reading the generated list and installing all listed packages in a batch similar to appget update-all or #21
Things to consider:

What to do if a package is already installed
What to do if a package is no longer available
What to do if a package is not compatible with the system (Architecture/Version of Windows)

I'm testing it now…
So far, very good. Commands like this one work as expected:
C:\> appget list | findstr /c:"libreoffice"
|  LibreOffice |  libreoffice  | <IP_ADDRESS>  | <IP_ADDRESS>  | Available |

I'm going to think about your questions and get back to you.


Model loaded via tf.keras.load_model is very slow

OS: Ubuntu 18.04
Python 3.6.8
Tensorflow version 2.0.0b1 (GPU)
GPU: Titan RTX
CUDA version 10.0
Issue: current script is working fast
data=np.random.rand(30,16000)
data = np.expand_dims(data, axis=2)
#model = tf.keras.models.load_model('newmodel.h5')
model = keras.Sequential()
model.add(keras.layers.LSTM(15, input_shape=(16000, 1), return_sequences=True))
for i in range(8):
    model.add(keras.layers.LSTM(15, return_sequences=True))
model.add(keras.layers.Dense(1))
model.compile(loss='mae', optimizer='adam')
est=model.predict(data)
model.save("newmodel.h5")

After finishing this script I launch next one, which work very slow (30-40 sec).
data=np.random.rand(30,16000)
data = np.expand_dims(data, axis=2)
model = tf.keras.models.load_model('newmodel.h5')
est=model.predict(data)

the last two lines of first script output
2019-08-01 20:09:24.245721: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10.0
2019-08-01 20:09:24.631869: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7

Second script for some reason doesn't output the loading of libcudnn.so.7

I am able to reproduce the issue on Colab with Tensorflow 2.0.0.beta1. Please see the gist here. Thanks!

I am able to reproduce the issue on Colab with Tensorflow 2.0.0.beta1. Please see the gist here. Thanks!

Could you please open access to gist so I can access code and test myself?

@yarik1988 I cannot reproduce the issue. For me first block of code was taking 11 sec and second block was taking 19 sec. However, when you run the ops on cpu with with tf.device('/cpu:0') then second block takes only 9 sec. Please take a look at the gist here. Thanks!

I ran into a very similar problem on Jetson's TensorFlow distribution on version 1.14.0 and Keras version 2.2.4-tf (CUDA version 10.0).
As there currently does not seem to be a way of installing tf-nightly-gpu-2.0-preview, what do you think would be the best way of remedying this issue?
Thanks!

The solution that works is creating model from the function each time, and then simply loading the weights. So I have the function create_model() that creates and returns the model and instead of loading the model I run it and then load weights from the same model.h5 file


No UID given... on follow

I attempted to follow a user while my network was shoddy. Since then, I cannot 'id' or 'follow' that user, getting:
▶ ERROR No UID given but one was expected
I was able to get a partial response when I did a follow using USER@twitter.
Redacted version below:
$ keybase id REDACTED
▶ ERROR No UID given but one was expected
 $ keybase follow USER@twitter
▶ INFO Identifying REDACTED
✔ public key fingerprint: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
฿  bitcoin REDACTED
✔ "REDACTED" on twitter: https://twitter.com/REDACTED/status/REDACTED
✔ "REDACTED" on github: https://gist.github.com/REDACTED
✔ "REDACTED" on hackernews: https://news.ycombinator.com/user?id=REDACTED
✔ "REDACTED" on coinbase: https://coinbase.com/REDACTED/public-key
Is this the REDACTED you wanted? [Y/n]
Publicly follow? [Y/n]
▶ ERROR No resolution for name=REDACTED

Does keybase db nuke fix this by any chance?

Looks like.

Whoops wrong button. That seems to work.


No Payments API code yet?

@ebcayabyab I see only code for the Checkout API, when is the Purchase API code expected to be done?

Hi @kzap We are currently working on card vaulting features for the SDK. We will consider if we can also provide wrapper for Payments API next release. We will keep you posted. Thanks for the support.

resolved with #5

looks like it was reverted, are there any plans ever to add Payment Vault code?


DHCP Routes/Add Static Route

Hello, Is there currently a way to add a static route before cloud-init begins? We have our metadata server available via the DHCP server. Normally this is provided by the DHCP configuration however on docker it looks not to be the case. If we can execute arbitrary commands this will also work;
dhcpServer=$(grep dhcp-server-identifier /var/lib/dhcp/dhclient.leases | awk '{print $3}' | cut -d ';' -f1)
ip route add <IP_ADDRESS>/32 via $dhcpServer dev eth0
In addition, it seems there is no way to specify which interface to use the default gateway for which seems to cause a race condition. In our setup we have two interfaces both with DHCP, eth1 ends up starting second and the default gateway ends up being configured there. Ubuntu/Debian solves this with "post-up route del default dev eth1". The only workaround I have seen thus far is only enabling eth0 however since it doesn't supply all the DHCP routes, it has no metadata access (see first point).

Hello. The way it is currently configured, if you have basic network connectivity you can pull down a container and perform network configuration tasks. This really only works IF the network comes up in the first place. We are currently switching out the Udchpc dhcpclient for the more robust client dhclient (PR #122) in the next release, which hopefully will ease some of this.
I think we ran into a similar situation recently, which resulted in us having to do this: #125. Not a great solution for everyone else... and I'm really hoping that it goes away with #122.
What type of install did you use? As part of the cloud-init yaml file passed to the installer, you can add a rancher: section. From that you can customize the network config.
We do a generic install for Vagrant with the following config:
        cat >/opt/user_config.yml<<EOF
#cloud-config
ssh_authorized_keys:
  - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
rancher:
  network:
    interfaces:
      eth*:
        dhcp: false
      eth0:
        dhcp: true
      lo:
        address: <IP_ADDRESS>/8

Which makes it so only eth0 comes up on DHCP. You could do something similar (assuming eth0 will come up)
and do something like:
...
rancher:
 network:
    interfaces:
       eth*:
        dhcp: false
      eth0:
        dhcp: true
      lo:
        address: <IP_ADDRESS>/8
    post_run:
       - id: post-networking
         run: --net=host --privileged <image> <cmd>
         createonly: false

inside that post-networking container you can do the more custom configurations.

With v0.3.0, this should be fixed.


Add Notification  Line  Messaging API

⚠ Please verify that this bug has NOT been raised before.

[x] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I have created a channel bot line and invited my friends but I only see the api bot, others can't see it.

I'm the only channel admin.
Channel access token my
My User-ID

I followed the steps as follows.
Line Developers Console - Messaging API
First access the Line Developers Console, create a provider and channel (Messaging API), then you can get the channel access token and user ID from the above mentioned menu items.

🐻 Uptime-Kuma Version
Uptime Kuma Version: 1.15.1
💻 Operating System and Arch
ubuntu20
🌐 Browser
Google Chrome
🐋 Docker Version
No response
🟩 NodeJS Version
No response

This seems like an issue with the notification service and not Uptime Kuma its self. Perhaps you might be better raising the issue with their support.


Adding new SupportedVersion condition to GatewayClass

What type of PR is this?
/kind documentation
/kind feature
What this PR does / why we need it:
This is intended to fix https://github.com/kubernetes-sigs/gateway-api/issues/2077 by adding a new SupportedVersion condition on GatewayClass and corresponding documentation.
Which issue(s) this PR fixes:
Fixes #2077
Does this PR introduce a user-facing change?:
GatewayClass Status: A new SupportedVersion condition has been added that MUST be set when a GatewayClass is accepted.

/hold for consensus

I think that we have no option than to require something like this; I'm working on an implementer's guide that will lay out some suggestions for how to determine the required information in the right way.
I like the Condition idea because it allows implementations to mark the GatewayClass as Accepted, but show a clear warning that not everything may work.
I also agree that it would be nice to have conformance tests for this behavior, but I think that they may be harder to build than it seems (since we don't have any way to install different versions of the CRDs in the testing suite).
So I am going to merge this as-is, and create an issue for follow-up conformance testing of this Condition.
/unhold


Cannot receive from Arduino

Im trying to send data from Arduino to EPS32-WROOM but can make it work in RX mode. Two arduinos are working with the same modules. Here is the code:
Sender (Arduino nano):
const uint64_t pipes[2] = { 0xAA000000AA, 0xBB000000BB };
void setup(void) {
  radio.begin();                           // Setup and configure rf radio
  radio.setChannel(77);
  radio.setPALevel(RF24_PA_MAX);
  radio.setDataRate(RF24_250KBPS);
  radio.setAutoAck(1);                     // Ensure autoACK is enabled
  radio.setRetries(2,15);                  // Optionally, increase the delay between retries & # of retries
  radio.setCRCLength(RF24_CRC_8);          // Use 8-bit CRC for performance
  radio.openWritingPipe(pipes[1]);
  radio.printDetails();                   // Dump the configuration of the rf unit for debugging
  radio.powerUp();                        //Power up the radio

void loop(void){
}
  delay(2000);
uint8_t temp = 100;
if(!radio.writeFast(temp,sizeof(temp)))   //Write to the FIFO buffers
         Serial.println(F("Failed.."));
if(!radio.txStandBy()){ Serial.println(F("Wait txStandBy..")); }
}

Here is the ESP32  receiver code:
#include "esp_event_loop.h"
#include "nvs_flash.h"
#include "string.h"
#include "nrf24l01p_lib.h"

#define SPI_SCLK 14
#define SPI_MISO 12
#define SPI_MOSI 13

extern "C" {
    void app_main(void);
}
void app_main(void)
{
    printf("Configure.. \n");
    // Initialize NVS
    nvs_flash_init();

    printf("Configure SPI.. \n");
        /* Init spi bus */
    spi_bus_config_t buscfg;
    memset(&buscfg, 0, sizeof(buscfg));

    buscfg.miso_io_num = SPI_MISO;
    buscfg.mosi_io_num = SPI_MOSI;
    buscfg.sclk_io_num = SPI_SCLK;
    buscfg.quadhd_io_num = -1;
    buscfg.quadwp_io_num = -1;
    buscfg.max_transfer_sz = 4096;

    esp_err_t err = spi_bus_initialize(HSPI_HOST, &buscfg, 1);
    assert(err == ESP_OK);

    /* Create instance of CNRFLib */
    CNRFLib nrf(GPIO_NUM_15, GPIO_NUM_27);
    nrf.AttachToSpiBus(HSPI_HOST);
    uint8_t buff[32] = {0};
    uint8_t addr[5] = {0xBB, 0, 0, 0, 0xBB};
    nrf.Begin(nrf_rx_mode);
    nrf.SetPipeAddr(0, addr, 5);
    while(1){
        vTaskDelay(pdMS_TO_TICKS(1));
        if(!nrf.IsRxDataAvailable())
            continue;
        nrf.Read(buff, 32);
        printf("Received: ");
        for(int i = 0; i < 32; i++)
            printf("%d ", buff[i]);
        printf("\n");
    }
}

ESP-IDF:
v3.3-beta1-125-g71c90ac45
The module is nRF24l01+ or at least the arduino lib is reporting it as that.
nrf.IsRxDataAvailable() is always false. I've tried different pins, addresses, data rate, etc and just cannot make it work.

Hi!
Try to use nrf.IsRxDataAvailable(pipeNumber) for particular pipe.
It takes another field to to indicate if there are some data arrived.

Unfortunately i tried it already and doesnt work. BTW where is uart.h which is used for debug?

uart.h is a part of another project, sorry.
Did you try to communicate between 2 esp32's?

Using this lib https://github.com/nRF24/RF24.git ported as described in the Kolban's book and using
@Stormhand could you please elaborate? Which book is this? Is the ported library available anywhere?

Using this lib https://github.com/nRF24/RF24.git ported as described in the Kolban's book and using

@Stormhand could you please elaborate? Which book is this? Is the ported library available anywhere?

Never mind, I figured it out - it is https://leanpub.com/kolban-ESP32


Ribasim equations: 3 User Demand has malformed LaTeX?

Yes I think this went wrong in the rename to UserDemand, the underscores in the subscripts are not allowed, they should just be removed.


Any cool Shodan search queries you know of?

Calling all pentesters and/or people like myself who find infosec pretty neat!
Do you have any cool Shodan.io queries that you've come across — cool, funny, interesting, scary, facepalm-inducing, or otherwise? Some examples of IOT gems we've already found are electronic billboards with banks advertising free donuts, gas station pumps around the country, X-ray machines, 3D printers with live webcams, license plate readers...the list goes on and on (unfortunately).
I'd love to add it to this list. Feel free to simply drop the query/search result URL in a comment here or make a pull request (some light guidelines are in contributing.md) if you're feeling ambitious. I'll keep this issue open for the month.
Happy Hacktoberfest and happy hunting! 🎃

Query: http.favicon.hash:"1485257654" "200"
Link: https://www.shodan.io/search?query=http.favicon.hash%3A"1485257654"+"200"
Description: This Shodan query looks for open SonarQube instances which have returned a status code of 200 OK. (SonarQube)[https://www.sonarqube.org/] is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages. With this query, one can find entire code bases of organizations that use this platform for their code reviews.


⚠ Carbubu has degraded performance

In cffc7b9, Carbubu (https://carbubu.fr) experienced degraded performance:

HTTP code: 200
Response time: 7386 ms

Resolved: Carbubu performance has improved in a4ee9ce after 11 minutes.


Double BURNing -  bXiGvoYjMbEEUe27h3zFCnabsu367zEDEivu8ZHjVSm5v8mC2

What happened?
A bug happened!
Wallet: bXiGvoYjMbEEUe27h3zFCnabsu367zEDEivu8ZHjVSm5v8mC2

Please reproduce in steps
Go to ... Click on .... See error

Burn new NFT.

Success burning:

After (2 point),  dont refresh the page.  You see previous page, as at 1 point.
Click  BURN again and get an Error:

Expected Behavior
I've expected to automatically refresh the page after first BURNing
What browsers are you seeing the problem on?
Chrome
At which address did you encounter bug?
beta.kodadot.xyz
Are you logged in?
Yes
Which wallet you are using?
PolkadotJS
Screenshots

Relevant log output
No response
Payment link for reward
https://kodadot.xyz/transfer/?target=<My_Kusama_Address_check_https://github.com/kodadot/nft-gallery/blob/main/CONTRIBUTING.md#creating-your-ksm-address>
bXiGvoYjMbEEUe27h3zFCnabsu367zEDEivu8ZHjVSm5v8mC2
Code of Conduct

[X] I agree to follow this project's Code of Conduct

👋


java paths/properties/setters/getters maintain '_'

Underscores were removed from property names, setters and getters, but not paths in java. Underscores are now maintained throughout to preserve consistency with dotnet.

@ramsessanchez the unit tests seem to be failing, can you have a look please?

The implementation was deliberately done in this way to be Java idiomatic.
This is a breaking change that is:

not adding a really high value
making the generated code less familiar for Java developers

I do understand and respect the motivation, but I think that merging this is going to make the life of the users worse for no compelling reasons.

close per discussion on the issue.


Add profanity filter for comments and project description

Fixes #761
Describe the changes you have made in this pr -
Added validations in project and comment models to prevent users from posting inappropriate content.
Uses language_filter gem suggested.
Demo video

Coverage decreased (-6.0%) to 77.303% when pulling 1e7311981481610365be0495486a1d0e530a683a on junron:761language_filter into a9f751a98add91d932acbeab8c8c792ae5b583a5 on CircuitVerse:master.

Thanks


go-micro client build error for cannot find package "github.com/micro/go-micro/server/debug

My project uses go-vendor to determine the package that is prompted when the build fails under the current vendor folder.
I don't understand why the build failed. I am not familiar with the go-mod mechanism. This and I use go-vendor instead of go-mod related?
thank you for your reply

Supplement part of the compilation error log

vendor/github.com/micro/go-micro/server/debug.go:4:2: cannot find package "github.com/micro/go-micro/server/debug" in any of:
85 /go/src/fat-orange/capsule_api/vendor/github.com/micro/go-micro/server/debug (vendor tree)
86 /usr/local/go/src/github.com/micro/go-micro/server/debug (from $GOROOT)
87 /go/src/github.com/micro/go-micro/server/debug (from $GOPATH)

Vendoring is likely store incompatible or old versions. You need to wipe the vendor directory.


Can't reproduce the results in the example

Hi,
I am getting different results than those in the example. I downloaded the whole package and didn't change anything. For the basic-tour, I am getting following results in [5]:

But the results in the example is:

For visualization file, I am also getting different results. There is a warning when I run visualization:

The results are consistent on both my computers.
I am really confused why the codes have different results on my computers.
Thank you!

Hi

regarding different results: the results in the example were generated three years ago, using a different version of the code and different supporting libraries, so I am not surprised that they don't match with what is currently produced. This isn't a concern - these first guesses are essentially random anyway.
Regarding the warning in the visualization example: I can't reproduce what you are seeing, but I also wouldn't worry about it. This warning is simply saying that the best length scale found is close to the lower bounds. You can change these if you want to by setting a custom kernel like this:

from sklearn.gaussian_process.kernels import Matern
kernel = Matern(length_scale=1.0, length_scale_bounds=(1e-05, 100000.0), nu=1.5)
optimizer.set_gp_params(kernel=kernel)

but in this case I wouldn't bothe. You only entered one iteration so whatever length scales it found are probably rubbish anyway, because it is trying to fit a model based on almost no data. So I wouldn't worry about this warning.
As a general comment, it is much easier to help if you post code as code blocks instead of pictures. For example, my attempt to reproduce the warning you see above:

from bayes_opt import BayesianOptimization
from bayes_opt import UtilityFunction
import numpy as np

import matplotlib.pyplot as plt
from matplotlib import gridspec

def target(x):
    return np.exp(-(x - 2)**2) + np.exp(-(x - 6)**2/10) + 1/ (x**2 + 1)

optimizer = BayesianOptimization(target, {'x': (-2, 10)}, random_state=27)
optimizer.maximize(init_points=0, n_iter=1, kappa=5)

Thanks a lot!


db2: common_token_values constraint violation

Describe the bug
A clear and concise description of what the bug is.
[ERROR   ] INSERT INTO common_token_values (mt_id, token_value, code_system_id)      SELECT FHIR_ADMIN.sv_tenant_id, v.token_value, v.code_system_id FROM      (VALUES (CAST(? AS VARCHAR(1024)),CAST(? AS INT)), (CAST(? AS VARCHAR(1024)),CAST(? AS INT)) ) AS v(token_value, code_system_id)  LEFT OUTER JOIN common_token_values ctv               ON ctv.token_value = v.token_value              AND ctv.code_system_id = v.code_system_id       WHERE ctv.token_value IS NULL ; [{17ad0a468df-70533aad-4fab-47bc-8536-8e817fb7b3c7,20038}, {active,20079}]
One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "2" constrains table "FHIRDATAZ.COMMON_TOKEN_VALUES" from having duplicate values for the index key.. SQLCODE=-803, SQLSTATE=23505, DRIVER=4.28.11
Environment
Which version of IBM FHIR Server?
4.8.3
To Reproduce
Steps to reproduce the behavior:

Go to 'Create  two  identical bundles
Create two threads
Push at same time with  same COMMON_TOKEN_VALUES
You'll hit the above constraint  violation

Expected behavior
Should retry and not  faili.
Additional context
Add any other context about the problem here.

Marking the transaction for retry and the exception as retryable will allow the reindex retry mechanism to handle this inside the server without emitting the error, as implemented. However, the issue is still present for normal ingestion calls (PUT/POST) because we don't have a tx retry mechanism in place there (yet). This can be addressed under issue #2664 which will retry the statement locally but in a loop so as to catch the error for multiple threads, not just 2.


Prunesources command can cause a browser to store stale pruned CSS

Description
A browser might keep pruned CSS that no longer covers the HTML it applies to.
Steps to reproduce
Given HTML and CSS like this:
HTML:

CSS:
.one {some rules}
.two {some rules}

The client stores css-filename.[hash].css, with only .one {some rules}, because .two has been pruned.
If the HTML is adjusted to

, the hash of the CSS file does not change because the CSS file hasn't changed. Because the client is storing the pruned CSS, .two will render incorrectly on this client.
Current behavior
The pruneSources command overwrites the existing CSS file which prevents the possibility of serving the correct CSS unless the CSS file changes, busting the cache.
Desired behavior
One idea is to do the following:

Instead of overwriting the existing CSS file, create a new CSS file each time the pruneSources command is invoked.
Add a hash for BeastCSS on top of the webpack hash, i.e., css-filename.[webpackhash].[beastcsshash].css, and update the HTML to include [beastcsshash]

In the above example, when

 gets added to the DOM, BeastCSS would not prune anything via the pruneSources command, and so the original CSS file would be used.
In the event that pruneSources creates a new, differently pruned CSS file, the BeastCSS hash would provide cache busting.
If it's possible to determine if anything has changed between runs of BeastCSS this would allow fine-tuned results, but even if BeastCSS provided a new hash each time pruneSources gets run the advantage would be less CSS delivered to the client at the expense of client-side cacheability.
Environment
In my environment I'm using BeastCSS via the API, not the Webpack plugin.

@freddy38510 one additional question - is the current functionality such that without pruneSources, BeastCSS will "double-load" anything that is inlined? I.e., the CSS will be inlined and it will also be loaded in the CSS file because it hasn't been "pruned"?
I guess what I'm wondering is the exact functionality of pruneSources:

Does it only prune things that have been inlined
Does it prune unused CSS, like in the example above

I apologize if I've misunderstood something in the above - writing this issue out was helpful in and of itself to better understand what I'm working with.

You have made an excellent description, it is accurate.
Once the external stylesheet is loaded, you will effectively have duplicate CSS rules. But recently I added a new feature to automatically remove the


Unable to exclude paths from yaml linting

Issue Type

Feature request

Molecule and Ansible details
ansible 2.5.0

molecule, version 2.15.0

Molecule installation method (one of):

pip

Ansible installation method (one of):

pip

Desired Behavior
It should be possible to exclude certain paths for linting with yamllint, either using the yamllint config file or some options inside Molecule.
Actual Behaviour (Bug report only)
molecule lint globs and expands the list of files to lint, based on a hard-coded exclude list (see https://github.com/metacloud/molecule/blob/e6571ea8df8255792690ef792266e9cdfe612dff/molecule/lint/yamllint.py#L142). yamllint won't ignore files if they were supplied verbatim, only if it found them by expansion (makes sense). As a result, it's not possible to exclude files from linting, for example the roles/ directory if you're running Molecule in the same place as doing dev.
Example:
Create the example, install a role, set up Molecule:
mkdir molecule-mcve
ansible-galaxy install angstwad.docker_ubuntu
molecule init scenario -r molecule-mcve

Create some config files:
molecule-mcve/.yamllint
extends: default

ignore: |
  roles/angstwad.docker_ubuntu/

rules:
  braces:
    max-spaces-inside: 1
    level: error
  brackets:
    max-spaces-inside: 1
    level: error
  line-length: disable
  # NOTE(retr0h): Templates no longer fail this lint rule.
  #               Uncomment if running old Molecule templates.
  # truthy: disable

molecule-mcve/molecule/default/molecule.yml
---
dependency:
  name: galaxy
driver:
  name: docker
lint:
  name: yamllint
  options:
    config-file: .yamllint
platforms:
  - name: instance
    image: centos:7
provisioner:
  name: ansible
  lint:
    name: ansible-lint
scenario:
  name: default
verifier:
  name: testinfra
  lint:
    name: flake8

Try the linter:
 samn@RD011386 (molecule-mcve) > molecule --debug lint
--> Validating schema /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/molecule.yml.
Validation completed successfully.
--> Test matrix

└── default
    └── lint

--> Scenario: 'default'
--> Action: 'lint'
--> Executing Yamllint on files found in /Users/samn/local-projects/infra-ansible/molecule-mcve/...
DEBUG: ANSIBLE ENVIRONMENT
--- {}

DEBUG: MOLECULE ENVIRONMENT
---
MOLECULE_DEBUG: 'True'
MOLECULE_DEPENDENCY_NAME: galaxy
MOLECULE_DRIVER_NAME: docker
MOLECULE_EPHEMERAL_DIRECTORY: /var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default
MOLECULE_FILE: /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/molecule.yml
MOLECULE_INSTANCE_CONFIG: /var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default/instance_config.yml
MOLECULE_INVENTORY_FILE: /var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default/ansible_inventory.yml
MOLECULE_LINT_NAME: yamllint
MOLECULE_PROVISIONER_LINT_NAME: ansible-lint
MOLECULE_PROVISIONER_NAME: ansible
MOLECULE_SCENARIO_DIRECTORY: /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default
MOLECULE_SCENARIO_NAME: default
MOLECULE_VERIFIER_LINT_NAME: flake8
MOLECULE_VERIFIER_NAME: testinfra
MOLECULE_VERIFIER_TEST_DIRECTORY: /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/tests

DEBUG: SHELL REPLAY
MOLECULE_DEBUG=True MOLECULE_DEPENDENCY_NAME=galaxy MOLECULE_DRIVER_NAME=docker MOLECULE_EPHEMERAL_DIRECTORY=/var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default MOLECULE_FILE=/Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/molecule.yml MOLECULE_INSTANCE_CONFIG=/var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default/instance_config.yml MOLECULE_INVENTORY_FILE=/var/folders/0c/r16s8g7n5lq514821nygj5x41l04v5/T/molecule/molecule-mcve/default/ansible_inventory.yml MOLECULE_LINT_NAME=yamllint MOLECULE_PROVISIONER_LINT_NAME=ansible-lint MOLECULE_PROVISIONER_NAME=ansible MOLECULE_SCENARIO_DIRECTORY=/Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default MOLECULE_SCENARIO_NAME=default MOLECULE_VERIFIER_LINT_NAME=flake8 MOLECULE_VERIFIER_NAME=testinfra MOLECULE_VERIFIER_TEST_DIRECTORY=/Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/tests

DEBUG: COMMAND
/usr/local/bin/yamllint -s --config-file=.yamllint /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/docker.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/.travis.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/vars/python3.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/vars/python2.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/vars/main.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/tasks/kernel_check_and_update.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/tasks/main.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/meta/main.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/defaults/main.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/handlers/main.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/molecule.yml /Users/samn/local-projects/infra-ansible/molecule-mcve/molecule/default/playbook.yml

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/docker.yml
      3:11      warning  truthy value should be true or false  (truthy)
      7:7       error    wrong indentation: expected 4 but found 6  (indentation)
      9:2       warning  missing starting space in comment  (comments)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/.travis.yml
      10:4      warning  missing starting space in comment  (comments)
      17:1      warning  comment not indented like content  (comments-indentation)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/vars/python3.yml
      3:1       warning  missing document start "---"  (document-start)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/vars/python2.yml
      3:1       warning  missing document start "---"  (document-start)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/tasks/kernel_check_and_update.yml
      1:1       warning  missing document start "---"  (document-start)
      5:19      warning  truthy value should be true or false  (truthy)
      17:19     warning  truthy value should be true or false  (truthy)
      29:19     warning  truthy value should be true or false  (truthy)
      43:19     warning  truthy value should be true or false  (truthy)
      56:11     warning  truthy value should be true or false  (truthy)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/tasks/main.yml
      39:19     warning  truthy value should be true or false  (truthy)
      46:18     warning  truthy value should be true or false  (truthy)
      52:19     warning  truthy value should be true or false  (truthy)
      60:19     warning  truthy value should be true or false  (truthy)
      84:19     warning  truthy value should be true or false  (truthy)
      188:19    warning  truthy value should be true or false  (truthy)
      248:15    warning  truthy value should be true or false  (truthy)
      341:12    error    too many spaces after colon  (colons)
      343:13    warning  truthy value should be true or false  (truthy)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/meta/main.yml
      22:3      warning  comment not indented like content  (comments-indentation)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/defaults/main.yml
      39:2      warning  missing starting space in comment  (comments)
      82:37     warning  truthy value should be true or false  (truthy)
      85:24     warning  truthy value should be true or false  (truthy)

    /Users/samn/local-projects/infra-ansible/molecule-mcve/roles/angstwad.docker_ubuntu/handlers/main.yml
      8:35      error    trailing spaces  (trailing-spaces)

Running yamllint manually:
 samn@RD011386 (molecule-mcve) > /usr/local/bin/yamllint -s --config-file=.yamllint .
 samn@RD011386 (molecule-mcve) > echo $?
0

You're using Molecule in a non-standard way.  Molecule is to be executed from inside the root of the role.  Having a base directory with roles/ isn't really going to work right.
Below I created a new role and had molecule automatically install the role dependencies into the ephemeral directory, which Molecule will ignore by default.
$ molecule init role -r molecule-mcve
$ cd molecule-mcve

$ cat molecule/default/requirements.txt
---
- name: angstwad.docker_ubuntu
  src: angstwad.docker_ubuntu

$ molecule dependency
    - downloading role 'docker_ubuntu', owned by angstwad
    - downloading role from https://github.com/angstwad/docker.ubuntu/archive/v3.5.2.tar.gz
    - extracting angstwad.docker_ubuntu to /private/var/folders/_j/ncm1yw111bb771f6zsw1d3lc0000gn/T/molecule/molecule-mcve/default/roles/angstwad.docker_ubuntu
    - angstwad.docker_ubuntu (v3.5.2) was installed successfully


tappable grid menu for tutorial entries... because there will be more

I have a plan for sorting out the tutorial and demo menus and programs. watch this space


Generated Flow/TypeScript doesn't include the actual queries

Problem
At the moment running apollo-codegen with --target of either flow, flow-modern, typescript or typescript-modern generates only type definitions, but the generated code doesn't include the GraphQL queries themselves, leaving the programmer to get their GraphQL queries into their code by some other means (eg gql tagged templates, importing the parsed contents of .graphql files with graphql-document-collector or webpack-graphql-loader, etc).
This means the programmer has to correlate the query itself with the types generated by apollo-codegen manually, and could get it wrong.
Example:
# getUser.graphql

query getUser($id: Int!) {
  user(id: $id) {
    id
    name
    email
  }
}

apollo-codegen produces:
// graphql_types.ts

export type getUser = {
  id: number,
  name: string,
  email: string,
}

export type getUserVariables = {
  id: number
}

The programmer can write something erroneous like this, and it will still type check.
// some_code.ts

let apollo = new ApolloClient(...)

// This isn't the right type!
type User = {
  firstName: string,
  lastName: string,
}

function getUser(username: string): Promise<ApolloQueryResult<User>> {
  return apollo.query({
    query: require("./getUser.graphql"),
    // getUser() takes an id, not a username!
    variables: {username}
  })
}

This is because:

ApolloClient.query has type query<T>(options: WatchQueryOptions): Promise<ApolloQueryResult<T>>, which means the output can be used as whatever type the caller wants.
WatchQueryOptions.variables has type { [key: string]: any }, so the caller can pass whatever variables they want.
WatchQueryOptions.query has type DocumentNode, so the caller can pass whatever GraphQL document they want.

There is no static typing to make sure these three things actually match.
Is there a solution to this? Maybe I am not using apollo-client and apollo-codegen correctly?
Solution?
I would have expected the types in apollo-client to be something like:
class Query<Tvars, Tret> {
  constructor(public document: Document) {}

  // Dummy method to force TypeScript to pay attention to the Tvars and Tret types
  private __nominal(x: Tvars): Tret { return 1 as any }
}

export interface WatchQueryOptions<Tvars, Tret> {
  variables?: Tvars
  query: Query<Tvars, Tret>;
  // ...
}

class ApolloClient {
  // ...
  query<Tvars, Tret>(
    options: WatchQueryOptions<Tvars, Tret>
  ): Promise<ApolloQueryResult<Tret>> {
    // ...
  }
  // ...
}

Then for apollo-codegen to generate something like this:
// graphql_docs.ts

let getUser = new Query<{
  id: Int,
}, {
  id: Int,
  name: String,
  email: String,
}>(gql`
  query getUser($id: Int!) {
    user(id: $id) {
      id
      name
      email
    }
  }
`)

And ApolloClient.query called like:
import {getUser} from "./graphql_docs"

let apollo = new ApolloClient(...)

apollo.query({query: getUser, variables: {id: 1}})

This way the type of the variables, the type of the result, and the query document itself are packaged together, so:

The developer doesn't have to import the query documents by some other means. They're there in the output from apollo-codegen.
The developer can't misuse the queries with the wrong variables and output types, due to the extra typing in ApolloClient.query, WatchQueryOptions, and output from apollo-codegen.

To answer: Is there a solution to this? Maybe I am not using apollo-client and apollo-codegen correctly?
I think what you've stated here is along the right lines (and looks like a good next step). We'll have to refine the type output along with the apollo-client project to make this work. Without integrating with apollo-client's generics, there will be room for user error.
However, there are some use cases where people want access to the raw types like when they're defining functions that take the query output as input, they're using fragments, etc so I think it's still worth it to keep the current output (raw types) around.
I'd love to continue discussing the correct implementation of this, since I agree that it'll improve the overall usability of apollo-codegen.

With typescript you can specify the query type with a generic parameter to apollo.query<T>. That helps the response type but not the variables.
I would really like if apollo-codegen also exported a function in output.ts:
function getUser(apollo: Apollo, variables: getUserVariables): Observable<ApolloQueryResult<getUserQuery>> {
  return apollo.query<getUserQuery>({
    query: GET_USER // embedded or imported or whatever
    variables,
  });
}

That would complete the circle and make it completely type-safe based on the query itself.

This looks like the best solution. @lewisf maybe a new query method with the additional type checking?
Since it looks like it will require coordination with apollo-client, perhaps an intermediate implementation for the meantime would be good. You could just generate one extra function that takes an apollo instance and the query parameters, and returns the result. Like:
// (getUserVariables and getUserQuery defined just above)

function getUser(apollo: Apollo, variables: getUserVariables):
Observable<ApolloQueryResult<getUserQuery>> {
  return apollo.query<getUserQuery>({
    query: gql`embed query`, // or import it from another file or webpack-loader or ....
    variables,
  });
}

Now as long as you execute the query by calling this function everything is type safe. And this only requires a change to apollo-codegen, and only to generate one more object. I'm not sure what the correct return type signature is, or if it would need to be configurable.
Thoughts?

It would also be great for this to support react-apollo's HOCs or something that would be suitable to be used there. Not sure how that would look and how it could be such that it's not particularly tied to react-apollo, since it would also be nice to support other UI frameworks as well.

I think that @infogulch would work great. Unfortunately it ties the generated code to apollo client.
I took a stab at creating a quick implementation of this and I am able to produce the below result.
interface GraphqlClient<TVars, TRet> {
  query(options: { query: string, variables: TVars}): Promise<TRet>;
  mutate(options: { mutation: string, variables: TVars}): Promise<TRet>;
}

export type FetchRestaurantsQueryVariables = {|
  menuItemId: string,
|};

export type FetchRestaurantsQuery = {|
  fetchMenuItem: ?MenuItem,
|};

function FetchRestaurants(graphqlClient: GraphqlClient, variables: FetchRestaurantsQueryVariables): Observable<ApolloQueryResult<getUserQuery>> {
  const query = gql`
    query FetchRestaurants($menuItemId: String!) {
      fetchMenuItem(menuItemId: $menuItemId) {
        id
        categoryId
      }
    }
  `;
  return graphqlClient.query<FetchRestaurantsQuery>({
    query,
    variables,
  }
}

The idea is that we should not tie the generated code to apollo-client. This way someone using a different client can always implement the interface.
If this is the direction we want this to go, I would be happy to take a stab at implementing this or something similar.

That would be awesome in my opinion. (unsurprisingly)

I feel this does not have to be completely solved by the code generator. The interface to Apollo Client can be improved with function overloading (no need to change the implementation, instead just add overload which is better typed). And I believe the Query definition from the original post should also live there. This way, others can also benefit from strong typing, and there is no need for adapters - people can use the original API.
The most important thing for codegen is to export GraphQL query - either with gql or by re-exporting graphql file (when queries are in separate files). We can change its type to fit our needs:
export interface XyzQueryResult ...
export interface XyzQueryVariables ...

// Make sure XyzQuery has the type Query<XyzQueryResult, XyzQueryVariables>
export XyzQuery from 'X.graphql';
// ... or ...
const XyzQuery = gql`...` as Query<XyzQueryResult, XyzQueryVariables>;
export XyzQuery;

Then Apollo Client could be typed as suggested in the original post.
Arguably, this will tie code generation to Apollo. In all seriousness though, the name of this project is apollo-codegen 😄
Additionally, we can generate React-specific types too (such as XyzProps) if such an option is provided.
Thoughts?

Take a look on my PR #423
There is approach with intermediate module, generated code will use it to produce any method for you need:
Generated code:
import codeGenerationModule from '...';
export const doTestQuery = codeGenerationModule<TestQuery, TestQueryVariables, {operationType: "query"}>(
gql`...`,
{operationType: "query"}
);


feat(FormlyField): use ng-container instead of deprecated template.

What kind of change does this PR introduce? feature
in angular v4 template is deprecated in favor of ng-template and there is no way to change it without breaking change. Replacing it with ng-container would allow us to support both v2 and v4.

This change is

Codecov Report

Merging #383 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #383   +/-   ##
=======================================
  Coverage   92.44%   92.44%
=======================================
  Files          15       15
  Lines         754      754
  Branches      197      197
=======================================
  Hits          697      697
  Misses         57       57

Impacted Files
Coverage Δ

src/core/components/formly.field.ts
86.02% <ø> (ø)
:white_check_mark:

Continue to review full report at Codecov.

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


Convert the processing portion of our current process into a command line utility

GIVEN that processing fetched data is a part of our flow
AND this should be automated into our command lined tool
WHEN a user of the tool wants to process the fetched data
THEN they can add a --process argument to the tool to do so
AND the syntax and results of this argument follows our existing documentation

A part of our script now, but renamedc from 'process' to 'process-cache' to be more explicit that we are processing the files located in our cache folder.


CAMEL-10546: Renamed CamelContext.getProperties to getGlobalOptions

See camel-10546 for more details.

I think some code in camel-core-xml / camel-spring and camel-blueprint may use the old deprecated api as you can configure those global options from xml as well.
I wonder if you had time to look there too, and migrate this code to use the newer api?

Yeah, I will take a look this week. I could also remove use of the old api inside camel-core itself.

Note that I didn't spot any use of the deprecated api in camel-blueprint. Did I miss something ?

No I dont think so as its inherited from camel-core-xml

@aldettinger thanks I will get this merged. There is more work I posted a comment on
https://issues.apache.org/jira/browse/CAMEL-10546
If you can help with that as well would be great. Then you can open a new PR with that work

Thanks Claus, I will follow your indications in another PR then.