Comparison with ref. implementation and small issue with namespace

Hi,
thanks for your re-implementation of the AdaHessian optimizer.

For torch==1.6.0 I had to change the namespace in the base class specification to: class AdaHessian(torch.optim.Optimizer)
Did you check if your code produces exactly the same output as the reference implementation?

Hi,

I've just updated the code to be compatible with the newest PyTorch, thanks for letting me know :)
Yeah, I'm aware that my implementation is different, I'm running some tests right know to see if it results in better or worse performace

the first difference is that their implementation uses Adam-like weight decay, but my code uses the corrected version from AdamW.
the other difference (AFAIK) is that they average out the absolute value of the hessian trace across the kernel dimensions. I don't see any performance gains (so far) from that and it makes the code too specialized and not applicable to a wider range of NNs, so I don't support that feature. IMHO if the hessian needs to be smoother, it can be achieved solely by setting beta_2 to a higher value and there is no need for the spatial smoothing.

Anyway, let me know if you spot any other differences I have just started playing with this optimizer, so I'm not an expert by any means :)

Thanks for the information about the differences. I will also start two runs with identical parameters for both implementations with a segmentation model. If I have the time I will also have a look at a toy example (minimalistic neural network, no random init) for which it might be easier to check if things behave (more or less the same). I'll keep you updated on this.

I've just started to play with this optimizer, so I'm not an expert by any means :)

same here, but I'm happy that there's finally a Newton-based method for neural networks which also works for real models and not just toy examples.

For a small toy example, it seems that both implementations behave the same :+1: .
I used both AdaHessian implementations ("New" is yours, "Orig" the original one) and also SGD (as a comparison) to minimize a quadratic function in x: y=x.T * A * x + b.T * x. Results see plot, both AdaHessian implementations follow exactly the same path for lr=1 and betas=(0.1, 0.1) and torch seed set to 0.

Thank you very much for your effort, I'm glad it works properly :)


Skip "original" field when marshaling type

Instead of failing. Fixes https://github.com/attic-labs/noms/issues/3284

Codecov Report

Merging #3285 into master will increase coverage by 0.01%.
The diff coverage is n/a.

Impacted Files
Coverage Δ

go/marshal/encode.go
98.15% <ø> (-0.01%)
:arrow_down:

go/marshal/encode_type.go
97.56% <ø> (ø)
:arrow_up:

go/nbs/table_reader.go
94.69% <0%> (ø)
:arrow_up:

go/types/ordered_sequences_diff.go
90.71% <0%> (ø)
:arrow_up:

go/datas/http_batch_store.go
85.53% <0%> (+0.62%)
:arrow_up:

Continue to review full report at Codecov.

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


Linux AMD captures are unreliable

gfxrecon-replay: ../../src/xcb_conn.c:215: write_vec: Assertion `!c->out.queue_len' failed.
```
This may be a bug in XCB or a bug in the way we invoke X11.  If it is not a bug in GFXR, we may need to workaround it with repeated flushes or some such on `XCloseDisplay` or possibly reach into XCB structures to determine when it is safe to do so.

@davidlunarg Do you think this is fixed from your recent investigations into Projects issues?

This issue is no longer present on Ubunutu 22.04. I hesitate to close this issue because earlier versions of Ubuntu are supported by grxreconstruct. Or maybe we can close it because there exists a know workaround?

IMHO, we should close it since there is a known workaround. More important things to work on...

I think close it; we know this is an issue that may be resolved by later versions of libx11 or libxcb and in any case we haven't identified any way that it's GFXReconstruct's bug.


Disable SingleRequest mode

Hi, is there any way to disable SingleRequest mode?

umm, nope, but I guess that just adding a new prop and a conditional surrounding the following line should do it:
https://github.com/jaanauati/react-dfp/blob/master/js/manager.js#L200
if time allows me, I will try to push a tweak in the following days.
thanks.

ok, I've just made the updates to the api, example:
            <DFPSlotsProvider singleRequest={false} dfpNetworkId='9999'>

                    <AdSlot sizes={[[728,90], [300, 250]]} adUnit='homepage/1' />

                    <AdSlot sizes={[[320,50], [300, 50]]} adUnit='homepage/mobile' />

            </DFPSlotsProvider

new property: singleRequest.
default: true.

please give it a try and let me know if it works for u.
thanks.

looks great!


programs.firefox.languagePacks option is broken

