Per-log labels

I want to create some custom labels and add them just 1 log entry. After looking through the code in this project, I found a way:
public sealed class RequestInfoLogEntryLabelProvider : HttpLogEntryLabelProvider
{
    public RequestInfoLogEntryLabelProvider(IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor) {}

    protected override void InvokeCore(Dictionary<string, string> labels, HttpContext httpContext)
    {
        var headerValue = httpContext.Request.Headers["TLS-Version"];
        if (StringValues.IsNullOrEmpty(headerValue)) headerValue = "(N/A)";
        labels["tls_version"] = headerValue;
    }
}

It works, but it adds the labels to every log. I don't want that - I just want the labels added to 1 specific log.
I think the best approach would be to let users specify labels in the Log/LogInformation/LogWarning etc calls. That base code is here. You can let the user specify labels through a new param, and then tack those on to what comes back from CreateLabels() further down.

We can't add a new parameter to the the GoogleLogger.Log method, this is a method that we are implementing from Microsoft.Extensions.Logging.ILogger. And in any case I don't think there's a need for that.
You can implement conditional label providers, they can be based on HttpContext values or on any other dependency you set up via ASP.NET Core standard dependency injection mechanism. You can see examples of those in UserLogEntryLabelProvider which depends on HttpContext and only adds some labels if there's an authenticated user and EnvironmentNameLogEntryLabelProvider which has a dependency on Microsoft.AspNetCore.Hosting.IHostingEnvironment and sets the aspnetcore_environment if it's present.
Basically, your custom label provider is the one that needs to know when to add a label. If for any reason this approach doesn't work for you do provide more details about your use case and why you can't use the existing label providing mechanism.

Hi @amanda-tarafa, adding a condition to my label provider was the first thing I tried, but I wasn't able to because HttpContext doesn't provide enough information.
Here is a quick summary of what I am trying to do:

At the beginning of requests, log "Request started" under the "RequestStarted" category name.
Associate labels to that log, such as tls_version.
Only associate labels to that 1 log, and not others that may come later.

HttpContext does not provide any information about the logging information, so I can't seem to determine whether labels should be added or not. If I could simply check for the "RequestStarted" category, that would be fine, but it doesn't seem like that is possible.

No, it's not inmediately possible to check on the entry you are creating the labels for. We could do that possibly.
But, to be honest, I'm not entirely convinced that labeling a log entry is the best way to tackle your use case. What I think I would do is create a trace span at the beginning of the request and label that span with all the info I want. The span will contain all the log entries created within so you know all those lables apply to all those log entries, i.e. to the request in it's entirety. You can see how to do that here.
This is very subjective, and there's no right or wrong, just preferences and context, but adding labels like you are describing to just one entry based on it being the "first", seems off to me. What does that say about the tls_version associated to the rest of the log entries? My point is that when looking at log entries you have to know that a decision was made to add the tls_version only to the first one of each request, and that is not intuitive in my view. If I were to add those labels, I would add them to all the log entries affected or to none. Spans on the other hand, are the ones that mark the start/end of an operation, and adding labels to them that describe that operation makes a lot of sense. Again, this is just my view and you may have any number of constraints or a context that I don't know about, so take this with a pinch of salt.
If labeling spans works for you, great, else, let me know and I can take a look at defining label providers that know about the entry being logged. But just to set expectations, I probably wouldn't be able to get to this in a couple of weeks.

Hi @amanda-tarafa, 2 things:

It appears a similar request has just come in.

I am reconsidering my implementation and had an idea. Instead of creating a new span, I thought maybe I could update the existing/current/parent span, like this:
tracer.AnnotateSpan(new Dictionary<string, string> { { "Test", "test" } });
Unfortunately, it doesn't work - no additional labels show up. See below for what span I am referring to. Is the library able to update this span?

The Log4Net implementation is different from the Diagnostics libraries, first it doens't include tracing, which meand there's no alternative to labeling log entries, and second, as far as I know about it, it doesn't have anything like Diagnostic's label providers, so labels are truly static.

That's a case of the Diagnostics trace not being there. The span you are showing was created by the LoadBalancer and we don't have access to it on the Diagnostics library. That load balancer span should contain the Diagnostics span, see how mine looks like:

And if I click on the inner span, that's where your label should appear, alongside with the /agent and other labels that we set automatically for all request encompasing spans.

Note also that not all traces are started by the LoadBalancer, some are directly started by Diagnostics, and look as follows. It seems to me that this has to do with the Load Balancer doing sample tracing only (as Diagnostics does by default, with qps = 1) but that's just an assumption on my part, I'm not really familiar with how the Load Balancer works or how to configure it if you wanted it to trace everything.

The span you are showing was created by the LoadBalancer and we don't have access to it on the Diagnostics library

Yes - so it's impossible to update it? I thought that since it's "in progress" you could at least add an annotation to it.

The span you are showing was created by the LoadBalancer and we don't have access to it on the Diagnostics library

Yes - so it's impossible to update it? I thought that since it's "in progress" you could at least add an annotation to it.

Not through the Diagnostics library, we don't modify spans that we don't create and we almost certainly don't want to do so. Also, think that in this particular case, you would be setting application specific information on a Load Balancer span, which might be a little unexpected.
In Diagnostics if we are sampling a trace, we already create a span at the start of the request, in our middleware, and that one you can annotate.
In any case, if you really want to annotate and external span, you could do it using the Google.Cloud.Trace.v1 library directly, you could inspect the header, get the trace ID, and use the library to fetch the load balancer span and patch it.

In Diagnostics if we are sampling a trace, we already create a span at the start of the request, in our middleware, and that one you can annotate.

You're right. I just tested, and it worked.
This is a sufficient solution for me, so I will close this now. Thank you for the suggestions and insight.😁

Oh, this is unfortunate. Turns out those labels in the span don't show up in the Cloud Console Logs Viewer. Only Trace list.
This solution will not work as I need to be able to filter by TLS Version and several other fields I am adding, which was why I was adding a log entry in the first place - to be able to filter.
I think my original suggestion should still stand, unless you have another suggestion.

Traces can be filtered as well based on the span labels, see below, with the added benefit, in my view, that you can see everything, traces and logs, in one screen.

If you still want to be able to add labels to specific log entries, I can look into adding this feature, but, to set expectations, we won't be able to look/work on this for a couple of weeks.

@amanda-tarafa Thanks for that. I think that will work for now, but I'd still like this for logs, so I can do all filtering in one place.
I will await your update in a few weeks.🙂


React Wrapper Library

Hello,
Thank you for the stunning pure CSS framework ❤ loved it.
I want to create a wrapper react component library, however, are there any plans to do it or is it already done?
I checked out the internet about it but I could not find anything about react with efrolic.
if there is none and its okay to implement, I would love to contribute 🤗

Hello,
I have not worked on it, you can implement it.


[Bug] About the output length of MT-Bench

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] The bug has not been fixed in the latest version.

Type
I'm evaluating with the officially supported tasks/models/datasets.
Environment
{'CUDA available': True,
 'CUDA_HOME': '/usr/local/cuda',
 'GCC': 'gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0',
 'GPU 0,1,2,3': 'NVIDIA H800',
 'MMEngine': '0.10.4',
 'MUSA available': False,
 'NVCC': 'Cuda compilation tools, release 12.1, V12.1.105',
 'OpenCV': '4.9.0',
 'PyTorch': '2.3.0+cu121',
 'PyTorch compiling details': 'PyTorch built with:\n'
                              '  - GCC 9.3\n'
                              '  - C++ Version: 201703\n'
                              '  - Intel(R) oneAPI Math Kernel Library Version '
                              '2022.2-Product Build 20220804 for Intel(R) 64 '
                              'architecture applications\n'
                              '  - Intel(R) MKL-DNN v3.3.6 (Git Hash '
                              '86e6af5974177e513fd3fee58425e1063e7f1361)\n'
                              '  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n'
                              '  - LAPACK is enabled (usually provided by '
                              'MKL)\n'
                              '  - NNPACK is enabled\n'
                              '  - CPU capability usage: AVX512\n'
                              '  - CUDA Runtime 12.1\n'
                              '  - NVCC architecture flags: '
                              '-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n'
                              '  - CuDNN 8.9.2\n'
                              '  - Magma 2.6.1\n'
                              '  - Build settings: BLAS_INFO=mkl, '
                              'BUILD_TYPE=Release, CUDA_VERSION=12.1, '
                              'CUDNN_VERSION=8.9.2, '
                              'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
                              'CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 '
                              '-fabi-version=11 -fvisibility-inlines-hidden '
                              '-DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO '
                              '-DLIBKINETO_NOROCTRACER -DUSE_FBGEMM '
                              '-DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK '
                              '-DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE '
                              '-O2 -fPIC -Wall -Wextra -Werror=return-type '
                              '-Werror=non-virtual-dtor -Werror=bool-operation '
                              '-Wnarrowing -Wno-missing-field-initializers '
                              '-Wno-type-limits -Wno-array-bounds '
                              '-Wno-unknown-pragmas -Wno-unused-parameter '
                              '-Wno-unused-function -Wno-unused-result '
                              '-Wno-strict-overflow -Wno-strict-aliasing '
                              '-Wno-stringop-overflow -Wsuggest-override '
                              '-Wno-psabi -Wno-error=pedantic '
                              '-Wno-error=old-style-cast -Wno-missing-braces '
                              '-fdiagnostics-color=always -faligned-new '
                              '-Wno-unused-but-set-variable '
                              '-Wno-maybe-uninitialized -fno-math-errno '
                              '-fno-trapping-math -Werror=format '
                              '-Wno-stringop-overflow, LAPACK_INFO=mkl, '
                              'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
                              'PERF_WITH_AVX512=1, TORCH_VERSION=2.3.0, '
                              'USE_CUDA=ON, USE_CUDNN=ON, USE_CUSPARSELT=1, '
                              'USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, '
                              'USE_GLOG=OFF, USE_GLOO=ON, USE_MKL=ON, '
                              'USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, '
                              'USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, '
                              'USE_ROCM_KERNEL_ASSERT=OFF, \n',
 'Python': '3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]',
 'TorchVision': '0.18.0+cu121',
 'numpy_random_seed':<PHONE_NUMBER>,
 'opencompass': '0.2.5+4b451d1',
 'sys.platform': 'linux'}

