onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op

我正在尝试推理onnxruntime 自定义算子。在尝试运行项目test_pyops.py时出现 Unsupported version '11' in custom op 'PyAddEpsilon的问题。文件中并未设置op_version版本,环境onnx版本如下：
i am trying to run onnx model by myself_op, but there some troubles in run test_pyops.py ,while file from onnxruntime-extensions/test/test_pyops.py in this project, but there is not setting about version=9.  i am in the water,

onnx                   1.16.0
onnxruntime            1.10.0
onnxruntime_extensions 0.10.1
onnxsim                0.4.36
pytorch-quantization   2.1.3
torch                  1.10.0
torchaudio             0.10.0
torchpack              0.3.1
torchvision            0.11.0

/home/zgq/miniconda3/envs/dc/bin/python /home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py
2024-04-23 15:28:37.443787445 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.443806469 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.443816508 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.443824182 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0

2024-04-23 15:28:37.445627441 [E:onnxruntime:, inference_session.cc:1448 operator()] Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyAddEpsilon

E2024-04-23 15:28:37.446577329 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.446588639 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.446596063 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.446602785 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
.2024-04-23 15:28:37.447812435 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.447823636 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.447831360 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.447838242 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0

2024-04-23 15:28:37.448074131 [E:onnxruntime:, inference_session.cc:1448 operator()] Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'CustomOpOne

EE2024-04-23 15:28:37.449185483 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.449196954 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.449204297 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.449211570 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.449411394 [E:onnxruntime:, inference_session.cc:1448 operator()] Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyOpJoin
E2024-04-23 15:28:37.450319716 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.450331227 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.450338720 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.450345483 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0

2024-04-23 15:28:37.450543573 [E:onnxruntime:, inference_session.cc:1448 operator()] Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyNegPos

E2024-04-23 15:28:37.451292325 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.451303535 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTextToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.451311179 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name OpenAIAudioToText (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.451318022 [W:onnxruntime:Default, schema_registry.cc:78 RegisterOpSchemaInternal] Trying to register schema with name AzureTritonInvoker (domain: com.microsoft.extensions version: 1) from file custom op registered at runtime line 0, but it is already registered from file custom op registered at runtime line 0
2024-04-23 15:28:37.451512135 [E:onnxruntime:, inference_session.cc:1448 operator()] Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyReverseMatrix
E
ERROR: test_add_epsilon_python (main.TestPythonOp)
Traceback (most recent call last):
File "/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py", line 168, in test_add_epsilon_python
sess = _ort.InferenceSession(onnx_model.SerializeToString(), so, providers=['CPUExecutionProvider'])
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 335, in init
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 379, in _create_inference_session
sess.initialize_session(providers, provider_options, disabled_optimizers)
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyAddEpsilon
======================================================================
ERROR: test_cc_operator (main.TestPythonOp)
Traceback (most recent call last):
File "/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py", line 213, in test_cc_operator
sess0 = _ort.InferenceSession(ser, so, providers=['CPUExecutionProvider'])
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 335, in init
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 379, in _create_inference_session
sess.initialize_session(providers, provider_options, disabled_optimizers)
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'CustomOpOne
======================================================================
ERROR: test_check_saved_model (main.TestPythonOp)
Traceback (most recent call last):
File "/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py", line 202, in test_check_saved_model
with open(os.path.join(this, 'data', 'custom_op_test.onnx'),
FileNotFoundError: [Errno 2] No such file or directory: '/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/data/custom_op_test.onnx'
======================================================================
ERROR: test_python_join (main.TestPythonOp)
Traceback (most recent call last):
File "/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py", line 224, in test_python_join
sess = _ort.InferenceSession(onnx_model.SerializeToString(), so, providers=['CPUExecutionProvider'])
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 335, in init
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 379, in _create_inference_session
sess.initialize_session(providers, provider_options, disabled_optimizers)
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyOpJoin
======================================================================
ERROR: test_python_negpos (main.TestPythonOp)
Traceback (most recent call last):
File "/home/zgq/code/DCMMDet3D/work_dirs/onnxruntime/test_pyops.py", line 179, in test_python_negpos
sess = _ort.InferenceSession(onnx_model.SerializeToString(), so, providers=['CPUExecutionProvider'])
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 335, in init
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/zgq/miniconda3/envs/dc/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 379, in _create_inference_session
sess.initialize_session(providers, provider_options, disabled_optimizers)
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: /onnxruntime_src/onnxruntime/core/session/custom_ops.cc:121 onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op 'PyNegPos

Ran 7 tests in 0.009s
FAILED (errors=6)

onnxruntime-extensions needs a ONNXRuntime over than version 1.11, the higher the better, since some API function are only available after that version. That's why you see the error message of "Unsupported version '11' ", which is equal to onnxruntime 1.11.

thanks for replay。 i will update the version number
---- Replied Message ----
| From | Wenbing @.> |
| Date | 05/01/2024 02:31 |
| To | microsoft/onnxruntime-extensions @.> |
| Cc | guangqianzhang @.>,
Author @.> |
| Subject | Re: [microsoft/onnxruntime-extensions] onnxruntime::CustomOpKernel::CustomOpKernel(const onnxruntime::OpKernelInfo&, const OrtCustomOp&) Unsupported version '11' in custom op (Issue #696) |
onnxruntime-extensions needs a ONNXRuntime over than version 1.11, the higher the better, since some API function are only available after that version. That's why you see the error message of "Unsupported version '11' ", which is equal to onnxruntime 1.11.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Submit a Cloud Definition - disaster recovery

Fill out the JSON below with the following.

word [REQUIRED]: The word you are defining. Check this URL for all words we currently have.
content [REQUIRED]: The definition. No more than 3 sentences.
learn more URL [REQUIRED]: Page where people can visit to learn more about the word.
tag [REQUIRED, select one]: Tech category the word fits in. Options: compute, security, service, general, analytics, developer tools, web, networking, database, storage, devops, ai/ml, identiy, iot, monitoring.
abbreviation [OPTIONAL]: If the word is commonly abbreviated, please provide it. For example, command line interface is often abbreviated as CLI.
author name [REQUIRED]: Your name.
author link [REQUIRED]: The URL you want your name to link to.

{
"word": "disaster recovery",
"content": "The process through which a company addresses outages and disasters to ensure business and application continuity. Key components include a timeline for recovery, backups, anticipating possible problems and addressing single points of failure.",
"learn_more_URL":"https://aws.amazon.com/what-is/disaster-recovery/",
"tag":"general",
"abbreviation": "",
"author_name":"Jonathan Garrels",
"author_link": "https://www.linkedin.com/in/jonathan-garrels/"
}

hi i like to contribute but you've write all json file what can i do?

Great one, thank you for submitted, I've added it :)


RELEASE 3.0.0

Readme not updated yet,
Major changes

add middlewares

file upload
API Request restriction
API Request logger

Trying to remove *.routes.ts - not safe response - responsing directly.
Modify Blueprint classes, add to route by controller.
Warn by console try not to use *.routes.ts (still available though)

Add boilerplate endpoints,  models.
models : User.ts, Session.ts
Created jwt access-refresh token layer.

Done! 💯 !!
TODO : add some more boilerplate endpoints, update Readme.md

Will be merged when Readme.md is ready!

Cancel, merge now and modify Readme.md later


feat(source packaging): allow custom output path in task

This fixes packaging an app's source code for Sentry v10 when building in highly reproducible environments (like nix), where the deps' sources are read-only (i.e. cannot write to Sentry's priv dir).
I've added an example to the docs.

Thanks @razielgn! 💟


Issue 4334: Excluded fields are also excluded when a panel set is exp…

…licitly defined on a model.
Added functionality for removing excluded fields from model panel set, based on issue 4334.
With test.

Thank you Lucas ;)

@BertrandBordage could you revert c83a712？ It didn't take MultiFieldPanel into account, and impacted the modeladmin, settings, and snippets edit views. The original "getattr" approach works.


UAT | Make submissions by Benchclerk

Benchclerk has functionality to upload documents as submissions
This functionality has not been activated
https://www.figma.com/design/fwFYdlymVjggLOltqnXWsY/Hand-off-(Digit)?node-id=1805-110893&t=UDyGZS0znyle9eUB-0

slack discussion here - https://egov-talk.slack.com/archives/C06QTSJN83V/p1723473851923229

@manimaarans  can you update and close the ticket or move to backlog based on the status of the ticket


Deployment error

Hello,
I can't deploy the solution.

Solved
I added a file global.json in the directory : repository
global.json :
{
  "sdk": {
    "version": "3.1.202"
  }
}

https://stackoverflow.com/questions/62595408/error-access-is-denied-deployment-to-azure-app-services


Add RAW_RPC_REQUEST and RAW_RPC_RESPONSE to RequestLog and ResponseLog

Motivation:
There's currently no way to get the protocol-dependent RPC request and
response objects from RequestLog and ResponseLog.
Modifications:

Add RAW_RPC_REQUEST and RAW_RPC_RESPONSE attribute
Set RAW_RPC_REQUEST and RAW_RPC_RESPONSE attribute where applicable
Add test cases that ensures the required attributes are available in
RequestLog and ResponseLog
Improve MessageLog.toString()

Optimize using StringBuilder in lieu of MoreObjects.ToStringHelper
Exclude RAW_RPC_REQUEST and RAW_RPC_RESPONSE from the attributes
Exclude 'channel' property since it's often logged by service logger
Use simpler attribute names

Miscellaneous:

Fix incorrect 'user-agent' header

Result:

A user can access the low-level details about RPC calls.
Log messages from LoggingClient/Service look better.

Current coverage is 65.57% (diff: 79.06%)

Merging #283 into master will increase coverage by 0.06%

@@             master       #283   diff @@
==========================================
  Files           303        303
  Lines         11954      12001    +47
  Methods           0          0
  Messages          0          0
  Branches       1750       1758     +8
==========================================
+ Hits           7832       7870    +38
- Misses         3287       3294     +7
- Partials        835        837     +2

Powered by Codecov. Last update f6eb92f...2bd530f

General comment about representing attribute value as Object[]:
I'm not sure if an array of object is a good way to gather those values.
However, this attribute would be used rarely so we might don't have to take care of interface that much but if someone want's to use this attribute he/she might have to scan THttpService to understand how this attribute supplied.
For RAW_RPC_REQUEST, it might not present when request contains unknown method name or invalid argument bytes even though server succeeds to deserialize header.
For RAW_RPC_RESPONSE, it doesn't present if a function is oneway, and even though it presents the second element can either be TBase or TApplicationException.
This sounds bit hard to understand this attribute. Users have to write something like below if they want to handle both raw request and raw response for example.
Object reqObjs = req.attr(RequestLog.RAW_RPC_REQUEST).get();
if (reqObjs == null) {
    // request might have contained invalid method name or args
    return;
}

Object[] reqElements = (Object[]) reqObjs;
TMessage reqHeader = (TMessage) reqElements[0];
TBase thriftArgs = (TBase) reqElements[1];

Object resObjs = res.attr(ResponseLog.RAW_RPC_RESPONSE).get();
Object[] resElements = (Object[]) resObjs;

TMessage resHeader = (TMessage) resElements[0];
if (resElements[1] instanceof TApplicationException) {
    appException = (TApplicationException) resElements[1];
} else if (resElements[1] != null) {
    response = (TBase) resElements[1];
} else {
    // one way
}

This is bit nsaty I guess; lot's of type casting and magic number indexes. Thing get much worse if the code needs to take care of different protocol(i.e, protobuf).
Can't we have a simple class like below, then user's code can be much cleaner and robust for future breaking change I guess.
public class ThriftMessage {
    private final TMessage header;
    private final TBase<? extends TBase<?, ?>, ? extends TFieldIdEnum> value;
    private final TApplicationException appException;

    public Optional<TBase<...>> getValue() { ... }

    public Optional<TApplicationException> getAppException() {...}
}

How about separating commit for "Fix incorrect 'user-agent' header" this change at least?

Out of scope but as I just found; can we remove these lines and use ThriftCall.serviceType() instead? https://github.com/line/armeria/blob/master/src/main/java/com/linecorp/armeria/server/thrift/ThriftCallService.java#L96-L105

How about separating commit for "Fix incorrect 'user-agent' header" this change at least?

#284. Please review it as well. :-)

Out of scope but as I just found; can we remove these lines and use ThriftCall.serviceType() instead? https://github.com/line/armeria/blob/master/src/main/java/com/linecorp/armeria/server/thrift/ThriftCallService.java#L96-L105

Can't do that because the text that comes before the colon may not be a class name.

@kawamuray Ready for another round.

@trustin  finished second round review and left few comments. Please add fixup commits instead of squashing and force pushing so I could finish reviewing much quicker. I won't merge until you finish squashing commits even I say LGTM :)

finished second round review and left few comments. Please add fixup commits instead of squashing and force pushing so I could finish reviewing much quicker. I won't merge until you finish squashing commits even I say LGTM :)

You can click the 'Squash and merge' button, edit the commit message and merge! :-)
https://github.com/blog/2141-squash-your-commits

You can click the 'Squash and merge' button, edit the commit message and merge! :-)

Didn't know this, great!

LGTM 👍 Really appreciate you. Will merge after the build succeeds.

Thanks for a great review, @kawamuray


Not cropping after capture in Android

I have the latest release, but am unable to make the cropping dialog appear after capturing an image. It works when I select an image, and works as expected in iOS.
Here's my options:
const IMAGE_PICKER_OPTIONS = {
  title: 'Select Profile Image',
  takePhotoButtonTitle: 'Take Photo',
  chooseFromLibraryButtonTitle: 'Choose from Library',
  cancelButtonTitle: 'Cancel',
  mediaType: 'photo',
  quality: 1,
  aspectX: 1,
  aspectY: 1,
  allowsEditing: true,
  noData: true,
  storageOptions: {
    skipBackUp: true
  }
}

I'm getting the image returned from the camera and it's being uploaded to the server, albeit uncropped.

On some app the crop don't perform, i don't know if we can do something about it.
I will investigate further and see if i can found a fix.

Thanks!

Well i just found that the only way to have a crop that work on all app is to make a custom crop activity, seems to be the best choice, but will take a really big amount of time.
Or the other solution is to use a JAVA library that do the crop but i don't plan on using anything else than the native API

So you're saying in the native API it doesn't progress to cropping after capture?

Yep.

On some app the crop don't perform

Hi @yfuks. In which cases the video trimming scene is presented in Android? I need the feature for both iOS and Android and am willing to implement whatever is needed. My Android-fu is rusty so I'd appreciate any pointers as to where to start :)

In which cases the video trimming scene is presented in Android?

We were talking about image croping there. So to answer your question : actually never (in both iOS Android).
Well a pointer to start (just found it with google) :
how to trim the video programatically in android
AVSimpleEditoriOS

Ok, thanks! The video trimming is presented in iOS though.


Update to follow the new cordova format

@sencenan This is the canonical pull request to be merged. Again pretty please remove the npm registry so we can upload the maintained version.

@ggozad Hi, the package's ownership is transition to you on npm.

Thank you @sencenan for the fast resolution. I will release tomorrow:)


