LLM Wrapper Error: ValueError: OPENAI_API_KEY not found in the environmen(t).

Code
I tried to use evaluate with a LangchainLLMWrapper, however for some it still requires an OpenAI key, here is the code:
from ragrank import evaluate
from ragrank.evaluation import EvalResult
from ragrank.integrations.langchain import LangchainLLMWrapper
from ragrank.dataset import from_dataframe
from ragrank.metric import (
    context_relevancy,
    response_relevancy
)
from langchain_community.chat_models import ChatOllama

rr_dataset = from_dataframe(df)

ollama_llm = ChatOllama(model='gemma:2b')
ragrank_llm = LangchainLLMWrapper(llm=ollama_llm)

result: EvalResult = evaluate(
    dataset=rr_dataset,
    llm=ragrank_llm,
    metrics=[
        response_relevancy,
        context_relevancy,
    ],
)

PS: I do not usally work with Langchain so there is a chance I done something wrong with it, however by the error raised, even if this is the case, it is unclear if that's a bug in the library
Problem
By further inspecting the problem I found that it is happening here:
File D:\...\.venv\Lib\site-packages\ragrank\evaluation\base.py:74, in <listcomp>(.0)
     70     metrics = [metrics]
     72 dt = time()
     73 scores = [
---> 74     [
     75         metric.score(datanode).score
     76         for datanode in dataset.with_progress("Evaluating")
     77     ]
     78     for metric in metrics
     79 ]

     ...

     File D:\...\.venv\Lib\site-packages\ragrank\metric\_response_related\relevancy.py:74, in ResponseRelevancy.score(self, data)
     72 prompt_str = self.prompt.to_string()
     73 prompt_dt = prompt_str.format(**data.model_dump())
---> 74 response = self.llm.generate_text(
     75     prompt_dt,
     76 )
     77 try:
     78     score = float(response.response)

Solution Attempt
I read trough the source code and tried to find a work around, this was my attempt:
...
from ragrank.metric._response_related.relevancy import ResponseRelevancy
from ragrank.metric._context_related.relevancy import ContextRevevancy

resp_r = ResponseRelevancy()
resp_r.llm = ragrank_llm

cont_r = ContextRevevancy()
cont_r.llm = ragrank_llm

result: EvalResult = evaluate(
    dataset=rr_dataset,
    llm=ragrank_llm,
    metrics=[
        resp_r,
        cont_r,
    ],
)

However it yielded another error KeyError: 'token_usage':
File D:\...\.venv\Lib\site-packages\ragrank\metric\_response_related\relevancy.py:74, in ResponseRelevancy.score(self, data)
     72 prompt_str = self.prompt.to_string()
     73 prompt_dt = prompt_str.format(**data.model_dump())
---> 74 response = self.llm.generate_text(
     75     prompt_dt,
     76 )
     77 try:
     78     score = float(response.response)

File D:\...\.venv\Lib\site-packages\ragrank\integrations\langchain\langchain_llm_wrapper.py:97, in LangchainLLMWrapper.generate_text(self, text)
     93 langchain_result: LangchainLLMResult = (
     94     self.llm.generate_prompt(prompts=[prompt])
     95 )
     96 message = langchain_result.generations[0][0].text
---> 97 response_tokens = langchain_result.llm_output["token_usage"][
     98     "completion_tokens"
     99 ]
    100 response_time = time() - start_time
    102 result = LLMResult(
    103     response=message,
    104     response_time=response_time,
   (...)
    107     llm_config=self.llm_config,
    108 )

At that point I don't know what I can try going deeper in the source code (i.e I can't propose a solution), so I point out that problem in hope that you can improve the library. (or tell me what I am doing wrong)
*PS: 'ValueError: OPENAI_API_KEY not found in the environmen.' has a typo, it misses the 't'; *

Thanks for pointing this out @antoninoLorenzo. I appreciate that you tried to solve it on your own. It is actually a bug in the langchain integration part. it will be resolved in the next release (0.0.8).
I assume that the first problem arose because, in the file evaluation/base.py, there is an import default_llm. it needs to change. and also we are accessing the token_usage property which is only available for a few llms in langchain. Needed to remove the token_usage attribute in langchain integration.
If possible, please raise a PR as a solution.


pull https://github.com/openshift/library-go/pull/1819

/retest-required

ok, i manually checked the audit-logs form and requests to /livez are no longer persisted in the audit logs.
However I noticed the following entries:
{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"fb6a08f8-3656-4435-899a-74dee6416bf1","stage":"ResponseComplete","requestURI":"/readyz","verb":"get","user":{"username":"system:apiserver","uid":"45190fa5-6708-486e-9522-40785dec4762","groups":["system:masters"]},"sourceIPs":["::1"],"userAgent":"kube-apiserver/v1.31.1 (linux/amd64) kubernetes/8540bd4","responseStatus":{"metadata":{},"code":500},"requestReceivedTimestamp":"2024-10-07T09:40:42.005730Z","stageTimestamp":"2024-10-07T09:40:42.006133Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":""}}

which indicates that the requests from the self-client are not matching the audit policy. I am not sure why the self-client queries the /readyz endpoint, but we could update the audit policy to exclude requests from this user to the health check endpoints.

which indicates that the requests from the self-client are not matching the audit policy. I am not sure why the self-client queries the /readyz endpoint, but we could update the audit policy to exclude requests from this user to the health check endpoints.

Don't exclude the entire user, we need to know what that user does.  Weird that it escapes policy though.

/close
will pull the fix into https://github.com/openshift/cluster-kube-apiserver-operator/pull/1750


something wrong with distance_matrix

Hello again.
I've been using this model and I like this model a lot.
But I have an error that the distance matrix does not change .
I created an environment before but since the pc got broken, I moved the environment to new pc.
The code runs till the end but the distance matrix show like below.
data/person1/person1.png and data/person2/person2.png distance[[0.00812232,0.05873889]] data/person2/person2.png and data/person3/person3.png distance[[0.00845033,0.0598461 ]] data/person3/person3.png and data/person4/person4.png distance[[0.00839752,0.05975628 ]] data/person4/person4.png and data/person5/person5.png distance[[0.00839752,0.05975628 ]] data/person5/person5.png and data/person6/person6.png distance[[0.00839752,0.05975628 ]] data/person6/person6.png and data/person7/person7.png distance[[0.00839752,0.05975628 ]]
The first distance always is about 0.008~ and the second distance always is about 0.05~.
How can I sort this out?
Thank you.

Hi,
Have you made modifications to the original scripts? If so, please post a minimal snippet that would reproduce this issue.
All the best.
Xingyang

This is what I added to the original code.
`        print("Freezing the whole model in the evaluation_only mode ...")
training_model.trainable = False
training_model.compile(**training_model.compile_kwargs)
people_list =[
'custom_database/index0/img00063.png',
'custom_database/index7/img00006.png',
'custom_database/index0/img00071.png',
'custom_database/index7/img00017.png',
'custom_database/index0/img00077.png',
'custom_database/index7/img00026.png',
'custom_database/index0/img00084.png',
'custom_database/index8/img00019.png'
    ]
    for i in range(6):

        image_content_list = [
            read_image_file(image_file_path, input_shape)
            for image_file_path in [
                people_list[i],
                people_list[i+1],
                people_list[i+2]
            ]
        ]
        image_content_array = preprocess_input(np.array(image_content_list))
        first, second, third = inference_model.predict(image_content_array,batch_size=batch_size)
        distance_matrix = test_evaluator_callback.compute_distance_matrix(
            query_image_features=[first],
            gallery_image_features=[second, third],
            metric="cosine",
            use_re_ranking=use_re_ranking)
        print(f'People{people_list[i]},{people_list[i+1]},{people_list[i+2]}')
        print(f'ditance_list{distance_matrix}')
         `

I got results like below.
Peoplecustom_database/index0/img00063.png,custom_database/index7/img00006.png,custom_database/index0/img00071.png ditance_list[[0.00812232 0.05873889]] Peoplecustom_database/index7/img00006.png,custom_database/index0/img00071.png,custom_database/index7/img00017.png ditance_list[[0.00845033 0.0598461 ]] Peoplecustom_database/index0/img00071.png,custom_database/index7/img00017.png,custom_database/index0/img00077.png ditance_list[[0.00839752 0.05975628]] Peoplecustom_database/index7/img00017.png,custom_database/index0/img00077.png,custom_database/index7/img00026.png ditance_list[[0.00839752 0.05975628]] Peoplecustom_database/index0/img00077.png,custom_database/index7/img00026.png,custom_database/index0/img00084.png ditance_list[[0.00839752 0.05975628]] Peoplecustom_database/index7/img00026.png,custom_database/index0/img00084.png,custom_database/index8/img00019.png ditance_list[[0.00839752 0.05975628]] All done!

Hi,
The snippet looks OK.
Based on my understanding, the first distance should be higher than the second distance.
You could replace one sample in people_list with a normal image that does not contain a person. This should at least generate a distance matrix that is different from the current one.
Xingyang

I replaced the last picture with the picture of house, but the second value of the distance_matrix did not change.
How can I sort this out?

Hi,
I tested the following snippet which worked as expected, i.e., values in distance_matrix were different.
import glob
image_file_path_list = sorted(
    glob.glob("/home/*/Pictures/*"))
image_content_list = [
    read_image_file(image_file_path,
                    test_evaluator_callback.input_shape)
    for image_file_path in image_file_path_list
]
image_content_array = np.array(image_content_list)
image_content_array = test_evaluator_callback.preprocess_input(
    image_content_array)
feature_array = inference_model.predict(x=image_content_array,
                                        batch_size=batch_size)
distance_matrix = test_evaluator_callback.compute_distance_matrix(
    query_image_features=feature_array,
    gallery_image_features=feature_array,
    metric="cosine",
    use_re_ranking=False)
print(distance_matrix)

If you still have this issue, you may debug the snippet line by line and check whether there are warning/error messages.
All the best.
Xingyang

Is is possible to show up this issue by what I use Windows OS?

It's hard to say. Debugging the code would help in identifying the root cause.
Xingyang