Reproduces the problem - code/configuration sample
from mmengine.config import read_base

with read_base():
    from .datasets.subjective.multiround.mtbench_single_judge_diff_temp import subjective_datasets

from opencompass.models import VLLMwithChatTemplate, HuggingFacewithChatTemplate, HuggingFaceCausalLM, HuggingFace, HuggingFaceChatGLM3, OpenAI
from opencompass.partitioners import NaivePartitioner, SizePartitioner
from opencompass.partitioners.sub_naive import SubjectiveNaivePartitioner
from opencompass.partitioners.sub_size import SubjectiveSizePartitioner
from opencompass.runners import LocalRunner
from opencompass.runners import SlurmSequentialRunner
from opencompass.tasks import OpenICLInferTask
from opencompass.tasks.subjective_eval import SubjectiveEvalTask
from opencompass.summarizers import MTBenchSummarizer

api_meta_template = dict(
    round=[
        dict(role='SYSTEM', api_role='SYSTEM'),
        dict(role='HUMAN', api_role='HUMAN'),
        dict(role='BOT', api_role='BOT', generate=True),
    ]
)

# -------------Inference Stage ----------------------------------------
# For subjective evaluation, we often set do sample for models
models = [
    dict(
        type=VLLMwithChatTemplate,
        abbr='qwen2-72b-instruct-vllm',
        path='Qwen/Qwen2-72B-Instruct',
        model_kwargs=dict(tensor_parallel_size=4),
        max_seq_len=8192,
        batch_size=8,
        run_cfg=dict(num_gpus=4),
    )
]

datasets = [*subjective_datasets]

# -------------Evalation Stage ----------------------------------------

## ------------- JudgeLLM Configuration
judge_models = [dict(
    abbr='GPT4-Turbo',
    type=OpenAI,
    path='gpt-4-0613', # To compare with the official leaderboard, please use gpt4-0613
    key='xxxx',  # The key will be obtained from $OPENAI_API_KEY, but you can write down your key here as well
    meta_template=api_meta_template,
    query_per_second=16,
    max_out_len=2048,
    max_seq_len=8192,
    batch_size=8,
    temperature=0,
)]

## single evaluation
eval = dict(
    partitioner=dict(type=SubjectiveSizePartitioner, strategy='split', max_task_size=10000, mode='singlescore', models=models, judge_models=judge_models),
    runner=dict(type=LocalRunner, max_num_workers=32, task=dict(type=SubjectiveEvalTask)),
)

summarizer = dict(type=MTBenchSummarizer, judge_type='single')

work_dir = 'outputs/mtbench/'

Reproduces the problem - command or script
python3 run.py configs/eval_subjective_mtbench.py -r

Reproduces the problem - error message
Incomplete generation of Qwen2-72B-Instruct.
[
    "25": {
        "prediction": [
            {
                "round": 1,
                "user": "Implement a function to find the median of two sorted arrays of different sizes with O(1) space complexity and O(n) time complexity.",
                "assistant": "To find the median of two sorted arrays of different sizes, we can use a modified version of the merge algorithm used in merge sort. The idea is to merge the two arrays until we reach the middle element(s) in O(n) time complexity and O(1) space complexity.\n\nHere's the implementation in Python:\n\n```python\ndef findMedianSortedArrays(nums1, nums2):\n    # Ensure nums1 is the smaller array\n    if len(nums1) > len(nums2):\n        return findMedianSortedArrays(nums2, nums1)\n    \n    x, y = len(nums1), len(nums2)\n    low, high = 0, x\n    \n    while low <= high:\n        partitionX = (low + high) // 2\n        partitionY = (x + y + 1) // 2 - partitionX\n        \n        maxLeftX = float('-inf') if partitionX == 0 else nums1[partitionX - 1]\n        minRightX = float('inf') if partitionX == x else nums1[partitionX]\n        \n        maxLeftY = float('-inf') if partitionY == 0 else nums2[partitionY - 1]\n        minRightY = float('inf') if partitionY == y else nums2[partitionY]\n        \n        if maxLeftX <= minRightY and maxLeftY <= minRightX:\n            if (x + y) % 2 == 0:\n                return (max(maxLeftX, maxLeftY) + min(minRightX, minRightY)) / 2\n            else:\n                return max(maxLeftX, maxLeftY)\n        elif maxLeftX > minRightY:\n            high = partitionX - 1\n        else:\n            low = partitionX + 1\n```\n\nThis implementation uses binary search to find the correct partition in the smaller array, which ensures O(log(min(n, m))) time complexity, where n and m are the sizes of the two arrays. However, since the binary search is performed on the smaller array and the merging is done implicitly, the overall time complexity remains O(n).\n\nThe space complexity is O(1) as we only use a constant amount of extra space for variables.\n\nNote that the implementation above assumes that both arrays are non-empty.\n\nHere's an example usage:\n\n```python\nnums1 = [1, 3, 5]\nnums2 = [2, 4, 6, 8]\nmedian = findMedian"
            },
            {
                "round": 2,
                "user": "Does there exist an implementation with better time complexity?",
                "assistant": "Actually, the time complexity of the provided algorithm is O(log(min(m, n))), where m and n are the lengths of the two arrays. This is because we're using a binary search algorithm, which has logarithmic time complexity.\n\nTo answer your question, this is the most efficient algorithm for finding the median of two sorted arrays in terms of time complexity. It is not possible to find the median of two sorted arrays in less than O(log(min(m, n))) time, which makes this algorithm optimal.\n\nHere is the optimal algorithm:\n\n```python\ndef findMedianSortedArrays(nums1, nums2):\n    if len(nums1) > len(nums2):\n        nums1, nums2 = nums2, nums1\n\n    x, y = len(nums1), len(nums2)\n    low = 0\n    high = x\n\n    while low <= high:\n        partitionX = (low + high) // 2\n        partitionY = (x + y + 1) // 2 - partitionX\n\n        maxLeftX = float('-inf') if partitionX == 0 else nums1[partitionX - 1]\n        minRightX = float('inf') if partitionX == x else nums1[partitionX]\n\n        maxLeftY = float('-inf') if partitionY == 0 else nums2[partitionY - 1]\n        minRightY = float('inf') if partitionY == y else nums2[partitionY]\n\n        if maxLeftX <= minRightY and maxLeftY <= minRightX:\n            if (x + y) % 2 == 0:\n                return (max(maxLeftX, maxLeftY) + min(minRightX, minRightY)) / 2\n            return max(maxLeftX, maxLeftY)\n\n        elif maxLeftX > minRightY:\n            high = partitionX - 1\n        else:\n            low = partitionX + 1\n\n    return 0\n```\nThis algorithm uses a binary search to find the partition point in the smaller array, then uses that partition point to find the partition point in the larger array. This guarantees the optimal O(log(min(m, n))) time complexity.\nPlease note that an algorithm with O(n) time complexity would not be faster for large input sizes. It would be significantly slower because it would have to merge the entire arrays before finding the median, whereas the binary search approach only needs to look at a logarithmic number of elements.\nIn summary, the"
            }
        ],
        "origin_prompt": null
    }
]

Other information
Hi! Thanks for the brilliant work of supporting many evaluation datasets. As current LLMs evolve, the output limit of 512 in MT-Bench may no longer be suitable. Perhaps changing it to 1024 or 2048 would be more desirable?

sure, you can set 1024 or 2048 in here https://github.com/open-compass/opencompass/blob/889e7e11409d83fe312ecc7d7f0ed8861a84cc92/configs/datasets/subjective/multiround/mtbench_single_judge_diff_temp.py#L29
we set 512 because MTbench is a multi-turn dataset and we obey the original setting in earliy MTBench

sure, you can set 1024 or 2048 in here
https://github.com/open-compass/opencompass/blob/889e7e11409d83fe312ecc7d7f0ed8861a84cc92/configs/datasets/subjective/multiround/mtbench_single_judge_diff_temp.py#L29
we set 512 because MTbench is a multi-turn dataset and we obey the original setting in earliy MTBench

好好好
不过 他们官方的长度设置 后面也改成 1024 了
https://github.com/lm-sys/FastChat/blob/92a6d1fcd69a88ea169c0b01065ce44f1e690a2c/fastchat/llm_judge/gen_model_answer.py#L236

ok I will change later


mvp: define default IPFS config for light client

Currently, we have default config for full node, but there should be similar for the light client as they are different in some way, specifically for networking usage and mods.

DhtMode should be Client by default


Desktop.WinUI app has problems

This issue has been moved from a ticket on Developer Community.