4.0.3 "fetch" command results are always empty

Description
Sending Command "fetch" to a "Hue Bridge" node always results in an empty array. (no matter which data to fetch (groups, sensors, lights, scenes...)
Flow to Reproduce
[{"id":"c6f55db5099d4b58","type":"hue-bridge-node","z":"504917ce2da1f7ee","name":"","bridge":"24cc2049.752bc","autoupdates":false,"skipglobalevents":false,"initevents":false,"x":510,"y":1160,"wires":[["3596ecbf7f4ae22c"]]},{"id":"3596ecbf7f4ae22c","type":"debug","z":"504917ce2da1f7ee","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":670,"y":1160,"wires":[]},{"id":"efe44d84d393323f","type":"inject","z":"504917ce2da1f7ee","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"fetch\":\"groups\"}","payloadType":"json","x":290,"y":1160,"wires":[["c6f55db5099d4b58"]]}]

Expected behavior
The Hue Bridge Node should return a list of all groups/lights/scenes/sensors on fetch commands (as in previous versions).
Screenshots
Response of previous Versions of HueMagic

Response of 4.0.3

Node-RED version: 2.1.4
NodeJS version: v14.18.2
Device running Node-RED: Docker Container (nodered/node-red) on a RaPi4

Please take a closer look to the documentation. The available fetch commands have changed in the v4: https://github.com/Foddy/node-red-contrib-huemagic#get-all-devices-and-resources

Hey foddy - you're totally right. But the new commands dont help me either.
i cant determine which light is in which group (i got this info with the v3-groups command).
i could not access any scene data in any case.
background: My implementation in node red was completely dynamic. I read the group -> light mapping and the matching scenes from the bridge and used that data in my flow. This is impossible now.
should i add this functionality (i guess thats lost with the huejay removal) or do you got other plans for that kind of "meta information"?

Hi,
is there an alternative way to fetch all scenes and groups?
I need these data also and it was very easy at the old version with the fetch command

+1 would also like to have fetch working again to get a list of all scenes. I've built a flow that loops through all scenes after the press of a button, so I can easily swap it with a simple physical button.


Avoid bogus CS0433

See https://github.com/OmniSharp/omnisharp-roslyn/issues/786
We need to set IgnoreCorLibraryDuplicatedTypes with reflection.

Since we use Roslyn compiler APIs rather than manually compiling with CompilationOptions this is handled automatically.


Bug Report: Pieces reported as stopped when they're not

About me
This bug report is posted on behalf of the BBC
Observed Behavior
Pieces that are stopped either via stopPiecesOnLayers or stopPieceInstances don't always stop.
They continue to show in the GUI as playing and the timeline objects continue to exist but the database shows them as stopped and thus they cannot be stopped without inserting another piece on the same layer.
{
    "_id": "_OPGI0kSC8f98MBOHDY3zSJOXHc__s7G93nXmWcvFivTbe_jv33kKaXSuNunW5AG",
    "rundownId": "2kgghfTRYjAlP5g9OHExeWfRfz0_",
    "playlistActivationId": "u6hBjd8Gxcbb3tK6F",
    "partInstanceId": "_OPGI0kSC8f98MBOHDY3zSJOXHc__s7G93nXmWcvFivTbe",
    "piece": {
        "pieceType": "normal",
        "externalId": "4QKGx03_lgcT8d2RPgoWwncw7Ec__audio",
        "enable": {
            "start": 39290
        },
        "name": "OS 2 Audio",
        "sourceLayerId": "audio_os_2",
        "outputLayerId": "pgm_audio",
        "content": {},
        "lifespan": "part-only",
        "_id": "jv33kKaXSuNunW5AG",
        "startPartId": "_OPGI0kSC8f98MBOHDY3zSJOXHc_",
        "invalid": false
    },
    "dynamicallyInserted":<PHONE_NUMBER>628,
    "reportedStartedPlayback":<PHONE_NUMBER>743.5,
    "plannedStartedPlayback":<PHONE_NUMBER>743.5,
    "reportedStoppedPlayback":<PHONE_NUMBER>818.5,
    "plannedStoppedPlayback":<PHONE_NUMBER>818.5
}

For example stopping 5 layers using stopPiecesOnLayers results in core reporting the cropping of only 4 layers
{"level":"info","message":"Blueprint action: Cropping PieceInstance \"_OPGI0kSC8f98MBOHDY3zSJOXHc__sYbadkxf8fXn4bLg8_CypP6SRsfsTQeRfnq\" to<PHONE_NUMBER>540","source":"studio:studio0"}
{"level":"info","message":"Blueprint action: Cropping PieceInstance \"_OPGI0kSC8f98MBOHDY3zSJOXHc__sYbadkxf8fXn4bLg8_jtRBkGh2DCFDe2STu\" to<PHONE_NUMBER>540","source":"studio:studio0"}
{"level":"info","message":"Blueprint action: Cropping PieceInstance \"_OPGI0kSC8f98MBOHDY3zSJOXHc__sYbadkxf8fXn4bLg8_8tSjLkceoeaDq8ZRT\" to<PHONE_NUMBER>540","source":"studio:studio0"}
{"level":"info","message":"Blueprint action: Cropping PieceInstance \"_OPGI0kSC8f98MBOHDY3zSJOXHc__sYbadkxf8fXn4bLg8_6xoYTX85PWTMqXpGo\" to<PHONE_NUMBER>540","source":"studio:studio0"}

Expected Behavior
Pieces should stop when requested
Version
release51
Severity / Impact
Not currently an issue as enabling multi-gateway mode 'fixes' this issue
Multi-gateway mode also appears to fix #1118
Level of Involvement
Just raising awareness

@PeterC89 This sounds like this could be the same issue as we have seen at NRK. The fix for that was 7485d2b78db95e15c9fb2a77d3015053ba35d907, could you retest with that fix to see if that fix resolves this?

I've just tested and am still seeing this problem sadly even with multi-gateway mode enabled 😞


UseFileNameAsKeyContentAsValue function import invalid in examples/file/ main.go

FileHandler has been moved to package utils from package filesource

fix :
add import github.com/go-chassis/go-archaius/sources/utils
remove import github.com/go-chassis/go-archaius/sources/file-source
modify line26 to err = archaius.AddFile("f3.yaml", archaius.WithFileHandler(utils.FileHandler(utils.UseFileNameAsKeyContentAsValue)))

would you like to raise a pull request, thanks

would you like to raise a pull request, thanks

ok

FileHandler link in README.md also invalid because same problem

plz help us to correct the README, thanks


Update aerf.io/k8sutils digest to ffa1fae

This PR contains the following updates:

Package
Type
Update
Change

aerf.io/k8sutils
require
digest
1ddd1cc -> ffa1fae

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

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

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Make a logo

Temporarily using this as the logo in the docs.

Closing since it doesn't seem like we're going to get to this and the public domain one is fine.


ObjectAppendingMarker: Error in print the field with type Optional

I'm using java 8 and the type Optional (Optional, optional, etc), but the data printed from logstash encoder, show the Address.id.present: true instead of Address.id: 100
Please add suport for java 8:
ObjectMapper mapper = new ObjectMapper().registerModule(new Jdk8Module());
https://github.com/FasterXML/jackson-modules-java8

Hi,
I'll have to see if the Jdk8Module can be safely added by default, and retain java 6 and 7 runtime compatibility.
In the meantime, you can customize the ObjectMapper however you like (including registering additional modules) by using a JsonFactoryDecorator.
See here

Closing this for now.  Cannot safely add the Jdk8 Module while logstash-logback-encoder still supports java 7.   As mentioned in my previous comment, the jdk 8 modules can be added via a JsonFactoryDecorator


Add basic subnet support

While verifying the work in https://github.com/puppetlabs/puppetlabs-aws/pull/34 I extended the acceptance tests and fixed a bug when creating instances in subnets without specifying a security group. This PR replaces #34 (it contains the same commits, plus the tests and fix)

I'm confused by ae4f390... I'm guessing you didn't rebase / address merge conflicts up through c369dd9 prior to adding your tests / other changes in?  Makes for a confusing commit to review.

Closing in favour of https://github.com/puppetlabs/puppetlabs-aws/pull/61


Error : Class 'Doctrine\Common\Lexer' not found

I'm receiving this error when trying to call $lexer = new  Lexer($prefixData[$loopCounter]->regex);. Is this a known issue?

It appears as though the import in Lexer.php should be use Doctrine\Common\Lexer\AbstractLexer as BaseLexer;.

Error still persists on dev-master


New Data Source from ADS - Partition

New partition data source.

TBD based on mappings and discussion, could be used for T1542.003/T1561


chore(clerk-react,shared): Eliminate missing frontendApi error message

Type of change

[x] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[ ] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[ ] @clerk/clerk-js
[x] @clerk/clerk-react
[ ] @clerk/nextjs
[ ] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[ ] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/clerk-sdk-node
[x] @clerk/shared
[ ] build/tooling/chore

Description

[ ] npm test runs as expected.
[ ] npm run build runs as expected.

Resolves AUTH-160

Se #


Revert "weekly live"

Reverts MicrosoftDocs/microsoft-365-community#725

Docs Build status updates of commit e0c2fc3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/what-is-content-type.md
:bulb:Suggestion
View
Details

Community/basic-security-set-up-for-microsoft-365.md
:white_check_mark:Succeeded
View

Community/what-is-content-type.md

Line 35, Column 1: [Suggestion: duplicate-alt-text - See documentation] Alt text 'Document in a manila folder with metadata' is duplicated. Within an article, alt text must be unique.
Line 43, Column 1: [Suggestion: duplicate-alt-text - See documentation] Alt text 'Document in a manila folder with metadata' is duplicated. Within an article, alt text must be unique.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[CWS] Fix security profile sliding window

What does this PR do?
This PR:

adds a missing metric increment
update a metric tag name to not be aggregated by the post image_tag addition
update the max of security profile versions from 10 to 20
check the profile event type state instead of the global state

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


run10x - No such file or directory ../_log

Good day,
I have a cell ranger (version 1.3.1) output directory. I've tried running velocyto for a 10x data as prescribed in the documentation, and I receive the following error:
File "/anaconda3/lib/python3.6/site-packages/velocyto/commands/run10x.py", line 77, in run10x     if "Pipestance completed successfully!" not in open(os.path.join(samplefolder, "_log")).read(): FileNotFoundError: [Errno 2] No such file or directory: 'my_10x_directory/_log'
I have verified that "my_10x_directory" contains the documents paths and directory mentioned in the instructions, but there appears to be a hang up with creating the log file. Thank you for your help.

Thank you for reporting!
I am just checking that the _log file created by cellranger is reporting explicitelly "Pipestance completed successfully!" message. This is  to avoid that users encounters problems with velocyto just because the cellranger run was not successful.
Are you sure the cellranger run completed correctly?
Of course, it might be that a newer or older version of cellranger is reporting a successful run in another way; but I am not fully aware of that, sorry. Let me know if that is the case here.
I could just suppress that check and just report a warning instead of throwing an error.

Indeed, it may be related to using an older version of cell ranger. We generated the data set nearly a year ago and it looks great. A warning instead of an error would be great. Thanks.

Ok it was pretty simple. 0.17.8 just released fixes your problem (just wait 5 min for the pip unpload)


build breakage in osx

OSX 10.8.5
Kept getting strange errors linking against the std C++ lib:
cc -g -O2 -Wall -Wextra -Isrc -pthread -rdynamic -DNDEBUG  -D_FILE_OFFSET_BITS=64 src/mongrel2.o -o bin/mongrel2 build/libm2.a -lzmq -ldl -lsqlite3 -stdlib=libstdc++
clang: warning: argument unused during compilation: '-pthread'
Undefined symbols for architecture x86_64:
  "std::string::find(char const*, unsigned long) const", referenced from:
      zmq::socket_base_t::parse_uri(char const*, std::string&, std::string&) in libzmq.a(libzmq_la-socket_base.o)
  "std::string::size() const", referenced from:
...

Looking into it, there appears to be two different implementations of the c++ std lib in OSX?  I don't know much about C++ programming, but adding a new build target helped out (PR inbound).  Not sure if that's the correct solution, but we can work it out in the PR.  Big fan of your work, btw.

I was unable to reproduce this


Order of options where there are list options and values

Hi.
The attached file contains the configuration to parse a number of options that consist of list of elements and finally a list of filenames (after the --).
The problem appear when the last option prior to the -- is a list based option. In that case the parser responds with: 'A required value not bound to option name is missing'
The following command line work with the provided C# configuration:
--modules ../utilities/x64/Debug,../auxtool/x64/Debug --outdir ./x64/Debug -- m_xfunit.f03 m_xfunit_assertion.f03
The following command line does not (with the error mentioned above)
--outdir ./x64/Debug --modules ../utilities/x64/Debug,../auxtool/x64/Debug -- m_xfunit.f03 m_xfunit_assertion.f03
Am I overlooking something or is this an issue or limitation in the software?
Regards,
Fran
CommandLineOptions.cs.txt

Hi Fran,
sorry for replying late. Thank you for using the library.
Please fire an issue here:
https://github.com/commandlineparser/commandline/issues.
I'm no more the only maintainer, other valid contributors may help you (me
included if time allows).
Regards,
Giacomo S. S.
Il giorno dom 12 apr 2020 alle ore 00:23 ffadrique<EMAIL_ADDRESS>ha scritto:

Hi.
The attached file contains the configuration to parse a number of options
that consist of list of elements and finally a list of filenames (after the
--).
The problem appear when the last option prior to the -- is a list based
option. In that case the parser responds with: 'A required value not bound
to option name is missing'
The following command line work with the provided C# configuration:
--modules ../utilities/x64/Debug,../auxtool/x64/Debug --outdir ./x64/Debug
-- m_xfunit.f03 m_xfunit_assertion.f03
The following command line does not (with the error mentioned above)
--outdir ./x64/Debug --modules ../utilities/x64/Debug,../auxtool/x64/Debug
-- m_xfunit.f03 m_xfunit_assertion.f03
Am I overlooking something or is this an issue or limitation in the
software?
Regards,
Fran
CommandLineOptions.cs.txt
https://github.com/gsscoder/commandline/files/4465530/CommandLineOptions.cs.txt
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/gsscoder/commandline/issues/511, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDR5G6OV4TLSJCZH6V2U3RMDUVTANCNFSM4MGFLNZA
.


How to modify the Write-Attributes for controlling the notifications from client to server

Hi, I'd like to know how to modify the Write-Attributes (mentioned in 5.4.4 of the OMA LWM2M specs) in the Leshan. I would like to modify the min period, max period, step, less than and greater than parameters. I see that there's implementation related to this made in ObserveSpec, WriteAttributesRequest, WriteAttributesResponse. But, I didn't understand how to modify those parameters. Any light on this matter would be of great help in understanding how to use these APIs.
Best Regards
Nikhil Clement