Hello again.
I've been debugging so far, but I still have the same problem.
Even though I set different pictures as test images, it gives me the same distance matrix.
Do I have to add or change the original code by my PC?
I tried this mode on both Windows and Linux.
This is my PC environment.
Intel Core i9-11900K
RAM 64 GB
Windows 10 Pro
GPU NVIDIA GeForce RTX 3090
To use this model on Windows, I changed "long" to "long long" in "metrics/rank_cy.pyx".
I changed './datasets/init.py' to set the root_folder_path , but since I put Market1501 in AdaptiveL2Regularization folder, I set './' as root_folder_path.

Hi,
I suggest running the evaluation procedure without any modifications. This should give scores that are consistent with our paper.
Afterward, you may add your own changes one by one and check whether it affects the scores or not.
On a side note, the scores in evaluation would be incorrect if distance_matrix is wrong.
All the best.
Xingyang Ni

So do you mean I don't have to change the code depending on pc?

The idea is to replicate the evaluation procedure using the provided repository as it is. You may need to specify the root_folder_path argument manually, but no other modifications are required (at least on Linux).
Xingyang

I think this is too low mAP.
I downloaded the pre-trained model from your git repository and used it.
Is this correct ?

No, it doe not make sense. Ideally, one should be able to reproduce the results reported in our paper.
Please check whether there are warning/error messages.
Xingyang

I also tried it on Ubuntu 18.04 and it says this below.
test_cosine_False_1_rank_to_accuracy_dict rank-1 accuracy 0.000000 test_cosine_False_1_rank_to_accuracy_dict rank-5 accuracy 0.000000 test_cosine_False_1_rank_to_accuracy_dict rank-10 accuracy 0.000000 test_cosine_False_1_rank_to_accuracy_dict rank-20 accuracy 0.000594 test_cosine_False_1_mAP_score 0.001111
I checked the output and it says W tensorflow/stream_executor/gpu/redzone_allocator.cc:314] Internal: ptxas exited with non-zero error code 65280, output: ptxas fatal   : Value 'sm_86' is not defined for option 'gpu-name'
Only this sentence has "W tensorflow" so I thought this causes this problem.

You may add the full command that you are using and attach the complete log of the command. I could check those.
As a side note, make sure that you are following the guide in the environment section.
Xingyang

This is the full command I use.
python -u solution.py --dataset_name "Market1501" --backbone_model_name "ResNet50" --pretrained_model_file_path "Market1501_ResNet50_9502037.h5" --output_folder_path "evaluation_only" --evaluation_only --freeze_backbone_for_N_epochs 0 --testing_size 1.0 --evaluate_testing_every_N_epochs 1 --workers 1
Is it possible that it doesn't show the correct results since my new pc has initial failure?
I pasted the txt file that says the log of the command.
Thank you for spending your time on my error a lot.
adaptivel2_log_windows.txt

adaptivel2_log_ubuntu18_04.txt
And this is the log on Linux(Ubuntu18.04)

Hi,

The full command is OK. For clarity, I would use python3 rather than python.
Make sure that the scripts are not modified. Please check the output of git status.
It appears that you have the dataset saved under ~/Documents/AdaptiveL2Regularization/Market-1501-v15.09.15. Please verify that no changes are made.
For your reference, this is the slurm-18758240.log file in my experiment, and the results are correct. I don't have the "Internal: ptxas exited with non-zero error code 65280" issue. You may search for it under the repository of TensorFlow.
The loss values (e.g., activation_loss and lambda_loss) in your log are excessively high. Although these values are not indicative, this might be related to the current problem.

Xingyang

When I use python3 instead of python, it doesn't run.
I have the dataset in ~/Documents/AdaptiveL2Regularization/Market-1501-v15.09.15.
Just in case, could you paste your environment yaml file here? I want to try it on the same environment as yours.

I also think this causes by my broken pc so I want to try this model on Google Colab.
But I got an error below
Use /content/drive/My Drive/AdaptiveL2Regularization as root_folder_path ... Traceback (most recent call last):   File "solution.py", line 1070, in <module>     app.run(main)   File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 303, in run     _run_main(main, args)   File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 251, in _run_main     sys.exit(main(argv))   File "solution.py", line 842, in main     load_accumulated_info_of_dataset(root_folder_path=root_folder_path, dataset_name=dataset_name)   File "/content/drive/MyDrive/AdaptiveL2Regularization/datasets/__init__.py", line 48, in load_accumulated_info_of_dataset     root_folder_path=root_folder_path)   File "/content/drive/MyDrive/AdaptiveL2Regularization/datasets/market1501.py", line 65, in load_Market1501     image_folder_name="bounding_box_train")   File "/content/drive/MyDrive/AdaptiveL2Regularization/datasets/market1501.py", line 25, in _load_accumulated_info     assert len(image_file_path_list) == 12936 AssertionError
It seems that I don't have datas in the dataset directory, but I download market1501 and unzipped it .
How can I solve this ?

Using python3 should definitely work. Something is wrong with your environment. Please follow the environment section, and check TensorFlow2.2.yml.txt.
Regarding the assertion error, make sure that you have those folders (e.g., bounding_box_train and bounding_box_test) under root_folder_path/Market-1501-v15.09.15.
Xingyang

I tried many ways to sort this out, but I found a website that says RTX3090 is not compatible with CUDA10.X.
Is there any way to use this model with CUDA11.0 and Tensorflow==2.4 or CUDA11.3 and Tensorflow==2.5?

Glad to hear that you have found a plausible explanation for this issue. To my knowledge, NVIDIA A100 can not run on CUDA 10 with PyTorch.
I have experienced with TensorFlow 2.3 and 2.4 before. However, there were some tricky bugs, e.g., issue 41021. As a result, I decided to stick with TensorFlow 2.2.
On the one hand, you may try to fix bugs after updating TensorFlow. On the other hand, you may consider using FlipReID instead. I might already have fixed those issues.
Xingyang

Thank you for your advice to me.
It will surely help me a lot.
Now, I consider using FlipReID and I have created the environment, so I will ask you one question in the repository.


Unable to Change Custom Cell Values (Dropdown)

Problem:
Hey team, I am experiencing an issue in which I cannot change the values of custom cells, specifically dropdowns, in my application. Despite the console logs showing the correct value, the changes are not being reflected in the dropdowns.
The edit functionality of other cells is working as expected and this is happening with custom cells. Would request further information on handling the edit of custom cells in glide-apps-grid.
Let me know if any further information is required. Thank you
Here is the on-cell edited function:
// Sample code that demonstrates how the update is attempted
const onCellEdited = (cell: Item, newValue: CustomCell) => {
    const [col, row] = cell;
    const attribute = attributes[col];

    if (newValue.kind === "custom" && newValue.data.kind === "dropdown-cell") {
        const dropdownValue = newValue.data.value;

        // Update the dropdown value in indicatorRecord
        setIndicatorRecord((prevRecords: IndicatorRecord[]) => {
            const newRecords = [...prevRecords];
            newRecords[row] = {
                ...newRecords[row],
                [attribute.name]: dropdownValue,
            };
            return newRecords;
        });
    }
    // ...
};

My another approach is mentioned below, although I am curious to know if there is any better way to handle this?
`setIndicatorRecord((prevRecords: IndicatorRecord[]) => {
        const newRecords = [...prevRecords];
        newRecords[row] = {
          ...newRecords[row],
          org_node: {
            ...newRecords[row].org_node,
            name: dropdownValue,
          },
        };
        return newRecords;`

I need a more complete example to see what is going on. How are you informing the grid of the change?

