Kubernetes pod distribution amongst nodes

Hello,
I have seen the pods are deployed in the same nodes every time instead being spread over all the nodes in the kubernetes cluster.
In following example it can be seen that all the partitions launched are always deployed in the same nodes:
ip-10-10-4-209.eu-west-2.compute.internal
ip-10-10-3-134.eu-west-2.compute.internal

As an example, I have launched a Job called batch-process-prod-task three times, that launchs multiple partitions called batchjobtaskprod.
batch-process-prod-task-8qg20491v7                           0/1     Completed   0          53m   <IP_ADDRESS>   ip-10-10-4-137.eu-west-2.compute.internal   <none>
batch-process-prod-task-gpn5wl2129                           0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-174.eu-west-2.compute.internal   <none>
batch-process-prod-task-km2q08x0o0                           0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-137.eu-west-2.compute.internal   <none>
batchjobtaskprod-0l7g34qq2d                                  0/1     Completed   0          23m   <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-160gv203km                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-23zgjj3lk4                                  0/1     Completed   0          26m   <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-4jxlo2x3j8                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-54q69o2671                                  0/1     Completed   0          32m   <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-6oz3k2zv41                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-6oz3ko6k48                                  0/1     Completed   0          43m   <IP_ADDRESS>     ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-79evq2e3me                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-8kej05q907                                  0/1     Completed   0          37m   <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-em4ex3xmd4                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-gmqdzjzxdz                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-j3e9zlzl5x                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-j3e9zoeqk7                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-kvgd262xk5                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-kvgd2q56z7                                  0/1     Completed   0          49m   <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-ljx1m3m972                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-ljx1mkx6w5                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-ljx1mo1v54                                  0/1     Completed   0          39m   <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-o9m8zgm91w                                  0/1     Completed   0          1h    <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-o9m8zgvk69                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-qq96x5x9o4                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-vl8w7159o8                                  0/1     Completed   0          1h    <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-vl8w715g36                                  0/1     Completed   0          1h    <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-vl8w7m7qe6                                  0/1     Completed   0          1h    <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-w6l57g893x                                  0/1     Completed   0          1h    <IP_ADDRESS>     ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-w6l57glxpx                                  0/1     Completed   0          1h    <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-w6l57ox716                                  0/1     Completed   0          52m   <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-x36w72x7dv                                  0/1     Completed   0          30m   <IP_ADDRESS>   ip-10-10-4-209.eu-west-2.compute.internal   <none>
batchjobtaskprod-x36w7l206g                                  0/1     Completed   0          1h    <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
batchjobtaskprod-zjgx7jg599                                  0/1     Completed   0          45m   <IP_ADDRESS>    ip-10-10-3-134.eu-west-2.compute.internal   <none>
scdf-batch-lab-batch-process-rest-service-6ff8766645-grjwh   1/1     Running     0          4h    <IP_ADDRESS>   ip-10-10-3-174.eu-west-2.compute.internal   <none>
scdf-batch-lab-data-flow-server-7d64499499-jlxgp             1/1     Running     5          4h    <IP_ADDRESS>    ip-10-10-3-174.eu-west-2.compute.internal   <none>

How can I set the following properties using the affinitiy?, similar to the example bellow
         affinity:
              podAntiAffinity:
                preferredDuringSchedulingIgnoredDuringExecution:
                  - weight: 100
                    podAffinityTerm:
                      labelSelector:
                        matchExpressions:
                          - key: "app"
                            operator: In
                            values:
                            - batchjobtaskprod
                      topologyKey: "kubernetes.io/hostname"

Thanks in advance

Anti-Affinity is not currently implemented in the kubernetes deployer. out of the box, we don't provide any scheduling hints, so where they land is being determined by kubernetes. if you would like to open a feature request, or submit a PR for it, please do so against the deployer project: https://github.com/spring-cloud/spring-cloud-deployer-kubernetes


(compilers): add version and pname

Motivation for this change
It's annoying to have to use getVersion with clang and friends. Might as well add the pname while we're at it.
Things done
I ran the rebuild for a little bit (on NixOS) to check it wasn't totally broken.

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Notify maintainers
cc @

@oxij I see you moved the crossNameAddon to the start for the earlier versions. Are you aware of any reason I shouldn't change it for the later ones also?

No, I just didn't touch the expressions for the later gccs then. So, if I were you, I would change them now.

Thanks. pname now added to gcc.
Note that the cc-wrapper doesn't forward the pname; I'm not sure if it's worth the hassle.

needs a rebase

@veprbl Suggestions added.