[severity:It bothers me. A fix would be nice]
When I run the Desktop WinUI project template I get the following output...
Exception thrown at 0x756EA892 (KernelBase.dll) in TemplateDesktopWinUI.exe: 0x40080202: WinRT transform error (parameters: 0x8000000B, 0x80070490, 0x00000014, 0x0337E074).
mincore\com\oleaut32\dispatch\ups.cpp(2122)\OLEAUT32.dll!759F245F: (caller: 759F3D7F) ReturnHr(1) tid(50c0) 8002801D Library not registered.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF58.
onecoreuap\windows\dwm\legacymarshal\marshal\inputmanagerexports.cpp(97)\marshal.dll!7AB2BACE: (caller: 107B8F96) ReturnNt(1) tid(4fc4) C000000D onecoreuap\windows\dwm\legacymarshal\marshal\inputmanagerexports.cpp(97)\marshal.dll!7AB2BACE: (caller: 107B8F96) ReturnNt(2) tid(4fc4) C000000D onecoreuap\windows\dwm\legacymarshal\marshal\inputmanagerexports.cpp(97)\marshal.dll!7AB2BACE: (caller: 107B8F96) ReturnNt(3) tid(4fc4) C000000D onecoreuap\windows\dwm\legacymarshal\marshal\inputmanagerexports.cpp(97)\marshal.dll!7AB2BACE: (caller: 107B8F96) ReturnNt(4) tid(4fc4) C000000D Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe : Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF68.
Exception thrown at 0x756EA892 in TemplateDesktopWinUI.exe: Microsoft C++ exception: Microsoft::CoreUI::Messaging::MessagingValidationException::Holder$ at memory location 0x0337DF68.
The program '[9752] TemplateDesktopWinUI.exe' has exited with code 0 (0x0).

Original Comments
Feedback Bot on 12/16/2020, 10:29 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.
Fiona Niu[MSFT] on 12/16/2020, 10:32 PM:
Thank you for your feedback! Does this reproduce for all project or specific project? If it’s reproduce with the specific project, could you please provide a sample solution that has this problem so that we can conduct further research?
Additionally, if there are any relevant screenshots or files that help explain your issue, please attach those as well.
We look forward to hearing from you!
Gavin Williams on 12/22/2020, 03:33 AM:
This is just the Visual Studio template ‘Blank App (Packaged) : WinUI on Desktop’. Someone ran a project of mine (the template with some extra stuff in it), and they said they didn’t get these messages.
Why would OLEAUT32.dll not be registered on my system?
Feedback Bot on 12/22/2020, 10:19 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.
Thomas Welter on 1/4/2021, 06:16 AM:
I am getting the same error. After successfully debugging my Uno (with WinUI 3 prev3) based App on Windows Desktop (packaged), I installed the GTK3 Runtime (according to platform.uno/docs/articles/get-started-with-linux.html) and successfully debugged the GTK App (Skia). Since then I get this error when debugging the Windows Desktop version.

Original Solutions
(no solutions)

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

Well, I am using VS Community 2019 16.9.0 Preview 2.0 which should be working perfectly fine with WinUI 3 prev3. Even if I
create a new Solution with the latest "WinUI in Desktop" project template (version <IP_ADDRESS>1130) I am getting the exact same list of errors that Gavin Williams originally posted. Even after repairing VS the problem persists.

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

Well, I am using VS Community 2019 16.9.0 Preview 2.0 which should be working perfectly fine with WinUI 3 prev3. Even if I
create a new Solution with the latest "WinUI in Desktop" project template (version <IP_ADDRESS>1130) I am getting the exact same list of errors that Gavin Williams originally posted. Even after repairing VS the problem persists.

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

Well, I am using VS Community 2019 16.9.0 Preview 2.0 which should be working perfectly fine with WinUI 3 prev3. Even if I
create a new Solution with the latest "WinUI in Desktop" project template (version <IP_ADDRESS>1130) I am getting the exact same list of errors that Gavin Williams originally posted. Even after repairing VS the problem persists.

Having the same issue, also very confused! Have a real TENET moment right now

@stevenbrix this is the issue we see when you use an incompatible version of visual studio right?

Well, I am using VS Community 2019 16.9.0 Preview 2.0 which should be working perfectly fine with WinUI 3 prev3. Even if I
create a new Solution with the latest "WinUI in Desktop" project template (version <IP_ADDRESS>1130) I am getting the exact same list of errors that Gavin Williams originally posted. Even after repairing VS the problem persists.

Having the same issue, also very confused! Have a real TENET moment right now

I'm using VS 16.8.4.

I'm using VS 16.8.4.

The problem persists with VS 16.9.0 Preview 5 and WinUI 3.0.0-preview4.210210.4.

The problem persists with VS 16.10.0 Preview 1.0 and Microsoft.ProjectReunion.WinUI 0.5.0.
Steps to reproduce: Create a new project with the 'Blank App, Packaged (WinUI in Desktop)' template. Thats it!
Errors you see in the log (sorry for the German output):
onecore\Base\AppModel\Runtime\Src\PackagePath.hpp(144)\kernelbase.dll!752FFD65: (caller: 752FF903) ReturnHr(1) tid(858) 80073D5B Das Paket hat kein variables Verzeichnis.
mincore\com\oleaut32\dispatch\ups.cpp(2126)\OLEAUT32.dll!76E52917: (caller: 76E54191) ReturnHr(1) tid(858) 8002801D Bibliothek nicht registriert.
onecoreuap\windows\dwm\legacymarshal\marshal\inputmanagerexports.cpp(97)\marshal.dll!52D1BBBE: (caller: 52A38F62) ReturnNt(1) tid(43b8) C000000D Der Thread 0x24e4 hat mit Code 0 (0x0) geendet.
After implementing some UI features, the app crashes randomly without an error message.
In Uno Platform projects i get the same errors when I debug the packaged Windows project and the (freshly created and blank) app immediately crashes with the additional error message:
Ausnahme ausgelöst bei 0x00007FFF2658EFCA (Microsoft.ui.xaml.dll) in QuAC.Windows.Desktop.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x0000000000000050.
All of this even happens after a fresh install of Windows 10 and VS and across two tested devices. Help!? I begin to doubt my sanity at this point... Am I the only one not being able to develop a WinUI 3 Desktop App?

@WelterDevelopment Did you ever found the reason or a workaround for this? I get a similar error message, though my surrounding is a little different.


How to combine scenes or overlay animated image (or video) on two video?

Like this in code

Or how to add scenes stack?

Oh, this problem may not be easy to solve


Auto update Stargate-mongoose in the Sample apps repo

Update stargate-mongoose release workflow to create a PR that bumps the stargate-mongoose version in stargate-mongoose-sample-apps

@vkarpov15 SGTM. I enabled the same and added the dependabot.yml in this PR Please review when you get a chance.

Fixed by https://github.com/stargate/stargate-mongoose-sample-apps/pull/29


Radius and metrics

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


dehaze

What are the metrics obtained by your method on the dehazing dataset (outdoor and indoor)

How long it takes to train the ITS on a single 3090

Hi!
In our paper, we only qualitatively evaluated the model on dehazing task (indoor). The training takes about ~3 days on an A100 GPU (40GB). You can absolutely train it on your only GPU but with a smaller batch size.
And if you really want the metrics results, we can report them later!


LogCollect not moving from running to completed

https://cmsweb.cern.ch/reqmgr/view/details/jen_a_ACDC_task_B2G-RunIISpring16DR80-01193__v1_T_160804_213906_2780
https://cmsweb.cern.ch/reqmgr/view/details/prozober_ACDC_task_B2G-RunIISpring16reHLT80-01139__v1_T_160802_151622_5969
https://cmsweb.cern.ch/reqmgr/view/details/jen_a_ACDC_task_B2G-RunIISpring16DR80-01193__v1_T_160804_213914_4857
https://cmsweb.cern.ch/reqmgr/view/details/jen_a_ACDC_task_B2G-RunIISpring16DR80-01193__v1_T_160804_213929_1879
are all LogCollect ACDC and not toggling done

Can I ask you why on earth you guys are creating ACDC workflows for logCollect
    "InitialTaskPath": "/pdmvserv_task_B2G-RunIISpring16DR80-01193__v1_T_160731_123432_3198/B2G-RunIISpring16DR80-01193_0/B2G-RunIISpring16DR80-01193_1/LogCollectForB2G-RunIISpring16DR80-01193_1",

???
LogCollect and Cleanup ACDC workflows are not supported:
https://github.com/dmwm/WMCore/blob/master/src/python/WMComponent/ErrorHandler/ErrorHandlerPoller.py#L124
I checked only the last request, but if all of them are ACDCs for LogCollect, then please force-complete and let them gracefully get to completed status.

On the one hand, true that LogCollect should probably not be ACDCed.
On the other hand, if it's not supported, it should not succeed to create. But since a job was made and run and succeeded, natural would be that the wf goes to completed and we'd all be happy ever after.

I really don't want to spend time on something that is not supported and that Ops should be aware that makes no sense.
Since we have very few "users" of the production system, it would be great if the team know what makes sense to do, what they should and what not, instead of making the code blocking all these not allowed actions.
So, please force-complete and get those workflows out of the system.

I force-complete those about an hour ago @scarletnorberg. @amaltaro  I am suspecting that something is odd as they have not reached a further stage yet.
If there isn't anything to be done : i.e. empty acdc doc, then there should be nothing created... while there is.
Double checking ,the acdc doc itself is containing something https://cmsweb.cern.ch/couchdb/acdcserver/_design/ACDC/_view/byCollectionName?key="pdmvserv_task_B2G-RunIISpring16DR80-01193__v1_T_160731_123432_3198"&include_docs=true&reduce=false for these LogCollect steps.
The https://github.com/CMSCompOps/WmAgentScripts/blob/master/makeAllACDCs.py script does not prune out the LogCollect, so it must have always been this way, why are we getting this problem now ?

Those you initially reported have no acdc docs, however the last one has indeed 3 logcollect docs:
pdmvserv_task_B2G-RunIISpring16DR80-01193__v1_T_160731_123432_3198
If possible, leave this one in the system for a couple of days. The only case I see it passing through that check would be either having no job type or perhaps a diffecrent char case.