To inform the grid about the change, I am doing the following.
 const onCellEdited = (cell: Item, newValue: CustomCell) => {
    const [col, row] = cell;
    const attribute = attributes[col];
    const dropdownValue: string = newValue.data.value;
    setIndicatorRecord((prevRecords: IndicatorRecord[]) => {
        const newRecords = [...prevRecords];
        newRecords[row] = {
          ...newRecords[row],
          org_node: {
            ...newRecords[row].org_node,
            name: dropdownValue,
          },
        };
        return newRecords;

 <DataEditor
        {...cellProps}
        getCellContent={getCellContent}
        columns={[...columns]}
        rows={rows}
        rowMarkers="number"
        freezeColumns={1}
        onCellEdited={onCellEdited}
        onRowAppended={onRowAppended}
        trailingRowOptions={{
          sticky: true,
          tint: true,
          hint: "Add Row",
        }}
      />

The above one works, just wanted to know if there is a better way to handle it.
Also, let's say I have a custom cell called date-picker-cell.
How should I handle it when the user tries to edit the date in the cell, thanks for the information
 const getCellContent = (cell: Item): EditableGridCell => {
    const [col, row] = cell;
    const attribute = attributes[col];
if (attribute.name === "date") {
      return {
        kind: GridCellKind.Custom,
        allowOverlay: true,
        readonly: isRowDisabled,
        copyData: "",
        themeOverride: {
          textDark: "#777777",
          bgIconHeader: "#CCCCCC",
          accentColor: "#777777",
          accentLight: "#CCCCCC20",
          fgIconHeader: "#FFFFFF",
          baseFontStyle: "600 13px",
          bgCell: "#F6F5F5",
        },
        data: {
          kind: "date-picker-cell",
          date: new Date(),
          displayDate: record ? record.start_date : "",
          format: "date",
        },
      };


No coarse decorder is used in tracker

Hi, thank you for such an excellent work.
The paper says due to the coarse feature grid, "This extrapolated geometry provides a meaningful signal for the tracking as the camera moves into previously unobserved areas. Making it more robust to sudden frame loss or fast camera movement."
But, When I read the code, I find in Tracker.py, it just use color stage decorde to compute the loss and update camera pose. No coarse grid and decorder is fined.
I would appreciate it if you could answer this question

I got it. It's really hard work. Sincerely thank you for your work and quick reply！

@Zzh2000 would you mind elaborating how this change could impact the performance of the algorithm.

Sure. During frame loss (or sudden camera movement) the coarse level's prediction is able to provide useful information for tracking, shown in the supplementary and the last video of the project page. For normal use cases, it will not have too much of a difference.


Making predictions using Monte Carlo Simulation

Making predictions using Monte Carlo Simulation
Introduction paragraph (2-3 paragraphs):
With the growing of technology in the field of AI(Artificial Intelligence), the knowledge of different techniques of training a model are essential to programmers.
This is one of the techniques that help in automation of decision making process and predict the probability of different outcomes when the intervention of random variables is present.
This article will guide on how to work with monte Carlo simulations and help programmers to make a choice on whether to use this technique or opt for another option.
Key takeaways
1.What are monte Carlo simulations?
2.Understanding it's working
Basic steps
3. Benefits of using Monte Carlo
4. Drawbacks
5. Why people say no to this method
6. Is it a good choice?
References:
N/A
Templates to use as guides

Good afternoon and thank you for submitting your topic suggestion. @del-ui
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

Great topic 🚀 , make sure it matches the following:

Adds value beyond what is in the official docs and what is covered in other blog sites.
To avoid any potential article closure, it should not overlap with any existing EngEd articles or incoming topic suggestions.

Please reference any relevant EngEd articles in yours and build a unique project - Approved.  @del-ui


Unable to install flutter

I installed flutter and ran flutter doctor. I am getting the following error

Flutter is already installed (v1.22.4). Its shows a green tick next to Flutter, that means its installed.
You might want to install the flutter and dart plugins for Android Studio Code

For more information see the install guide https://flutter.dev/docs/get-started/install


added rbac redirect

Creates an alias for RBAC links: k8s.io/docs/rbac as tried and failed by @mauilion on TGIK.
I believe this shorter redirect is good for presentation slides and intersects with doc's security efforts.

@jimangel Just checking--where are we on this PR?

/hold cancel
Opened issue, amended PR, ready to merge if review is ok. Thanks!

/approve

/lgtm


metrics: allow configuring IP address & port for exposing metrics in iroh-relay

Right now, iroh-relay exposes metrics to <IP_ADDRESS>:9092.
To scrape metrics from iroh-relay hosts via wireguard, we need to expose the port to the wireguard network, other wireguard hosts can't see the metrics otherwise.
Maybe this could be added to the iroh-relay command via a --metrics <IP_ADDRESS>:9093 command line flag?

Glad people are running their own these days :)
The relay already has a configuration mechanic, see this.
The intent was to keep the CLI simple to reduce the surface area and provide a way for a quick way to run it.
In general if you're running it as a service you would probably want to supply a full config file with everything fleshed out. That would also include the metrics_bind_addr.


fix(ecau): copy MusicBrainz complex artwork types

"Matrix/Runout" and "Raw/Unedited" could not be copied when a MB release's images were copied because the enum used the "Matrix" and "Raw" keys only. Instead, we'll use the full artwork type name as keys. This also requires changes in VGMdb's caption to artwork type mappings and related tests. Also add test case with a real release.
Fixes #708

/deploy-preview


Ambiguous Tus-Concatenation specifications

I'm trying to implement a library that follows the spec.
But I am confused by the following 2 seemingly contradictory statements under the tus extension Concatenation:

The length of the final upload MUST be the sum of the length of all partial uploads.

The Server MAY delete partial uploads after concatenation. They MAY however be used multiple times to form a final resource.

As I understand the first statement, I can for example upload 2 partial files each 50 bytes in length. Then the final upload must be 100 bytes in length.
As I understand the second statement, the server can reuse uploads multiple times, for example upload A is 50 bytes and upload B is 25 bytes then the server can create a final resource using: 1*A + 2*B = 100 bytes. But this then contradicts the first statement because the sum of A + B = 75 bytes.
I'm sure I misunderstood something, could someone clarify?

Got the answer from ChatGPT 3.5:

I understand the confusion you're facing, but these two statements are not necessarily contradictory when you consider the specific context and use cases of the Tus protocol.

"The length of the final upload MUST be the sum of the length of all partial uploads."
This statement is a general guideline that suggests the total length of the final resource should equal the sum of the lengths of all the partial uploads. In your example, if you have two partial uploads, A and B, with lengths 50 bytes and 25 bytes respectively, the total length of the final resource should indeed be 75 bytes based on this guideline.
"The Server MAY delete partial uploads after concatenation. They MAY however be used multiple times to form a final resource."
This statement provides flexibility to servers. It means that servers are allowed to delete the partial uploads after they have been concatenated into the final resource. However, it also acknowledges that servers might choose to keep these partial uploads for various reasons.

In your example, the server could indeed reuse uploads A and B to create the final resource by concatenating them. Still, it's not required to keep them once the final resource has been assembled. The key point is that while they are retained, the total length of the final resource should still be based on the sum of the lengths of the partial uploads.

So, these statements do not necessarily contradict each other. The first statement sets the expectation for the length of the final resource, and the second statement allows servers some flexibility in managing the partial uploads but does not change the expectation set by the first statement regarding the final resource's length.

Q: So the 2nd statement is about after concatenation, then another upload may reuse those partial uploads?

Yes, that's correct. The second statement is primarily about what the server can do with the partial uploads after they have been concatenated to form the final resource.

After concatenation, the server may choose to retain or delete the individual partial uploads. If it retains them, they may be reused in subsequent uploads to form new final resources. In other words, those partial uploads can potentially be used multiple times to create different final resources. This provides a level of flexibility in how servers handle the storage and reuse of partial uploads, but it doesn't change the fact that the length of the final resource should still be based on the sum of the lengths of all partial uploads that contributed to it.

So, you have the correct understanding: the second statement is about the server's post-concatenation actions and the possibility of reusing partial uploads in future uploads.

For some reason I thought the spec was talking about "the current" final upload. So it is a potential future other final upload.

Ok now I see.
My initial instinct was probably right, I felt that there were 2 use cases.
My mistaken assumption was that summing up the parts would require unique elements, but as in the 2nd example the summation could be rewritten as: A + B + B
All in all I don't have a suggestion for an alternative to sum but I do have a better idea how to interpret the spec.

Thank you, I added some text to hopefully prevent such confusion in the future.


error: cannot access Client BugsnagReactNative.start(this);

Description
After upgrading to Grade 4.4, i get the following error:
"error: cannot access Client BugsnagReactNative.start(this);"
Issue
I cannot build the project anymore.
Environment
Windows os
Gradle Version: 4.4
Android Plugin Version: 3.1.2
Android studio version: 3.1.2
Library versions:
react-native-bugsnag: 2.9.3

[ ] (Android only) error: cannot access Client BugsnagReactNative.start(this);

Any ideas why this could happen?

Thanks for the report @tomershohet - I was unable able to reproduce this behaviour when creating a fresh example project on macOS, via the following commands:
react-native init MyProj
npm install
yarn add bugsnag-react-native --save
react-native link bugsnag-react-native
./gradlew wrapper --gradle-version 4.4
./gradlew clean
Update AGP to 3.0.0
react-native run-android

If you revert to the previous version of Gradle, are you able to build your project? Would it be possible to see the relevant parts of your gradle build scripts, and any changes which were made as part of the upgrade to 4.4?

@tomershohet I'm closing this due to inactivity - if you're still experiencing the issue, please let us know, and we'll be happy to reopen it.

Hi, i'm having the same problem after i upgrade to Gradle 4.10.1, @tomershohet were you able to fix it?


Add CAM Ventilator...

Is it possible to add the CAM Ventilator to the google spreadsheet. It goes along with the VISP flow sensor. You can create it via metal or acrylic. Mill, 3D print or laser. It can be powered via NEMA, brushless or windshield wiper motor.
https://hackaday.io/project/170507-cosv-cam-open-source-ventilator
https://hermtac.com

Add Kevin as contact<EMAIL_ADDRESS>


[WIP] Fix issue with source type being derived from base class, being nil

The child classes of retire_request all set the source type so the base class doesn't need this code. This is part 1/3 of issue that's described here.

@tinaafitz

@miq-bot add_label bug

@miq-bot remove_label wip

@tinaafitz @gmcculloug Is this PR enough or do need more to fix vm retirement issue?


chore: Remove few obsolete env vars from deployment scripts

Description
WIP
Replaces https://github.com/stackrox/stackrox/pull/7476
Triggered by

https://github.com/stackrox/stackrox/pull/5795#discussion_r1294379793
https://github.com/stackrox/stackrox/pull/5795#discussion_r1294383119

Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
TODO(replace-me)
Use this space to explain how you validated that your change functions exactly how you expect it.
Feel free to attach JSON snippets, curl commands, screenshots, etc. Apply a simple benchmark: would the information you
provided convince any reviewer or any external reader that you did enough to validate your change.
It is acceptable to assume trust and keep this section light, e.g. as a bullet-point list.
It is acceptable to skip testing in cases when CI is sufficient, or it's a markdown or code comment change only.
It is also acceptable to skip testing for changes that are too taxing to test before merging. In such case you are
responsible for the change after it gets merged which includes reverting, fixing, etc. Make sure you validate the change
ASAP after it gets merged or explain in PR when the validation will be performed.
Explain here why you skipped testing in case you did so.
Have you created automated tests for your change? Explain here which validation activities you did manually and why so.
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

/test gke-race-condition-qa-e2e-tests
/test gke-version-compatibility-tests
/test gke-upgrade-tests

/test gke-upgrade-tests

/test gke-race-condition-qa-e2e-tests

Sensor did not start because of
  Warning  FailedScheduling   41s (x7 over 12m)     default-scheduler   0/3 nodes are available: 3 Insufficient cpu. preemption: 0/3 nodes are available: 3 No preemption victims found for incoming pod..

Trying re-run
/test gke-race-condition-qa-e2e-tests

I had a look at the failing gke-race-condition-qa-e2e-tests and it looks like they failed due to some missing quota. Should we rerun these to make sure they pass?
`
error getting cluster operators: the server could not find the requested resource (get clusteroperators.config.openshift.io)
ClusterOperators:
clusteroperators are missing
[must-gather      ] OUT namespace/openshift-must-gather-xvkkk created
[must-gather      ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-s6dkw created
[must-gather      ] OUT namespace/openshift-must-gather-xvkkk deleted
[must-gather      ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-s6dkw deleted
Error running must-gather collection:
insufficient quota to match these scopes: [{PriorityClass In [system-node-critical system-cluster-critical]}]
Falling back to oc adm inspect clusteroperators.v1.config.openshift.io to collect basic cluster information.
error running backup collection: the server doesn't have a resource type "clusteroperators"
Reprinting Cluster State:
When opening a support case, bugzilla, or issue please include the following summary data along with any other requested information:
error getting cluster version: the server could not find the requested resource (get clusterversions.config.openshift.io version)
ClusterID:
ClusterVersion: Installing "" for :
error getting cluster operators: the server could not find the requested resource (get clusteroperators.config.openshift.io)
ClusterOperators:
clusteroperators are missing
Error from server: insufficient quota to match these scopes: [{PriorityClass In [system-node-critical system-cluster-critical]}]`

Following Jan's good suggestion about diffing what's actually deployed, I did tests on the cluster

Details
Open source flavor
deploy/openshift/deploy.sh
On this branch:
$ kubectl -n stackrox get deploy,ds -o wide
NAME                                                     READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS           IMAGES                                                         SELECTOR
deployment.apps/admission-control                        3/3     3            3           2m19s   admission-control    quay.io/stackrox-io/main:4.2.x-20-gba86a23ed8                  app=admission-control
deployment.apps/central                                  1/1     1            1           3m48s   central              quay.io/stackrox-io/main:4.2.x-20-gba86a23ed8                  app=central
deployment.apps/central-db                               1/1     1            1           3m49s   central-db           quay.io/stackrox-io/central-db:4.2.x-20-gba86a23ed8            app=central-db
deployment.apps/monitoring                               1/1     1            1           3m59s   grafana,prometheus   grafana/grafana:7.5.15,prom/prometheus:v2.34.0                 app=monitoring
deployment.apps/scanner                                  3/3     3            3           3m40s   scanner              quay.io/stackrox-io/scanner:2.31.0                             app=scanner
deployment.apps/scanner-db                               1/1     1            1           3m40s   db                   quay.io/stackrox-io/scanner-db:2.31.0                          app=scanner-db
deployment.apps/sensor                                   1/1     1            1           2m19s   sensor               quay.io/stackrox-io/main:4.2.x-20-gba86a23ed8                  app=sensor
deployment.apps/stackrox-monitoring-kube-state-metrics   0/1     0            0           3m59s   kube-state-metrics   registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.6.0   app.kubernetes.io/instance=stackrox-monitoring,app.kubernetes.io/name=kube-state-metrics

NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE     CONTAINERS                            IMAGES                                                                                SELECTOR
daemonset.apps/collector   6         6         6       6            6           <none>          2m19s   collector,compliance,node-inventory   quay.io/stackrox-io/collector:3.16.0-slim,quay.io/stackrox-io/main:4.2.x-20-gba86a23ed8,quay.io/stackrox-io/scanner-slim:2.31.0   service=collector

On master:
$ kubectl -n stackrox get deploy,ds -o wide
NAME                                                     READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS           IMAGES                                                         SELECTOR
deployment.apps/admission-control                        3/3     3            3           28s    admission-control    quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=admission-control
deployment.apps/central                                  1/1     1            1           105s   central              quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=central
deployment.apps/central-db                               1/1     1            1           106s   central-db           quay.io/stackrox-io/central-db:4.2.x-27-g5694ada87f            app=central-db
deployment.apps/monitoring                               1/1     1            1           113s   grafana,prometheus   grafana/grafana:7.5.15,prom/prometheus:v2.34.0                 app=monitoring
deployment.apps/scanner                                  1/3     3            0           100s   scanner              quay.io/stackrox-io/scanner:2.31.x-1-ge4892d2dce               app=scanner
deployment.apps/scanner-db                               1/1     1            0           99s    db                   quay.io/stackrox-io/scanner-db:2.31.x-1-ge4892d2dce            app=scanner-db
deployment.apps/sensor                                   1/1     1            0           28s    sensor               quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=sensor
deployment.apps/stackrox-monitoring-kube-state-metrics   0/1     0            0           113s   kube-state-metrics   registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.6.0   app.kubernetes.io/instance=stackrox-monitoring,app.kubernetes.io/name=kube-state-metrics

NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS                            IMAGES                                                                                SELECTOR
daemonset.apps/collector   6         6         3       3            3           <none>          28s   collector,compliance,node-inventory   quay.io/stackrox-io/collector:3.16.0-slim,quay.io/stackrox-io/main:4.2.x-27-g5694ada87f,quay.io/stackrox-io/scanner-slim:2.31.x-1-ge4892d2dce   service=collector

Rhacs-eng (development_build) flavor
ROX_PRODUCT_BRANDING=RHACS_BRANDING deploy/openshift/deploy.sh
On this branch:
$ kubectl -n stackrox get deploy,ds -o wide
NAME                                                     READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS           IMAGES                                                         SELECTOR
deployment.apps/admission-control                        3/3     3            3           41s    admission-control    quay.io/rhacs-eng/main:4.2.x-20-gba86a23ed8                    app=admission-control
deployment.apps/central                                  1/1     1            1           118s   central              quay.io/rhacs-eng/main:4.2.x-20-gba86a23ed8                    app=central
deployment.apps/central-db                               1/1     1            1           119s   central-db           quay.io/rhacs-eng/central-db:4.2.x-20-gba86a23ed8              app=central-db
deployment.apps/monitoring                               1/1     1            1           2m7s   grafana,prometheus   grafana/grafana:7.5.15,prom/prometheus:v2.34.0                 app=monitoring
deployment.apps/scanner                                  3/3     3            3           113s   scanner              quay.io/rhacs-eng/scanner:2.31.0                               app=scanner
deployment.apps/scanner-db                               1/1     1            1           113s   db                   quay.io/rhacs-eng/scanner-db:2.31.0                            app=scanner-db
deployment.apps/sensor                                   1/1     1            1           41s    sensor               quay.io/rhacs-eng/main:4.2.x-20-gba86a23ed8                    app=sensor
deployment.apps/stackrox-monitoring-kube-state-metrics   0/1     0            0           2m7s   kube-state-metrics   registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.6.0   app.kubernetes.io/instance=stackrox-monitoring,app.kubernetes.io/name=kube-state-metrics

NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS                            IMAGES                                                                                SELECTOR
daemonset.apps/collector   6         6         4       5            4           <none>          41s   collector,compliance,node-inventory   quay.io/rhacs-eng/collector:3.16.0-slim,quay.io/rhacs-eng/main:4.2.x-20-gba86a23ed8,quay.io/rhacs-eng/scanner-slim:2.31.0   service=collector

On master:
$ kubectl -n stackrox get deploy,ds -o wide
NAME                                                     READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS           IMAGES                                                         SELECTOR
deployment.apps/admission-control                        3/3     3            3           16s   admission-control    quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=admission-control
deployment.apps/central                                  1/1     1            1           83s   central              quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=central
deployment.apps/central-db                               1/1     1            1           84s   central-db           quay.io/stackrox-io/central-db:4.2.x-27-g5694ada87f            app=central-db
deployment.apps/monitoring                               1/1     1            1           91s   grafana,prometheus   grafana/grafana:7.5.15,prom/prometheus:v2.34.0                 app=monitoring
deployment.apps/scanner                                  0/3     3            0           78s   scanner              quay.io/stackrox-io/scanner:2.31.x-1-ge4892d2dce               app=scanner
deployment.apps/scanner-db                               1/1     1            0           78s   db                   quay.io/stackrox-io/scanner-db:2.31.x-1-ge4892d2dce            app=scanner-db
deployment.apps/sensor                                   0/1     1            0           16s   sensor               quay.io/stackrox-io/main:4.2.x-27-g5694ada87f                  app=sensor
deployment.apps/stackrox-monitoring-kube-state-metrics   0/1     0            0           92s   kube-state-metrics   registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.6.0   app.kubernetes.io/instance=stackrox-monitoring,app.kubernetes.io/name=kube-state-metrics

NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS                            IMAGES                                                                                SELECTOR
daemonset.apps/collector   6         6         6       2            6           <none>          16s   collector,compliance,node-inventory   quay.io/stackrox-io/collector:3.16.0-slim,quay.io/stackrox-io/main:4.2.x-27-g5694ada87f,quay.io/stackrox-io/scanner-slim:2.31.x-1-ge4892d2dce   service=collector

Couple things stood out:

Previously there was no quay.io/rhacs-eng/quay.io/stackrox-io mixup in open source flavor. This is good.
There's still no mixup, this is also good :-)
Previously, the deployment script did not recognize image flavor (or branding which informs the flavor). Now it does.

As I see no issues, I'd go ahead with this change (after removing set +-x-s).

/test gke-race-condition-qa-e2e-tests
/test gke-version-compatibility-tests
/test gke-upgrade-tests

/test gke-race-condition-qa-e2e-tests


feat: Added dynamic contributors section

Closes: #982

@panwar8279 Can It be a level 2 as it is a feature that I have added using Vaunt!!


Cucumber if: If requests with a contradictory ofType constraint in the else statements do not fail as expected

Bug Report
An if request was made that included an else statement with a contradictory ofType constraint (sets to numeric when the field is inSet of only strings). The contradiction did not throw an error as expected.

Scenario: Running an if request that contains a contradictory ofType constraint within its else statement should fail with an error message
Given the following fields exist:
| foo |
| bar |
And foo is in set:
| 1   |
| 2   |
| 3   |
| 4   |
And foo is anything but null
And bar is in set:
| "a" |
| "b" |
| "c" |
| "d" |
And bar is anything but null
And there is a constraint:
"""
{
"if": { "field": "foo", "is": "equalTo", "value": 1 },
"then": { "field": "bar", "is": "equalTo", "value": "a" },
"else": { "field": "bar", "is": "ofType", "value": "numeric" }
}
"""
Then I am presented with an error message
And no data is created

Steps to Reproduce:

Run the above test that includes an if that contains a contradictory then statement (or run the if.feature tests).
See that the test (of that Scenario: Running an if request that contains a contradictory ofType constraint within its then statement should fail with an error message) fails.
See that the error is that no error is generated.

Expected Result:
Contradictory if statements (setting the field to a type that doesn't match the field's set) should cause an error message and no data to be created.
Actual Result:
No error is produced:

java.lang.AssertionError:
Expected: is
but: was
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.Assert.assertThat(Assert.java:923)
at com.scottlogic.deg.generator.cucumber.steps.GeneralTestStep.dataGeneratorShouldError(GeneralTestStep.java:88)
at ✽.I am presented with an error message(C:/DataGenerator/data-engineering-generator/generator/src/test/java/com/scottlogic/deg/generator/cucumber/If.feature:746)

Environment:
ifTestsUpdated branch running in full generation strategy on IntelliJ.
Additional Context:

This is effectively a duplicate of #279, it requires analysis of contradictions within constraints - to a much higher degree than currently implemented.
I suggest either:

closing this ticket down and marking its example in #279
closing both this and #279 and creating a new ticket with the appropriate priority that covers more in-depth validation.


MongoDb - cluster running on one machine

i run mongo-cluster on one machine, but the cluster seems not ready.
here is an mongo instance
rs0:PRIMARY> rs.conf()
{
	"_id" : "rs0",
	"version" : 1,
	"protocolVersion" : NumberLong(1),
	"members" : [
		{
			"_id" : 0,
			"host" : "MongoDB-mongo-cluster-1:27017",
			"arbiterOnly" : false,
			"buildIndexes" : true,
			"hidden" : false,
			"priority" : 1,
			"tags" : {

			},
			"slaveDelay" : NumberLong(0),
			"votes" : 1
		}
	],
	"settings" : {
		"chainingAllowed" : true,
		"heartbeatIntervalMillis" : 2000,
		"heartbeatTimeoutSecs" : 10,
		"electionTimeoutMillis" : 10000,
		"getLastErrorModes" : {

		},
		"getLastErrorDefaults" : {
			"w" : 1,
			"wtimeout" : 0
		},
		"replicaSetId" : ObjectId("589ae4c47a9700c0bd526102")
	}
}

and another
> rs.conf()
2017-02-08T10:56:30.593+0000 E QUERY    [thread1] Error: Could not retrieve replica set config: {
	"info" : "run rs.initiate(...) if not yet done for the set",
	"ok" : 0,
	"errmsg" : "no replset config has been received",
	"code" : 94
} :
rs.conf@src/mongo/shell/utils.js:1197:11

@galal-hussein

i also have this problem.
i think https://github.com/rancher/catalog-dockerfiles/pull/92 solves this, but it's been open for over a month.
cc: @cloudnautique


fix: bugs from Carbon migration from GHE

Closes #114 (Tooltip icon colors)
Closes #115 (Menu/Dropdown icon support and max height props)
Closes #116 (FormItem left render toggle/checkbox)
Closes #117 (Toggle Spacing issues)
Closes #131 (Divider for Menu/Dropdown items)
Closes #132 (ActionSheet divider and full bleed)
Closes #121 (Pagination styling)
Closes #120 (Warning state for Text based input)
Closes #122 (Do not show state change for Navigation if no events)
Closes #126 (Header FormItem style fixes)
See each ticket for final implementation and comments

@hsu022210
@ycliu0953
@theurbanspectacle
Could you review?


Fix cabal.project.Werror

It should use the -Werror ghc flag.

fixed by : https://github.com/composewell/streamly-statistics/pull/52


page: SectionPage with References for canonical link

What
Currently only the Article has a References with the canonical link. For SEO reasons we also need this on all section pages.
Proposal
message SectionPage {
   repeated Stage stages = 1;
+  References references = 2;
}

message ArticlePage {
   stroeer.core.v1.Article article = 1;
   repeated RelatedArticle related_articles = 2;
+  References references = 3; // because of same logic for `Pages` in FE
}

The only downside of this is that the Article and ArticlePage has the same References (duplication).

Because Slack is async, a summary of the previous discussion:
Downsides of this proposal:

references would be duplicated: ArticlePage.references and also in ArticlePage.article.references

the first one exists only for the symmetry toward SectionPage
the later one exists to allow proper linking of Teasers (which are also of type Article)

Other approach:
Similar to the current hierarchy: ArticlePage.article.references we would add a SectionPage.section.references by introducing a new PageItem of type Section (similar to Article). This would hold the relevant information such as references and section_data required for canonical and breadcrumb).
message SectionPage {
+   Section section = 1;
-   repeated Stage stages = 1;
-   repeated Stage stages = 2;
}

message Article {
...
// requires a new name.
-   Section section = 5;
+   SectionTree sectionTree = 5;
}

+ message Section {
+    SectionTree sectionTree = 1;
+    References references = 2;
+ }


Windows: does not serve css

I followed the develop instructions from the README.

git clone https://github.com/rundis/elm-bootstrap.git
cd elm-bootstrap
git clone https://github.com/rundis/elm-bootstrap.info.git
cd elm-bootstrap.info
npm install
npm run dev

The resulting page at http://localhost:5000/

Running Windows 10
node version
v7.8.0
npm version
4.2.0
Elm Version
0.18

Don't have access to a windows machine at the moment. Could be something with the webpack config perhaps. Feel free to add a PR if you feel inclined too !

Okay! Might be awhile.


Cult Ambush / Rerolling specific values + Close Assault

Hi was wondering how difficult it would be to add an option for re-rolls of any results of a specific value (basically ceaseless+) - quite a few teams have this ability:

Wyrmblade: Cult Ambush
Breachers: Attack Order
Warp Coven: Slow and Purposeful

and probably a few more that I can't think of.
With Breachers being strong in the meta an option for Close Assault could be quite nice too (two successful hits upgrades a failed hit into a success) as it differs slightly from starfire/dakkadakkadakka
Such a great tool, have gotten so much use out of it and thank you for sharing!

Implemented and I am belatedly updating this issue, whoops.


[🐞]TypeError: fetch failed thrown by @builder.io/qwik/optimizer.cjs

Which component is affected?
Qwik Runtime
Describe the bug
After updating to v.1.2.13, I keep getting the following errors in local dev:
TypeError: fetch failed
    at Object.fetch (node:internal/deps/undici/undici:11118:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async getInfoForSrc (/Users/yasser/projects/starrymaps-qwik/node_modules/@builder.io/qwik/optimizer.cjs:2483:19)
    at async /Users/yasser/projects/starrymaps-qwik/node_modules/@builder.io/qwik/optimizer.cjs:2515:22 {
  cause: Error: connect ECONNREFUSED ::1:5173
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
    errno: -61,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '::1',
    port: 5173
  }
}

The images Im loading are displayed without issues on the page. So they do exist, yet the fetch fails.
I recently installed node-fetch and uninstalled it and do not use it anymore. Could this be causing some sort of conflicts?
The root of this seems to be the following bit
 async function _getInfo(originalSrc) {
      if (originalSrc.startsWith('blob:')) {
        return undefined;
      }
      const url = new URL('/__image_info', location.href);
      url.searchParams.set('url', originalSrc);
      // =====>> The line below is where the exception is raised
      const res = await fetch(url);
      if (res.ok) {
        return await res.json();
      } else {
        return undefined;
      }
    }

It seems like the above belongs to imageTools which shows tips on improving images in dev.

Reproduction
I can't reproduce this since I only see it in local dev for now
Steps to reproduce

in routes/index.tsx

import exampleImage from '~/media/images/an-example.webp?jsx';

export default component$(() => {
return (<exampleImage alt="An example" />);
});

The above is enough to produce the errors I see locally
System Info
System:
    OS: macOS 13.2
    CPU: (12) x64 Apple M2 Pro
    Memory: 33.75 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.11.0 - ~/.nvm/versions/node/v18.11.0/bin/node
    npm: 8.19.2 - ~/.nvm/versions/node/v18.11.0/bin/npm
    pnpm: 7.9.0 - ~/Library/pnpm/pnpm
  Browsers:
    Chrome: 119.0.6045.159
    Safari: 16.3
  npmPackages:
    @builder.io/partytown: ^0.8.0 => 0.8.1
    @builder.io/qwik: ^1.2.13 => 1.2.18
    @builder.io/qwik-city: ^1.2.13 => 1.2.18
    undici: ^5.22.1 => 5.27.2
    vite: ^4.4.0 => 4.5.0

Additional Information
No response

Closing for now, as I  believe this has been fixed, and need a reproduction.

I have met this issue but solved after updating qwik and clearing browser cache :)


need to change the words "watcher-plugin" to "watcher_plugin" in readme

Thanks. closing, please check if they look fine.


@dataProvider tests parallelization in functional mode

@dataProvider support
--filter support (functional mode only)
--max-batch-size support (functional mode only)
print progress as vanilla phpunit
print progress without blank lines on windows default console
dump process command line for debug purposes if process do not return any results
one failed vanilla test: PHPUnitTest::testStopOnFailurePreventsStartingFurtherTestsAfterFailure
no auto tests for new features for now

Just to note, one failed test marked as skipped because it seems like problem on test side (fix test) and not in code. On failed test is related to stop-on-failure feature. Previously it stops after method execution, now it stops based on batch execution.

Phew, thanks a lot. It's going to take some time to review this because this pr includes a couple of changes at once.
You added a lot of code but I don't see any new tests, which is probably a bad sign. Would be nice if you could add some ... or a lot... . Maybe some tests could help to debug it because at least the output contains a bug:
I took a testsuite that looked like this:
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/paratest -f

Running phpunit in 5 processes with /home/julian/PhpstormProjects/Metrics/vendor/bin/phpunit. Functional mode is on

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

.........................................

Time: 630 ms, Memory: 6.25Mb

OK (41 tests, 134 assertions)

Then I added a dataProvider with 200 data sets to one of the methods which looks like this in phpunit:
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/phpunit
PHPUnit 4.7-g7c1de6a by Sebastian Bergmann and contributors.

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

Deprecated configuration setting "strict" used

...............................................................  63 / 240 ( 26%)
............................................................... 126 / 240 ( 52%)
............................................................... 189 / 240 ( 78%)
...................................................

Time: 465 ms, Memory: 7.25Mb

OK (240 tests, 333 assertions)

And the current brianium/paratest master looks like this:
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/paratest -f

Running phpunit in 5 processes with /home/julian/PhpstormProjects/Metrics/vendor/bin/phpunit. Functional mode is on

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

................................................................. 65 ( 27%)
................................................................. 130 ( 54%)
................................................................. 195 ( 81%)
.............................................

Time: 1.39 seconds, Memory: 7.00Mb

OK (240 tests, 333 assertions)

Not exactly the same but consistent. (it looks the same if you omit the -f).
Then I updated to sormy/paratest and it looked like this:
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/paratest -f

Running phpunit in 5 processes with /home/julian/PhpstormProjects/Metrics/vendor/bin/phpunit. Functional mode is on

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

...............................................................  63 / 240 ( 26%)
............................................................... 126 / 240 ( 52%)
............................................................... 189 / 393 ( 48%)
............................................................... 252 / 393 ( 64%)
............................................................... 315 / 393 ( 80%)
............................................................... 378 / 393 ( 96%)
...............

Time: 964 ms, Memory: 6.75Mb

OK (393 tests, 486 assertions)

There are 240 tests but it 393 tests are displayed. The total test count increases, too. When I omit -f, then it looks exactly like phpunit.
I'm not yet sure what the max-batch-size does, but it has an influence on the output:
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/paratest -f --max-batch-size=1

Running phpunit in 5 processes with /home/julian/PhpstormProjects/Metrics/vendor/bin/phpunit. Functional mode is on

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

...............................................................  63 / 350 ( 18%)
............................................................... 126 / 360 ( 35%)
............................................................... 189 / 420 ( 45%)
............................................................... 252 / 480 ( 52%)
............................................................... 315 / 530 ( 59%)
............................................................... 378 / 530 ( 71%)
............................................................... 441 / 530 ( 83%)
............................................................... 504 / 530 ( 95%)
...........................

Time: 8.91 seconds, Memory: 12.00Mb

OK (531 tests, 625 assertions)
julian@x1:~/PhpstormProjects/Metrics$ ./vendor/bin/paratest -f --max-batch-size=5000

Running phpunit in 5 processes with /home/julian/PhpstormProjects/Metrics/vendor/bin/phpunit. Functional mode is on

Configuration read from /home/julian/PhpstormProjects/Metrics/phpunit.xml

...............................................................  63 / 240 ( 26%)
............................................................... 126 / 240 ( 52%)
............................................................... 189 / 240 ( 78%)
...................................................

Time: 765 ms, Memory: 6.50Mb

OK (240 tests, 333 assertions)

Would be nice if you could extend the readme somehow. Does it only apply to dataProviders?

Thanks, it's just initial attempt to get feature work. We have suite which test DICOM stack with over 4000 tests which works for me exactly as phpunit and speedup is around 2x (18 min vs 38 min) on my macbook 2013.
If you can write fail test for your example it will be perfect!
Big max-batch-size can broke phpunit, because command line became too huge or regular expression became too hard to be parsed without changing php's pcre settings.

Julian, it seems like new code have problems with dependent tests. Could you try run on end something without dependent tests?

If you mean without an @depends annotation: I never use it. The original tests are from https://github.com/julianseeger/Metrics and there are no tests that depend on any other test.

Ok, I found problem and fixed it. Also I added tests. Need you feedback before refactor code. max-batch-size affects on amount of atomic tests which will run in one isolated process - 1 atomic test is 1 test method without dataProvider or 1 dataset time for 1 method. Even if there are no datasets it will group different test() methods in batches - it also give boost on big amount of small tests because paratest will spent less time on spawning phpunit. I will add that note If you like that explanation.

Also, I don't know what scrutinizer means: 1 failure condition was met by this inspection: issues.new.exists

In my test scenario:
Artems-MBP:emsow sormy$ phpunit --filter Dicom
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.

Configuration read from /Users/sormy/htdocs/emsow/phpunit.xml

.............................................................   61 / 5013 (  1%)
.............................................................  122 / 5013 (  2%)
.............................I...............................  183 / 5013 (  3%)
<cut>
............................................................. 4941 / 5013 ( 98%)
............................................................. 5002 / 5013 ( 99%)
..........I

Time: 41.03 minutes, Memory: 241.25Mb

OK, but incomplete, skipped, or risky tests!
Tests: 5013, Assertions: 83719, Incomplete: 2.

Artems-MBP:emsow sormy$ ../paratest/bin/paratest --filter Dicom

Running phpunit in 5 processes with /Users/sormy/htdocs/paratest/vendor/bin/phpunit. Functional mode is on

Configuration read from /Users/sormy/htdocs/emsow/phpunit.xml

.............................................................   61 / 5013 (  1%)
.............................................................  122 / 5013 (  2%)
<cut>
............................................................. 1098 / 5013 ( 21%)
............................................................. 1159 / 5013 ( 23%)
............................................................. 1220 / 5012 ( 24%)
............................................................. 1281 / 5012 ( 25%)
<cut>
............................................................. 4880 / 5012 ( 97%)
............................................................. 4941 / 5011 ( 98%)
............................................................. 5002 / 5011 ( 99%)
.........

Time: 17.43 minutes, Memory: 20.25Mb

OK (5011 tests, 83719 assertions)

Difference related to 2 incomplete tests and speedup is 2.35x on mobile core i7 with 2 cores

About scrutinizer: take a look here https://scrutinizer-ci.com/g/brianium/paratest/inspections/91f9f970-f009-404d-a5c6-8114eb97fb4a and you see that the code quality of a couple of classes has decreased (but that didn't cause the failure) and that you introduced 82 new issues. An issue is something like a PSR violation. And PSR2 is the coding standard we stick to (https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md PSR2 implicitly includes PSR1, which includes PSR0).
Unfortunately, these new issues doesn't actually seem to be introduced by you. Scrutinizer shows
Analysis Tools Updated
Some analysis tools were updated to newer versions. This might result in changes which are unrelated to your code changes!
PHP Analyzer: 1.6.0 -> 1.6.1 (changelog)

and I can't find any issue that is ~11h old. The PHPAnalyzer Changelog has nothing important in it but I guess that scrutinizer marks every issue as new because of the new analyzer version. So I will merge this PR even if scrutinizer screams about these new issues. The classes that got worse can be beautified with a small refactoring which you already mentioned.
I'm sorry to say that you have to wait until tomorrow for feedback from me on your new code because I am handicapped today. But is looks good. Meanwhile you could take a look at the testStopOnFailurePreventsStartingFurtherTestsAfterFailure. Maybe it is enough to add a max-batch-size of 1 or make 1 the default for maximum BC. Whether or not the test still makes sense, it represents a feature that we don't want to loose. If one test has a failure and the --stop-on-failure flag is used, no new tests should be scheduled. With -p 1 and a max-batch-size of 1 that means not a single test should run after the failing one. And every feature we don't want to loose needs a test ;)

No problem,will wait for full feedback.

note on scrutinizer:
On #157 , scrutinizer was disabled temporarily, so further commits should pass on scrutinizer and give more senseful feedback.
feedback:
Overall, it looks fine with the tests. Maybe you should consider writing more test on unit level, but this is easier with tdd then when writing them afterwards and especially hard on this project. But it is generally worth it because tests on unit level are more stable.
stuff that should be fixed:

re-enable the skipped tests in the PHPUnitTest.php
remove the total count from the ResultPrinter.php (not possible without reported skipped/incompletes)
and of course refactoring is needed. Especially on SuiteLoader::getMethodBatches

stuff to be discussed:

probably the default for max-batch-size should be 1. This is the closest to the current behavior.
It is not even guaranteed that a batch-size>1 is faster because the slow tests are not distributed equally between the batches, so a big batch full of slow tests may be slower than a couple of small, slow batches.

Again, thanks for your effort! This a much appreciated and often requested feature. But this process is neccessary to keep some quality standard for the project. And if you think what I'm saying is bs, I'm always to constructive feedback ;)

probably the default for max-batch-size should be 1.
default max-batch-size set to 0 and paratest works in that case the same as before my modifications
re-enable the skipped tests in the PHPUnitTest.php
done
remove the total count from the ResultPrinter.php (not possible without reported skipped/incompletes)
keep, implemented skipped/incomplete reporting as skipped for situations where group/group-exclude options are not passed to paratest
and of course refactoring is needed. Especially on SuiteLoader::getMethodBatches
did some work to make code better
...and the docblocks at the TestMethod.php
done
Overall, it looks fine with the tests. Maybe you should consider writing more test on unit level
only functional tests at least for now

waiting for your feedback

new code base produce the following result in my test scenario, you can compare with my previous comment:
Artems-MBP:project sormy$ ../paratest/bin/paratest --filter Dicom --max-batch-size 100

Running phpunit in 5 processes with /Users/sormy/htdocs/paratest/vendor/bin/phpunit. Functional mode is ON.

Configuration read from /Users/sormy/htdocs/project/phpunit.xml

.............................................................   61 / 5013 (  1%)
.............................................................  122 / 5013 (  2%)
<skip>
............................................................. 2074 / 5013 ( 41%)
............................................................. 2135 / 5013 ( 42%)
......................S...................................... 2196 / 5013 ( 43%)
............................................................. 2257 / 5013 ( 45%)
<skip>
............................................................. 4697 / 5013 ( 93%)
............................................................. 4758 / 5013 ( 94%)
....................................S........................ 4819 / 5013 ( 96%)
............................................................. 4880 / 5013 ( 97%)
............................................................. 4941 / 5013 ( 98%)
............................................................. 5002 / 5013 ( 99%)
...........

Time: 18.54 minutes, Memory: 19.75Mb

OK, but incomplete, skipped, or risky tests!
Tests: 5013, Assertions: 83719, Incomplete: 2.

To wrap this up here, I understand if you don't have time to close the last gaps. If you leave it at this state, I will of course merge it anyways but would fix the last "comments" myself before releasing it.
Thanks again for this massive +777-141

I don't know project code rules, so I'm coding based on my experience.
If you think that it's better to remove refactoring todo notes, it's ok - I will remove them. It's not a big question.
Just would like to hear if I can do something else to make my part of work better without going deep into sources and rewriting some strange parts.
My current list:

remove todos
replace @ to isset
unit tests?
more functional tests? is there any other functional tests i can code to test?
Let's merge that when you will have no any unresolved questions regarding my code.
Also I understand that code review requires time too, so It's your time too.

I'm just trying to keep the contribution experience as enjoyable as possible while keeping an eye on the quality, which is - to some extend - subjective. About the todos: most pull-requests at paratest are about features people want/need or changes they have to make in order to do subsequent pull-requests (which then are related to their features). Thats probably normal for an open source project but as a result, not many people will address any todo they stumble upon. As a result, if it is possible to create a consistent solution with reasonable effort, I would always prefer such a solution over a todo. If it is not possible with reasonable effort, then let's leave the todo where it is. It always leaves the question "who is going to address it?". (With consistent I mean: because group and group-exclude are commented out, they need the @ suppression, which others don't need).
It's not that TODOs are always a bad thing. The todo for the maximum command size for example is helpful because it gives an hint on how to implement this (echo | xargs --show-limits etc). But if you take for example TODOs in this style:
//TODO some tests didn't work without/without the following line
this should be true for every line in well tested code. Take well tested code, remove any sign and either some tests are failing or the code is not tested very well. So it seems pretty redundant to me. Maybe it would make sense to collapse all TODOs concerning group and group-exclude to a single todo and add it to the docblock of the defaults() method (or something like that).
So for your list:

[ ] remove/collapse todos (that don't contain more information than "tests are failing if/if not")
[ ] replace @ to isset
[x] functional tests: I think you covered all important paths on functional level. If you can think of any others, feel free to add them but, I don't think there is a need for more
[x] unit tests: looks like you covered all of your code. hard to tell because the coverage-reports seem to not recognize the code covered by subprocesses (spawned by the functional tests) but I don't think it adds much value to add additional unit tests for already logically covered code. If you want, you can take a look at https://scrutinizer-ci.com/g/brianium/paratest/inspections/60bbd396-9902-4816-96cf-e67c9f3532ce/code-structure/test-coverage which shows how the coverage changes with your diff. Like I said, it doesn't work very well with the functional tests but it says much about the unit tests.

julianseeger, you are right regarding useless comments, I need either make them more addressed to problem or remove them if everything works fine without them.

I would like to find a time to try to fix group, group-exclude and skipped/incomplete print support or leave to in right place

Any progress here?

Sorry Julian. I think I will have time on Saturday to complete everything and prepare for merge.

Ok, Julian, I think, I'm done =) Could you please check if everything is ok.
PS: Travis lies =)

I didn't go through all >1k loc of the change but it looked good before and the open points are addressed.
Thanks :)
Oh and there will be a separate issue about the PHP5.3 support. Thanks for addressing the compatibility issues, I hope we can get rid of that soon.

@sormy @julianseeger does this also address the issue (without -f option), that classes with dataproviders does not output correct % numbers of passed tests?
at the moment I see my test repeatly come from 79% to 99% and back to 79% when using @dataProvider
If not I will try to debug this on my side but feedback at first would be nice :)

