text:
Implement Support for LaTeX Builder

Describe the bug
Any prf:xxx directive (including prf:proof) causes the latex builder to error out, even when the html builder is fine.
To Reproduce
content file:
# Testing
Here is a theorem.

```{prf:theorem} Important theorem
It's true.
```

_config.yml:
# Book settings
title: FUBAR
author: Me

latex:
  latex_documents:
    targetname: mybook.tex

sphinx:
  extra_extensions:
    - sphinx_proof

TOC file has just the content MD file.
jb build . --builder latex
Running Jupyter-Book v0.10.1
Source Folder: /home/driscoll/Documents/tmp-latexbook
Config Path: /home/driscoll/Documents/tmp-latexbook/_config.yml
Output Path: /home/driscoll/Documents/tmp-latexbook/_build/latex
Running Sphinx v3.5.1
myst v0.13.3: MdParserConfig(renderer='sphinx', commonmark_only=False, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, update_mathjax=True, enable_extensions=['colon_fence', 'dollarmath', 'linkify', 'substitution'], disable_syntax=[], url_schemes=['mailto', 'http', 'https'], heading_anchors=None, html_meta=[], footnote_transition=True, substitutions=[], sub_delimiters=['{', '}'])
building [mo]: targets for 0 po files that are out of date
building [latex]: all documents
updating environment: [new config] 1 added, 0 changed, 0 removed
reading sources... [100%] overview
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
processing python.tex... overview
resolving references...
done
writing... failed

Exception occurred:
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/writers/latex.py", line 2072, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: enumerable_node
The full traceback has been saved in /tmp/sphinx-err-aledue__.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
Traceback (most recent call last):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/jupyter_book/sphinx.py", line 150, in build_sphinx
    app.build(force_all, filenames)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/application.py", line 352, in build
    self.builder.build_update()
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 293, in build_update
    self.build(['__all__'], to_build)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 360, in build
    self.write(docnames, list(updated_docnames), method)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/latex/__init__.py", line 304, in write
    docwriter.write(doctree, destination)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/writers/__init__.py", line 78, in write
    self.translate()
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/writers/latex.py", line 101, in translate
    self.document.walkabout(visitor)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 214, in walkabout
    if child.walkabout(visitor):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 214, in walkabout
    if child.walkabout(visitor):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 206, in walkabout
    visitor.dispatch_visit(self)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/util/docutils.py", line 471, in dispatch_visit
    super().dispatch_visit(node)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 1995, in dispatch_visit
    return method(node)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/writers/latex.py", line 2072, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: enumerable_node

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

Traceback (most recent call last):
  File "/home/driscoll/anaconda3/bin/jb", line 8, in <module>
    sys.exit(main())
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/jupyter_book/commands/__init__.py", line 305, in build
    result, builder, OUTPUT_PATH, build_type, PAGE_NAME, click.echo
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/jupyter_book/commands/__init__.py", line 546, in builder_specific_actions
    raise RuntimeError(_message_box(msg, color="red", doprint=False)) from result
RuntimeError:
===============================================================================

There was an error in building your book. Look above for the cause.

===============================================================================

Expected behavior
Successful production of tex file.
Environment

Python Version [e.g. 3.7.1]: 3.7.6

Sphinx version: 3.5.1

Package versions or output of jupyter-book --version:
Jupyter Book: 0.10.1
MyST-NB: 0.12.0
Sphinx Book Theme: 0.0.39
MyST-Parser: 0.13.3
Jupyter-Cache: 0.4.2
NbClient: 0.5.3

Operating System:
Linux, Mac OS (for M1)

Additional context
Contents of sphinx log file below. I can't understand why sphinx_proof does not appear in the list of loaded extensions, but again, it all works fine with the default html builder.
# Sphinx version: 3.5.1
# Python version: 3.7.6 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.3
# Last messages:
#   0 added, 0 changed, 0 removed
#   looking for now-outdated files...
#   none found
#   processing python.tex...
#   overview
#
#   resolving references...
#   done
#   writing...
#   failed
# Loaded extensions:
#   sphinx.ext.mathjax (3.5.1) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.2) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.2) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (1.0.3) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.4) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.3) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /home/driscoll/anaconda3/lib/python3.7/site-packages/alabaster/__init__.py
#   sphinx_togglebutton (0.2.3) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_togglebutton/__init__.py
#   sphinx_copybutton (0.3.1) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_copybutton/__init__.py
#   myst_nb (0.12.0) from /home/driscoll/anaconda3/lib/python3.7/site-packages/myst_nb/__init__.py
#   jupyter_book (0.10.1) from /home/driscoll/anaconda3/lib/python3.7/site-packages/jupyter_book/__init__.py
#   sphinx_thebe (0.0.8) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_thebe/__init__.py
#   sphinx_comments (0.0.3) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_comments/__init__.py
#   sphinx.ext.intersphinx (3.5.1) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/ext/intersphinx.py
#   sphinx_panels (0.5.2) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_panels/__init__.py
#   sphinx_book_theme (unknown version) from /home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx_book_theme/__init__.py
Traceback (most recent call last):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/jupyter_book/sphinx.py", line 150, in build_sphinx
    app.build(force_all, filenames)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/application.py", line 352, in build
    self.builder.build_update()
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 293, in build_update
    self.build(['__all__'], to_build)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 360, in build
    self.write(docnames, list(updated_docnames), method)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/builders/latex/__init__.py", line 304, in write
    docwriter.write(doctree, destination)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/writers/__init__.py", line 78, in write
    self.translate()
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/writers/latex.py", line 101, in translate
    self.document.walkabout(visitor)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 214, in walkabout
    if child.walkabout(visitor):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 214, in walkabout
    if child.walkabout(visitor):
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 206, in walkabout
    visitor.dispatch_visit(self)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/util/docutils.py", line 471, in dispatch_visit
    super().dispatch_visit(node)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/docutils/nodes.py", line 1995, in dispatch_visit
    return method(node)
  File "/home/driscoll/anaconda3/lib/python3.7/site-packages/sphinx/writers/latex.py", line 2072, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: enumerable_node

Thanks, @tobydriscoll for the issue. Looks like some nodes in this repo have not been implemented for the latex build. We will work on it soon :)

@AakashGfude here are some LaTeX resources for proof and theorems
https://www.overleaf.com/learn/latex/Theorems_and_proofs

@tobydriscoll this issue has been resolved with this PR https://github.com/executablebooks/sphinx-proof/pull/58 , v0.1.0 onwards will have the fix.

authors: AakashGfude mmcky tobydriscoll

repo: executablebooks/sphinx-proof


text:
Adding more documentation for contributers

There was some question about how to make the config.json file a bit more
discoverable, so I figured documentation was a good place to start with that.
This way people know what that file is for, know that the order matters, and
also know to add their new exercise to that file when they are adding a new one
to the repo.
This addresses this comment by @kytrinyx.

We have a Contributor guide that we try to point people to. What do you think we can do to make the guide easier to understand / the config thing more discoverable there? https://github.com/exercism/x-common/blob/master/CONTRIBUTING.md
Is the problem that people don't read the guide (perhaps because it's so long)?

I think the problem is that before now I didn't know that guide existed. In looking at the README for this repo, my eye jumped to the bulleted points on how to contribute, and the link to that file wasn't in there. I'm thinking maybe if that's just the first bullet point then it would be easier to see? Once I saw that file then I saw the bit about the config.json, but I think the problem is getting folks to see that file.

Yeah, making it the first bullet point would probably be a good idea!

Thanks 🎉

source: gharchive/pull-request

authors: devonestes kytrinyx parkerl

repo: exercism/xelixir

license: mit

license_type: permissive

license_source: bigquery


text:
Survey.add_rule() method is not correctly administering skip logic

Example:
from edsl.questions import QuestionMultipleChoice, QuestionNumerical, QuestionFreeText
from edsl import Survey

q1 = QuestionMultipleChoice(
   question_name = "best_pet",
   question_text = "What is the best kind of pet?",
   question_options = ["Dog", "Fish", "Lizard", "Parrot"]
)
q2 = QuestionNumerical(
   question_name = "ideal_fish",
   question_text = "What is the ideal number of fish to own?"
)
q3 = QuestionFreeText(
   question_name = "parrots",
   question_text = "What are parrots known for?"
)
survey = Survey([q1, q2, q3]).add_rule(q1, "best_pet == 'Dog'", q3)
results = survey.run()
results.select("best_pet", "ideal_fish", "parrots").print(format="rich")

Stop rule is correctly displayed in Survey object:

But the response to q3 is still "None" when it should have been administered based on the rule:

This is part of the code where the bug likely lives:
https://github.com/expectedparrot/edsl/blob/49a41cf08075fe0bf1bfd34082750553f89c66a2/edsl/jobs/interviews/InterviewTaskBuildingMixin.py#L187

source: gharchive/issue

authors: johnjosephhorton rbyh

repo: expectedparrot/edsl

license: MIT

license_source: github-api


text:
TOG-558: remove DescribeOrg perm as its no longer needed

Jira ticket: https://expel-io.atlassian.net/browse/TOG-558
We no longer need the DescribeOrg permission as we've updated how we gather AWS usage in our pollers, this change both updates the AWS doc + the stackset file that is downloaded that contains all the necessary permissions needed

[post merge comment]: we'd need to remove it here & here as well.