Write attributes is not supported at client side.
At server server side you can send WriteAttributesRequest. To create ObserveSpec, just use the builder ( see javadoc)

Thank you for the response. I entered this in the LeshanServerDemo code:
ObserveSpec spec = new ObserveSpec.Builder().minPeriod(10).step(1).maxPeriod(60).lessThan(18).greaterThan(24).build();
        WriteAttributesRequest write = new WriteAttributesRequest(3303,spec);
```But, it made no difference. Did I miss something here? Do I need to add something like `write.accept(visitor)`? If yes then what should the visitor be?
I'm kind of a beginner in this. It would be really helpful if you could guide me here.

Best Regards
Nikhil Clement

Sry for the silly question but did you send the request ?  see demo code

Thank you for the response. Yes, I sent the request. But, not the ExecuteRequest which you've pointed to in the ClientServlet.java. I sent a WriteRequest. Anyways, I was able to modify the code to use those write-attributes at the client side. It's not efficient though. Thank you.


可以支持5.4和5.5吗

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @Osub, @jhd2best, @TonyP4N, @LadyChatterleyLover, @346359827, @0x-eth, @zhaomin6666

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @Mitsushima1, @KZForrest, @PigCharid, @EndOfMaster, @guowenxi, @shaoyuzijiang, @sfter

AltLayer Airdrop Season One Update

🚀 Exciting Announcement! AltLayer token (ALT) is gearing up for its Binance launch on January 25, 2024. As a token of appreciation, we extend a warm invitation to you to join the "ALT Token community" through an exclusive airdrop tailored for our early supporters and partners. Here's a quick overview:

Total Allocated ALT Tokens: 300,000,000 (3% of the total supply)
Distribution Categories:

Ethereum Mainnet
Binance Mainnet

For a comprehensive breakdown of criteria and further details, refer to the complete announcement Oficial Website.
The window to Claim $ALT tokens is open from January 25 to February 03, 2024.
Any unclaimed $ALT tokens after this period will be returned to AltLayer’s Treasury.
We deeply appreciate your contribution to AltLayer's success! Stay tuned for more exciting developments in Season One.
Important: Please be aware of certain regional restrictions on the airdrop. Review the disclaimer before participating.
alertross, @nikita-leonov, @IoTeacher, @ShrikantaMazumder, @Grayal66, @thomasjo, @akaking, @shin-carpediem, @rovo79, @jbutcher, @jtphoenixga, @gyzerocc, @Qgap, @yizhi996, @phongddo, @heleny, @Sxraxis, @Shulin-Zhang, @Alexander-Ignition, @phuongphally


WIP Extend lock if needed

Right now we acquire locks for what we think is the duration of the job (example 8 hours for mass rebuild lock)
In case if the job is aborted, a lock isn't released until the timeout is reached.
Instead we can acquire a lock for a short duration, and keep extending it if we are still processing

If https://github.com/openshift-eng/aos-cd-jobs/pull/3925 is merged, please migrate this PR to art-tools, if not urgent.
If urgent, please create a duplicate PR to art-tools.


Query string parsing does not seem to be supported for hash routes

Expected behavior
After rendering the below code, when links 3 or 4 are clicked, query should be "{ bar: 'baz' }"
This is expected based on the documentation stating that "Using hashes to delimit routes is supported out of the box (e.g. /foo#bar)" and there was no mention of caveats :)
Actual behavior
href = "/foo?bar=baz" and query = "{}"
Steps to reproduce behavior
const choo = require('choo');
const html = require('choo/html');

const app = choo();

let view = function(state, emit) {
  return html`

/?bar=baz

/foo?bar=baz

/#foo?bar=baz

/index.html#foo?bar=baz

Href:

${state.href}

Query:

${require('util').inspect(state.query)}

Route:

${state.route}