In non-functional mode it will work the same as before. Actually, I think that if we add a different types of parallelization (per test method, per test case, per test file, per test suite) for functional mode then we can  completely remove non-functional mode and get good percentage during test execution. Paratest in non-functional mode do not try to look into tests and estimate amount of tests and it's the reason why it works like it works.

@chbiel yes. With functional mode and max-batch-size > 0, this feature is activated and progress is tracked for methods*dataproviders. So there should be no incorrect progress because of dataProviders.
@sormy In most cases, per test file and per test case should be the same and thats what non-functional mode does. per test method is functional-mode + max-batch-size=0. per dataProvider is functional + max-batch-size > 0. And per suite does not exist because it is so high level, that you can probably achieve this more easily by using per testcase concurrency or just use your build-tool to execute multiple commands concurrently.
Maybe we should always use this new feature to get always correct progress and split parsing / execution.
Your input is welcome on what the default should be and what options/combinations should be offered to make the use easier (and make the "optimizing speed" section of the readme intuitive). The current state is based on backwards compatibility. By default, nothing should have changed in the last releases. But when optimizing, you can turn of -f and --batch-max-size and look what does the job best. From my experience, you have like a 50% chance that data-provider-concurrency inceases or significally decreases performance (depends on thinks like bootstrapping and array-caches) and about a 80% chance to have a better performance in functional mode over non-functional. So there are no best options for everyone.