authors: Xxyumi-hub sarjumulmi

repo: expel-io/terraform-aws-cloudtrail


text:
Hello，calculate faithfulness Error: No statements were generated from the answer

[ ]Hello I have checked the documentation and related resources and couldn't resolve my bug.
Describe the bug
Hello, when I run a sample like this with chinese:
from datasets import Dataset
import os
from ragas import evaluate
from ragas.metrics import faithfulness, answer_similarity, answer_correctness
os.environ["OPENAI_API_KEY"] ="xxxxxx"
data_samples = {
'question': [''],
'answer': ['当站台一侧或一组灯带不亮时，处理步骤如下：\n\n1. 安全措施：首先确保在处理故障时断开电源，以避免电击风险。\n\n2. 检查LED日光灯：如果是个别灯不亮，检查这些LED日光灯是否故障。拆下不亮的灯泡，检查是否需要更换新的灯泡或其驱动器。\n\n3. 检查电压：如果部分灯不亮，可能是电压问题。使用电压表检测电源电压是否在正常范围内。如果电压不稳定，可能需要调整电源或查找其他故障源。\n\n4. 检查供电箱和控制空开：如果整侧灯带不亮，检查供电箱的灯带切换和控制空开是否正常工作。确认空开没有跳闸，如果发现异常，进行调整或更换。\n\n5. 检查卡位和安装：确认灯带的卡位是否牢固，是否存在损坏导致灯带无法正常工作。如有必要，修复或更换卡位以确保灯带固定。\n\n6. 检查接线：检查连接线是否松动或老化。紧固接线，确保所有连接处无松动现象，必要时更换损坏的电线。\n\n7. 重新接通电源并测试：在完成上述步骤后，重新接通电源，并测试站台灯带是否恢复正常。如果问题仍未解决，可能需要进一步的专业电气检查和维修，并通知相关人员配合。\n\n请务必在执行这些步骤时遵守所有安全规定，并在必要时寻求专业帮助。'],
'contexts' : [['']],
'ground_truth': ['当站台一侧或一组灯带不亮时，应按照以下步骤进行处理：\n1.检查空气开关：\n到达现场后，首先通过车站电话报告环调维修人员已到现场，并向车站工作人员申请C2类临修点。\n检查相应灯带箱的空气开关是否跳闸或烧坏。如果空气开关跳闸，尝试复位或更换空气开关。\n2.检查线路电压：\n使用万用表或电笔测量线路是否有电。如果发现线路没有电，进一步检查电源是否正常供电。\n3.检查线路完整性：\n检查线路是否短路或烧坏。可以通过目视检查或使用测电工具来确定线路的状况。如果发现短路或烧坏情况，进行相应的维修或更换线路。\n4.处理异常情况：\n清理线路中的异物或修复损坏的部分。如果发现灯带本身损坏，需要更换灯带。\n5.报告处理结果：\n处理完成后，向环调和车站报告处理结果，确保记录维修日志以备后续参考。\n联系人信息：\n如果在处理过程中需要进一步的支持或确认解决方案，可以联系以下负责人：\n电力调度员：张三，电话号码：12345678，负责供电日常组织、指挥工作，保证整个地铁供电系统安全运行和连续供电。\n故障报告：\n根据上述步骤生成的故障报告应包括以下内容：\n1.故障描述：站台一侧或一组灯带不亮。\n2.故障原因：可能是空气开关跳闸、线路断电或线路短路等原因引起。\n3.处理步骤：检查空气开关、线路电压和线路完整性，清理异物或修复损坏部分。\n4.联系人信息：电力调度员张三，电话号码：12345678。\n5.处理结果：处理完成后报告环调和车站，并记录维修日志。\n按照以上步骤进行操作，确保灯带故障能够及时、准确地得到处理和解决。']
}
dataset = Dataset.from_dict(data_samples)
score = evaluate(dataset,metrics=[answer_similarity,faithfulness,answer_correctness])
print (score["answer_correctness"])
print(score.to_pandas())
Ragas version: 0.1.9
Python version: 3.10
Code to Reproduce
Share code to reproduce the issue
Error trace
Evaluating:   0%|          | 0/3 [00:00<?, ?it/s]No statements were generated from the answer.
Evaluating:  67%|██████▋   | 2/3 [01:15<00:37, 37.71s/it]
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 67, in map_httpcore_exceptions
yield
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 371, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 268, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 251, in handle_async_request
response = await connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection.py", line 103, in handle_async_request
return await self._connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 133, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 111, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 176, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 226, in _receive_event
raise RemoteProtocolError(msg)
httpcore.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1522, in _request
response = await self._client.send(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1646, in send
response = await self._send_handling_auth(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1674, in _send_handling_auth
response = await self._send_handling_redirects(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1711, in _send_handling_redirects
response = await self._send_single_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1748, in _send_single_request
response = await transport.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 370, in handle_async_request
with map_httpcore_exceptions():
File "D:\ProgramData\anaconda3\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 84, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.RemoteProtocolError: Server disconnected without sending a response.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 67, in map_httpcore_exceptions
yield
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 371, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 268, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 251, in handle_async_request
response = await connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection.py", line 103, in handle_async_request
return await self._connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 133, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 111, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 176, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 226, in _receive_event
raise RemoteProtocolError(msg)
httpcore.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1522, in _request
response = await self._client.send(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1646, in send
response = await self._send_handling_auth(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1674, in _send_handling_auth
response = await self._send_handling_redirects(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1711, in _send_handling_redirects
response = await self._send_single_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1748, in _send_single_request
response = await transport.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 370, in handle_async_request
with map_httpcore_exceptions():
File "D:\ProgramData\anaconda3\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 84, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.RemoteProtocolError: Server disconnected without sending a response.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 67, in map_httpcore_exceptions
yield
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 371, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 268, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection_pool.py", line 251, in handle_async_request
response = await connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\connection.py", line 103, in handle_async_request
return await self._connection.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 133, in handle_async_request
raise exc
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 111, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 176, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpcore_async\http11.py", line 226, in _receive_event
raise RemoteProtocolError(msg)
httpcore.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1522, in _request
response = await self._client.send(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1646, in send
response = await self._send_handling_auth(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1674, in _send_handling_auth
response = await self._send_handling_redirects(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1711, in _send_handling_redirects
response = await self._send_single_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_client.py", line 1748, in _send_single_request
response = await transport.handle_async_request(request)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 370, in handle_async_request
with map_httpcore_exceptions():
File "D:\ProgramData\anaconda3\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\httpx_transports\default.py", line 84, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.RemoteProtocolError: Server disconnected without sending a response.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\ProgramData\anaconda3\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\executor.py", line 95, in run
results = self.loop.run_until_complete(self._aresults())
File "D:\ProgramData\anaconda3\lib\asyncio\base_events.py", line 649, in run_until_complete
return future.result()
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\executor.py", line 83, in _aresults
raise e
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\executor.py", line 78, in aresults
r = await future
File "D:\ProgramData\anaconda3\lib\asyncio\tasks.py", line 571, in wait_for_one
return f.result()  # May raise f.exception().
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\executor.py", line 37, in sema_coro
return await coro
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\executor.py", line 111, in wrapped_callable_async
return counter, await callable(*args, **kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\metrics\base.py", line 125, in ascore
raise e
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\metrics\base.py", line 121, in ascore
score = await self.ascore(row=row, callbacks=group_cm, is_async=is_async)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\metrics_answer_correctness.py", line 253, in ascore
is_statement_present = await self.llm.generate(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\llms\base.py", line 93, in generate
return await agenerate_text_with_retry(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity\asyncio_init.py", line 189, in async_wrapped
return await copy(fn, *args, **kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity\asyncio_init.py", line 111, in call
do = await self.iter(retry_state=retry_state)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity\asyncio_init.py", line 153, in iter
result = await action(retry_state)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity_utils.py", line 99, in inner
return call(*args, **kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity_init.py", line 398, in
self._add_action_func(lambda rs: rs.outcome.result())
File "D:\ProgramData\anaconda3\lib\concurrent\futures_base.py", line 451, in result
return self.__get_result()
File "D:\ProgramData\anaconda3\lib\concurrent\futures_base.py", line 403, in __get_result
raise self.exception
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\tenacity\asyncio_init.py", line 114, in call
result = await fn(*args, **kwargs)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\llms\base.py", line 170, in agenerate_text
return await self.langchain_llm.agenerate_prompt(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\langchain_core\language_models\chat_models.py", line 609, in agenerate_prompt
return await self.agenerate(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\langchain_core\language_models\chat_models.py", line 569, in agenerate
raise exceptions[0]
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\langchain_core\language_models\chat_models.py", line 754, in _agenerate_with_cache
result = await self._agenerate(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\langchain_openai\chat_models\base.py", line 666, in _agenerate
response = await self.async_client.create(messages=message_dicts, **params)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai\resources\chat\completions.py", line 1214, in create
return await self._post(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1790, in post
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1493, in request
return await self._request(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1546, in _request
return await self._retry_request(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1615, in _retry_request
return await self._request(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1546, in _request
return await self._retry_request(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1615, in _retry_request
return await self._request(
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\openai_base_client.py", line 1556, in _request
raise APIConnectionError(request=request) from err
openai.APIConnectionError: Connection error.
Traceback (most recent call last):
File "E:\PCI-Agent\ragas_examples.py", line 25, in
score = evaluate(dataset,metrics=[answer_similarity,faithfulness,answer_correctness])
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\evaluation.py", line 250, in evaluate
raise e
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\evaluation.py", line 232, in evaluate
raise ExceptionInRunner()
ragas.exceptions.ExceptionInRunner: The runner thread which was running the jobs raised an exeception. Read the traceback above to debug it. You can also pass raise_exceptions=False incase you want to show only a warning message instead.
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

RemoteProtocolError: Server disconnected without sending a response error, common causes include network issues, API rate limits, server-side issues, or incorrect API keys. Implementing a retry mechanism can help handle transient errors. Here is an example of how you might implement a retry mechanism:

hello,when I set faithfulness.adapt(language="chinese") in my code, I meet another error,
score = evaluate(dataset,metrics=[answer_similarity,faithfulness.adapt(language="chinese"),answer_correctness])
error:
Traceback (most recent call last):
File "E:\PCI-Agent\ragas_examples.py", line 25, in
score = evaluate(dataset,metrics=[answer_similarity,faithfulness.adapt(language="chinese"),answer_correctness])
File "C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\metrics_faithfulness.py", line 302, in adapt
assert self.llm is not None, "LLM is not set"
AssertionError: LLM is not set

To resolve the AssertionError: LLM is not set when trying to adapt the Faithfulness metric to Chinese, you need to ensure that the llm attribute of the Faithfulness class is set before calling the adapt method. Here is how you can do it:

Initialize the language model.
Set the llm attribute of the Faithfulness instance.
Call the adapt method.

Here is an example:
from ragas.llms import LangchainLLMWrapper
from langchain_openai.chat_models import ChatOpenAI
from ragas.metrics import faithfulness, answer_similarity, answer_correctness
from datasets import Dataset
import os

os.environ["OPENAI_API_KEY"] = "your-openai-key"

# Initialize your LLM
llm_instance = LangchainLLMWrapper(ChatOpenAI())

# Set the LLM for the faithfulness metric
faithfulness.llm = llm_instance

# Adapt the faithfulness metric to Chinese
faithfulness.adapt(language="chinese")

data_samples = {
    'question': [''],
    'answer': ['当站台一侧或一组灯带不亮时，处理步骤如下：\n\n1. **安全措施**：首先确保在处理故障时断开电源，以避免电击风险。\n\n2. **检查LED日光灯**：如果是个别灯不亮，检查这些LED日光灯是否故障。拆下不亮的灯泡，检查是否需要更换新的灯泡或其驱动器。\n\n3. **检查电压**：如果部分灯不亮，可能是电压问题。使用电压表检测电源电压是否在正常范围内。如果电压不稳定，可能需要调整电源或查找其他故障源。\n\n4. **检查供电箱和控制空开**：如果整侧灯带不亮，检查供电箱的灯带切换和控制空开是否正常工作。确认空开没有跳闸，如果发现异常，进行调整或更换。\n\n5. **检查卡位和安装**：确认灯带的卡位是否牢固，是否存在损坏导致灯带无法正常工作。如有必要，修复或更换卡位以确保灯带固定。\n\n6. **检查接线**：检查连接线是否松动或老化。紧固接线，确保所有连接处无松动现象，必要时更换损坏的电线。\n\n7. **重新接通电源并测试**：在完成上述步骤后，重新接通电源，并测试站台灯带是否恢复正常。如果问题仍未解决，可能需要进一步的专业电气检查和维修，并通知相关人员配合。\n\n请务必在执行这些步骤时遵守所有安全规定，并在必要时寻求专业帮助。'],
    'contexts': [['']],
    'ground_truth': ['当站台一侧或一组灯带不亮时，应按照以下步骤进行处理：\n1.检查空气开关：\n到达现场后，首先通过车站电话报告环调维修人员已到现场，并向车站工作人员申请C2类临修点。\n检查相应灯带箱的空气开关是否跳闸或烧坏。如果空气开关跳闸，尝试复位或更换空气开关。\n2.检查线路电压：\n使用万用表或电笔测量线路是否有电。如果发现线路没有电，进一步检查电源是否正常供电。\n3.检查线路完整性：\n检查线路是否短路或烧坏。可以通过目视检查或使用测电工具来确定线路的状况。如果发现短路或烧坏情况，进行相应的维修或更换线路。\n4.处理异常情况：\n清理线路中的异物或修复损坏的部分。如果发现灯带本身损坏，需要更换灯带。\n5.报告处理结果：\n处理完成后，向环调和车站报告处理结果，确保记录维修日志以备后续参考。\n联系人信息：\n如果在处理过程中需要进一步的支持或确认解决方案，可以联系以下负责人：\n电力调度员：张三，电话号码：12345678，负责供电日常组织、指挥工作，保证整个地铁供电系统安全运行和连续供电。\n故障报告：\n根据上述步骤生成的故障报告应包括以下内容：\n1.故障描述：站台一侧或一组灯带不亮。\n2.故障原因：可能是空气开关跳闸、线路断电或线路短路等原因引起。\n3.处理步骤：检查空气开关、线路电压和线路完整性，清理异物或修复损坏部分。\n4.联系人信息：电力调度员张三，电话号码：12345678。\n5.处理结果：处理完成后报告环调和车站，并记录维修日志。\n按照以上步骤进行操作，确保灯带故障能够及时、准确地得到处理和解决。']
}

dataset = Dataset.from_dict(data_samples)

# Evaluate the dataset
score = evaluate(dataset, metrics=[answer_similarity, faithfulness, answer_correctness])
print(score.to_pandas())

This ensures that the llm attribute is set before calling the adapt method, resolving the AssertionError [1][2].
To continue talking to Dosu, mention @dosu.

Hello, I use your solution, add code like this:
from datasets import Dataset
import os
from ragas import evaluate
from ragas.metrics import faithfulness, answer_similarity, answer_correctness
from ragas.llms import LangchainLLMWrapper
from langchain_openai.chat_models import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "xxxxxx"
Initialize your LLM
llm_instance = LangchainLLMWrapper(ChatOpenAI())
Set the LLM for the faithfulness metric
faithfulness.llm = llm_instance
Adapt the faithfulness metric to Chinese
faithfulness.adapt(language="chinese")
data_samples = {
'question': [''],
'answer': ['当站台一侧或一组灯带不亮时，处理步骤如下：\n\n1. 安全措施：首先确保在处理故障时断开电源，以避免电击风险。\n\n2. 检查LED日光灯：如果是个别灯不亮，检查这些LED日光灯是否故障。拆下不亮的灯泡，检查是否需要更换新的灯泡或其驱动器。\n\n3. 检查电压：如果部分灯不亮，可能是电压问题。使用电压表检测电源电压是否在正常范围内。如果电压不稳定，可能需要调整电源或查找其他故障源。\n\n4. 检查供电箱和控制空开：如果整侧灯带不亮，检查供电箱的灯带切换和控制空开是否正常工作。确认空开没有跳闸，如果发现异常，进行调整或更换。\n\n5. 检查卡位和安装：确认灯带的卡位是否牢固，是否存在损坏导致灯带无法正常工作。如有必要，修复或更换卡位以确保灯带固定。\n\n6. 检查接线：检查连接线是否松动或老化。紧固接线，确保所有连接处无松动现象，必要时更换损坏的电线。\n\n7. 重新接通电源并测试：在完成上述步骤后，重新接通电源，并测试站台灯带是否恢复正常。如果问题仍未解决，可能需要进一步的专业电气检查和维修，并通知相关人员配合。\n\n请务必在执行这些步骤时遵守所有安全规定，并在必要时寻求专业帮助。'],
'contexts' : [['']],
'ground_truth': ['当站台一侧或一组灯带不亮时，应按照以下步骤进行处理：\n1.检查空气开关：\n到达现场后，首先通过车站电话报告环调维修人员已到现场，并向车站工作人员申请C2类临修点。\n检查相应灯带箱的空气开关是否跳闸或烧坏。如果空气开关跳闸，尝试复位或更换空气开关。\n2.检查线路电压：\n使用万用表或电笔测量线路是否有电。如果发现线路没有电，进一步检查电源是否正常供电。\n3.检查线路完整性：\n检查线路是否短路或烧坏。可以通过目视检查或使用测电工具来确定线路的状况。如果发现短路或烧坏情况，进行相应的维修或更换线路。\n4.处理异常情况：\n清理线路中的异物或修复损坏的部分。如果发现灯带本身损坏，需要更换灯带。\n5.报告处理结果：\n处理完成后，向环调和车站报告处理结果，确保记录维修日志以备后续参考。\n联系人信息：\n如果在处理过程中需要进一步的支持或确认解决方案，可以联系以下负责人：\n电力调度员：张三，电话号码：12345678，负责供电日常组织、指挥工作，保证整个地铁供电系统安全运行和连续供电。\n故障报告：\n根据上述步骤生成的故障报告应包括以下内容：\n1.故障描述：站台一侧或一组灯带不亮。\n2.故障原因：可能是空气开关跳闸、线路断电或线路短路等原因引起。\n3.处理步骤：检查空气开关、线路电压和线路完整性，清理异物或修复损坏部分。\n4.联系人信息：电力调度员张三，电话号码：12345678。\n5.处理结果：处理完成后报告环调和车站，并记录维修日志。\n按照以上步骤进行操作，确保灯带故障能够及时、准确地得到处理和解决。']
}
dataset = Dataset.from_dict(data_samples)
score = evaluate(dataset,metrics=[answer_similarity,faithfulness,answer_correctness])
print (score["faithfulness"])
print(score.to_pandas())
also meet the error: No statements were generated from the answer.
Evaluating:  33%|███▎      | 1/3 [00:01<00:03,  1.81s/it]No statements were generated from the answer.
Evaluating:  67%|██████▋   | 2/3 [00:02<00:01,  1.12s/it]#########################输出tp的值：0
#########################输出fp的值：0
#########################输出fn的值：15
Evaluating: 100%|██████████| 3/3 [00:40<00:00, 13.34s/it]
C:\Users\Lenovo\AppData\Roaming\Python\Python310\site-packages\ragas\evaluation.py:299: RuntimeWarning: Mean of empty slice
value = np.nanmean(self.scores[cn])
nan
question  ... answer_correctness
0           ...           0.235555
[1 rows x 7 columns]
Process finished with exit code 0

repo: explodinggradients/ragas


text:
Integrating third-party LLMs for Evaluating Chinese-native RAGs

Hi there,
Thank you for bringing the elegant RAG Assessment framework to the community.
I am an AI engineer from Alibaba Cloud, and our team has been fine-tuning LLM-as-a-Judge models based on the Qwen foundation LLMs. Through extensive optimizations, our latest model has achieved GPT-4 level alignment with human preferences (indeed, it's performing approximately 5% better on our benchmarks) and it is particularly optimized for Chinese language support.
We are very interested in integrating our model as an evaluation LLM within RAGAS. Additionally, we would be happy to support the use of LLM hosted on Alibaba Cloud's LLM serving platform, EAS, as extension to the current support of AWA, Azure, and Google Vertex AI.
Please let me know if these contributions could be included in RAGAS.
I look forward to your response.
Best regards,
Renjun

@hurenjun would love to explore this further too? what would be the best way forward you have in mind?
would the models be open-sourced by the way? I think it would be really helpful for the chinese userbase because we had a few model that were not supported/working as expected.

Hi @jjmachan, we could offer two methods, following the existing practices of ragas, for integrating our models:

We have supported users in accessing our judge models via an API key. We can integrate this approach into RAGAS to facilitate quick access for users, similar to the current OpenAI/Together model.

We will enable users to deploy our latest judge models on their own resources within Alibaba Cloud. We can assist in implementing support for Alibaba Cloud's EAS as an addition to the current integrated LLM services from Azure, AWS, and Vertex.

In addition, we will continue to iterate on our models and will open-source them as part of our contribution to the community. Currently, we have a paper under double-blind review. I will figure out the best way to do this without violating the anonymity requirement.

@jjmachan Hi, is there any feedback on the above proposal?

@hurenjun I think you can check https://docs.ragas.io/en/stable/howtos/customisations/bring-your-own-llm-or-embs.html
Also, aliyun API compatible with Openai. you could replace base_url.

@landhu Thank you for your comment.
That should work. And I am considering that ragas could maintain some third-party LLMs for evaluation and other purposes, like those on huggingface, in addition to the OpenAI models.

hey @hurenjun sorry about the delay but we are working on #1237 which will have tabs for popular LLM providers in the getting started page. This should make it easier to use.
In the mean time we can maybe write a specific notebook in the how to guides as well if that would help users too - what do you think?

@jjmachan That's gonna be very helpful, especially for developers in regions without directyt access to openai models.
Looking forward to the new feature.

will keep you posted 🙂

authors: hurenjun jjmachan landhu


text:
expo sdk48 Execution failed for task ':app:mergeReleaseResources'.

Build/Submit details page URL
Summary
expo sdk48 Execution failed for task ':app:mergeReleaseResources'. failed when build
Managed or bare?
managed
Environment
[stderr]
FAILURE: Build completed with 2 failures.
[stderr]
1: Task failed with an exception.
[stderr]
[stderr]

What went wrong:
[stderr]
Execution failed for task ':app:mergeReleaseResources'.
[stderr]

A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
[stderr]
Resource compilation failed (Failed to compile values resource file /home/expo/workingdir/build/android/app/build/intermediates/incremental/release/mergeReleaseResources/merged.dir/values/values.xml. Cause: java.lang.IllegalStateException: Can not extract resource from com.android.aaptcompiler.ParsedResource@225bf008.). Check logs for more details.
[stderr]

Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]
2: Task failed with an exception.
[stderr]

[stderr]

What went wrong:
[stderr]
java.lang.StackOverflowError (no error message)
[stderr]
Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]

Get more help at https://help.gradle.org
[stderr]
BUILD FAILED in 7m 59s

Error output
[stderr]
FAILURE: Build completed with 2 failures.
[stderr]
1: Task failed with an exception.
[stderr]
[stderr]

What went wrong:
[stderr]
Execution failed for task ':app:mergeReleaseResources'.
[stderr]

A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
[stderr]
Resource compilation failed (Failed to compile values resource file /home/expo/workingdir/build/android/app/build/intermediates/incremental/release/mergeReleaseResources/merged.dir/values/values.xml. Cause: java.lang.IllegalStateException: Can not extract resource from com.android.aaptcompiler.ParsedResource@225bf008.). Check logs for more details.
[stderr]

Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]
2: Task failed with an exception.
[stderr]

[stderr]

What went wrong:
[stderr]
java.lang.StackOverflowError (no error message)
[stderr]
Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]

Get more help at https://help.gradle.org
[stderr]
BUILD FAILED in 7m 59s

Reproducible demo or steps to reproduce from a blank project
[stderr]
FAILURE: Build completed with 2 failures.
[stderr]
1: Task failed with an exception.
[stderr]
[stderr]

What went wrong:
[stderr]
Execution failed for task ':app:mergeReleaseResources'.
[stderr]

A failure occurred while executing com.android.build.gradle.internal.res.ResourceCompilerRunnable
[stderr]
Resource compilation failed (Failed to compile values resource file /home/expo/workingdir/build/android/app/build/intermediates/incremental/release/mergeReleaseResources/merged.dir/values/values.xml. Cause: java.lang.IllegalStateException: Can not extract resource from com.android.aaptcompiler.ParsedResource@225bf008.). Check logs for more details.
[stderr]

Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]
2: Task failed with an exception.
[stderr]

[stderr]

What went wrong:
[stderr]
java.lang.StackOverflowError (no error message)
[stderr]
Try:
[stderr]

Run with --stacktrace option to get the stack trace.
[stderr]
Run with --info or --debug option to get more log output.
[stderr]
Run with --scan to get full insights.
[stderr]
==============================================================================
[stderr]

Get more help at https://help.gradle.org
[stderr]
BUILD FAILED in 7m 59s

Hello, did you found the problem. I have the same issue and cant found the solution

Same here. Any solution?

Same here. Any solution?

Sorry for my english. I found the issue. Look in the app.json file and Check the Color background for android e.g.: #00000 you must have 5 digits

Same here. Any solution?

Sorry for my english. I found the issue. Look in the app.json file and Check the Color background for android e.g.: #00000 you must have 5 digits

thanks man you helped out so much!!

Same here. Any solution?

Sorry for my english. I found the issue. Look in the app.json file and Check the Color background for android e.g.: #00000 you must have 5 digits

Thanks I got this bug and take a lot of time try to fix it xD

Sorry for my english. I found the issue. Look in the app.json file and Check the Color background for android e.g.: #00000 you must have 5 digits

Thanks a lot. I got this errror for wrong color syntax ##21B4D5.

repo: expo/eas-cli


text:
EAS build, Apple verification code via call is not accepted

Build/Submit details page URL
No response
Summary
Hello,
When trying to run "eas build --platform ios" for the first time it asked me to login to my Apple Developer Account.
Mail and password worked fine, but then my verification code is delivered via call. I enter the code but it says "invalid code" after sending it.
This is whats happening:
› Log in to your Apple Developer account to continue
✔ Apple ID: … mail@XXX.com
› The password is only used to authenticate with Apple and never stored on EAS servers
Learn more: https://bit.ly/2VtGWhU
✔ Password (for mail@XXX.com): … **********************
› Saving Apple ID password to the local Keychain
Learn more: https://docs.expo.dev/distribution/security#keychain
✔ Logged in, verify your Apple account to continue
Two-factor Authentication (6 digit code) is enabled for mail@XXX.com. Learn more: https://support.apple.com/en-us/HT204915
✔ Please enter the 6 digit code you received at +XX •••• ••••••XX: … 237XXX
✖ Invalid code
Two-factor Authentication (6 digit code) is enabled for mail@XXX.com. Learn more: https://support.apple.com/en-us/HT204915
I have tried it three times and it didnt work, I tried it in the normal browser and it works there no problem.
I suspect there is a problem with the phone verification because most people have an apple device and receive the verification code on there (?)
Managed or bare?
Managed
Environment
EAS CLI 0.38.2 environment info:
System:
OS: Linux 5.10 Ubuntu 20.04.3 LTS (Focal Fossa)
Shell: 5.0.17 - /bin/bash
Binaries:
Node: 12.22.5 - ~/.nvm/versions/node/v12.22.5/bin/node
Yarn: 1.22.11 - ~/.nvm/versions/node/v12.22.5/bin/yarn
npm: 6.14.14 - ~/.nvm/versions/node/v12.22.5/bin/npm
Utilities:
Git: 2.25.1 - /usr/bin/git
npmPackages:
expo: ~42.0.0 => 42.0.0
react: 16.13.1 => 16.13.1
react-dom: 16.13.1 => 16.13.1
react-native: https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2
react-native-web: ~0.13.12 => 0.13.18
npmGlobalPackages:
eas-cli: 0.38.2
expo-cli: 4.13.0
Error output
No response
Reproducible demo or steps to reproduce from a blank project
Create a new project
Run build command for iOS
Try to log into your Apple Developer Account
(This issue might only exist when the verification code is sent by call)

I created another user on my MacBook and signed in with the Apple ID so it could use device verification and that worked

https://github.com/expo/third-party/blob/d4c73f27243cf52a7a219eec27c4d31dd8ea2751/packages/app-store/src/auth/TwoFactorAuthRequests.ts#L95 This hardcodes mode to sms  where it should be phone.

Having this same issue

We don't currently support phone call auth method, please use either sms or 2FA (Apple device).

I'm currently having this issue via phone auth but can see it was marked as completed? Is this still an outstanding issue?

Phone call auth is not supported, like mentioned above. That is still the case today.

Phone call support would be a nice feature, we're using a French virtual number and somehow can't receive SMS from Apple, yet receiving calls work.

I am facing this issue as well. Even tho I do understand it's not supported at least provide some information in the CLI.

Same here - input prompt is ambiguous
Please enter the 6 digit code you received at xxx

"Please enter the 6 digit code you received at ...."
I can change to SMS?

same issue

It is a big hassel when you have an urgent deployment and google how to change your 2factor authentication of apple id at such time is a pain in the arss.

What is the reason for not supporting call validation?

I have the same issue, code received not working in th CLi

This is an issue for me since apple does not support sms for phone numbers from Liechtenstein, call is my only option

Otp from call is not supported you have to change your otp method to SMS and try again

This is still an issue to this day and there's no obvious instructions to change the authentication to SMS.

If Apple doesn't support sending SMS in your country then try using an Apple device for 2FA. This can be configured at https://account.apple.com/account/manage
OTP from call is not currently supported. Maintaining the SMS endpoint is already pretty challenging as it changes in subtle ways and can only be tested 4 times every hour.

authors: Akilaah-ambassador Akronae Developeranees EvanBacon FeeJai Mazuh Minisaints PhilippeMeditect chimiWangchukWangdi chrisbruford davidcort kbrandwijk mitramejia quantum-ug ritmillio tobi-or-not


text:
Update Thai translated for Getting started

I have to pull request for update Thai translated for Getting started. Please review.
Note: I did add Thai font into /font/th/ path.
Thank you
Phayao

Anyone can review my changes?

Sorry for the delay @iphayao
You've done a nice job, thanks for the contribution!

authors: crandmck iphayao


text:
What is the meaning of the colour codes when a server is started in dev mode?

Hi,
I just wonder what is the meaning of the colour codes when a server is started (in dev mode)?
It was coloured in grass green showing something like project-name:server Listening on port 3000 +0ms in my console at all time.  However, the colour was changed to 'red' or 'blue', or even 'grass green' when I extend methods in String.prototype in my app.js file.  The colour is depended on how many methods I was adding in..., which confused me.  I thought I have some errors at beginning to see the red, but how about the blue?
Also it is that something we are expecting? or it is a bug?
note.
added 0 method -> green;
added 1 method -> blue;
added 2 methods -> green;
added 3-5 methods -> red;
...
added 6th method -> green;
added 7th method -> blue;
added 8th method -> green;
added 9th methods -> red;
... (pattern repeats)

I'm not sure what you mean. As far as I know there is no code in this module that does that. Can you point me to the code you are asking about?

Oh... I'm sorry, it seems that I'm posting this issue at the wrong place.  That issue is from my IDE(webstorm), not from morgan.

authors: dougwilson leoyli

repo: expressjs/morgan


text:
Developer's guide

(Came from a discussion on the Discord)
I think extendr has a few topics that developers need to know before starting their contributions. For example,

Procedural macro
R internals

So, it's probably good to have some "Developer's guide" (MAINTAINERS_GUIDE.md, or a new file?) and list up some learning resources on it. I guess it's easier to use a wiki first so that everyone can write casually, and eventually commit it to the repository itself.

Looks like a good idea.
I would like to get started on a long form documentation for extendr.
I'm going to be teaching Rust online for the next few days and can
help anyone who wants to learn some more.

@andy-thomason, in what form, at what UTC time?

The lectures are for a private client, but I'll do some similar talks for my Oxford Rust group soon.
My next public speaking engagement is for Cardiff Rust on the 17th. https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/
If you would like, I can pair up with you to do a quick 1:1 after next week.

@andy-thomason, thank you, I'll save the date of your public talk.
Speaking of 1 on 1, perhaps if there are other extendr contributors interested in this, we can make some sort of an online meetup -- not only social things but also development?

I'll try to organise something.
I think that @dfalbel and others may be interested.
I can make it very gentle!
I'm going to be quite busy until next week, however.
Andy.

I am definitely interested!

I'm also earger to get more tools to contribute to this thing.

Developer's guide hasn't happened. We need to revive this project at a later date when the community is larger, and a clear scope can be made. Closing for now.

I don't think we need to close issues such as this if they're unresolved. There's no harm in them hanging around as potential future directions for contributors.

I know it seems a little bit hastily to do this. But these stale conversations are not good for anyone. I'd rather close them. Reopen them. See if the new ones yield contributors, ideas, thoughts, or anything. But having an issue up with smart conversation, of people that are mostly in-active is not healthy.

authors: CGMossa Ilia-Kosenkov andy-thomason dfalbel multimeric yutannihilation

repo: extendr/extendr


text:
Extent Report generated  name is not customizable in latest 4.1.0

Currently using the 4.1.0 version of Extent Report
Create MSTest Class with 2 Test Methods
Added the below code. Extent report is getting generated in the destination folder, but not with the name provided.
Actual: I gave ReportName: Extent.html to get created, but its creating index.html
Expected: It should create the report as per name provided [ Extent.html ]

using System;
using System.Threading;
using AventStack.ExtentReports;
using AventStack.ExtentReports.Reporter;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace AutomationReporting
{
[TestClass]
public class UnitTest1
{
//Extent Reports
public static ExtentReports _extentReports;
public static ExtentTest test;
    public TestContext TestContext { get; set; }

    [ClassInitialize]
    public static void ClassInitialize(TestContext context)
    {
        Console.WriteLine("ClassInitialize");

        string reportPath = "C:\\TestResults" + "\\Reports\\Extent.html";

        ExtentHtmlReporter _extentHtmlReporter = new ExtentHtmlReporter(reportPath);
        _extentHtmlReporter.Config.ReportName = "Extent.html";
        _extentReports = new ExtentReports();
        _extentReports.AttachReporter(_extentHtmlReporter);

        _extentReports.AddSystemInfo("Environment", "Dev");
        _extentReports.AddSystemInfo("Tester", "Vishnu");
        _extentReports.AddSystemInfo("Machine", "Local Laptop");
    }

    [TestInitialize]
    public void TestSetUp()
    {

        test = _extentReports.CreateTest(TestContext.TestName);
        test.Log(Status.Info, TestContext.TestName + " test started");
    }

    [TestMethod]
    public void Adding()
    {
        test.Log(Status.Info, "StepLogsGeneration-1");

        int a = 1;
        int b = 2;

        Assert.AreEqual(3, a + b, "Addition is failing");

        Thread.Sleep(1000);
    }

    [TestMethod]
    public void Subtracting()
    {
        test.Log(Status.Info, "StepLogsGeneration-2");

        int a = 1;
        int b = 2;

        Assert.AreEqual(1, a - b, "Subtraction is failing");

        Thread.Sleep(1000);
    }

    [TestCleanup]
    public void TestCleanUp()
    {
        if (TestContext.CurrentTestOutcome.ToString() == "Passed")
        {
            test.Log(Status.Info, TestContext.TestName + " test Finished");
        }
        else
        {
            test.Fail(TestContext.TestName + " test Finished");
        }
    }

    [ClassCleanup]
    public static void ClassCleanup()
    {
        _extentReports.Flush();
    }
}

}

In the destination folder this is what its creating

Its a small issue, but if its fixed it would be a great product to continue.

@ZimM-LostPolygon @anshooarora  can you please help me on the above issue.

repo: extent-framework/extentreports-csharp


text:
Feature request: Having collapsible nodes inline with log

Today, when I create a node it always appears at the bottom of the log. I would like it to appear inline with the other log entries, according to it's creation timestamp. This will allow me to create nested log entries. For example, I want my log to look like something this:
Navigate to landing page
>>>Login
    Click login link
    Enter user name "dummyUser"
    Enter password "dummyPassword"
    Click login button
<<<Login
>>>Add product to cart
    >>> Search product
        Navigate to search page
        Type "dummyProduct" in the search box
        Click search button
    <<< Search product
    Choose product "dummy product"
    Click "Add to cart"
<<<Add product to cart
>>>Checkout
    ...
    ...
<<<Checkout

Note: I looked at the code and I have an idea how to implement it. I still didn't try to implement it, but I'm willing to try and open a PR if you would accept it.
@ZimM-LostPolygon @anshooarora

Forgot to mention: I guess that the old behavior should be preserved for backwards compatibility, so a new optional flag argument, inline, should be added to CreateNode to specify that the new behavior is desired.


text:
feat: .NET SDK - Host Functions, Async, and Cancellation Support

Continuing mhmd-azeez's .NET Host Functions Support with the following enhancements:

Implement asynchronous plugin calling
Support early cancellation using prerelease plugin-cancel branch
Add a bunch more unit tests including async tests
Fix missing handling of error case in creating plugin where a -1 pointer is returned

Still TODO:

Implement host functions registration into extism_plugin_new (currently passes an empty list of plugins)
Make an easy way to register host functions in a .NET friendly way
Add example host functions code to sample file
Test setting timeout and that it still works with unit tests

This PR depends on #270 .  Once that is merged, this should pass CI.

Closing PR due to attribution issue, will redo.

repo: extism/extism


text:
Microsoft account compatibility

Hi, does this enable me to use my Microsoft account to run MC natively? Or do I need a Mojang-account?
Kind regards

Hi @Fall2299, my account has not been migrated so I cannot test it. I don't know how the new authentication works, so at this time it's Mojang-account only. If you can find resources for how to login with Microsoft accounts I can try to incorporate them.

Thanks for the reply, all I know is that the two factor Microsoft authentication was implemented by a couple of other launchers. Thusfar I have not found a way to launch MC natively using a Microsoft account.

@Fall2299 Could you link to another launcher and I might be able to figure out how they did it

ATLauncher supports Microsoft accounts since December 16 2020. I have already contacted their developer but not yet received a solution.

https://github.com/ATLauncher/ATLauncher#links

Looking through the steps required, I don't feel comfortable attempting this until my account is migrated - sorry!
If you own Minecraft, you can edit the source code for this project to remove the authentication checks. The authentication happens here:
https://github.com/ezfe/minecraft-jar-command/blob/main/Sources/minecraft-jar-command/Commands/RunCommand.swift#L80
You would want to change the auth variable to be assigned to a fake AuthResult() object like this: AuthResult(accessToken: "", clientToken: "", profile: Profile(name: "", id: ""))

No worries, I totally understand! Thanks for the help! I’ll keep trying and update if it works

@Fall2299 ive added this in on ezfe/m1craft

repo: ezfe/minecraft-jar-command


text:
Hybrid genai use case (XC+NIC)

Hi Cameron,
I've added the automation code and work-flow guide to configure and test distributed (aws + gcp) GenAI application secured with XC data guard. Kindly review and merge
Thanks,
Shubham

Looks good to me so merging it.


text:
Add rtp support for PCIe card(s)

@DanAustinGH, the one I mentioned 😄
Adds rtp support for PCIe - like we had discussed in the (long) thread, needs to use the "pcie" IP address, not Ceton => rtp from 192.168.200.2 ... but made it a configurable variable, in case.
Yell if any concerns. Thanks!

How do you determine the PCIe IP address?
Did you get a chance to benchmark the time to tune a channel for each method and CPU load?
I do think working RTP is worth having, but I'd also like to keep the direct hardware method unless it has a noticeable performance hit...

How do you determine the PCIe IP address?

I was wondering what to call this, to avoid confusion 🤣. I'm open to ideas. But it's the local PC IP address, on the same subnet as the Ceton => it's where the Ceton RTP streams to, to be able to feed it in from there. Make sense?

Did you get a chance to benchmark the time to tune a channel for each method and CPU load?

Not yet - but not forgotten! My issue is that I have been seeing error with the latest streaming updates - gradually getting worse with time running. This seems to work around it for now ... so making this change, then I can try to debug the dropped frames.

I do think working RTP is worth having, but I'd also like to keep the direct hardware method unless it has a noticeable performance hit...

Agreed! I want that as well, just need to resolve the dropped frames. This gives me breathing room to do that ... LOL.

Hang on for a minute please - may have found something!

OK, found a bit of a snag. The Ceton allows direct OR rtp, not both simultaneously. I see that if I enable rtp, I can't pull from the device (i.e. cat). That sort of makes sense, and easy to add the logic to not StartStop if using direct ... checked that here, and it works. Oh, and ... "why didn't this happen before?". Because - the IP and port were being rejected before (by Ceton) ... I corrected that, and now the conflict (as it actually does enable rtp).
The snag - it messes with your approach of checking STOPPED or PLAYING from the Ceton (if using direct, as rtp can't be started). The tuner info is still correct in fHDHR, but not for Ceton. So ... keep track of the state separately (for direct?).
Thoughts?
Thanks!

We have a method to determine the state for rtp and for direct, so we may just to fiddle with it a bit.  I do not see an problem with the module only being able to support on mode or the other.
I considered trying to maintain tuner state, but since the standalone can be whacked by other clients or lose power when the fHDHR host does not, I realized it was going to get ugly.  I think that is far less likely on the PCIe, I can still think of ways it might happen.

We have a method to determine the state for rtp and for direct

Sorry, not sure I fully follow - how to detect for direct?

I can still think of ways it might happen.

Agreed, but also not sure there is really a way to avoid it - in either case (even rtp, another rogue device could take over, right?). I guess no matter what, no answer is really foolproof.
And actually, as fHDHR keeps it's own status - it won't allocate a tuner it thinks is in use. So not sure we really need to detect then at the Ceton level?
Thinking out loud, by all means disagree!

I thought we worked that out in the other thread, I will have to go re-read it.
RTP is the method most vulnerable to hijacking.  If you want to try your hand at tuner tracking for the direct method that works for me.

I thought we worked that out in the other thread, I will have to go re-read it.

We may have, and I just forgot - or didn't get it 🤣

RTP is the method most vulnerable to hijacking.

Agreed!

If you want to try your hand at tuner tracking for the direct method that works for me.

Sure, will take a look! The good thing is - fHDHR at the "top" level is tracking correctly.

OK, think I found a way to detect tuner usage ... rtp and direct (device) both. Trying to code here, seems to work. Want me to push a PR, so you can test it out as well?
I also added some items to the web interface, to help with display during debugging 😄.
Thanks!

Definitely submit the changes and I will review as soon as I can...

Will do! Slight redirect ... latest upstream changes break things - let me dig.

Updating my code, not a huge issue, but ... stream_method seems to have gone away? Thinking it's a different name now, but ... @deathbybandaid - with your changes, not sure how I determine direct or rtp in the plugin now?
Thanks!

stream_args["method"]
The stream_args dict is passed to the get_channel_stream function.
There's other information there that has value.

FYI, I removed my check for now - force it, but then,
  File "/mnt/ProgSSD/fHDHR/fHDHR/streammanager/stream_obj.py", line 24, in __init__
    self.setup_channel_stream()
  File "/mnt/ProgSSD/fHDHR/fHDHR/streammanager/stream_obj.py", line 91, in setup_channel_stream
    if self.tuner_needed:
  File "/mnt/ProgSSD/fHDHR/fHDHR/streammanager/stream_obj.py", line 43, in tuner_needed
    if self.stream_args["method"] == "passthrough":
KeyError: 'method'
2022-03-02T03:49:09Z {'REMOTE_ADDR': '192.168.2.64', 'REMOTE_PORT': '36690', 'HTTP_HOST': 'linuxserver.rkmorris.home:5006', (hidden keys: 20)} failed with KeyError

Thanks!

Toss a print line in or what stream_args show in ceton, also don't set self.method like that

Funny, had done just exactly that 🤣. We are in sync!
{'channel': '593', 'channel_name': 'Golf HD', 'channel_callsign': 'Golf HD', 'origin': 'ceton', 'accessed': 'http://linuxserver.rkmorris.home:5006/api/tuners?method=stream&channel=65089df3-ff53-45b4-8656-9a0844d4edd8&origin=ceton', 'base_url': 'http://linuxserver.rkmorris.home:5006', 'client': '192.168.2.64', 'client_id': 'be7dc00c-5f63-4e9a-952d-a692d0559e6a', 'origin_quality': None, 'bytes_per_read': 1152000, 'buffer_size': 3, 'stream_restore_attempts': 3}
{'channel': '593', 'channel_name': 'Golf HD', 'channel_callsign': 'Golf HD', 'origin': 'ceton', 'accessed': 'http://linuxserver.rkmorris.home:5006/api/tuners?method=stream&channel=65089df3-ff53-45b4-8656-9a0844d4edd8&origin=ceton', 'base_url': 'http://linuxserver.rkmorris.home:5006', 'client': '192.168.2.64', 'client_id': 'c44ad89e-3af1-4edc-b34e-984e49e75ec9', 'origin_quality': None, 'bytes_per_read': 1152000, 'buffer_size': 3, 'stream_restore_attempts': 3}

Didn't want to set that, but I need it in startstop_ceton_tuner, and it's not available there 😞. So was adding this in to be able to use it in startstop.

Just pushed  revert

FYI, direct working also. Leaving a test running overnight now ... vlc, two windows - /dev directly into vlc, and one through fHDHR, with debug loglevel. Let's see 😄.
Thanks!

https://github.com/fHDHR/fHDHR/pull/296 fixes close_stream and also adds a new prime_stream for plugins that need a head-start before fHDHR starts pulling content

That works, thanks! FYI, just one that I noticed ... combination type thing (only happens with loglevel = noob, and ffmpeg ... not with direct!), Similar to a recent fix you included, but perhaps just missed ffmpeg streaming?
[2022-03-02 07:12:59,291] NOOB - Set your [logging]level to INFO if you wish to see more logging output.
[2022-03-02 07:13:50,833] ERROR - Unable to Stream: TunerError: Tuner Setup Failed (lazily handled): Tuner Setup Failed (lazily handled):KeyError 'noob'- /mnt/ProgSSD/fHDHR/fHDHR/streammanager/stream/__init__.py line 81
[2022-03-02 07:13:51,594] ERROR - Unable to Stream: TunerError: Tuner Setup Failed (lazily handled): Tuner Setup Failed (lazily handled):KeyError 'noob'- /mnt/ProgSSD/fHDHR/fHDHR/streammanager/stream/__init__.py line 81

I have no idea why that is happening to you. I cannot recreate

@arrmo try pulling new push for ffmpeg plugin
https://github.com/fHDHR/fHDHR_plugin_stream_ffmpeg/pull/9

That works! Apologies if this was me - I thought I pulled all the latest plugins, but I could have missed one 😞.
OK, back to this update ... LOL. Actually, it's almost fully working here, now, with updates to the UI as well. Will try to get the PR in today, so you can look it over.
FYI, I will open a new (top level) issue, related to dropped frames (as I have mentioned). Have some results to share now, but let me clean them up first.
Thanks again!

@DanAustinGH OK, the updated code - enjoy! 😄. Definitely let me know your thoughts. A few items to help explain,

this supports both rtp (udp) and direct for the pcie card
checks are done for both (in use) ... rtp streaming, or direct access
I tied in updating the UI, as it helped me to debug. By all means, propose naming changes if you want!
like I had mentioned, I have to "block" starting rtp streaming, if direct is desired => they are mutually exclusive, the pcie card outputs to rtp OR /dev (direct), not both

@deathbybandaid, by all means comment as well.
Thanks!
PS: A little screenshot from the "updated" UI ... oh, and I see that my daughter is using Plex right now 🤣

Looks good.  I may have not called the hw in use function if using RTP, but I see you dealt with it in the function.
The only minor nit I have is your logging states that the device is PCIe, which can be assumed for direct hardware, but not RTP.
And also super minor, but in the screenshot it looks odd if Transport is 'Stopped' and in HW State is in Use.  And that made me think what would my non-PCI tuner report for HW state.  We might want it to manually set it to 'N/A' for remote devices or not display it at all.
Neither are enough to prevent me from merging, unless you want to tweak them before a merge.

I may have not called the hw in use function if using RTP, but I see you dealt with it in the function.

"in use" is meant to indicate direct access, to the device. I'm all for different naming - just propose something and I'll change it. Really no issue at all!

The only minor nit I have is your logging states that the device is PCIe, which can be assumed for direct hardware, but not RTP.

True, Want me to change that note somehow? I was there as I was working my way through :smile:

And that made me think what would my non-PCI tuner report for HW state. We might want it to manually set it to 'N/A' for remote devices or not display it at all.

Good point! I could change HW State to N/A for remote, like you say. I'm definitely good with that!

Neither are enough to prevent me from merging, unless you want to tweak them before a merge.

Let's tweak it, no issue. I'm game 😄. Just let me know your thoughts on these, and I'll update.

How about merging Transport and HW and use these states (idle/RTP/Direct).  For the logging just remove 'PCIe' fro line 254 in init.py

Will do! Give me just a little bit - as I noticed, daughter is connected, can't restart it right now ... LOL.

Like this?

Yes!  People with stand-alone devices will only See idle or RTP and the PCIe crowd will see what they are configured for.

Agree with you! This does look better, appreciate the suggestion. Another set of eyes always good 👍
Pushed this update, I think we're aligned - but feel free to disagree.
Thanks!

I'm going to merge this and will try to get my stand-alone environment updated for testing today...

Sounds great, thanks! If you see any issues - poke me. We'll get it working for both 👍

This broke the stand-alone device.  The logic to not make the Start API call looks good, but my RTP streams failed with streaming set to ffmpeg or direct.  I changed it to if not self.ceton_pcie and my device is working again.

I changed it to if not self.ceton_pcie and my device is working again.

Do you mean in the Start API? Is it detecting your stand-alone device as PCIe for some reason? Perhaps print that variable out, so we can check it?
Other than this one thing - the rest working? BTW, from the Ceton UI => manually start one tuner streaming (to never never land 😜) ... the UI should detect it.
Thanks!

Just printed out the variables, and the output is exactly as expected. Then it hit me ... I did have to make some changes to adapt to upstream mods. Did you also pull in the latest from the ffmpeg plugin, and fHDHR itself? Meaning ... are those main branches fully updated on your local?
Thanks!

So glad it's not just me who does that 😜
Thanks!

No worries at all! I have done that way too many times myself. Glad it's all working for you!

Then there's me over here merging channels into the origins system.
Channels system worked great back when I only had to support a single origin.

I was worried the death of Locast would demotivate development around the emulator/proxy apps.  I am happy to see that has not been the case....

Agreed! I think this works really well - I even have some plugins I'd like get to, when I have time 😄

BTW, not forgotten about the direct vs. rtp / ffmpeg startup timing. Trying to find a way to measure it automated. I'm open to suggestions!

Perfect is the enemy of good.  Plex, emby and other players will all introduce some variance to the measurements.  I'm just curious if one 'feels' quicker than the other.  For me  Emby usually tunes in 2~3 seconds.  I've had a few .5 second tune and a few 5 second.  I suspect that direct will be a bit quicker and a bit more consistent, having eliminated a bit of network traffic and maybe benefiting from the direct stream not having the UDP packet overhead.

Perfect is the enemy of good.

Agreed! You must be an engineer (too) 😜

For me Emby usually tunes in 2~3 seconds.

Very interesting timing. I say that because ... the answer was staring me in the face, finally smacked me. Here is what I figured out (yell if you disagree of course!),
Use a client (I chose ffmpeg), that I can time => run a fixed duration of video, then remove that duration from the total time ... the remaining time is startup. Agreed so far? So I went with,
time ffmpeg -i 'http://192.168.2.64:5006/api/tuners?method=stream&channel=593&origin=ceton' -t 30 -f null /dev/null

This will time ffmpeg, connecting to the server, tuning to channel 593, and processing 30 seconds of video (dumping it to the trash). I started with 30 seconds in case of any startup artifacts / glitches, make sure the video is running smooth (which 30 seconds should ensure). The result?
real    0m33.337s
user    0m5.556s
sys     0m0.166s

Take off 30 seconds => startup is 3.3 seconds. Not too far from what you mentioned. Of course, different clients will be different, but that's on the client then 😆. I then tried 3 seconds of video, got,
real    0m6.500s
user    0m0.368s
sys     0m0.041s

So 3.5 seconds of startup ... works for me! Don't save this number quite yet - as I have been messing with code here, let me undo some things, get real numbers.
Oh, and something to noodle on. I was also thinking about CI/CD in the back of my mind, cases to run automated, confirm the build is good. Interestingly enough, the command above returns 0 ... as expected. If I pick a bogus channel, I get 1. Woohoo, this could be a CI/CD test, agreed?

OK, 3 runs each, rtp and direct, averaged,
rtp: 2.7 sec
direct: 2.2 sec

Not a huge difference, but a bit quicker direct, as you though. BTW, I do see some interesting things in the two cases, that may lead to more optimization yet?

rtp

Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x565292b5d140] Could not find codec parameters for stream 1 (Audio: ac3 (AC-3 / 0x332D4341), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x565292b5d140] Could not find codec parameters for stream 2 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x565292b5d140] Could not find codec parameters for stream 3 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options

direct, client side

[mpegts @ 0x560886e82ec0] Stream #0: not enough frames to estimate rate; consider increasing probesize
[mpegts @ 0x560886e82ec0] Could not find codec parameters for stream 0 (Video: mpeg2video ([2][0][0][0] / 0x0002), none(tv)): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x560886e82ec0] Could not find codec parameters for stream 1 (Audio: ac3 (AC-3 / 0x332D4341), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x560886e82ec0] Could not find codec parameters for stream 2 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[mpegts @ 0x560886e82ec0] Could not find codec parameters for stream 3 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options

Very similar in both cases
Thinking I closed my AP here 😜. Thanks!

I like it.  Simple and re-producible without worrying about the media server adding its own delay.  I'm not sure how much optimization with yield.  I think increasing probesize might actually slow things down since it is just a stream copy.
And nice to see the actual numbers.  I am considering trying to pick up a PCIe 6 tuner to replace the current 6 tuner and HDHR 3 tuner I keep as a spare.  The .5 second is not a big difference, but I'd eliminate a good bit of traffic off the home network...
Many thanks for the contributions!

I am considering trying to pick up a PCIe 6 tuner to replace the current 6 tuner

Agreed! I do like the internal card => network traffic is just the PCIe bus 😄

HDHR 3 tuner I keep as a spare

@deathbybandaid may want to hear about this - he has been looking for SSDP output from real HW.

Many thanks for the contributions!

Happy to help if I can!

Well ... a slight update 🤣. Improved timing a bit, without any real downside ... I realized that I had buffer_size set to 3. But there is no real upside to that, as for a real-time / streaming input ... you can't gain any ground on the source => and this is just buffering time up front, which really is only delay. So - changed it to 0, confirmed overnight no higher rate of dropped packets, but updating startup timing! Now ...
rtp: 1.8 sec
direct: 1.3 sec

I have been also fiddling with trying to specify the input format, to speed up startup in ffmpeg in case detection is limiting ... but even in the broken case (screwed up parameters, by me 😆), it's ~ 1.2-1.4 sec. So I'm not thinking I'll get much below the times above. Time to move on to the next item ... which, BTW - I'm going to open a new "issue". Will explain it there, and feel free to assign it to me.

Yeah, we talked about the lack of need for buffering for the Ceton.  You may be able to shave another .25~.5 by reducing the bytes_per_read.  The trade off there is the CPU load will go up.  Since each buffer read represented about .7 seconds of delay there is not a huge about to save here.
Off to see if I forgot to reset the buffer values on my install...

Yeah, we talked about the lack of need for buffering for the Ceton. You may be able to shave another .25~.5 by reducing the bytes_per_read. The trade off there is the CPU load will go up. Since each buffer read represented about .7 seconds of delay there is not a huge about to save here.

Agreed! Was thinking that too - perhaps a slight savings. Like you say, a tradeoff.

Off to see if I forgot to reset the buffer values on my install...

So you have 3 as well currently? Or some other value?

I had mine at 1.  Moving to 0 did not make a difference on the 1st tune.  Will monitor to see if it seems quicker, but since the likely improvement is just under a second, I may well not notice.

Agreed! The delta is pretty small now ... I shaved 1 second going from 3 to 0 ... so your delta is likely ~ 0.33 sec, not really noticeable. I'm using time to measure it, but 0.33 sec won't show much when watching it 😜

I'm going to ponder how we might be able to have multiple Ceton devices.  I have a bid in on a 6 tuner PCIe, and see a few USB-4 devices, which would be similar to the PCIe for hardware access, and I could see people interesting having a mix in use.
Something along the line of adding a config variable Ceton_device_count then loop over reading in ceton_ip_{device#}, pcie_ip_{device#} and tuners_{device#}.  Need to update the properties as well which appears a bit trickier, but not impossible.

Sounds great! And to our earlier discussion - auto-detect the number of tuners (on a device), not hard coded?
Thanks!

Will have to see what is possible once/if I can acquire a 2nd devcie...

authors: DanAustinGH arrmo deathbybandaid

license: WTFPL


text:
Valibot playground, scroll down on new log messages

Feature Request
In the Valibot playground, scroll down automatically, when a new log message arrives.
You always have to scroll down manually to see latest log messages, which is annoying.

One tip, you can press CMD + ENTER or STRG + ENTER to execute the playground and CMD + BACKSPACE or STRG + BACKSPACE to clear the console.

authors: DrWarpMan fabian-hiller

repo: fabian-hiller/valibot


text:
Integration test content

Just a topic for discussion. Should the docs contains some explanation of what is done in integration tests? And even what is tested?

@mocenas Thank you for bringing this up. Providing more background on the integration tests would be useful, I believe (IIRC we've already had an issue for it in this repo, but the change got deferred in favor of other priority items).
I think we should focus on describing what happens during the testing process, and what the expected output of the integration testing is.
Questions like:

Why do we want integration tests
What happens in the process of testing (the test instance of the application is deployed, what the individual tests do, ... )
What kind of output should the user expect in cases of test success and test failure.
what happens when the tests fail (maybe some troubleshooting instructions, too)
should be addressed.


text:
WIP: Build on RHEL

Enable build on RHEL if TARGET=rhel.
The cico environment will continue to build the CentOS based container and in a second step it will build and push a RHEL based container. As of now, the CentOS containers will be the ones being deployed to prod-preview and prod.
Additionally, this PR needs this image that is yet to be pushed:
https://github.com/rhdt/EL-Dockerfiles/pull/3
This PR will remain as a WIP until this PR is merged and validated:
https://github.com/fabric8-services/fabric8-auth/pull/432

We have chosen fabric8-auth as the repo to test the end-to-end RHEL build system. This involves:

Changing cico scripts to build both CentOS and RHEL containers more info
Make sure the container in fabric8-auth is properly built and pushed to the private registry

As soon as we validate everything we will start requesting the merge of all the PRs similar to this one that we are sending to all the relevant repos involved in OSIO

@alexeykazakov can you please review and merge?


text:
403 Errors being generated after login on prod-preview.openshift.io

After working around the issue reported in: https://github.com/fabric8io/fabric8-ui/issues/1009
403 Errors are being logged:
main.64b57e5….bundle.js:1 Error retrieving list BuildConfigs: Response with status: 403 Forbidden for URL: https://prod-preview.openshift.io/_p/oso/oapi/v1/namespaces/almusertest1/buildconfigs

Seems to be fixed now


text:
v1.0.4 is not on Maven Central

Hi,
It seems that v1.0.4 is not available on Maven Central yet. Could you please publish it there?
Thanks a lot!

Looking forward for 1.04 on maven..

We are about to upload it. Now we are merging some configuration fix we needed to upload this version.
I'll close this ticket once available.

It's available now.
Sorry about the delay!

authors: Schnouki cotfas helios175

repo: facebook/conceal


text:
IE11 no longer supported in create-react-app 4.0.1

Describe the bug
The instructions for providing support for IE9, 10 and 11 to provide an app that can run in Internet Explorer when using react-scripts 4.0.1 and react-app-polyfill 2.0.0 no longer work.
Did you try recovering your dependencies?

Yes.
npm --version

6.14.9

Which terms did you search for in User Guide?

Internet Explorer
Browser Support
polyfill
Environment

Environment Info:
current version of create-react-app: 4.0.1
running from C:\Users\Shiraz.Esat\AppData\Roaming\npm-cache_npx\21296\node_modules\create-react-app
System:
OS: Windows 10 10.0.18362
CPU: (12) x64 Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz
Binaries:
Node: 12.13.1 - C:\Program Files\nodejs\node.EXE
Yarn: Not Found
npm: 6.14.9 - C:\Program Files\nodejs\npm.CMD
Browsers:
Chrome: 86.0.4240.183
Edge: Spartan (44.18362.449.0)
Internet Explorer: 11.0.18362.1
npmPackages:
react: ^17.0.1 => 17.0.1
react-dom: ^17.0.1 => 17.0.1
react-scripts: 4.0.1 => 4.0.1
npmGlobalPackages:
create-react-app: Not Found

Steps to reproduce

(Write your steps here:)

Use instructions from https://create-react-app.dev/docs/getting-started
Use npm list -g -depth 0 to confirm that a global version of create-react-app doesn't already exist
Use npx create-react-app my-app to create a new app
cd my-app
npm start - confirm app starts, and is accessible in Chrome and IE11. Basic app so this all works.
Ctrl+C, to terminate above running app
Follow instructions on https://create-react-app.dev/docs/supported-browsers-features to provide IE polyfills
Extend browserlist in package.json to provide IE11 support (see sample further down)
Delete node_modules/.cache to avoid possible babel-loader issue
Follow instructions here to provide IE polyfills: https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md
npm install react-app-polyfill
Update the src/index.js created earlier to have these as the first lines:

import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';

npm start - to run app now that polyfill has been provided
App works fine in Chrome, but now IE11 shows a blank screen. The console log will have the following error:

Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, _store}). If you meant to render a collection of children, use an array instead.

Commenting out the polyfill lines in step 12 will cause the App to show OK in IE again, but a complex project that requires polyfills won't be able to get past the error shown in step 14

key sections of package.json
...
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.6",
    "@testing-library/react": "^11.2.2",
    "@testing-library/user-event": "^12.6.0",
    "react": "^17.0.1",
    "react-app-polyfill": "^2.0.0",
    "react-dom": "^17.0.1",
    "react-scripts": "4.0.1",
    "web-vitals": "^0.2.4"
  },
...
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not ie < 9",
      "not op_mini all",
      "firefox esr",
      "unreleased versions"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "ie 11"
    ]
  },

Expected behavior

IE9, 10, and 11 support existed in react-scripts 3.x
They should continue to work in 4.x
Actual behavior

Adapted index.js as suggested in documentation:

App in IE11:

Reproducible demo

I created a sample project that reproduces the issue in #10258
I created this Bug Report in favour of the other because this is more serious than my original use-case
The issue can also be reproduced by following documentation for providing IE11 support, as I've tried to describe in Steps to Reproduce.

Same issue as #9906
IE9 and IE10 were also supported in v3

@msbarry is an absolute genius
After following his advice in https://github.com/facebook/create-react-app/issues/9906#issuecomment-719488780
I have the following in src/index.js:
/** @jsxRuntime classic */
import "react-app-polyfill/ie9";
import "react-app-polyfill/stable";

import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";

Note that when our app was updated to v4, we used npx react-codemod update-react-imports (as described here: https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#removing-unused-react-imports) to remove all React imports, but we need it here in this one case.

Workaround in #9906 fixes this issue. "Proper" fix would probably be an update to the documentation and to the update react-import code mod.

repo: facebook/create-react-app