namespace isolation

Describe the bug
It appears that labelgroups with the same name which exist in separate namespaces influence each other
To Reproduce
Create two labelgroups with same name in separate namespaces and create different loads in each.
Use susqltop to monitor energy.
Energy values for both namespaces are similar (not quite identical)
Stop one of the energy loads in one namespace and watch all values drop...
Environment (please complete the following information):

OpenShift 4.14

On second thought, this is not bad. In fact it is probably working correctly.
Although a labelgroup exists in a namespace, a labelgroups targets are any workload that matches the susql labels, regardless of namespace.  Hence labelgroups that share susql labels would both gain energy data if they have matching susql labels.


Ensure all required master data fields are present and populated for Charge Information Request (D18) (Feature-AC4d)

Notes:
Input validation on the following fields. Be aware that some of them might be caught by the schema validation, and thus should probably not be covered in the input validation as well...
Null or empty checks of all the fields that are allowed set as 0:1 in schema, but are required for Charge Information requests:

[x] - Name https://github.com/Energinet-DataHub/geh-charges/pull/1437
[x] - Description https://github.com/Energinet-DataHub/geh-charges/pull/1437
[x] - Resolution https://github.com/Energinet-DataHub/geh-charges/pull/1439

Content validation

[x] * Owner => Length 13-16 https://github.com/Energinet-DataHub/geh-charges/pull/1444
[x] * Type => Valid Enum check https://github.com/Energinet-DataHub/geh-charges/blob/main/source/GreenEnergyHub.Charges/source/GreenEnergyHub.Charges.Domain/Dtos/ChargeCommands/Validation/InputValidation/ValidationRules/ChargeTypeIsKnownValidationRule.cs
[x] * Charge Id => Length Max 10 https://github.com/Energinet-DataHub/geh-charges/blob/main/source/GreenEnergyHub.Charges/source/GreenEnergyHub.Charges.Domain/Dtos/ChargeCommands/Validation/InputValidation/ValidationRules/ChargeIdLengthValidationRule.cs
[x] * Name => Length limit 132 https://github.com/Energinet-DataHub/geh-charges/pull/1438
[x] * Description => Max 2048 Length VR.447 https://github.com/Energinet-DataHub/geh-charges/blob/main/source/GreenEnergyHub.Charges/source/GreenEnergyHub.Charges.Domain/Dtos/ChargeCommands/Validation/InputValidation/ValidationRules/ChargeDescriptionHasMaximumLengthRule.cs
[x] * VAT Classification => value provided => not unknown at this point https://github.com/Energinet-DataHub/geh-charges/blob/main/source/GreenEnergyHub.Charges/source/GreenEnergyHub.Charges.Domain/Dtos/ChargeCommands/Validation/InputValidation/ValidationRules/VatClassificationValidationRule.cs
[x] * Transparent Invoicing => value provided => not unknown at this point https://github.com/Energinet-DataHub/geh-charges/pull/1445
[x] * Tax Indicator => value provided => not unknown at this point https://github.com/Energinet-DataHub/geh-charges/pull/1446
[x] * Termination Date => == effective date

Acceptance criteria:

[ ] Async validation documentation is updated with all error codes listed above