Newest distutils no longer has a default for LDCXXSHARED

PyPy got an issue report when building kiwisolver. I tracked this down to a missing value in sysconfig.py. As far as I can tell, PyPy3.10 is compliant with CPython3.10 in not defining LDCXXSHARED, so why is the linker self.linker_so_cxx failing to get assigned on PyPy?

No, I am wrong. CPython3.10 defines LDCXXSHARED in sysconfig.


Can't save, open, generate code

When try to save, open or generate code crash, does not matter what I have done in editor, I can just open editor, then project->open and it will crash

same

When try to save, open or generate code crash, does not matter what I have done in editor, I can just open editor, then project->open and it will crash

When try to save, open or generate code crash, does not matter what I have done in editor, I can just open editor, then project->open and it will crash

did you find a solution to the problem?

did you find a solution to the problem? @ProNoob145  @adadKKKX

Use the OPENGL2 build configurtion.

use opengl2

Where is that option at?

onde altero para opengl2???

Use the OPENGL2 build configurtion.

Doesn't help same error

Send a screenshot

N

Use the OPENGL2 build configurtion.

Doesn't help same error

Of error


Feat: Notify User when not found anything on search

Describe the feature
When i search anything that is not present then the feedback form is showing that IMO is not good so i want to add any container that notifies the user that the search query is not found  .
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@Ayushmaanagarwal1211 assigned