Describe the bug
Setting programs.firefox.languagePacks causes
       at /nix/store/b1qqk0vlygqjq3k0vwfmwpz7v6n2xywb-source/nixos/modules/programs/firefox.nix:290:16:

          289|       ExtensionSettings = builtins.listToAttrs (builtins.map
          290|         (lang: builtins.nameValuePair
             |                ^
          291|<EMAIL_ADDRESS>
Steps To Reproduce
nix build -vL --no-link --expr 'let
  nixpkgs = builtins.getFlake "github:nixos/nixpkgs/e243ea85ce6f1d945723bb0003a1fb1a6ed1dbf6";
  sys = nixpkgs.lib.nixosSystem {
    system = "x86_64-linux";
    modules = [
      (
        { ... }:
        {
          programs.firefox = {
            enable = true;
            languagePacks = [ "de" ];
          };
        }
      )
    ];
  };
in sys.config.system.build.etc'

Expected behavior
Builds a Firefox config with language packs as it did e.g. on 951e02301002a3100bf102bfb05272611633932e.
Additional context
This seems trivial to fix, but there are many more instances of builtins.nameValuePair in nixpkgs, so I'm unsure how to handle those.
Notify maintainers
@danth
Metadata
➜ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.28, NixOS, 24.05 (Uakari), j_9093184_20240508005535`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/nix/store/wmcbdvplkli110vmdn1ci96n8zmzh7yn-source`

Add a :+1: reaction to issues you find important.

What do you mean by "many more instances"? I only see one: https://github.com/search?q=repo%3ANixOS%2Fnixpkgs builtins.nameValuePair &type=code
It was broken in #304773

What do you mean by "many more instances"?

Oops, sorry. It seems I grepped through the wrong folder before saying that.
PR with fix submitted.


Lock docker image versions

To prevent issues and differences between deployments, lock the version of postgres/redis to specific versions.  Currently postgres is using latest, and redis is using the latest alpine image.  This would help with difficult to reproduce issues down the line potentially.

Good thought.  We're right in the middle of overhauling the docker container setup, see issue #35 . I've added this to the list in that issue.


HDMI sound does not work in hybrid mode with rtd3

I didn't use the bug pattern as it's not really a bug, but rather an Nvidia bug that still requires disabling HDMI for rtd3 to work the only way to fix it is to either not use rtd3 or use Nvidia mode

Is it working if you remove this line https://github.com/bayasdev/envycontrol/blob/main/envycontrol.py#L57? I have the same issue but didn't try to debug it yet

Is it working if you remove this line https://github.com/bayasdev/envycontrol/blob/main/envycontrol.py#L57? I have the same issue but didn't try to debug it yet

I know that this problem occurs due to the removal of HDMI devices, but if you do not remove them, the system will repeatedly hang, I added this error that people if what people got what the problem and how to solve it to fix the problem at least at the moment is impossible


Upgrade transformers version

Upgrade transformers to version 4.36

Well I don't think we can possibly review all those thousands of changes. We'd rather focus on looking at some major changes that might have a significant impact on our framework.

Most of the files are .md and yml, the files should be requires is the ones inside examples/pytorch

I've only reviewed python scripts under examples/pytorch and they looked OK to me.

I reviewed the scripts under examples/pytorch and found no issue. Changes are mostly on authentication to HuggingFace Hub.
One can use this cmd: git diff main upgrade_transformers_version -- examples/pytorch/**/*.py to look at the diff, instead of opening up in the browser. My browser tab freezes under this massive diff :face_exhaling:


Opentelemetry should be enable/disabled globally

Right now, each component needs to set <component>.observability so that otel can be enabled in the component. This boolean should be configured globally and then set the appropriate env vars in each component.
values.yaml would have something like kubearchive.observability instead. This will require a slight change to the sink and api server deployments
Acceptance Criteria:

add kubearchive.observability to values.yaml the default value should be false
remove sink.observability and apiServer.observability from values.yaml
change this line in the api server deployment to {{ include "kubearchive.v1.otel.env" .Values.kubearchive | indent 12 }}
change this line in the sink deployment to {{ include "kubearchive.v1.otel.env" .Values.kubearchive | indent 12 }}

I will try to do this as part of https://github.com/kubearchive/kubearchive/issues/236, which I am going to tackle next.

This is already being done in #214 , you both already reviewed it and it include similar changes.

Handled in https://github.com/kubearchive/kubearchive/pull/214.

oops :upside_down_face:


test

test comment

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

ID: 56186459-5f87-bfa1-fd17-86726298cc62
Version Independent ID: 2e4b94f6-aef9-4d4c-702c-1a1dd0a6769c
Content: Azure Quickstart - Back up a VM with the Azure portal
Content Source: articles/backup/quick-backup-vm-portal.md
Service: backup
GitHub Login: @saurabhsensharma
Microsoft Alias: saurse

@mikekinsman
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Cant predict after training on TPU.

I get this error when trying to predict on a tfrecord dataset
Error Message:

---------------------------------------------------------------------------
OperatorNotAllowedInGraphError            Traceback (most recent call last)
[<ipython-input-13-ac225234dc28>](https://localhost:8080/#) in <cell line: 3>()
      1 TEST_STEPS = 1674896
      2
----> 3 model.predict(test_ds,steps=TEST_STEPS,use_multiprocessing=True)

1 frames
[/usr/local/lib/python3.10/dist-packages/tensorflow/python/eager/polymorphic_function/autograph_util.py](https://localhost:8080/#) in autograph_handler(*args, **kwargs)
     50     except Exception as e:  # pylint:disable=broad-except
     51       if hasattr(e, "ag_error_metadata"):
---> 52         raise e.ag_error_metadata.to_exception(e)
     53       else:
     54         raise

OperatorNotAllowedInGraphError: in user code:

    File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2446, in predict_function  *
        outputs = step_function(self, iterator)
    File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2425, in step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2413, in run_step
        outputs = model.predict_step(data)
    File "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py", line 2381, in predict_step
        return self(x, training=False)
    File "/usr/local/lib/python3.10/dist-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
        raise e.with_traceback(filtered_tb) from None

    OperatorNotAllowedInGraphError: Exception encountered when calling layer 'weighted_attention_transformer' (type WeightedAttentionTransformer).

    in user code:

        File "<ipython-input-9-b9994ab6ce04>", line 85, in call  *
            smiles,tokens = inputs

        OperatorNotAllowedInGraphError: Iterating over a symbolic `tf.Tensor` is not allowed. You can attempt the following resolutions to the problem: If you are running in Graph mode, use Eager execution mode or decorate this function with @tf.function. If you are using AutoGraph, you can try decorating this function with @tf.function. If that does not work, then you may be using an unsupported feature or your source code may not be visible to AutoGraph. See https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/autograph/g3doc/reference/limitations.md#access-to-source-code for more information.

    Call arguments received by layer 'weighted_attention_transformer' (type WeightedAttentionTransformer):
      • inputs=tf.Tensor(shape=(128,), dtype=float32)

My Inputs are of shape ([BATCH_SIZE,1024],[BATCH_SIZE,142]) and this is notebook
Explanation:
I am using a encoder-decoder transformer. I have checked for any shape mismatch issues but none came up.
Please and Thankyou for any valuable feedback

If you require me to make the dataset public if you want to run in your environments if it's an unique issue, I will make it public.

Wait I solved it but not exactly because I ended up with more doubts. I zipped my test dataset with dummy Y values.Then the predict works properly why is that?.
This below does not work at all. It gives me improper shape warning.
BATCH_SIZE = 256
TEST_STEPS = len(test.tfrecord)//BATCH_SIZE

test_ds = (
    tf.data.TFRecordDataset("belka-tfrecords/test_10.tfrecord",compression_type="GZIP",num_parallel_reads=AUTO)
    .map(test_belka_example,num_parallel_calls=AUTO)
)

X_test,y_test = total_test_ds.take(1).get_single_element()
print("test molecule smiles: ",X_test[0].shape) # (256, 1024)
print("test molecule tokens: ",X_test[1].shape) # (256, 142)

model.predict(test_ds,steps=TEST_STEPS,use_multiprocessing=True)

This down below works...
BATCH_SIZE = 256
TEST_STEPS = len(test.tfrecord)//BATCH_SIZE

test_ds = (
    tf.data.TFRecordDataset("belka-tfrecords/test_10.tfrecord",compression_type="GZIP",num_parallel_reads=AUTO)
    .map(test_belka_example,num_parallel_calls=AUTO)
)

dummy_y = (
    tf.data.Dataset.from_tensor_slices(tf.random.uniform(shape=[1674896],minval=0,maxval=2,dtype=tf.int32))
)

total_test_ds = tf.data.Dataset.zip((test_ds,dummy_y)).batch(256,num_parallel_calls=AUTO)

X_test,y_test = total_test_ds.take(1).get_single_element()
print("test molecule smiles: ",X_test[0].shape) # (256,1024)
print("test molecule tokens: ",X_test[1].shape) # (256,142)
print("test y: ",y.shape)  # (256,)

model.predict(test_ds,steps=TEST_STEPS,use_multiprocessing=True)

Why does a test dataset without y values not work directly?.


Sheldon#list does not detect broken symlinks

Currently, Sheldon checks for the presence of a symlink, but does not verify whether the symlink actually points to a real file on the system.
In other words, a dead symlink still appears green in Sheldon's coloured output.
Detecting these dead symlinks would make Sheldon#list more reliable, and would likely be helpful when implementing Sheldon#forget (see issue #4 )

Looks like this is the way to fix the issue:
File.exists?(File.readlink("/Users/dave/.zshrc"))
=> true

File.exists?(File.readlink("/Users/dave/.test"))
=> false

Fixed in 1d965087a83ea406a706dbfce67c126c593d654b


Request Id: 5c49dfea-0d1b-4754-989b-4cafc6a20200 Correlation Id: b3682c8b-d808-494f-b0b7-e3277acb1755 Timestamp: 2022-08-19T05:37:26Z Message: AADSTS900561: The endpoint only accepts POST requests. Received a GET request.

Is this even related to Awesome lists or not?

KSA

احصل على Outlook لـ iOShttps://aka.ms/o0ukef

من: Vitaliy Kanev @.>
تم الإرسال: Friday, August 19, 2022 9:28:14 AM
إلى: sindresorhus/awesome @.>
نسخة: WDDAH @.>; Author @.>
الموضوع: Re: [sindresorhus/awesome] Request Id: 5c49dfea-0d1b-4754-989b-4cafc6a20200 Correlation Id: b3682c8b-d808-494f-b0b7-e3277acb1755 Timestamp: 2022-08-19T05:37:26Z Message: AADSTS900561: The endpoint only accepts POST requests. Received a GET request. (Is...
Is this even related to Awesome lists or not?
—
Reply to this email directly, view it on GitHubhttps://github.com/sindresorhus/awesome/issues/2359#issuecomment-1220301181, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATXNFMTBIWJF74PL36HQU43VZ4SP5ANCNFSM567PXRJA.
You are receiving this because you authored the thread.Message ID: @.***>


Query plan cache for cypher queries.

In this PR, I have implemented a plan cache for Cypher statements (currently caching the AST of the Cypher parse, but it can be extended to cache execution plans in the future). By parameterizing the numeric values in the query string through rule-based matching during the lexer phase, and then filling the parameters back into the operators during the planner phase. Additionally, this PR addresses some bugs related to parameterized queries.
However, the current plan cache has certain limitations. We do not parameterize queries or literals in the query if:

The query is a CALL statement.
The query contains limit/skip n.
The query contains range literals: ()->[e*..3]->(m).
The items in the return body: return RETURN a,-2,9.78,'im a string'.
The query involves match ... create: MATCH (c {name:$0}) CREATE (p:Person {name:$1, birthyear:$2})-[r:BORN_IN]->(c) RETURN p,r,c.

Part of the reason for these limitations is due to the syntax constraints of Cypher statements themselves, and part of it is due to existing bugs and implementation constraints in TuGraph-DB.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.RT_Enzyme seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Regarding rating inaccuracy

Hello!
I'm inquiring regarding the rating inaccuracy currently described on the mod page. I was wondering if you could put me in contact with the person(s) reporting to you these inaccuracies, to find out where exactly the inaccuracies are, and what changes would need to be made, if any.
I've gone over the skill distribution data on TRN for 1v1, 2v2 and 3v3, and cross-checked with the chart by Reddit user marcxb89, which to my knowledge is the most up to date source of rank thresholds outside of the tracker, and I can't find any significant deviations. Of course the TRN data isn't entirely accurate to begin with, due to the nature of how the data is generated (only looking at currently tracked players).
The changes to the ratings you describe, are unknown to me, especially the suggested method of change. I'm attempting to verify with other users who know more. If rank thresholds are now updated seasonally, that would be a pretty fundamental change.
There is a slight bug in the Ingame Rank display, in that it will sometimes swap the rank icons (but not divisions) of different players on the same team. You look once and you appear to be playing against a C3d4 and a C2d1, but it turns out they're actually C3d1 and C2d4 (which if I'm high C2 makes much more sense matchmaking-wise). I'm wondering if this has confused the person who reported this to you, into believing the rank assignments themselves are inaccurate. Not knowing any details about this, of course I'm just speculating.
That's why I was hoping, even if you don't mean to make any changes to the mod anymore, that you would help with some more information on the issue so we can find out what's what.
Thanks!

Hey,
Thanks for writing. It is very much possible that my assumptions about the inaccuracies are flawed. Honestly I didn't really care to check, since I barely really play RL anymore, and just added the disclaimer.
I'm not really sure where this idea of changing thresholds came from, but I believe you have already researched it way more than I have. If you say the ratings are accurate I believe you. My assumptions were not exactly based on the most reliable source (one random friend), but again didn't really care.
About the bug with the divisions, I still don't want to continue working on this plugin actively, but if anyone wants to contribute, I'm happy to review changes and update the plugin.
Since I'm not going to look into it myself, if you think I should remove the disclaimer on the plugin page, I will.
Sorry I couldn't be more helpful.

That's alright, I understand. :) I'll await more feedback from others to confirm. I'll let you know.

Ah, I can confirm already. No ratings have changed. The story is during the development of this plugin you saw a lot of changes, for seasons 1, 2 and 3. You probably figured that would continue. But no ratings have changed since then. That was just unfortunate timing. The linked chart is accurate, for what it's worth. Thanks to u/HoraryHellfire2 for confirming, pretty much the most reputable source outside of Psyonix you're ever going to find.
In my judgment it is now very safe to remove the disclaimer.

Resolved.

Thank you, I really appreciate you taking the time to look into this.
The disclaimer is now removed.

No worries. I like the plugin, and this is something I felt I could assist with, so why not. :) Thanks for making it!


CopyButton component alt text

Related issue: https://github.ibm.com/Bluemix/core-dev/issues/7928
Title line template: CopyButton component in carbon-components-react alt text
We are using the CopyButton component in the resource list details pane. When a user hovers on the icon, the alt text is not displayed. However, when you inspect fully, you do see there is alt text on the svg. I'm not sure if it's just in the wrong place to be able to be displayed via hover. Also, I haven't tested using JAWS (screen reader), but if it's not read out, then we have an a11y violation. I'll try to test that and post a comment in the issue.

Can we get an update to the component to have alt text show on hover?

Possibly related to #1964


[AKS] az aks update: add new parameter --disable-workload-identity to disable Workload Identity

[AKS] az aks update: add new parameter --disable-workload-identity to disable Workload Identity

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

For new extensions:

[x] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

/azp run

#6706 (comment) If you want to release a new extension version for this PR, please also upgrade the version defined in the setup.py

updated


Hyper link doesn't work

I checked many peoples raised this issue, but I can't find the solution, can you help me to solve this issue?

Thank you for your report!
This issue tracker primarily serves as the tool to report and track bugs, defects, and development tasks.
For a general question, code review request, build problem, or other related discussion, please post it to Stack Overflow (with phantomjs tag).


Incorrect matching for Water timer

I have a Bluetooth water timer, associated with a BT gateway which is pretty similar to HCT-611 Water timer, but the matching code is unable to recognize it properly:
From the log, I'm getting:
Device matches asc_wifi_circuit_breaker with quality of 22%. DPS: {"updated_at":<PHONE_NUMBER>.949048, "1": true, "4": 0, "7": 32, "9": 21658, "10": "cancel", "11": 80, "12": "manual", "14": false, "15": 7201}
DPS dump:
attributes
{
"result": {
"category": "sfkzq",
"functions": [
{
"code": "switch",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "time_use",
"dp_id": 9,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":2592000,"scale":0,"step":1}"
},
{
"code": "weather_delay",
"dp_id": 10,
"type": "Enum",
"values": "{"range":["cancel","24h","48h","72h"]}"
},
{
"code": "countdown",
"dp_id": 11,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "smart_weather",
"dp_id": 13,
"type": "Enum",
"values": "{"range":["sunny","cloudy","rainy"]}"
}
],
"status": [
{
"code": "switch",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "battery_percentage",
"dp_id": 7,
"type": "Integer",
"values": "{"unit":"%","min":0,"max":100,"scale":0,"step":1}"
},
{
"code": "time_use",
"dp_id": 9,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":2592000,"scale":0,"step":1}"
},
{
"code": "weather_delay",
"dp_id": 10,
"type": "Enum",
"values": "{"range":["cancel","24h","48h","72h"]}"
},
{
"code": "countdown",
"dp_id": 11,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "work_state",
"dp_id": 12,
"type": "Enum",
"values": "{"range":["auto","manual","idle"]}"
},
{
"code": "smart_weather",
"dp_id": 13,
"type": "Enum",
"values": "{"range":["sunny","cloudy","rainy"]}"
},
{
"code": "use_time_one",
"dp_id": 15,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
}
]
},
"success": true,
"t":<PHONE_NUMBER>252,
"tid": "4983f0c0fe6011edac8032ebdb7f4f6c"
}
I tried to create a modified version of HCT-611 yaml file but didn't change the matching code.

New devices are not bugs.  Similar functionality means nothing for compatibility in the Tuya ecosystem, so a similar device existing does not mean it will match..

Sorry about that. I might have a clue why the matching code failed, after running tinytuya:
bluetooth bridge used to connect to Water timer has product id "yrzel5nutomegk6z", which is matching "ASC (Wi-Fi)" yaml device. Only "ASC (Wi-Fi)", "Simple Switch", "Simple Switch Timer" and "Simple Switch timerv2" are available to select.
I've tried with the added file without any luck:
name: Water valve
product:

id: nxquc5lb
primary_entity:
entity: switch
dps:

id: 1
type: boolean
name: switch
id: 12
type: string
name: state
secondary_entities:

entity: sensor
name: Battery
class: battery
category: diagnostic
dps:

id: 7
type: integer
name: sensor
unit: "%"
mapping:

scale: 1

entity: sensor
name: time_use
class: battery
category: diagnostic
dps:

id: 9
type: integer
name: sensor
unit: "%"
range:
min: 0
max: 2592000
mapping:

scale: 0
step: 1

entity: sensor
name: time_use_one
class: battery
category: diagnostic
dps:

id: 15
type: integer
name: sensor
unit: "%"
range:
min: 0
max: 2592000
mapping:

scale: 0
step: 1

entity: select
name: Weather delay
icon: "mdi:weather-cloudy-clock"
category: config
dps:

id: 10
type: string
name: option
mapping:

dps_val: cancel
value: "Off"
dps_val: "24h"
value: "1 day"
dps_val: "48h"
value: "2 days"
dps_val: "72h"
value: "3 days"

entity: number
name: Timer
category: config
icon: "mdi:timer"
dps:

id: 11
type: integer
name: value
unit: min
range:
min: 0
max: 86400
mapping:

scale: 60
step: 60

entity: select
name: Smart weather
icon: "mdi:sun-wireless"
category: config
dps:

id: 13
type: string
name: option
mapping:

dps_val: sunny
value: Sunny
dps_val: clear
value: Clear
dps_val: cloudy
value: Cloudy
dps_val: rainy
value: Rain

Your log has dps 1, 4, 7, 9, 10, 11, 12, 14, 15
Your config file has 1, 7, 9, 10, 11, 12, 13, 15
This is why they are not matching.

Thanks a lot, I adapted the file and it is now properly recognized. I haven't yet if communication is working well with the valve.
I still have some issues with id: 10 causing an exception for the "option" part.
name: Johgee Water Timer Valve
products:
  - id: c8800fd30884068f
primary_entity:
  entity: switch
  dps:
    - id: 1
      type: boolean
      name: switch
    - id: 12
      type: string
      name: state
secondary_entities:
  - entity: sensor
    name: Battery
    class: battery
    category: diagnostic
    dps:
      - id: 7
        type: integer
        name: sensor
        unit: "%"
  - entity: sensor
    name: Fault reporting
    category: diagnostic
    dps:
      - id: 4
        type: integer
        name: sensor
  - entity: number
    name: time_use
    category: config
    dps:
      - id: 9
        type: integer
        name: value
        range:
          min: 0
          max: 2592000
        unit: min
        mapping:
          - scale: 60
            step: 60
  - entity: sensor
    name: use_time_one
    category: diagnostic
    dps:
      - id: 15
        type: integer
        name: sensor
        range:
          min: 0
          max: 2592000
        unit: min
        mapping:
          - scale: 60
            step: 60
  - entity: select
    name: Weather delay
    icon: "mdi:weather-cloudy-clock"
    category: config
    dps:
      - id: 10
        type: string
        name: option
        mapping:
          - dps_val: "cancel"
            value: "Off"
          - dps_val: "24h"
            value: "1 day"
          - dps_val: "48h"
            value: "2 days"
          - dps_val: "72h"
            value: "3 days"
  - entity: number
    name: Timer
    category: config
    icon: "mdi:timer"
    dps:
      - id: 11
        type: integer
        name: value
        unit: min
        range:
          min: 0
          max: 86400
        mapping:
          - scale: 60
            step: 60
#  - entity: select
#    name: Smart weather
#    icon: "mdi:sun-wireless"
#    category: config
#    dps:
#      - id: 13
#        type: string
#        name: option
#        mapping:
#          - dps_val: sunny
#            value: Sunny
#          - dps_val: clear
#            value: Clear
#          - dps_val: cloudy
#            value: Cloudy
#          - dps_val: rainy
#            value: Rain
  - entity: select
    name: Smart weather switch
    icon: "mdi:sun-wireless"
    category: config
    dps:
      - id: 14
        type: boolean
        name: switch

I did some tests:

main switch entity is working
Timer is working: initial value is properly set from HA and is decreasing when valve is opened
use_time is just a counter, I've updated the file to move it from number to sensor entity.

I still need to test when use_time_one is changing and if should be a sensor or number entity. It might be linked to the physical button override on the device to manually open / close the valve.
Reading id:10, it is probably only usable in sync with the Tuya IoT platform to store if a delay should be set or not depending on weather condition, since those conditions are not handled in the device itself but on Tuya cloud platform. But I still need to figure how to properly handle it in yaml file to not cause exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 304, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/tuya_local/select.py", line 14, in async_setup_entry
await async_tuya_setup_platform(
File "/config/custom_components/tuya_local/helpers/config.py", line 38, in async_tuya_setup_platform
data[ecfg.config_id] = entity_class(device, ecfg)
File "/config/custom_components/tuya_local/select.py", line 34, in init
self._option_dps = dps_map.pop("option")
KeyError: 'option'

The error is complaining that there is no "option" under a select entity.  It is actually complaining about dp 14, not 10, as you have labelled that as "switch".  And since it is boolean, it probably is a switch, and it is the entity type that is incorrect.

Thanks for your help, I've fix the file and added support for all the remaining DPs which could be found on Tuya IoT platform for this device.
The only challenging part are the automated schedule, which is somehow encoded (maybe base64). However it is probably not that useful when using home assistant. I found very interesting informations at https://github.com/Koenkk/zigbee2mqtt/issues/16671
Smart weather is also probably not very useful when used with home assistant.
final file attached:
name: Johgee Water Timer Valve
products:
  - id: c8800fd30884068f
primary_entity:
  entity: switch
  dps:
    - id: 1
      type: boolean
      name: switch
secondary_entities:
  - entity: sensor
    name: Battery
    class: battery
    category: diagnostic
    dps:
      - id: 7
        type: integer
        name: sensor
        unit: "%"
  - entity: sensor
    name: Fault reporting
    category: diagnostic
    dps:
      - id: 4
        type: integer
        name: sensor
  - entity: sensor
    name: Operation
    category: diagnostic
    dps:
      - id: 12
        type: string
        name: sensor
  - entity: sensor
    name: Automated Irrigation Schedule
    category: config
    dps:
      - id: 17
        type: string
        name: sensor
        optional: true
  - entity: sensor
    name: Automated Cycle and Soak schedule
    category: config
    dps:
      - id: 16
        type: string
        name: sensor
        optional: true
  - entity: sensor
    name: Accumulated use time
    category: diagnostic
    dps:
      - id: 9
        type: integer
        name: sensor
        range:
          min: 0
          max: 2592000
        unit: min
        mapping:
          - scale: 60
            step: 60
  - entity: sensor
    name: Last use time
    category: diagnostic
    dps:
      - id: 15
        type: integer
        name: sensor
        range:
          min: 0
          max: 2592000
        unit: min
        mapping:
          - scale: 60
            step: 60
  - entity: select
    name: Weather delay
    icon: "mdi:weather-cloudy-clock"
    category: config
    dps:
      - id: 10
        type: string
        name: option
        mapping:
          - dps_val: cancel
            value: "Off"
          - dps_val: "24h"
            value: "1 day"
          - dps_val: "48h"
            value: "2 days"
          - dps_val: "72h"
            value: "3 days"
  - entity: number
    name: Irrigation time
    category: config
    icon: "mdi:timer"
    dps:
      - id: 11
        type: integer
        name: value
        unit: min
        range:
          min: 0
          max: 86400
        mapping:
          - scale: 60
            step: 60
  - entity: select
    name: Smart weather
    icon: "mdi:sun-wireless"
    category: diagnostic
    dps:
      - id: 13
        type: string
        name: option
        optional: true
        readonly: true
        mapping:
          - dps_val: sunny
            value: Sunny
          - dps_val: clear
            value: Clear
          - dps_val: cloudy
            value: Cloudy
          - dps_val: rainy
            value: Rain
  - entity: switch
    name: Smart weather switch
    icon: "mdi:sun-wireless"
    category: config
    dps:
      - id: 14
        type: boolean
        name: switch

@fcrozat
Hi, could you pls me explain (possibly step-by-step) how did you succeed to have it working?
I am still unable to configure my HCT-611 device.. :-(
Thanks in advance

This is my device DPS dump
{
"result": {
"category": "sfkzq",
"functions": [
{
"code": "switch",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "weather_delay",
"dp_id": 10,
"type": "Enum",
"values": "{"range":["cancel","24h","48h","72h"]}"
},
{
"code": "countdown",
"dp_id": 11,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "smart_weather",
"dp_id": 13,
"type": "Enum",
"values": "{"range":["sunny","clear","cloud","cloudy","rainy","snow","fog"]}"
}
],
"status": [
{
"code": "switch",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "battery_percentage",
"dp_id": 7,
"type": "Integer",
"values": "{"unit":"%","min":0,"max":5,"scale":0,"step":1}"
},
{
"code": "battery_state",
"dp_id": 8,
"type": "Enum",
"values": "{"range":["low","middle","high"]}"
},
{
"code": "weather_delay",
"dp_id": 10,
"type": "Enum",
"values": "{"range":["cancel","24h","48h","72h"]}"
},
{
"code": "countdown",
"dp_id": 11,
"type": "Integer",
"values": "{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"
},
{
"code": "work_state",
"dp_id": 12,
"type": "Enum",
"values": "{"range":["auto","manual","idle"]}"
},
{
"code": "smart_weather",
"dp_id": 13,
"type": "Enum",
"values": "{"range":["sunny","clear","cloud","cloudy","rainy","snow","fog"]}"
}
]
},
"success": true,
"t":<PHONE_NUMBER>684,
"tid": "fe7693cae14f11ed847f92e270c72120"
}

@fcrozat Hi, could you pls me explain (possibly step-by-step) how did you succeed to have it working? I am still unable to configure my HCT-611 device.. :-( Thanks in advance

Of course. Since you already have access to Tuya IoT (based on your comments on https://github.com/home-assistant/core/pull/79055#issuecomment-1577027626), it should be easy:

setup tinytuya (https://github.com/jasonacox/tinytuya/ ) using your Tuya IoT credentials
run python -m tinytuya scan and give the IP address associated to the BT gateway (for my own system, regular scan will not discover the BT gateway)
from the json file, you will need the following key (be careful to pick the output for the Water valve and NOT the BT gateway:
local_key
gateway_id
uuid

with those, you should be able to setup tuya-local with:
Device UUID : value from gateway_id
IP Address: IP for the BT gateway
Local key: value from local_key
Protocol version: Auto
Sub device ID: value of uuid
You should then get either the proper device in the list or a switch device if matching fails (which was my original bug report).

@fcrozat Hi, could you pls me explain (possibly step-by-step) how did you succeed to have it working? I am still unable to configure my HCT-611 device.. :-( Thanks in advance

Of course. Since you already have access to Tuya IoT (based on your comments on home-assistant/core#79055 (comment)), it should be easy:
* setup tinytuya (https://github.com/jasonacox/tinytuya/ ) using your Tuya IoT credentials

* run `python -m tinytuya scan` and give the IP address associated to the BT gateway (for my own system, regular scan will not discover the BT gateway)

* from the json file, you will need the following key (be careful to pick the output for the Water valve and NOT the BT gateway:
  local_key
  gateway_id
  uuid

with those, you should be able to setup tuya-local with: Device UUID : value from gateway_id IP Address: IP for the BT gateway Local key: value from local_key Protocol version: Auto Sub device ID: value of uuid
You should then get either the proper device in the list or a switch device if matching fails (which was my original bug report).

Dear @fcrozat
I already have uuid for both devices (Gateway and Valve) and the local key (the same for both) even if I didn't use your method (with TinyTuya) but I did get them from the iot cloud Tuya Platform (API Explorer - see below screenshot)..
My problem is that after had input all correct value into tuya-local config screen I always get "Unable to connect ... "..
I asked the author to help me.. but he only gave me a list of generic issues..
I see that you are creating a config file.. that's I assume the part that I am missing.. could you pls guide me about that?
Thanks a lot

If you have unable to connect, it means one of the IDs is wrong.
Use node_

If you have unable to connect, it means one of the IDs is wrong.
Use node_id for subdevice id

You are my hero!!! (this happen when someone wants to help.. ;-) until now I only got generic answers from other people)
Now I don't get anymore the error..
I see this window..
Will try to continue setup

ok.. but now I am lost again... because I didn't understand your discussion about the config file (I am not making any config file.. just using the wizard)..
I see that you mention a config file (that wasn't matching the log ids)
Your log has dps 1, 4, 7, 9, 10, 11, 12, 14, 15
Your config file has 1, 7, 9, 10, 11, 12, 13, 15
Which config file is that one?
In my case I have the following dps..
Function
1	switch			Boolean
10	weather delay		Enum		range: cancel / 24h / 48h / 72h
11	countdown		Integer		unit s. / min 0 / max 86400 / scale 0 / step 1
13	smart weather		Enum		range: sunny / clear / cloud / cloudy / rainy / snow / fog
Status
1	switch			Boolean
7	battery percentage	Integer		unit % / min 0 / max 5 / scale 0 / step 1
8	battery state		Enum		range: low / middle / high
How to make all of these sensor properly detected by Tuya Local?
(BTW I would like to use also "smart weather" and - especially - "weatther delay" so I can link it to some weather forecast service to skip irrigation automatically when it's raining)
But currently, after the wizard I see those sensor ..
The switch works (only it).. the others are either wrong or not working

Thanks in advance for all of your help!
Really appreciated

You need to check you home assistant log, to see which dps are really detected. I think the yaml file which was created for your device by Jason based on your original log. Maybe the yaml file I created on this file for my own device will work with yours.

Are you referring to files in device folder under tuya_local folder?
There are many files there .. should I create a new one with all settings of my device?
And then it should be automatically choosen during setup?
Thanks
PS when the tuya local author said me that my device was included as supported (upon my request) I assumed it was created a specific config file with all its pids.. but I now realized that I have to create it.. isn't it?

The latest release of local tuya is already shipping the file Jason created for your device ( https://github.com/make-all/tuya-local/blob/2023.5.2/custom_components/tuya_local/devices/ble_hct611_watertimer.yaml ). If it doesn't work, it means the configuration is incorrect. As I wrote earlier, look at Home assistant log for errors / warning from local tuya.

yes.. as said I found the file under custom_components..
I assume I have to modify this file.. but how to make it selectable during setup?
I don't see in the config file the ID (or category? "sfkzq") in the config file.. that I assume it's the one that tell to the plugin which device type is (and it takes the proper config file..)
Isn't it?
Should I open a bug/issue on Tuya-local main page?

I am now becoming crazy adjusting the file..
Apparently it contains a lot of wrong data...
These are data from Tuya developer site.. I think that the config file should match those data.. while it isn't now

There is no "wrong data" in the config file.  The only difference from the screenshot above is that it was missing "cloud" from the Smart Weather options.
You should stop making assumptions and post the related messages from the Home Assistant log, as has been requested  several times.  The iot.tuya.com information is frequently wrong or incomplete, so only the log messages from the integration itself can diagnose the problems you are having.  Or if you still have the device configured incorrectly as an ASC circuit breaker, you can download the Device Diagnostics from Settings / Devices & Services / Devices / ASC circuit breaker / Download Diagnostics

The bug will be closed when the release is made.
I suspect you encountered the race condition in HACS where if you press the Install button immediately after selecting a version, it actually installs the version that was previously selected when you opened the dialog.  You need to wait for the select dropdown to reenable again before continuing with the install for it to work properly.

@make-all ok, I'll report back when new release is made, to confirm everything is still working.
Again, thanks for your help.

There is no "wrong data" in the config file. The only difference from the screenshot above is that it was missing "cloud" from the Smart Weather options.
You should stop making assumptions and post the related messages from the Home Assistant log, as has been requested several times. The iot.tuya.com information is frequently wrong or incomplete, so only the log messages from the integration itself can diagnose the problems you are having. Or if you still have the device configured incorrectly as an ASC circuit breaker, you can download the Device Diagnostics from Settings / Devices & Services / Devices / ASC circuit breaker / Download Diagnostics

Sorry but it there is no "wrong data" why it doesn't detect the right device (it detects as "asc circuit breaker")?
For example I noticed that in the config file there is no "category/Id" (this device has "sfkzq" category).. how can it be recognized?
Also I noticed that there is Pids 12 that doesn't exists in my Pids list (exported by Tiya cloud...)
Also... Countdown step is 60 in config while it should be 1
Countdown scale is 60 in config while it should be 0
Battery scale is 0.05 while it should be (min 0 / max 5 / scale 0 / step 1)
Am I totally wrong?
Anyway I will now collect logs and post in a new issue I will create for trying to have it working ..
Thanks

Hello, I think this is broken again. Just got this device and all I get as "new device" to add is the wifi hub. Trying to set it up I can only see DP 38 with status ON.
Trying to manually add the device by using the id and local key also gives me only DP 38.
Any advice?
"data": {
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "17114700862295KVeme",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bf6811b647beaef5b5fhdc",
"name": "Water Timer",
"category": "sfkzq",
"product_id": "nxquc5lb",
"product_name": "Smart Water Timer",
"online": true,
"sub": true,
"time_zone": "+01:00",
"active_time": "2024-05-11T12:24:10+00:00",
"create_time": "2024-05-11T12:24:10+00:00",
"update_time": "2024-05-11T12:24:10+00:00",
"function": {
"switch": {
"type": "Boolean",
"value": {}
},
"time_use": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 2592000,
"scale": 0,
"step": 1
}
},
"weather_delay": {
"type": "Enum",
"value": {
"range": [
"cancel",
"24h",
"48h",
"72h"
]
}
},
"countdown": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"smart_weather": {
"type": "Enum",
"value": {
"range": [
"sunny",
"cloudy",
"rainy"
]
}
}
},
"status_range": {
"switch": {
"type": "Boolean",
"value": {}
},
"battery_percentage": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"time_use": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 2592000,
"scale": 0,
"step": 1
}
},
"weather_delay": {
"type": "Enum",
"value": {
"range": [
"cancel",
"24h",
"48h",
"72h"
]
}
},
"countdown": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"work_state": {
"type": "Enum",
"value": {
"range": [
"auto",
"manual",
"idle"
]
}
},
"smart_weather": {
"type": "Enum",
"value": {
"range": [
"sunny",
"cloudy",
"rainy"
]
}
},
"use_time_one": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
}
},
"status": {
"switch": false,
"battery_percentage": 100,
"time_use": 1498,
"weather_delay": "cancel",
"countdown": 0,
"work_state": "idle",
"smart_weather": "sunny",
"use_time_one": 600
},
"home_assistant": {
"name": "Water Timer",
"name_by_user": null,
"disabled": false,
"disabled_by": null,
"entities": [
{
"disabled": false,
"disabled_by": null,
"entity_category": "config",
"device_class": null,
"original_device_class": null,
"icon": null,
"original_icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "select.water_timer_weather_delay",
"state": "cancel",
"attributes": {
"options": [
"cancel",
"24h",
"48h",
"72h"
],
"friendly_name": "Water Timer Weather delay"
},
"last_changed": "2024-05-11T18:16:36.063998+00:00",
"last_reported": "2024-05-11T18:16:36.063998+00:00",
"last_updated": "2024-05-11T18:16:36.063998+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": null,
"icon": null,
"original_icon": null,
"unit_of_measurement": "s",
"state": {
"entity_id": "sensor.water_timer_total_watering_time",
"state": "1498.0",
"attributes": {
"state_class": "total_increasing",
"unit_of_measurement": "s",
"friendly_name": "Water Timer Total watering time"
},
"last_changed": "2024-05-11T19:49:24.275059+00:00",
"last_reported": "2024-05-11T19:49:24.741484+00:00",
"last_updated": "2024-05-11T19:49:24.275059+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": "diagnostic",
"device_class": null,
"original_device_class": "battery",
"icon": null,
"original_icon": null,
"unit_of_measurement": "%",
"state": {
"entity_id": "sensor.water_timer_battery",
"state": "100.0",
"attributes": {
"state_class": "measurement",
"unit_of_measurement": "%",
"device_class": "battery",
"friendly_name": "Water Timer Battery"
},
"last_changed": "2024-05-11T18:16:36.075699+00:00",
"last_reported": "2024-05-11T18:16:36.075699+00:00",
"last_updated": "2024-05-11T18:16:36.075699+00:00"
}
},
{
"disabled": false,
"disabled_by": null,
"entity_category": null,
"device_class": null,
"original_device_class": null,
"icon": null,
"original_icon": null,
"unit_of_measurement": null,
"state": {
"entity_id": "switch.water_timer_switch",
"state": "off",
"attributes": {
"friendly_name": "Water Timer Switch"
},
"last_changed": "2024-05-11T19:49:24.275712+00:00",
"last_reported": "2024-05-11T19:49:24.741810+00:00",
"last_updated": "2024-05-11T19:49:24.275712+00:00"
}
}
]
},
"set_up": true,
"support_local": true
}
}


Fix acknowledgement logos in readme

For some reason, the links stop working after some time (minutes/hours).
Interestingly, we get private-user-images.githubusercontent.com links, whereas in https://github.com/trixi-framework/Trixi.jl/issues/1390, they get user-images.githubusercontent.com links. Note that I specifically created a new issue after we made the repo public.

Of course, we can just use the Trixi issue to host our images as well, but we also want to host images for the docs, so it would be nice if we could fix that problem here.

For some reason, the links stop working after some time (minutes/hours). Interestingly, we get private-user-images.githubusercontent.com links, whereas in trixi-framework/Trixi.jl#1390, they get user-images.githubusercontent.com links. Note that I specifically created a new issue after we made the repo public.

Seems fixed in #438, or not? I now get something like `https://github-production-user-asset-6210df.s3.amazonaws.com/44124897/310171141-05132bf1-180f-4228-b30a-37dfb6e36ed5.png?``` for the hereon logo, for example

Okay, I think I know what's going on now. I think GitHub changed the way they store assets. I was looking at the first posts in https://github.com/trixi-framework/Trixi.jl/issues/1390, where the posted link is the same as the "copy image address" URL.
In the later posts, that changed to private-user-images.githubusercontent.com, but you guys didn't use that link, but posted the link that is added by GitHub in markdown when you paste the image. Interestingly, these are not the same:

Apparently, the private-user-images.githubusercontent.com URLs are only temporary.

Ah yes, I didn't remember to tell you that I played around with this before and found that each time the picture URL is accessed, it is actually resolved to something else. You need to use the asset URL that is stored in Markdown, not the (temporary) resolved URL when linking to that image.


Usage with Signoz

Hi Team, we are using Signoz for our monitoring, is there a way we can connect Signoz with Lmnr, i would like to use their self hosted version to ingest my Lmnr logs into it: https://signoz.io/docs/introduction/
Similar to https://www.traceloop.com/docs/openllmetry/integrations/signoz#with-self-hosted-version
Is it possible?

Hi Mohit, thanks for your question. If you are not going to use the Laminar dashboard, analytics, and frontend, and just want to use Laminar for instrumentation and sending your logs to Signoz, I'd recommend going with Traceloop/OpenLLMetry.
Our trace exporters are very much based on OpenLLMetry, so if you use Traceloop instead, you will not see major differences. Migration shouldn't bee too complex either.
We can easily add a few configs like the ones you linked so that you use custom exporters, but I don't know if that makes sense to do. Let us know if you see reasons to use Laminar over pure OpenLLMetry to just send the logs.

Continued in #179


[R] Swap code solutions for read / write CSV

The current recipe for reading a CSV shows the code for writing a CSV, and vice versa.
This PR swaps the code solutions for read_csv_arrow and write_csv_arrow to the correct order under the appropriate heading

@johnmackintosh I think you want to move the "Write" recipe before the "Read" recipe. Otherwise the "Read" recipe won't find the cars.csv file to read because it will be created by the Write recipe.

Hi @amol- swapped the order back and changed over the headers,  hopefully this is OK now


Changes for #1017

Current coverage is 100% (diff: 100%)

Merging #1019 into master will not change coverage

@@           master   #1019   diff @@
=====================================
  Files          19      19
  Lines        1573    1573
  Methods         0       0
  Messages        0       0
  Branches        0       0
=====================================
  Hits         1573    1573
  Misses          0       0
  Partials        0       0

Powered by Codecov. Last update 1154d67...bc89624


MRTK Extensions Missing Links

Describe the issue
To enable the extension, open your RegisteredServiceProvider profile. WHERE is it?
Feature area
Enabling the extension
MRTK is massive, the extensions just add more pain when you don't provide links to the topic.
Existing doc link
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Extensions/SceneTransitionService/SceneTransitionServiceOverview.html
Additional context
Add any other context about the problem here.

Just in case anybody is looking... This is NOT in the Scene System in the MRTK. You find this by selecting the MixedReality Tookit from the Hierarchy pane then in the list of services (Camera, Input, etc.) You will find Scene System but it is not there, it is in the Extensions. Why there in no link to this information is simple there is no documentation to link to.

I couldn't find exactly the lines you're referring to, but docs on the Scene System are at https://docs.microsoft.com/windows/mixed-reality/mrtk-unity/mrtk2/features/scene-system/scene-system-getting-started?view=mrtkunity-2022-05 and docs on the Scene Transition Service are at https://docs.microsoft.com/windows/mixed-reality/mrtk-unity/mrtk2/features/extensions/scene-transition-service?view=mrtkunity-2022-05


[Enhancement] reduce the loop time in building scanNode

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

When map the selected tablets to its parition, the nested loop is time consuming. Use a map to reduce the processing time and save it in field partitionToScanTabletMap of OlapScanNode for other usage.
Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 2.5
[x] 2.4
[x] 2.3
[ ] 2.2

run starrocks_admit_test

run starrocks_admit_test


v0.4.0 release?

Hey, it'd be neat to have an 0.4 release if it's not too much trouble?
Transactional I2C is a blocker on a chain of PRs I've been working on ^_^

Done!


[GitHub Repository Search] Add dropdown for filtering by user/org

Description
Adds a dropdown to the search field for filtering the search by user/orgs, similarly to how the native "Search Repositories" extension works. Also, includes forks when searching for repositories like the native extension.

"All Repositories" -> The same as before, searching all of Github (Default selection)
"My Repositories" -> Searches for personal repos and repos of organizations that you are a member of
"{Github username}" -> Searches only for personal repos
"{Organization username}" -> Searches only for repos of the chosen org

Screencast

Checklist

[ ] I read the extension guidelines
[ ] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[ ] I checked that files in the assets folder are used by the extension itself
[ ] I checked that assets used by the README are placed outside of the metadata folder

This looks great! How can we help test this?

As this week is "launch week" at raycast I'm guessing that Thomas is really busy.
If you want to test it out before it gets merged you can clone the changes and run npm install && npm build and it should install as a separate extension, @DonDebonair

I tested it (need to run npm run dev to get it to work btw) and it works great! The added option to search only your own repos or even within a specific org, together with caching visited repos, is exactly what I need!
Would be nice if this could be merged and published soon :)

Sorry that this drags so long. Been busy with Launch Week. Gonna pick it up next week.

Hey @thomaspaulmann, any chance you could take a look at this soon-ish?

@jberglinds left a few comments. Sorry that it took me longer than expected.

I believed I've addressed most of your comments.
Regarding the error messages I'm not sure what to do about it. I think the error message it pretty clear about whats wrong.

It isn't about that the error message isn't clear. It's about that existing users see this message from one day to another. This causes confusion.
I have an idea to be smarter:

Show a one-time view to explain the new features and mention that you need a token with the expected scopes
Build the API requests in a more robust way

Essentially, if the user doesn't have user scope, don't search private repos. And if the user's scope doesn't have access to orgs, don't search them.
The dropdown would then be optional.

Benefit is that existing users can keep using the extension as is and don't need to change the scope of the token. Happy to help implementing this. WDYT?

I've had absolutely no time lately to look at this. Please help out if you can find the time 🙏

I started to work on the changes in this branch. For now I upgraded to the latest APIs. Next, I'll convert the history to use our utils and then I'll look into the graceful handling of the tokens.

@jberglinds I found the time to upgrade the extension. I created a new PR for it, it was easier after all the additional changes. I'm closing this PR for #2901. Please give it a try and let me know if there is anything else that you would need.


feat: handle KongServiceFacade Ingress backends

What this PR does / why we need it:
Implements KongServiceFacade as a possible backend of Ingress rules along with unit tests. It extends the translator and subtranslator packages responsible for translation Ingress into Kong Services and Routes so they take into account that KongServiceFacade can be an Ingress backend (defined in Rule.Backend.Resource field).
Which issue this PR fixes:
Part of #5152.
Notes to reviewers:
I tried my best to keep this portion of changes to be as small as possible - most of the PR volume is unit tests and golden tests. The rest is translator/subtranslator package changes that generally are about pushing KongServiceFacade as a new type of Kong Service backend which I couldn't split.
There will be one more PR adding an integration test verifying the new functionality.
<!--
**PR Readiness Checklist**:

Complete these before marking the PR as `ready to review`:

- [ ] the `CHANGELOG.md` release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

In telemetry_test.go change feature-servicefacade -> feature-kongservicefacade, to fix failing envtest


While running oas-tools with jest for unit test cases it throws error: 'request for ./middleware/index.js is not yet fulfilled'

Describe the bug
I am using oas-tools 3.0.0 for my server and jest 29.0.0 for unit test case. My server runs as expected but when I ran my unit test cases it throws the error: 'request for ./middleware/index.js' is not yet fulfilled' and all test cases started failing. When I tried with oas-tools: 2.2.2 it works totally fine.
To Reproduce
Steps to reproduce the behavior:

initialize the server with @oas-tools/core
In jest configuration make sure the server files using @oas-tools/core is part of coverage.
Write a unit test case such that the 'initialize(express(), config)' is getting called.
Run the unit test cases using command: node --experimental-vm-modules node_modules/jest/bin/jest.js
See error

Expected behavior
The Oas must have initialized properly when running unit test cases using jest
Logs
2022-09-19T06:44:01.320Z - info: Specification file dereferenced
2022-09-19T06:44:01.402Z - info: Registered OASParams middleware
2022-09-19T06:44:01.403Z - info: Registered OASRequestValidator middleware
2022-09-19T06:44:01.403Z - info: Registered OASResponseValidator middleware
2022-09-19T06:44:01.403Z - info: Registered OASRouter middleware
2022-09-19T06:44:01.403Z - info: Registered OASSwagger middleware
2022-09-19T06:44:01.425Z - info: OAS Initialized successfully
● Test suite failed to run
request for './middleware/index.js' is not yet fulfilled
at Runtime.linkAndEvaluateModule (node_modules/jest-runtime/build/index.js:767:5)
Desktop (please complete the following information):

OS: macOS Monteray 12.5
Node Version: 14.18.1, 16.17.0

The initialize(app, cfg) function is asyncronous in v3.0.0, which may be the source of the problem. Are you using async/await to wait for the initialize promise to fulfill? I don't have much experience working with jest but with mocha for unit testing, take a look to OAS Tools tests, they may be similar to what you are trying to accomplish.

I have used the async/await to wait for initialization. The behaviour is such, with 'require(@oas-tools/core)' itself the error is thrown.
I am providing a zip file of project where the error can be reproduced. Here are the instructions to run and test the project

Download and extract the project
Run 'npm install' command
To start server run: make server
To execute unit test cases run: make test

Project ZIP
repro-server.zip:
Observation: The test cases will execute successfully but the Test Suit will fail because of the error:
● Test suite failed to run
request for './middleware/index.js' is not yet fulfilled
at Runtime.linkAndEvaluateModule (node_modules/jest-runtime/build/index.js:767:5)

This seems to be an issue with jest itself and the way it deals with ESM packages (see the issue here), so there's not much that can be done at the moment.
The core package will migrate to TS in the future and hopefully it will solve this problem due to the code being transpiled into CommonJS. For the time being, you could use mocha + c8 for coverage (I tested your repro-server using mocha and it works) or update to Node.js v18, which has an integrated testing library that I believe is pretty similar to jest.

@vineetbro did you find any solution or work arounds for this issue?

No, It is an issue with jest only. Right now I am using v2.2.2. The other option is to use mocha in place of jest


Added clarity about the .sigdata and .optdata files in the interactive documentation.

See #364

Thanks!


Exceptions in 0.11.0 dev branch

After a few hours opened, cutecoin raise thoses exceptions :

Traceback (most recent call last):
File "/home/vit/Documents/dev/python/cutecoin/src/cutecoin/core/net/network.py", line 223, in handle_change
self.nodes.remove(node)
ValueError: list.remove(x): x not in list
and this one repeatedly :

QBackingStore::flush() called for  QWidgetWindow(0x19f54c0, name = "MainWindowWindow")  which does not have a handle.
QBackingStore::flush() called for  QWidgetWindow(0x19f54c0, name = "MainWindowWindow")  which does not have a handle.
QBackingStore::flush() called for  QWidgetWindow(0x19f54c0, name = "MainWindowWindow")  which does not have a handle.

The. Qt error is really weird. After a fast googling, it seems to be linked to multiscreen stations, or at least when plugging/unplugging a display. Do you have one of these?

Nope.  I have just locked the screen.

Did the screen switch off at a moment ?

The parameters of the screen saver is "switch off the screen after 5 minutes". So yes, I think so.

It seems to be a Qt5 bug. https://bugreports.qt.io/browse/QTBUG-46024


PsiClass type in unaccessible in IDEA 2019.2

For some strange reason I can't access PsiClas and PsiClassImpl in my LivePlugin. But, for example, com.intellij.psi.PsiElement is available.
Sample plugin code:
val psiClass: com.intellij.psi.PsiClass? = null
Error:
error: unresolved reference: PsiClass
val psiClass: com.intellij.psi.PsiClass? = null

LivePlugin version: 0.6.3
IDEA version:
IntelliJ IDEA 2019.2.3 (Community Edition)
Build #IC-192.6817.14, built on September 23, 2019
Runtime version: 11.0.4+10-b304.69 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6
GC: ParNew, ConcurrentMarkSweep
Memory: 9728M
Cores: 12
Registry: java.completion.argument.hints.internal=false
Non-Bundled Plugins: String Manipulation, org.jetbrains.kotlin, LivePlugin

Is there any workaround to fix overcome this issue?

Looks like there is no com.intellij.psi.PsiClass in jars inside ideaHomeDirectory/lib

Also, it isn't working on 2019.3 EAP but works on 2019.1.4

I believe the issue can be solved by adding
File("${LivePluginPaths.ideJarsPath}/../plugins/java/lib/").filesList() +

to LivePluginScriptCompilationConfiguration#13

I think this happens because PsiElement is still part of the core API and PsiClass was moved to a separate java-specific "plugin" called com.intellij.java (which overall is the right thing to do because most IDEs don't deal with java code).
Adding // depends-on-plugin com.intellij.java after imports in plugin.groovy should help.


Default value of allow_None for Selectors

The Selector Parameter is instantiated with allow_None=None. All of its descendants inherit this.
>>> import param
>>> print(param.concrete_descendents(param.Selector))
{'Selector': param.Selector,
 'ObjectSelector': param.ObjectSelector,
 'FileSelector': param.FileSelector,
 'ListSelector': param.ListSelector,
 'MultiFileSelector': param.MultiFileSelector}

It is the only case of allow_None set to None, otherwise it's set to either True or False.
Functionally, setting it to False by default would I think lead to the exact same behaviors. So I wonder why it's None (it's pretty old code that's inherited from when it was in ObjectSelector)? That's maybe the source of this rather dry issue opened by Chris a while ago (https://github.com/holoviz/param/issues/106) ?

I find the semantics of allow_None for Selectors a bit confusing.
First, it's possible to fool Param (or yourself?), by either not allowing None by including it in the list of allowed objects, or by not allowing it but by setting check_on_set to False.
import param

class P(param.Parameterized):
    s = param.Selector(objects=[1, 2, None], allow_None=False)
    t = param.Selector(objects=[1, 2], allow_None=False, check_on_set=False)

p = P()

p.s = None

p.t = None

print(p.param.s.allow_None, p.param.t.allow_None)
# False False

I find strange that it's possible to have a default value of None, set the parameter to another valid value, and not be able to set it back to None.
import param

class P(param.Parameterized):
    s = param.ListSelector(default=None, objects=[1, 2])

p = P()

assert p.s is None

p.s = [1]

p.s = None

ValueError                                Traceback (most recent call last)
Cell In[73], line 12
      8 assert p.s is None
     10 p.s = [1]
---> 12 p.s = None

File ~/dev/param_main/param/parameterized.py:375, in instance_descriptor.<locals>._f(self, obj, val)
    373     instance_param.__set__(obj, val)
    374     return
--> 375 return f(self, obj, val)

File ~/dev/param_main/param/parameterized.py:1213, in Parameter.__set__(self, obj, val)
   1210 if hasattr(self, 'set_hook'):
   1211     val = self.set_hook(obj,val)
-> 1213 self._validate(val)
   1215 _old = NotImplemented
   1216 # obj can be None if __set__ is called for a Parameterized class

File ~/dev/param_main/param/__init__.py:1918, in ListSelector._validate(self, val)
   1916     return
   1917 if not isinstance(val, list):
-> 1918     raise ValueError("ListSelector parameter %r only takes list "
   1919                      "types, not %r." % (self.name, val))
   1920 for o in val:
   1921     super(ListSelector, self)._validate(o)

ValueError: ListSelector parameter 's' only takes list types, not None.

I'm pretty sure that allow_None=None was because before we had Undefined, we used None to indicate "not set by the user", and checked for None to determine appropriate default behavior. Now it's hard to imagine why that special case would need to be preserved.
Even supporting allow_None at all seems redundant for list-based Selectors, because people can just put None in the list of objects if they want to allow it.
Still, in the interest of consistency, my vote is for changing Selectors to allow_None=Undefined as an argument bottoming out in allow_None=False with the same behavior as for non-Selector Parameters.

Selectors need more work in general, that change can happen when this work is undertook, as as is it would not fix anything, except my need for consistency :). Moving to post Param 2.0.


Make the project mandatory

@quarckster @RonnyPfannschmidt Can you take a look and let me know if this is how I should be doing this?


Drop versioneer

I saw rechunker/#65 and thought we should do the same.

I pretty much just copied the steps from rechunker, does anyone know how I can test this without triggering a release?

Ah i guess this is tested during the pip install in the CI, so nevermind.

Why does the version in the CI jobs appear as xgcm==0.1.dev1+gcad7f67. Is this not correctly parsing the version from the git tag?
Requirement already satisfied: xarray>=0.14.1 in /usr/share/miniconda/envs/test_env_xgcm/lib/python3.8/site-packages (from xgcm==0.1.dev1+gcad7f67) (0.16.1)

I unfortunately know nothing about setuptools_scm. But thanks for working on this!

Perhaps @ocefpaf has some input? I would definitely appreciate any pointers with this.

Perhaps @ocefpaf has some input? I would definitely appreciate any pointers with this.

From your PR, locally, I get:
python setup.py --version
0.5.2.dev30+g26a310a

which looks correct. Let me inspect the CI...

Thanks for looking into this @ocefpaf. So the convention for non released versions is to bump the bugfix increment and add that scrambled id to that? Just for my understanding.

Thanks for looking into this @ocefpaf. So the convention for non released versions is to bump the bugfix increment and add that scrambled id to that? Just for my understanding.

Not sure. My guess is the lack os setuptools_scm in the CI. Let me try something here...

@jbusecke take a look at https://github.com/xgcm/xgcm/pull/288#issuecomment-736827260
It turns out the GHA that check the code out is probably doing a shallow clone and we cannot check the all the tags. Locally it works and it probably will work where it matters, on the publishing GHA. Let me know if you want to port #288 here or if you want to squash and merge that one instead.

Thanks @ocefpaf for the explanation and working on this. I have tested it locally too and it seems to work. I'd prefer to keep this and #288 together in one PR. Do you want to push to this branch? I can also make the changes.

Do you want to push to this branch?

I tried but I do not have the rights. It seems you did not used a fork and I don't have access to xgcm. Feel free to do whatever is easier for you. I believe I have your commits in #288, so they are already "a single" PR.

Any objections to merging this @ocefpaf? If you think this is good to go ill merge.

Again, many thanks for your help!

Any objections to merging this @ocefpaf? If you think this is good to go ill merge.

LGTM!


SD build static libggml.dylib

Hi when using the latest release, the SD binary now requires libggml.dylib to be in the same folder.

Is there a way to bake it into the binary?

Try this modification and see if it works?
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,6 +77,7 @@ if(SD_BUILD_SHARED_LIBS)
     set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 else()
     message("Build static library")
+    set(BUILD_SHARED_LIBS OFF)
     add_library(${SD_LIB} STATIC ${SD_LIB_SOURCES})
 endif()

It works! I created #188 for this.


docs: remove 'import type' declaration in javascript snippet

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[ ] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

The import type {Location} from 'history' statement in the myClientModule.js snippet causes JavaScript to throw an error because an import type declaration works only in TypeScript files—not JavaScript.
So, I propose removing the declaration from the doc example to prevent confusing users.
- import type {Location} from 'history';

export function onRouteDidUpdate({location, previousLocation}) {
  // Don't execute if we are still on the same page; the lifecycle may be fired
  // because the hash changes (e.g. when navigating between headings)
  if (location.pathname !== previousLocation?.pathname) {
    const title = document.getElementsByTagName('h1')[0];
    if (title) {
      title.innerText += '❤';
    }
  }
}

export function onRouteUpdate({location, previousLocation}) {
  if (location.pathname !== previousLocation?.pathname) {
    const progressBarTimeout = window.setTimeout(() => {
      nprogress.start();
    }, delay);
    return () => window.clearTimeout(progressBarTimeout);
  }
  return undefined;
}

Test Plan

N/A (This is a doc update)
Test links

Snippet's Doc Section: Client module lifecycles
Deploy preview: https://deploy-preview-9180--docusaurus-2.netlify.app/
Related issues/PRs

N/A

Thanks 👍


[x-filtering]Time-series line x-filtering not working when rich tooltip is turned off

Step, smoothline, both dont work when richtooltip is off.
https://user-images.githubusercontent.com/67837651/128245122-a6592d98-e508-41bb-a4af-21bdb56da918.mov

In fact, ECharts' line chart does not support click event without richtooltip (so it can not emit x-filtering), which is a limitation of ECharts itself. One hack way is to set a 0 size of marker, and it has a lower priority than marker control.

This is now fixed on master


Contract interaction

It would be nice to have proper contract interaction based on JSON ABI. So I would open a discussion thread for that implementation.

I think we can use ethabi for that purpose, because that seems to be a simple library as well without any tokio runtime.


Only store the batch manifest

A couple of important things have clicked into place:

#403 - we added the concept of a manifest to a batch, so DX implementations can confirm what the received without needing to sign the whole massive payload of the batch
#501 - we made it so all message transfers include a batch, including unpinned
#501 - the batch logic only stores the batch at the end of the dispatch, as part of passing it to a transport plugin (IPFS/DX)
When a batch arrives, we always store all of the contents of the batch individually - the messages and data

When you add all these together, the only reason you need to store the full batch is because the on-chain transaction contains a hash that is a function of the entire batch payload.
If instead we did the following small things:

Include the TX type/ID in the manifest
Include the batch ID in the manifest
Make the hash of a batch, a function only of the manifest

... then all we would need to store is the manifest.

Per https://github.com/hyperledger/firefly-fir/pull/10 we need to make sure that the new code that generates an IPFS/DX payload for the batch, is verified to always generate the same binary payload. Even if the batch is generated multiple times.
This means a couple of key things:

Do not include mutable fields of messages/data in the batch payload
Do not allow fields in the batch wrapper itself to be mutable (timestamps etc.)


Vec example is incorrect

Adding an example to a stuct field of type Vec results in a incorrect swagger example for the struct. The generated swagger example has a double pair of square brackets. I tried multiple variants of the component example macro, but each results in the same incorrect swagger example.
For example
#[derive(Deserialize, Serialize, Component, Clone, Debug)]
pub struct LogEntry {
    #[component(example = json!(["asdf", "zxcv"]))] // <---- Problematic example
    pub tags: Vec<String>,
}

results in the following example in swagger:
{
  "tags": [
    [
      "asdf",
      "zxcv"
    ]
  ]
}

Here follows a minimal rust program to reproduce the problem.

Start with rust-script
Open swagger via the link
Execute the api call
See that response is "Json deserialize error"

#!/usr/bin/env rust-script
//! ```cargo
//! [dependencies]
//! actix-web = "4"
//! utoipa = { version = "1", features = ["actix_extras"] }
//! utoipa-swagger-ui = { version="1", features = ["actix-web"] }
//! serde = { version = "1.0", features = ["derive"] }
//! serde_json = "1.0"
//! ```

use actix_web::{post, web, App, HttpResponse, HttpServer, Responder};
use serde::Deserialize;
use serde::Serialize;
use utoipa::Component;
use utoipa::OpenApi;
use utoipa_swagger_ui::SwaggerUi;

#[derive(Deserialize, Serialize, Component, Clone, Debug)]
pub struct LogEntry {
    #[component(example = json!(["asdf", "zxcv"]))] // <---- Problematic example
    pub tags: Vec<String>,
}

#[utoipa::path(
request_body = LogEntry,
)]
#[post("/api/logs")]
async fn add_log(new_log: web::Json<LogEntry>) -> impl Responder {
    HttpResponse::Ok().json(new_log)
}

#[derive(utoipa::OpenApi)]
#[openapi(handlers(add_log,), components(LogEntry,))]
struct ApiDoc;

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    println!("Starting swagger at: http://localhost:8080/swagger-ui/");

    HttpServer::new(move || {
        App::new()
            .service(add_log)
            .service(SwaggerUi::new("/swagger-ui/{_:.*}").url("/openapi.json", ApiDoc::openapi()))
    })
    .bind(("<IP_ADDRESS>", 8080))?
    .run()
    .await
}

Hi, this is a known issue and has not been addressed in the functionality. What happens it tries to add the json example to the string field within the Vec. For time being you could try to add example as a single string.
#[derive(Deserialize, Serialize, Component, Clone, Debug)]
pub struct LogEntry {
    #[component(example = "asdf"))]
    pub tags: Vec<String>,
}

Although it does not allow mutliple example values, But it should render the correct schema for time being.

Ok, thanks for your reaction. I will use a single string for now.
Would this be fixable by a beginner?

It shouldn't be too hard. To fix this there is 2 things that need to be done.

The Array type in schema.rs needs an example field. This is missing.
Find a way to distinct vec field from non generic field example. Currently there is no way to do that. This is a bit tricky and most likely needs some api changes to the current logic in utoipa-gen component.rs file.

And then of course tests for the changed behaviour.


PKCE authentication: content is not loaded and no error at all

Using GitLab, with a private repository and CSP rules.
I've just configured PKCE authentication following Decap CMS' docs on it. First, I've got CSP errors due to two configurations not mentioned in Sveltia docs:
connect-src  https://status-api.hostedstatus.com
script-src   'unsafe-inline'

After adding them, I'm able to log in with GitLab, but collections' content is not loaded (just the configuration for the collections, populating the left sidebar) and there's no error in browser console.
The CMS works flawlessly when loaded with a local repository.

https://status-api.hostedstatus.com is mentioned in the doc, and I don’t think unsafe-inline is necessary (my client doesn’t have it.)
Are you using a self-hosted GitLab instance?

Just checked with my private test repo hosted on GitLab.com, and the content was loaded. Not sure what’s going on 🤔

Are you using a self-hosted GitLab instance?

No, just a standard private gitlab.com repository.
Also, I've tested this in Firefox (125) and Chrome (123), with pretty much the same results, except in Chrome there's a "problems" message about discontinued use of StorageType.persistent when navigator.storage should be used instead. My site is builded by Hugo and hosted on Netlify. My GitLab account is protected by 2FA.
Below is the backend part of my configuration:
backend:
  name: gitlab
  repo: <username>/<repository>
  auth_type: pkce
  app_id: <app-id>

In the first time I log in, after clicking "Authorize" in the screen below, the popup returns to the Sveltia login screen with the button "Sign In with GitLab". I then close the popup, and click "Sign In with GitLab" in the main window (which is also on the login screen). Then the screen below appears again, I click "Authorize" and then I log in, at the first collection but without any content. Everytime I log in, the screen below appears. Perhaps it's related, maybe the authentication is not being persisted?

I don't know if it's something related, but since the very first time I've used a static CMS (Netlify CMS at that time), I had to duplicate config.yaml both in static/ and static/admin/, I don't know why. When I use Sveltia locally, it correctly reads from static/admin/config.yaml, but when on web it reads from static/config.yaml.

Tested with another site (actually the same but last time I connected it from localhost) hosted on Cloudflare Pages, but it also worked fine with PKCE.
Your API key is supposed to be stored in the browser’s local storage, named sveltia-cms.user. Can you find it? (under the Storage tab in Firefox DevTools, under the Application tab in Chrome DevTools)

I don't know if it's something related, but since the very first time I've used a static CMS (Netlify CMS at that time), I had to duplicate config.yaml both in static/ and static/admin/, I don't know why. When I use Sveltia locally, it correctly reads from static/admin/config.yaml, but when on web it reads from static/config.yaml.

I think it depends on the server or framework’s setting. Sometimes a trailing slash in the path is omitted, so when you access /admin/, you’ll be taken to /admin. The CMS tries to load the configuration file from the same directory, meaning /config.yml would be loaded instead of /admin/config.yml.
See https://github.com/decaporg/decap-cms/issues/7023
The solution is something like:

Open /admin/#/ or /admin/index.html
Rename index.html to cms.html and open /admin/cms instead (I have done this for one of my clients)

2. Rename index.html to cms.html and open /admin/cms instead (I have done this for one of my clients)

Thank you, I did this and it solved the conflict between configs.

Your API key is supposed to be stored in the browser’s local storage, named sveltia-cms.user. Can you find it? (under the Storage tab in Firefox DevTools, under the Application tab in Chrome DevTools)

In local storage there are two keys:

sveltia-cms.user with backendName, token, name, login, email, avatarURL, profileURL but no API key;
sveltia-cms.prefs. with apiKeys, which is empty.

And as before, everytime I log in to CMS the GitLab screen above appears asking me to authorize.
Two new things:

I tried to create a new piece of content. It's perfectly created, and it appears in the CMS at its collection until I log out from CMS. If I log in again, the content I've just created doesn't appear anymore (and all other content doesn't appear either).
File collections' content is correctly loaded. So the problem only occurs with Folder collections.

(Listen, Sveltia CMS is fantastic, your work is great! I'd like to help more in this issue, but I don't know how)

Thanks for your kind words 🥰 I’d like to fix the issue anyway. Will dive into this further.

@josineto Would you mind inviting me to the private repository if it doesn’t contain confidential information? My GitLab account is @koheiyoshino.

Thanks, will check.

Looks like the project code is not available with the Guest role on private repo. Can you change my role to Reporter?

https://gitlab.com/gitlab-org/gitlab-foss/-/issues/40624
https://docs.gitlab.com/ee/user/permissions.html

Repository: View project code
On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). External users must be given explicit access (at least the Reporter role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available.

@kyoshino done, you're now Reporter

Quick findings:

If you are sign out of GitLab when you go through the authorization process, the popup window won’t close after you sign in and authorize the OAuth app. I have seen this issue before. If you manually close the popup, and click Sign In with GitLab, you should be able to sign in. I’ll try to find a solution.
The content is not displayed due to GitLab’s limit of 100 records per query. I’m fixing it now.

The fix shipped with v0.26.4! Can you please delete the local data base and try again? In Chrome, open DevTools, select the Application tab, select your repository name under IndxededDB, and Click Delete database. Then reload the page.

It works!!! Sorry for the delay, I've only managed to test it today, but it works and now I can say I'm really impressed with how responsive Sveltia CMS is, in terms of loading time of everything. It seems like I'm working completely local, it's really impressive! Your work is great, thank you!

No worries! Glad it works for you now! 👏🏼
I forgot to mention that since GitLab only allows to retrieve 100 records (files) at once, loading the site data is slower than GitHub that doesn’t have such a limit. I think Sveltia CMS is overall still faster than Netlify/Decap CMS 😄

Yes, and also much faster than Static CMS (which uses React as well).

I know Static CMS but haven’t tried it myself yet. It’s a community maintenance fork of Netlify CMS. Just like Sveltia CMS, it was started before Decap CMS was announced. For some reason, they have dropped the GraphQL support and the bundle size is pretty huge (2.5 MB), so the performance isn’t great. They have better documentation than Netlify/Decap CMS though.
Sooner or later I’ll start working on Static CMS compatibility, including the Key Value widget, which effectively solves https://github.com/decaporg/decap-cms/issues/5489 🙂


Left sidebar and right sidebar options no longer working

🧐 Have you read the FAQ and viewed similar issues?

[X] I have read the FAQ
[X] I have checked older issues, open and closed
[X] I did a clean install of SpotX as described in the FAQ

Сountry of your account
USA
What is your Spotify Plan?
Free
Do you have Spicetify installed?
No
ℹ Computer information
- Spotify:
- Windows: 11 2H22
- PowerShell: 5.1.22621.963

📝 Description
Using the parameters: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iex "& { $((iwr -useb 'https://raw.githubusercontent.com/SpotX-CLI/SpotX-Win/main/Install.ps1').Content) } -confirm_uninstall_ms_spoti -confirm_spoti_recomended_over -podcasts_on -cache_off -block_update_off -left_sidebar_on -right_sidebar_on -hide_col_icon_off -start_spoti"
Windows Powershell gives error claiming "A parameter cannot be found that matches parameter name 'left_sidebar_on'" which was working the last time I ran the same command. Same error for the right sidebar. I have used this script for the past few months and no issues up until recently.
📸 Screenshots
No response

the incoming parameters for the right and left sidebars have been removed, use the -new_theme parameter


Error improvements.

Exposes more sub-errors through the Error::cause method, and imps the Error trait on more Error structs.

Looks good, thank you!
@homu r+

:pushpin: Commit 10298b5 has been approved by kvark

:hourglass: Testing commit 10298b5 with merge c33a13d...

:sunny: Test successful - status


Rsync from remote to local?

Wondering is it possible to rsync from remote to local?

@tongjieme 啊～
v1.3 請服用
😭


Iterating over two arrays with zip is twice as slow as using an index variable

I've noticed that using zip with numba seems to produce code that is twice as slow as using an index variable:
@jit
def f1(x, y):
    s = 0
    for xi, yi in zip(x, y):
        s += xi * yi
    return s

@jit
def f2(x, y):
    s = 0
    for i in range(len(x)):
        s += x[i] * y[i]
    return s

x = np.random.randn(100000)
y = np.random.randn(100000)
%timeit f1(x, y)
# 10000 loops, best of 3: 187 µs per loop
%timeit f2(x, y)
# 10000 loops, best of 3: 95.2 µs per loop

The slow down here isn't just due to using the index variable -- without using zip, these functions are essentially the same speed:
@jit
def s1(x):
    s = 0
    for xi in x:
        s += xi
    return s

@jit
def s2(x):
    s = 0
    for i in range(len(x)):
        s += x[i]
    return s

%timeit s1(x)
# 10000 loops, best of 3: 92.2 µs per loop
%timeit s2(x)
# 10000 loops, best of 3: 93.9 µs per loop

I tested this on master (as well as the latest release) on OS X.
To give a little more context, my interest is in simultaneously iterating over multiple arrays that may have any number of dimensions. So ultimately I would like to write look something like for xi, yi in zip(x.flat, y.flat), and I don't see any way to write that using accelerated Numba other than using zip if the dimensionality of x and y are not known ahead of time..

zip is more complicated as it has to compute two separate iterators, and Numba doesn't know that they have the same lengths (i.e. shapes).

I would like to write look something like for xi, yi in zip(x.flat, y.flat), and I don't see any way to write that using accelerated Numba other than using zip if the dimensionality of x and y are not known ahead of time..

You can use numpy.ndindex() or numpy.ndenumerate().

zip is more complicated as it has to compute two separate iterators, and Numba doesn't know that they have the same lengths (i.e. shapes).

This is a fair point, though I wonder if I might be possible to shortcut for this common case.

You can use numpy.ndindex() or numpy.ndenumerate().

Indeed, thanks!
Here are two more functions:
@jit(nopython=True)
def f3(x, y):
    s = 0
    for i in np.ndindex(*x.shape):
        s += x[i] * y[i]
    return s

@jit(nopython=True)
def f4(x, y):
    s = 0
    for i, xi in np.ndenumerate(x):
        s += xi * y[i]
    return s

On master, trying to run either of these currently raises LowingError. On 0.18.2, f4 works, with about 33% overhead (124 µs per loop), but f3 raises NotImplementedError:
NotImplementedError                       Traceback (most recent call last)
<ipython-input-24-3c1508b4c534> in <module>()
----> 1 f3(x, x)

/Users/shoyer/miniconda/envs/flat-top/lib/python2.7/site-packages/numba/dispatcher.pyc in _compile_for_args(self, *args, **kws)
    160         assert not kws
    161         sig = tuple([self.typeof_pyval(a) for a in args])
--> 162         return self.compile(sig)
    163
    164     def inspect_llvm(self, signature=None):

/Users/shoyer/miniconda/envs/flat-top/lib/python2.7/site-packages/numba/dispatcher.pyc in compile(self, sig)
    303                                           self.py_func,
    304                                           args=args, return_type=return_type,
--> 305                                           flags=flags, locals=self.locals)
    306
    307             # Check typing error if object mode is used

/Users/shoyer/miniconda/envs/flat-top/lib/python2.7/site-packages/numba/compiler.pyc in compile_extra(typingctx, targetctx, func, args, return_type, flags, locals, library)
    561     pipeline = Pipeline(typingctx, targetctx, library,
    562                         args, return_type, flags, locals)
--> 563     return pipeline.compile_extra(func)
    564
    565

/Users/shoyer/miniconda/envs/flat-top/lib/python2.7/site-packages/numba/compiler.pyc in compile_extra(self, func)
    297                 return self.stage_compile_interp_mode()
    298             else:
--> 299                 raise e
    300
    301         return self.compile_bytecode(bc, func_attr=self.func_attr)

NotImplementedError: offset=21 opcode=0x8c opname=CALL_FUNCTION_VAR

I've opened a separate issue (#1118) for the ndenumerate() regression.

The problems you had with f3 and f4 should both be fixed on master now.

Indeed, they work now. Thanks! f4 is still about 30% slower than direct indexing, and f3 is even slower.

Interestingly, it seems LLVM 3.7 has become much better at optimizing this. Now f1, f2 and f3 have the same speed (here on Linux). f4 is still quite a bit slower.

Still, if you encounter other cases where zip is too slow, don't hesitate to post them.

That's great! Zip really helps for writing pythonic code.

Actually -- maybe it's worth adding these examples to the benchmark suite?

Yes. There's actually a comment about that here:
https://github.com/numba/numba-benchmark/blob/master/benchmarks/bench_iterating.py
Do you want to submit a PR?

Note PR #1787 implements np.nditer(), which provides optimized multi-array iteration assuming you don't care about iteration order.

Benchmarks added in https://github.com/numba/numba-benchmark/pull/5

Thanks Antoine!
On Thu, Mar 24, 2016 at 3:33 AM, Antoine Pitrou<EMAIL_ADDRESS>wrote:

Closed #1111 https://github.com/numba/numba/issues/1111.
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/numba/numba/issues/1111#event-601559670


WrappedArray overrides knownSize (2.13 stricter refcheck compat)

As soon as #3599 is in, I will do a merge of 0.6.x into master. Hopefully that will happen today.


Question about calculating PSNR-mv and SSIM-mv

Hi, Thanks for sharing the codebase of Mimic3D.
I have some questions about the procedure for calculating the PSNR and SSIM.
Papers (including Mimic3D and GRAM-HD) denote that they use 50 instances for calculating the PSNR and SSIM,
and for each instance, they sample 30 mutiview images.
In such case, what camera poses are used for sampling the multiview images?
(e.g. randomly sampling the pose distribution?)
Thanks,

I found the detailed explanation in the supplementary of GRAM-HD paper.
Sorry for bothering.

Hello, have you calculated PSNR and SSIM? Can you ask me how to achieve them, Can you provide the implementation method or code?
Thanks,

I do not know the details about how the authors implement these metrics, as I think that it requires additional details to train the Neus.
What I found is just the experimental details in supp. of GRAM-HD, denoting they use 30 images uniformly sampled from -0.4 to 0.4 yaw radian for training Neus, and they use 50 instances to calculate the final score.

Thanks for your reply, I am trying to replicate the method of GRAM-HD, and now I am studying how to get the pose of the 50 instances of GRAM-HD.


fix: add recursive type detection for the go sdk

This fixes #5871.
For example, previously this would have failed, since the Void method was required.
// foo is the module

type Foo struct{}

type X struct {
	Message string `json:"message"`
}

// This function definition is required, or we don't detect and
// incorporate this into schema generation.
// func (x *X) Void() {}

func (m *Foo) MyFunction(ctx context.Context, stringArg string) X {
	return X{Message: stringArg}
}

similarly with this example:
// foo is the module

type Foo struct {
	Example X
}

type X struct {
	Message string `json:"message"`
}

With this patch, we attempt to recursively investigate function signatures, structs, etc, to try and find additional types we need to incorporate into the graphql structure defintion.

Nice!
I think we have enough of a framework in place that a test for this would be somewhat straightforward to add.
Something like this:
https://github.com/dagger/dagger/blob/bec193e06806b46275f0df7d5584ff7b8a91cdb3/core/integration/module_test.go#L491-L509
Lately I've started to favor just directly embedding Go code in the tests since it's a bit of a pain to maintain dozens of tiny testdata files:
https://github.com/dagger/dagger/blob/bec193e06806b46275f0df7d5584ff7b8a91cdb3/core/integration/module_test.go#L558-L563

Aha, awesome - I'll work on a test on Monday, I'm wrapping up for the week now :)

@vito I've pushed a test - it's currently failing though, until https://github.com/dagger/dagger/blob/268c1062a902c8bade88eedde8daee5ed90affdf/sdk/go/modules/sdks.go#L22 is updated though.
Ideally the tests should work with the in-tree version of these deps, not sure if you have ideas for how we could startup dev versions of these?

@jedevc Until #5900 lands, the expected workflow is to run the following to build + push a new image:
../../hack/dev ../../bin/dagger run go run ./cmd/bootstrap/ --publish vito/dagger-sdk-go:(git rev-parse HEAD)


Bug

Now it is better but need to be test

The ConfigureAwait(false) may be needed, the rest is ok. We did a lot of tests with our apps, but there are certain places that are not used by any of them, I believe we just found one.