Steering bug: Steering stops working at very low speeds in experimental mode.

Describe the bug
2022 Arteon in experimental mode:
When at very low speeds or often stopping for a stop sign or another car, Openpilot displays a warning "Steering temporarily unavailable" and won't start working again even at higher speeds until the device is rebooted. At the same time, my car displays the message "Take control of the wheel" like it used to with my stock lane keeping.
Provide a route where the issue occurs
200d2fe234e1fef3|2022-12-03--18-50-25
openpilot version
0.9.0
'carFingerprint': 'VOLKSWAGEN ARTEON 1ST GEN',

'gitBranch': 'mqb-fw-dukajuke',
'gitCommit': 'c1524b4b082de8bf9091193c5682b45280ae3105',
'gitRemote': 'https://github.com/jyoung8607/openpilot.git',

Additional info
No response

This is a better example route: 200d2fe234e1fef3|2022-12-03--16-12-04

@jyoung8607 recommended sharing the route with him so he can look into this.

Thanks! I’ll do another drive with the experimental turned on and share it to you. It doesn’t happen at ever time its stops, but it does happen at least once with every drive.
From: Jason Young @.***
Sent: Tuesday, December 6, 2022 1:12 PM
To: commaai/openpilot
Cc: dukeajuke; Mention
Subject: Re: [commaai/openpilot] Steering bug: Steering stops working at very low speeds in experimental mode. (Issue #26694)
@dukeajuke https://github.com/dukeajuke , happy to look into this if you're able to temporarily share your device with @.*** again, just like you did when we added your fingerprint.
—
Reply to this email directly, view it on GitHub https://github.com/commaai/openpilot/issues/26694#issuecomment-1339778792 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AEJJEUENHI4VPQTHJY262F3WL56XVANCNFSM6AAAAAASTOY7V4 .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/AEJJEUBBB3YFCMWZFLN6WULWL56XVA5CNFSM6AAAAAASTOY7V6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSP3NTOQ.gif Message ID: @.***>

Hi Jason - I shared my device with you. The drive is - 200d2fe234e1fef3|2022-12-07--12-15-05--0. The steering disconnect issue happens at the first light about half way through the drive.

Logs should be uploaded now. You can look at my last drive too. It did the same thing but this time in Chill mode. Displays a warning "Steering temporarily unavailable" and it won't start working again until I shut the car off and reboot the device. Thanks in advance for looking at this!

Checked all three routes mentioned so far and unfortunately the rlogs haven't uploaded for any of them.
@sshane can you make sure these routes are queued for upload? I can't due to commaai/connect#203.
200d2fe234e1fef3|2022-12-03--18-50-25
200d2fe234e1fef3|2022-12-03--16-12-04
200d2fe234e1fef3|2022-12-07--12-15-05

Looks like Those drives have been overwritten already (should have bought more storage!). I’ll do another drive tonight and make sure the logs get updated.
From: Jason Young @.***
Sent: Sunday, December 11, 2022 12:30 PM
To: commaai/openpilot
Cc: dukeajuke; Mention
Subject: Re: [commaai/openpilot] Steering bug: Steering stops working at very low speeds in experimental mode. (Issue #26694)
Checked all three routes mentioned so far and unfortunately the rlogs haven't uploaded for any of them.
@sshane https://github.com/sshane  can you make sure these routes are queued for upload? I can't due to commaai/connect#203 https://github.com/commaai/connect/issues/203 .
200d2fe234e1fef3|2022-12-03--18-50-25
200d2fe234e1fef3|2022-12-03--16-12-04
200d2fe234e1fef3|2022-12-07--12-15-05
—
Reply to this email directly, view it on GitHub https://github.com/commaai/openpilot/issues/26694#issuecomment-1345611873 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AEJJEUH4XG3A53UCLCLPJATWMYFR7ANCNFSM6AAAAAASTOY7V4 .
You are receiving this because you were mentioned.  https://github.com/notifications/beacon/AEJJEUGT6ZAJFRR6ZTGGMX3WMYFR7A5CNFSM6AAAAAASTOY7V6WGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSQGRUGC.gif Message ID: @.***>

The other routes were overwritten already. I just did another drive and the logs have been uploaded. The steering disconnects and errors out at the first light near the last 25% of the drive. - Route: 200d2fe234e1fef3|2022-12-11--17-00-49--0

17:05:13 is about where the steering error occurs.

It looks like your EPS doesn't want to see steering commands below 1 km/h. It also looks like your EPS is something new-to-us. There's an obvious difference in reported software part numbers, and a less obvious variance in its diagnostic response that makes me think it runs a different software stack than our usual. Fortunately, they should be easy to identify.
It looks like you're still running your temporary fingerprint update branch, so I've taken the liberty of pushing an update to that branch which prevents steering below 0.3 m/s (1.08 km/h). Please give that a try at your convenience.
Whether it works or not, please report back with your results. The change I've put in is more of a diagnostic measure than a final fix. If it works well, I'll add detection for this firmware to upstream openpilot. If not, I'll need to see logs again.

Thanks! I'll give it a try tomorrow. I do need to reinstall that branch to get the update correct?

Your device should already see the update and prompt you to install it from the UI. If it doesn't, go to Settings and then Software to manually check for updates. On the off chance that process doesn't work for you, yes you could reinstall.

Looks like it updated automatically overnight. The change you make fixed my steering problem! Thanks again for all your help.

Do you know if this change and the one you made to add my car's fingerprint will make it into the next release?

I'm glad the change worked for you. Re: the fingerprint, that was merged long ago and will be in the next release. Re: the steering fix, I'm still considering how best to fix it in mainline openpilot. It may be a couple days before I file a PR. This GitHub issue will remain open for now, so you can watch it for updates.

I'm running sunnypilot but I'm having the exact same issue. @jyoung8607 which file is responsible for tweaking this? I want to check it in sunnypilot to see if I can fix it.
Also, how can I check if my fingerprint is correct? I'm running in a 2023 VW Taos

Yep. Still happens on mine. Usually occurs at very low speeds.

From: stevenaa123isme @.>
Sent: Monday, October 16, 2023 2:54 PM
To: commaai/openpilot @.>
Cc: David Whapham @.>; Mention @.>
Subject: Re: [commaai/openpilot] Steering bug: Steering stops working at very low speeds in experimental mode. (Issue #26694)
Hi @jyoung8607https://github.com/jyoung8607. Same here on a 2022 Q3. I finger printed the car myself. Just to reiterate the issue, once "Steering temporarily unavailable" shows up, it never gets cleared until i restart the car.
—
Reply to this email directly, view it on GitHubhttps://github.com/commaai/openpilot/issues/26694#issuecomment-1765095650, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEJJEUAYQRFWSZH3EPTTIQDX7V7GTAVCNFSM6AAAAAASTOY7V6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRVGA4TKNRVGA.
You are receiving this because you were mentioned.Message ID: @.***>


Warning from yard when passing a hash

I have the following method:
class Operation

  Contract ({ "operation_type" => String, "operation_id" => String, "file_path" => String }) => Any
  def initialize(record)
  end
end

When run yard produces the following warning:
[warn]: In file `operation.rb':1: Cannot resolve link to "operation_type"=>String, from text.

What does that mean? The documentation generated is not particularly clean.The description is the second and third element of the Hash.
Thanks.
Fred

I'll check this out, but I have a feeling YARD is trying to lookup a class to add a link to it. E.g. if you have a class Foo and a method with a parameter of type Foo then you'll be able to click the Foo in the param description to be taken to the Foo class documentation.
I have to work out why YARD is trying to do that here, I probably need to escape something because YARD is getting confused.
You're right that the documentation is a bit ugly when hashes are involved, I think fixing #4 will improve that. Hopefully I'll get to that soon.


DownwardMetrics: Replaces the VirtProductInfo with QEMU version.

What this PR does / why we need it:
As part of the SAP certification effort, they have requested us to adapt some of Kubevirt's downwards metrics  to what they expect. In this particular case, VirtProductInfo its expected by SAP to show the QEMU version used to run the VMs instead of git information, go builder, etc.
Therefore, this change will produce that downwards metrics show an output like:
<metric type="string" context="host">
  <name>VirtProductInfo</name>
  <value>QEMU 7.2.0</value>
</metric>

Instead of the current one:
<metric type="string" context="host">
  <name>VirtProductInfo</name>
  <value>{"gitVersion":"[...]", [...]}</value>
</metric>

Also, as a side effect, this change fix CNV-23052 since this information is not longer shown.
jira-ticket: https://issues.redhat.com/browse/CNV-23052
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fix https://bugzilla.redhat.com/show_bug.cgi?id=2149913
Special notes for your reviewer:
Release note:

DownwardMetrics: Swap KubeVirt build info with qemu version in VirtProductInfo field

/retest-required

/retest
/lgtm

/retest

@davidvossel Could you please take a look at this PR? Thanks!

@rmohr Could you please review this PR? Thanks :)

@rmohr Many thanks for your reviews and suggestions. This looks much better now :)

/lgtm
Thanks!

/cherrypick release-1.0

Sorry it's already in 1.0, my bad.


JSON generated with invalid escape characters

Describe the issue as clearly as possible:
Occasionally when I use outlines it will return a JSON string with invalid JSON. This happens most often when it generates an invalid escape character.
This is fairly hard to replicate because the frequency of this issue depends on the model and the prompt. The example code I have below generated this error on the 3rd iteration of the loop when I ran it, but now I'm trying to replicate it again and can't get it to happen.
I monkey-patched models/llamacpp.py to print out the offending string when there's a parse error. Here is an example of JSON that fails to parse:
{"answer":[{"statement":"Privacy preferences allow limiting sharing of creditworthiness data with other banks, insurance companies, and service providers.","reason":"The context does not mention anything about privacy preferences, but it does say you cannot limit sharing with other banks/insurance companies/service providers so that you won\\\'t get offers based on the data shared by the bank, but you can limit sharing with them","verdict":1},{"statement":"You cannot limit access to credit reports themselves.","reason":"The context explicitly states: \\"You cannot limit the credit reports themselves\\", which confirms this statement","verdict":1},{"statement":"Check credit reports on websites like annualcreditreport.com.","reason":"The context mentions using \\"http://www.annualcreditreport.com/\\" to look at your credit report","verdict":1},{"statement":"Dispute adverse items found on credit reports.","reason":"The context advises that \\"you always suggest that people dispute everything adverse\\" to put the onus on other parties to prove the adverse item is valid","verdict":1},{"statement":"Consider purchasing credit protection to receive notifications about new credit taken in your name.","reason":"The context says: \\"it does not hurt to ask\\" and \\"get credit protection so you will be notified when new credit is taken in your name\\"","verdict":1}]}

Using the traceback and an online JSON parser, I think the issue occurs with the generation of the substring \\\' starting around character 343.
You can replicate this specific example (with the models in the code snippet below) by attempting to parse an object like this:
FaithfulnessStatementInput.parse_raw('{"question":"Would you do anything for love?","answer":"\\"I won\\\'t do that\\""}')

This results in the same validation error I get with the escape character.
ValidationError: 1 validation error for FaithfulnessStatementInput
__root__
  Invalid \escape: line 1 column 64 (char 63) [type=value_error.jsondecode, input_value='{"question":"Would you d...I won\\\'t do that\\""}', input_type=str]

And a valid version, just for reference:
FaithfulnessStatementInput.parse_raw('{"question":"Would you do anything for love?","answer":"\\"I won\'t do that\\""}')

My apologies for the long code below for replicating - obviously not all of it is required to generate this specific issue, but I wanted to include everything I am doing in this instance that's generating invalid JSON.
Steps/code to reproduce the bug:
from typing import List

import outlines
from datasets import load_dataset
from pydantic import BaseModel, validate_call

data = load_dataset("explodinggradients/fiqa", "ragas_eval")
a = data["baseline"].select([16]).to_dict()

class FaithfulnessStatementInput(BaseModel):
    question: str
    answer: str

class FaithfulnessStatementOutput(BaseModel):
    statements: List[str]

class FaithfulnessStatementExample(
    FaithfulnessStatementInput, FaithfulnessStatementOutput
):
    @property
    def statements_json(self):
        return self.model_dump_json(include=["statements"])

STATEMENTS_EXAMPLE_1 = FaithfulnessStatementExample(
    question="Who was Albert Einstein and what is he best known for?",
    answer="He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.",
    statements=[
        "Albert Einstein, a German-born theoretical physicist, is renowned for being one of the most influential physicists in history.",
        "Albert Einstein was best known for his theory of relativity.",
        "Einstein's contributions significantly advanced the field of quantum mechanics",
        "Recognized globally, Einstein's work has profoundly impacted the scientific community",
        "Einstein's groundbreaking theories continue to shape our understanding of physics today.",
    ],
)
STATEMENTS_EXAMPLE_2 = FaithfulnessStatementExample(
    question="Cadmium Chloride is slightly soluble in this chemical, it is also called what?",
    answer="alcohol",
    statements=["Cadmium Chloride is slightly soluble in alcohol."],
)
STATEMENTS_EXAMPLE_3 = FaithfulnessStatementExample(
    question="Were Were Hitler and Benito Mussolini of the same nationality?",
    answer="Sorry, I can't provide answer to that question.",
    statements=[],
)

DEFAULT_STATEMENTS_EXAMPLES = [
    STATEMENTS_EXAMPLE_1,
    STATEMENTS_EXAMPLE_2,
    STATEMENTS_EXAMPLE_3,
]

@outlines.prompt
@validate_call
def faithfulness_statements(
    input: FaithfulnessStatementInput,  # noqa
    examples: List[FaithfulnessStatementExample] = DEFAULT_STATEMENTS_EXAMPLES,  # noqa
):
    # This is a combination of the RAGAS template and the DeepEval template
    """
    Anaylize the provided question and answer pairs and identify one or more statements from each sentence in the given answer. \
    A statement is a claim or informational point that is present in the answer or can be inferred from the answer and question.

    ## Examples:
    {% for example in examples %}
    Question: {{example.question}}
    Answer: {{example.answer}}
    Statements: {{example.statements_json}}

    {% endfor %}

    ## Actual:
    Question: {{input.question}}
    Answer: {{input.answer}}
    Statements:
    """

model_path = "models/openhermes-2.5-neural-chat-v3-3-slerp.Q4_K_M.gguf"

model = outlines.models.llamacpp(model_path, n_ctx=0, max_tokens=0, n_gpu_layers=-1)

generator = outlines.generate.json(model, FaithfulnessStatementOutput)

st = FaithfulnessStatementInput(
    question=a["question"][0],
    answer=a["answer"][0],
)

statements_result = generator(
    faithfulness_statements(input=st, examples=DEFAULT_STATEMENTS_EXAMPLES)
)

class FaithfulnessNLIInput(BaseModel):
    context: List[str]
    statements: List[str]

class FaithfulnessNLIAnswer(BaseModel):
    statement: str
    reason: str
    verdict: int

class FaithfulnessNLIOutput(BaseModel):
    answer: List[FaithfulnessNLIAnswer]

class FaithfulnessNLIExample(FaithfulnessNLIInput, FaithfulnessNLIOutput):
    @property
    def answer_json(self):
        return self.model_dump_json(include=["answer"])

NLI_EXAMPLE_1 = FaithfulnessNLIExample(
    context=[
        "John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects."
    ],
    statements=[
        "John is majoring in Biology.",
        "John is taking a course on Artificial Intelligence.",
        "John is a dedicated student.",
        "John has a part-time job.",
    ],
    answer=[
        FaithfulnessNLIAnswer(
            statement="John is majoring in Biology.",
            reason="John's major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.",
            verdict=0,
        ),
        FaithfulnessNLIAnswer(
            statement="John is taking a course on Artificial Intelligence.",
            reason="The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.",
            verdict=0,
        ),
        FaithfulnessNLIAnswer(
            statement="John is a dedicated student.",
            reason="The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.",
            verdict=1,
        ),
        FaithfulnessNLIAnswer(
            statement="John has a part-time job.",
            reason="There is no information given in the context about John having a part-time job.",
            verdict=0,
        ),
    ],
)
NLI_EXAMPLE_2 = FaithfulnessNLIExample(
    context=[
        "Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy."
    ],
    statements=["Albert Einstein was a genius."],
    answer=[
        FaithfulnessNLIAnswer(
            statement="Albert Einstein was a genius.",
            reason="The context and statement are unrelated",
            verdict=0,
        ),
    ],
)
NLI_EXAMPLE_3 = FaithfulnessNLIExample(
    context=[
        "Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time."
    ],
    statements=[],
    answer=[
        FaithfulnessNLIAnswer(
            statement="",
            reason="No statements were provided",
            verdict=-1,
        ),
    ],
)

DEFAULT_NLI_EXAMPLES = [NLI_EXAMPLE_1, NLI_EXAMPLE_2, NLI_EXAMPLE_3]

@outlines.prompt
def faithfulness_nli(
    input: FaithfulnessNLIInput,  # noqa: ARG001
    examples: List[FaithfulnessNLIExample] = DEFAULT_NLI_EXAMPLES,  # noqa: ARG001
):
    """
    You are an expert in natural language inference. \
    The goal is to determine if a given statement can be logically inferred or deduced from the provided context.
    Use only 'Yes' (1), 'No' (0) and 'Null' (-1) as verdict.

    'Yes' (1) means the statement can be inferred from the context with certainty.
    'No' (0) means the statement cannot be inferred from the context or contradicts the information provided.
    'Null' (-1) means there is insufficient information in the context to determine if the statement is true or false.

    ## Examples:
    {% for example in examples %}
    Context: {{example.context}}
    Statements: {{example.statements}}
    Answer: {{example.answer_json}}

    {% endfor %}

    ## Actual:
    Context: {{input.context}}
    Statements: {{input.statements}}
    Answer:
    """

nli_task = FaithfulnessNLIInput(
    context=a["contexts"][0], statements=statements_result.statements
)

generator_nli = outlines.generate.json(model, FaithfulnessNLIOutput)

requests_batched = [
    faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES) for _ in range(100)
]
# Run until ValidationError is generated
nli_results_batched = generator_nli(requests_batched)

Expected result:
Valid JSON with no invalid escapes that can be parsed back into the pydantic model.

Error message:
---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/pydantic/main.py:1097, in BaseModel.parse_raw(cls, b, content_type, encoding, proto, allow_pickle)
   1096 try:
-> 1097     obj = parse.load_str_bytes(
   1098         b,
   1099         proto=proto,
   1100         content_type=content_type,
   1101         encoding=encoding,
   1102         allow_pickle=allow_pickle,
   1103     )
   1104 except (ValueError, TypeError) as exc:

File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/pydantic/deprecated/parse.py:49, in load_str_bytes(b, content_type, encoding, proto, allow_pickle, json_loads)
     48         b = b.decode(encoding)
---> 49     return json_loads(b)  # type: ignore
     50 elif proto == Protocol.pickle:

File ~/.pyenv/versions/3.10.10/lib/python3.10/json/__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    343 if (cls is None and object_hook is None and
    344         parse_int is None and parse_float is None and
    345         parse_constant is None and object_pairs_hook is None and not kw):
--> 346     return _default_decoder.decode(s)
    347 if cls is None:

File ~/.pyenv/versions/3.10.10/lib/python3.10/json/decoder.py:337, in JSONDecoder.decode(self, s, _w)
    333 """Return the Python representation of ``s`` (a ``str`` instance
    334 containing a JSON document).
    335
    336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    338 end = _w(s, end).end()

File ~/.pyenv/versions/3.10.10/lib/python3.10/json/decoder.py:353, in JSONDecoder.raw_decode(self, s, idx)
    352 try:
--> 353     obj, end = self.scan_once(s, idx)
    354 except StopIteration as err:

JSONDecodeError: Invalid \escape: line 1 column 343 (char 342)

During handling of the above exception, another exception occurred:

ValidationError                           Traceback (most recent call last)
File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/outlines/models/llamacpp.py:78, in LlamaSequenceGenerator.__call__(self, prompts, max_tokens, stop_at, rng, **model_kwargs)
     77 try:
---> 78     formatted = [self.format_sequence(sequence) for sequence in results]
     79 except Exception as e:

File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/outlines/models/llamacpp.py:78, in <listcomp>(.0)
     77 try:
---> 78     formatted = [self.format_sequence(sequence) for sequence in results]
     79 except Exception as e:

File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/outlines/generate/json.py:50, in json.<locals>.<lambda>(x)
     49     generator = regex(model, regex_str, sampler)
---> 50     generator.format_sequence = lambda x: schema_object.parse_raw(x)
     51 elif callable(schema_object):

File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/pydantic/main.py:1124, in BaseModel.parse_raw(cls, b, content_type, encoding, proto, allow_pickle)
   1118     error: pydantic_core.InitErrorDetails = {
   1119         # The type: ignore on the next line is to ignore the requirement of LiteralString
   1120         'type': pydantic_core.PydanticCustomError(type_str, str(exc)),  # type: ignore
   1121         'loc': ('__root__',),
   1122         'input': b,
   1123     }
-> 1124     raise pydantic_core.ValidationError.from_exception_data(cls.__name__, [error])
   1125 return cls.model_validate(obj)

ValidationError: 1 validation error for FaithfulnessNLIOutput
__root__
  Invalid \escape: line 1 column 343 (char 342) [type=value_error.jsondecode, input_value='{"answer":[{"statement":...name\\"","verdict":1}]}', input_type=str]

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In[8], line 332
    326 generator_nli = outlines.generate.json(model, FaithfulnessNLIOutput)
    327 nli_result = generator_nli(
    328     faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES)
    329 )
--> 332 nli_results_2 = [
    333     generator_nli(faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES))
    334     for _ in range(3)
    335 ]
    337 requests_batched = [
    338     faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES) for _ in range(100)
    339 ]
    340 nli_results_batched = generator_nli(requests_batched)

Cell In[8], line 333, in <listcomp>(.0)
    326 generator_nli = outlines.generate.json(model, FaithfulnessNLIOutput)
    327 nli_result = generator_nli(
    328     faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES)
    329 )
    332 nli_results_2 = [
--> 333     generator_nli(faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES))
    334     for _ in range(3)
    335 ]
    337 requests_batched = [
    338     faithfulness_nli(input=nli_task, examples=DEFAULT_NLI_EXAMPLES) for _ in range(100)
    339 ]
    340 nli_results_batched = generator_nli(requests_batched)

File ~/.pyenv/versions/3.10.10/envs/my-env/lib/python3.10/site-packages/outlines/models/llamacpp.py:81, in LlamaSequenceGenerator.__call__(self, prompts, max_tokens, stop_at, rng, **model_kwargs)
     79 except Exception as e:
     80     print(results)
---> 81     raise ValueError(f"Error formatting sequences: {e}")
     83 return formatted if len(formatted) > 1 else formatted[0]

ValueError: Error formatting sequences: 1 validation error for FaithfulnessNLIOutput
__root__
  Invalid \escape: line 1 column 343 (char 342) [type=value_error.jsondecode, input_value='{"answer":[{"statement":...name\\"","verdict":1}]}', input_type=str]

Outlines/Python version information:
python -c "import sys; print('Python', sys.version)"
pip freeze
0.0.36
Python 3.10.10 (main, Jun 19 2023, 11:34:34) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]
accelerate==0.28.0
aiohttp==3.9.3
aiosignal==1.3.1
altair==5.2.0
annotated-types==0.6.0
anyio==4.3.0
appdirs==1.4.4
appnope==0.1.4
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
async-timeout==4.0.3
attrs==23.2.0
Babel==2.14.0
beautifulsoup4==4.12.3
bleach==6.1.0
boto3==1.34.63
botocore==1.34.63
bpemb==0.3.4
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
cloudpickle==3.0.0
comm==0.2.2
conllu==4.5.3
contourpy==1.2.0
cycler==0.12.1
dataclasses-json==0.6.4
datasets==2.18.0
debugpy==1.8.1
decorator==5.1.1
defusedxml==0.7.1
Deprecated==1.2.14
dill==0.3.8
diskcache==5.6.3
distro==1.9.0
docstring-parser==0.15
exceptiongroup==1.2.0
executing==2.0.1
fastapi==0.110.0
fastjsonschema==2.19.1
filelock==3.13.1
flair==0.13.1
fonttools==4.49.0
fqdn==1.5.1
frozenlist==1.4.1
fsspec==2024.2.0
ftfy==6.1.3
gdown==5.1.0
gensim==4.3.2
h11==0.14.0
httpcore==1.0.4
httpx==0.27.0
huggingface-hub==0.21.4
idna==3.6
instructor==0.6.4
interegular==0.3.3
ipykernel==6.29.3
ipython==8.22.2
ipywidgets==8.1.2
isoduration==20.11.0
Janome==0.5.0
jedi==0.19.1
Jinja2==3.1.3
jmespath==1.0.1
joblib==1.3.2
json5==0.9.24
jsonpatch==1.33
jsonpointer==2.4
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-events==0.9.1
jupyter-lsp==2.2.4
jupyter_client==8.6.1
jupyter_core==5.7.2
jupyter_server==2.13.0
jupyter_server_terminals==0.5.3
jupyterlab==4.1.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.25.4
jupyterlab_widgets==3.0.10
kiwisolver==1.4.5
langchain==0.1.12
langchain-community==0.0.28
langchain-core==0.1.32
langchain-openai==0.0.8
langchain-text-splitters==0.0.1
langdetect==1.0.9
langsmith==0.1.27
lark==1.1.9
llama_cpp_python==0.2.56
llvmlite==0.42.0
lxml==5.1.0
markdown-it-py==3.0.0
MarkupSafe==2.1.5
marshmallow==3.21.1
matplotlib==3.8.3
matplotlib-inline==0.1.6
mdurl==0.1.2
mistune==3.0.2
more-itertools==10.2.0
mpld3==0.5.10
mpmath==1.3.0
multidict==6.0.5
multiprocess==0.70.16
mypy-extensions==1.0.0
nbclient==0.10.0
nbconvert==7.16.2
nbformat==5.10.3
nest-asyncio==1.6.0
networkx==3.2.1
notebook==7.1.2
notebook_shim==0.2.4
numba==0.59.0
numpy==1.26.4
openai==1.13.3
orjson==3.9.15
outlines==0.0.36
overrides==7.7.0
packaging==23.2
pandas==2.2.1
pandocfilters==1.5.1
parso==0.8.3
pexpect==4.9.0
pillow==10.2.0
platformdirs==4.2.0
pptree==3.1
prometheus_client==0.20.0
prompt-toolkit==3.0.43
protobuf==5.26.0
psutil==5.9.8
ptyprocess==0.7.0
pure-eval==0.2.2
pyarrow==15.0.1
pyarrow-hotfix==0.6
pycparser==2.21
pydantic==2.6.3
pydantic-settings==2.2.1
pydantic_core==2.16.3
Pygments==2.17.2
pyparsing==3.1.2
pysbd==0.3.4
PySocks==1.7.1
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-json-logger==2.0.7
pytorch_revgrad==0.2.0
pytz==2024.1
PyYAML==6.0.1
pyzmq==25.1.2
qtconsole==5.5.1
QtPy==2.4.1
ragas==0.1.4
referencing==0.33.0
regex==2023.12.25
requests==2.31.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.7.1
rpds-py==0.18.0
ruff==0.3.2
s3transfer==0.10.1
safetensors==0.4.2
scikit-learn==1.4.1.post1
scipy==1.12.0
segtok==1.5.11
semver==3.0.2
Send2Trash==1.8.2
sentence-transformers==2.5.1
sentencepiece==0.1.99
seqeval==1.2.2
six==1.16.0
smart-open==7.0.1
sniffio==1.3.1
soupsieve==2.5
SQLAlchemy==2.0.28
sqlitedict==2.1.0
sse-starlette==2.0.0
stack-data==0.6.3
starlette==0.36.3
starlette-context==0.3.6
sympy==1.12
tabulate==0.9.0
tenacity==8.2.3
terminado==0.18.1
threadpoolctl==3.3.0
tiktoken==0.6.0
tinycss2==1.2.1
tokenizers==0.15.2
tomli==2.0.1
toolz==0.12.1
torch==2.2.1
tornado==6.4
tqdm==4.66.2
traitlets==5.14.1
transformer-smaller-training-vocab==0.3.3
transformers==4.38.2
typer==0.9.0
types-python-dateutil==<IP_ADDRESS>40316
typing-inspect==0.9.0
typing_extensions==4.10.0
tzdata==2024.1
uri-template==1.3.0
urllib3==1.26.18
uvicorn==0.28.0
wcwidth==0.2.13
webcolors==1.13
webencodings==0.5.1
websocket-client==1.7.0
widgetsnbextension==4.0.10
Wikipedia-API==0.6.0
wrapt==1.16.0
xxhash==3.4.1
yarl==1.9.4
Context for the issue:
No response

I'm also seeing the same issue (mostly with Mistral models).. I think this is a hard one to solve, but ideally JSON decoding should prevent incorrect use of escape characters.

I also see this the most with Mistral models. Other's I've evaluated against are Hermes-2-Pro-Mistral-7B, alphamonarch-7b, openhermes-2.5-neural-chat-v3-3-slerp, and mistral-7b-instruct-v0.2 - the last one having this issue most frequently.

Have you tried different white space patterns?

I haven't with this specific problem, but I will give it a shot. Though I have to say it's not clear to me how it would help with this specific issue, since that would modify the whitespace but not prevent it from generating JSON with invalid escape characters - unless I'm missing something.

Here is a smaller replicable example.
import outlines
from pydantic import BaseModel

class Input(BaseModel):
    value: str

kwargs = {"n_ctx": 0, "max_tokens": 0, "n_gpu_layers": -1, "verbose": False}
model = outlines.models.llamacpp(
    models/mistral-7b-instruct-v0.2.Q4_K_M.gguf",
    **kwargs,
)

generator = outlines.generate.json(model, Input)

prompt = r"""You are a helpful assistant. Your task is to return a given input word in JSON format.

Return the following value in JSON:

{"value": "won\\'t"}
"""
for _ in range(20):
    result = generator(prompt)

Should fail with the following exception:
ValueError: Error formatting sequences: 1 validation error for Input
__root__
  Invalid \escape: line 2 column 16 (char 17) [type=value_error.jsondecode, input_value='{\n  "value": "won\\\'t"\n}', input_type=str]

This is a more general problem with the regexes we use I think.

Is there any update on this yet? I've also encountered this problem with structured generation using pydantic. All of our used models ("mistral-7b-instruct-v0.2", "mistralai/Mixtral-8x7B-v0.1" quantized and llama-2-7Bf, llama-2-13Bf, llama-2-70Bf quantized) are affected. So far, I was not able to track down any inputs which definitely lead to a faulty output.

Also for me, same error.

This is strange because the regex used for strings is (?:[^"\\\x00-\x1f\x7f-\x9f]|\\.), which is supposed to exclude the escape character \. I'll investigate more.

The regex that is used to describe valid characters allows the generation of odd number of escape characters. This should be fixed by #829

Thanks a lot @rlouf! Do you know when you'll release this? Want to open a PR in vLLM to update the deps.

Did you try the code in main?

No I haven't., we use outlines via the vLLM openAPI server. I can set up a repro script with outlines directly but that might have to wait for next week. Can report back when I have done that.


[WIP] Hyperparameter search scripts

For NNScore features.

Gently tweaked the API to accommodate (1) model creation by passing instances of classes rather than model_type string and (2) allow the user to use virtually any sklearn model in addition to deepchem models.


feat: i18n translation request backend integration

Description
WIP. Description to be added.
Basic i18n features PR should be merged first, and this should be rebased.
Fixes #2103
Type of change

[ ] Bugfix
[x] Feature

Checklist

[x] I have read the contribution guide: https://vaadin.com/docs/latest/guide/contributing/overview/
[ ] I have added a description following the guideline.
[x] The issue is created in the corresponding repository and I have referenced it.
[x] I have added tests to ensure my change is effective and works as intended.
[ ] New and existing tests are passing locally with my change.
[x] I have performed self-review and corrected misspellings.
[x] Enhancement / new feature was discussed in a corresponding GitHub issue and Acceptance Criteria were created.

 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: sissbruecker:x: ugur-vaadinYou have signed the CLA already but the status is still pending? Let us recheck it.


Coding it so scrap bank for me

Hi, I was just getting a little "more" into scrap banking and saw that many people canceled their offers cuz I was too late to accept them so I wanted to make a bot, I read all of your guide to make the bot. I have made it, It works perfectly, It log-ins perfectly, I entered the steam Guard code too But the problem is that I don't know what is that bot supposed to do. Can someone guide me to make it scrap bank for me? Please!
Thank you so much,
M. Asbaat Amar

This is not a personal helpdesk.
#427 #527

thanks for those links, I'll search there!

but they are closed already


GIT2

Hi,
Do you have any plan to release the weights of GIT2 or GIT trained with 0.8B?
Thanks!

thanks for your interest, and we will keep the request in mind.


No 2.0 Tag

In the updates section you mention Truvari 2.0 but there is no tag for the release.

I'm still working on version 2. The discrepancy between the WIKI and the tags/pypi releases is a side effect of me not having version controlled documentation. I've updated the repository's settings so that the default branch is master, which is more in line with my git-flow model, and better represents the repository as user-facing more than developer-facing.

Thanks for the update Adam, looks like you've put a lot of effort into this since I last looked at it and am looking forward to getting into the new features.

Please feel free to test out the develop branch If anything catches your eye. I'm happy to address any questions/bugs/feature requests as I build.


[1.10] Bump Mesos to nightly 1.4.x e417420

FILL IN

@mesosphere-mergebot label Ready For Review

Corresponding EE PR: https://github.com/mesosphere/dcos-enterprise/pull/2288

Closing PR in lieu of #2475


updated start command for avahi-daemon to work with Debian 12 (fixes …

This PR is a fix for #384

Hi,
thank you for this pr.
Seems to work. But pls add >> /opt/scripts/avahi_startup.log 2>&1 for log/ error output. :)
Then I will create a new beta for you to test.
Regards,
André

@buanet I skipped it because -D also redirects the log to syslog and we would just end up with an empty file. I changed it to start without -D so we can write the output to /opt/scripts/avahi_startup.log and added an additional & at the end to put it in the background.


512 bytes for edns-buffer-size?

Hi,
my Unbound of dnscrypt.me is running with

edns-buffer-size: 1472

As Let's Encrypt uses a size of 512 for their server now - see here - is it also a recommendation for DNSCrypt server operators?

Interesting.
Unbound (for a long time), and probably most modern DNS resolvers, set the IP_PMTUDISC_OMIT flag on Linux.
So, let's Encrypt decision sounds a bit overzealous to me, but discussions are likely to follow on the PowerDNS, Knot and Unbound lists, and these will be definitely worth following.


Show "Time Left" for next prestige level in Legacy-Mouse-Over

Just add the time like in the stats menu.

The time in the stats menu is actually calculated with cookies earned with Wrinklers and Chocolate Egg so it wouldn't be the same time.  I could probably put the time left based on current CPS though.

And whoops, thanks for pointing out a label bug in the stats menu for me.


FEATURE REQUEST: Reliable (redis) broker

The Redis broker implementation uses BLPOP. If the process crashes after a dequeue, the job will be lost. I think it should be possible to use a combination of BLMOVE, the success callback to properly delete from the "in-progress" queue and a re-queuer to somewhat guarantee that a job lost during a process crash can be retried. However, extending the broker interface would allow writing reliable brokers which use different storage backends.
Has this been planned or is it within the scope of this library?

Ideally if anyone requires durability then they shouldn't be using redis as a broker anyway. I like the implementation idea in general (ie: BLMOVE over BLPOP) to make the redis broker more robust, but it doesn't provide an actual guarantee. Consider the redis node going down or the program crashing right before the success callback (which means job was actually processed) and numerous other scenarios.
For durable workloads its better to use something like kafka as the broker and backend. I plan to add an implementation soon. That said, if you think its possible to improve the existing redis broker implementation, I'd be open to a PR (or a more detailed plan).

Btw I'm looking into doing a v3 release with breaking changes, so if you have any ideas to improve the broker interfaces, would be good to know


Is it possible to override component styles globally?

I was looking to override the toggle switch and use my new design everywhere in the application through the "toggle" class. Is that possible?

Thanks alot! This works.
If would be nice if you can add this to the documentation too.


How to get input values?

I am brand new to react and I am having difficulty getting the values of the form inputs. It appears that adding onChange events to the inputs interferes with the credit card component. What is the recommended way to get the values of the inputs?
Thanks

Hi @rmdydo,
The card component listens to onKeyUp, onFocus and onBlur, so it shouldn't interfere with the onChange event of the input fields. Can you elaborate more about your problem?

I was able to figure it out using refs: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-string-attribute
Thanks


stream_parser assertion failure when input is split just before colon

When the input for stream_parser is split in a particular way, an assertion is triggered inside of the library. On other occasions, I get "syntax error", although the JSON is perfectly valid. Note that the included reproducer is reduced to triggering the assert (and I hope the syntax error is just a different manifestation of the same bug).
Note: this happens only on gcc and only in specific optimization levels - -O0/-O1 trigger the bug, while with -O2/-O3 the assertion is not triggered (which is IMHO rather weird).
Further oddities are described in the reproducer.
Version of Boost
1.81.0
Steps necessary to reproduce the problem
Fortunately it's reproducible on compiler explorer: https://godbolt.org/z/Ea3a5zvvP

This is almost certainly a duplicate of #828 . Can you test if the problem goes away with Boost 1.82?

Thank you! I didn't know 1.82 was already out, plus I forgot to check already closed issues :facepalm: .
Works with both 1.82 and 1.81 with the patch backported.


Redesign check_X and check_X_y to remove the side effect of changing data structure

check_X and check_X_y follow the scikit learn strategy and do more than check_X and y. They also convert data types. This is poor engineering and, with classifiers in particular, makes modular design complicated. I propose we decouple these two operations into separate functions, so that check_X simply checks the validity of input (is it a series or a panda?) and then "coercion" happens separately. We can in the first instance decide on how to do this without deciding on where to do it (related structural issues). Decide on names, what checks, what coercion etc
check_X and y varients
simply makes sure the input is actually valid (and we decide what that means)
data structure transform:
we can either do this in one function, or write a range of functions
as to where to do these in a fit/_fit model, in the first instance I think checking can always be done in the base class fit, but data structure transform is, in the first instance, done in the estimator _fit.

Agree with everything except the last sentence, last half: I think data transform should by default be done in fit, controlled by descriptive estimator tags/capabilities or declarative init parameters, and can be done additionally (as "exception to the rule") in _fit. This is to avoid boilerplate code, where we have repeated conversion logic on the estimator _fit (implemented by individual estimators, base class many locations) as opposed in fit (in the base class, one location).

ok, that is an open question of design and touches on a lot of issues. I think first lets decide on how to do it in a practical sense rather than where it should happen.

What to call the data transform function/functions?
Where to put them?
should it be one function to do it all, or a pick and mix?
what transforms do we need?

(renamed the issue since it´s not side effects in the sense of the word)


Deserialize header failed: /home/VineethAmalrajS/tesstutorial/engtrain/eng.Tahoma.exp0.lstmf

I am getting the above error when doing the lstm training. the link I followed is https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#tutorial-guide-to-lstmtraining. The tesseract version used is tesseract v<IP_ADDRESS>81030 leptonica-1.76.0. I am unable to find where is the error. what is the mismatch. i just followed the link (from TessTutorial paragraph)

Did you do - https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#one-time-setup-for-tesstutorial?
Does /home/VineethAmalrajS/tesstutorial/engtrain/eng.Tahoma.exp0.lstmf  file exist?

Please close issue, if problem is solved.


Wip separate injector contexts rebase

Although the current use of the extra args in Injector::execute() and Injector::make() are powerful, they are also dangerous.
They can lead to 'surprising' behaviour where data is shared inappropriately:
    public function testWhySeparationIsNeeded()
    {
        $injector = new Injector();
        $message = "shared instance has one off message";

        // Declare a class as shared
        $injector->share(SharedClassInInjector::class);
        // Create an instance with one-off variables. The object is created.
        $obj1 = $injector->make(SharedClassInInjector::class, [':message' => $message]);

        // Create another instance... but as it is shared, the previous
        // 'one-off' message is used.
        $obj2 = $injector->make(SharedClassInInjector::class, [':message' => "Surprise!"]);

        $this->assertSame($message, $obj1->getMessage());
        $this->assertSame($message, $obj2->getMessage());
    }

by allowing a separate context/injector to be created, the correct behaviour can be done by defining things that should't be shared, on the separated context.
Note, this doesn't prevent users from accidentally sharing data inappropriately.
    $separate_injector = $injector->separateContext();
    $injector->defineParam('message', $message);

The $separate_injector would still be able to access that message. It only makes it possible to not do it.
API and names are not super great currently. Open to improvement on them.
Also, if someone is separating a context, they are probably going to do something with it very soon, so we could make it possible to pass in shares, defines etc.

Forgot to say, this could lead to the deprecation and eventually removal of the args for Injector:execute() + Injector:make(), which would give a small performance benefit due to the fewer cases of how to make stuff.
But there's no rush on that...


[Test_TC_PWRTL_1_1] - Script should be updated by adding test steps to read the AcceptedCommandList and GeneratedCommandList attribute

Description:
According to the Test-Plan, the current YAML script missed to validate the global mandatory attributes AcceptedCommandList and GeneratedCommandList. Therefore, the script should be updated to include test steps for reading these attributes.
Script Reference :
https://github.com/project-chip/connectedhomeip/blob/master/src/app/tests/suites/certification/Test_TC_PWRTL_1_1.yaml
Test-Plan Reference :
https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/power_topology.adoc#tc-pwrtl-1-1-global-attributes-with-dut_server
Missed Test-plan test-steps to validate in script :
6 and 7

Addressed in PR
https://github.com/project-chip/connectedhomeip/pull/32296

Issue resolved


OpenShift & fsGroup SecurityContext

This change in Operator 0.0.8 causes the pods to not start start due to OpenShift requiring the use of Random UIDs
OpenShift will inject a given fsGroup for a given namespace:

REF:

https://github.com/dragonflydb/dragonfly-operator/pull/98/commits/22040fea90b2bcc40b65fdeabc3fd5e6bfd60039
https://docs.openshift.com/container-platform/4.13/authentication/managing-security-context-constraints.html

Interesting but Dragonfly binary also requires a specific fsGroup to let the binary inside have the required permissions on volumes. Any ideas on what do you think we should do? We could attach that group only when backups are scheduled but this would still cause this problem when there are backups needed.

The random UIDs are per namespace not per pod, I wouldn't expect there to be an issue.

So, We are trying to fix this. First, we want to explore how other Operators that also have a fsGroup being set work with Openshift
@ArthurVardevanyan Do you have any ideas on how we should fix this?

Here is an example from the Crunchy Postgres Operator:
In Code:
https://github.com/CrunchyData/postgres-operator/blob/0f8d886f8f2d16b1310255884709e47613a7f115/internal/controller/standalone_pgadmin/pod.go#L357
In Yaml:
https://github.com/ArthurVardevanyan/HomeLab/blob/production/kubernetes/quay/base/postgres/quay/postgres.yaml#L118

PR: https://github.com/dragonflydb/dragonfly-operator/pull/163

#163 merged, hence closing!


do not merge - potential dust solution

Description
See files changed - Here is one way we could prevent collateral "dust" from being created under any circumstances.
Due to its unexpected complexity, this approach probably isn't worth it.
ref: #513

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added appropriate labels to the PR
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Closing - we've determined that it's best to address this situation with liquidators manually if it occurs


Image buffer is not large enough

When I try to run this with my laptop webcam, I get this error which asks to be reported:
❯  INFO  hide_my_mess > Selected camera: #0 - [MY_WEBCAM_MODEL]
 INFO  hide_my_mess > Camera Format selected: 800x600@30fps
 INFO  hide_my_mess > Active Camera Format: 800x600@30fps
 INFO  hide_my_mess > Fake Camera found at index #4
 INFO  hide_my_mess > Loading ML Inference model...
Error: Webcam(ReadFrameError("ImageBuffer is not large enough! This is probably a bug, please report it!"))

Thanks!
I traced it to an old version of nokwha (the webcam capture library I'm using): https://docs.rs/nokhwa/0.9.4/src/nokhwa/backends/capture/avfoundation.rs.html#264
This should be fixed once I update everything to its latest version :)


metrics endpoint sends content-type: application/openmetrics-text

Could ztunnel serve /metrics as text/plain if the user hasn't explicitly sent an Accept: header for application/openmetrics-text?  Without, the browser will download the file, rather than showing it as plain text on the screen.
https://github.com/spring-projects/spring-boot/issues/28446 is an example of this pattern being fixed in Spring Boot.
(A waypoint, OTOH, will return text/plain and work as expected)

Envoy: content-type: text/plain; charset=UTF-8
Istio-agent: Content-Type: text/plain; version=0.0.4; charset=utf-8
Ztunnel: content-type: application/openmetrics-text;charset=utf-8;version=1.0.0
So yeah this looks right && there is a bug in istio-agent as well putting version when it shouldn't

This definitely is fixable, just need to decide on the correct behavior. Based on the above from John, do we care to ever have the openmetrics-text content type or just always say its plain text?

We need to say it openmetrics-text when prometheus requests it I believe
On Mon, Nov 4, 2024 at 7:43 AM Ian Rudie @.***> wrote:

This definitely is fixable, just need to decide on the correct behavior.
Based on the above from John, do we care to ever have the openmetrics-text
content type or just always say its plain text?
—
Reply to this email directly, view it on GitHub
https://github.com/istio/ztunnel/issues/1356#issuecomment-2455053289,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXNAXFCEZ5462ETFKZLZ66B2JAVCNFSM6AAAAABRDGGDQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJVGA2TGMRYHE
.
You are receiving this because you commented.Message ID:
@.***>

Just to be clear, the envoy/istio-proxy ones were when i did NOT send the
'accept' header at all. Prometheus will - I didn't test how they behave
then, but its definitely some  non-plaintext content
On Mon, Nov 4, 2024 at 7:52 AM John Howard @.***> wrote:

We need to say it openmetrics-text when prometheus requests it I believe
On Mon, Nov 4, 2024 at 7:43 AM Ian Rudie @.***> wrote:

This definitely is fixable, just need to decide on the correct behavior.
Based on the above from John, do we care to ever have the openmetrics-text
content type or just always say its plain text?
—
Reply to this email directly, view it on GitHub
https://github.com/istio/ztunnel/issues/1356#issuecomment-2455053289,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXNAXFCEZ5462ETFKZLZ66B2JAVCNFSM6AAAAABRDGGDQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJVGA2TGMRYHE
.
You are receiving this because you commented.Message ID:
@.***>

In testing, near as I can tell envoy ignores the accept header entirely. You have 2 different content-types being returned which are based on query params, not headers. If you include ?format=json you get 'application/json' and for everything else you get 'text/plain'. This assumes you are querying the internal admin interface which has more options. If you use 15090/stats/prometheus then it always uses 'text/plain' even if you request json formatting.

Well that might break with prometheus 3.0! https://github.com/prometheus/prometheus/pull/15136
Note we don't always hit envoy directly but rather proxy through istio-agent, so that one may matter less

Interesting. I think envoy behavior is probably fine for this. They call out that text/plain is the content-type expected for Prom parser and Envoy specifically supports Prom format, but does not support OpenMetrics (which is similar but stricter from what I can gather).

Ztunnel is more strictly openmetrics fwiw

Perfect. For ztunnel we can have the "if you request openmetrics with Accept you get openmetrics back" behavior then. I have some code in the works but it is not pushed anywhere yet.


I can launch the world on modpack but java.lang.NullPointerException

Describe the bug
A clear and concise description of what the bug is.
I can launch a world , but after init i got a crash
Reproducibility
Please try to reproduce the issue with as few other mods as possible. Then check one of the following checkboxes according to your results. To check a checkbox, replace the space between the square brackets with an x (like this [x]) or create the issue and check the checkbox by clicking on it.

[ ] I reproduced this issue with as few other mods as possible installed.
[ ] I am unable to reproduce this issue consistently.
[X] I am able only to get the issue in My Modpack

To Reproduce
Steps to reproduce the behavior:

Download https://legacy.curseforge.com/minecraft/modpacks/mystics-monstrosity-v6-0-modified-fork
Add Alfeim + Update red core + remove phosphor
Open the game
Open a world
crash

Expected behavior
Don't crash
Logs or/and crash reports
latest.log
Versions

Alfeim: Alfheim-1.0.1
Forge: 1.12.2 - <IP_ADDRESS>60
Java: zulu<IP_ADDRESS>-ca-jdk8.0.372-linux_x64
Java JVM: Zulu

Specification:

OS: EndeavourOS(Arch linux)
CPU: I5 10400F
GPU: RTX 3060
RAM Allocated: 12GB

All of these info below are not necessary but may become necessary depending on the issue

CPU Speed: Processor Base Frequency 2.90 GHz Max Turbo Frequency 4.30 GHz
CPU Core: 6
CPU Threads: 12
RAM Size: 32GB
RAM Speed: 2666MHZ
Storage Type: 1TO SSD
GPU VRAM: 12GB

Duplicate of #5


Rankie Help Embeds

Change help messages from markdown code blocks to embeds. This will be more pleasing and translate better across mobile.

Added in 052d1b926809f2d12cc80f376001df6bae332dbb


OPTION TO HIDE TOOLTIP

I think this would definitely be an awesome feature for this plugin.
https://minecraft.wiki/w/Data_component_format#hide_tooltip

https://wiki.helpch.at/helpchat-plugins/deluxemenus/options-and-configurations/item#item-flags

I meant like hide the tooltip completely. So that when you mouse over the item, nothing would show up
https://static.wikia.nocookie.net/minecraft_gamepedia/images/a/a9/ExampleTooltip.png/revision/latest?cb=20220816224528

I'll try to see if I can do that later, Spigot seems to have a method available for that https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/meta/ItemMeta.html#setHideTooltip(boolean)


#48 Replace Travis CI with Github Action

This PR replaces Travis CI with a Github Action.

@courtney-miles i had the same issue with actions failing if the pull was coming from a fork. Try to make it from a branch in the same repo. I (might remember it wrongly) think that is how i made it run/pass


tpm2_rc_decode doesn't decode handle #

I entered an error code of 0x125, and it gave me the following:
warthur@ubuntu:~/dev/tpm2.0-tools/src$ ./tpm2_rc_decode 0x125
error layer
hex: 0x0
identifier: TSS2_TPM_ERROR_LEVEL
description: Error produced by the TPM
format 0 error code
hex: 0x25
name: TPM_RC_AUTH_MISSING
description: command requires an authorization session for handle and it is not present.
It should also show me the handle #, 1.

yes, I agree. let me label this as a enhancement.

I'm slightly confused why the handle number would be displayed. I am reading section 6.6, and specifically looking at table 15, which shows that Bit 8 set to a 1, Bit 7 set to a 0 and Bit 6 set to 1 or 0 that, "response code defined by this specification with no handle, session, or parameter number modifier"
Your value of 0x125 in base 2 is: 100100101
Thus, bits 8-6: 100
Could you explain what you're looking for better?


Fix ZGfx decoder on big endian

#4231 pointed out some issues on big endian, here a fix for one of them.

nicely solved ;). Thanks.


Exception when description uses unicode character

When my GraphQL schema contains unicode characters, or their HTML entity equivalents, I'm unable to render documentation. I encountered the same error for —, ” and “
I get the following error:
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
(erb):34:in `block in render'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/renderer.rb:48:in `render'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/generator.rb:225:in `write_file'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/generator.rb:126:in `block in create_graphql_object_pages'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/generator.rb:122:in `each'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/generator.rb:122:in `create_graphql_object_pages'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs/generator.rb:54:in `generate'
/Users/fried/.rvm/gems/ruby-2.6.3@developer-4me-com/gems/graphql-docs-2.0.0/lib/graphql-docs.rb:52:in `build'

(Error remains the same after upgrading to 2.0.1)

Turns out the problem was the default_external encoding.
I don't have a LANG environment variable causing Encoding.default_external to be US-ASCII. That did not work well with unicode characters in the GraphQL schema.
Setting Encoding.default_external = 'UTF-8' before generating the documentation fixed the issue.
I don't believe that should that be needed, if my schema uses HTML entities only.

@fhoeben it looks like Ruby 3+ (could be earlier vers too) defaults to whatever the operating system is for encoding:

The default external encoding is initialized by the -E option. If -E isn't set, it is initialized to UTF-8 on Windows and the locale on other operating systems.

On my machine, MacOS running Ruby 3.1.1, the Encoding.default_external is UTF-8. So it seems like this behavior is configurable on an OS-level instead. If yourself or others think that the gem should handle overriding this value, let me know and I can adjust it. But I'm going to close it for now.


Fix Python dev module

The Python dev module has been broken since the removal of dag.Host. This is a new implementation that fixes it.

@shykes, I know there's some rough edges but my priority was to make it functional. We iterate on top.

I split the ruff module refactor into:

https://github.com/dagger/dagger/pull/7952

Fyi, the failures are flakes.


executor::Spawn: add an optional park timeout for blocking methods

This is useful for futures which want to be polled even without being able to move forward; otherwise, it would be necessary to spawn an extra thread to send notifications to the future. For my use-case, I want to animate a "Working..."  message on stdout while waiting for the completion of a future on a background thread, and polling on regular intervals seems to be the easiest way to go about this.
Since thread::park() can wake spuriously anyways, this doesn't seem to break any guarantees of the current API.

Thanks for the PR! This wasn't quite how I envisioned timeout support but this seems like, but it seems nifty!
I was thinking that when a timeout elapsed it'd be returned to the user instead of simply re-polling the future so the timeout could be acted on, but maybe that could be a suite of extra methods? I kinda like the ability to set the timeout globally for a Spawn and then other operations just fall out without extra apis.
I'm curious, do you think there's much of a use case for acting externally in the event of a timeout?

I would prefer keeping the timeout out of the struct. Spawn is a fundamental construct that and must be used by all schedulers. It would be better to keep it as small as possible IMO and provide an additional abstraction for convenience.
If there is a way to execute a future w/o using Spawn, let me know, because I think it is the only way to correctly setup the necessary thread locals.

@carllerche there's not any additional cost to code that doesn't use timeouts so I don't see the issue of maintaining it in Spawn, unless you're really concerned about the additional size an Option<Duration> adds.
Re: handling externally, I don't know of any use cases specifically but re-polling after the timeout is simple enough so it makes more sense. However, this should be in separate methods which can have return types to signify the timeout; the Poll result type works as the NotReady value could signify that the operation timed out. If we're adding separate methods then storing the timeout in Spawn becomes less obligatory.

I'm definitely concerned about the Option<Duration> storage space. A cache line is 64 bytes and this adds an extra 16, aka takes up 25% of the cache line for something that will be rarely used.

So are we thinking a more traditional approach, i.e. adding methods that take a timeout as a parameter? I'm thinking:

wait_future_timeout
wait_stream_timeout
wait_send_timeout
wait_flush_timeout

Or something more like a wrapper struct that adds the timeout? This can be done in client code but it's a bit unwieldy with having to provide your own semi-redundant Unpark impl.

I think in the long run these are just going to be conveniences for what you can build externally, so I'm not too too worried about ergonomics here (they're already pretty bad with Spawn).
In that sense I think basically adding _timeout methods is fine.

@alexcrichton One concern with having the timeout methods meant to be called in a loop from the outside is that the Arc<Unpark> that they use will be getting repeatedly allocated and deallocated. There's not really a good way around this with the current design; exposing it to the user so they can hang onto it is little more gain than having them create this abstraction themselves.
I'm playing around with the idea of having a WithTimeout adapter, though, which gives us a little more flexibility. We can keep the Arc<Unpark> and potentially the timeout in the adapter while not making Spawn itself any bigger. It could also be generic over BorrowMut<Spawn<_>> so it can take ownership or mutably borrow.
There is an issue with it being sent across threads as it'll retain the wrong thread token to unpark, though this could be remedied by replacing the thread token if necessary--we can check equality by comparing the raw thread handles. Alternately, we could just opt-out of Send for the WithTimeout adapter, though it's not strictly necessary for thread safety.

Why not take &Arc<Unpark> instead?

Most of the point of this was to avoid the user having to create their own Unpark impl which is redundant to the private one in the module. Otherwise there's no point over the user creating their own abstraction.

So one thing I'm not sure about is how this'll interact with various executors. Does the desire for timeouts only arise from blocking on futures? Or also during the execution of a future in a typical setting?
If it's only related to blocking on futures then we may wish to adapt Stream::wait and Sink::wait return values to have a configurable timeout. We could then add something like a Future::waiting method which returns an adapter which has a configurable timeout. (or something like that).
Does that make sense?

Does the desire for timeouts only arise from blocking on futures? Or also during the execution of a future in a typical setting?

For my use-case, I want the future to be re-polled even if it can't move forward. While futures should support being re-polled even if they can't move forward (they have to when working with Spawn::wait_*() since parked threads can wake spuriously), I don't know your opinion on whether or not they should be allowed to assume they'd be re-polled on a regular basis, since that does imply some coupling between the future and the executor. I mentioned my use-case in the OP--for that, coupling is fine because it's all in the same file anyway.

If it's only related to [...]. Does that make sense?

It does, and that would work for my use-case, but since these methods already delegate to Spawn, what's the point in having a high-level abstraction without exposing the underlying mechanism? Both would be preferable, I think.

@abonander I agree that there should be a way to poll a future off task w/o passing an unpark handle, but I don't think Spawn would be the place to do that. I haven't put much thought in trying to figure it out though.

That was my point in suggesting an adapter/wrapper for Spawn that holds the Unpark and can take timeouts.
Alternately, though this perhaps isn't that good of an idea, we can expose the ThreadUnpark type that Spawn uses, maybe hiding the thread::current() in the constructor and also providing a constructor that directly returns an Arc just for a little more convenience. Then the solution to the timeout issue is as simple as adding a park_timeout() method.
A potential issue, like with the previously suggested wrapper type, is that the user could move it to a different thread and then end up with a deadlock because the unparks are being sent to the wrong thread handle. We can't opt-out of Send here because it's required by Unpark, though. I don't think it's that big of an issue, a documentation warning should suffice, or maybe an assert in the parking methods that check that the stored thread handle is the current thread.

Ah yeah so I would imagine that if a future wants to be polled on a regular interval it would internally use a future to schedule such a notification, not relying on the executor (in the general abstract sense). This makes sense from an implementation perspective but not necessarily a compositional perspective I think?

That works, and it's pretty much already been done in a third-party crate, but the issue is that it requires an extra thread to send the notification, or an OS message loop to use a timer primitive.
So unless you want to introduce an interface for a future to ask to be polled again on a timeout--which may not be a bad idea but may be complicated to implement and not supported by all event loops so it would need some kind of fallback--then supporting it in Spawn is probably the better way anyway, even if it's at the wrong level conceptually.
What do you think of just exposing ThreadUnpark to provide a basic Unpark impl to client code, and adding a park_timeout() method? It would save some boilerplate for users that want to do their own thing with Spawn.

I've now realized that tokio-core basically has everything I want already, but I'd consider it pretty heavyweight for my use case since I'm not doing anything with evented I/O.

@abonander oh right yeah I wouldn't want this to require an extra thread, but I'd imagine that the support could be implemented in the same fashion that tokio-core does today (just without I/O). Put another way I'd imagine that most executors would provide the ability to have some form of timeout, it's just that the source of the timeout may vary across exeuctors.
We could expose ThreadUnpark yeah, but I fear that it wouldn't solve much of the problem here. Once you reach down into the futures::executor module you're already pretty much in the weeds and I'd imagine that not having to reimplement ThreadUnpark would be the least of your worries :(

So are you thinking something more like lifting the timeout support from tokio-core itself? That could be an option.

Yeah so I've recently wanted to be able to do that in the futures crate itself. Basically support the Timeout and Interval types in futuers instead of tokio-core. That implies, however, that all executors are able to support timeouts, which is not required of executors today. As a result I think it'd be a breaking change, so I haven't thought through it too much.
In general though, yes. I'd expect this problem to be solved with types like Timeout and Interval, regardless of whether they come from tokio-core or another executor.

Okay, closing this then if you'd prefer to go in that sort-of direction for this use case.

Ok. If that ends up being too onerous to implement or doesn't work well locally, I don't mind revisiting this!


Fix failing wcp trace

There appears to be a failing trace for the wcp example which doesn't fail for the original corset tool.  Some notes:

Corresponds to the test ReplayTests_simpleSelfDestruct
Example failing trace from testdata/wcp.accepts is line 1806
The failing constraints is bits-and-negs

Here's the minimal test for reproduction:
(module wcp)

(defcolumns
  (COUNTER :byte)
  (IS_SLT :binary@prove)
  (IS_SGT :binary@prove)
  (BITS :binary@prove)
  (NEG_1 :binary@prove)
  (NEG_2 :binary@prove)
  (BYTE_1 :byte@prove)
  (BYTE_3 :byte@prove))

;; aliases
(defalias CT       COUNTER)

;; opcode values
(defconst
  LLARGE                                    16
  LLARGEMO                                  (- LLARGE 1))

(defun (first-eight-bits-bit-dec)
  (reduce +
          (for i
               [0 :7]
               (* (^ 2 i)
                  (shift BITS
                         (- 0 (+ i 8)))))))

(defun (last-eight-bits-bit-dec)
  (reduce +
          (for i
               [0 :7]
               (* (^ 2 i)
                  (shift BITS (- 0 i))))))

(defconstraint bits-and-negs (:guard (+ IS_SLT IS_SGT))
  (if-eq CT LLARGEMO
         (begin (eq! (shift BYTE_1 (- 0 LLARGEMO))
                     (first-eight-bits-bit-dec))
                (eq! (shift BYTE_3 (- 0 LLARGEMO))
                     (last-eight-bits-bit-dec))
                (eq! NEG_1
                     (shift BITS (- 0 LLARGEMO)))
                (eq! NEG_2
                     (shift BITS (- 0 7))))))

And a minimal failing trace is attached.wcp.minimal.json

Seems to be something to do with this:
(defconst
  LLARGE                                    16
  LLARGEMO                                  (- LLARGE 1))

Here, changing LLARGEMO to 15 ... and it passes.


ArrayList \ Adjust

adjust :: (a -> a) -> Int -> [a] -> [a]
Applies a function to the value at a given index.

This is redundant with Lens::over, and less powerful to boot.


Pixie or Vs DB causing HDF5 errors

I ran VisIt with noconfig o ~/data/nimrod/phi_BT.h5 and got this on my terminal: HDF5DIAG: Error detected in HDF5 (1.8.4) thread 0: #000: H5G.c line 397 in H5Gopen2(): unable to open group major: Symbol table minor: Can't open object #001: H5G.c line 947 in H5G_open_name(): group not found major: Symbol table minor: Object not found #002: H5Gloc.c line 468 in H5G_loc_find(): can't find object major: Symbol table minor: Object not found #003: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal failed major: Symbol table minor: Object not found #004: H5Gtraverse.c line 703 in H5G_traverse_real(): traversal operator failed major: Symbol table minor: Callback failed #005: H5Gloc.c line 423 in H5G_loc_find_cb(): object doesn't exist major: Symbol table minor: Object not found E: H5PartSetStep: Cannot open group "Step#0". HDF5DIAG: Error detected in HDF5 (1.8.4) thread 0: #000: H5G.c line 397 in H5Gopen2(): unable to open group major: Symbol table minor: Can't open object #001: H5G.c line 947 in H5G_open_name(): group not found major: Symbol table minor: Object not found #002: H5Gloc.c line 468 in H5G_loc_find(): can't find object major: Symbol table minor: Object not found #003: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal failed major: Symbol table minor: Object not found #004: H5Gtraverse.c line 703 in H5G_traverse_real(): traversal operator failed major: Symbol table minor: Callback failed #005: H5Gloc.c line 423 in H5G_loc_find_cb(): object doesn't exist major: Symbol table minor: Object not found Running: engine_ser host <IP_ADDRESS> port 5600 -dv This does not happen if I run w/o -o and then select H5Nimrod as the file type in the open dialog. This comes from the mdserver. I ran with -norun engine_ser, and saw the errors before I launched the engine. mdserver log attached. This wasn't the 2.1.0 release, it was r12701.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 416
Status: Resolved
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: Pixie or Vs DB causing HDF5 errors
Assigned to: Mark Miller
Category: -
Target version: 2.1.1
Author: Tom Fogal
Start: 10/07/2010
Due date:
% Done: 50%
Estimated time:
Created: 10/07/2010 05:24 pm
Updated: 11/04/2010 05:24 pm
Likelihood: 5 - Always
Severity: 2 - Minor Irritation
Found in version: 2.1.0
Impact:
Expected Use:
OS: Linux
Support Group: Any
Description:
I ran VisIt with noconfig o ~/data/nimrod/phi_BT.h5 and got this on my terminal: HDF5DIAG: Error detected in HDF5 (1.8.4) thread 0: #000: H5G.c line 397 in H5Gopen2(): unable to open group major: Symbol table minor: Can't open object #001: H5G.c line 947 in H5G_open_name(): group not found major: Symbol table minor: Object not found #002: H5Gloc.c line 468 in H5G_loc_find(): can't find object major: Symbol table minor: Object not found #003: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal failed major: Symbol table minor: Object not found #004: H5Gtraverse.c line 703 in H5G_traverse_real(): traversal operator failed major: Symbol table minor: Callback failed #005: H5Gloc.c line 423 in H5G_loc_find_cb(): object doesn't exist major: Symbol table minor: Object not found E: H5PartSetStep: Cannot open group "Step#0". HDF5DIAG: Error detected in HDF5 (1.8.4) thread 0: #000: H5G.c line 397 in H5Gopen2(): unable to open group major: Symbol table minor: Can't open object #001: H5G.c line 947 in H5G_open_name(): group not found major: Symbol table minor: Object not found #002: H5Gloc.c line 468 in H5G_loc_find(): can't find object major: Symbol table minor: Object not found #003: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal failed major: Symbol table minor: Object not found #004: H5Gtraverse.c line 703 in H5G_traverse_real(): traversal operator failed major: Symbol table minor: Callback failed #005: H5Gloc.c line 423 in H5G_loc_find_cb(): object doesn't exist major: Symbol table minor: Object not found Running: engine_ser host <IP_ADDRESS> port 5600 -dv This does not happen if I run w/o -o and then select H5Nimrod as the file type in the open dialog. This comes from the mdserver. I ran with -norun engine_ser, and saw the errors before I launched the engine. mdserver log attached. This wasn't the 2.1.0 release, it was r12701.
Comments:
I took for 2.1.1 under the assumption that the real issue here is that a plugin is neglecting to silence HDF5 error reporting on stderr. If in fact there are real plugin bugs here, then I'll probably put this back into the new state. The mdserver logs show the following plugins were tried (and in this order): Chombo GTC H5Part M3DC1 M3D PFLOTRAN Pixie Tetrad UNIC VsThe open looks like it succeeded on 'Vs' But this ticket says its a Nimrod file and H5Nimrod was never tried. I suspect this is because Vs opened it successfully. So, I think there are bigger problems here. Specifically, I think 'Vs' plugin incorrectly decided it was correct plugin for this data file.I checked the list of tried plugins and a few do NOT quite HDF5 debug output on stderr; H5Part, Unic and Vs do NOT. I can fix that but that won't fix the bigger problem here. Ok, I've added H5Eset_auto(0,0) calls to H5Part, Unic and Vs. Thats about all I can do on this ticket. I set this as 50% done because I think the other tidbit is for either Vs or nimrod to be a little stricter about file matching. Allen made a commit he thinks fixes this. It was that nimrod plugin did NOT specify .h5 as an extension it recognized. r12875 I still see the hdf5 goobly-gook on r12948. But does disabling it make sense? It's complaining that a database is looking for a value that doesn't exist, right? So, shouldn't the database realize the file is of the wrong type and bail without doing Bad Things (tm)?This should be on another bug, I guess, but: both H5Nimrod and Pixie report that they can read this file. Luckily, this case chooses H5Nimrod essentially at random, so it works. But VisIt shouldn't be choosing if it's confused; we should just pop up a dialog and ask the user. When multiple HDF5 plugins are tried, invariably, one is tried that is NOT the correct one for the file. It will attempt various HDF5 function calls that will (naturally) fail. Thats ok. The problem is that if the plugin fails to silence HDF5 debug output, attempted and failed HDF5 operations then appear on stderr confusing the user. So, yes, I think it is correct to silence this. Otherwise, given some HDF5 file, we could get a slew of error messages from each and every HDF5 plugin that is tried BEFORE it gets to the correct HDF5 plugin for the file being opened and then opens that file successfully.I don't think Nimrod was tried first at random. I thought Allen added stuff to Nimrod plugin delcaring 'h5' to be a file extension that Nimrod recognizes. And, if it is a valid Nimrod file and Nimrod is tried BEFORE Pixie, why Pixie is even getting involved here. Something is amiss or I don't understand Tom's comments.At any rate, what is 'bad' about the HDF5 output is that it is totally NORMAL for this to happen when the wrong plugin operates on the file.  Mark Miller wrote:I don't think Nimrod was tried first at random. I thought Allen added stuff to Nimrod plugin delcaring 'h5' to be a file extension that Nimrod recognizes. And, if it is a valid Nimrod file and Nimrod is tried BEFORE Pixie, why Pixie is even getting involved here.This is intentional. Allen had experienced cases where some plugin (e.g. Pixie) was too lax about what files it could open and was getting tried before the correct plugin (e.g. Vs) simply due to alphabetical ordering. In order to prevent his users from experiencing this, we now try all matching plugins, even if one succeeded. If multiple succeed, we now issue a warning to the effect of "multiple readers (pixie, vs) could open your file; we're picking pixie for now, but it's just a guess, and you might want to make pixie more restrictive if this was a Vs file, or Vs more restrictive if this is a pixie file, or use preferred readers to avoid this warning if they're both okay". ? Well, that's what I'm saying. Just choosing nimrod (or anything) from a multielement set is silly. We shouldn't choose anything at all, and instead just ask the user "This file is either X or Y. Tell me which it is (or open a bug if it's neither!)."Preferred readers are not a good solution to this problem. One might load data of type X today and type Y tomorrow, and back to X again the next day. That means every time the user starts VisIt, they need to go through all sorts of menus and rearrange a preferred list.By "random" I meant alphabetical ordering, as Jeremy notes. It doesn't really matter though, since such an ordering doesn't have any meaning in this case - it would be just as bad if we chose a random permutation of the sequence and based our decision on that. I missed the HDF5 bit.I guess my confusion is in how HDF5 operates. If my database has the code:Then I assume hdf5 would not spew any garbage if "Whatever" does not exist in the file. Attempting to open "Whatever" is completely normal operation and not an application or library use error, so IMO nothing should end up on stderr and "ds" should simply end up as 1 after the call, no other side effects.I'm assuming hdf5 does that, and it's only if one goes to use 'ds' or similar that it starts complaining. If that's the case, then I don't think we should silence these errors, because they are bugs in the database - we should not, for example, query a dataset space when we know the dataset does not exist!If HDF5 doesn't work that way, that implies to me that it is dumping stderr gobbly gook for routine operations.Am I missing something? Tom Fogal wrote:? Well, that's what I'm saying. Just choosing nimrod (or anything) from a multielement set is silly. We shouldn't choose anything at all, and instead just ask the user "This file is either X or Y. Tell me which it is (or open a bug if it's neither!)."Well, that ship has sort of sailed, since what we're doing is how we decided to do the new file opening behavior during our 2.0 planning process. One most immediate problem is that we don't have a multiroundtrip option in file opening behavior; we can send a request to the mdserver and get an open file (and maybe a warning), but we can't ask the mdserver for a list of options, then ask the user, then tell the mdserver which one the user picked. Particularly since we have to account for nonUIbased behavior like batch scripts.Preferred readers are not a good solution to this problem. One might load data of type X today and type Y tomorrow, and back to X again the next day. That means every time the user starts VisIt, they need to go through all sorts of menus and rearrange a preferred list.Typically, the case is that one of your readers is very lax (Pixie) and one is not (Vs), and so the problem is oneway, i.e. you need to make sure Vs gets tried before Pixie, so you put Vs in your preferred reader list. If you have a Pixie file, Vs won't open it. So Preferred readers are typically sufficient, even if you do happen to work with all sorts of flavors of data (which is more common for visit developers than many domainspecific customers, so having perfection in all cases is less of a global concern). And you can always just use "Open As" - this is similar functionally, though of course less convenient, compared to asking the users which one they want. If HDF5 doesn't work that way, that implies to me that it is dumping stderr gobbly gook for routine operations.Am I missing something?My understanding is that that is precisely how HDF5 works. It will spew on stderr whenever anything fails, even attempting to open a nonexistent dataset. You have to silence it to avoid this. Alternatively, I think maybe their builtin try/catch semantics also affect stderr behavior. But, we don't tend to use their try/catch stuff. Wow, you're entirely right. I just made a dumb test and see exactly this.I'll file a bug with the hdf5 folks. Errr, sorry, that might have come out wrong. It's not surprising that you're correct, it's surprising that HDF5 behaves in this way!  Sorry. However, in 1.8 we added "H5Lexists", which can check for the existence of an object without reporting any such error messages.'Do we require 1.8 yet? If/when we do, I think we should change this bug to track switching to the 'exists' interface. I think wrapping H5Dopen/H5Gopen/H5Aopen, etc. calls with H5Lexists is a) going to be painful and b) won't even address all the stderr output HDF5 generates.I think we have some plugins that do indeed REQUIRE 1.8. That said, we also have many more coded to the 1.6 API (e.g. #define H5_USE_16_API in them). We currently build, everywhere I think, with 1.8.4.So, I guess I feel strongly, 'no', we should not be attempting wide sweeping changes (which I am pretty sure what they'll turn out to be) to address this.I am really curious, though, why the heck they cannot 'fix' their H5Dopen/H5Gopen calls where this is concerned and instead are telling us to use different calls.

0429_A.mdserver.5.vlog.zip


Added time ranges to search criteria of pull requests

This PR is to add time Ranges to GitPullRequestSearchCriteria. so that it will be helpful to extract pull requests based on specified time rather than extracting all pull requests information every time.
Closes #491

@microsoft-github-policy-service agree


chore(deps): update devdependency typescript to ^5.7.2

This PR contains the following updates:

Package
Type
Update
Change

typescript (source)
devDependencies
minor
^5.6.3 -> ^5.7.2

Release Notes

microsoft/TypeScript (typescript)
v5.7.2: TypeScript 5.7
Compare Source
For release notes, check out the release announcement.

fixed issues query for Typescript 5.7.0 (Beta).
fixed issues query for Typescript 5.7.1 (RC).
fixed issues query for Typescript 5.7.2 (Stable).

Downloads are available on:

npm

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Hywax Assistant.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (4250595) to head (20ea4a2).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main       #89   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          147       147
  Branches        26        26
=========================================
  Hits           147       147

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

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests


Add protocol registry to the server.

to fix the check. delete the build file in dataplane/protocol/ and run make buildfile it doesn't handle package renames gracefully, need to help it a bit


N-Times Usage Policy is not properly implemented

When trying to use the N-Time policy I got an error message.
Versions: DSC - 8.0.1; MDS Frontend - 10.0.1.
Steps to reproduce:
Select N Times Usage as policy
Number ≤ 5
Contract validity period: from 2022-09-01 to 2022-09-30
The error message (Frontend):
Error on POST /api/ids/resource/update {"status":417,"statusText":"","headers":{"x-content-type-options":"nosniff","x-xss-protection":"1; mode=block","cache-control":"no-cache, no-store, max-age=0, must-revalidate","pragma":"no-cache","expires":"0","strict-transport-security":"max-age=31536000 ; includeSubDomains","x-frame-options":"DENY","content-type":"application/json","transfer-encoding":"chunked","date":"Wed, 07 Sep 2022 14:50:46 GMT","connection":"close"},"config":null,"request":null,"data":{"details":{"reason":{"properties":null,"@id":"https://w3id.org/idsa/code/MALFORMED_MESSAGE"},"payload":"The message could not be parsed due to an error in the message. Note that, due to being unable to parse this message, the ID of the correlating message is incorrect. Error: The following mandatory field(s) of Constraint are not filled or invalid: ids:pipEndpoint. Note that the value of \"@id\" fields MUST be a valid URI (e.g. emails preceded by \"mailto:\"). Mandatory fields are: leftOperand, operator, pipEndpoint","type":"de.fraunhofer.iais.eis.RejectionMessageImpl"},"message":"Received unexpected response message."}}
The error message (Connector):
DEBUG - Received unexpected response message. [response=({reason=https://w3id.org/idsa/code/MALFORMED_MESSAGE, payload=The message could not be parsed due to an error in the message. Note that, due to being unable to parse this message, the ID of the correlating message is incorrect. Error: The following mandatory field(s) of Constraint are not filled or invalid: ids:pipEndpoint. Note that the value of "@id" fields MUST be a valid URI (e.g. emails preceded by "mailto:"). Mandatory fields are: leftOperand, operator, pipEndpoint, type=class de.fraunhofer.iais.eis.RejectionMessageImpl})]

It has been found that the problem is on the broker side. Closed.


Add Missing Quote

Summary
#25  Add Missing Quote.
Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

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

Hi @ChunkLightTuna, thanks for submitting this pull request!
The change looks great to me. Would you mind signing our CLA? (check the above bot message) Without having it, we are unable to merge your contribution 🙇

Hi @ChunkLightTuna, can you check my above comment?


fixes after switching project to async

PR fixes the following things:

fixes crash on load due to accessing things from non-GUI thread
fixes most of compiler warnings
adds some missing sanity checks (e.g. if conanfile.txt wasn't available)
fixes crash on project reload

Apologies, I have had conversations with @sboulema about how we're going to reimplement these existing functions basically from scratch. We should have been working on a separate branch I suppose, we just didn't anticipate anyone else getting involved in the short term.
We'll merge these because they're just general improvements and it's better than leaving the old code. Also, we might still copy some code from these functions to the new functions.
Moving forward, we're implementing the menu items, task definitions, and VS event hooks in a much more dynamic way surrounding vs.tasks.json.  Once we have a POC of this, we (bincrafters and other preliminary testers), will be able to test out a wide range of configurations and workflows without any code changes to the plugin.  We can create new actions in vs.tasks.json, and map them to any event such as onProjectLoad or onConfigurationSwitch (switch from Release to Debug, etc), and indicate "Project Refresh" should be triggered after specific tasks/actions are completed.
Later, once we know more about how which workflows we want to optimize and how they're going to work, we can potentially hard-code conan-specific menu's and such into the plugin.

PR is good anyway, let's continue working on this branch and once stuff crystalizes into a solid implementation we can always split off into a new branch.
For now this is more a collection of good components than a functioning extension.

@solvingj thanks for the explanation. in general, while it makes sense to rewrite project, it's much easier for me personally to debug extension which at least loads properly. also, having no warnings is big plus for me, as I can verify new code doesn't introduce any new warnings. same for having CI build and tests set up in place.

hi @sboulema
could you help me with the following exception? (happens when I run project in Debugger)
System.IO.FileNotFoundException: 'Could not load file or assembly 'VsixLogger, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=29d32695dc822296' or one of its dependencies. The system cannot find the file specified.'

Try reinstalling this Nuget package: https://www.nuget.org/packages/VsixLogger/

this doesn't help unfortunately :(

Try referring to an older version of VsixLogger

Replaced Vsixlogger with custom LoggingService which does the same.
Probably VsixLogger doesnt like the usage of PackageReferences.

seems like projects are completely messed up, I gonna convert them to the new format (two of them are using old format). same issue happens to Json, so I think VsixLogger fix will not be needed.


pathjoin() in image.styl converts folder structure to '' instead of '/' in Windows

input;
@import 'nib'
body
 image 'img/background.png'

excepted output:
body {
  background-image: url("img/background.png");
}
@media all and (-webkit-min-device-pixel-ratio: 1.5) {
  body {
    background-image: url("img/background@2x.png");
    -webkit-background-size: auto auto;
    -moz-background-size: auto auto;
    background-size: auto auto;
  }
}

actual output:
body {
  background-image: url("img/background.png");
}
@media all and (-webkit-min-device-pixel-ratio: 1.5) {
  body {
    background-image: url("img\background@2x.png");
    -webkit-background-size: auto auto;
    -moz-background-size: auto auto;
    background-size: auto auto;
  }
}

pathjoin() in image.styl converts folder structure to \ instead of /.

I reproduced this issue in Windows in my project as well.
I can actually get expected result by using stylus executable (0.49.3, btw 0.50.0 makes no difference on this issue), but get backslashes using gulp (3.8.11) with gulp-stylus plugin (2.0.1).
Updating Nib from 1.0.3 to 1.1.0 doesn't help.
Environment: io.js 1.4.3, Windows 8.1

+1. Still an issue. Any plan to solve this one?


Code preparation for repeated question sets

Summary | Résumé
Adds initial setup for handling "dynamicRows" / Repeated question sets.
Designs for this are in progress but this PR handles preparing the code to handle subElements
This feature is hidden for development mode only in this PR.
Test instructions | Instructions pour tester la modification

Add a Repeated question set via add element
Add element(s) + save etc..

Pull Request Checklist
Please complete the following items in the checklist before you request a review:

[x] Have you completely tested the functionality of change introduced in this PR? Is the PR solving the problem it's meant to solve within the scope of the related issue?
[x] The PR does not introduce any new issues such as failed tests, console warnings or new bugs.
[ ] If this PR adds a package have you ensured its licensed correctly and does not add additional security issues?
[ ] Is the code clean, readable and maintainable? Is it easy to understand and comprehend.
[ ] Does your code have adequate comprehensible comments? Do new functions have docstrings?
[ ] Have you modified the change log and updated any relevant documentation?
[ ] Is there adequate test coverage? Both unit tests and end-to-end tests where applicable?
[ ] If your PR is touching any UI is it accessible? Have you tested it with a screen reader? Have you tested it with automated testing tools such as axe?

@dsamojlenko
Pushed a couple of commits to clean up the schema to not include sub elements when adding sub elements + hiding this for dev mode only.


fix: add browser to default resolve.mainFields

Fixes https://github.com/sveltejs/vite-plugin-svelte/issues/808

FYI when using this library https://github.com/Cweili/svelte-fa/blob/master/package.json the update to v3.0.1 make the library failed now (v3.0.1) while with v3.0.0 it was working (with vite5)

FYI when using this library https://github.com/Cweili/svelte-fa/blob/master/package.json the update to v3.0.1 make the library failed now (v3.0.1) while with v3.0.0 it was working (with vite5)

Hi, please file an issue report with a minimal reproduction. the package.json of that library looks very complex and it's possible that this change unmasked a preexisting issue that was never triggered before due to the previous svelte field resolution algorithm