[https://app.zenhub.com/files/34546524[https://app.zenhub.com/files/345465244/93a569b6-c5ee-40d2-a19b-3f3ac7431f59/download](https://app.zenhub.com/files/345465244/93a569b6-c5ee-40d2-a19b-3f3ac7431f59/download)4/41ce9147-a754-4636-b81d-765c4b33ba55/download](https://app.zenhub.com/files/345465244/41ce9147-a754-4636-b81d-765c4b33ba55/download)

Test environment B-002, U-001
Test finish
[https://app.zenhub.com/files/34546524[https://app.zenhub.com/files/345465244/bb4609d5-0952-45d7-a3aa-5ee84b740a32/download](https://app.zenhub.com/files/345465244/bb4609d5-0952-45d7-a3aa-5ee84b740a32/download)4/2287d89a-0286-4b89-abae-2200f368a55d/download](https://app.zenhub.com/files/345465244/2287d89a-0286-4b89-abae-2200f368a55d/download)


mat-form-field should support mat-radio, mat-radio-group and mat-checkbox

Bug, feature request, or proposal:
Please add support for mat-radio, mat-radio-group  and mat-checkbox in mat-form-field.
What is the expected behavior?
mat-radio and mat-radio-group should work inside mat-form-field  so that forms contains such controls have same formatting and error handling.
What is the current behavior?
It throws
ERROR Error: mat-form-field must contain a MatFormFieldControl.
    at getMatFormFieldMissingControlError

What are the steps to reproduce?
<mat-form-field >
      <mat-radio-group [formControlName]="id">
        <mat-radio-button *ngFor="let option of options" [value]="option.id">{{option.text}}</mat-radio-button>
      </mat-radio-group>
    </mat-form-field>

What is the use-case or motivation for changing an existing behavior?
So that the forms containing mat-radio and mat-radio-group and other controls have consistent formatting and error handling.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 7.0.0-beta.7
Material 7.0.0-beta.2

See #8662.

Duplicate of #8662

@mjamin I went through the other issue and I still get the same error.  What is the workaround for this?
@naveedahmed1 did the solution on #8662 help you to find a solution. If yes please share it , cause I couldn't make much sense out it. An ELI5 would be awesome. Thanks in advance.


Veritas analytics rules

Required items, please complete
Change(s):
Added Analytic Rules for Veritas NetBackup product. These rules includes many login failures detection and many anomalies being generated detection.
Reason for Change(s):
Analytic rules for Veritas NetBackup product.
Version Updated:
V1
Testing Completed:
Yes
Checked that the validations are passing and have addressed any issues that are present:
Yes

Hello @swapnildombaleveritas, I went through the PR but I think some content is missing from the PR. The following folder contains images of playbook as well.
So does this solution have Playbook as well, If yes please add it to the solution folder. And move all the images in a folder named as images.
Please repackage the solution using V3 tool, guidance to V3 tool https://github.com/Azure/Azure-Sentinel/blob/master/Tools/Create-Azure-Sentinel-Solution/V3/README.md

Hello @swapnildombaleveritas, I went through the PR but I think some content is missing from the PR. The following folder contains images of playbook as well. So does this solution have Playbook as well, If yes please add it to the solution folder. And move all the images in a folder named as images. Please repackage the solution using V3 tool, guidance to V3 tool https://github.com/Azure/Azure-Sentinel/blob/master/Tools/Create-Azure-Sentinel-Solution/V3/README.md

We don't have a playbook yet and that's not a goal for this activity at this time

I can see images for logic app designer.

Hello @swapnildombaleveritas, Please respond to the above comments.

Hello @swapnildombaleveritas, Thank you for committing the requested changes. Will investigate this and update you about the same before 4 October, 2023.

Please repackage the solution after making these above changes.

Please add a custom table named as ' NetBackupAlerts_CL ' in path https://github.com/Azure/Azure-Sentinel/tree/master/.script/tests/KqlvalidationsTests/CustomTables
You can refer any table from the table for more clarification.
Thanks.

Hello @swapnildombaleveritas, Please respond to the above requested changes.

Hello @swapnildombaleveritas please respond to the above messages.

Hello @swapnildombaleveritas  Please respond to the above comments

Hello @swapnildombaleveritas, We know you may be busy into something and havent got time to check this. But just wanted know the progress on the above requested changes. Thanks.

Hello @swapnildombaleveritas we are waiting for your response.
Thanks.

Hello @swapnildombaleveritas, We would like to hear about the progress on requested changes.

Hello @swapnildombaleveritas, We wanted to check on the status of PR #9047 . PR is pending for more than 30 days. Please let us know if you need any assistance to review this PR. Per our standard operating procedures if no response is received in the next 7 business days, we will close this PR. Thank you for your cooperation.

Since we have not received a response in the last 7 days, we are closing your PR #9047 per our standard operating procedures. If you still need support for this issue, you can re-open the PR at any time.
If you do re-open, we simply request that you ensure the PR has response to the last request. Thank you for your cooperation.

We will reopen the PR


No way to switch off debugging

elm make defaults to no debugging with elm make --debug putting debug into the compiled js. However, elm reactor does not have the option to switch off debugging.
My game is unplayable/testable in debug mode because of the lag (v.large state?) so I'd like to have it off for the majority of testing, only turning it on when absolutely necessary.
It would be awesome to have a switch that disabled compiling with debugging in the meantime while the debugger is being improved.

I've been toying around with Elm and thought it would be simple to disable debugging and the history, but I guess not?

@mikeaustin this is only if you're using elm-reactor for testing your elm app. I'm outputting to js using elm-make and you can switch on/off debug using the --debug flag and since i need to do this anyway because i'm using external css it's not really an issue.

It would still be nice to have an option to disable debugging in elm-react when starting and prototyping a project that uses a timer. Or maybe better, a way to choose which subscriptions get logged.


handling of file locked error when status code is 423

Description

Let's wait with these changes until we can confirm from SPO how locked files should be handled. The ideal behavior - we can open them for reading, but at the moment telemetry tells us that open fails in such state, so possible change in implementation / design on SPO side is required.


Add update_object operation

Please add update_object operation similarly to upsert_object: https://github.com/tarantool/crud#upsert

The reason why there is insert_object, replace_object and upsert_object and no update_object and delete_object is as follows.
The syntax for insert/replace is space:insert(tuple)/space:replace(tuple). upsert is replace+update, so its syntax is space:upsert(tuple, ops). For insert, replace and upsert it is expected that user should provide a tuple since one may not exist yet.
On the other hand, the syntax for update/delete is index:update(key, ops)/space:delete(key). It is expected that tuple should already exist, so it may be accessed by its key. The object isn't used here, so there is no corresponding _object method yet. On the other hand, we may implement primary key extraction from the key-value object.
Two separate questions could be considered here:

allowing to specify index key with {key = value} map for update and delete (through update_object and delete_object ),
allowing to use non-primary index for update and delete.

I think we'll discuss these features with product team and then decide either we should or shouldn't support them.

On the other hand, we may implement primary key extraction from the key-value object.

That's the purpose of the issue.


unknown keyword: :engine (ArgumentError)

Error
please echo hi

/home/user/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/ruby-openai-3.0.2/lib/ruby/openai/client.rb:10:in `completions': unknown keyword: :engine (ArgumentError)
        from /home/user/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/openai-please-0.1.3/lib/please/openai/codex_service.rb:11:in `completion'
        from /home/user/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/openai-please-0.1.3/lib/please/request.rb:6:in `send'
        from /home/user/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/openai-please-0.1.3/lib/please/cli.rb:91:in `<top (required)>'
        from <internal:/home/user/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/home/user/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /home/user/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/openai-please-0.1.3/exe/please:4:in `<top (required)>'
        from /home/user/.rbenv/versions/3.2.0/bin/please:25:in `load'
        from /home/user/.rbenv/versions/3.2.0/bin/please:25:in `<main>'

Env Details
which please
/home/user/.rbenv/shims/please
ruby --version
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]

Notes

I tried switching to Ruby 3.0.5 as well
I'm using export OPENAI_ACCESS_TOKEN=string
I tried formats export OPENAI_ACCESS_TOKEN=[string] and export OPENAI_ACCESS_TOKEN="string" and the error persisted

+1 I have the same bug.

Thanks for letting me know! It should be fixed now.
Closing as a duplicate of #2.


Using GPUs with Jax

Discussed in https://github.com/google/jax/discussions/9858

Originally posted by akhilnadigatla March 11, 2022
Hello!
I am trying to get Jax running on my GPUs, but face these error messages:
I0311 16:52:36.027944<PHONE_NUMBER>97728 xla_bridge.py:247] Unable to initialize backend 'tpu_driver': NOT_FOUND: Unable to find driver in registry given worker:
2022-03-11 16:52:36.058206: E external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_driver.cc:271] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
I0311 16:52:36.058603<PHONE_NUMBER>97728 xla_bridge.py:247] Unable to initialize backend 'gpu': FAILED_PRECONDITION: No visible GPU devices.
I0311 16:52:36.059262<PHONE_NUMBER>97728 xla_bridge.py:247] Unable to initialize backend 'tpu': INVALID_ARGUMENT: TpuPlatform is not available.
W0311 16:52:36.059466<PHONE_NUMBER>97728 xla_bridge.py:252] No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)

I have looked for solutions to the problems, and made sure all drivers/CUDA version/cuDNN version are as expected. I am working on Ubuntu 18.04 and the outputs of some key commands are:
>> nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro RTX 8000     Off  | 00000000:15:00.0 Off |                  Off |
| 61%   80C    P2   248W / 260W |  32490MiB / 48601MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  Quadro RTX 8000     Off  | 00000000:2D:00.0 Off |                  Off |
| 76%   86C    P2   261W / 260W |   7237MiB / 48600MiB |     99%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

>> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Wed_Jun__2_19:15:15_PDT_2021
Cuda compilation tools, release 11.4, V11.4.48
Build cuda_11.4.r11.4/compiler.30033411_0

>> cat /usr/local/cuda/include/cudnn_version.h
...
/**
 * \file: The master cuDNN version file.
 */

#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 2
#define CUDNN_PATCHLEVEL 4

#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#endif /* CUDNN_VERSION_H */

All the path variables (to my knowledge) have been set as expected:
export PATH=/usr/local/cuda-11.4/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:${LD_LIBRARY_PATH}
export CUDA_HOME=/usr/local/cuda

And Tensorflow does appear to recognize the existence of two GPUs:
>> python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU')]

I also have the right version of jaxlib installed:
>> pip freeze | grep jaxlib
jaxlib==0.3.0+cuda11.cudnn82

I am not sure what could be the issue here. Any help would be greatly appreciated! Thank you.

Hi! I am also having this exact same problem, any progress on solutions to this?

Unfortunately, no. :(

It seems there is a problem with tensorflow regarding the way it looks to your gpu, which version of tensorflow do you have and do you get a problem when only using tensorflow and not jax?

I have tensorflow version 2.8.0, and I do not have any problems running workloads on TensorFlow (which does seem to recognize my GPUs).
Running the following returns Num GPUs Available: 2 as expected:
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

Was this issue resolved?

Hi, I'm running into the same issue. Are there any solutions to resolve this?

Same issue here, both tensorflow and jax can detect my GPU, but when I run a project clone from github, it says the same thing

I'm closing this issue because we don't have a way to reproduce it and it relates to an old jax version. Please reopen it (or file a new issue) if you can still reproduce the problem with an up to date jax.

I still have similar error when my machine (ubuntu22+cuda12.0+jax0.4.16) wakes up after sleep.
I0000 00:00:1695473905.493231    7204 tfrt_cpu_pjrt_client.cc:349] TfrtCpuClient created.
2023-09-23 21:58:25.538852: W external/xla/xla/service/platform_util.cc:198] unable to create StreamExecutor for CUDA:0: failed initializing StreamExecutor for CUDA device ordinal 0: INTERNAL: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_UNKNOWN: unknown error
I0923 21:58:25.539228<PHONE_NUMBER>83584 xla_bridge.py:513] Unable to initialize backend 'cuda': INTERNAL: no supported devices found for platform CUDA

@hawkinsp Hi Peter
We are trying to run fit_all.sh on an ubuntu 20.04 GPU instance that has single GPU device;
the execution throws the same error as in the original description
PyMC JAX CPU vectorized
WARNING (pytensor.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
Compiling...
2024-01-07 20:42:07.355217: E external/xla/xla/stream_executor/cuda/cuda_driver.cc:282] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
CUDA backend failed to initialize: FAILED_PRECONDITION: No visible GPU devices. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)

if I just retrieve from jax about gpu it would list one gpu[0]
do you need a new issue created in ordder to render a helping hand?
Thank you


Kaggle AirSim End-to-End Learning to share

Just to share my port on Kaggle AirSim End-to-End Learning
To make it work on Kaggle with Keras 2.6.0,
Cooking.py and Generator.py are modified in my github fork
It seems I got better prediction than the tutorial notebook.

Hi, I am using python 3.7.5, keras 2.6.0 and ft 2.6.0. However, while training I get the following error:
Traceback (most recent call last):   File "c:/Users/.../Desktop/virtual keras 2.6/Train_model.py", line 40, in <module>     data_generator = DriveDataGenerator(rescale=1./255., horizontal_flip=True, brighten_range=0.4) TypeError: __init__() got an unexpected keyword argument 'brighten_range'
Any thoughts on solving this?

It seems you are running it on PC, because you have message of C:/Users/
My example is for Kaggle, just go to
https://kaggle.com/rkuo2000/airsim-end-to-end-learning   and do [Copy &
Edit] to replicate my project.
lus105 @.***> 於 2021年12月5日 週日 下午4:55寫道：

Hi, I am using python 3.7.5, keras 2.6.0 and ft 2.6.0. However, while
training I get the following error:
Traceback (most recent call last): File "c:/Users/.../Desktop/virtual
keras 2.6/Train_model.py", line 40, in  data_generator =
DriveDataGenerator(rescale=1./255., horizontal_flip=True,
brighten_range=0.4) TypeError: init() got an unexpected keyword
argument 'brighten_range'
Any thoughts on solving this?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AutonomousDrivingCookbook/issues/122#issuecomment-986190545,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2TAJGOC5VJF3AVKYCVDFLUPMSJDANCNFSM5I5AJMGQ
.
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.

--
Richard Kuo (郭子仁)
Adjunct Assistant Professor
Electrical Engineering Dept., National Taiwan Ocean University
+886-972211921


Add support for template arrays when using extends

This currently doesn't work:
{% extends ['one.twig', 'two.twig'] %}

See https://twig.symfony.com/doc/2.x/tags/extends.html#dynamic-inheritance under "You can also provide a list of templates that are checked for existence"

Thanks Sally! :rocket:

@RobLoach you're welcome! Is there any chance of a release coming up soon? :grin:


Parsing -----|  takes a long time

Hi,
Am having problems with parsing this particular string in markdown:
----------------------------------------------------------------------------------------------------| [1]
The convert takes too long to parse that particular string that it ends up using all compute time of our on-premise dev server.
I tried the following strings to test:

--------------------------
|--------------------------
|--------------------------|
|----------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------

All of the above worked except the one I mentioned ([1]).
I could only make it work by doing any of the ff:

Enclose in back ticks:

`----------------------------------------------------------------------------------------------------|` - works

Enclose in triple back ticks:

     ```
      ----------------------------------------------------------------------------------------------------| - also works.
     ```

Any help will be appreciated.

I'm confused, I have no problem with this:
>>> import markdown
>>> markdown.markdown('----------------------------------------------------------------------------------------------------| [1]')
'
----------------------------------------------------------------------------------------------------| [1]
'

Can you provide a minimal example with relevant extensions you are using?

I'm confused, I have no problem with this:
>>> import markdown
>>> markdown.markdown('----------------------------------------------------------------------------------------------------| [1]')
'
----------------------------------------------------------------------------------------------------| [1]
'

Can you provide a minimal example with relevant extensions you are using?

Hi,
Sure. here.
here's a minimal example:
from markdown import Markdown

string = "----------------------------------------------------------------------------------------------------|"

md = Markdown()
converted = md.convert(string)
print(converted)

Here's the one with extensions I'm using.
from mdx_linkify.mdx_linkify import LinkifyExtension
from markdown import Markdown

def add_rel_norefferer(attrs, new=False):
    attrs[(None, "rel")] = "noreferrer"

    return attrs

string = "----------------------------------------------------------------------------------------------------|"

md = Markdown(
    extensions=[
        LinkifyExtension(linker_options={"callbacks": [add_rel_norefferer]}),
        "fenced_code",
        "nl2br",
    ],
)
converted = md.convert(string)
print(converted)

Both take a long time to run.

Hi,
Sure. here.
here's a minimal example:
from markdown import Markdown

string = "----------------------------------------------------------------------------------------------------|"

md = Markdown()
converted = md.convert(string)
print(converted)

Here's the one with extensions I'm using.
from mdx_linkify.mdx_linkify import LinkifyExtension
from markdown import Markdown

def add_rel_norefferer(attrs, new=False):
    attrs[(None, "rel")] = "noreferrer"

    return attrs

string = "----------------------------------------------------------------------------------------------------|"

md = Markdown(
    extensions=[
        LinkifyExtension(linker_options={"callbacks": [add_rel_norefferer]}),
        "fenced_code",
        "nl2br",
    ],
)
converted = md.convert(string)
print(converted)

Both take a long time to run.

Hi @facelessuser ,
I updated my package to 3.3.3 and it now works! Sorry for the hassle and thanks for the help!

Hi @facelessuser ,
I updated my package to 3.3.3 and it now works! Sorry for the hassle and thanks for the help!

This is a duplicate of #1055 which was fixed in #1056 and was included in version 3.3.3.

This is a duplicate of #1055 which was fixed in #1056 and was included in version 3.3.3.


test-cargo-miri: cargo update, re-enable windows num_cpus test

@bors r+

:pushpin: Commit 524624297d37f87d3bceb28cddbde82eb2e789f8 has been approved by RalfJung

:hourglass: Testing commit 524624297d37f87d3bceb28cddbde82eb2e789f8 with merge abab0207af3172af5840ed9efd8582654760184e...

:sunny: Test successful - checks-travis, status-appveyor
Approved by: RalfJung
Pushing abab0207af3172af5840ed9efd8582654760184e to master...


Intellisense not working at all, even when I press ctrl+space

Environment data

Language Server version: v2021.7.1060902895
OS and version: WSL2 running ubuntu 20.04
Python version (& distribution if applicable, e.g. Anaconda): 3.8.10

Expected behaviour
Intellisense making recommendations
Actual behaviour
Does nothin
Logs

XXX

Code Snippet / Additional information

XXX

This isn't enough info to help us; our template asks for logs and code samples so we can help, but you haven't provided any. Can you please provide them?
https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#filing-an-issue

It's been a month since I asked for the above; I'm going to close this. If you can provide more information about your issue, we can reopen, but this isn't enough to go off of.


Speaker images not showing on Android

This happens when the cordova-plugin-whitelist isn't installed. Added the cordova whitelist plugin in config.xml so when the user runs it it will automatically install this plugin.


[Sandbox] OpenLLMetry

Application contact emails
<EMAIL_ADDRESS><EMAIL_ADDRESS>Project Summary
Open-protocol extension for OpenTelemetry  for observability and evaluation of GenAI applications
Project Description
OpenLLMetry started as we were looking for an easy way to send metrics and traces of executions of LLM applications. Many common patterns like RAG applications closely resemble micro-services architecture, so it seemed natural to rely on OpenTelemetry. Moreover, LLMs and GenAI systems often exist as a component within a larger system. Understanding both how these systems influence an LLM’s output, and how the LLM’s output influences the rest of a system, is essential for people building applications using this technology. OpenTelemetry provides the standard and toolset to enable this kind of understanding.
However, the standard set by other LLM observability applications like LangSmith required us to send additional information (like prompts and completions) on spans, which is subject to an ongoing debate in the OpenTelemetry community.
Thus, we decided to extend OpenTelemetry semantic conventions, and build a way to monitor and trace prompts, completions, calls to vector DBs, monitoring token usage and more; all while staying compliant with the OTel standard. This allowed us to be fully compatible with any platform that supports OpenTelemetry, while offering the same level of features provided by LLM-specific observability applications.
See also a blog post we published about this project.
Org repo URL (provide if all repos under the org are in scope of the application)
N/A
Project repo URL in scope of application
https://github.com/traceloop/openllmetry
Additional repos in scope of the application
https://github.com/traceloop/openllmetry-js
Website URL
https://www.traceloop.com/openllmetry
Roadmap
https://github.com/orgs/traceloop/projects/1
Roadmap context
No response
Contributing Guide
https://www.traceloop.com/docs/openllmetry/contributing/overview
Code of Conduct (CoC)
https://github.com/traceloop/openllmetry/blob/main/CODE_OF_CONDUCT.md
Adopters
No response
Contributing or Sponsoring Org
https://www.traceloop.com/
Maintainers file
https://github.com/traceloop/openllmetry/blob/main/MAINTAINERS.md
IP Policy

[X] If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

[X] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?
We see the project as a natural extension of OpenTelemetry, and our hope is that with its maturity it may even fully integrate into OpenTelemetry. By moving this project under the CNCF umbrella, we allow this project to continue to evolve in synergy with OpenTelemetry.
Moreover, seeing how OpenTelemetry has changed the cloud observability landscape, providing much needed freedom and flexibility to users, we seek to do the same in the LLM observability domain, which is rapidly evolving but it’s still in its early stages. Our hope is that under the CNCF umbrella it will become easier for other vendors to adopt this as a standard, instead of opting for a proprietary protocol as many do today.
Benefit to the Landscape
OpenLLMetry extends the current CNCF observability landscape into the rapidly evolving gen AI domain. It provides a novel approach for tracing and monitoring LLM components like foundation models and vector databases which couldn’t be done with existing CNCF tools due to inherent limitations. And by basing these capabilities on OpenTelemetry, OpenLLMetry stays true to the CNCF’s mission of providing open standards that any developer can rely upon.
Cloud Native 'Fit'
OpenLLMetry is built with cloud-native technologies like OpenTelemetry and fits in the Observability and Analysis area. Additionally, it’s compatible with the nascent AI TAG forming - and within that TAG, Observability is also seen as an important area for AI.
Cloud Native 'Integration'
OpenLLMetry depends on OpenTelemetry as it extends it and is fully compatible with it. By emitting data as OTLP, OpenLLMetry is thus compatible with a wide array of tools, both open source (e.g., Jaeger) and proprietary.
Cloud Native Overlap
While there is an apparent overlap with OpenTelemetry, as noted before, we see this more of an extension and a complement to OpenTelemetry. There were some extensions that were mandatory for OpenLLMetry to work properly which couldn’t be implemented directly in OpenTelemetry given its scale and usage. For example, adding full prompts to spans makes sense for OpenLLMetry given the scale and number of traces per minute is much lower than a microservice application. Additionally, the AI space is moving at an incredibly fast pace today, necessitating broad and sweeping changes in the OpenLLMetry project if/when things change in upstream components. Because the OpenTelemetry project is seeking greater stability across all its components, this need to made rapid and broad changes may conflict with the current focus of many OpenTelemetry projects.
Similar projects
LangSmith - LangChain's proprietary platform for LLM observability. Natively integrates with the open-source LangChain framework for building LLM applications, but otherwise requires manually logging and tracing.
LangFuse - Open source platform for LLM observability. Uses a proprietary protocol, and does not support auto-instrumentation.
Arize Phoenix - More of an MLOps project, but does use OpenTelemetry code repurposed to fit a proprietary protocol today.
Landscape
Yes
Business Product or Service to Project separation
Traceloop, the product we’re building, is a destination for the OpenLLMetry SDK. It uses traces and metrics to provide its users with tools to evaluate the quality of model outputs and iterate on changes they’re making to their applications. Similar to other destinations that natively integrate with OpenTelemetry like Honeycomb, Lightstep, Splunk, Sentry, and others.
Project presentations
The project was presented to TAG Observability on 5/12/2023 (cc @halcyondude)
https://youtu.be/ksmPWR_ZybE?si=Z10pzfNf2QIDyZ3J
Project champions
Chris Aniszczyk
Additional information
No response

This project provides good functionalities. I would like to see the long-term roadmaps but the roadmap link does not work. I see development is ongoing. Could you provide information on how adoption is going as well as any plan for community growth beyond one company's contribution? I do not see a governance document. Could you add that? Have you presented it to the Tag-observability as stated in the "Project presentations" section? If so, what is the TAG feedback for your presentation?

Thanks @cathyhongzhang. Changed the roadmap privacy setting and added a governance doc.
I just presented on the TAG-observability a few hours ago, and will update here with the presentation and comments.

Can you explain why OpenLLMetry should be an autonomous CNCF project, rather than a subproject of OpenTelemetry?

Sure @jberkus. While our initial focus is only tracing and observability for LLM apps, we do want to work on standardizing other LLM related protocols in the near future which we thing closely relate to observability for LLMs. For example, prompt and model configuration. These may not be tied to opentelemetry necessarily.

Feedback re: (this) Sandbox Application
Feedback from TAG Observability Presentation on 12/5
Additional Feedback and Concern(s)
Conclusion

As mentioned above, the project was presented to TAG Observabilty on our 2023-12-05 meeting. There was some discussion and feedback from TAG members, both in the meeting and in subsequent conversations. I'll cover some of this feedback with commentary below.
I've also taken some time to review the presentation, materials, this proposal, and the github repositories, and have feedback as well.
The project's goals around addressing an emerging concern around how to observe LLM based applications are clear. I've grouped my feedback into three sections:

response to the Sandbox Application (as proposed)
feedback from the TAG Observabilty Meeting on 12/5
my own hopes and concerns

Feedback re: (this) Sandbox Application

We see the project as a natural extension of OpenTelemetry, and our hope is that with its maturity it may even fully integrate into OpenTelemetry.

If this project is an extension to open-telemetry, then success as defined would obviate the need for a large portion of the project upon it's integration with open-telemetry (either via one of the project's *-contrib repositories, open-telemetry/semantic-conventions, or elsewhere).

By moving this project under the CNCF umbrella, we allow this project to continue to evolve in synergy with OpenTelemetry.

Entering the CNCF Sandbox is not requisite for evolution and/or integration with open-telemetry, nor is that laudable goal itself a reason to join.

Our hope is that under the CNCF umbrella it will become easier for other vendors to adopt this as a standard, instead of opting for a proprietary protocol as many do today.

Vendor and End User community adoption will require engaging with those communities, and welcoming them to participate in the project. Presently the bulk of the contributions have come from two TraceLoop employees (CEO, CTO). Moreover there's an implication that Vendors (today) do not find it easy to adopt the set of conventions because the project isn't in the Sandbox, nor would one expect them to because of Sandbox membership.

OpenLLMetry extends the current CNCF observability landscape into the rapidly evolving gen AI domain. It provides a novel approach for tracing and monitoring LLM components like foundation models and vector databases which couldn’t be done with existing CNCF tools due to inherent limitations.

What's referred to as "inherent limitations" is an open PR (https://github.com/open-telemetry/oteps/pull/234) that's seen substantive and constructive feedback from the project which have been argued with in some cases (without resolution) or are as yet unaddressed.

... And by basing these capabilities on OpenTelemetry, OpenLLMetry stays true to the CNCF’s mission of providing open standards that any developer can rely upon.

The CNCF's mission isn't (specifically) to provide reliable open standards, although that is an outcome with projects like open-telemetry. The API's and Semantic Conventions provided by otel are widely and broadly adopted because they are the result of a consensus based process which has actively solicited feedback from, and has over time consistently engaged with Vendors and End Users, the former as they comprise a large portion of the engineering contribution(s), and the latter by being modelled as "the customer," with active community engagement and by demonstrating responsive feedback and investments in open, community curated and driven documentation.

OpenLLMetry is built with cloud-native technologies like OpenTelemetry and fits in the Observability and Analysis area. Additionally, it’s compatible with the nascent AI TAG forming - and within that TAG, Observability is also seen as an important area for AI.

TAG Observability and TAG Runtime are the hosting/supporting TAG's for the proposed AI working group, as this emerging area is within scope for each TAG's charter and the Working Group's focus bridges the 2 core domains.

OpenLLMetry depends on OpenTelemetry as it extends it and is fully compatible with it. By emitting data as OTLP, OpenLLMetry is thus compatible with a wide array of tools, both open source (e.g., Jaeger) and proprietary.

OpenLLMetry is effectively carrying unmerged, unaccepted patches of open-telemetry's semantic conventions, making it not "fully compatible" with open-telemetry. It's unclear if it's a project goal to work with the open-telemetry community to land them, or to integrate as a plugin or extension, or to simply act as a de facto perpetual fork. I would encourage the OpenLLMetry project to engage with open-telemetry. The referenced pull request is a conversation in that dialog.

While there is an apparent overlap with OpenTelemetry, as noted before, we see this more of an extension and a complement to OpenTelemetry.

This isn't consistent with the presentation to TAG Observability (see slide)

There were some extensions that were mandatory for OpenLLMetry to work properly which couldn’t be implemented directly in OpenTelemetry given its scale and usage. For example, adding full prompts to spans makes sense for OpenLLMetry given the scale and number of traces per minute is much lower than a microservice application.

The design descision(s) mentioned above might best be discussed with the community. In the TAG meeting there were a few suggestions for other ways to acheive the goals. I also would like to understand some of the rationale behind the statement above, which was reiterated in the TAG meeting. It was suggested that because the number of spans present in these applications is so much lower than is typical for open-telemetry, the requirements it imposes around payload sizes for trace spans "don't apply." If the TraceLoop SDK (OpenLLMetry OSS SDK is named after TraceLoop (company) not the project) were used to instrument cloud native LLM applications - as are in-scope for the AI working group, why would the scale be so much lower? Given the rapid growth of LLM and AI cloud native applications and services, one might expect the traffic volumes (and number of spans generated) to be correspondingly large.

Additionally, the AI space is moving at an incredibly fast pace today, necessitating broad and sweeping changes in the OpenLLMetry project if/when things change in upstream components. Because the OpenTelemetry project is seeking greater stability across all its components, this need to made rapid and broad changes may conflict with the current focus of many OpenTelemetry projects.

If I'm understanding what was presented on 12/5 at TAG Observability correctly, this need is driven by the approach the project is taking to carrying patches for not just open-telemetry but also for the other targeted (growing) list of integrations. I would like to understand the nature of the engagement and current state of the discussion(s) for the projects being instrumented by the TraceLoop SDK. Is it collaborative? Are they aware? Do they support the project and its approach?

Traceloop, the product we’re building, is a destination for the OpenLLMetry SDK. It uses traces and metrics to provide its users with tools to evaluate the quality of model outputs and iterate on changes they’re making to their applications. Similar to other destinations that natively integrate with OpenTelemetry like Honeycomb, Lightstep, Splunk, Sentry, and others.

Without the TraceLoop product, how does one leverage the generated data data effectively (irrespective of using the OLTP protocol), as it diverges from open-telemetry's Semantic Conventions? If other open-telemetry exporters were to receive OLTP data generated by OpenLLMetry, since payloads for trace headers contain payloads larger than is supported, and employ unsupported Semantic Conventions, what's the result?

Why is the SDK (the open source project) named "TraceLoop SDK"?

Would you please confirm that the TraceLoop platform, and it's UI, are not open?

Feedback from TAG Observability Presentation on 12/5

The TraceLoop Platform UI code calls OpenAI, and uses OpenAI, not an open platform nor an model licensed with an OSI approved license as it's primary example in the Quickstart.

Some of the things being parked in a Trace Span might better be surfaced via structured logs or other signal types

Question about redaction of information from trace spans. In following up, it appears that redaction is provided by the commercial product, not the OSS project, via a TraceLoop API (outside the OSS project). https://www.traceloop.com/docs/openllmetry/privacy/traces: "We have an API to enable content tracing for specific users or workflows. See the Traceloop API documentation for more information." is expressed the OpenLLMetry documentation for the (open) TraceLoop SDK.

Additional Feedback and Concern(s)

The project name is potentially misleading and confusing. Against the backdrop of OpenCensus + OpenTracing = open-telemetry, the OpenLLMetry name, while clever, could easily be construed by End Users as a subproject of open-telemetry.

As articulated above, I would like to see the project engage more deeply and substantively with the open-telemetry community - particularly as the issues raised are not trivial.

The documentation for the project should not reside behind a commercial site (https://www.traceloop.com/docs/openllmetry/introduction).

The documentation should cover how and in what cases CNCF End Users should use the SDK absent using TraceLoop's commercial (closed) platform.

The highlighted rationale gives me pause, and are for me a source of concern.

Conclusion
I think that this project is forward looking, and aims to address a meaningful emerging function - the observation of LLM application workloads. I would encourage the project's maintainers to continue to engage with open-telemetry and the other libraries that OpenLLMetry is presently carrying patches for.
I would like to see the project return next cycle after addressing the feedback above.

I can certainly speak towards this:

Without the TraceLoop product, how does one leverage the generated data data effectively (irrespective of using the OLTP protocol), as it diverges from open-telemetry's Semantic Conventions? If other open-telemetry exporters were to receive OLTP data generated by OpenLLMetry, since payloads for trace headers contain payloads larger than is supported, and employ unsupported Semantic Conventions, what's the result?

I have three thoughts here:

The size of payload is not something specified by OpenTelemetry. You can trivially create OTLP trace data that a variety of background will fail to accept today by either having a bunch of custom fields or several fields with a lot of "heavy" data (like 1KB strings). Nothing in OpenTelemetry states that you shouldn't or can't do this.
OpenTelemetry defines arbitrary key-value pairs as attributes that go beyond Semantic Conventions. And so the data defined by OpenLLMetry is no different than this, it's just using a package that tries to centralize some domain-specific names and values that are common across several different AI providers.
Not all OTLP backends support the entirety of the OpenTelemetry spec. Some only support metrics, but not traces. Some support special handling of HTTP semantic conventions, but not DB semantic conventions.
There is no requirement to export OTLP data with names and values defined by specified by Semantic Conventions. You can still "send otel" or "accept otel" without any kind of support for the semantic conventions.

As it stands, I think the statements OpenLLMetry made still hold up here, and I can confirm in my own use of the project that it's compatible with at least one OTLP backend that I use.

@halcyondude thanks for this extremely helpful feedback! I'd love to address some of the issues you mentioned and some of your concerns, in addition to the comments @cartermp wrote above.

Vendor and End User community adoption will require engaging with those communities, and welcoming them to participate in the project. Presently the bulk of the contributions have come from two TraceLoop employees (CEO, CTO). Moreover there's an implication that Vendors (today) do not find it easy to adopt the set of conventions because the project isn't in the Sandbox. One would not would expect them to adopt because of Sandbox membership, they might adopt the proposed open-telemetry Semantic Conventions if the project worked with open-telemetry to land them.

We are actively engaging with major vendors (Like @cartermp from Honeycomb, Dynatrace, SigNoz, New Relic and others) to make sure that OpenLLMetry is compatible and stays compatible. We also maintain a list of supported vendors and actively test that support.

Why is the SDK (the open source project) named "TraceLoop SDK"?

Would you please confirm that the TraceLoop platform, and it's UI, are not open?

The documentation for the project should not reside behind a commercial site (https://www.traceloop.com/docs/openllmetry/introduction).

These were decisions that we made earlier in the development, and will of course change when and if CNCF decides this fits under its umbrella. The docs are under our domain for convenience reasons only (small startup, etc.). There's a clear separation between OpenLLMetry docs and Traceloop docs. Traceloop is indeed a closed-source platform.

If I'm understanding what was presented on 12/5 at TAG Observability correctly, this need is driven by the approach the project is taking to carrying patches for not just open-telemetry but also for the other targeted (growing) list of integrations. I would like to understand the nature of the engagement and current state of the discussion(s) for the projects being instrumented by the TraceLoop SDK. Is it collaborative? Are they aware? Do they support the project and its approach?

Definitely. We are working with LLM app frameworks, vector DBs and foundation models like LlamaIndex, LiteLLM, Chroma DB and others to build and maintain promote and get feedback on our instrumentations.

Question about redaction of information from trace spans. In following up, it appears that redaction is provided by the commercial product, not the OSS project, via a TraceLoop API (outside the OSS project). https://www.traceloop.com/docs/openllmetry/privacy/traces: "We have an API to enable content tracing for specific users or workflows. See the Traceloop API documentation for more information." is expressed the OpenLLMetry documentation for the (open) TraceLoop SDK. This links to the closed-source Dashboard API (https://www.traceloop.com/docs/api-reference/tracing/whitelist_user)

That is inaccurate (I'll work on clarifying the docs on our end). You can choose to disable or enable content tracing on the SDK. And you can also choose to enable it selectively using the SDK. We also provide a convenient way to control that through the platform, but it's addition to the aforementioned capabilities.

If I'm understanding what was presented on 12/5 at TAG Observability correctly, this need is driven by the approach the project is taking to carrying patches for not just open-telemetry but also for the other targeted (growing) list of integrations. I would like to understand the nature of the engagement and current state of the discussion(s) for the projects being instrumented by the TraceLoop SDK. Is it collaborative? Are they aware? Do they support the project and its approach?

Definitely. We are working with LLM app frameworks, vector DBs and foundation models like LlamaIndex, LiteLLM, Chroma DB and others to build and maintain promote and get feedback on our instrumentations.

Excellent! The open-telemetry project has a lot of experience working with other projects as well as commercial solutions to provide instrumentation. Another example of the open source observability community engaging with Vendors can be found in Prometheus's curation of a set of metrics exporters.
Both of these CNCF project communities have experience in navigating some of the technical and cross-project (and indeed cross-product) conversations and solution finding. I would encourage the project to engage, TAG Observability is a great place to do this, as it's where End Users, Vendors, and Project maintainers come together. The TAG and its WG's (e.g. AI working group referenced) are the right place to collaboratively engage with the community in ideation, solution finding, and coordination of effort.

One more question: given that a lot of LLMs are not open source, have you checked that their SDKs are sufficiently open source that they don't create licensing problems for your project?

@jberkus their SDKs are open source nonetheless (see for example OpenAI, Anthropic).

@nirga I think that it would be a good idea to create a few tables in the documentation in the repo (.md) listing the SDK's and their license, and any other projects for which OpenLLMetry is carrying patches or integrating with specifically w/ a summary of the integration and it's type.

@halcyondude thanks, I agree. Will do that

Closing, project can reapply for June (or later) review

some progress here as there's now an open PR to address this as an expansion of the GenAI Semantics SIG in otel https://github.com/open-telemetry/community/pull/2326 🥳


Use html as scroll container for recent view.

discussion: https://chat.zulip.org/#narrow/stream/9-issues/topic/recent.20conversations.20loses.20filter.20checkboxes
Things I tested:

No topics
only 1 topic
Filters work as expected.
Compose reply works
Page up / down works
focus changes correctly when navigating rows at the edge of visible area.
load more works correctly.
Recent view -> messages narrow -> recent view correctly preserves row focus
Loading to Combined feed -> recent view correctly sets focus to first row.
Initial loading indicator when no messages are fetched is displayed correctly.

Works for me in light manual testing!

Pushed to resolve conflicts.

Test-deploying this on chat.zulip.org.

This looks pretty good; posted a round of reviews and wanted to note that I think we can merge this after completing those.

Updated based on feedback.

Merged after doing a few edits to the comments; we have two TS-related follow-ups to fix:

https://github.com/zulip/zulip/pull/30134#discussion_r1631471821
https://github.com/zulip/zulip/pull/30134#discussion_r1630343010

@amanagr just a note on GitHub's commit message auto-closing feature: It does no fancy parsing at all. So Fixes #17933, #27517 only closed the first issue. Just say Fixes #17933. Fixes #27517. if you want to close multiple issues.


Update server values

It may be better to have this in the values.yaml instead of default ! What do you think

@samlesu @inalgnu  can you review :) ?


Rename project

To a less pretentious (and hopefully more self-explanatory) name than 'default.css'. How about 'raw-html.css'?

or "unstyle" :)

Oops, wrong button

I just renamed the project "unstyle". Follow-up changes: #23 and 3acc84e/37bb5e1.

Hmm... to be honest, this has started to provide more of a clean, basic style than an actual unstyled-like appearance. It probably makes sense to rename it something closer to its nature ("simple", "clean", "basic", "plain", etc.). At the moment I'm leaning towards something closer to "clean", "clear", "tidy" (e.g. "style-cleaner", "unclutter", etc.)
Maybe I'll go with unclutter, which is reasonably close to the current unstyle, but more accurate.

Maybe I'll go with unclutter, which is reasonably close to the current unstyle, but more accurate.

On the other hand, this merely strips a page of complex styling rules, and applies a basic style instead. This is not a guarantee of uncluttering, and in fact can make the page look more disorganized because it wasn't built using progressive enhancement principles.
In fact, hinging on that notion, maybe the name could be something related to the similar philosophy of graceful degradation. "degrade" is a negatively connotated word, though, so perhaps a synonym would work better as a name -- "simplify", for example.
Still, It would be necessary to qualify the simplification, i.e. what is being simplified. Not sure how to make that clear without using a two-word name... maybe downstyle? minstyle?

Yeah, after some more thinking, downstyle is definitely more accurate than both unstyle and unclutter. The latter could be used for a similar project, aiming to actually strip down non-essential content from web pages. See #29 for more info.

For future reference, here are other combinations I considered:
Names denoting actions (preferred because this is a bookmarklet to act on a page)

un-style
a-style
prune-style
trim-style
style-cleaner
down-style

Names describing the effect (usable because this can be used as a base style)

mini-style
micro-style
nano-style
lite-style

Prefixes supporting multiple terminations (style, look, view).
Note: I had initially included mode, but decided to remove it because it is a generic word and doesn't unambiguously refer to visual appearance.

clean-style / clean-look / clean-view
clear-style / clear-look / clear-view
tidy-style / tidy-look / tidy-view
plain-style / plain-look / plain-view
simple-style / simple-look / simple-view
basic-style / basic-look / basic-view
raw-style / raw-look / raw-view
bare-style / bare-look / bare-view

Note: "plain", "basic" are actually very good choices for prefix, since (unlike "clean", "clear", "tidy" and "simple") they don't imply a subjective positive connotation, but merely describe the effect. "Raw" and "bare" would be good candidates but I'm afraid they may convey the notion of "no style at all" -- the same issue that plagues "unstyle".


[MetaSchedule] Mutator Rule: Mutate Unroll

This PR is one of the mutator rule for MetaSchedule.
Co-authored-by: Junru Shao<EMAIL_ADDRESS>Co-authored-by: Xiyou Zhou<EMAIL_ADDRESS>Co-authored-by: Bohan Hou<EMAIL_ADDRESS>Co-authored-by: Siyuan Feng<EMAIL_ADDRESS>Co-authored-by: Ruihang Lai<EMAIL_ADDRESS>Co-authored-by: Wuwei Lin<EMAIL_ADDRESS>

cc @junrushao1994

ping @junrushao1994


Aborted (core dumped)

(YOLO) han@han:~/Desktop/hxb_projects/CPP_Instance/10-30/yolov5_cpp/yolov5-opencv-cpp-python$ ./yolo_example
Aborted (core dumped)

Hello, Try to run with
sudo ./yolo_example


Add the createMany method to SQLite

Problem
The createMany operator is unavailable for SQLite, whilst it is available like this:
INSERT INTO `main`.`sometable` (path1, path2) VALUES
	(someValue, otherValue),
	(oneMoreValue, lastValue);

The issue is that creating hundreds of rows is extremely slow currently with usual methods, and the reason as to why Prisma exists is not writing SQL manually, but rather as an ORM.
The current solution to this problem is doing this:
const values = someArr
	.map(value => `(${value.path1}, ${value.path2})`)
	.join(",\n\t")
await prisma.$executeRawUnsafe(`INSERT INTO \`main\`.\`sometable\` (path1, path2) VALUES \n\t${values};`)

This is not ideal due to at least two reasons:

It uses the $queryRawUnsafe method, which can let SQL injections in - even though it's less risky with custom validation and escaping
It requires custom SQL typing, which is not the goal of Prisma

Suggested solution
Add in the createMany function for SQLite, as it is working, just like for MySQL. The query can be seen above working
Alternatives
I have typed the raw SQL that makes this work above, both that work with prisma's method and any SQL runner.

I wonder why this was not implemented in the first place...

Second this, we see execution times of 30-40 seconds for about 4000 rows with 20 columns.

FWIW I'm using the following to do this without having to rely on $queryRawUnsafe.
Obviously still not ideal but it gets the job done!
import { Prisma, PrismaClient } from '@prisma/client';
import { Value as SqlTagTemplateValue } from 'sql-template-tag';

type Value = SqlTagTemplateValue | Buffer | Prisma.Sql;

type ValuesOrNestedSql<T> = {
  [K in keyof T]: Value;
}

const formatSingleValue = (value: Value): SqlTagTemplateValue | Prisma.Sql => {
  if (Buffer.isBuffer(value)) {
    return Prisma.raw(`x'${value.toString('hex')}'`);
  }
  return value;
}

const formatRow = <T>(columns: (keyof T)[], row: ValuesOrNestedSql<T>): Prisma.Sql =>
  Prisma.sql`(${Prisma.join(columns.map((column) => formatSingleValue(row[column])), ',')})`;

const formatValuesList = <T>(columns: (keyof T)[], rows: ValuesOrNestedSql<T>[]): Prisma.Sql => {
  return Prisma.join(
    rows.map((row) => formatRow(columns, row)),
    ',\n',
  );
}

export const rawCreateMany = async <T>(
  db: PrismaClient,
  tableName: string,
  columns: (keyof T)[],
  values: ValuesOrNestedSql<T>[],
) => {
  const query = Prisma.sql`
INSERT INTO
${Prisma.raw(tableName)}
(${Prisma.join((columns as string[]).map(Prisma.raw), ', ')})
VALUES
${formatValuesList(columns, values)};
`;
  return db.$queryRaw(query);
};

// Example usage
await rawCreateMany<Omit<Model, 'id'>>(
  prismaClient,
  'ModelName',
  ['column1', 'column2', 'column3', 'nestedStuff'],
  data.map((row) => {
    return {
      column1: row.x,
      column2: row.y,
      column3. row.buffer,
      nestedStuff: Prisma.sql`(SELECT id FROM SomeOtherModel WHERE x = ${y})`,
    };
  }),
);

Note: the special Buffer handling was needed due to #11834 but I chose to leave it in incase it's helpful for someone.

From what I could find, SQLite have different limits for multiple inserts depending on the version https://stackoverflow.com/questions/15858466/limit-on-multiple-rows-insert
But for anyone looking for this only because of speeds, if you put all the inserts in the same transaction it's MUCH faster
https://sqlite.org/faq.html#q19
(19) INSERT is really slow - I can only do few dozen INSERTs per second

Actually, SQLite will easily do 50,000 or more [INSERT] statements per second on an average desktop computer. But it will only do a few dozen transactions per second. Transaction speed is limited by the rotational speed of your disk drive. A transaction normally requires two complete rotations of the disk platter, which on a 7200RPM disk drive limits you to about 60 transactions per second.
Transaction speed is limited by disk drive speed because (by default) SQLite actually waits until the data really is safely stored on the disk surface before the transaction is complete. That way, if you suddenly lose power or if your OS crashes, your data is still safe. For details, read about [atomic commit in SQLite.].

By default, each INSERT statement is its own transaction. But if you surround multiple INSERT statements with [BEGIN]...[COMMIT](https://sqlite.org/lang_transaction.html) then all the inserts are grouped into a single transaction. The time needed to commit the transaction is amortized over all the enclosed insert statements and so the time per insert statement is greatly reduced.

Another option is to run [PRAGMA synchronous=OFF]. This command will cause SQLite to not wait on data to reach the disk surface, which will make write operations appear to be much faster.

This can be done with something like
for (const data of datas) {
  inserts.push(prisma.post.create({ data })
}
await prisma.$transaction(inserts)

https://www.prisma.io/docs/concepts/components/prisma-client/transactions#the-transaction-api

I tried enabling the CreateMany capability on the SQLite connector in the engines like so:

Then I implemented create_many in Prisma Client Rust such that this test passes:

Prisma successfully created 100,000 rows in one create_many call with SQLite - it took 14.38 seconds on my M1 Pro MacBook.
The limit on inserts that @rafma0 mentions was done away with in 2013 with SQLite v3.8.8, though there is a limit of 999 query variables per insert statement - yet Prisma already takes care of that!

I don't understand why this hasn't been implemented, but if using it in Spacedrive goes well then I may just release it in Prisma Client Rust.

Internal discussion with context for current limitation: https://prisma-company.slack.com/archives/C016KUHB1R6/p1663005773597469?thread_ts=1662839028.462739&cid=C016KUHB1R6

Internal discussion with context for current limitation: prisma-company.slack.com/archives/C016KUHB1R6/p1663005773597469?thread_ts=1662839028.462739&cid=C016KUHB1R6

It seems that is inaccessible without a @prisma.io Slack account

That is the point of an internal discussion - sorry :D We dug up some historic context on how we added createMany as a preview feature, then realized it does not work for SQLite because of reasons, then removed it and blocked it - which ended up with the current state when we removed the preview feature and made it GA.
We will take that into account when we take another look at this. It is unfortunately not as trivial as it might seem from the outside with the many, many way we need to create queries.

Can I bump this as well?
I've got a situation where I'm exporting an SQLite database from scratch during my build.
On Sequelize this could be done in less than a second, and it's taking way longer when I migrated to Prisma.
The QOL features Prisma has about keeping the schema in sync is amazing, but creating individual transactions for each row is a huge downside.

From what I could find, SQLite have different limits for multiple inserts depending on the version https://stackoverflow.com/questions/15858466/limit-on-multiple-rows-insert
But for anyone looking for this only because of speeds, if you put all the inserts in the same transaction it's MUCH faster https://sqlite.org/faq.html#q19
(19) INSERT is really slow - I can only do few dozen INSERTs per second

Actually, SQLite will easily do 50,000 or more [INSERT] statements per second on an average desktop computer. But it will only do a few dozen transactions per second. Transaction speed is limited by the rotational speed of your disk drive. A transaction normally requires two complete rotations of the disk platter, which on a 7200RPM disk drive limits you to about 60 transactions per second.
Transaction speed is limited by disk drive speed because (by default) SQLite actually waits until the data really is safely stored on the disk surface before the transaction is complete. That way, if you suddenly lose power or if your OS crashes, your data is still safe. For details, read about [atomic commit in SQLite.].

By default, each INSERT statement is its own transaction. But if you surround multiple INSERT statements with [BEGIN]...[COMMIT](https://sqlite.org/lang_transaction.html) then all the inserts are grouped into a single transaction. The time needed to commit the transaction is amortized over all the enclosed insert statements and so the time per insert statement is greatly reduced.

Another option is to run [PRAGMA synchronous=OFF]. This command will cause SQLite to not wait on data to reach the disk surface, which will make write operations appear to be much faster.

This can be done with something like
for (const data of datas) {
  inserts.push(prisma.post.create({ data })
}
await prisma.$transaction(inserts)

https://www.prisma.io/docs/concepts/components/prisma-client/transactions#the-transaction-api

Apologies in advance for this stupid question, but what exactly is the type of inserts, in that example? I would guess it was Array<PrismaPromise<Post>> but my compiler yells at me...

Current error message for when trying to use a nested createMany in SQLite:

That's not great either to even know what is going on.

+1

turso uses this adapter so maybe this should not just be considered a helpful feature for dev testing

Please work on this

Hey! Why was this disabled? Would it be possible to get a small explanation on the technical why?

Another bump on this, with planetscale ditching the free tier - I suspect many, like myself, will migrate to Turso. But that means going from MySQL to Sqlite and so far the migration was smooth. Except for the 30 odd createMany calls I have. Would love a fix fo rthis.

FYI: We are working on this right now.

Not right now, but it is definitely on our radar @rwieruch.


Swift 3.0 - type conflict

 let btn:MGSwipeButton = MGSwipeButton(title: "", icon: img, backgroundColor: nil, insets: ins, callback: {
            (sender: MGSwipeTableCell!) -> Bool in

            self.pageTextField.isHidden = false
            self.pageTextField.respectiveCellNumber = (indexPath as NSIndexPath).row
            self.pageTextField.becomeFirstResponder()
            self.customControl.isHidden = true
            self.view.bringSubview(toFront: self.pageTypeView)

            return true
            })

Returns a following error:

Cannot convert value of type '(MGSwipeTableCell!) -> Bool' to expected argument type 'MGSwipeButtonCallback!'

How to edit it to make it work?

how did u fix it?

Solution:
let buttonCallback:MGSwipeButtonCallback = {
            (sender: MGSwipeTableCell!) -> Bool in

            self.pageTextField.isHidden = false
            self.pageTextField.respectiveCellNumber = (indexPath as NSIndexPath).row
            self.pageTextField.becomeFirstResponder()
            self.customControl.isHidden = true
            self.view.bringSubview(toFront: self.pageTypeView)

            return true
        } as! MGSwipeButtonCallback

        let btn:MGSwipeButton = MGSwipeButton(title: "", icon: img, backgroundColor: nil, insets: ins, callback: buttonCallback

@thedc89 Thanks for your solution. However, I am getting a Thread 1: EXC_BAD_INSTRUCTION for the as! MGSwipeButtonCallback when my TableView is loaded. Did you experience this? I hope this awesome Git gets a proper Swift 3 conversion soon.

Oh, I get this same error! I have to reopen the issue

this works for me:
let buttonCallback:MGSwipeButtonCallback = {_ in

            self.pageTextField.isHidden = false
            self.pageTextField.respectiveCellNumber = (indexPath as NSIndexPath).row
            self.pageTextField.becomeFirstResponder()
            self.customControl.isHidden = true
            self.view.bringSubview(toFront: self.pageTypeView)

         return true
        }

Both solution did not work for me. I'm still initiating both of the buttons inside the array like
`cell.leftButtons = [MGSwipeButton(title: "Delete", backgroundColor: UIColor.red, callback: {
(MGSwipeTableCell) -> Bool in
        return true
    }),MGSwipeButton(title: "More",backgroundColor: UIColor.lightGray, callback: {
        (MGSwipeTableCell) -> Bool in
        // -- More button clicked

        print("More!")
        return true
    })]`

I changed a bit syntax from "(sender: MGSwipeTableCell) -> Bool" to "_ -> Bool", now cells appear but on click the app will be crashed on AppDelegate EXC_BAD_INSTRUCTION - any more ideas?

I've pushed 1.5.6 version with Swift interoperation improvements. The swift 3.0 sample is ready too ;)
https://github.com/MortimerGoro/MGSwipeTableCell/tree/master/demo/MailAppDemoSwift

I'm facing the same issue @jarkoAndroid. I've implemented both the solutions and also studied the example by @MortimerGoro. My cells load but the moment I click on them, the app breaks.
Any thoughts on fixing this? I'm running my app on iOS 10. Anything I'm missing?

@Shoshin23 can you send me a testcase project with the issue? I couldn't reproduce this in the demos or in any of my apps. Also tried with iOS 10.0.

@MortimerGoro I'm pasting the exact code snippet below. Do tell me what i'm missing.
    let swipeToCard = MGSwipeButton(title: "", icon: DataService.resizeImage(UIImage(named: "swipeArrow")!, newWidth: 24), backgroundColor: UIColor.yellow) { (MGSwipeTableCell) -> Bool in
        let indexPath = self.tableView.indexPath(for: MGSwipeTableCell!)
        self.performSegue(withIdentifier: "oneLinerShow", sender: indexPath)
        return true

    }


How to use protractor to select dropdown box

I am unable to use the standard protractor tags e.g by.modal with angular materialize selection box. Any one tried this or know the solution?

The materialize selection box does some funny buisness, because the floating "select" that you click on when using material-select is actually a clone of the content in the select. The select is hidden in the background.
So if you want to have protractor select something, you have to really look into how the DOM structure is after it has initialized.

@webbiesdk Thanks! The issue is solved the same way you mentioned.


Build error on windows with Qt 5.9

When compiling under Windows 10 with Qt 5.9 I get a build error:
\home\carl\tmp\vsg\vsgQt\src\vsgQt\ViewerWindow.cpp(188): error C2039: 'cout': is not a member of 'std' [C:\cygwin64\home\carl\tmp\vsg\build\src\vsgQt\vsgQt.vcxproj]
If I add #include <iostream> to ViewerWindow.cpp, it compiles correctly and my test program successfully displays my 3d models.
(Note that I build from the command line in cygwin in order to get VulkanSceneGrapch and vsgQt into our development environment)

It works fine now!


unable to find settings being referenced

I am trying to find the popularity and search reports refered to in this article but I am unable to find them.
when I go to Site Settings > Site Administration > I do not see a Popularity Trends.
Same as when I go to Site Settings > Site Collection Administration > I do not see a Popularity and Search Trends.
This is in Sharepoint online/O365.

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

ID: eb55f79c-8118-474e-175b-f8cfb0737bc4
Version Independent ID: 43071ae4-5da9-056b-9bd9-333fb100c8ef
Content: View Popularity Trends and Most Popular Items
Content Source: SharePoint/SharePointOnline/view-popularity-trends-and-most-popular-items.md
Service: sharepoint-online
GitHub Login: @tklarsen
Microsoft Alias: tlarsen

@bernardw1 Thank you for this feed back
It's odd that Popularity Trends is not listed for you. I want to get this over to the SharePoint team for investigation. I also want to get you over to Support as well so that we can tackle this on both ends.
Here is a quick video on opening a ticket: https://www.youtube.com/watch?v=puuOy0sEg1Y
The team will get this prioritized into a sprint plan. Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

Thank you for the response. I will open a case with support tomorrow when I have some time to dig into the issue. (I am guessing at least that you wanted me to open the case with Support).

@bernardw1 yes please open a case with Support when you can.

This looks like a Modern Team site. You should instead be using the Site Usage. You can find this in the Gear icon -> Site Usage.


keep old method signature for backwards compatibility

This should fix backward compatibility for RewriteDataFilesCommitManager

Hey @zinking , i tried to make RewriteDataFilesCommitManager to be backwards compatible , please take a look and if its okay merge , tnx :)

if you prefer ill just open another pr so it wont bother you

I'm fine either way.


Remove all netlink/osl deps from ipam/ipamutils

Currently ipam/ipamutils has a bunch of dependencies
in osl and netlink which makes the ipam/ipamutils harder
to use independently with other applications. This PR
modularizes ipam/ipamutils into a standalone package
with no OS level dependencies.
Signed-off-by: Jana Radhakrishnan<EMAIL_ADDRESS>

LGTM


Statements should be added without reloading the page

The tool should be able to add statements without reloading the page. Right now, if I have to approve or reject 10 statements with 2 references each, the page reloads 30 times. When the page is reloaded it doesn't remember the exact position so I have to scroll to get back to where I was. This makes usage of the tool very time-consuming, not to mention the waste of bandwidth.

+1

:+1: Very annoying and inefficient.

Closing for the same reasons and rationale as https://github.com/google/primarysources/issues/106.

Re-opening and tagging as 'open task'.

I would expect that the usage of the tool would double if this would be fixed.

In order to ease us (the Wikidata dev team) to track the issues of the primary sources tool, we have created a Phabricator ticket for this issue: https://phabricator.wikimedia.org/T148179
Moving forward, please drop your comments onto that Phabricator ticket.


Remove noisy log statement

That statement create only noise within logging. So just remove it. Maybe forgotten from a debug session?

Very enough ! ;) Thnx !


[CONFIG-BREAKING CHANGE] Simplify DistributionExtension, remove setter methods

This might be controversial since it's a config-breaking change for anyone taking an upgrade. Rationale: simplify the semantics of the distribution object and make its behaviour more Groovy/Gradle standard. Example:
Old behaviour:
distribution {
  args 'foo'
  args 'bar'
}
assert distribution.args == ['bar'] // oops, probably unexpected

New behaviour:
distribution {
  args = ['foo']
  args = ['bar']
}
assert distribution.args == ['bar'] // expected as per above syntax

distribution {
  args = ['foo']
  args << 'bar' << 'boom'
}
assert distribution.args == ['bar', 'bar', 'boom'] // cool, can use standard groovy things

Coverage decreased (-0.07%) to 99.342% when pulling 2d837fc88b0896bcb75df43ae483954178c6c77b on rfink/simplify-config into 07df6a9dc84e9a1ad9ff0a52528adf1ffd12d9b1 on develop.

Rob, can you provide the context on this change?
I think you want to add a test case for the last example above as I believe that should include foo and not bar twice:
distribution {
  args = ['foo']
  args << 'bar' << 'boom'
}
assert distribution.args == ['foo', 'bar', 'boom'] // cool, can use standard groovy things

thanks, I have a typo in my example.

Context: I consider the current configuration mechanism a bit whacky and would like to remove tech debt.

Changes Unknown when pulling ff0bc1230972d3f9386fafbf230d42effe684136 on rfink/simplify-config into ** on develop**.

I'm not in favor of this change -- it's more idiomatic Gradle to use the setters, IMO.

that's not quite accurate, if I remember right. typically, gradle objects have setters (whose names start with set) and "accumulators" (for the lack of a better name). this would look like this:
distribution {
  args "foo"
  args "bar"
  // args is now [foo, bar]
  setArgs ["boom", "baz"]
  // args is now [boom, baz]
}

happy to support both here, but the current model is a little off IMO

Haven't seen the set method syntax -- this is a poor man's replication of the slightly fancier Action syntax the Gradle core stuff uses: https://github.com/gradle/gradle/blob/master/subprojects/publish/src/main/java/org/gradle/api/publish/PublishingExtension.java

here's an example from DefaultSourceDirectorySet.
    public SourceDirectorySet srcDirs(Object... srcDirs) {
        for (Object srcDir : srcDirs) {
            source.add(srcDir);
        }
        return this;
    }

    public SourceDirectorySet setSrcDirs(Iterable<?> srcPaths) {
        source.clear();
        GUtil.addToCollection(source, srcPaths);
        return this;
    }

will change this pr to adopt that convention.

Are there any examples of single-valued things? Not all of our parameters are iterable.

yep, standard setter
    public void setSourceCompatibility(Object value) {
        srcCompat = JavaVersion.toVersion(value);
    }

sourceCompatibility is done using the old container method instead of extensions; I think we want to model what we're doing after extensions.

rebased. to summarize:
Simplify the semantics of the distribution object and make its behaviour more Groovy/Gradle standard. Example:
Old behaviour:
distribution {
  args 'foo'
  args 'bar'
}
assert distribution.args == ['bar'] // oops, probably unexpected

New behaviour:
distribution {
  args = 'foo'
  args = 'bar'
}
assert distribution.args == ['foo', 'bar']

distribution {
  args 'foo'
  setArgs(['bar'])
}
assert distribution.args == ['bar']

lgtm. I think the = signs in your example of new behavior aren't supposed to be there, though.


sni_hosts under VirtualService renamed to sniHosts in 1.6.0

Tried to deploy the same VirtualService that was running on Istio 1.5.3 on Istio 1.6.3 - and got the following error.
ValidationError(VirtualService.spec.tls[0].match[0]): unknown field "sni_hosts" in io.istio.networking.v1alpha3.VirtualService.spec.tls.match;
The reason seems to be, in Istio 1.6+, sni_hosts under VirtualService is renamed to sniHosts.
Because this change is done under the same API version (http://networking.istio.io/v1alpha3) - thought this could be a bug.
WDYT?

The field name didn't change, the serialization/deserialization might have. What is the validation error from?

This is my VirtualService.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ecomm-virtual-service
spec:
  hosts:
  - "*"
  gateways:
  - ecomm-gateway.istio-system.svc.cluster.local
  tls:
    - match:
      - port: 443
        sni_hosts:
        - inventory.ecomm.com
      route:
      - destination:
          host: inventory-service
          port:
            number: 443

The validation error gets while applying the VirtualService definition.
\> k apply -f inventory.yaml

error: error validating "inventory.yaml": error validating data: ValidationError(VirtualService.spec.tls[0].match[0]): unknown field "sni_hosts" in io.istio.networking.v1alpha3.VirtualService.spec.tls.match; if you choose to ignore these errors, turn validation off with --validate=false

Thanks!

Right so what happened is in 1.6 we turned on open API schema validation in the CRDs. "sni_hosts" was never really right, but our internal logic reading CRDs treats it the same as camel case. Now we have a stricter validation basically

Solution:
Change casing from snake case to camel case: sni_hosts to sniHosts

Just documenting experience in case it helps anyone else on this:
My team ran into this & based on @howardjohn's explanation, we tried using sniHosts in all of our K8s clusters. We found that this did work with both newer & older ones & let us avoid if/elseing the sni_hosts/sniHosts based on the running K8s cluster version.


Cannot fetch from icr.io

I've been using JIB successfully for a long time now, however I'm trying to make use of IBM Semeru Java runtime.
The certified builds are not available in Docker Hub, only in icr.io - IBM's Container registry.
The integration between JIB & IBM's Container registry doesn't work.
Environment:

Jib version: 3.2.1
Build tool: Gradle 7.3.3
OS: MacOS 12.4

Description of the issue:
Setting JIB to use a base image from icr.ro ends up throwing the following error:
* What went wrong:
Execution failed for task ':jibDockerBuild'.
> com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Tried to pull image manifest for icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal but failed because: OCI index found, but accept header does not support OCI indexes

Doing a docker pull on the image works though:
docker pull icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal
certified-17-jdk-ubi-minimal: Pulling from appcafe/ibm-semeru-runtimes
54e56e6f8572: Pull complete
4f8ddd7f5a75: Pull complete
e5393f9ab5da: Pull complete
b33516b9ff85: Pull complete
64aeed9e771e: Pull complete
Digest: sha256:5849ede694ee8791cc4369afed2e1fd4b2b36b971b0792a4cc9069e042c25a31
Status: Downloaded newer image for icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal

Expected behavior:
Docker image is built successfully using the base image from icr.io
jib-gradle-plugin Configuration:
jib {
    from {
        image = 'icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal'
    }
    to {
        image = "personal/${rootProject.name}:" + version
    }
    extraDirectories {
        paths {
            path {
                from = file('src/docker/')
                into = file('/app/')
            }
            path {
                from = file("$buildDir/newrelic/")
                into = file('/app/')
            }
        }
    }
    container {
        jvmFlags = ['-javaagent:/app/newrelic.jar']
        creationTime = 'USE_CURRENT_TIMESTAMP'
    }
}

Log output:
* What went wrong:
Execution failed for task ':jibDockerBuild'.
> com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Tried to pull image manifest for icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal but failed because: OCI index found, but accept header does not support OCI indexes

This is a dup of #2749.
The reference icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal(:latest) is an OCI index, which is a list of pointers to multiple images of different platforms. In the FAQ, we say

OCI image indices are not supported (as opposed to Docker manifest lists).

(An OCI index is the OCI counterpart of the Docker manifest list format. Actually both formats are mostly same in practice.)
For now, the only workaround is to explicitly specify the SHA digest of the image for the platform you want to use (e.g., icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal:latest@sha256:xxxxxxxxx...).

@chanseokoh I'm trying to use your tip to get it working but I'm unsuccessful.
It doesn't work putting latest as you suggested, as the tag is already there.
I've tried setting it like this:
image = 'icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal@sha256:5849ede694ee8791cc4369afed2e1fd4b2b36b971b0792a4cc9069e042c25a31'

But I still get same error:
* What went wrong:
Execution failed for task ':jibDockerBuild'.
> com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Tried to pull image manifest for icr.io/appcafe/ibm-semeru-runtimes:sha256:5849ede694ee8791cc4369afed2e1fd4b2b36b971b0792a4cc9069e042c25a31 but failed because: OCI index found, but accept header does not support OCI indexes

Any other suggestions are very welcome.

Your SHA is still pointing to an OCI index. You should point it to an individual image.
Using crane (normally I use docker manifest inspect, but for some reason, icr.io doesn't work with it), I see the index has the following image pointers:
$ crane manifest icr.io/appcafe/ibm-semeru-runtimes:certified-17-jdk-ubi-minimal@sha256:5849ede694ee8791cc4369afed2e1fd4b2b36b971b0792a4cc9069e042c25a31 | jq
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:c821b606ab3afeaba9ab498d6703ae90aed398947e6ec14eece63d15da90cf35",
      "size": 1255,
      "platform": {
        "architecture": "s390x",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "digest": "sha256:3a832b84c9a96134dd439c7ba60c309e5857a8964ff34005cfc7559101235f58",
      "size": 1373,
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:3acd2e5f2b7ba66d05feca81d6ae6b3f4450aed0bb89bb34689e428f6bfdf8ab",
      "size": 1255,
      "platform": {
        "architecture": "ppc64le",
        "os": "linux"
      }
    }
  ]
}

So, for example, if you want to pull a linux/amd64 image, the digest is sha256:3a832b84c9a96134dd439c7ba60c309e5857a8964ff34005cfc7559101235f58.

It doesn't work putting latest as you suggested, as the tag is already there.

I think this is the issue of icr.io. In other registries, :latest in this case only serves as a comment.

It's funny that the OCI index mixes Docker format (application/vnd.docker.distribution.manifest.v2+json) and OCI format (application/vnd.oci.image.manifest.v1+json), but that shouldn't be a problem.

I'll have to manually update to newer versions when they become available

Yes. But we generally recommend explicitly specifying a digest for strong reproducibility.

@chanseokoh we moved away from that as we have a fast pace of releasing and for us it's more important to be on latest JDK versions as automatically as possible. This reduces maintenance work which allows us to spend time on other things.
But the bottomline is that this is an issue and I'm looking forward seeing it fixed.
I'll have a look if I can contribute myself.

I'll have a look if I can contribute myself.

I'll document what I can remember.
The OCI format and the Docker format for a "manifest list" (or "OCI index") look very much the same for our purposes, so it's not really that difficult to add support for OCI indexes. The OCIIndexTemplate class already exists, which is the OCI counterpart of the Docker format one V22ManifestListTemplate. Both template classes inherit ManifestListTemplate.
You'll need to update AbstractManifestPuller.getAccept() and declare that it accepts the OCI index. The detection and conversion logic should also be updated.
Next, implement iterative over the OCI index in PullBaseImageStep. That part assumes manifestTemplate is V22ManifestListTemplate).


fix: micro frontend routing via browser back button + replaced deprecated substr()

Angular Routing in micro frontends was broken if the back button of the browser was used.

@mw2498
Has this been fixed now, or is this still an outstanding issue?

@manfredsteyer
connectRouter does not really connect the different router instances for a popstate event as the url variable is still looking at the initial federated route and the right value must be ${location.pathname.substring(1)}${location.search}.
I've raised this concern multiple times in the past as well, looks not fixed yet unfortunately. Any help is much appreciated.


Npm not working

Even after updating to the latest version, the API is not working.

Not working for me either. When word2pdf requests the pdf it gets an html file instead.

I think the author of the server converter has changed the way to send data. Now, I don't have too much time to maintain and update the library bc I busy with my business.
Sorry for that, if you or others have any update, please make a PR or fork my repo and update it for the community.
Thank you.

I have the fix, working on a PR!

You can make a PR and I will merge and publish on npmjs.

done => https://github.com/VuongVu/word2pdf/pull/3

I didn't updated the package version, i'll let you do when publishing

@pointnet thank you so much. I updated & published to npmjs.

Still doesn't seem to work for me. I'm getting this error now:
TypeError: Cannot read property 'name' of undefined
at FormData._getContentDisposition (/home/cristi/projects/resume-architect/server/node_modules/form-data/lib/form_data.js:226:40)
at FormData._multiPartHeader (/home/cristi/projects/resume-architect/server/node_modules/form-data/lib/form_data.js:177:33)
at FormData.append (/home/cristi/projects/resume-architect/server/node_modules/form-data/lib/form_data.js:70:21)
at data (/home/cristi/projects/resume-architect/server/node_modules/word2pdf/index.js:53:10)
at new Promise (<anonymous>)
at Object.word2pdf [as default] (/home/cristi/projects/resume-architect/server/node_modules/word2pdf/index.js:34:22)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

I checked in local and its work.
You can use my example and notice the file path.

fixed by https://github.com/VuongVu/word2pdf/pull/4

If i use the code in #4 everything works. Thank you.
If you could update the npm package again I would be grateful.

@cristicismas check the new version

That's great, thanks!

Now I'm getting back html with an 'Internal Server Error' message. I suspect it's from their end since the html is basically their website, but I may be wrong.
This is what the html looks like:

I don't understand why the code from #4 worked before but it doesn't work now. Sorry to keep bringing this up. I don't think it's from my end, but again, I may be wrong.

They've just added a cookie protection stuff, i'm working on it right now

Please check https://github.com/VuongVu/word2pdf/pull/5 for cookie stuff

"Please, use our website directly https://convertonlinefree.com/WordToPDF.aspx"
This is what I'm getting back :( I guess they don't want to support scrapers anymore.

same here... let me check how to solve it

I suppose you could change the user agent to fake being and actual user?

cookie is now encoded... and it's not base64

fixed in https://github.com/VuongVu/word2pdf/pull/7

#7 Works great, thank you.

when i testing #7 and result is error "Internal server error". But yesterday is fine.

The website is crashing also on Word to PDF, we need to wait for them to fix their issue.
Script in the package is working, you can try with https://convertonlinefree.com/ImageToPDFEN.aspx to check that everything is fine on our side.

I use this url https://convertonlinefree.com/ImageToPDFEN.aspx and i got
the same error.
Pada tanggal Sen, 6 Apr 2020 13.46, pointnet<EMAIL_ADDRESS>menulis:

The website is crashing also on Word to PDF, we need to wait for them to
fix their issue.
Script in the package is working, you can try with
https://convertonlinefree.com/ImageToPDFEN.aspx to check that everything
is fine on our side.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/VuongVu/word2pdf/issues/2#issuecomment-609597033, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMUV3M55ABAT2B2CHKRMHELRLF3EFANCNFSM4MAHBUKA
.

There's a bit of code to change to use the ImageToPDF stuff but it works well.
See on their website, you can convert an image but not a word document.

Oh i see, but i need to convert docx to pdf. When the final update so the
docx can be converted bro? Thanks
Pada tanggal Sen, 6 Apr 2020 14.25, pointnet<EMAIL_ADDRESS>menulis:

There's a bit of code to change to use the ImageToPDF stuff but it works
well.
See on their website, you can convert an image but not a word document.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/VuongVu/word2pdf/issues/2#issuecomment-609612437, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AMUV3M57M6WN4W2RIAMYBVDRLF7YBANCNFSM4MAHBUKA
.

There's nothing to change in this package, we just have to wait that convertonlinefree fix his issues regarding word to pdf

thanks bro for your infomation.

https://convertonlinefree.com/ is working for doc and docx now. But this npm is still not working. Please check.

My observation :
This works if we make the request from local, but not when it is made from a server

I'm getting back this html now:
<title>Object moved</title>

Object moved to here.

As an alternative I'd recommend this service (Which I'm maintaining):
https://www.npmjs.com/package/iva-converter
something to know is that convertonlinefree.com and the creator of the package don't know each other. And I spoke to convertonlinefree.com they don't want him using this package.


Revert "Use a safer command for rebase"

Reverts rust-lang/triagebot#1808. As found by RalfJ, we cannot hardcore this message for a specific repository :man_facepalming: A silly mistake on my part.

@Kobzol If you want to make this happen, the URL for the repository can be obtained with something like event.issue.repository().url(&ctx.github).


Pipeline changes

Added Features

Ignore pypy-39 for linting
Import requirements from requirements files

Bug Fixes
Related Issues

[ ] Released Need

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.355%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
616

Relevant Lines:
620

💛  - Coveralls


ModuleNotFoundError: No module named 'tag'

I just installed pyswf 1.5.4 for the first time from pip and was not able to import it due to this error:
>>> from swf.movie import SWF
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/site-packages/swf/movie.py", line 4, in <module>
    from tag import SWFTimelineContainer
ModuleNotFoundError: No module named 'tag'

Looks like this module doesn't support Python 3.


Add tests for upload file worker

Coverage increased (+7.6%) to 71.541% when pulling 02c256e25a7431ab91ff37ea2960ef805b12789e on test_upload into 7190faf5f938c162aaa6e4559518eba3d7fd70ee on bridge2.0.


Buttons in nav list are 100% width by mistake

See fiddle for example:  http://jsfiddle.net/prazgod/RuuVm/5/
The button inside a nav list should not be full width but only wide enough for text as per everywhere else you use a btn

(this issue is a note to self to fix and provide a pull at a later date ;-) )

If you want to include a button in the sidebar, do not include in the nav list—make it a sibling instead.


fix: issue-23

fix https://github.com/Kotlin/Storytale/issues/23

@whitescent, there are a few conflicts. Could you please rebase the branch?


feat: upgrade ts to 4.1.x

Just updates TS to 4.1.x which fixes type generation for generic class extensions

Actually, this might cause issues, at least with libp2p. The generated build has issues with the Event Emitter per https://github.com/microsoft/TypeScript/issues/41800. This will only get in 4.2

Actually, this might cause issues, at least with libp2p. The generated build has issues with the Event Emitter per microsoft/TypeScript#41800. This will only get in 4.2

That got me thinking maybe we can avoid that problem by using https://www.npmjs.com/package/typed-events.ts and not have to wait for 4.2

That got me thinking maybe we can avoid that problem by using https://www.npmjs.com/package/typed-events.ts and not have to wait for 4.2

Sounds good. Could you add it to https://github.com/libp2p/js-libp2p/pull/831 ?
This will need a merge/rebase from 0.30 too. Perhaps better to open a new PR and copy the changes

yep i also need this to fix these
src/index.js:1:1 - error TS9006: Declaration emit for this file requires using private name 'Suffix' from module '"/Users/hd/code/pl/js-datastore-core/src/shard"'. An explicit type annotation may unblock declaration emit.

but i think this will break js-ipfs right @achingbrain ?

Ok, let's just wait for their release before updating our end

This will need running over js-ipfs too<EMAIL_ADDRESS>at least broke loads of things.


Added extensions + extras in some types.

These properties are documented but they aren't implemented in the typedefs.

Thanks!


Release package on GitHub

Yank library from RubyGems and release package on GitHub

@rkcudjoe Currently getting this error in CI:
Could not find convertkit-ruby-0.0.2 in any of the sources

I see that you yanked the old versions from RubyGems without providing alternative steps in your README. Could you update your README? As is, the instructions won't work because they're relying on rubygems.org.

@etagwerker I'm sure this is old and irrelevant now, but wanted to throw this out there just in case someone like me stumbles upon it :)
What I did for now is just fork the repo and point to my own fork in my Gemfile:
gem 'convertkit-ruby', require: 'convertkit', git: 'https://github.com/{your-username}/convertkit-ruby'


OneGate context attributes do not respect contextualization in Sunstone

Description
When update a VM template in the CONTEXT attributes such as REPORT_READY or TOKEN with contextualized parameters:
CONTEXT = [
  REPORT_READY = "$ONEGATE_ENABLE",
  TOKEN = "$ONEGATE_ENABLE" ]

These are overwritten by the value "YES" after update:
REPORT_READY = "YES" instead of REPORT_READY = "$ONEGATE_ENABLE"
TOKEN = "YES" instead of TOKEN = "$ONEGATE_ENABLE"
Expected behavior
Respect contextualization values
Details

Affected Component: Sunstone
Hypervisor: KVM
Version: 5.12

Additional context
Add any other context about the problem here.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

PRs to merge:

one: https://github.com/OpenNebula/one-ee/pull/707
doc: https://github.com/OpenNebula/docs/pull/1424

PRs to merge:

one: https://github.com/OpenNebula/one-ee/pull/707
doc: https://github.com/OpenNebula/docs/pull/1424


Exception when opening a file modified in Calibre

Hi,
Calibre has a function to embed metadata into PDF files. I have a couple of files that went through that process. When I try to open them in your editor, I get the following error message:

Error while opening file:
org.apache.xmpbox.xml.XmpParsingException: Cannot find a definition for the namespace http://calibre-ebook.com/xmp-namespace

This is clearly an exception coming from the xmpbox library. But I believe, you could handle this exception and offer the user to remove all metadata related to Calibre namespace (keeping the actual XMP data).
Is this something you would like to improve on?

Yeah, I know about this issue.
I have opened issue with pdfbox https://issues.apache.org/jira/browse/PDFBOX-3440 .
But it seems it's a design limitation in the 2.0 version, so I reverted to using 1.8.12 which doesn't have this problem.
So this is fixed in 2.0.2, but I will leave the issue open for now.

Hi, thanks for the quick response. I hope the pdfbox team fixes it soon.