warzone2100: 3.4.1 -> 4.0.0

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

warzone2100: Ask if output path share/doc (2.2M) could be split with outputs = [ ... "doc" ];

@SuperSandro2000 maybe... but is it really worth it? The game itself is 300+ MB

@SuperSandro2000 maybe... but is it really worth it? The game itself is 300+ MB

It should check if the man page is above a certain percentage compared to the overall package size. I thought the game is maybe 30 MB big but for 300MB it is whatever.


Bump syndtr/gocapability d983527, containerd/console

full diff: https://github.com/syndtr/gocapability/compare/db04d3cc01c8b54962a58ec7e491717d06cfcc16...d98352740cb2c55f81556b63d4a1ec64c5a319c2
changes included:

syndtr/gocapability#14 capability: Deprecate NewPid and NewFile for NewPid2 and NewFile2
syndtr/gocapability#16 Fix capHeader.pid type

Also bumped containerd/console just to keep up, but no local changes were introduced

Codecov Report

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

@@           Coverage Diff           @@
##           master    #3223   +/-   ##
=======================================
  Coverage   44.63%   44.63%
=======================================
  Files         113      113
  Lines       12161    12161
=======================================
  Hits         5428     5428
  Misses       5898     5898
  Partials      835      835

Flag
Coverage Δ