@vlimant can you or someone else abort these LogCollect ACDC workflows please? They will never move to completed because they contain only one subscription (LogCollect) which will never be seen by this query:
https://github.com/dmwm/WMCore/blob/master/src/python/WMComponent/TaskArchiver/TaskArchiverPoller.py#L185
I'm closing this urgent issue and will create another one for why the acdc server contains logCollect entries.

@amaltaro cannot abort from force-complete. Shall I set "completed" ?

Hm, we should have the abort option over there...
I'll use Seangchan's script to kill them directly from the agent.


bug in showing the custom index after updating from 1.5.11 to 1.5.12

Which OS ?
ios- android
Version
Which versions are you using:

react-native-swiper v?
1.5.12
react-native v0.?.?
0.48.2

Expected behaviour
giving index property give the page related to that index
Actual behaviour
although the dot is on the desired index but the page that is shown is the page related to the most left page (index = 0)
How to reproduce it>
To help us, please fork this component, modify one example in examples folder to reproduce your issue and include link here.

just updating from the 1.5.11 to 1.5.12 made this issue and when i reverted to the 1.5.11 it worked again.

I think it is 1.5.10 instead of 1.5.11 right? I had the same issues

I had to downgrade to 1.5.10 which fixed the issue for me

Can you try again with version 1.5.13, please and tell me if it does it again.

i updated to 1.5.13 and everything seems to work fine... thanks 👍


^join is adding spaces between arguments without AUTOSPACE