`;
};

app.route('*', view);

app.mount('div');

with index.html of
<!doctype html>

    <meta charset="utf-8">
    <title>QSTest</title>

and command line like
./node_modules/.bin/budo -p 8000 --live qstest.js:bundle.js

That's actually the expected behavior. Since a query string is a valid fragment identifier, anything that comes after a # is regarded part of the hash. If you'd like to combine query strings and hash navigation you'd put the query before the hash, i.e. /?bar=baz#foo.


TypeError: range_1.default is not a constructor

Hi @Siemienik , I'm trying to include this in the nx project and do the tests to add image insertion. It's using Jest for testing and there is an error
TypeError: range_1.default is not a constructor

in xlsx-renderer/src/Scope.ts so the tests failed.
I tried to include the Range def in index.d.ts of exceljs package but it didn't work.
Do you have a clue how to fix this? Thank you very much!

Are you able to link the repo?

Hi @Siemienik, thanks for your fast reply. I will create a repo for your reference soon.

I solved this by forking exceljs and do a patch then install from this patch. Thanks for your attention.
Here is a link to the patch release
PS: exceljs hasn't been updated for quite a long time.

@Jedliu, Thanks for info.
Recently I started to organize Merge Fest for my projects, including exceljs. The MergeFests are organized and announced on our Discord: https://discord.gg/siema . Today I will do next one at 8pm CEST. Join us if you would like. Especially if have you got some propositions which PRs are more important than rest, just send me a link on #exceljs channel.
As I can't release exceljs, I started to release it as @siema-team/spreadsheets, GH: https://github.com/SiemaTeam/spreadsheets
Would you mind send me a link to PR with your fixation? or open new PR if doesn't exist?
Regards

Hi, Siemienik. Thanks for getting in touch with me. I will look into this when I have spare time.


Question: TensorFlow devices are created at every step. Isn't it inefficient?

I found that training our model with a Tesla P100 GPU is not any faster than training it with a ordinary CPU.
According to these console outputs, it seems TensorFlow devices are created at every step.
(I am using 24 GPUs and global_step increase 24 for each step.)
Is it necessary to do so?
Is it costly to create a Tensorflow device?
Who is in charge of the device creation, TensorFlow or us?

2017-06-15 15:54:40.224138: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating
TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:22:00.0)
15:54:36 phn mode, global_step:34755.0,total:4620,batch:40/144,epoch:11/200,train loss=82.963,mean train PER=0.013
Model has been saved in /home/chenjiasheng/log/timit/phn/save
2017-06-15 15:54:46.530416: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:22:00.0)
15:54:42 phn mode, global_step:34793.0,total:4620,batch:41/144,epoch:11/200,train loss=104.673,mean train PER=0.016
2017-06-15 15:54:50.600103: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:22:00.0)
15:54:46 phn mode, global_step:34818.0,total:4620,batch:42/144,epoch:11/200,train loss=59.382,mean train PER=0.009

@chenjiasheng for multi gpus, you should specify gpu in code.  Present code don't support multi gpus.

@zzw922cn
Thank you for the reply.
Yes, I did modify code to support distributed and multi GPU training.
Furthermore, this issue happens no matter i modify the code or not.
The origin code also encountered this issue, can you please check it?
If you have no idea about this, I think I should report the issue to the Tensorflow team.

@chenjiasheng Hello, can you report it to TF team? I have no idea now. If you got it, please reply here, thanks!


bug (config): file paths not resolved if submodule specifies root path remappings

Component
Forge
Describe the feature you would like
Steps to reproduce:

Clone this repo and run forge install
Run forge build, it fails with the below error
In lib/forge-test-my-dep, open foundry.toml and comment out the remappings
Run forge build, it passes

[⠊] Compiling...
Error:
Failed to resolve file: "/Users/mds/Documents/projects/forge-test-my-proj/lib/forge-test-my-dep/script/BaseScript.sol": No such file or directory (os error 2).
    --> "/Users/mds/Documents/projects/forge-test-my-proj/script/Counter.s.sol"
        "script/BaseScript.sol"
    Check configured remappings.

Additional context
No response

suffering from the same exact issue.
importing @thirdweb contracts and OZ in the project breaks remappings.
I have the latest foundry and foundry-std versions

this is a general problem with absolute import paths.
you can fix this by using relative paths for contracts you import from folders like script or test, or simply overwrite the remapping.
I'd recommend against remappings for folders in the same project.

ref #1855

Just bumped into this issue while installing @mds1's library solidity-generators.
I also have absolute import paths, and I want to counter @mattsse's suggestion from above that we should simply use relative paths.
Relative paths can get really ugly and hard to maintain in complex projects. Several Foundry users use absolute paths because of the aforementioned reason.

Don't think this issue should have been closed?
https://github.com/mds1/solidity-generators/pull/2 was related but it didn't fix the issue with Foundry itself.

Huh interesting. I guess because I opened this issue originally, a PR from a repo in my namespace was able to close it? Either way, re-opening it now

I started experiencing the same issue when I upgrade foundry to the latest nightly for the submodule https://github.com/0xPhaze/upgrade-scripts.
In my particular case everything was working fine with foundry commit https://github.com/foundry-rs/foundry/commit/3d5f038.

For future reference: when @mattsse said this:

simply overwrite the remapping.

He was referring to set one or more of the following remappings in your project:
script/=script/
src/=src/
test/=test/

You only have to do this for those remappings that are overwritten by your dependencies.

I guess my #4597 is this same issue. I just want to add that relative imports in the dependent project suffer from this problem (which seems to contradict some earlier suggestions in this thread). I believe solc resolves those relative paths into relative paths, relative to the project root. Thus import "./SomeOtherFile.sol"; in the dependent project resolves to src/SomeOtherFile.sol and then this matches src/=src/, which is remapped into the dependency.
It seems to me that relative in remappings.txt in lib/... should be prepended with lib/... as they're loaded into foundry's vfs or solc command-line builder?

Related to https://github.com/foundry-rs/foundry/issues/1855

it seems like remappings are not compatible with code that might ever be used as a dependency elsewhere, which is probably most code if you consider that people often like to test their smart contracts against external protocols without needing to always work from mainnet forks.
maybe the docs could explain this better
examples like
import "forge-std/Test.sol";

should really be
import "../lib/forge-std/src/Test.sol";

for a project with a flat ./src/*.sol structure.
The issue I see is that the former promotes/allows unsafe behaviours because, if i understand correctly what foundry is doing, it seems that the version of libs compiled into contracts is whatever version is in the root lib/* NOT the version in lib/somedep/lib.
It would be very easy for some subtle change to be made in a lib that would break the functionality of the dependency, but still compile, and not necessarily show up in testing because the SUT is the current repo, not the test suite of the dependency.
I'm still a bit confused as to how this works, but it seems to me like the only way for code to be sure that consumers get the same code including its dependencies is to always use relative paths for everything, including dependency libs.
i.e. forge install recursively checks out dependencies but then forge build always remaps every lib to whatever is in the root lib/ rather than the recursive libs.

The fundamental issue is that using a solidity project as a dependency does not mean using its build artifacts, it means using its source code, and therefore its source files, while being built, must resolve their dependencies based on that project's own dependencies. When this is combined with the fact that many projects have similar dependencies (e.g., on openzep), import resolution conflicts become likely. We can look to other languages for inspiration so as not to reinvent the wheel (e.g., c's include file search paths, rust toml's [patch...], etc.
It seems that a necessary/baseline feature would be for solc to be able to resolve imports based on the context of the instant file being parsed. I think this may NOT be a current feature of solc. What I mean by this is that the imports for a file in a/b/c/d should be resolved based on the fact that that file is in a/b/c/d not based on the fact that the file is in a. Then, if a dev wants to globally override what lib/openzep means, there would be some mechanism to explicitly override that resolution everywhere (.e.g., like the toml [patch] or a command line argument to NOT use local context for certain prefixes).
The additional problem here is that what a dev has chosen to specify in the import statement, in the source files of a project, plays a big role. As noted in other comments, whether they've chosen to use relative import paths in the source and whether those relative import paths state simply lib/ or ../[whatever]/lib can matter.
At least some of the above I think can be achieved even without explicit compiler support by re-writing of files, and by clever use or remappings. E.g., all dependencies (recursively) could have the imports that match their locally specified remappings re-written to import "dep1/lib/..."; and the remappings specified to the top level compiler would then contains a dep1/lib remapping. This would mean foundry is essentially pre-processing the source files and compiling the pre-processed output, not the original files.
pre-processing of solidity is another topic. I almost always find it necessary to use a (custom) python based pre-processor to generate deployment vs dev versions of solidity files for anything but trivial projects. E.g., to strip out console2.log() calls, and/or restructure source files so that contracts deployed to public chains, vs those deployed to anvil or hardhat nodes for testing, are lean and clean.
The solidity language devs, IMHO, are not spending enough effort on these issues and need to do an iteration on some of the language features that relate to devops.

@aathan FWIW i just went down the road of switching to relative imports and it looks like a bit of a dead end actually
the problem is if you have two deps with the same dependency as a relative path in their respective lib directories
any types that exist in this same dependency (i.e. exact commit same) are treated as different types by the compiler
i've had this experience in rust as it is strict about types only being the same type if the dep is exactly the same, but rust is aware of git revisions so treats identical deps as identical, however they are imported
i'm now wondering, in lieu of what sound like large low level upstream changes, if it would be possible to have some kind of warning/error if foundry detects a discrepency between the ?unavoidable? root level dep commit/version and the same dependency used somewhere in the tree of submodules

or alternatively, if same-commit identical submodules are found, perhaps there's a way for forge to normalize/dedupe them to avoid the type issues

Oh ya, I forgot about the type names. solc would need to "namespace" the type names based on which source files are referencing the type name, such that the types are matched vs those defined only in the imports of that source file; and, if a type reference in a file outside said project resolves to a type in that project, e.g., via a qualified name, that has to resolve correctly too.
For example, if some global struct Foo is defined in an import inside a lib/ project, but is also defined in the top level project, should that be an error? Or should the source files inside lib/ find that struct, and the source files at the top level should find the other one? It's a mess, but that sounds about right.
The foregoing paragraph was written before I read https://github.com/foundry-rs/foundry/issues/3440#issuecomment-1638108427 which seems to imply solc does distinguish types based on import source. I've simply not done any careful observation of this issue. Are you sure about that? My assumption would have been than a global scope struct is resolved irrespective of it's import source, and any conflicts have more to do with the import ordering of a particular compilation unit, than the namespace or type annotations made by solc when traversing a type def. Some experiments are in order, and/or I am going to reference this conversation to the solc devs.
@thedavidmeister as far as the relative imports go, that is precisely the issue I was addressing in the prior comment. To clarify, what I was suggesting is that foundry's build strategy should change to a "preprocess then compile the preprocessed output dir", and all imports in the output (i.e., preprocessor output) would be rewritten such that relative imports in subprojects are prepended with a unique id (lib/... --> projA/lib/...) such that they become distinguishable, and (possibly generated) top-level remappings can specify projA/lib/... projB/lib/... in a completely disambiguated fashion.

@onbjerg I've PTAL'ed and commented there.

@onbjerg that sounds basically perfect to me, does it introduce the issue i saw with relative paths though?
namely that some type can be defined in two commit-identical dependencies and treated by solidity as different types?

@Evalir @onbjerg  actually i'm still getting quite a lot of errors that mean i can't compile based on import resolving
thedavidmeister@davids-iMac rain.orderbook % forge build
[⠊] Compiling...
[⠒] Unable to resolve imports:
      "rain.datacontract/lib/LibDataContract.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/concrete/RainterpreterExpressionDeployerNP.sol"
      "rain.datacontract/lib/LibDataContract.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/concrete/RainterpreterNP.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/evm/LibOpTimestamp.sol"
      "rain.solmem/lib/LibMemCpy.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/LibOp.sol"
      "rain.solmem/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/LibInterpreterState.sol"
      "rain.lib.memkv/lib/LibMemoryKV.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/LibInterpreterState.sol"
      "rain.solmem/lib/LibUint256Array.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/caller/LibContext.sol"
      "rain.solmem/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/integrity/LibIntegrityCheck.sol"
      "rain.solmem/lib/LibMemCpy.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/LibInterpreterStateDataContract.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/integrity/LibIntegrityCheck.sol"
      "rain.solmem/src/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/concrete/RainterpreterExpressionDeployerNP.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/concrete/RainterpreterExpressionDeployerNP.sol"
      "rain.solmem/lib/LibUint256Array.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/LibOp.sol"
      "rain.solmem/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/LibOp.sol"
      "rain.solmem/lib/LibBytes.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/LibInterpreterStateDataContract.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/evm/LibOpBlockNumber.sol"
      "rain.solmem/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/LibInterpreterStateDataContract.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/evm/LibOpChainId.sol"
      "rain.solmem/lib/LibStackPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/LibOp.sol"
      "rain.solmem/lib/LibPointer.sol" in "/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/parse/LibParse.sol"
with remappings:
      caller/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/caller/
      compile/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/compile/
      ds-test/=/Users/thedavidmeister/Code/rain.orderbook/lib/forge-std/lib/ds-test/src/
      erc4626-tests/=/Users/thedavidmeister/Code/rain.orderbook/lib/openzeppelin-contracts/lib/erc4626-tests/
      eval/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/eval/
      extern/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/extern/
      forge-std/=/Users/thedavidmeister/Code/rain.orderbook/lib/forge-std/src/
      integrity/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/integrity/
      ns/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/ns/
      op/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/op/
      openzeppelin-contracts/=/Users/thedavidmeister/Code/rain.orderbook/lib/openzeppelin-contracts/
      parse/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/parse/
      rain.chainlink/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/lib/rain.chainlink/src/
      rain.erc1820/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.erc1820/src/
      rain.extrospection/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.factory/lib/rain.extrospection/
      rain.factory/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.factory/
      rain.interpreter/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/
      rain.lib.hash/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/lib/rain.lib.memkv/lib/rain.lib.hash/src/
      rain.lib.typecast/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/lib/rain.lib.typecast/src/
      rain.math.fixedpoint/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.math.fixedpoint/src/
      rain.math.saturating/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.math.fixedpoint/lib/rain.math.saturating/src/
      rain.metadata/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.metadata/src/
      state/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.interpreter/src/lib/state/
      lib/openzeppelin-contracts:openzeppelin/=/Users/thedavidmeister/Code/rain.orderbook/lib/openzeppelin-contracts/contracts/
      lib/rain.factory:rain.datacontract/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.factory/lib/rain.interpreter/lib/rain.datacontract/src/
      lib/rain.factory:rain.lib.memkv/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.factory/lib/rain.interpreter/lib/rain.lib.memkv/src/
      lib/rain.factory:rain.solmem/=/Users/thedavidmeister/Code/rain.orderbook/lib/rain.factory/lib/rain.extrospection/lib/rain.solmem/src/

The only way I can see to fix these is to install the deps globally in the root of the project, they aren't being picked up by the submodule as the submodule's own deps
I think this issue is still unresolved (i ran foundryup just now)
thedavidmeister@davids-iMac rain.orderbook % forge --version
forge 0.2.0 (8e365be 2023-07-18T00:32:55.929185000Z)

It also looks like the same issue as relative paths has now been introduced for remapped paths @onbjerg
thedavidmeister@davids-iMac rain.orderbook % forge test
[⠊] Compiling...
[⠑] Compiling 115 files with 0.8.19
[⠘] Solc 0.8.19 finished in 2.71s
Error:
Compiler run failed:
Error (2333): Identifier already declared.
 --> lib/rain.interpreter/src/concrete/RainterpreterExpressionDeployerNP.sol:8:1:
  |
8 | import "rain.datacontract/lib/LibDataContract.sol";
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The previous declaration is here:
  --> lib/rain.solmem/src/lib/LibPointer.sol:16:1:
   |
16 | library LibPointer {
   | ^ (Relevant source part starts here and spans across multiple lines).

Error (2333): Identifier already declared.
 --> lib/rain.interpreter/src/concrete/RainterpreterExpressionDeployerNP.sol:8:1:
  |
8 | import "rain.datacontract/lib/LibDataContract.sol";
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The previous declaration is here:
 --> lib/rain.solmem/src/lib/LibPointer.sol:8:1:
  |
8 | type Pointer is uint256;
  | ^^^^^^^^^^^^^^^^^^^^^^^^

thedavidmeister@davids-iMac rain.orderbook % cd lib/rain.interpreter/lib/rain.datacontract/lib/rain.solmem/
thedavidmeister@davids-iMac rain.solmem % git log
commit 7b2f04d6e0d7d4573e6b0a17bd9c7b84a7fde05f (grafted, HEAD, origin/main, origin/HEAD, main)
Author: David Meister<EMAIL_ADDRESS>Date:   Mon Jul 10 14:26:49 2023 +0400

    Merge pull request #4 from rainprotocol/2023-07-10-index-signed

    toIndexSigned
thedavidmeister@davids-iMac rain.solmem % cd ../../../rain.solmem
thedavidmeister@davids-iMac rain.solmem % git log
commit 7b2f04d6e0d7d4573e6b0a17bd9c7b84a7fde05f (grafted, HEAD, origin/main, origin/HEAD, main)
Author: David Meister<EMAIL_ADDRESS>Date:   Mon Jul 10 14:26:49 2023 +0400

    Merge pull request #4 from rainprotocol/2023-07-10-index-signed

    toIndexSigned

@aathan the problem with just saying that types should be different if they are in different folders, is that sometimes they are the same
in the example i'm running into now ^^ i did start going down the road of manually differentiating between Pointer depending on where it comes from, like import { Pointer as DataContractPointer } from ...
then what you run into is "can't automatically convert between types" which involves wrapping and unwrapping every type at every function boundary. If you write some library that wants its type as an input/output then you can't use that library in two places in a single repo.
now, if these Pointer types were from different source code, no matter how "minor" the difference, then sure I agree that the correct thing to do is treat them differently (that's what rust does)
in this case though, the exact same commit of a dependency is being treated as "already declared" simply because two different deps use it
perhaps if we were to use the preprocessing idea that you are suggesting, all the nested deps could be "hoisted" to the root
lib and have a few bytes of their commit appended like openzeppelin-contracts@01234567 which would have the effect of "deduping" while preserving the ability to "mess around" manually for debugging if the need arises.

kk, so i did some experimenting comparing
forge 0.2.0 (cc5637a 2023-06-02T00:22:41.615504000Z) - some old "stable" commit
forge 0.2.0 (0e72b71 2023-07-19T00:37:22.147807000Z) - today's nightly

what I found was, that i had added auto_detect_remappings = false to the data contract dep and this changed how things behave. Also, depending on whether I have a copy of the rain.solmem dependency in the project root or not changes how things behave (with every version of rain.solmem in the nested deps being on the same commit).
Running forge build from root.

version
auto detect
dep in root
error

cc5637a
Y
Y
Identifier already declared.

cc5637a
N
Y
Identifier already declared.

cc5637a
Y
N
-

cc5637a
N
N
Identifier already declared.

0e72b71
Y
Y
Identifier already declared.

0e72b71
N
Y
Identifier already declared.

0e72b71
Y
N
Unable to resolve imports

0e72b71
N
N
Unable to resolve imports

Related: https://github.com/foundry-rs/foundry/issues/5447

@PaulRBerg in my case some of what i'm seeing could potentially be #5447 as i do have multiple instances of the same dep in my tree


VSCode Error: Serializer for 'bicep.visualizer' already registered

Does this occur consistently?
Repro steps:

Action: bicep.activate
Error type: Error
Error Message: Serializer for 'bicep.visualizer' already registered
Version: 0.29.47
OS: win32
OS Release: 10.0.22631
Product: Visual Studio Code
Product Version: 1.92.2
Language: en

Call Stack
S.registerWebviewPanelSerializer extensionHostProcess.js:156:54297
Object.registerWebviewPanelSerializer extensionHostProcess.js:164:35403
new _BicepVisualizerViewManager extension.js:2:2771512
extension.js:2:2810540extension.js:2:2810540

See #13891 - you cannot have both the Bicep and Radius Bicep installed at the same time.
Note that as per Radius v0.37.0, you can now just use the regular Bicep extension for Radius, instead of the Radius Bicep extension.

That explanation helps. Thank you.
Regards,
Ratnavo
On Mon, 16 Sept, 2024, 20:15 Anthony Martin, @.***>
wrote:

See #13891 https://github.com/Azure/bicep/issues/13891 - you cannot
have both the Bicep and Radius Bicep installed at the same time.
Note that as per Radius v0.37.0
https://github.com/radius-project/radius/releases/tag/v0.37.0, you can
now just use the regular Bicep extension for Radius, instead of the Radius
Bicep extension.
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/bicep/issues/15053#issuecomment-2353131564, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BE5ITCJRBVXM6AFRTVMVGETZW3VHZAVCNFSM6AAAAABOHB2RPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJTGEZTCNJWGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Update ToG-Crowdsourcing - Add Get Error Message to UI

Also update README to mention the website for non-runelite and mobile users.

That was fast, thanks!


Change colors on the images

Feel free to tinker with the site. We are not reviewing PRs for design related stuff. Just the content in docs. So you can merge these directly into master


Newbie struggles with Windows integration

I understand that Windows integration is not first-class yet, and some of the following is user error, but here are some problems I ran into. Even generating this bug report via keybase log send in the shell generated the following error:
Continue sending logs to keybase.io? (type 'YES' to confirm): yes

ERROR Error (InstallLogPath): open KeybaseInstallUpload.DDY57ELIJ33JJIEUEV6WS6IN3ABLGQWP.log: The system cannot find the file specified.

I've been trying to create private shared folders, and first I thought you needed to create them, which (as you presumably know) doesn't actually work, either in the keybase shell or in Windows Explorer. For example, if I type "mkdir acertain,bac" when I'm in my private directory, the command silently doesn't do anything. If I try to do it from Windows Explorer, I get a variety of error messages. Right now, I'm in the state where Windows Explorer tells me that I have two folders in private: "acertain" and "New folder." If I try to rename "New folder," I get that the action can't be completed because it's open in another action. If I try to create another new folder, I get (after getting the spinning circle for 5-10 seconds) that the folder name I am creating is too long.
After some experimentation, I discovered that folders can be created just by cd'ing into them from the keybase shell, so that was cool. I created a file in acertain,bac called hello.txt from the keybase shell (echo "Hello, Brad!" > hello.txt), but since it seemed to hang, I control-C'ed it. Then when I tried to edit it from Windows, it told me that the file was in use (even five minutes later). I could at that point create a new file in that subdirectory, though.
my log id: 6a4ea4e5c71cd811e3f0d01c

Maybe we should include this in the instructions, but creating a shared folder at the CMD prompt requires quotes around the name, e.g.:
mkdir "acertain,bac"
Making a new one from Explorer is problematic for us because it actually first creates one called "New Folder", then quickly renames it. I thought this more or less worked but it gave me trouble too just now.

Thanks for the log upload, but I can't find any trace of the previous log upload failure. Can you reproduce this condition? If so, can you issue the command with debug, e.g. keybase -debug log send and attach the output here? Thanks.

The log upload just failed once. I'll see if I can repro.
As for creating a shared folder, it seems that they are created on-the-fly
just by cd'ing into them, so is there any value in mkdir?
Andrew
On Mon, Jan 16, 2017 at 11:06 AM, Steve Sanders<EMAIL_ADDRESS>wrote:

Thanks for the log upload, but I can't find any trace of the previous log
upload failure. Can you reproduce this condition? If so, can you issue the
command with debug, e.g. keybase -debug log send and attach the output
here? Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/client/issues/5406#issuecomment-272940394,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABlY4SpwAwvnKBlzs9xlMP47EoWV-kS2ks5rS7-igaJpZM4LkKtp
.

Also a newbie, I have a similar problem.  I thought that the way to access the public folder of  chris  would be to add a folder called   chris   under /public on my device.  I tried to do this via Windows Explorer, and it created "New Folder" but will not let me rename it (it's "in use") or delete it ("drive K: is no longer available").   How can I delete that errant folder?


Add pin function

Please do not merge this, I just opened this to start a discussion. We could come up with a much better ux for pinning / unpinning I think:

make the current button act as pin/unpin, with ON/OFF being replaced with a pin icon. Right click the button to turn on and off the redirect, which would color/uncolor the logo.

create a second button just dedicated to pinning

make the button just pin/unpin, and ask people to enable/disable the addon like they do all other addons, in the addons preference pane.

All of these require better code:

Convert open new tab to ajax call that handles success/failure

Add unpin functionality

And probably want to not hard-code the :5001 port for the daemon (make it the default, allow for override like for the gateway)
Anyway, is this a feature people would like me to work on more?

Thanks! Looks very good, feel free to work on it :+1:
My thoughts:

API port should be configurable (just in case someone runs it on something else than 5001)
I think pinning via right-click context menu is fine for now (we can improve it later, see below)

Is it possible to pin recursively?

I agree we should improve UX related to the toolbar button:

Right now it simply enables/disables forwarding to local gateway.
My plan was to change it to display a menu (on click) with multiple actions instead (perhaps we could simply attach items from context menu?)

FYI I merged other pull request (#28) and you probably will need to rebase your changes on top of current master.

As for the ToggleButton improvements, this is what I have in mind:

The popup panel would have all items from the context menu (copy link, pin resource etc) + on/off switch for entire plugin (current onClick behaviour).

Closing this one, will continue in #30


2.0.0-beta4 clobbers preexisting definition callouts

I'm not sure if this counts as a bug so much as its arguably a design/defaults issues. My vault already was structured around theorem/definition callouts before using this plugin and so I have a lot of notes that have just one callout, which is either a theorem or a definition, usually without any customization (so like
>[!definition]
> Blah Blah Blah

). When I turn on the "If a note only has one theorem callout, set it as main" setting, as these are recognized as main callouts, and so they end up causing lots of links to notes to show up as "Definition 1" or "Theorem 1" instead of something more descriptive:

Logically I think every individual part of how this works makes sense (unless there's a bug somewhere I'm missing), but I don't think the outcome is very logical. IMO, the best way to resolve this would be to make it so that auto numbered theorem callouts that are the only theorem callout in a note are unnumbered and either implicitly name them according to the note they are in, or special-case that when an unnamed theorem callout is the main callout in a note, it does not get set as the mathLink.

Hi, I really appreciate a lof of helpful feedback from you!

special-case that when an unnamed theorem callout is the main callout in a note, it does not get set as the mathLink.

I found this option the most appealing, so I implemented it as the new "Ignore a "main" theorem callout without its own title" option. (Available as 2.0.0-beta11)
Also, this issue helped me notice some related bugs. For example, the "Note mathLink format" setting wasn't working after rewriting the indexing part when I updated this plugin to 2.0.0-*.
Again, thank you a lot for your help! Feel free to reopen this issue if you have further suggestions.


Logo / image in header (custom title)

Q: I'd like to be able to add a logo/image in the header. Would this involve a custom theme, or is there a less invasive way of doing this?

I found the answer to this and thought I'd open & close an issue for archiving and feature searchers.
The title prop on <Admin /> accepts a node. So this works:
import {Admin} from 'admin-on-rest';

const App = () => (
  <Admin title={<AppTitle />}>
    // Resources
  </Admin>
);

// Default styles
const appTitleStyles = {
  whiteSpace        : 'nowrap',
  overflow          : 'hidden',
  WebkitTextOverflow: 'ellipsis',
  textOverflow      : 'ellipsis',
  margin            : 0,
  letterSpacing     : 0,
  fontSize          : 24,
  fontWeight        : '400',
  color             : 'rgb(255, 255, 255)',
  height            : 44,
  paddingTop        : 10,
  paddingBottom     : 10,
  WebkitFlex        : '1 1 0%',
  MsFlex            : '1 1 0%',
  flex              : '1 1 0%'
};

const AppTitle = () => (
  <img style={appTitleStyles} src="./my-cool-logo.png" />
);

export default App;

I found the answer to this and thought I'd open & close an issue for archiving and feature searchers.

StackOverflow would be even better ! ;)

@djhi Of course!
https://stackoverflow.com/questions/45916762/custom-title-with-image-in-admin-on-rest/45916763#45916763


Is is possible to use host mariadb-server?

My project using the MariaDB4j but I anyway have an installed mariadb server on my computer so can I somehow just reuse it?
I can't use the option -DmariaDB4j.unpack=false -DmariaDB4j.baseDir=/myFavouritemMariadDBVersion just because on my Ubuntu the mariadb in installed in several folders (/usr/lib etc.)

If you would like to contribute to the project with a PR which adds support for this, that would certainly be welcome.

My project using the MariaDB4j but I anyway have an installed mariadb server on my computer so can I somehow just reuse it?
I can't use the option -DmariaDB4j.unpack=false -DmariaDB4j.baseDir=/myFavouritemMariadDBVersion just because on my Ubuntu the mariadb in installed in several folders (/usr/lib etc.)

I actually do this with a single Java Class, as long as the folder in workingFolder exists in a place that you have read and create permission (like your users folder) it will create all the needed files on first run. Then you just use any MySQL editor and point it to port 3307 and you're golden!  You can create schema's and do anything you need to with them:
import ch.vorburger.exec.ManagedProcessException;
import ch.vorburger.mariadb4j.DBConfigurationBuilder;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.TimeZone;

public class Main extends Application {
	private static ch.vorburger.mariadb4j.DB myDB;
	public static void main(String[] args) {
		try {
			String 	workingFolder 		  = "/Users/michael/JavaApps/EmbeddedMySQL";
			String	jdbcURL               = "jdbc:mysql://";
			String	host                  = "localhost";
			int		port                  = 3307;
			String	schema                = "MyOTPData";
			String	ANNOYING_TIMEZONE_FIX = "?serverTimezone=" + TimeZone.getDefault().getID();
			String	user                  = "root";
			String	password              = "";
			String	slash                 = "/";
			String	colon                 = ":";
			String	connString            = jdbcURL + host + colon + port + slash + schema + ANNOYING_TIMEZONE_FIX;
			DBConfigurationBuilder configBuilder = DBConfigurationBuilder.newBuilder().setPort(port).setDataDir(workingFolder);
			myDB = ch.vorburger.mariadb4j.DB.newEmbeddedDB(configBuilder.build());
			myDB.start();
			myDB.createDB(schema);
			DriverManager.getConnection(connString, user, password);
		}
		catch (SQLException | ManagedProcessException e) {e.printStackTrace();}
	}
}

I'm closing this issue, because it's definitely possible to use host DB binaries. It's documented on the README (and PRs to clarify doc if it could be clearer are always welcome). #416 has something related to this.


New Theme: CotEditor

New Theme
I made a new theme for CotEditor! My repo is here.

That's great @roonieone!

What we usually do is transferring the repository to this organization and then adding a page on the site. You would still control and maintain the repository, nothing changes :)
Let me know if you like this idea so I can send you an invitation.

Yeah, sounds good to me!

Great, let me know when you accept the invitation ;)

Friendly ping, did you get the invitation? I just resend it, you can accept it here: https://github.com/dracula

Accepted!

Cool! Try transferring to the dracula org now.

After you do that, we'll need the instructions to install and enable it on the site.

Not sure how to transfer it. When I try, it says dracula already has a repository in the dracula/template network...

Hmm is the remote set to the new repository at dracula org ?

Hi @zenorocha, not sure what happened to this previous user and if this is the right place to post this. If it's a problem I'm happy to be redirected to the correct place. 😄
However given the lack of activity on this issue I've made the theme from scratch and made my own repo https://github.com/yougotwill/coteditor-dracula-theme .
Hopefully this can also be helpful to other cot users out there 👍

@hacknug Looks like you are still active on this repo. Is there any chance we can integrate my repo?

@yougotwill Hey there! 👋
I've managed to talk to Zeno about helping out maintaining the organization and will be sending invitations to join the organization to everyone with a new theme as soon as I'm a co-owner.
Will get back to you asap!

@yougotwill just sent you an invite to join the organization. Once you've joined we can move your repo to it. Let me know if there's anything else you need me to do 👍

Amazing! Thank you so much. 🙏

@hacknug I have joined the organisation. I haven"t transferred a repo before so just to confirm.

I go to "transfer ownership" in the settings tab and click the transfer button.
Then enter the repo and the organisation name "dracula".
Update the remote as mentioned above?

Anything else I need to do. I just want to make sure this goes smoothly 😆

@yougotwill I'd say yes but you're going to be the first one I do this with so… 🤷♂
One thing I'm not sure of is what can happen with the repo being a fork of dracula/template. I think @ghost ☝ was having issues with that so maybe you'll have to do something so it's not a fork.
I guess we'll see. Let me know if you need any help!

Cool @hacknug Will sort it out this evening

@hacknug I managed to successfully transfer the repo. Though it looks like I don't have the correct permissions to edit things. For example I want to change dracula-coteditor to just coteditor for consistency. Could you help with that please?
Also the solution to @ghost 's problem is to create a new repo. You can't transfer a forked repo into the same network if another repo exists. You would have to contact Github support so it's easier just to create a new repo under the same name and change the name of the old one and archive it which I have done.

@yougotwill can you try now?

@hacknug It works thanks! Will look into making a pr for the website when I have time.

Sounds good. Thanks!


Find a way to pass css into url web views

User Story
As an extension developer, I want to pass custom css to a url web view so that I can only show the relevant information and hide other parts (e.g. headers, footers, ...).
Description
Be able to pass in css to customize a website that is shown in a tab, so that it fits into the available space and does not show superfluous ui elements.
See example
Implementation idea
It seems rather not likely based on the technical restrictions of an iframe (or need to use a CORS header, which not every public website out there would have), but maybe there still is a way...
Testing ideas

according to the electron docs, web views allow some more control than iframes (but should not be used for they are not officially supported and my change without notice 🤔)

There seem to be ways to pass in js into arbitrary webviews so that adding css as well as extracting the current url would be possible (which supports scrolling with a reference selected on a website that changes their url accordingly, see step 3 of https://github.com/paranext/roadmap/issues/87)