#linux
48.65% <ø> (ø)
:arrow_up:

#windows
39.86% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

LGTM


TVShows overlays with total_runtime don't update at show and season level every time a new episode is released/added

Version Number
2.0.2-build26 (Docker: nightly)
What branch are you on?
nightly
Describe the Bug
TVShows overlays with total_runtime don't update at show and season level every time a new episode is released/added
Relevant Collection/Overlay/Playlist Definition
No response
Logs
No response

are you wanting kometa to run automatically when a new episode is added so it can update the overlay or are you saying that after a new episode is added and kometa is run that the new runtime isnt replacing the old runtime?

I reproduced this in my test library.
The issue is that when you add new episodes to a season, neither the season nor show runtime overlays change.
https://discord.com/channels/822460010649878528/1272191038169284649
When I reproed it, I added a second season, and the show runtime overlay was not updated.

#If you force the reapply does it update properly? If so then it just needs to be added to what triggers an update

are you wanting kometa to run automatically when a new episode is added so it can update the overlay or are you saying that after a new episode is added and kometa is run that the new runtime isnt replacing the old runtime?

When a new episode is added and kometa runs at 4AM, the total runtime of the season and show posters overlay are not updated with the adicional time from the new episode

#If you force the reapply does it update properly? If so then it just needs to be added to what triggers an update

I've put the reapply_overlay: true on the config.yml and it updates... but it forces the reapply of all the shows and season overlays, not only the ones that have changed as result of a new episode being released/added to the show

Maybe there's a need for some code in the runtime.yml so that if there's a new value to the total_runtime it updates the corresponding overlay on the season and on the show posters

try using #2189 and see if it fixes the issue. its linked to docker with the total_runtime_trigger tag

So I just have to update Kometa to the latest nightly version and try it? Or do I have to change something in the runtime.yml file to achieve it?

So I just have to update Kometa to the latest nightly version and try it? Or do I have to change something in the runtime.yml file to achieve it?

You'd have to update Kometa to that specific PR version; that has not been merged in to nightly as yet.

So I just have to update Kometa to the latest nightly version and try it? Or do I have to change something in the runtime.yml file to achieve it?

You'd have to update Kometa to that specific PR version; that has not been merged into nightly as yet.

Ok, I'll wait for the merging of the PR. Thanks

total_runtime_trigger

You would run against kometateam/kometa:total_runtime_trigger which should already be available, total_runtime_trigger is the name of the image, similar to nightly and develop

Ok. I will test that image when I get home and see if it works when a new episode is released. I'll keep you posted. Thanks

Ok. I will test that image when I get home and see if it works when a new episode is released. I'll keep you posted. Thanks

Any luck with this? :)

Ok. I will test that image when I get home and see if it works when a new episode is released. I'll keep you posted. Thanks

Any luck with this? :)

I've installed the image like you suggested and set the reapply_overlay: false in the config.yml.
Unfortunatelly, I did not had new episodes released/added yesterday in the TVShows I have in my library, so I did not see any change.
If today the same happens, I'll create a test library for it and try it.
I'll keep you posted. Thanks

I've just runned Kometa with the total_runtime_trigger image and it updates the show and season posters overlays with the actual total runtime when there's a new episode added to the TVShow.
Thanks @meisnate12 for implementing this update and thanks @chazlarson and @YozoraXCII for the help and guidance! :)


Disable table border

Is there a way to disable table borders using sheet?
table {border: none;}