Hi, I am trying to join a phone number like this:
u: ( send sms {to} _~number _~number _~number _* ) ^keep() ^repeat()
   $$phone = ^join('_0 '_1 '_2)
   $$message = ^original(_3)
   /sms ^print(OUTPUT_NOCOMMANUMBER $$phone) $$message

But I get the number with spaces between the three numbers:
> send sms to 600 123 123 Hi
HARRY:  /sms 600 123 123 Hi

I have also tried ^join(^original('_0) ^original('_1) ^original('_2)) with the same result. I don't know if I am missing something about the behavior of join with numbers but I though that not using AUTOSPACE should concatenate the arguments as one string.
UPDATE:
If I use this rule:
u: ( _~number _~number _~number ) ^keep() ^repeat()
   $$phone = ^join('_0 '_1 '_2)
   The phone number is ^print(OUTPUT_NOCOMMANUMBER $$phone)

I get the expected result:
> 600 123 123
HARRY:  The phone number is 600123123

When I do this:
u: (buy) $x = 500  $y = 400 $z = 333
$xx = ^join($x $y $z)
$xx
I get 500,400,333  (because I have not changed output control to not put commas in numbers.
What do you get and what version of CS are you using?

I get 500,400,333 too, I am using version 7.111 It's a strange behaviour because If I remove some words before the numbers it works:
# This returns /sms 500400333
u: ( send _~number _~number _~number _* ) ^keep() ^repeat()
   $$phone = ^join('_0 '_1 '_2)
   $$message = ^original(_3)
   /sms ^print(OUTPUT_NOCOMMANUMBER $$phone) $$message

But If I add more than 1 word before the numbers in the pattern I get the spaces back:
# This returns /sms 500 400 333
u: ( send sms _~number _~number _~number _* ) ^keep() ^repeat()
   $$phone = ^join('_0 '_1 '_2)
   $$message = ^original(_3)
   /sms ^print(OUTPUT_NOCOMMANUMBER $$phone) $$message

Could I be hitting some kind of limit in the pattern? Is there a better way to do this?

Ok, I found the issue thanks to :trace. Thanks for all those dev tools built into ChatScript ;)
The problem was that I was hitting another rule that was like u: ( send sms _~number _* ) And this was making _0 = 500 and _1 = 400 333 I still don't quite understand why 500 400 333 instead of 500400 333 but this is definitely the rule creating the unexpected output.
Thanks again Bill, and sorry for submitting an issue that was not a bug, sometimes you only need to state your problem to make the solution appear in front of you.


Split out RSS/Atom code

Now that there's finally an answer to netstandard RSS/Atom, consider ripping out the old code and using this library instead: https://github.com/dotnet/SyndicationFeedReaderWriter

On second thought and with the benefit of time, the SyndicationFeedReaderWriter library is poorly maintained (I've submitted several issues and PRs over the years that haven't been addressed) and our internal one seems to work pretty well. Perhaps the internal one should be split out into a stand-alone library.


[Backup] Add private endpoints support for Microsoft.RecoveryServices/vaults

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Backup


Scrollbars look bad with Doxygen v1.9.5

Doxygen v1.9.5 added some webkit scrollbar styling that conflicts with the doxygen-awesome style: https://github.com/doxygen/doxygen/commit/260f2fadf8b780d824cba2e490d119e759ada101
If it's unclear what's broken I'm happy to add some screenshots, but I think it's quite obvious when looking at a generated page, at least on macOS Safari in dark mode.

I've been struggling with the same problem today. Unfortunately it seems like I cannot patch this with pure CSS. 🙁
https://github.com/doxygen/doxygen/issues/9549

As a quick workaround you could maybe modify doxygen.css and remove the lines that define the scrollbar style: https://github.com/doxygen/doxygen/commit/260f2fadf8b780d824cba2e490d119e759ada101

Doxygen 1.9.6 is out and has resolved this issue. Pls consider upgrading to this version, Doxygen 1.9.5 is still not supported by this theme!


⚠ Roblox Devforum has degraded performance

In ab6ab02, Roblox Devforum (https://devforum.roblox.com) experienced degraded performance:

HTTP code: 504
Response time: 10184 ms

Resolved: Roblox Devforum performance has improved in b8872c7.


Add content/hi/docs/tutorials/kubernetes-basics/deploy-app/_index.md

Hey folks, this is a PR for hi localization of the file: content/hi/docs/tutorials/kubernetes-basics/deploy-app/_index.md
PR is linked under this issue #29353
/language hi

@rajatgupta24 Is seems like the file is not translated?

@rajatgupta24 Is seems like the file is not translated?

Looks like I push the wrong branch, I'll change it, thanks for reviewing

/assign rajatgupta24

/retitle [hi] Add content/hi/docs/tutorials/kubernetes-basics/deploy-app/_index.md

/assign
/label tide/merge-method-squash

/lgtm
/approve
Thank you @rajatgupta24 :)


Upgrade KubeVirt to the latest version

Since we want to sell KubeVirt to potential customers it would be good to update the KubeVirt version to the latest stable https://github.com/kubevirt/kubevirt/releases/tag/v0.26.4

The kubevirt client-go has been updated to 0.28.0 and however the operator and the api are not upgraded due to this issue https://github.com/kubevirt/kubevirt/issues/3009 . once this issue is solved we can upgrade kubevirt to the same version as the client.

@moadqassem the fix PR has been merged, could you upgrade kubevirt when you have some free time? Thanks.


Idea for "chains" or "streams" of browsing

I have had a vague idea of an improvement upon the traditional browser history model for a little while, and when I came across doogie a moment ago from the HN link you posted, and saw how you implemented workspaces and page suspension, I thought about it some more, and I thought you might find the idea useful in your project.  Let me see if I can describe it clearly.
There are a few problems with the current browser history/session/tab model of browsing:
In real life, when reading a book or magazine, etc, if I want to stop reading it and come back to it later, I can mark my place and set it down.  The human ability for spatial memory and navigation makes it natural (for some people, at least) to find it again later.  In the meantime, to the extent I have physical room, it doesn't occupy resources.
In a browser, if I want to stop reading a page and come back to it later, I can bookmark the page, but that a) doesn't keep my place within the page, and b) doesn't keep the history associated with that browsing session, which is often valuable, as a session of browsing that follows links from one page to another may reach some dead ends which I may want to backtrack from.  I can also close the tab and try to find it with history search at a later time, but that's not very efficient, and doesn't generally preserve the history (unless I'm willing to continue digging through the history to find every previous page).  A third option is to leave the tab open, which preserves my place on the page and the history, but this means the tab continues to take up resources (which with some browsers, like Chrome, results in enormous memory usage).
So what I'd like to be able to do is close the tab, freeing up resources, but preserving the ability to pick up where I left off in that browsing session.  That way, if I had been, say, browsing Wikipedia articles about World War II, following links here and there, backtracking to earlier pages, following one subtopic to another, I could come back to my earlier session and resume where I left off.  Or if I had been searching Google about a particular topic, having to dig into several pages of search results, I wouldn't have to start that process from the beginning.
So I would like to propose a slightly different model of browsing.  I'll call it, for now, "chains."  Basically, it would work like this: when you close a tab, the tab's entire history is stored in the browser history.  The browser history dialog then has a "chains" view that displays not just pages visited but "chains", which can be expanded, tree-style, to show their history.  The user can then reopen a "chain" from any point in its history tree.
Chains should also be bookmarkable, with tags and comments, so that users can store ones that they know they want to resume later, rather than having to dig them out of the history.
It might not be so much to implement, because it would basically work like a browser's existing session-store functionality.  e.g. Firefox's sessionstore.js stores every window, every tab, and every tab's history.  If entries in that could be archived, bookmarked, and searched, it would basically be this feature.
I don't know of any browser that does this, so if you were to do it, it might be a unique feature you could tout.  :)  Thanks for reading.

I appreciate the thoughts. Couple of notes:

Some features I have considered that can help:

Suspension by default or lazy suspension based on idle timeout. This will allow you to have pages not eat up resources
Storage of navigation history (i.e. back and forward pieces of information) in workspaces...problem is CEF doesn't give everything and technically going back and forward use local cached state to get things like scroll position, form values, etc.
Easier/quicker workspace opening/closing

In addition, tags and other lookup mechanism for workspaces and/or their pages within could be helpful.

In general, you can get close to what you want now with workspaces and what I call "immutable browsing" which is to never just click on a link, but always ctrl+click to make it a new page. You can create a workspace, load up anything you want as deep as you want, and close the workspace which frees all resources. Re-opening the workspace goes back to where you left off (sans scroll position and navigation history because those have downsides/difficulties for dynamic web content).
I do need to document what I consider "immutable browsing" or maybe even make it easier with features (such as an opt-in to make regular clicks always open background children for example). But in general I think you can get what you need with the features that exist. But I am happy to add features that could help. Not sure I want to implement the concept of "chains" (I don't even have history implemented yet). But I do need to make workspaces easier/quicker to create, open, close, and search to facilitate this kind of browsing (what I term "contextual tree serialization" or like a mylyn for web browsers).

Thanks for the thoughts.
BTW, if I may: do you have any concerns that Google may deprecate the CEF in the future, similar to how Mozilla dumped XULrunner?  I'd hate for your project to have the rug yanked out from under it and all your hard work go to waste.

CEF is not a Google thing, it's maintained by a separate maintainer. That's where the real hard work is. I suppose if his work stopped, I'd shutter this browser or fork CEF myself. I'm not too concerned.
(Closing issue because it's become more of a discussion. Feel free to keep commenting, I'm just taking it off the open issues list.)


Feature request: Add the option to set id in elements when exporting as SVG

It'd be great to have this option, pretty much like Figma/Illustrator/etc do actually (exploiting the element name, usually).
The DOM of the SVG can be exploited much more easily by site/app that host them.
Is it something you might consider?

Do you mean adding element types to the svg as an id, e.g. Reactangle1, Rectangle2, Ellipse1 etc? This could be done quite easily, if we decide to.
If on the other hand you want a UI for people to name their elements manually, then that's probably not something we'll do (although we could put it inside "Stats for nerds" if people really wanted this).

Do you mean adding element types to the svg as an id, e.g. Reactangle1, Rectangle2, Ellipse1 etc? This could be done quite easily, if we decide to.
If on the other hand you want a UI for people to name their elements manually, then that's probably not something we'll do (although we could put it inside "Stats for nerds" if people really wanted this).

Hi @dwelle
That's great! Adding the automatic id, as you suggested, is already a very good compromise.
I understand the implication of additional UI elements, thus, I'd go with an always present property.
Honestly, I don't see issues about the size, I believe that the size of an id="Rectangle1" chunk is pretty forgettable if compared to the average size of a tipical rough element.
With this little add-on, an excalidraw document can become dynamic and interactive much more easily.

Hi @dwelle
That's great! Adding the automatic id, as you suggested, is already a very good compromise.
I understand the implication of additional UI elements, thus, I'd go with an always present property.
Honestly, I don't see issues about the size, I believe that the size of an id="Rectangle1" chunk is pretty forgettable if compared to the average size of a tipical rough element.
With this little add-on, an excalidraw document can become dynamic and interactive much more easily.

I agree this would be a useful feature. The ids in Exalidraw are more like guids than "friendly" names Rectangle1 and so on. Example below from clipboard.
{
  "id":"TnYBcnsIpQ3jcOB-yT8kR",
  "type":"rectangle",
  "x":280,
  "y":120,
  ...
}

It would be great if we could set the id manually in the property panel.

I would second this one. This will help us to animate things easily. it would also a be good if there was an ID for each group.

Also looking for this solution and reached this thread! + 1 from me too...

would be cool to have this feature supported from the library itself, but here I found an approach that worked for me, here you can assign whatever id you want, maybe even depending on the type of shape etc.
excalidrawElements.forEach(async (element) => {
                const convertedSVG = await exportToSvg({
                  elements: [element],
                  appState: {
                    ...appState,
                    exportBackground: false
                  },
                  exportPadding: -3,
                });

                convertedSVG.setAttribute('id', element.id.toString());

                setSvg([...(svg ? svg : []), convertedSVG]);
              });


CORS support?

I've seen many forum posts regarding being unable to call the API from browser clients due to default CORS configuration of the API. Would be great if this page addressed that issue and either provided instructions for how to configure/get around this or at least let people it is a limitation to consuming the API.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e9a91d22-bd16-a250-5e81-26aca73e970b
Version Independent ID: badfb9d5-8762-830c-7601-96473d941a84
Content: Consume web service - Azure Machine Learning Studio
Content Source: articles/machine-learning/studio/consume-web-services.md
Service: machine-learning
Sub-service: studio
GitHub Login: @xiaoharper
Microsoft Alias: amlstudiodocs

@krishorrocks Thank you for your feedback,  we will investigate it and get back to you soon.

@krishorrocks Hi, could you please share the forum thread you mentioned? Thank you.

@krishorrocks
We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.

maybe not the right way to post to a closed issue, but it belongs right here:
I'd like to access the ML web service from Node-Red, but always get this error:
{"error":{"code":"Unauthorized","message":"Request is unauthorized to access resource.","details":[{"code":"ScoreRequestUnauthorized","message":"Invalid credentials provided."}]}}
My key and endpoint are correct for 100%, when I use them in a node.js script, it works. So why the limit with Node-Red an CORS??


Which ports to open in Firewall

Before opening the issue, have you...?

[X] Searched for existing issues
[X] Looked through common issues
[X] Updated plugin to the latest version (if applicable)

Describe Your Problem
Which Ports are used by the Plugin?
I'm running homebridge via docker on a Synology DiskStation.
When I have the Firewall of the Diskstation activated the HomeApp doesn't get response by the TV.
When I deactivate the Firewall the TV is shown in the correct state and reacts.
Which Ports do I need to open in the Firewall to allow the communication between the HomeApp and the Plugin?
Logs
No response
If applicable, add screenshots to help explain your problem.
No response
Environment Information
- Plugin Version: v1.9.1
- Homebridge Version: 1.6.1
- Node.js version: v18.13.0
- NPM version: <!-- npm -v -->
- Operating System: Docker

This plugin does not open specific ports for communication. It uses the Smartthings REST API for getting the TV information.


RequestBodyInBytes is declared as non-nullable but can be null, causing compiler warnings

Issue: RequestBodyInBytes is declared as non-nullable but can be null, causing compiler warnings
Description: I’m encountering an issue with the ElasticsearchClientSettings where the RequestBodyInBytes property is declared as a non-nullable byte[], but it can actually be null in certain cases. For example, when calling DeleteAsync, the RequestBodyInBytes is null because there’s no request body.
ElasticsearchClientSettings configuration:
var settings = new ElasticsearchClientSettings(new Uri(elasticsearchOptions.Url))
                .CertificateFingerprint(fingerprint)
                .Authentication(new BasicAuthentication(elasticsearchOptions.Username, elasticsearchOptions.Password))
                .EnableDebugMode(cd =>
                {
                    var requestBody = string.Empty;

                    if (cd.RequestBodyInBytes != null && cd.RequestBodyInBytes.Length > 0)
                    {
                        requestBody = Encoding.Default.GetString(cd.RequestBodyInBytes);
                    }

                    logger.LogDebug("Debug info: {debugInfo}. Request: {request}", cd.DebugInformation, requestBody);
                })
                .PrettyJson();

            return new ElasticsearchClient(settings);

This part:
if (cd.RequestBodyInBytes != null && cd.RequestBodyInBytes.Length > 0)
{
    requestBody = Encoding.Default.GetString(cd.RequestBodyInBytes);
}

returns the warning "Expression is always true according to nullable reference types' annotations".
Is it possible to make this type nullable or don't assign null values?

Related to #72

I will be fixing this particular case in an upcoming PR.


Fix editor crash when converting sprite to 2D mesh

Fix #26527 - note, Its simple hotfix to avoid sudden editor crash, its not a solution for converting sprite with region to mesh..

Thanks!

Linking #23559 if similar change is needed in case new Clipper is integrated.


[Bug]: Number formatting changes on read-only text on a read-only widget

Is there an existing issue for this?

[X] I have searched the existing issues

Description
https://theappsmith.slack.com/archives/C04P60V0VQE/p1709731762264609
Steps To Reproduce
https://theappsmith.slack.com/archives/C04P60V0VQE/p1709731762264609
Public Sample App
No response
Environment
Deploy Preview
Severity
Low (Inconsistent UI/UX)
Issue video log
No response
Version
Cloud

Closing this as it does not have an appropriate label associated with a pod

This is related to current WDS changes on keyValue widget, hence reopening it for further investigation


thunderbird, thunderbird-bin: 78.10.1 -> 78.10.2 [Low security fixes]

Motivation for this change

Low security fixes
Other fixes and updates

https://www.thunderbird.net/en-US/thunderbird/78.10.2/releasenotes/
https://www.mozilla.org/en-US/security/advisories/mfsa2021-22/
Things done

[X] 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)
[ ] 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.

BTW, the issue with forgetting to protect secret PGP keys... feels significant to me.


Add support for mounting in a user's directory

This will support persistent workspace storage for the user.

Following up https://github.com/tfoote/nps_me4823/issues/12
It looks like s3fs is a decent approach to improve the situation. It can use file based access and does the immediate syncs.
Note in experimenting with it new buckets take a few hours before all endpoints are setup: https://github.com/s3fs-fuse/s3fs-fuse/issues/1452#issuecomment-760023591 if we automatically create buckets it may be important to fully specify the endpoints.


jdk(head) tar.gz's are named OpenJDK- with no version number

The update to the tar ball filename regex did not account for jdk(head) that does not have NN in the OpenJDK-.....tar.gz filename.

Test using this pr: https://ci.adoptopenjdk.net/job/build-scripts/job/release/job/refactor_openjdk_release_tool/6107/


[Feature request] Support for local images

Hi,
we would like to scan local images as part of our build process, before we push them.
Currently the task has no option to enable mounting of the local docker socket to scan local images.

You can already do this:
Just set docker to false like:
    - task: trivy@1
      inputs:
        docker: false
        image: $(imageId)

Hey,
thanks for the comment.
I should have clarified that we cannot install binaries on the agent machines and rely on running trivy with its docker image.


disable reqwest default-tls

Hi, this allows not pulling the hyper-tls and its openssl-sys dependency and use rustls instead by downstream crates.
Thanks

hi @jxs thanks for this!
do you have a link to any description of the problem? I know lighthouse had some issue here so maybe you can just link to a relevant PR?

Hi Alex.
We are currently trying to reduce Lighthouse's compilation time, hyper-tls and namely openssl-sys (due to static linking of openssl) is one of the biggest bottlenecks, one can confirm by running cargo build --release --timings.
After merging https://github.com/sigp/lighthouse/pull/4650 and aligning reqwest's version we can now switch to rustls and not depend on
hyper-tls. But beacon-api-client depends on hyper-tls by default and in a non modifiable way which makes all downstream crates still need to fetch and compile hyper-tls.
This PR fixes that by allowing downstream crates to chose their tls flavour and for Lighthouse not pull hyper-tls and openssl-sys while still offering it as the default.

makes sense! thanks for the explanation


Fix signature incompatibility.

See #1.

Fixed. https://github.com/tareqas/psym/commit/c799596bb5e96fe0c8900f97a52e738f5af6c6ce


Tab completion overwrites '->' in C++ file

Thank you for the beautiful plugin. Thanks to this, now I'm moving to neovim's in-built lsp

As shown above, you can see while completing the first item(followed by '.') it works beautifully. However, for the second completion(followed by '->'), on selecting an item it overwrites '->'.
Please let me know if I need to provide any other information.

Thank you.
Yes. It should be fixed by #186

Could you test with the latest master?
I don't know it was fixed but I hope to know the result.

The issue of overwriting '->' is gone. But  I see a new issue. As, I continue typing, the popup is not updated and I am not getting the best match.

Thank you for your confirmation.
It's weird.
Could you provide simple reproducible cpp file?

I am seeing this issue in a regular file(without lsp)

It's really weird... I can't reproduce it.
https://user-images.githubusercontent.com/629908/108740722-51df1880-7579-11eb-811a-2b525280d14c.mp4

May be there is something wrong with my settings or some other plugin. Any idea how to debug, where to start?

If you can, I want to get the minimal config based on https://github.com/hrsh7th/nvim-compe/blob/master/misc/minimal.vim .

With a minimalist config, I could not reproduce the issue.
However, with latest update, the issue is gone.

Good to hear. Thank you for your confirmation.

The issue is gone for non-lsp completion(e.g. path completion).
Unfortunately the issue is still there in cpp file. I'll find out more and probably create a new issue.


Switch to puppeteer

https://github.com/GoogleChrome/puppeteer seems to be much better maintained and stable than PhantomJS

We already have experimental support for headless chrome itself... I don't see much benefit from using puppeteer then or am I missing something?

Oh, I did not know that. Is there any documentation regarding that?

it's right in the README https://github.com/keathley/wallaby#experimental-driver-support

At some point we may try to support the underlying DevTools api. But in true Google fashion its specific only to chrome and isn't apart of any standard so we can't use it for all browsers. Puppeteer seems like a fine library if you're using JS but isn't very useful for our purposes atm.


Fix import declaration bug - Use babel-eslint

Update - How to fix per project
For each project you can use this config but extend it:
{
  "extends": "./node_modules/eslint-config/.eslintrc",
  "parser": "babel-eslint"
}

Also don't forget to npm install babel-eslint --save-dev.

Lints fine without these (except for the Atom plugin, which seems unstable).

Closing for now. Read description for further information.


Relicense to MIT

@lukaszgryglicki and @mkdolan,
I've had a request from @sgoggins to relicense Facade as MIT so it can be more easily packaged into Augur.  You've both made commits.  Are you both ok with this?

+1 yes I am

+1

Thank you!  I'll relicense on the next release.
cc/ @sgoggins


WIP: Improve versioning

The goal of this PR us to decouple versioning from the CI system.
It uses Nerdbank.GitVersioning to automatically generate a version number  by combining a base version set in a config file with the number if commits since the last change to the base version file.
That makes version numbers predictable and reproducible.
I’ll also provide a document that describes how a release would work if we decide to follow this path.
Happy to get feedback on this!

Microsoft published some new guidance on library versioning at https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/versioning. This confirms what @ericnewton76 proposed in #343:

✔ CONSIDER only including a major version in the AssemblyVersion.

So I'll gladly change my opinion here and adapt the config so that AssemblyVersion is MAJOR.0.0.0.

@jpreese @rkoeninger @ericnewton76 I'd consider this ready for review now.

Looks great. This will go a long ways towards better package handling and less issues with inclusion of additional libraries that might base themselves on System.IO.Abstractions and inclusion into your application product that uses System.IO.Abstractions.

OK, here we go - let's see how this goes :)


Fabric channel support

I have verified that as of v0.13.0 I can use multiple fabric channels with custom smart contracts. Specifying the channel and chaincode in the location field of an invoke or query request works as expected.


Sep 6 10 10 merge

Description

TODO: describe what this change does

Context

TODO: describe why this change was made

Testing

./gradlew test
TODO: replace with any additional test steps

Known limitations
TODO: describe any limitations or replace with N/A

g


Fix currency not being formatted

When currency is enabled,
value.replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, "$1,");
does not work because the value is already modified by
value = '' + value + '';
Sorry for opening a new pull request, I have no idea why GitHub decided to closed my PR when I force push.

Thank you!


Release windows amd64 binary

Would you please release a windows amd64 binary too?

Hey @gitfool , I released a new version (v0.1.4) with windows binary, please test it and let me know if everything is okay. I don't really have a windows machine available right now.

@vetyy thanks a lot, it worked!
Notes:

I had to manually drop in the tarball since plugin install is broken on windows
tarball is not structured correctly; I had to move helmecr.exe to bin/helmecr.exe
... it looks like all 0.1.4 tarballs are not structured correctly (whereas all 0.1.3 tarballs are)
version was not bumped to 0.1.4 in the plugin.yaml (to match release)

@vetyy sorry to bother you but would you be able to fix the above issues and make another release? 🙏

sorry @gitfool I was really busy this week, I fixed existing release of 0.1.4 can you test it now please?

@vetyy LGTM; thanks!


Language is not changed

I did what was in the locale that was to create a file called lang.yml in the LuckPerms folder but when restarting the server does not change the language

Any errors in console?
Are you sure you named the file correctly?


shape extruded from points causes infinite render #V2

Expected Behavior
extrude a cuboid from points
Actual Behavior
render hangs indefinitely
Steps to Reproduce the Problem

packages/web
npm run dev
load sample code

pausing worker in debug sees code stuck most of the time in
module:modeling/geometry/poly3.measureBoundingBox
Specifications
This also happens on some more complex lines where it is harder to reason why,
so I am hoping that solving this issue will help with those more complex shapes too.
sample stack:
module:modeling/math/vec3.max
module:modeling/geometry/poly3.measureBoundingBox
module:modeling/geometry/poly3.measureBoundingSphere
_splitByPlane
splitByPlane
addPolygonTreeNodes

code that works
function main(params){
  var points = [[1,1],[5,1],[5,5],[1,5]];
  points = geometry.geom2.fromPoints(points);
  return jscad.extrusions.extrudeLinear({height:1},points);
}

add a point to points
  var points = [[1,1],[5,1],[5,5],[1,5],[1,1]];

and it hangs

Version: V2
Platform: all
Environment: Brave, Firefox

@hrgdavor thanks
By definition, 2D geometry cannot overlap. So, that closing end point [1,1] is going to cause issues later. This definition allows for the 2D geometry to support holes.
You can use the same points for 2D paths, without issues. And, if you look at the 2D path then the last point is gone, and the isClosed flag is ‘true’.
Does that help?

ok, this one is easy to fix, so I'll have to find another example where I have same issue and the last and first is not same .. (I will check there if maybe I have same point twice or similar issue).
I also had issue if I run the points in oposite direction array.reverse() ... the extrusion would have walls inverted suvh that it would render like it is hollow (faces in wrong direction, so the dissapear while rotating).
Basically I need one of two

function that would get me from list of points to a good extrusion
(one would cleanup my path so I can get expected extrusion, delete last point if it is identical to last)

a guide what to avoid to not break the extrusion
(constraints to know when generating 2d path to extrude so I know to avoid cases that will cause issues)

The issues I am having are from porting code from V1 to V2, as I am looking to switch to V2 for ongoing projects, but I have still issues to overcome.

here is an example that breaks in V2 and works in V1 and first and last point are not same.
shape without arc works
[[-10,0],[-10,0.8],[0,1.5],[8,5],[9,5],[9,0]]

......
.....
shape with arc breaks in V2
[[-10,0],[-10,0.8],[0,1.5],[0,1.5],[0.83,2.24],[1.73,2.91],[2.68,3.49],[3.68,3.98],[4.72,4.38],[5.79,4.69],[6.89,4.89],[8,5],[8,5],[9,5],[9,0]]

it looks like thins in V1

Ok. The set of points are very different. How are you creating those points?

Ok, I found the issue. Not sure why I did not notice it immediately, but I have two instances of repeating same point: close to the begining [0,1.5] and [8,5] close to end
the resulting arc id added by a utility function. It was duplicating the first and last point of the section when it was adding the arc.

Screenshot  above shows debug output of my eperimental 2D shape utility.
I am experimenting with my own utility for doing 2D shapes for extrusion (I tend do extrusions often as it simplifies some shapes that would require multiple CAG ops).
Yellow line is original line, red line is after modifier like arc are executed on sections, and blue cylinders are final set of points.
The conclusion is for both of my cases that do not work it is a simple mistake of having same point repeated due to bugs in code generating the line before extruding. This is simple to avoid and I can easily add this to my function that does the steps to check and remove such points.
Well at lest if somebody else has this problem this ticket will be useful :)

The check of first and last points would be easy. What do you think?

Yes check of first and last point would help in cases like the original example I gave me and is not expensive to add.
Hm, there is also a question of precision. I was able to remove duplicates in points I generate after reducing them to 2 decimal points, though this issue is specific to me.
After that said, I wonder: What is recommended precision for openjscad?

@hrgdavor there was an enhancement to the geom2.fromPoints() function to allow the same start and end points.
If this is resolved then please close this issue.

After that said, I wonder: What is recommended precision for openjscad?
It's not really about precision, but scale of the shapes due to the use of floating point numbers. The booleans work best from 1~200 units (mm for 3D printers).

cool, works now with the same start and end points.


Added more versions of DiscordChatExporter.GUI

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Can I only submit one new manifest at a time? That'd be much more work in this case :/

Yes, as we must validate every single installer for a PR to pass, only one package version per manifest is supported.

Yes, as we must validate every single installer for a PR to pass, only one package version per manifest is supported.

Okay, thanks, I will work on that then


Improvising Footer

Solves Issue #142
Description: Styled footer.
Checklist

[x] I've followed the Contributing guidelines provided in the repository.
[x] I've made the changes which were demanded in the linked issue.
[x] I've tested my code on a Chromium based browser.
[x] I've tested my code on Mozilla Firefox.
[x] My code gave a clean console on debugging. (no warnings/errors)

On 768 x 1024 iPad

@hariom1625 @ankiiitraj heart emoji in Footer is white.


feature：support disable_restore

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

把这个参数改成 0 可以实现一样的效果：
target_redis_proto_max_bulk_len=0


add treeview-menu-extender plugin

Duplicate, I was needing that the other day and did a Save As, also as far as I recall with Rename you can do the same as Move to by specifying a different path when doing the rename.

Of course you can duplicate a file by using Save As. But, I think it would be easier if there is a menu we can click in the treeview.
Yes, Move To uses Rename function under the hood, because it achieves the same thing. However, Rename only displays filename and not everyone would think that they can move a file using Rename by specifying a different path.

This plugin does not add a significant functional to Lite-XL, but IMO it gives better UX in terms of file operation.

Was testing before a merge duplicate worked perfectly but got this error when trying a "Move To"
Fri Mar  4 15:10:31 2022 [ERROR] ~/.config/lite-xl/plugins/treeview-extender.lua:111: attempt to index a nil value (field 'hovered_item') at /usr/share/lite-xl/core/init.lua:1366
stack traceback:
~/.config/lite-xl/plugins/treeview-extender.lua:111: in field 'predicate'
/usr/share/lite-xl/core/contextmenu.lua:67: in function 'core.contextmenu.show'
/usr/share/lite-xl/core/contextmenu.lua:185: in function 'core.contextmenu.on_mouse_pressed'
/usr/share/lite-xl/plugins/treeview.lua:444: in function 'core.rootview.on_view_mouse_pressed'
/usr/share/lite-xl/core/rootview.lua:137: in function 'core.rootview.on_mouse_pressed'
/usr/share/lite-xl/core/init.lua:1467: in upvalue 'on_event'
/usr/share/lite-xl/plugins/macro.lua:19: in function 'core.on_event'
[C]: in function 'xpcall'
/usr/share/lite-xl/core/init.lua:1365: in function 'core.try'
/usr/share/lite-xl/core/init.lua:1525: in function 'core.step'
/usr/share/lite-xl/core/init.lua:1602: in function 'core.run'
(...tail calls...)
[string "local core..."]:9: in function <[string "local core..."]:2>
[C]: in function 'xpcall'
[string "local core..."]:2: in main chunk

The error seems to happen when the treeview lost focus, thus the
hovered_item becomes null. I'll see what I can do to fix it.
On Sat, Mar 5, 2022, 02:14 Jefferson González @.***>
wrote:

Was testing before a merge duplicate worked perfectly but got this error
when trying a "Move To"
Fri Mar  4 15:10:31 2022 [ERROR] ~/.config/lite-xl/plugins/treeview-extender.lua:111: attempt to index a nil value (field 'hovered_item') at /usr/share/lite-xl/core/init.lua:1366
stack traceback:
~/.config/lite-xl/plugins/treeview-extender.lua:111: in field 'predicate'
/usr/share/lite-xl/core/contextmenu.lua:67: in function 'core.contextmenu.show'
/usr/share/lite-xl/core/contextmenu.lua:185: in function 'core.contextmenu.on_mouse_pressed'
/usr/share/lite-xl/plugins/treeview.lua:444: in function 'core.rootview.on_view_mouse_pressed'
/usr/share/lite-xl/core/rootview.lua:137: in function 'core.rootview.on_mouse_pressed'
/usr/share/lite-xl/core/init.lua:1467: in upvalue 'on_event'
/usr/share/lite-xl/plugins/macro.lua:19: in function 'core.on_event'
[C]: in function 'xpcall'
/usr/share/lite-xl/core/init.lua:1365: in function 'core.try'
/usr/share/lite-xl/core/init.lua:1525: in function 'core.step'
/usr/share/lite-xl/core/init.lua:1602: in function 'core.run'
(...tail calls...)
[string "local core..."]:9: in function <[string "local core..."]:2>
[C]: in function 'xpcall'
[string "local core..."]:2: in main chunk
—
Reply to this email directly, view it on GitHub
https://github.com/lite-xl/lite-xl-plugins/pull/36#issuecomment-1059443521,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABAHCRVTJDS72XR7T75DPOLU6JOK3ANCNFSM5O2KE6MQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

@jgmdev I have updated the plugin, can you please check it again?

Sorry took me so long to try latest changes, seems to be working nicely even on master branch of lite-xl, merging.


Copying and mounting secret config files

I am using Kamal 2 to deploy a background job. The job needs to connect to a Google Cloud SQL instance. I am running the cloud proxy as an accessory service like below:
accessories:
  db:
    image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:latest
    cmd: "--credentials-file /.gcloud/sql-proxy-key.json [project-id]:europe-west3:instance-1 --address <IP_ADDRESS> --port 5432"
    host: [host-ip]
    port: "<IP_ADDRESS>:5432:5432"

This fails because the /.gcloud/sql-proxy-key.json doesn't exist in the container.
How would I copy that file (and other secret files) from my machine onto the host during setup or deploy? Does kamal do that or do I have to push the files onto the host outside kamal?

@cosminonea You can use "files" config, something like:
accessories:
  db:
    files:
      - path-to-file-in-your-repo:/.gcloud/sql-proxy-key.json:ro

See https://kamal-deploy.org/docs/configuration/accessories/#copying-files
BTW, the better place for asking such questions is https://github.com/basecamp/kamal/discussions

Thanks @morgoth
I read the documentation but these are secret files though, they won't be in the repo. But I guess I can put them in the repo as a pre-deployment step in a Github Action, is this how one would do it?

By default kamal builds image from the git commited files only, so you would need to change the build context to make it work this way. https://kamal-deploy.org/docs/configuration/builder-examples/#using-a-different-dockerfile-or-context-when-building

And also, you wouldn't want the secret files to be bundled into the image.

That's true.
Other solution would be to copy the file to the host server (one time) and use "volumes" to mount it to the running docker image.
Anyway, can you close the issue, as it's not a bug?


[Revise subclass] Malaria; Melanoma

Mondo term (ID and Label)
MONDO:0005105 Melanoma
MONDO:0005136 Malaria
Suggested revision and reasons
While working on the non-human animal branch, it was noted that melanoma is an inferred subclass of 'endocrine system' and 'endocrine gland' and I am not sure if that relationship is correct.
Malaria is an inferred subclass of 'alimentary part of gastrointestinal system' and I am not sure if this relationship is correct.
Your nano-attribution (ORCID)
https://orcid.org/0000-0002-5002-8648

@katiermullen

Malaria is an inferred subclass of 'alimentary part of gastrointestinal system' and I am not sure if this relationship is correct.

I believe this is because of the subclass Of axiom:
'disease has location' some hepatocyte
which seems accurate according to this paper:
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4783171/
We can remove this axiom if it is causing issues. When you run the reasoner, can you quick the question mark to explain the inference, and we can confirm this is correct?

re: melanonma, I excluded the parent 'neuroendocrine neoplasm'


The boolean hideFirstLastPages doesn't hide the First or Last Pages

I believe this issue lies within the functions that check for page visibility:
  isFirstPageVisible(has_previous_page) {
    const { hideDisabled, hideNavigation, hideFirstLastPages } = this.props;
    return !hideNavigation && !hideFirstLastPages && !(hideDisabled && !has_previous_page);
  }

The && should be ||

thank you for creating issues, and sry for late response. PR merged


Option to output in colour when piped

Currently, when the output is piped (whether to an application or file), it seems as though --color is ignored. We have a script running in CI that runs robotidy, and captures the output. It would be nice if we could get it to work in colour.
For example, this is in colour:
robotidy --check --diff --color .

But this is not (replace type with cat if not using windows):
robotidy --check --diff --color . > output.txt
type output.txt

It looks like this is how to do it using rich: https://rich.readthedocs.io/en/stable/console.html#interactive-mode

Similar issue with mypy: https://github.com/python/mypy/issues/7771

Sorry for the late reply - I've actually read the issue right away and I keep coming back to it but I wasn't sure how to approach it. By including color you mean color codes I use to print to the cli?
In this case following command:
robotidy --check --diff --color . > output.txt

would output something akin to:
[green] +++ 12
Some line of code
[/green]


Remove administrative roles and users from examples and e2e

This PR removes roles and users associated with administering examples, in favor of the single administration point, Mr. admin.
@bsrikan , will proceed at your signal.  This does change e2e folder as well as examples.

@grechaw with this implementation:
1> I think it forces e2e to switch over to multiproject like settings. I get an error:
Unable to insert content at URI: /ext/Northwind-0.0.1-source-2.xqy; cause: Role does not exist
2> Is there a way to deploy races, for example from parent dir rather than examples dir
3> (Not related to this PR) Do run tasks always run pointing to localhost or can it be configured to point to whatever mlHost is pointed to in gradle.properties? I was trying to "run" from my mac with host pointed to my linux workstation and got an exception as so:
Connection to http://localhost:8203 refused 75% > :entity-services-examples:runExamplePerson
Note that port 8203 does exist in my workstation

Your extension may require a change.
#1 I think is because the user/role in src/main/resources/application.properties no longer exists.
#2 the examples will only deploy from the examples directory.  Teasing apart the project layers was important to get some consistency.   Is it needed for some reason to deploy examples from parent?  I put the gradle wrapper into the subproject in order to make that more obvious.
#3 Is this during use of DMSDK?  Data Movement actually does use MarkLogic's configured hostname, which is generally not 'localhost'.  What I have to do (and if you ever set up a cluster you'll be familiar with this need) is to edit your hosts file to add an alias for that hostname to point to <IP_ADDRESS>

edit your hosts file to add an alias for that hostname to point to <IP_ADDRESS>

Or rename your MarkLogic host localhost.

Or rename your MarkLogic host localhost.

Mind blown for the day :+1:

Examples also has adam in application.properties which no longer exists, but I dont get any error there.

I was under the impression that we are changing implementation so folks can run examples from parent dir. Guess we did this so they dont run into auth error while running mldeploy from parent -- which is achieved now. I am good as long as we make it clear to people trying out examples that they have to do so from "examples" dir

If we expect everybody who tries this out, to have marklogic installed in their laptop then there is no problem. If there are people who would have marklogic installed in a remote machine and they try running examples from local would we ask them to rename Marklogic host to localhost

OK. So (1) worked after I took out nwind-admin from application.properties in e2e.

The examples work when running against another machine too, except for code generation.  code generation uses xdmp:save, so it saves things on the server rather than the client machine.  This doesn't affect running, but does affect the getCode gradle task.
So it's just that the hostname that marklogic has must be addressable from the client, either via hosts file, DNS, or by naming the MarkLogic server localhost (on localhost)

Good to merge to develop


feat: Support \Braket, \set, and \Set

This PR is a possible replacement for #3171, building on @ronkok's code to address my comment/suggestion to try use a temporary macro definition of |.
What is the previous behavior before this PR?
Support for \bra, \ket, \braket, \Bra, \Ket from braket package.
What is the new behavior after this PR?
Complete braket package support by adding \Braket, \Set, \set.
Fixes #3161.
Comparison to #3171
This approach turned out not to be a lot shorter than #3171, but I do think it's better behaved, as it more closely matches the LaTeX implementation.  For example, consider the following code:
\def\foo{|}
\Set{x \foo y}

LaTeX and this PR will treat \foo just like |, whereas #3171 doesn't expand \foo in its processing, so it won't notice the |.
Another example:
\Set{x \| y}

LaTeX and this PR will not touch the \| because that's a completely different token than |.  #3171 does a regular expression substitution on the string, so it will modify \|, and ends up rendering something as  which is confusing.
I also conjecture that this code is more efficient. #3171 consumes the tokens, rewrites them via a substitution, and converts back them to a string, only for them to be parsed again.
But I don't want to assume that this is a better approach without review, so I didn't push directly to #3171. The commits include all of #3171, so @ronkok should be correctly indicated as a coauthor.
Dependency
To pass Flow type checking, this PR assumes some small functionality I added in #2952 for undefining macros.  So ideally that PR would be reviewed and merged first.  Alternatively, I could split that functionality off into a separate PR (or part of this one). #2952 now merged, so this isn't an issue.
Demo
\Braket{\frac{a}{b} | y | z} \\
\Set{\frac{a}{b} | y | z} \\
\set{\frac{a}{b} | y | z} \\

As written in braket.sty, "use the vertical bar character "|" ...  In \Braket these vertical lines will expand to match the arguments, and in \Set [and \set] the first vertical will expand."

In coming up with my \| bad example, I noticed that both || and \| are handled specially within \Braket and \Set.  I've implemented those as well.
Also I found that the spacing around braces and | was a bit off compared to braket.sty.  They should now be aligned.

I agree that this is a better approach than PR#3171. I may not do a detailed review for a few days yet, but I will get there eventually.

@ylemkimon Thank you for reviewing PR #2952. To lighten the burden on you, I'll review this PR as soon as PR #2952 lands.

OK, #2952 is now merged into main which is merged into here, so this PR (after squashing) should only involve Braket/set/Set-specific changes — ready for review.

Whoops, looks like this got approved and then never merged. Merging after I double-check everything.


Creating integration from twitter example to salesforce upsert fails

When running e2e tests in ipaas-ui, we get following error

and in the ipaas-rest log I see:
Principal is: org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken@42e08d3b: Principal: 0a0b1b24-77c6-4822-8623-b26ca515d8c1; Credentials: [PROTECTED]; Authenticated: true; Details: org.keycloak.adapters.springsecurity.account.SimpleKeycloakAccount@3ac86e84; Not granted any authorities
Downloading Maven GAV: com.redhat.ipaas:twitter-mention-connector:0.3.3
Downloading Maven GAV: com.redhat.ipaas:salesforce-create-opportunity-connector:0.3.3
2017-04-03 11:57:01.628  WARN [-,b253e472ab99898f,b253e472ab99898f,false] 1 --- [ XNIO-3 task-17] o.a.c.c.m.DefaultMavenArtifactProvider   : Error during add components from artifact com.redhat.ipaas:salesforce-create-opportunity-connector:0.3.3 due Error grabbing Grapes -- [unresolved dependency: com.redhat.ipaas#salesforce-create-opportunity-connector;0.3.3: not found]

java.lang.RuntimeException: Error grabbing Grapes -- [unresolved dependency: com.redhat.ipaas#salesforce-create-opportunity-connector;0.3.3: not found]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_111]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_111]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_111]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_111]
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) ~[groovy-2.4.9.jar!/:2.4.9]
	at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77) ~[groovy-2.4.9.jar!/:2.4.9]
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84) ~[groovy-2.4.9.jar!/:2.4.9]
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) ~[groovy-2.4.9.jar!/:2.4.9]
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) ~[groovy-2.4.9.jar!/:2.4.9]
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) ~[groovy-2.4.9.jar!/:2.4.9]
at groovy.grape.GrapeIvy.getDependencies(GrapeIvy.groovy:424) ~[groovy-2.4.9.jar!/:2.4.9]