BTW, I like to do
vim -d pkgs/development/compilers/gcc/*/default.nix

to make sure all this copy-pasted code isn't drifting apart.

Would it be possible to base your PR on top of git merge-base origin/master origin/release-19.09? I would very much appreciate that.

Remarkably, it rebased without any conflict :)

Oh! Last thing there is a gcc/snapshot/default.nix you should get too, even though it should also be deleted.

Oh! Last thing there is a gcc/snapshot/default.nix you should get too, even though it should also be deleted.

Hmm, I made the same changes there as to the others - is there something I missed?

Oh, I'm so sorry @gloaming! I was reviewing earlier today from my phone and somehow missed that file.

I'm very confused. Why is this going to release-19.09?

@veprbl Oh. shit! I meant for this to still go to staging, sorry if that was unclear.

I'll revert.

for #74014 I was wondering why my previous nix-review only built ~100 packages, then ~900 a few minutes later... ty for reverting :smile:

Hehe NP.


Add support for URI remapping

Allow users to remap URIs. Regular expressions are supported. Remappings get evaluated in order of definition. Multiple remappings are allowed.
The format is similar to that of markdown-link-check.
How it works ⚙
Consider the following input:
file://../../issues
https://example.com
https://example.org
https://example.net

Let's remap these inputs using the --remap parameter:
lychee --remap 'https://example.com http://<IP_ADDRESS>:8080' \
       --remap 'https://example.org https://staging.example.com' \
       --remap '../../issues https://github.com/usnistgov/OSCAL/issues' \
       -- input.md

This would check the following URIs:
https://github.com/usnistgov/OSCAL/issues
http://<IP_ADDRESS>:8080/
https://staging.example.com/
https://example.net/

Caveats 🚩

Be careful when using this feature because checking every link against a large set of regular expressions has a performance impact even though the Rust regex engine is very fast.
There are no constraints on the URI mapping, so the rules might contradict each other. It's the user's responsibility to make sure this does not happen.
File remappings might be a bit surprising. Files are handled as URIs internally and get prefixed with a file:// scheme. As a consequence, using ^../../issues as a remap pattern would never match. Instead ../../issues (without the ^) would work.

Open Questions 🤔  (please provide feedback)

Shall we first remap a URI and then check if it is excluded or vice versa? 🤔

Fixes #547

Any comments before this gets merged?


Temporary remove SLICEL as equivalent site

Signed-off-by: Alessandro Comodi<EMAIL_ADDRESS>This PR is to temporary remove SLICEL from the equivalent sites of SLICEM.
Kevin has pointed out in the equivalent tiles review, that the way the new move_generator during equivalent sites placement was working allowed some blocks to be swapped in possibly too distant locations, as two different compressed_location_grids were being used.
This situation is avoided if there are no pb_types which have multiple possible locations, and the only one that have this behavior is currently SLICEL.
For IOPADs and PLL this does not happen as the pb_types have only one possible placement location only.
I think that this behavior was partly contributing to having high routing times for picosoc as the placement produced possibly hard-to-route solutions.

@litghost I am not aware of what were the single routing iteration times before this patch, but I think I am getting reasonable times when routing picosoc now:
Confirming router algorithm: TIMING_DRIVEN.
---- ------ ------- ---- ------- ------- ------- ----------------- --------------- -------- ---------- ---------- ---------- ---------- --------
Iter   Time    pres  BBs    Heap  Re-Rtd  Re-Rtd Overused RR Nodes      Wirelength      CPD       sTNS       sWNS       hTNS       hWNS Est Succ
      (sec)     fac Updt    push    Nets   Conns                                       (ns)       (ns)       (ns)       (ns)       (ns)     Iter
---- ------ ------- ---- ------- ------- ------- ----------------- --------------- -------- ---------- ---------- ---------- ---------- --------
Warning 136: No routing path for connection to sink_rr 1231106, retrying with full device bounding box
Warning 137: No routing path for connection to sink_rr 1539162, retrying with full device bounding box
Warning 138: 90 timing endpoints were not constrained during timing analysis
   1    8.8     0.0    0 6.9e+07    5615   16933   11382 ( 0.322%)  630776 ( 7.4%)   17.205 -1.904e+04    -17.205      0.000      0.000      N/A
   2   38.0     0.5  108 2.5e+08    4459   13770    9143 ( 0.258%)  428359 ( 5.0%)   17.223 -2.025e+04    -17.223      0.000      0.000      N/A
   3   98.2     0.6   47 5.2e+08    4140   13033    7965 ( 0.225%)  435070 ( 5.1%)   17.223 -2.049e+04    -17.223      0.000      0.000      N/A
   4  142.2     0.8   48 6.8e+08    3830   12335    6905 ( 0.195%)  437715 ( 5.2%)   17.224 -2.096e+04    -17.224      0.000      0.000      N/A
   5  153.5     1.1   44 7.3e+08    3544   11488    5424 ( 0.153%)  443019 ( 5.2%)   17.286 -2.124e+04    -17.286      0.000      0.000      N/A
   6  124.5     1.4   29 6.8e+08    3072   10182    4055 ( 0.115%)  447893 ( 5.3%)   17.301 -2.139e+04    -17.301      0.000      0.000      N/A
   7  110.4     1.9   13 5.9e+08    2618    8766    3039 ( 0.086%)  450683 ( 5.3%)   17.290 -2.153e+04    -17.290      0.000      0.000      N/A
   8   88.3     2.4    8 5.0e+08    2188    7221    2172 ( 0.061%)  455006 ( 5.4%)   17.248 -2.159e+04    -17.248      0.000      0.000      N/A
   9   68.9     3.1   13 3.9e+08    1763    5868    1555 ( 0.044%)  457792 ( 5.4%)   17.297 -2.159e+04    -17.297      0.000      0.000      N/A
  10   50.8     4.1    8 2.9e+08    1391    4532    1095 ( 0.031%)  460940 ( 5.4%)   17.299 -2.163e+04    -17.299      0.000      0.000       33
  11   37.5     5.3    4 2.1e+08    1081    3459     786 ( 0.022%)  462744 ( 5.4%)   17.269 -2.164e+04    -17.269      0.000      0.000       31

Before:
# Routing took 2250.79 seconds (max_rss 11980.2 MiB, delta_rss +0.0 MiB)
Intra-domain critical path delays (CPDs):
  soc.progmem.clk to soc.progmem.clk CPD: 17.6674 ns (56.6015 MHz)
The entire flow of VPR took 2340.32 seconds (max_rss 11980.2 MiB)

After:
# Routing took 2134.41 seconds (max_rss 11981.6 MiB, delta_rss +0.0 MiB)
Intra-domain critical path delays (CPDs):
  soc.progmem.clk to soc.progmem.clk CPD: 17.8227 ns (56.1081 MHz)
The entire flow of VPR took 2227.58 seconds (max_rss 11981.6 MiB)

That is basically no affect, I think I'd rather leave the equivalence in place?

Sure, I am now fixing equivalent tiles to address Kevin's comments. Once it's done I'll push on wip/equivalent-sites the updated version that should better handle equivalent placement. I'll close this PR


refresh to v0.13.0

Checklist before submitting

[x] Did you read the contributor guide?
[ ] Did you update any affected documentation?
[ ] Did you write any tests to validate this change?

Description
Fixes # (issue).
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

We will need to force merge this PR.


Prefix internal CSS classes

Many of the library's CSS classes are very generic (e.g. button) - while angular 2's scoping feature will prevent these classes from interfering with the rest of the application it won't prevent the rest of the application from interfering with the library.
If the implementing application has defined .button in a global stylesheet it will cascade down to the library.
Solution: Prefix all of our internal classes with image-upload__

Yeah this is reasonable to prefix all classes. It would be good if we can shorten the prefix to img-ul.

Would it be useful in #58 and #24? Maybe since our classes are prefixed we can remove angular's style scoping so users can style the component as they want?

I'd say we accept a cssClass input which is added to the component at the highest level - this would allow the user to style every part of it with selectors.
Not that they can't do that already imo, this just makes it a bit clearer.

Yeah, they do exactly that in ngx-bootstrap tabs interface

Will start prefixing the classes first then will begin custom class for buttons and dropbox area.

I think we can do something like customClasses={'buttons':'my-btn-class','dropBox':'my-dropbox-class'}  as more components(button & dropbox) are there.


chore(deps): update docker.io/bitnami/os-shell docker tag to v12-debian-12-r31 - abandoned

This PR contains the following updates:

Package
Update
Change

docker.io/bitnami/os-shell (source)
patch
12-debian-12-r30 -> 12-debian-12-r31

[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

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

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

This PR has been generated by Renovate Bot.

Autoclosing Skipped
This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.


Add scrolloff option

Fixes https://github.com/newsboat/newsboat/issues/1103.
Fixes https://github.com/akrennmair/newsbeuter/issues/191.

Coverage increased (+0.04%) to 57.592% when pulling 6e2107f4a687506d500b031da9d3eb818ab553df on dennisschagt:feature/add-scrolloff-option into 974207ac2b4b680a71ec808b67e6e90773089e9f on newsboat:master.

Great explanation! Thank you for adding it.


Is there any code for model export？

Such as onnx or torchscript

You can export SAM 2.1 ONNX models for image prediction using export_onnx.py in sam-cpp-macos repository.
Install Segment Anything Model 2 and download checkpoints.

Copy yaml files in sam2/configs/sam2.1 to sam2.

Put export_onnx.py and david-tomaseti-Vw2HZQ1FGjU-unsplash.jpg to the root folder.

To export an ONNX model.
python export_onnx.py --mode export

To check how the ONNX model works.
python export_onnx.py --mode import

You can download exported SAM 2.1 ONNX models.

SAM 2.1 Tiny
SAM 2.1 Small
SAM 2.1 BasePlus
SAM 2.1 Large


[WIP] Deterministic InnerClass attribute under joint/separate compilation

WIP for https://github.com/scala/bug/issues/12085

Submmited as scala/scala#9131


BigQuery: add UnknownJob type for redacted jobs.

Fixes https://github.com/GoogleCloudPlatform/google-cloud-python/issues/5220
/cc @shollyman

I can't see any benefit to the caller in getting back an instance of  UnknownJob:  I would certainly find it disconcerting and useless.  ISTM that the caller's experience would be better if the backend should skip reporting jobs for which the caller does not access.  As an alternative, Client.list_jobs() could just discard entries without any configuration.
That said, I don't see an issue with the code here, so feel free to merge if the consensus is agin' me.


add schema type to upload schemas, add survey schema to upload integration test bootstrap

Changes:

add schema type to Upload Schema - This allows us to have separate logic in the iOS Upload Validation handlers to distinguish between surveys and non-surveys.

add survey schema to Upload integration test bootstrapping - Currently, this schema already exists everywhere, but adding it to the bootstrap so that a new stack or a new local box will work out of the box.

Testing done:

ran integration tests against devo, staging, and prod
deleted the upload integration test schemas on my local box and validated that the integration test recreted them

Looks fine, I can merge whenever your ready.
On the server I wonder what happens if a revision changes the schema type? Should something like that be immutable after the initial creation?


Update Exaop Update script

Changes made to Exaoperation update script which allow uploading larger packages plus various changes to make the update process more reliable.

I find this PR generally hard to review. It modifies a huge part of the script, but there's is no explanation (neither in the PR nor in the SPOT ticket). Since all changes have been squashed into one commit and there are very few comments overall, it's really hard to tell the intentions behind these changes and to evaluate if the modifications actually fulfill those intentions.

@exajuk I agree it is hard - I also didn't do a lot of the changes myself. I was provided the updated script from Christopher Bross and did very minor modifications on it.

The script I initially shared with @nconforti93 is from here: https://github.com/exasol/cloud-testing/blob/master/scripts/auto_update_exaop.py
Looking at the history of the two files in git it looks like the one from cloud-testing is newer (but also already 2 years old the latest commit from @rexhepajflakron) . But I can not tell you more about the changes then what is in the git history.


Refactor cloudlaunch for use as a library

Create a layer (actions?) in cloudlaunch that can be called directly as a library. This layer would sit below serializers/viewsets.
First step is to create some unit tests over the existing code to guard against regressions.
TODO

[x] DeploymentTask tests
[x] Deployment tests
~move only one launch task logic to model~
~factor out DeploymentSerializer.create logic to an action~
~what's the desired API when using cloudlaunch as a library?~

We decided against trying to use cloudlaunch as a library. To do so we would need to create a new API layer in cloudlaunch that sits above the Django models and Celery tasks but below the DRF viewsets and serializers. This API layer would define the single API of CloudLaunch and the DRF viewsets and serializers would then just map that API to a RESTful interface.  Such a single API would prevent divergence between the REST API and using cloudlaunch as a library. However, this seems a good bit of work just to get to the point of being able to call cloudlaunch directly. Also, the DRF serializers assume they are working with Django models directly so it's unclear how having a layer between the serializers and the models would work or if we would need to explicit map the serializers, increasing the amount of work to be done.
Our current thought is to call cloudlaunch internally by its REST API.  For this we'll use the API wrapper in cloudlaunch-cli. This has the beneficial side effect of ending up with an improved API wrapper that the cloudlaunch-cli can also use.
I'm going to go ahead and finish the tests that I created in the linked pull request and I hope to get that merged.

Such a single API would prevent divergence between the REST API and using cloudlaunch as a library.
Didn't we think the opposite was a possibility? For example, some functionality could be implemented at the lowest, library level but not exposed via the serializers to the REST API, which would cause divergence in what the library exposes vs. what's available via REST.

Also, so we can recall this later - one more bit we discussed was auth. It's likely that auth would be simpler if everything was contained within CloudLaunch vs. going through REST and the CLI, especially when different classes of users need to be supported (e.g., superuser vs. standard user). Hopefully we can outsource this to something like Keycloak in the future anyhow.

Didn't we think the opposite was a possibility? For example, some functionality could be implemented at the lowest, library level but not exposed via the serializers to the REST API, which would cause divergence in what the library exposes vs. what's available via REST.

Yes that's right. The set of functionality exposed via REST would be a subset of what is available in lower library level. In that sentence I meant that there wouldn't be divergence of how the functionality is implemented, for example, the API layer would provide a way to create a RESTART task, instead of it being implemented one way in the REST code and another way when used as a library.

This issue can be closed now. This work has essentially moved to cloudlaunch-cli, see https://github.com/CloudVE/cloudlaunch-cli/issues/4


VOLK_IMPLEMENTATION is also defined after including volk.h

https://github.com/zeux/volk
"In exactly one source file, define VOLK_IMPLEMENTATION before including volk.h."
Well, VOLK_IMPLEMENTATION is defined twice in this book's code base:

Context.cpp, before including volk.h
Common.cpp, **after including volk.h
actually no effect, I guess

Thanks.

Yes, that seems like unnecessary, but I don't think it has any side effects. We shall remove it.

The only side effect is confusion, I believe. : )

Agreed. I will remove it


feat(card): Report full screen state as a Shiny input

Pairs with rstudio/bslib#1006

ui.card() and ui.value_box() gain an id argument and report their state at the input id, if provided by the user.
Only full_screen state is currently reported, but the state value is a dictionary for future expansion.
Added tests that cover this feature in Shiny Express and modules in Shiny Core.

Todo

[x] Update dependencies after rstudio/bslib#1006 is merged
[x] Add item to changelog

For posterity, this PR also pulls in https://github.com/rstudio/bslib/pull/1004 which is why the woff files are being removed and woff2 files are being added.


Removing reservation timeout and instrument ID from reserve_session c…

…alls in our examples.

[X] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Removing the reservation timeout and instrument id parameters from our reserve_session calls in our examples.
Why should this Pull Request be merged?
AB#2524066
Removing these parameters shorten and simply our examples.
instrument_type_id can be removed for the following reasons:

InstrumentStudio pin controls already filter by instrument type.
In TestStand you will get an error if you specify a pin that is connected to the wrong instrument type.
Connecting one pin to multiple instruments is an advanced use case.

Note that we are leaving this in the TestStand code modules.
timeout has added 7 lines of boilerplate to our example. A reservation of 0 seconds (the default) should be sufficient for single-site, single-threaded test sequences.
What testing has been done?
Tested the DMM example against a simulated device in NI-MAX.

Please add AB#2524066 in the PR description if that is accurate.

I think you should wait for @bkeryan to review before submitting.


ARS-781: Add consentToDisclosureOfPersonalData to traderDetails

According to the ETMP schema, consentToDisclosureOfPersonalData is an optional string field with values 0 or 1. Currently modelling it as Option[String] instead of an Enum as the schema does not explicitly specify it as an Enumeration.

We should be modelling this field as an Option[Boolean]. It may not specifically say the word "enumeration" in the schema but it does say that the only values will be 0 or 1.


Ensure Getting Started examples are compliant with Pegasus

Also updated references to Ocean classes to exploit integration with tools' repos.

I think I've updated for all GS examples to directly link


Any plan on supporting Coffee Maker (Scishare) and Steam Oven (chunmi.oven.x02)?

Hi,
First of all, thank you very much for this plugin. I'm planning to move many of my Xiaomi Devices from using various plugins to this one. I see that the plugin also support an oven type of accessory but only the chunmi.microwave.n20l01. Are there anyway that you could also add support to chunmi.oven.x02, which is the Xiaomi Smart Steam Oven 12L as well?
Currently, if I'm configuring the plugin with my chunmi.oven.x02 token and ip, the switch is displayed in my Home App with only On/Off button. However, this on/off button won't control the device at all. Turning the switch on or off will not reflect the state of the device.
Homebridge log is saying that the device is set up without error.
[26/07/2021, 12:29:45] [miot] [Xiaomi Oven] Connected to device: chunmi.oven.x02
[26/07/2021, 12:29:45] [miot] [Xiaomi Oven] Setting up device!
[26/07/2021, 12:29:45] [miot] [Xiaomi Oven] Doing device specific setup
[26/07/2021, 12:29:45] [miot] [Xiaomi Oven] Doing initial property fetch
[26/07/2021, 12:29:45] [miot] [Xiaomi Oven] Device setup finished! Device ready, you can now control your device!
[26/07/2021, 12:29:46] [miot] [Xiaomi Oven] Successfully connected to MiCloud!
[26/07/2021, 12:29:46] [miot] [Xiaomi Oven] Getting device info from MiCloud!

Anyway, I kinda expect this since it's not listed as supported device but I just want to try it out first.
Also, is it possible to support Scishare Capsule Coffee Maker (scishare.coffee.s1102)? If yes, any information I can help you obtain in order to support this device?
Thank you and looking forward to your reply.

Hi,
yes i can add support for both devices. As you already noted there is already an oven module so adding a new oven device is straight forward. There is currently no coffee maker module so I first need to implement that which will take more time.
Anyway, you provided the models of both devices which is already very good. The only other info I would need if those are miot or miio devices (for miio devices micloud connection will be required), do you know when those device were released on the market?

Wow, thank you very much for your super fast reply.
The Steam Oven has just been released around April of this year, while Scishare Coffee Maker is around 2 to 3 years back.
Hopefully, this info could help you somehow.
If you still need any information, please let me know ^^

I found more information regarding the Scishare Coffee Maker, it seems to be Miio protocol according to this post
https://github.com/ha0y/xiaomi_miot_raw/issues/70
However, with Miot, i think turning on/off should at least work?
Hope this helps somehow.

Thanks for the info.
If the oven got released just in April then we can certainly assume that it is a miot device, so local commands will work and a micloud connection will not be required!
As for the coffee maker, yes it seems to be a miio device. But I can use the micloud as a proxy to control it with miot commands, so here a micloud connection will be required.
There are only 2 properties exposed in miot for that device so it will be fairly simple to implement it. I just need to think of how to expose it in HomeKit since there is no water boiler or coffee machine accessory...

Thanks for the info.
If the oven got released just in April then we can certainly assume that it is a miot device, so local commands will work and a micloud connection will not be required!
As for the coffee maker, yes it seems to be a miio device. But I can use the micloud as a proxy to control it with miot commands, so here a micloud connection will be required.
There are only 2 properties exposed in miot for that device so it will be fairly simple to implement it. I just need to think of how to expose it in HomeKit since there is no water boiler or coffee machine accessory...

Regarding the Scishare Coffee Maker. If the only 2 commands that expose with miot are on and off, can we use use the switch on and off for that purpose? However, if we can set the boiler degree of the water or the coffee we brew, maybe we can use heater for the purpose?
If controlling with Mi Home App, we can also choose 3 choices of whether we want to brew Americano, Espresso or Hot Water (The amount of water for each choice is set as a fix number in Mi Home App). If it's also possible to choose whether we want to brew Americano, Espresso or Hot Water, can we use switch accessory for each type to execute the command?
It's only my two cents idea. Of course, anyway of implementation would be appreciated. So let the decision be on yours ^^.
Thank you in advance.

Yeah, there are only 2 parameters exposed, on/off and the status, so I guess that a simple switch would be the way to go here with the coffee maker...

Okay.
Let me know if you want me to test anything.

@Aekung can you tell me the full official name of the oven?

@Aekung can you tell me the full official name of the oven?

It’s Xiaomi Mijia Smart Steam Oven Toaster 12L

Hi @merdok
Don’t mean to push you but just want to ask if there is any update regarding these? Do you want me to check on anything for you?
Thanks in advance ^^

I already have the device implemented locally, it will be available in the next update.
I think that I will release the update by the end of this week but not yet certainly sure about that...

I already have the device implemented locally, it will be available in the next update.
I think that I will release the update by the end of this week but not yet certainly sure about that...

Thanks for the reply. Feel free to do it whenever you are free to.
Looking forward to the upcoming version. ^^

Version 0.9.9 now has support for the device! Please try it out and let me know!

Version 0.9.9 now has support for the device! Please try it out and let me know!

Thank you very much for the update and the head-up notification on the status.
I've tested the plugin this morning and the oven shows up in homekit as expected. However, I found 2 strange behaviors that I think I should report here.

The start command doesn't seem to work at all for some reason. The stop command is working just fine if I start the oven manually. I'm not sure what's the problem as I tried to check on the log but it returns nothing. Please let me know if I should do the debugging on Homebridge level in order to help you diagnose.

Using the lux level for 'Cook Time' and 'Left Time' is such a very clever way to implement. However, as of the nature of Homekit, if a single room has more than 1 lux sensor, the number showing on the interface will be the average number of all lux sensors in the room. In my case, the "Cook Time" always display "0" and it doesn't seem to work, but the "Left Time" shows up as expected. So when averaging the number between "Cook Time", which always report "0", and "Left Time", which reports the right number. The number of left time shows on the interface will always be "-1" from the real time. In this case, I would suggest to change the type of "Cook Time" to something other than 'Lux' so that it's not interfering with "Left Time" in homekit interface. Or just have the option to remove "Cook Time" in your config so that it can be removed if the user doesn't want it to show up. Cook Time is not really a major thing I will miss if I don't have it since the Left Time is more of what important here.

Other than these 2, the temperatures report correctly and I can heat up or warm down the temperature of the oven on the fly with Homekit if I start the oven manually.
Regarding the coffee maker machine, the switch shows up in homekit but it doesn't work at all. I can't turn in on or off with the switch. It doesn't seem to be responsive. I did try configuring the Mi Cloud account in plugin setting as well but it still doesn't work.
By the way, there's a warning reported in Homebridge log, which is likely coming from the Oven. Here's the displayed warning
[09/08/2021, 07:40:02] [homebridge-miot] This plugin generated a warning from the characteristic 'Current Temperature': characteristic was supplied illegal value: number 101 exceeded maximum of 100. See https://git.io/JtMGR for more info.

Hi

the start command should work, I double checked and the mapping is correct. Although the start cooking command requires a parameter, so I think you need to specify that, probably indicating in which mode to start the cooking...
You would need to create a custom action button for the start_cooking action and specify the parameter there.

oh, really? That is unfortunate, but I think during my testing I saw two separate lux sensors for that. A lux sensor is the only reasonable accessory here since it can display any kind of number. Maybe it is possible to prevent in HomeKit that behavior which you specified and have them display separate values?

The coffee machine is also properly mapped, just double checked! It requires a micloud account to be specified since it is not a real miot device. Make sure that you specified the correct credentials and server country for your mi account.
If it is still does not work then you need to start homebridge in debug mode and check what the log says, you can also additionally use the "deepDebugLog" property to see some extra verbose information.
As for the error in the log, will check it out and provide a fix!

Hi

the start command should work, I double checked and the mapping is correct. Although the start cooking command requires a parameter, so I think you need to specify that, probably indicating in which mode to start the cooking...
You would need to create a custom action button for the start_cooking action and specify the parameter there.
oh, really? That is unfortunate, but I think during my testing I saw two separate lux sensors for that. A lux sensor is the only reasonable accessory here since it can display any kind of number. Maybe it is possible to prevent in HomeKit that behavior which you specified and have them display separate values?

The coffee machine is also properly mapped, just double checked! It requires a micloud account to be specified since it is not a real miot device. Make sure that you specified the correct credentials and server country for your mi account.
If it is still does not work then you need to start homebridge in debug mode and check what the log says, you can also additionally use the "deepDebugLog" property to see some extra verbose information.
As for the error in the log, will check it out and provide a fix!

Thanks for the reply. I will check everything out again once I'm back home.
Will update the thread later tonight.
Thank you.

PS. Just want to make sure that I understand everything correctly.

You mean I should create a scene for each mode of the oven to trigger the start state of the oven with set temperature? If yes, I will definitely be able to do that but I won't be able to set the time since Lux level is not configurable at all.

In Mi Home, the oven comes with pre-defined mode, which are Toast, Egg tart, Chicken wings, Roasted Shrimp and Manual. You also have the option to create custom recipe for more mode. Are there way we can expose these modes as a switch in Homekit?

There are two separated lux sensors when long pressing on the the summary tile of Lux in the room. But the summary tile will only show average lux from that 2 lux sensors. I tried checking whether there's any option in Homekit where I can show both lux as a separate tile on a summary section but I don't think there is any option for that.

So I still think the best way is to be able to exclude some sensors in the plugin config. However, I'm not sure if it's difficult to implement but it could be an option under Oven Setting if possible. There might be an option to choose whether to include or exclude "Cook Time" and "Time Left"
Regarding the Coffee Maker Machine, I will paste the log here with both Homebridge in Debug Mode and with "deepDebugLog" enabled tonight.
Thank you very much for your work. It's very much appreciated.

No, please check the README on how to create action buttons. I suppose the param should be between 0 and 3 as those are the values for the cook modes. Or maybe it is the time? So just try to set it > 0.

I think the modes are read only so it won't be possible to control using the HomeKit. But not sure about that.

Probably I will make it configurable then. Will check it out how is the best way to do it, since if you say that it is getting confused when more then 1 lux sensor is in a room then maybe it never makes sense to show more then one... not sure...

No, please check the README on how to create action buttons. I suppose the param should be between 0 and 3 as those are the values for the cook modes. Or maybe it is the time? So just try to set it > 0.

I think the modes are read only so it won't be possible to control using the HomeKit. But not sure about that.

Probably I will make it configurable then. Will check it out how is the best way to do it, since if you say that it is getting confused when more then 1 lux sensor is in a room then maybe it never makes sense to show more then one... not sure...

Thanks for the guide. I could make it work now with all available standard cooking modes (recipe) that is pre-defined from the manufacturer. Those who are having the same oven model with me can try this same setup.

"actionButtons": [
                        {
                            "action": "start_cook",
                            "name": "Toast",
                            "params": [
                                0
                            ]
                        },
                        {
                            "action": "start_cook",
                            "name": "Egg Tart",
                            "params": [
                                1
                            ]
                        },
                        {
                            "action": "start_cook",
                            "name": "Chicken Wings",
                            "params": [
                                2
                            ]
                        },
                        {
                            "action": "start_cook",
                            "name": "Roasted Shrimp",
                            "params": [
                                3
                            ]
                        },
                        {
                            "action": "cancel_cooking",
                            "name": "Cancel"
                        },
                        {
                            "action": "pause",
                            "name": "Pause"
                        }
                    ]

This action buttons will expose "Egg Tart", "Toast", "Chicken Wings", "Roasted Shrimp", "Cancel" and "Pause". I don't have the custom recipe to try out yet though.

Nice 👍 So you can start the cooking in one of those 4 modes?  What is the difference between those modes?
How about the log from
The coffee machine?

Nice 👍 So you can start the cooking in one of those 4 modes? What is the difference between those modes?
How about the log from
The coffee machine?

Yes, you are right. Each mode have different Temperature and Time of cooking based on what menu you are cooking. I will try adding the custom recipe later to see if I could also expose the custom recipe as an ActionButton as well.
I'm now testing the Smart Coffee Maker once again and I will report you back with the log.
^^

By the way, this could be the error that preventing the Cooking Time to not showing up correctly but shows 0 instead. I found it after enabling the log
[09/08/2021, 21:44:46] [homebridge-miot] [Stream Oven] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[09/08/2021, 21:44:46] [homebridge-miot] [Stream Oven] Error while parsing response from device for property cook_mode. Response: {"did":"54:48:E6:E2:7C:C3","siid":2,"piid":4,"code":-4001}
[09/08/2021, 21:44:46] [homebridge-miot] [Stream Oven] Error while parsing response from device for property cook_time. Response: {"did":"54:48:E6:E2:7C:C3","siid":2,"piid":11,"code":-4001}

Regarding the Coffee Maker, this error appears in the log.
[Coffee Maker] Error: The device with id 7C:49:EB:40:04:EA could not be found on the cn server! Please make sure that the specified micloud country is correct!
All 3 authentication process are done without any error. I double checked the Device ID and it's already correct. I also check the region and it's also CN. I'm not sure what's the problem here. Have you ever experienced something like this?

Oven:
You are right, cook_mode nan cook_time have no access permissions specified hence i guess they are not accessible. They are probably used only for the actions as input parameters. I will remove them in the next update.
This makes me think that the start_cook action might have also an additional parameter for the cooking time. You could do a little bit of experimenting and let me know what works (sorry i cannot do that since i have no access that device so i am completely depend on you here)
Just modify this line of code: https://github.com/merdok/homebridge-miot/blob/main/lib/modules/oven/devices/chunmi.oven.x02.js#L99
Try to replace it with: this.addAction(Actions.START_COOK, 2, 1, [11]); to check if the time will work, also you can try this.addAction(Actions.START_COOK, 2, 1, [4,11]); to check if both can be specified, you would need to adjust your config json then.
I also saw that there are more advanced start cooking actions, you can try it out by addin the following action in the spec file: this.addAction("start_cook_ext", 4, 1, [15,11,13]); This accepts 3 parameters including a custom recipe id. You can check the details here: https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:oven:0000A04E:chunmi-x02:1
Coffee Maker:
You need to check if there is an error thrown in the console when you try to use the switch of the coffee maker, that could cause the issue.
The log which you posted looks perfectly fine, this is a periodical property refresh. The power value in the log should actually update whenever you control the coffee maker manually. can you confirm that?

I’ll try this out once again tomorrow and feedback here ^^

Since this morning, the oven stops working once again. The start_cook param returns error
[Xiaomi Oven] Error while executing action start_cook with params ! Error: Invalid response. Response: {"code":-4003}
I haven't changed anything in the file you mentioned yet but it's just stop working.
Do you know what's the problem with -4003 response code?

It is not a problem with the plugin but with the oven. I am not quite sure what the response codes mean since those are not really documented... You could try to force the oven to use micloud, by setting the forceMiCloud param to true in the MiCloud object. Micloud usually gives better error codes which are documented.

It is not a problem with the plugin but with the oven. I am not quite sure what the response codes mean since those are not really documented... You could try to force the oven to use micloud, by setting the forceMiCloud param to true in the MiCloud object. Micloud usually gives better error codes which are documented.

forceMiCloud gives me another error code that I still can't really find on google. Perhaps you know what this error code is?
[10/08/2021, 20:23:23] [homebridge-miot] [Xiaomi Oven] Error while parsing response from device for property cook_mode. Response: {"did":"394798560","siid":2,"piid":4,"code":-704030013}

Oh, yeah that code means that the property is not readable. But we already know that and that will be fixed in the next update.

I think that might be the reason here. Though I don't know why it was working just fine yesterday. But it seems to be that the cook_mode might not be able to read so when it's trying to parse the start_cook with mode value (0 - 3 param), it returns error instead?

This error should not have any effect on controlling the device. This just happens during property sync but should not break anything, this is just an info the property could not be synced...

This error should not have any effect on controlling the device. This just happens during property sync but should not break anything, this is just an info the property could not be synced...
In the above action I see that you did not specify any params so I guess that is why you get the first error... you need to use your custom action buttons for now. I guess that I have to add a default value in case of such actions and then the switch will work for you.

Actually, I meant to change the action button config to true as to expose the start_cook, stop and pause only because all the params stop working for some reason. I readded the actionbuttons with params but still nothing work.

In the above error I see that there are no params being passed with the start_cook action...

In the above error I see that there are no params being passed with the start_cook action...

Sorry for the late reply. I went through all the process of resetting device WiFi and etc to regenerate the new token but the problem is still persisted. This time I also add the param in the actionButtons as you can see here
[10/08/2021, 23:44:02] [homebridge-miot] [Steam Oven] Send action! RAW: {"did":"54:48:E6:E2:7C:C3","siid":2,"aiid":1,"in":[{"piid":4,"value":"0"}]}
[10/08/2021, 23:44:02] [homebridge-miot] [Steam Oven] Error while executing action start_cook with params 0! Error: Invalid response. Response: {"code":-4003}

I think I have the same problem as @ahelpingchip in this thread https://github.com/merdok/homebridge-miot/issues/48 where executing start_cook would return this error for some reason. I am still not quite sure why it was working fine yesterday night.
I can't really find the meaning of the -4003 error code or we might be able to understand the problem better.

In the above example i see that the did is not correct: 54:48:E6:E2:7C:C3 Did you enter that manually? If yes then please remove it since the plugin will automatically retrieve the did from the device. Besides that the request looks fine, so i am not quite sure why the device suddenly does not accept that anymore...

In the above example i see that the did is not correct: 54:48:E6:E2:7C:C3 Did you enter that manually? If yes then please remove it since the plugin will automatically retrieve the did from the device. Besides that the request looks fine, so i am not quite sure why the device suddenly does not accept that anymore...
Yes, the local commands are not documented and as far as i know mostly reverse engineered, the micloud miot protocol on the other hand is documented and the errors are described.

I did enter that manually to try. It's the Mac Address of the Device. lollll. I removed it out already but it still doesn't work. The did now returns with 394798560.
Are there anyway to check whether it's the right Device ID or it might be retrieving the wrong ID somehow?

I did something and the Mi Cloud returns with this error when executing the actionButton.
[11/08/2021, 09:42:49] [homebridge-miot] [เตาอบไอน้ำ] Send action! RAW: {"did":"394798560","siid":2,"aiid":1,"in":[{"piid":4,"value":"2"}]}
[11/08/2021, 09:42:49] [homebridge-miot] [เตาอบไอน้ำ] MiCloud request https://api.io.mi.com/app/miotspec/action - {"_nonce":"mkMOwiFdi0MBni/i","data":"{\"params\":{\"did\":\"394798560\",\"siid\":2,\"aiid\":1,\"in\":[{\"piid\":4,\"value\":\"2\"}]}}","signature":"AAOc1Hz0YJSVqOIgLI/engE/60fBzpjBjlzUhnkqKa4="}
[11/08/2021, 09:42:50] [homebridge-miot] [เตาอบไอน้ำ] Error while executing action start_cook with params 2! Error: Invalid response. Response: {"did":"394798560","miid":0,"siid":2,"aiid":1,"code":-704220035,"exe_time":0,"net_cost":0,"ot_cost":0,"otlocalts":0,"oa_cost":0,"_oa_rpc_cost":0}

The error code is -704220035. I'm trying to search for this error but it doesn't come up with anything. If -704030013 is the permission error, do you happen to know what -704220035 is?

Yes, the did is correct now. But it should actually only be relevant during micloud communication. During local communication it should not matter if it is correct or not.
But not sure why your oven suddenly does not accept that command, even when it did before... this is strange!

Yes, the did is correct now. But it should actually only be relevant during micloud communication. During local communication it should not matter if it is correct or not.
But not sure why your oven suddenly does not accept that command, even when it did before... this is strange!

Yeah, it definitely is strange.
I'm trying to understand the way the code work, can you please explain me a bit if my understanding is correct?
"siid":2,"aiid":1,"in":[{"piid":4,"value":"0"}
According to the chunmi.oven.x02.js, when I'm trying execute the ActionButton, I'm getting this in the log. If I understand correctly,
"siid":2  is referring to this part of the miot spec
"iid":2,
"type":"urn:miot-spec-v2:service:oven:00007862:chunmi-x02:1",
"description":"Oven",

Which is meant to instruct that the command is for this oven. While
"aiid":1 is referring to 'Start Cook' of the miot spec
"actions":[
{
"iid":1,
"type":"urn:miot-spec-v2:action:start-cook:00002806:chunmi-x02:1",
"description":"Start Cook",
"in":[4],
"out":[]
},

Which is meant to execute the Action Command. And
"piid":4 is referring to 'cook_mode' of the miot spec
{
"iid":4,
"type":"urn:miot-spec-v2:property:cook-mode:00000037:chunmi-x02:1",
"description":"Cook Mode",
"format":"uint8",
"access":[],
"unit":"none",

Which then will call the value set in params option of the plugin for the value-list of the miot spec
"value-list":[
{
"value":0,
"description":"Cheese"
},
{
"value":1,
"description":"Tart"
},
{
"value":2,
"description":"Wing"
},
{
"value":3,
"description":"Seafood"
}

So in this case, ""siid":2,"aiid":1,"in":[{"piid":4,"value":"0"}" means commanding the device "siid":2 to do "start-cook" ("aiid":1), in "Cook Mode" ("piid":4) with "Tart Recipe" ("value":"0").  Am I understand this right?
Sorry I'm so noob about this but really want to try to help you diagnose the problem as much as I can so I have to ask you this question even though it might sound silly to you lolll.
By the way, since the Miot Spec only have "iid", how do you categorized each "iid" to "siid", "aiid" and "piid"?
Thank you in advance.

You are almost correct😄
siid - Service id
piid - Property id
aiid - Action id
A device can have multiply services. A service consist of properties, action and events. You will see in the miot spec that each service has an id. Actions can only use properties which are in the same service, hence you will see two different start_cook actions in different services with different properties.
With the rest you are pretty much right. Using the info and the spec you can construct then the required command which is send to the oven.
Since I do not own such oven I definitely require your help to find out what the issue exactly is so any help is appreciated.
You can for example modify the device js file to add new actions there like the other start_cook action in the other service and see if that other action works better, just keep in mind the other start_cook action has 3 parameters but not sure if all are required! Do not forget to give the action a different name or they will overwrite!

You are almost correct😄
siid - Service id
piid - Property id
aiid - Action id
A device can have multiply services. A service consist of properties, action and events. You will see in the miot spec that each service has an id. Actions can only use properties which are in the same service, hence you will see two different start_cook actions in different services with different properties.
With the rest you are pretty much right. Using the info and the spec you can construct then the required command which is send to the oven.
Since I do not own such oven I definitely require your help to find out what the issue exactly is so any help is appreciated.
You can for example modify the device js file to add new actions there like the other start_cook action in the other service and see if that other action works better, just keep in mind the other start_cook action has 3 parameters but not sure if all are required! Do not forget to give the action a different name or they will overwrite!

Thanks for the clear explanation. I will see what I can do with this.
By the way, I think I finally found the meaning of -4003 error code I got when executing start_cook action. It's
| -4003 | Properties, methods, events do not exist |
According to https://gist.github.com/marcelrv/20509106e97b4c7dd8c9056aefda2332#gistcomment-3260681
But I don't really know why it doesn't exist when it's in Miot Spec. Do you have any idea or have you ever come up with the issue like this before?

Goshhhhhhhh!
I could make thing works again now. I carefully rechecking everything once again and spotted on this.
[Steam Oven] Send action! RAW: {"did":"394798560","siid":2,"aiid":1,"in":[{"piid":4,"value":"0"}]}
Well, the value-list return the result with "", instead of only the number! I think it's the bug in the plugin when setting up Action Buttons with the option in Homebridge UI-X. lollll
Now things are working fine. I will try to find the way to add custom recipe as a start-action trigger.
Thank you very much for your help and everything. It really is appreciated.

I commented this line out for now to temporary disable the Cook Time
 //this.addProperty(Properties.COOK_TIME, 2, 11, PropFormat.UINT32, PropAccess.READ_NOTIFY, PropUnit.SECONDS, [0,<PHONE_NUMBER>, 1]);
Tried adding this
this.addAction(Actions.START_COOK, 2, 1, [11]); and this this.addAction(Actions.START_COOK, 2, 1, [4, 11]); But both doesn't work.
Also tried  this.addAction("start_cook_ext", 4, 1, [15,11,13]); and config the start_cook_ext in config.json (with param 1 and I also give the customer recipe a name as 1 as well) but this returned error code -4003. I even tried this.addAction("start_cook_ext", 4, 1, [15]); with only piid 15, which should mean the recipe-name. The command executed as wish
[Steam Oven] Send action! RAW: {"did":"394798560","siid":4,"aiid":1,"in":[{"piid":15,"value":"1"}]}
But it still returned error -4003.
Any suggestion on this?

Oh, yeah I did not not notice that... the param should not be of type string in that case but just a integer number so without the "" around the value. Makes sense that it was not working with that...
Can you also try to change the 11,4 of the properties when trying out with the cook time? Also did you specify both parameters or just the cook time when trying it out?
Also please note that in the above raw action I again see that you are sending the value as a strong instead of a integer number. That might be the error...

Can you also try to change the 11,4 of the properties when trying out with the cook time? Also did you specify both parameters or just the cook time when trying it out?

I'm not sure if I quite understand this. What I did was changing this.addAction(Actions.START_COOK, 2, 1, [4]);  to this.addAction(Actions.START_COOK, 2, 1, [4,11]); and this.addAction(Actions.START_COOK, 2, 1, [11]); to test things out. After adding, I tested it by turning on the oven in Homekit using heater interface and scrolled the heat up to 200 DegC. Nothing happened to the oven at all.
Please let me know if it's meant to be tested in a different way and I am more than happy to try it out for you.

Also please note that in the above raw action I again see that you are sending the value as a strong instead of a integer number. That might be the error...

I did notice that so I removed the "" but it still doesn't work as well. As the piid15 is recipe-name, not the ID, and we don't really know if the Mi Home App registers the recipe-name the way I named the recipe in Mi Home App. Could this possibly be the reason why the command doesn't work?

I mean you can try and swap those out like yo 11,4 in the spec and specify them in that way.
If this is the recipe name then you can try specific it like that, I mean you can try out to put the exact same name as you named it. Also please note that the start_cook_ext has 3 parameters so it might be that you need to specify then all.

I mean you can try and swap those out like yo 11,4 in the spec and specify them in that way.

Swapping to 11.4 returns me -4003 error with this action executed
[12/08/2021, 19:33:43] [homebridge-miot] [Steam Oven] Send action! RAW: {"did":"394798560","siid":2,"aiid":1,"in":[{"piid":11,"value":0},{"piid":4}]}
[12/08/2021, 19:33:43] [homebridge-miot] [Steam Oven] Error while executing action start_cook with params 0! Error: Invalid response. Response: {"code":-4003}

It seems like the piid11 retrieves value 0 from [0,<PHONE_NUMBER>, 1]. 0 represents 0 second here so it might be the reason why the command is invalid? Also, piid4 doesn't seem to retrieve the param from the respective action button as well.

If this is the recipe name then you can try specific it like that, I mean you can try out to put the exact same name as you named it. Also please note that the start_cook_ext has 3 parameters so it might be that you need to specify then all.

In Mi Home App, 3 things I can set for the custom recipe are Recipe Name, Set Temp. and Set Duration. The Recipe Name is likely to be iid15. However, I have no clue to what iid13 and iid11 is. Both of them are 'string' so it doesn't make sense to assume that they are representing Temperature and Duration since if they are, they would have to be 'integer' so we could have number as a value there, right?

But I see the request does not log correct after you swapped.
First specifying a duration of 0 does not make sense, you should put a much more higher number there.
Second the param with id 4 has no value and we already know that this param is required having a value!
Also keep note that we only guessing that there might be a hidden 11 param for that action since this is not officially in the spec. I already saw some devices having undocumented params. I assume that there might be such a hidden param since cook time is documented property without access so it can only be used as a parameter...
Did you check in the spec what the corresponding properties represent? Recipe, temperature and duration?
I mean in the end only the manufacturer knows for sure what should be used there😅 Since we only have the spec info, that is the only thing we can reference too. If the manufacturer requires the temperature to be a string then we will never know why it is like that...

But I see the request does not log correct after you swapped.
First specifying a duration of 0 does not make sense, you should put a much more higher number there.
Second the param with id 4 has no value and we already know that this param is required having a value!
Also keep note that we only guessing that there might be a hidden 11 param for that action since this is not officially in the spec. I already saw some devices having undocumented params. I assume that there might be such a hidden param since cook time is documented property without access so it can only be used as a parameter...
Did you check in the spec what the corresponding properties represent? Recipe, temperature and duration?
I mean in the end only the manufacturer knows for sure what should be used there😅 Since we only have the spec info, that is the only thing we can reference too. If the manufacturer requires the temperature to be a string then we will never know why it is like that...

I will look into all of this once again when I'm back home. Thank you very much for being very responsive and for all the help.
I will keep you update ^^


feat: async serial

Tried following the other connection wrappers structures.
Needs testing (i'll test soon).

Did a simple test with serial:/dev/ttyACM1:115200:
// ...
        let mut connection =
            mavlink::connect_async::<mavlink::ardupilotmega::MavMessage>("serial:/dev/ttyACM1:115200").await?;
        connection.set_protocol_version(self.mavlink_version);
// ...
            select! {
                res = connection.recv() => {
                    match res {
                        Ok((header, msg)) => {
                            trace!(?header, ?msg, "received message from connection");
                            //...
                        }
                        Err(e) => {
                            error!("failed to read: {e}");
                        }
                    }
                }
                res = channel.recv() => {
                    // ...
                }
            }

and I'm able to get data:
received message from connection header=MavHeader { system_id: 1, component_id: 1, sequence: 133 } msg=ATTITUDE(ATTITUDE_DATA { time_boot_ms: 389342, roll: 0.0, pitch: 0.0, yaw: 0.0, rollspeed: 0.0, pitchspeed: 0.0, yawspeed: 0.0 })

received message from connection header=MavHeader { system_id: 1, component_id: 1, sequence: 134 } msg=VFR_HUD(VFR_HUD_DATA { airspeed: 0.0, groundspeed: 0.0, alt: 0.0, climb: 0.0, heading: 0, throttle: 0 })

I would also like to have async serial be upstreamed so there is consistency between sync/async. Though looking at your code, is it not problem that the port is locked behind a single mutex, i.e. no reader and writer half? If I were to wrap the AsyncSerialConnection in an Arc and create a reader and writer thread, would the reader not be able to lock out the writer indefinitely if there are no incoming messages?


[BUG]: Increased latency with executing AuthZ when a user has multiple roles

What is the bug?
Observing increased response times when there are multiple roles associated with a user and the cluster size is large (e.g. 1 TB),
How can one reproduce the bug?
Steps to reproduce the behavior:
Create 7 different roles for access to 7 different indices
Assign the above roles to a user 'Bob'
Provide alerting role access to Bob
Create monitor from Alerting plugin on an index of size 100 GB
The response time will be 10-15 seconds.
This implies the security plugin is taking a long time to validate the permissions associated with the user.
What is the expected behavior?
The response time for validating permissions should be within 1-2 sec
What is your host/environment?

OS: [e.g. iOS]: Linux
Version [e.g. 22]
Plugins: Security, Alerting, Anomaly Detection

Hi @praveensameneni could you please provide information about your configuration? What version of OpenSearch were you running which experienced this issue etc. ? Thank you in advance :)

Closing this stale issue.


Nightly builds

Hi,
Is there nightly builds available to try some added feature?
Thank you.
Abdoessalam

No nightly build, but if you want to run craftsman locally you can do this:

Clone down the repo
Go to ./Craftsman/Craftsman ￼in your terminal
Run dotnet run COMMAND. For example, dotnet run add:entity my/entity/file.yaml

Alternatively you can also run from VS or Rider by adding something like add:entity my/entity/file.yaml to your run props.


Updated About Page

Resolved issue #171

I have deleted the other About us file as there were some conflicts.
@SUGAM-ARORA can you please check this and approve it?

@Hemashree21 This branch is not updated .
For updation you can do using following steps :
git checkout main
git pull
git checkout
git merge main
[ ... resolve any conflicts ... ]
git add [files that were conflicted]
git commit
git push

@Hemashree21 This branch is not updated . For updation you can do using following steps :
git checkout main git pull git checkout git merge main [ ... resolve any conflicts ... ] git add [files that were conflicted] git commit git push

It's showing branch up to date

@Hemashree21 This branch is not updated . For updation you can do using following steps :
git checkout main git pull git checkout git merge main [ ... resolve any conflicts ... ] git add [files that were conflicted] git commit git push

It's showing branch up to date

@Hemashree21 Still your deployment is not up to date with the latest updates

@SUGAM-ARORA I will check it again


Make url template generation more robust

Prevent :id_partition placeholder from being inserted multiple
times.

Coverage increased (+0.002%) to 99.152% when pulling e8dfd061dc00190b3d835d9a8255cb8a73405b6f on tf:url-template-id-partition-fix into dfd027e8b818f967ad4016968c34f807e96d3036 on codevise:master.


[GHSA-qf8x-vqjv-92gr] Authentication bypass and denial of service (DoS) vulnerabilities in Apple Game Center auth adapter

Updates

CWEs

Hi there @mtrezza! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our highly-trained Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory


【BUG REPORT】Segmentation fault (core dumped)

sudo apt-get remove libvulkan1
[sudo] password for websec:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libcapi20-3 libfaudio0 libodbc2 libstb0
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  google-chrome-stable libvulkan1 mesa-vulkan-drivers vulkan-tools
0 upgraded, 0 newly installed, 4 to remove and 23 not upgraded.
After this operation, 411 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 285298 files and directories currently installed.)
Removing google-chrome-stable (128.0.6613.113-1) ...
Removing mesa-vulkan-drivers:amd64 (23.2.1-1ubuntu3.1~22.04.2) ...
Removing vulkan-tools (<IP_ADDRESS>+dfsg1-1) ...
Removing libvulkan1:amd64 (<IP_ADDRESS>-2) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...

sudo apt-get install libvulkan1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libcapi20-3 libfaudio0 libodbc2 libstb0
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  mesa-vulkan-drivers
The following NEW packages will be installed:
  libvulkan1 mesa-vulkan-drivers
0 upgraded, 2 newly installed, 0 to remove and 23 not upgraded.
Need to get 0 B/10.9 MB of archives.
After this operation, 51.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package libvulkan1:amd64.
(Reading database ... 285161 files and directories currently installed.)
Preparing to unpack .../libvulkan1_<IP_ADDRESS>-2_amd64.deb ...
Unpacking libvulkan1:amd64 (<IP_ADDRESS>-2) ...
Selecting previously unselected package mesa-vulkan-drivers:amd64.
Preparing to unpack .../mesa-vulkan-drivers_23.2.1-1ubuntu3.1~22.04.2_amd64.deb ...
Unpacking mesa-vulkan-drivers:amd64 (23.2.1-1ubuntu3.1~22.04.2) ...
Setting up libvulkan1:amd64 (<IP_ADDRESS>-2) ...
Setting up mesa-vulkan-drivers:amd64 (23.2.1-1ubuntu3.1~22.04.2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...

vulkaninfo --summary
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0.  Skipping ICD.
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 6.  Skipping ICD.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.204

Instance Extensions: count = 20
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_EXT_swapchain_colorspace            : extension revision 4
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_wayland_surface                 : extension revision 6
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6

Instance Layers: count = 4
--------------------------
VK_LAYER_INTEL_nullhw       INTEL NULL HW                1.1.73   version 1
VK_LAYER_MESA_device_select Linux device selection layer 1.3.211  version 1
VK_LAYER_MESA_overlay       Mesa Overlay layer           1.3.211  version 1
VK_LAYER_NV_optimus         NVIDIA Optimus layer         1.3.280  version 1

Devices:
========
GPU0:
	apiVersion         = 4206872 (1.3.280)
	driverVersion      =<PHONE_NUMBER> (0x8c08c0c0)
	vendorID           = 0x10de
	deviceID           = 0x2684
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = NVIDIA GeForce RTX 4090
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 560.35.03
	conformanceVersion = <IP_ADDRESS>
	deviceUUID         = c2ggsafaf8-655sd9-3ss456-4c98-cd27ssdfsdafdf6
	driverUUID         = c3czxcvc10-c7eds6-5fdds1c-86a1-dc0ehfghghe21
GPU1:
	apiVersion         = 4206847 (1.3.255)
	driverVersion      = 1 (0x0001)
	vendorID           = 0x10005
	deviceID           = 0x0000
	deviceType         = PHYSICAL_DEVICE_TYPE_CPU
	deviceName         = llvmpipe (LLVM 15.0.7, 256 bits)
	driverID           = DRIVER_ID_MESA_LLVMPIPE
	driverName         = llvmpipe
	driverInfo         = Mesa 23.2.1-1ubuntu3.1~22.04.2 (LLVM 15.0.7)
	conformanceVersion = <IP_ADDRESS>
	deviceUUID         = 6d657361-32ss33-2edd32-2e31-2d317asdfsdafsdaf7500
	driverUUID         = 6csdfsadfdsad-7069-706ss5-55ss55-4944s000adfsdfa
Segmentation fault (core dumped)

try this
https://cdn.discordapp.com/attachments/1277836331501883449/1280291965879193731/fix.zip?ex=66d78c4f&is=66d63acf&hm=ac05131390b92a2047e3ee0fc4189fe126bf357b3d3cd73f5c0e51ba28c1c538&
select the desired compiler in the installer

Can you try running vulkaninfo through gdb? You can also try vkcube which may be more debuggable. Although, both of these may not have symbols so you may need to build this repo locally in a Debug mode to get debug symbols.

If I had to guess, this is the VK_EXT_tooling_info vkGetPhysicalDeviceToolPropertiesEXT. which version of vulkaninfo are you using? Is it the latest SDK version (where vkGetPhysicalDeviceToolPropertiesEXT is optional) or an older SDK which always queries vkGetPhysicalDeviceToolPropertiesEXT?

If it is version 1.3.204, then that should have the fix for vkGetPhysicalDeviceToolPropertiesEXT.
Still, this is a difficult issue to track down without more details to go off of. A longer backtrace would be lovely, but I suspect its something that isn't vulkaninfo's fault (drivers, loader, layers may all contribute to this).

Can you install a different nvidia driver version? possibly 550? That may be enough to allow you to keep making progress.

I tried reproducing this problem locally, and I can hit the segfault -- but only if I copy the Vulkan SC ICD JSON (nvidia_icd_vksc.json) from /etc/vulkansc/icd.d to /etc/vulkan/icd.d.
I'm working on a fix for the segfault, but am still unsure why the Vulkan Loader is tripping across the Vulkan SC ICD JSON.
To anyone who can reproduce this bug, please try the following:

Run nvidia-bug-report.sh as root and attach the resulting nvidia-bug-report.log.gz to this issue.
Re-run vulkaninfo with debug prints from the Vulkan Loader: VK_LOADER_DEBUG=all vulkaninfo, and attach the text that it produces to this issue.

Now that I look at this again, I'm not sure I was doing my due dilligence when trying to reproduce this bug. I originally got the 560 driver through a ppa, which may not have been fully correct. The source I used was https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
Looking at the nvidia linux driver (a .run script), the readme describes putting the vksc manifest into share/vulkansc whereas my system had vksc in share/vulkan. That would be the most logical fix anyhow, as the drivers of the wrong API were being loaded.
The actual fix for a crash is out of scope for this repository, so I'm going to close the issue.
Anyone who is also experiencing this crash is welcome to add their crashes and logs here.


Adding solution to sum-of-all-numbers and mutations

sum-of-all-numbers: Used the n*(n+1)/2 formula to calculate the solution.
mutations: Created two lists of size=26 to store frequency of all characters.

please take another look at the instructions on naming your solution branch. when you fix it i can check it out locally to test and merge. let me know if you need any help with it


DirectBuffer exception with HeapByteBufferR

Exception in thread "main" java.lang.ClassCastException: java.nio.HeapByteBufferR cannot be cast to sun.nio.ch.DirectBuffer
	at org.fusesource.lmdbjni.DirectBuffer.wrap(DirectBuffer.java:156)
	at org.fusesource.lmdbjni.DirectBuffer.<init>(DirectBuffer.java:119)

Pretty easy to see why this is happening.
    public final boolean hasArray() {
        return (hb != null) && !isReadOnly;
    }

HeapByteBufferR is read only, so the call to hasArray() is false.

In what context is this happening? Can you provide the complete code?


Allow to manually browse or indicate a SD folder instead of an hardcoded one.

It may be because you haven't thought to test it or expected people to test it on other platforms such as Linux.

Should be pretty easy to implement. Linux support was not extensively tested so you are right on that.

I have pushed some fixes to main. Not sure if they are working, but it involves correctly formatting on each OS, and correctly identifying if we have superuser permissions or not.
I'll test it when I can get access to my Linux system at home.

Sadly, it doesn't seem to make much of a difference.

Yeah, there still is more fixes, I locally have gotten something, though it requires your device to already be mounted under /mnt or /media.
I can confirm it does work, and i'll push the commit to main today.


Support non-Admin Apps

In order to get more wide-spread usage of XDP for Windows, we should see if it's possible for a non-Admin app to use this interface. It's really a pretty big security issue if an app that upgrades to using XDP now has to run as an admin. What if it has a bug, and it's exploitable over the network? Now the attacker gets admin access. FWIW, I thought about this while reading an article about the large number of cloud attacks/bugs that have happened over the last few months, and I don't want to introduce any new issues here.

Adding to V1: we should support non-admin apps, either by allowing processes to acquire a privilege/capability or test for some other process SID.

Should we have a separate issue tracking (possibly) supporting completely unprivileged apps being able to use XDP to bypass their own socket?

Yeah, it's a topic that comes up often enough that we should have a dedicate issue. I'm not sure where such a policy would actually get implemented (ideally XDP actually has little or nothing to do with such policy decisions) but this repo would at least expose the end-to-end scenario, so it is a natural place to track the feature.

Filed #249


Cannot read property 'isHorizontal' of undefined

Hi, im using plugin for charts with x-axis is time based, im getting this error at specified line https://github.com/nnnick/Chart.js/blob/2.0.0-beta1/src/core/core.scale.js#L338, please check
my code is
  var FastingChart = Chart.Scatter(document.getElementById("healthChart").getContext("2d"), {
            data: $scope.fastingGraphData,
            options: {
                scales: {
                    xAxes: [{
                        type: 'time',
                        display: true,
                        position:'bottom'
                    }]
                }
            }
        });

When i used the link https://rawgit.com/nnnick/Chart.js/v2.0-dev/Chart.js, this error is not appearing. please checkout this.

And with above link page is stucking, I think chrome is hanging when using the above link

I think I know what the issue is. As a quick fix, change line 338 to
return this.getRightValue(this.isHorizontal() ? rawValue.x : rawValue.y);

After doing that, there is no error but there is also no graph even-though values exist.

ok, I'll debug this further in a few days.

could you please tell me why browser hangs when using the raw git link.

This is happening only when time scale is configured like
options:{
     scales:{
        xAxes:[{
               type:'time'
        }]
   }
 }

In my project there are several modules, its working fine in one module but in another module its hanging, could you please tell me the moment and jquery dependencies for chartjs i think they are conflicting and im also using angular is there any conflicts with angular

Chart.js only needs moment as a dependency. The last beta release will get moment from window.moment but the version in the v2.0-dev branch will use require to get the dependency. I'm not sure why the browser would hang using the rawgit link. It would be very helpful if you could create a JS fiddle that shows the hanging behaviour

I have tried to create one , But I'm not able to replicate it. That's the reason im asking you about dependencies. I have created a JsFiddle with all the dependencies my project has but its working fine. But i can tell you that if we keep type: time it is hanging ...

I think you should use the built file from the v2 branch until we can make another release. I don't know why it is hanging, it could be that something has made the library think that it is using AMD but then cannot find the correct moment.js file.
I think the error is coming from using date objects as the x value. The version in the repo has a fix to handle date objects that the beta1 release does not.

Ok, I will build file with gulp build and check it.

We've made another release, v2.0.0-beta2 and the fix is included there.


Improved MNE-BIDS usage in example

MNE-BIDS has some pretty neat tricks, may as well showcase them.

Codecov Report

Merging #338 (06cf764) into main (439d998) will decrease coverage by 39.67%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #338       +/-   ##
===========================================
- Coverage   96.11%   56.43%   -39.68%
===========================================
  Files          49       49
  Lines        1671     1671
  Branches      212      212
===========================================
- Hits         1606      943      -663
- Misses         27      666      +639
- Partials       38       62       +24

Impacted Files
Coverage Δ

mne_nirs/channels/tests/test_roi.py
14.28% <0.00%> (-85.72%)
:arrow_down:

mne_nirs/channels/tests/test_short.py
17.39% <0.00%> (-82.61%)
:arrow_down:

...nal_enhancement/tests/test_negative_correlation.py
17.50% <0.00%> (-82.50%)
:arrow_down:

mne_nirs/utils/tests/test_io.py
20.00% <0.00%> (-80.00%)
:arrow_down:

mne_nirs/statistics/tests/test_glm_type.py
21.27% <0.00%> (-78.73%)
:arrow_down:

...erimental_design/tests/test_experimental_design.py
24.48% <0.00%> (-75.52%)
:arrow_down:

mne_nirs/visualisation/_plot_quality_metrics.py
21.42% <0.00%> (-75.00%)
:arrow_down:

...e_nirs/visualisation/_plot_nirs_source_detector.py
20.83% <0.00%> (-75.00%)
:arrow_down:

...rs/signal_enhancement/tests/test_short_channels.py
25.80% <0.00%> (-74.20%)
:arrow_down:

mne_nirs/visualisation/tests/test_visualisation.py
26.47% <0.00%> (-73.53%)
:arrow_down:

... and 20 more

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 439d998...06cf764. Read the comment docs.


Go to Sound on Trends not working on iPad/Mac

The fix for issue #143 probably fixes this too.

Fixed by PR #157. There really is a bug with .onChange() on SwiftUI (FB11872260 opened by me). The workaround is to use .onReceive() and point to the @Published property's publisher like so:
.onReceive(highlightHelper.$soundIdToGoTo) { soundIdToGoTo in


Strange slicing behavior

Describe the bug
I have loaded a dataset, and then slice first 300 samples using : ops, however, the resulting dataset is not expected, as the output below:
len(dataset)=1050324
len(dataset[:300])=2
len(dataset[0:300])=2
len(dataset.select(range(300)))=300

Steps to reproduce the bug
load a dataset then:
    dataset = load_from_disk(args.train_data_dir)

    print(f"{len(dataset)=}", flush=True)
    print(f"{len(dataset[:300])=}", flush=True)
    print(f"{len(dataset[0:300])=}", flush=True)
    print(f"{len(dataset.select(range(300)))=}", flush=True)

Expected behavior
len(dataset)=1050324
len(dataset[:300])=300
len(dataset[0:300])=300
len(dataset.select(range(300)))=300

Environment info

datasets version: 2.16.1
Platform: Linux-5.15.0-60-generic-x86_64-with-glibc2.35
Python version: 3.10.11
huggingface_hub version: 0.20.2
PyArrow version: 10.0.1
Pandas version: 1.5.3
fsspec version: 2023.10.0

As explained in the docs, slicing a Dataset returns a dictionary that maps its column names to their values. So, len(dataset[:300])=2 is expected, assuming your dataset has 2 columns.
`


NETOBSERV-1353 Console plugin feedback

Description
DSCP, ICMP Type, ICMP Code

[X] as separate columns
[X] as separate filters

Since ICMP values overlap between IPV4 / V6 and Types, I decided to not suggest dropdown options for theses.
Dependencies
n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[x] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[x] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

Fixed tests: https://github.com/netobserv/network-observability-console-plugin/pull/423/commits/100b6a9d6cf70ed8f90cdaef83111484a616fe55
FYI side panel will not show n/a fields anymore as we are starting to have too many fields. Each field will show up as soon as a relevent value is available.

/ok-to-test

Following @Amoghrd feedback, the ICMP type & code will show in red when protocol is not ICMP

/ok-to-test

/ok-to-test

/label qe-approved


[#50] support nested fragments

Passes test and also confirmed it works with a basic Relay query

closes #50


vCenter - Add support to HTML5 Console

Description
As new vCenter versions already support HTML5 console, it would interesting support it instead VNC.
Use case
This will usage less config, no need config injection in VM config file, better security once a VNC weill not enabled, the VM deployment will be more fast and other advantages.
Interface Changes
I think that will need changes on Sunstone and API
Additional Context
Perl example code https://github.com/lamw/vghetto-scripts/blob/master/perl/generateHTML5VMConsole.pl
Ruby example code https://gist.github.com/bthornto/bfce98039e845fa44e9b
https://www.vmware.com/support/developer/html-console/
ManageIQ Code - https://github.com/ManageIQ/manageiq-ui-classic/pull/410/files

Progress Status

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

more resources: https://github.com/ManageIQ/manageiq/issues/13798

https://github.com/OpenNebula/one/pull/2973/commits/eb31ce8bda1d308d97fafb15e5c528d9481e3a0d

Also revisit this #1182

Multiple problems:

no way to do a proper ws to wss websocket
need to accept a cookie interactively, no easy way to do this programatically
connection needs to be done directly to ESX, so no gain with VNC in this aspect

too many effort already spent in this issue, closing it for the time being.

Need to reopen this due to vSphere 7.0 dropping VNC support.
Requirements:

Connection from web UI to sunstone server, never straight to vCenter/ESX
Embedded in Web UI
Need to handle cookies

We can start by connecting sunstone server to ESX if needs be, no need to route through vCenter (which is probing difficult). Still need a web socket proxy in sunstone server for this.

@tinova PR to be approved:

one-ee:  https://github.com/OpenNebula/one-ee/pull/232

@tinova PR to be approved:

Docu: https://github.com/OpenNebula/docs/pull/1323

@tinova PR to be approved:

One: https://github.com/OpenNebula/one-ee/pull/350

last bit to close this ticket:

sunstone_vnc_tokens should be renamed to sunstone_tokens
noVNC tokens to be saved in sunstone_tokens/vnc
vmrc tokens to be saved in sunstone_tokens/vmrc


Issue with routing on android activity resumed [NS + NG]

From @echap on January 26, 2017 15:55
Hi there, I'm facing a new issue that may be related to the nativescript activity resuming.
###What I want :
Someone receives a notification through FCM. On click on the notification, the app is launched : I want to reroute my user depending on a parameter that is contained on my notification.
In app.component.ts :
//Does the same thing in the constructor
ngOnInit() {
application.android.onActivityResumed = (activity) => {
      if(activity.getIntent() && activity.getIntent().getExtras() && activity.getIntent().getExtras().getString("required_route")){
          let required_route = activity.getIntent().getExtras().getString("required_route");
          console.log("I am routing now");
          this._routerExtensions.navigate([required_route]);
      }
    };
}

###What I have :
The app is launched well, the I am routing now is on my log, but I don't get re-routed.
This is not an issue with my variable required_route which is correct & tested.
More surprising, after the  I am routing now, I get another log Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode. which is basically the first log I usually have on app launch.
Note :
The process works if I do this :
application.android.onActivityResumed = (activity) => {
      this._routerExtensions.navigate(["my_route"]);
    };

(with usual resume, not from notification click).
Do you have a hint ?
Copied from original issue: NativeScript/NativeScript#3532

@echap you are trying to navigate from yours app.component.ts but if you are using <page-router-outlet>  in your app.component.html then you will have to redirect in the component file from your default route and not in app.component.ts.

I have the same problem with Javascript


add additional "crucible log" command tests to the integration-tests …

…action

wonderign what "force" means

Part of what the run_cmd does is that by default it will only run the command if the job is still passing -- so if a job fails then future run_cmd invocations will skip running the command in order to "optimize" the runtime.  The "force" parameter is used to modify that behavior and commands that have "force" set will run anyway.  Commands that are short running and/or potentially useful for debugging purposes have "force" set so that they will always execute no matter what has previously happened.
The most obvious use case for "force" not being present is when there are multiple run commands present.  If the first run command fails then skipping subsequent run commands can significantly reduce the runtime of the job.
Also, when "force" is set the logged commands will note that they were forced:

Which can be helpful in noticing where the actual failure happened.  In this case you can work backwards from the first "forced" line (983) and find that the run command on line 795 is where the actual failure occured (lines 976, 978, and 981 are just logging entries and not run_cmd invocations:


adding model-instance-id

Adding model-instance-id to pipelines.
With model-instance-id set, all pipelines using the same model-instance-id will share a single loaded model.
This allows for caching the model between pipeline executions within the same VA Serving process - that is for multiple requests with the same pipeline a model with an instance-id will only be loaded once.

D xxv pdx f sv DS Zee g c xx xxxx


Updated SAP Hana on Azure OS compatibility for RHEL 7.9

Updated SAP Hana on Azure OS compatibility for RHEL 7.9

@makotrik : Thanks for your contribution! The author(s) have been notified to review your proposed change. @Ajayan1008

#reassign:@lauradolan

@lauradolan: I'm sorry - only the author of this article, @Ajayan1008, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@SyntaxC4: I'm sorry - only the author of this article, @Ajayan1008, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Questions about react-progressive-hydration

I have several questions about the react-progressive-hydration

As the server will render the lazy component, what is the point of splitting lazy loading chunk? I would expect both server and client will execute the same code and same path under different environments. The output result is same. However, your example shows a different path.
https://github.com/GoogleChromeLabs/progressive-rendering-frameworks-samples/blob/82ccd045264753c11966c59bb63dcba76b8b9f5c/react-progressive-hydration/app/components/app.js#L6-L12
Because of this, it will have a hydration warning and therefore you use suppressHydrationWarning to hide the warning and intersectionObserver to re-hydrate at the second passed. I do not think this is wrong but It is a hack to me and you are fixing the hack you created at the very beginning. (I'm sorry for any offense caused)

Back to the fundamental question and forget your example, if you use import() in the code, should the server render the lazy component? If it should render, it sounds contradictory. As if you use mark import(), this implies something, for example, the component is always below the fold or the component does not visible to the client until certain condition. IMO, it also implies you do not want both server and client to pay for the execution until necessary. If this is the case, then you may waste the server resource to render something that end-users will not gain. If the condition always meets, you can just statically require it instead of using import().

I have a special scenario or use case. My http server prototype will download the server bundle and then execute inside the nodejs vm sandbox. It also has versioning feature because the server does not need to require() any app code and it is just an executor. In your example, if you will render the lazy react component, this means the server has to download all the chunks before the execution. In my prototype, if it is a lazy-loaded component and it will not render on the server, then executor does not need to care dependency chunks and it can directly execute the single entry chunk.

To conclude, I think we need to clarify the meaning of lazy on the server-side. SSR and lazy loading are two different strategies and I think there is no hybrid there. If you use SSR, why do you need lazy loading? If you use lazy loading, why do you need SSR?

I just came here after watching the Google IO 2019 video that talked about this. I too am surprised the server side just eagerly renders the component. I would think instead it would render null or some fallback component - which sounds a lot like React suspense/lazy, so I think this is why this is just an experiment while waiting for the "official" react solution to really solve this.
However I think there's still some value in the server rendering, but the client delaying hydration (and suppressing hydration mismatch warnings). You get a faster time to interactive, thus avoiding the dreaded Rage Click scenario. Also, the delayed component could be "SSR Aware" and render something quick and simple initially (some placeholder content), so the server side render is trivial. Then browser-side the component loads data on didMount/useEffect or other SSR-aware fetching (like Apollo client) libs, and could load additional code browser-side only via dynamic imports.

The reason for this is to avoid having a blocking hydration phase at first pass, which is critical for bootstrapping of an app.
SSR is mainly to get content rendered and delivered to the client as fast as possible (the browser has been optimised in years to parse html and render, which will then always be faster than any js algorithm).
Someone can argue you just need a skeleton, but why would you deliver a fake version of your content when you already have the content itself, ready to be rendered from the server?
So the only problem that stands still is the time taken by any js to make any element in the page interactive.
Nowadays this can take up to even 5s in slow devices...
Facebook is investigating Progressive Hydration in React with the Flight server streamer, but is far away, so for now, Partial Hydration is a good way to go...
(There are caveats around design and UX on slow networks, but can be solved with a idle-until-urgent approach)


Add StopCondition control of Propagate

StopConditions can now handle Apoapsis/Periapsis as well as ElapsedSecs.

Approved!

Approved!