Yes, you can apply custom css to the table like this:
```sheet
{}
--- ~ { border: 'none' }
| a   | b   | c   |
| --- | --- | --- |
| 1   | 2   | 3   |
```

For more information, check out the readme


Decimal interface does not give access to coefficient and exponent

The Decimal interface does not give the user any access to the coefficient and exponent values. The only options are intValue, which truncates fractional portion and numberValue which is inexact. This means that it is impossible to accurately decipher Decimal values for any users.
Obviously BigNum issues should be solved first as both coefficient and exponent (theoretically) may be larger than what safely can be represented in a number.

Related to #354

Closed by #469 and #470.


Duplicate question for eviction_reason ?

When looking for eviction_reason, id: case type from summons takes priority because it is lower referenced in file than id: reason for eviction
Are both of the versions of this question used, or just the second one? I need help understanding when each version is used and why we have two versions. We should add comments above each question explaining why we have both if both are used.
https://github.com/LemmaLegalConsulting/docassemble-MOHUDEvictionProject/blob/386255ffdfc221993ccda102e8b45952a5cc66c1/docassemble/MOHUDEvictionProject/data/questions/court_information.yml#L54-L299

You're right, I don't think id: reason for eviction is used. I think at one time those question may have had if: conditions based on casenet and having the summons.


Extend not-found token price TLL use cases

Motivation
In the previous change targeting not-found token prices TTL settings, it was considering the response from the prices provider when a token wasn't found had the format:
{
  "address": {}
}

(Example)

But in other cases, it seems to be:
{}

(Example)
So for the second case, a validation error was thrown, and the PricesRepository.getTokenPrice exited before the TTL was set.
Solution

Remove the validation for the token price format in this function. This validation was just checking the payload contained at least 1 property, but this is already covered by the check in the next line (result?.[lowerCaseTokenAddress]?.[lowerCaseFiatCode]).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.04%) to 91.106%

Files with Coverage Reduction
New Missed Lines
%

src/routes/transactions/entities/tests/human-description.builder.ts
1
90.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
5085

Relevant Lines:
5442

💛  - Coveralls


Update basic display of health [$10]

Currently the health bar and possibly the breath bar are among the oldest bits of placeholder stuff we have, we might even be using unoriginal artwork (can't remember)
On large resolutions it can be hard to see details and it just isn't very original or interesting.
We have the anatomy system suggestion (#465) to instead do a more sophisticated damage model a la Dwarf Fortress, but that's probably still a long ways off, and really is a different concept that might only be interesting to some gameplay styles.
Instead in the meanwhile it would be nice to do some updates to the basic system

[ ] Update artwork to something original designed by us
[ ] Add nice animations / indicators of damage gained/lost, especially when lower health (blink?)
[ ] Allow status modifications to change color of the health indicators (this used to be a thing when Potions worked - #737)
[ ] Maybe add an (optional?) text display
[ ] Make it scale / display better on larger resolutions.
[ ] Maybe even make it movable, like the suggestion at http://forum.terasology.org/threads/editable-gui-layer.1174/#post-11573 - this could be a nice first element to try that out with

Also, should player health / health display perhaps even be moved to a module, like the breath bar (Breathing module) was? Then if it isn't enabled == immortal creative style.
Breathing bar itself might be a good thing to update along with this, especially if the artwork there is unoriginal (still can't remember)

Little mockup by @Calinou of a basic bar-only system (akin to TTA)

I'd stick with the very basic layout (as in the mockup) and either use a texture (as is used in TtA if I remember correctly) or some gradient color.
I'd also suggest to introduce as (composed) UIBar which can be parameterized to specific needs, e.g., change the background color/texture, position of display text, ... I'm not 100% sure, but I think we have binding mechanisms for UI elements, which could be used to directly bind the displayed value of the bar to some component...

To reduce clutter, the health/breath bars could be hidden or made semi-transparent when full (à la The Dark Mod).

Bump. On reviewing the recent changes in #2171 I noticed the health bar now ended up in the middle where before it was sort of off to the left so the breath bar could go to the right. Now they sort of overlap but then the breath bar is broken anyway (https://github.com/Terasology/Breathing/issues/4) and we really need to go away from that placeholder stuff as well.
@Josharias dunno if the move was a random side effect of recent changes or a stylistic choice but it hardly causes any real trouble as it is now.
To celebrate trying to do something more than just move it back to the left a little I threw a little bounty on here for the fun of it :-)

Hey, Cervator; since I finished up exams last week, I've finally had time to look into some issues to get to know the codebase, and this one looked like a good starting point.  So far, I've managed to move the bar to far left, and edited the bar from hearts to a plain green bar for now.  A couple questions, though: first, is it just the graphics that's broken about the breath bar?  It didn't seem like I ever took damage while being underwater when I was playing around.  Next, my current method is sort of hackish; just replacing the heart icons in the icons.png file, so the bar is still bound the same increments of 1/2 icon as before; is that what you had in mind, or should I try to find a way to make the bar more continuous?

Hey @VincentWells :-)
I just tried out enabling Breathing and hopping in the nearest body of water deep enough to trigger the breath bar. When I ran out my health started dropping normally.
Simply replacing the icons would satisfy item 1 in this issue, so that's one small good step forward. Continuous would be another nice extra but not mandatory.
Progress is progress. Keep it up :+1:

Ah, so you have to enable Breathing? I didn't realize that; my bad.

A lot has happened in https://github.com/Terasology/Health, I think we're good for now.


reminder: symbol change for bitcoincash on hitbtc

HitBTC kindly reminds you that starting from 15:00 UTC, October, 25 Bitcoin Cash ticker will be changed to BCH. Please see our full statement regarding the change in our blog https://blog.hitbtc.com/alert-on-bitcoin-cash-ticker-change/.

Thanks for the reminder!

Here are a couple of tests. Seems to work as expected for V2. https://github.com/timmolter/XChange/pull/1879. There was no previous adapting of BCC -> BCH in XChange code. This means that if anywhere it would be in the application level code.
Here is the raw output from executing the tests in the PR above
08:01:21.188 [default] [main] DEBUG si.mazi.rescu.HttpTemplate - Executing GET request at https://api.hitbtc.com/api/2/public/ticker/BCCUSD
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Request body =
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Request headers = {Authorization=Basic bnVsbDpudWxs}
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Accept-Charset', value='UTF-8'
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='User-Agent', value='ResCU JDK/6 AppleWebKit/535.7 Chrome/16.0.912.36 Safari/535.7'
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Authorization', value='Basic bnVsbDpudWxs'
08:01:21.188 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Accept', value='application/json'
08:01:22.163 [default] [main] DEBUG si.mazi.rescu.HttpTemplate - Request http status = 200
08:01:22.163 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Http call returned 200; response body:
{"ask":"239.9","bid":"238.9","last":"238.9","open":"260.0","low":"0.2","high":"267.9","volume":"154.567","volumeQuote":"23589.9193","timestamp":"2017-11-11T15:01:20.978Z","symbol":"BCCUSD"}

AND
08:01:22.172 [default] [main] DEBUG si.mazi.rescu.HttpTemplate - Executing GET request at https://api.hitbtc.com/api/2/public/ticker/BCHUSD
08:01:22.172 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Request body =
08:01:22.172 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Request headers = {Authorization=Basic bnVsbDpudWxs}
08:01:22.172 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Accept-Charset', value='UTF-8'
08:01:22.173 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='User-Agent', value='ResCU JDK/6 AppleWebKit/535.7 Chrome/16.0.912.36 Safari/535.7'
08:01:22.173 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Authorization', value='Basic bnVsbDpudWxs'
08:01:22.173 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Header request property: key='Accept', value='application/json'
08:01:22.928 [default] [main] DEBUG si.mazi.rescu.HttpTemplate - Request http status = 200
08:01:22.929 [default] [main] TRACE si.mazi.rescu.HttpTemplate - Http call returned 200; response body:
{"ask":"1299.99999","bid":"1294.13003","last":"1294.29067","open":"824.69044","low":"795.45934","high":"1374.98616","volume":"43465.00","volumeQuote":"43177718.9126500","timestamp":"2017-11-11T15:01:22.730Z","symbol":"BCHUSD"}


How to limit dots on mobile ?

How to limit dots on mobile ? If it's not possible , can I add arrows on the bottom ?

let settings = {
      dots: true,
      infinite: true,
      autoplay: true,
      slidesToShow:4,
      slidesToScroll:4,
      speed: 500,
      autoplaySpeed: 8000,
      adaptiveHeight: false,
      responsive: [{
        breakpoint: 780,
        settings: {
          autoplay: true,
          slidesToShow: 1,
          slidesToScroll: 1,
          initialSlide: 3
        }
      }]
    };

same issue here, any suggestion?


⚠ gorzdrav.org has degraded performance

In 8d47192, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 2899 ms

Resolved: gorzdrav.org performance has improved in d4a7fd4.


[BLAS] Netlib backend fails to compile with AdaptiveCpp

Summary
From the CI, the netlib backend does not compile anymore because of multi_ptr.
Version
Tested with the HEAD of develop branch: https://github.com/oneapi-src/oneMKL/commit/99e85be9bb31fe80ff01ab267f3b0c679d6406b2
Environment
CI build with AdaptiveCpp enabled.
Observed behavior
Compilation error:
In file included from src/blas/backends/netlib/netlib_level2.cpp:36:
  src/blas/backends/netlib/netlib_level2.cxx:32:38: error: no member named 'get_multi_ptr' in 'hipsycl::sycl::accessor<float, 1, hipsycl::sycl::access_mode::read, hipsycl::sycl::target::device, hipsycl::sycl::accessor_variant::unranged>'
    32 |                           accessor_a.GET_MULTI_PTR, (const int)lda, accessor_x.GET_MULTI_PTR,
       |                                      ^
  src/blas/backends/netlib/netlib_common.hpp:35:32: note: expanded from macro 'GET_MULTI_PTR'
    35 | #define GET_MULTI_PTR template get_multi_ptr<sycl::access::decorated::yes>().get_raw()

This may be fixed with https://github.com/AdaptiveCpp/AdaptiveCpp/pull/1452. We'll update once we have time to test it.