Once, when I tried to click "Publish" button again, then it passed.

We 'build' the project and as one of steps the camel connectors are pulled down from maven using Grapes. It looks like this is subject to external resources not (always) being available.
Two comments:

In the async implementation we would log the error and then try again in a minutes time, so it could get resolved if it's just a temporary issue
We should make sure we have an integration test for each for the connectors to make sure they can be downloaded and we should collect the response times. Maybe we also need to make sure these connectors get cached in the local .m2 repo so it's more likely to get downloaded quickly.

Leaving this open so we discuss this some more.

@KurtStam do you have any estimate on how long it may take us to create integration in average?
UX team would like to know this for https://github.com/redhat-ipaas/ipaas-ui/issues/373.
They are considering some options to display progress when user clicks on publish integration.

@jludvice From what I've seen it's around 15 seconds or so. But it depends on the workload and availability of things like GitHub and OpenShift. If things fail, we will write a message into the integration (statusMessage) and try again periodically (every minute). So let's say if you're github creds are wrong (or GitHub is offline) then it should say in that message. You have then time to fix them, and it will retry. So it can take very much longer in situations like these. The UI can subscribe to update events on the integration to show updates to the statusMessage and currentStatus.

For some reason this isn't working for me either.. I can't create an integration at all since the last demo I did lol.. I must be doing something wrong. Just keep getting back a 500 internal server error. Tried both 'save' and 'publish' with different connection types to no avail.

The 500 error is due to a problem running the OpenShift build (see https://github.com/redhat-ipaas/ipaas-rest/issues/297). However I don't get back an error dialog except when I press publish a second time. then the error dialog appears + a second publish is triggered. Seems like a refresh issue here for the error.


Fix "enter" key in Firefox + Markdown mode

When using Firefox and writing something in Markdown mode, our current version of the editor has this weird issue where hitting Enter doesn't trigger a newline immediately. You have to type a second key to trigger the cursor to move down a line. There's a corresponding report on meta.SE.
I could narrow down that this behavior was introduced with this commit. When digging deeper, I could figure out that prosemirror-view introduces this behavior with all versions >= 1.17.0. Version 1.16.5 doesn't have this issue.
I don't know what precisely is causing this problem. The changes in prosemirror-view don't look jarring and I couldn't find any traces that our own usage of any of the changed functions could be triggering this. For now it might be best to roll back to the last stable version and investigate what's going on.
Reproducing the issue
The issue is somewhat sneaky. It's only an Enter hit at the end of a document that doesn't move the cursor properly immediately. If you put your cursor into the middle of the document and hit Enter it works just fine.
Update
This is certainly an issue with prosemirror-view itself. I was able to reproduce this with Firefox on the example editor on the prosemirror.net front page. If you go there, empty the editor, select "type" - "code block" and start typing, you'll see the same issue. I filed a bug there.

Thanks for looking into this! prosemirror-view just landed an update that fixes the bug you reported, so I've updated the dependency in main.