[BUG] Flow-framework build failed because no opensearch-security dependency

What is the bug?
Currently I noticed the distribution bundle build for 2.12.0 failed on flow-framework plugin because it can't find opensearch-security dependency after this introduced https://github.com/opensearch-project/flow-framework/blob/f27f2d21a0cc9e3686e6063cb5e95998d1b7bdac/build.gradle#L164
* Where:
Build file '/tmp/tmpda1j575p/flow-framework/build.gradle' line: 348

* What went wrong:
A problem occurred evaluating root project 'opensearch-flow-framework'.
> Could not resolve all files for configuration ':zipArchive'.
   > Could not find org.opensearch.plugin:opensearch-security:<IP_ADDRESS>.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>/opensearch-security-<IP_ADDRESS>.pom
       - file:/home/ci-runner/.m2/repository/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>/opensearch-security-<IP_ADDRESS>.pom
       - https://aws.oss.sonatype.org/content/repositories/snapshots/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>/opensearch-security-<IP_ADDRESS>.pom
       - https://plugins.gradle.org/m2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>/opensearch-security-<IP_ADDRESS>.pom
     Required by:
         project :

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 11s

More error context can be found here.
There are two approaches that we think could resolve this:

Since it says there are test time dependency, when we run build, we should exclude these test dependencies.
You could create a customized build script just like how k-NN did here. https://github.com/opensearch-project/k-NN/blob/7900dbb339ab56a56a09cf07c50381aeba084cbb/scripts/build.sh#L121 and disable any test time dependency using -x integTest
You could copy our default build script from https://github.com/opensearch-project/opensearch-build/blob/main/scripts/default/opensearch/build.sh to your repo and made customization on that.

Ask security repo to publish to Maven Local when security plugin is built.
Currently security plugin never publishes Maven local and there isn't non-snapshot plugin available on Sonatype. https://github.com/opensearch-project/security/blob/4a9006840be3430bcb704a0e39507dc289e99a56/scripts/build.sh#L80

@peternied/ @cwperks / @DarshitChanpura any idea here. We have already raised the PR based on the solution provided but still fails with the above error present in the description.

Seems like the neither SNAPSHOT nor regular image is available in any of the mentioned locations.

@owaiskazi19 Based on 2) in the original post, I think the security plugin can add:
./gradlew publishToMavenLocal -Dopensearch.version=$VERSION -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER

to scripts/build.sh. I will raise a PR for this in the security repo.

@zelinh @owaiskazi19 The maven artifact isn't found because security hasn't published a release build for 2.12.0, why isn't the workflow using snapshot builds?

@owaiskazi19 @vibrantvarun I'm not exactly sure how zipArchive resolution works at integTest time.
I'm looking at 2 examples of security-analytics and skills repo that have zipArchive dependencies on plugins other than job-schduler:

SecurityAnalytics - https://github.com/opensearch-project/security-analytics/blob/0bbdb3164084699781a58f3e0682a86b2f895b8c/build.gradle#L246-L307
Skills - https://github.com/opensearch-project/security-analytics/blob/0bbdb3164084699781a58f3e0682a86b2f895b8c/build.gradle#L246-L307

The plugins that these repos have zipArchive dependencies on do not publish their zips to maven local for the build (same with security). Would Flow-Framework be able to use the example from security-analytics to resolve the zipArchive dependency on the security repo for the integ tests?

@cwperks I've modified how we install our plugins into our integration test cluster, similar to how the security analytics plugin's build.gradle integTest task is configured. Testing with a non-existent version, attempting to run with security disabled (in which we do not install the security zip into our integration test cluster) still fails with the same issue :
FAILURE: Build failed with an exception.

* Where:
Build file '/local/home/jpalis/repos/delete/flow-framework/build.gradle' line: 347

* What went wrong:
Could not determine the dependencies of task ':run'.
> Could not resolve all files for configuration ':zipArchive'.
   > Could not find org.opensearch.plugin:opensearch-security:<IP_ADDRESS>-SNAPSHOT.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://repo.maven.apache.org/maven2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - file:/home/jpalis/.m2/repository/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - file:/home/jpalis/.m2/repository/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - https://aws.oss.sonatype.org/content/repositories/snapshots/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://aws.oss.sonatype.org/content/repositories/snapshots/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - https://plugins.gradle.org/m2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://plugins.gradle.org/m2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
     Required by:
         project :

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

@cwperks Interestingly, conditionally including the security zip archive dependency resolves this issue. For example :
if(System.getProperty('security.enabled') == 'true'){
        zipArchive group: 'org.opensearch.plugin', name:'opensearch-security', version: "${opensearch_build}"
    }

Testing with a dummy version for security <IP_ADDRESS>-SNAPSHOT :
Running ./gradlew run (security disabled ) passes :
./gradlew run
=======================================
OpenSearch Build Hamster says Hello!
  Gradle Version        : 8.5
  OS Info               : Linux 5.10.205-172.804.amzn2int.x86_64 (amd64)
  JDK Version           : 17 (OpenJDK)
  JAVA_HOME             : /opt/jdk-17
  Random Testing Seed   : 6D5DEDC6EFAAA0A6
  In FIPS 140 mode      : false
=======================================

> Task :run
[2024-01-19T18:31:46.620268821Z] [BUILD] Configuring custom cluster specific distro directory: /local/home/jpalis/repos/delete/flow-framework/build/testclusters/integTest-0/distro/3.0.0-ARCHIVE
[2024-01-19T18:31:46.660840999Z] [BUILD] Copying additional config files from distro [/local/home/jpalis/repos/delete/flow-framework/build/testclusters/integTest-0/distro/3.0.0-ARCHIVE/config/jvm.options.d, /local/home/jpalis/repos/delete/flow-framework/build/testclusters/integTest-0/distro/3.0.0-ARCHIVE/config/opensearch.yml, /local/home/jpalis/repos/delete/flow-framework/build/testclusters/integTest-0/distro/3.0.0-ARCHIVE/config/jvm.options, /local/home/jpalis/repos/delete/flow-framework/build/testclusters/integTest-0/distro/3.0.0-ARCHIVE/config/log4j2.properties]
[2024-01-19T18:31:46.661784366Z] [BUILD] installing 2 plugins in a single transaction
[2024-01-19T18:31:51.590765017Z] [BUILD] installed plugins
[2024-01-19T18:31:51.590878532Z] [BUILD] Creating opensearch keystore with password set to []
[2024-01-19T18:31:52.294406348Z] [BUILD] Starting OpenSearch process
<===========--> 88% EXECUTING [7s]
> :run
^C%

(24-01-19 18:31:52) <130> [~/repos/delete/flow-framework]
dev-dsk-jpalis-2c-27c8aa11 % ./gradlew run -Dsecurity.enabled=false
=======================================
OpenSearch Build Hamster says Hello!
  Gradle Version        : 8.5
  OS Info               : Linux 5.10.205-172.804.amzn2int.x86_64 (amd64)
  JDK Version           : 17 (OpenJDK)
  JAVA_HOME             : /opt/jdk-17
  Random Testing Seed   : F83A1ABD5C023C70
  In FIPS 140 mode      : false
=======================================
<===========--> 88% EXECUTING [2s]

Running with security enabled (dummy version value), expectedly fails :
./gradlew run -Dsecurity.enabled=true

> Configure project :
Download https://raw.githubusercontent.com/opensearch-project/security/main/bwc-test/src/test/resources/security/esnode.pem
Download https://raw.githubusercontent.com/opensearch-project/security/main/bwc-test/src/test/resources/security/esnode-key.pem
Download https://raw.githubusercontent.com/opensearch-project/security/main/bwc-test/src/test/resources/security/root-ca.pem

FAILURE: Build failed with an exception.

* Where:
Build file '/local/home/jpalis/repos/delete/flow-framework/build.gradle' line: 350

* What went wrong:
Could not determine the dependencies of task ':run'.
> Could not resolve all files for configuration ':zipArchive'.
   > Could not find org.opensearch.plugin:opensearch-security:<IP_ADDRESS>-SNAPSHOT.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://repo.maven.apache.org/maven2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - file:/home/jpalis/.m2/repository/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - file:/home/jpalis/.m2/repository/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - https://aws.oss.sonatype.org/content/repositories/snapshots/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://aws.oss.sonatype.org/content/repositories/snapshots/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
       - https://plugins.gradle.org/m2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/maven-metadata.xml
       - https://plugins.gradle.org/m2/org/opensearch/plugin/opensearch-security/<IP_ADDRESS>-SNAPSHOT/opensearch-security-<IP_ADDRESS>-SNAPSHOT.pom
     Required by:
         project :

@joshpalis to resolve that error you would need to publish a zip of the security plugin with the respective version to maven local. Since you are using a dummy version you would also need to modify security's build.gradle to the version you are expecting. To publish a zip to maven local you can use:
./gradlew publishPluginZipPublicationToMavenLocal -Dbuild.snapshot=true

I don't currently understand how security-analytics is able to pull the required zipArchive dependencies for its integration test run

to resolve that error you would need to publish a zip of the security plugin with the respective version to maven local

This error isnt the issue, my use of the dummy version was to demonstrate that the build error we're seeing can be avoided if we just conditionally include the security zipArchive dependency if security is disabled (by default). So now with this change, if we attempt to assemble the the flow framework plugin and the security plugin isn't available, the build should pass.

I don't currently understand how security-analytics is able to pull the required zipArchive dependencies for its integration test run

Seems the security analytics plugin relies on the OpenSearch docker image here in this security test workflow github action which has the security plugin.
The reason we decided to use the security plugin zip archive dependency directly for the flow framework plugin is due to the flaky nature of the docker image, in several cases that I've seen, most security test github actions either fail outright or skip security integration tests since the cluster fails to start.
For example, this security analytics CI run here fails due to :
Run cluster_running=`curl -XGET https://localhost:9200/_cat/plugins -u admin:admin --insecure`
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (7) Failed to connect to localhost port 9200 after 0 ms: Connection refused
Error: Process completed with exit code 7.

@zelinh If Flow-Framework wants to run their integ tests at distribution build time with a zip archive of the security plugin, would they need to add it as a build dependency here?
If security is added as a build dependency, does that also mean that opensearch-build would need to be extended to support it as well?


Aggie Experts deployment

The dev.experts.ucdavis.edu server is currently running two rp clusters, dev and sandbox.   It is already kinda slow.  Is this slowness from the RP apps?  Can the current server handle a third cluster (prod)?  How do we want to setup the rp clusters in terms of hardware.

Have Requested two Production VMs and a routing server.
Thanks for getting this underday. I guess my inclination is to give these all library DNS names;
router.experts.library.ucdavis.edu
blue.experts.library.ucdavis.edu
gold.experts.library.ucdavis.edu
and then (later) add a A record for *.experts.ucdavis.edu to router.experts.library.ucdavis.edu

Need to verify that the dev only implementation is
-[ ] Development image pull works
-[ ] Fix DNS so that we point here for non-dev
-[ ] Determine the fate of sandbox.

@jrmerz I suggest we do the following DNS changes

CNAME entry experts.ucdavis.edu -> router.experts.library.ucdavis.edu
CNAME entry *.experts.ucdavis.edu -> router.experts.library.ucdavis.edu
CNAME entry *.experts.library.ucdavis.edu -> router.experts.library.ucdavis.edu
A sandbox.experts.ucdavis.edu -> <IP_ADDRESS>

This could also point to a UCD machine.


Importing getUserInfo and calling the function raises an error

Importing as such:  import { getUserInfo } from '@bcgov/citz-imb-kc-express';
And then calling as such:
const ExampleRouter = () => {
    const exampleRouter = express.Router();

    exampleRouter .get("/", (req, res) => {

        res.status(200).json(getUserInfo(req.token));
    });

    return exampleRouter ;
}

It raises TypeError: (0 , citz_imb_kc_express_1.getUserInfo) is not a function. Same with parseJWT.
Tested using node v18.16, typescript v5.3.

@GrahamS-Quartech I didn't intend for anyone to use that function outside of the inner workings of the package. I will make an update to the README.
# Use the following variable within controllers to access the user data.
const user = req.user; # This will be of type KeycloakUser

Thanks for the collaboration and feedback.


'clr' has no attribute 'AddReferenceByName'

Dynamo version
2.17 SandBox
Operating system
Win 11
What did you expect to see?
No Error, printing some object
result in other IDE

What did you see instead?
Error
Messages: AttributeError : module 'clr' has no attribute 'AddReferenceByName' ['  File "", line 21, in \n']
State: Warning

after re-testing the error disappeared, I have the impression that sometimes the ipy3 engine has switched internally to CPython3 engine

thanks @Cyril-Pop - if we can reproduce the switch (or you can) - I'll open a task to fix it.


Add NONE back to Item Table

This can be toggled off on the Website - This only needs to have a NONE on one of the gummi blocks in the item datatable

Refs #47


Stop LogStream if there is an error in k8s pod log streaming

You will need to add mutex in the stop method before select on the channel as apparently this is not thread safe.

@asim :+1:


Infra: The release process order of operations may be broken under Yarn 4

Expected behavior
The release goes off without a hitch
Actual behavior
Errors encountered during the release process
Steps to reproduce the issue

Visit the Actions log for the v14.0.0 release
Observe the error, having to do with Yarn expecting an immutable install but instead seeing that the @ithaka/pharos version will be updated for @ithaka/pharos-site

Screenshots or code
Run yarn --check-cache --immutable
➤ YN0000: · Yarn 4.1.0
➤ YN0000: ┌ Resolution step
Resolution step
➤ YN0000: └ Completed in 0s 66[8](https://github.com/ithaka/pharos/actions/runs/8194158743/job/22409560036#step:6:9)ms
➤ YN0000: ┌ Post-resolution validation
Post-resolution validation
➤ YN0028: -    "@ithaka/pharos": "npm:^13.3.0"
➤ YN0028: +    "@ithaka/pharos": "npm:^14.0.0"
➤ YN0028: -"@ithaka/pharos@npm:^13.3.0, @ithaka/pharos@workspace:packages/pharos":
➤ YN0028: +"@ithaka/pharos@npm:^14.0.0, @ithaka/pharos@workspace:packages/pharos":
➤ YN0028: The lockfile would have been modified by this install, which is explicitly forbidden.
➤ YN0000: └ Completed
➤ YN0000: · Failed with errors in 0s 833ms
Error: Process completed with exit code 1.

Additional information
This may be due to how Yarn 4 handles workspace dependencies, as this release was the first one done using Yarn 4 instead of Yarn 1. Because the release process includes bumping the version of the @ithaka/pharos package, and because the @ithaka/pharos-site package depends on it as a workspace, Yarn wants to bump it as well, and because this all happens prior to running yarn ... --immutable, the installation fails because this change is "pending."

One possible fix entails running yarn install (without --immutable) after running yarn release, as part of the steps in the release workflow, and pushing the result to the branch that's created. This will ensure that what gets merged into main from the pull request already has the "undesired" changes that happen when actually trying to generate the release. It also makes sure that @ithaka/pharos-site is always using the latest release of @ithaka/pharos.
We recently ran into issues with that, too, though, because the site hadn't been updated to accommodate breaking major changes. So a different solution would be to make sure the workspaces aren't actually coupled, such that @ithaka/pharos-site can statically reference some version of @ithaka/pharos and doesn't get updated at all as part of this flow. This is the "safest," but also means we could be inclined to get outdated.

This issue did not occur in a recent release—will need to better understand what triggers Yarn to update the workspace dependencies during this flow.

We have released several versions since reporting this, with no further issue during the process.

I think the difference between when it happens and when not is when there are releases for pharos-site as as well pharos itself, is that right?

@brentswisher it might be the case, but I had felt like we'd run into that scenario in the past without it causing an issue. Seeing that the release version the site wanted to use in the last failure was a jump of several versions, I'm still unsure of the trigger.

@brentswisher possibly corroborated since the recent release also exhibited this issue, and similarly has Pharos site versioning going on alongside the core package.

NB: This is generally circumvented, for now, by ensuring that yarn.lock is updated with the latest version of @ithaka/pharos, which can be pushed directly to the Version packages pull requests that are automatically opened, or in a separate pull request after merging that one. Merging the yarn.lock updates will without further action allow the publishing to proceed as desired.


Add example for each alias in README.md

Sure @yashkathe

@yashkathe  go ahead

Actually running bash_aliases.sh gives me an error
./bash_aliases.sh: line 25: syntax error: unexpected end of file

Try source fname.sh then source bashrc.sh

-bash: fname.sh: No such file or directory
-bash: bashrc.sh: No such file or directory
Still cant run the scripts


Enable IPv6 connectivity for agents to mgt server

IPv4 is still preferred, so if the hostname of the Management Server returns a A and AAAA-record the Agent will still connect to the server over IPv4.
This situation will however allow to use a hostname which only has a AAAA-record. In that case the Agent will connect to the Management Server over IPv6.
Backport of ACS PR 1488

Ping @wido thanks for the fix, ported it to Cosmic.


Ctrl + Esc for enter in navigation mode

Is it supposed to be possible to enter navigation mode with Ctrl + Esc? I can't get into it no matter which keyboard shortcut I use. Nor can I navigate between maps with Ctrl and the arrows. Is this plugin only for Macs?

Thanks for your advice. I will add support soon.
This plugin is cross-platform so it can benefit more people in need.

Hi~ @MelodyDuplaix
Keyboard shortcut for node blur on Windows has been fixed! https://github.com/xincan1949/lovely-mindmap/pull/4/commits/7a9021652b1636a2b70eeffafebd272c0eef5deb
Two questions

Why do you say ENTER navigation mode with Ctrl + Esc?

You can enter navigation mode from view mode by f. From navigation mode to creation mode as same. The F means focus

Navigation between maps failed

Are you navigate in navigation mode? I tried in Window10, it was good. Or could you please upload a video of gif🤔

Thank you for trying to correct it.
I don't think the available shortcuts are very well understood. When I click on a card, I can actually use Tab to create a child card or Shift + Enter or Enter to create a sister card. However, I can't navigate between notes with Ctrl + arrow.
On the other hand, I can't find any keyboard shortcuts to get out of editing a card when you've started writing, so that you can then write one. No shortcuts seem to work once you've started writing.
I'm on windows 11, maybe that's the cause.
I tried to take a video. At the end, when I was writing, I tried every possible shortcut, but it didn't do anything.
vidéo exemple.zip

Well, my guess is that you exit creation mode and enter
navigation mode using Esc INSTEAD OF Modifer + Esc, like Shift + Esc or Ctrl + Esc.
This picture show how you can set your keyboard shortcut to exit card editing. Please remember that just pressing Esc won't work.

And the video show difference with Esc and Modifer + Esc
https://github.com/xincan1949/lovely-mindmap/assets/45918719/aba5bec4-502d-493b-941f-d088f6424bda
If the method doesn't take effect, can you refresh this plugin and try again as mentioned above?
Contact me if you still have any questions, thanks.

Okay, thank you, I finally understood what was going on. The shortcut Ctrl + Ecs is assigned by default to the opening of the windows window on windows 11. And I hadn't seen that it was now possible to change this shortcut to lovely mindmap in the obsidian options with the latest update you made. So, by changing this shortcut, it now works.


Feature/integrate unipipe cli

I don't think I have enough knowledge on what is going on here to do a review, so I am unassigning myself.


i wrote an issue on stream react example and nick replyed i replyed and nobody has said anything to me ever since then

Prerequisites

[ ] Put an X between the brackets on this line if you have done all of the following:

Checked that your issue isn't already filed: https://github.com/GetStream/Winds/issues

Description
[Description of the issue]
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expect to happen]
Actual behavior: [What actually happens]
Reproduces how often: [What percentage of the time does it reproduce?]
Versions
You can get this information from the manu. Winds > About Winds.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

@vincentroman maybe try our public slack channel
https://publicslack.com/slacks/https-stream-public-slack-com/invites/new


Fix local-run-controller Makefile target

Prune obsolete aws-account-id command line argument from local-run-controller Makefile target
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Could you please also delete the $AUTHENTICATED_ACCOUNT_ID on line 14. That's no longer needed

/lgtm cancel

Could you please also delete the $AUTHENTICATED_ACCOUNT_ID on line 14. That's no longer needed

Done

/lgtm


DualModeExamples do not work with ESP32

I changed the ESP8266 example to:
#include <WiFi.h>
#include <esp_now.h>
but it does not compile for the ESP32:
DualModeSlave:30: error: 'ESP_NOW_ROLE_CONTROLLER' was not declared in this scope
esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
We ned it for the ESP32

I see ill upload a workimg esp32 exaple later today

Hey mate
I have updated both the ESP32 TX and RX examples and added dual mode for esp32! Its damn tricky but i got it working!

Thank you for adding the examples. I entered the MAC addresses and started both nodes at the same time.
On the Master I get:
24:0A:C4:0D:81:E0
ESP NOW INIT!
Added Peer!
and on the Slave:
24:0A:C4:0D:17:E9
ESPNow Init Success!
Added Master Node!
unfortunately then I get on the mater:
Success Sent Value->	1
Last Packet Send Status:	Delivery Fail
Success Sent Value->	2
Last Packet Send Status:	Delivery Fail
Success Sent Value->	3
Last Packet Send Status:	Delivery Fail
Success Sent Value->	4
Last Packet Send Status:	Delivery Fail
and on the slave nothing more
It seems that OnDataRecv() is not called

please carefully read the readme on this repo. I wrote special instructions for gwtting 2 way coms on the esp32. theres a few hoops to jump through

I thought I did follow the instructions. I used your two sketches and replaced the addresses as follows:
Master:
uint8_t remoteMac[] = {0x24, 0x0A, 0xC4, 0x0D, 0x17, 0xE9};
Based on this output from the slave:
24:0A:C4:0D:17:E9
ESPNow Init Success!
Added Master Node!
Slave:
uint8_t masterDeviceMac[] = {0x24, 0x0A, 0xC4, 0x0D, 0x81, 0xE0};
Based on this output from master:
24:0A:C4:0D:81:E0
ESP NOW INIT!
Added Peer!
Line 38 is already there in your slave sketch
CHANNEL is on both sketches 1
What did I forget?

On The SLAVE node upload a blank sketch that lets you print the nodes WIFI_AP MAC address
via WiFi.softAPmacAddress(). This will be the SLAVE MAC
On the MASTER node upload a blank sketch that lets you print the nodes WIFI_STA MAC address via WiFi.macAddress(). This will be the MASTER MAC
Now using my examples:
In ESP32_DualMode_Slave.ino on line 10
uint8_t masterDeviceMac[]
Set that to the MASTER MAC
in ESP32_DualMode_Master.ino on line 10
uint8_t remoteMac[]
Set that to the SLAVE MAC
That should work, its exactly what im doing.

Now it works. Thank you!

Awesome, glad to help mate! Your YT Chanel is awesome, thanks for being awesome! I mostly do wotk with addressable LEDs here is my insta https://www.instagram.com/wow_elec_tron/ if you ever need any led stuff shoot me a wow!

Unfortunately, the method you propose is ok for a one-of, but fails in practice if you have to use a blank sketch to get MAC addresses. I do it a bit different... knowing that Station Mode can be assigned a Custom MAC that will not be changed by the firmware (as it is in AP Mode) I assign custom MACs to each device and use STA Mode for both. This way, I know that the custom MAC will stick. You don't need AP Mode to look for a device when both devices ("Master" and "Slave") are in front of you

the method you propose is ok for a one-of
Correct that was my intention, thank you for linking your modified code.


[request] Disable glare/tilt on mobile

This would be a nice option to have.
Thanks

Any particular reason why you would want to disable it? It would require me to bloat the lib with code to detect mobile devices.
A more practical way would be to use media queries to display:none; the js-tilt-glare-inner element.

Thanks, thats a perfectly acceptable solution!
Cheers

I think it could be a good alternative having an options with "mobile: false" to ensure the "No CSS is needed" ;)

Dear mr winkey face,
I will not add this feature as it will ad unnecessary bloat.

No worries, I did my own thing. I made it in a couple of lines, allowing me to detect breakdown changes and destroying/initializing tilt.
By the way, it's a pretty cool library, thanks for your work. Sorry if you misunderstood my message, I just think it could help tons of beginners wanting your tilt with an eye on mobile performance.
Best regards
Mr ;)

No problem, you can always submit a pull request, I might accept if it's small and robust and doesn't add lots of bloat.
Thanks!


[winrate callback] remove redundant call to eval and train

What does this PR do?
removes the redundant call to eval and train as the model's generate is done in inference mode. This fixes the issue that the mode's state is not changed unexpectedly.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

thanks @qgallouedec

Failing test not related (same as https://github.com/huggingface/trl/pull/2370#issuecomment-2486585773)


PoC: Modify envbuilder to support build resumption from any layer

This issue tracks the implementation of a PoC to validate the path forward for #128.
To better utilize the envbuilder cache, we want to extend envbuilder with support for build resumption from any previous layer so that the container runtime layer caching can be utilized to avoid file extraction overhead.
To put simply, if currently we do:
docker run -it --rm ghcr.io/coder/envbuilder:0.2.9
# build layer 1
# push ghcr.io/myorg/envbuilder-cache:aaa
# build layer 2
# push ghcr.io/myorg/envbuilder-cache:bbb
# build layer 3
# push ghcr.io/myorg/envbuilder-cache:ccc
# start

We want to be able to do this instead:
docker run -it --rm ghcr.io/myorg/envbuilder-cache:bbb
# resuming build from layer 2
# build new layer 3
# push ghcr.io/myorg/envbuilder-cache:ddd
# start

Note: In isolation, this may not improve performance. The container runtime should have previously (extracted) some or all of the cached layer that we're resuming from.

Turns out this was not entirely trivial as cache layers uploaded by Kaniko can't be run as images. This does make sense as it's pretty much the same with Docker.
For now, we'll just enable uploading of the final image as per #197. This should allow us to start from the complete image once #186 is implemented, given that it's been built.
In future, it may be possible to allow bootstrapping from any layer by modifying Kaniko slightly to create/upload intermediate images to the registry. A quick hack that enabled layers to be run with docker run (this broke the final image, mind you) looked like this:
diff --git pkg/executor/build.go pkg/executor/build.go
index 8c1f353f..d2b6063d 100644
--- pkg/executor/build.go
+++ pkg/executor/build.go
@@ -274,7 +276,6 @@ func (s *stageBuilder) optimize(compositeKey CompositeCache, cfg v1.Config) erro

                if command.ShouldCacheOutput() && !stopCache {
                        img, err := s.layerCache.RetrieveLayer(ck)

                        if err != nil {
                                logrus.Debugf("Failed to retrieve layer: %s", err)
                                logrus.Infof("No cached layer found for cmd %s", command.String())
@@ -416,6 +417,9 @@ func (s *stageBuilder) build() error {
                        if err := s.saveLayerToImage(layer, command.String()); err != nil {
                                return errors.Wrap(err, "failed to save layer")
                        }
+                       if err := s.opts.DoPush(s.image, s.opts); err != nil {
+                               return errors.Wrap(err, "failed to push layer")
+                       }
                } else {
                        tarPath, err := s.takeSnapshot(files, command.ShouldDetectDeletedFiles())
                        if err != nil {
@@ -441,6 +445,9 @@ func (s *stageBuilder) build() error {
                        if err := s.saveSnapshotToImage(command.String(), tarPath); err != nil {
                                return errors.Wrap(err, "failed to save snapshot to image")
                        }
+                       if err := s.opts.DoPush(s.image, s.opts); err != nil {
+                               return errors.Wrap(err, "failed to push layer")
+                       }
                }
        }

The conclusion from this PoC is that:

Resumption from build layer cache is not possible, per default. (Lacks data, like architecture, needed by Docker to run it.)
It is possible to modify Kaniko to turn a cached build layer into a complete image, but more investigation into how to do it properly without affecting the final image is needed.
When we enable pushing (#197), the complete image can be started but as-is can't be used to resume envbuilder startup

Can be fixed by 1) sanitizing the Docker image (USER root, etc) and bundling the envbuilder binary.


Added a uv pyproject example

Instead of using uv pip, this example uses uv's project setup

Seems like we hit 256 jobs limit with this example. Not sure yet what to do :)


Auto discovery does not add new device (SONOFF ZBMINI)

System Health details
System Information

version
core-2023.3.3

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.10.10

os_name
Linux

os_version
5.15.90

arch
x86_64

timezone
Europe/Berlin

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

GitHub API Calls Remaining
5000

Installed Version
1.31.0

Stage
running

Available Repositories
1316

Downloaded Repositories
16

Home Assistant Cloud

logged_in
false

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 9.5

update_channel
stable

supervisor_version
supervisor-2023.03.1

agent_version
1.4.1

docker_version
20.10.22

disk_total
30.8 GB

disk_used
7.3 GB

healthy
true

supported
failed to load: Unsupported

board
ova

supervisor_api
ok

version_api
ok

installed_addons
File editor (5.5.0), SSH & Web Terminal (13.0.3), SQLite Web (3.7.0)

Dashboards

dashboards
3

resources
0

views
5

mode
storage

Recorder

oldest_recorder_run
2. März 2023 um 13:02

current_recorder_run
12. März 2023 um 19:46

estimated_db_size
967.58 MiB

database_engine
sqlite

database_version
3.38.5

Checklist

[X] I have read the FAQ to see if there is a known solution to my problem.
[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
The recently added SONOFF ZBMINI is auto-detected, but not detected or added as new device.
Reproduction steps

Update to at least v1.3.10
Let SONOFF ZBMINI be in your devices
Wait for system

Debug logs
2023-03-12 19:47:03.250 DEBUG (MainThread) [custom_components.powercalc.discovery] Start auto discovering entities
2023-03-12 19:47:03.250 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.waschkeller_waschmaschine: Auto discovered model (manufacturer=TP-Link, model=HS110(EU))
2023-03-12 19:47:03.254 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.waschkeller_waschmaschine: Already setup with discovery, skipping new discovery
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.waschkeller_waschmaschine_led: Auto discovered model (manufacturer=TP-Link, model=HS110(EU))
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.waschkeller_waschmaschine_led: Already setup with discovery, skipping new discovery
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.wohnzimmer_stehleuchte_hinten: Auto discovered model (manufacturer=TP-Link, model=HS110(EU))
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.wohnzimmer_stehleuchte_hinten: Already setup with discovery, skipping new discovery
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.wohnzimmer_stehleuchte_hinten_led: Auto discovered model (manufacturer=TP-Link, model=HS110(EU))
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.wohnzimmer_stehleuchte_hinten_led: Already setup with discovery, skipping new discovery
2023-03-12 19:47:03.255 DEBUG (MainThread) [custom_components.powercalc.discovery] light.wohnzimmer_stehleuchte_hinten: Entity is manually configured, skipping auto configuration
2023-03-12 19:47:03.256 DEBUG (MainThread) [custom_components.powercalc.discovery] media_player.wohnzimmer_fernseher: Cannot autodiscover model, manufacturer or model unknown from device registry
2023-03-12 19:47:03.256 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_power: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_power: Model not found in library, skipping discovery
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto1: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto1: Model not found in library, skipping discovery
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto2: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto2: Model not found in library, skipping discovery
2023-03-12 19:47:03.262 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto3: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_auto3: Model not found in library, skipping discovery
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_autohalfload: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_autohalfload: Model not found in library, skipping discovery
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_eco50: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_eco50: Model not found in library, skipping discovery
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_expresssparkle65: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_expresssparkle65: Model not found in library, skipping discovery
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_glas40: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_glas40: Model not found in library, skipping discovery
2023-03-12 19:47:03.263 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_glasscare: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_glasscare: Model not found in library, skipping discovery
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensiv45: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensiv45: Model not found in library, skipping discovery
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensiv70: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensiv70: Model not found in library, skipping discovery
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensivpower: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_intensivpower: Model not found in library, skipping discovery
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_kurz60: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_kurz60: Model not found in library, skipping discovery
2023-03-12 19:47:03.264 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_machinecare: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_machinecare: Model not found in library, skipping discovery
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_magicdaily: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_magicdaily: Model not found in library, skipping discovery
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_maximumcleaning: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_maximumcleaning: Model not found in library, skipping discovery
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_nightwash: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_nightwash: Model not found in library, skipping discovery
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_normal45: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_normal45: Model not found in library, skipping discovery
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_normal65: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.265 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_normal65: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_prerinse: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_prerinse: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_quick45: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_quick45: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_quick65: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_quick65: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_steamfresh: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_steamfresh: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_super60: Auto discovered model (manufacturer=Siemens, model=SN658X06TE)
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_spulmaschine_program_super60: Model not found in library, skipping discovery
2023-03-12 19:47:03.266 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.vorratskeller_kuhltruhe: Entity is manually configured, skipping auto configuration
2023-03-12 19:47:03.267 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.buro_schreibtisch: Entity is manually configured, skipping auto configuration
2023-03-12 19:47:03.267 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_kuhlschrank: Entity is manually configured, skipping auto configuration
2023-03-12 19:47:03.267 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_kuhlschrank_led: Auto discovered model (manufacturer=TP-Link, model=HS110(EU))
2023-03-12 19:47:03.267 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.kuche_kuhlschrank_led: Already setup with discovery, skipping new discovery
2023-03-12 19:47:03.267 DEBUG (MainThread) [custom_components.powercalc.discovery] light.esszimmer_stehleuchte: Auto discovered model (manufacturer=Signify Netherlands B.V., model=Hue white A60 bulb E27 1050lm with Bluetooth<PHONE_NUMBER>02))
2023-03-12 19:47:03.313 DEBUG (MainThread) [custom_components.powercalc.discovery] light.esszimmer_stehleuchte: Model not found in library, skipping discovery
2023-03-12 19:47:03.314 DEBUG (MainThread) [custom_components.powercalc.discovery] light.buro_deckenlicht: Auto discovered model (manufacturer=SONOFF, model=Zigbee two way smart switch (ZBMINI))
2023-03-12 19:47:03.316 DEBUG (MainThread) [custom_components.powercalc.discovery] light.kuche_deckenlicht: Auto discovered model (manufacturer=SONOFF, model=Zigbee two way smart switch (ZBMINI))
2023-03-12 19:47:03.317 DEBUG (MainThread) [custom_components.powercalc.discovery] light.flur_treppenlicht: Auto discovered model (manufacturer=SONOFF, model=Zigbee two way smart switch (ZBMINI))
2023-03-12 19:47:03.317 DEBUG (MainThread) [custom_components.powercalc.discovery] light.wohnzimmer_stehleuchte_vorne: Auto discovered model (manufacturer=TuYa, model=Smart plug (with power monitoring) (TS011F_plug_1))
2023-03-12 19:47:03.319 DEBUG (MainThread) [custom_components.powercalc.discovery] light.wohnzimmer_stehleuchte_vorne: Model not found in library, skipping discovery

Diagnostics dump or YAML config
No response

The problem would be the ZBMINI is a profile for smart switches, but your entity is a light light.buro_deckenlicht.
Powercalc checks if the entity is in fact a switch.* entity and skips when this is not the case.
Which integration do you use to integrate the sonoff devices in HA and how does it know it is a light and not a switch?

I see the issue, thanks for the hint!
zigbee2mqtt automatically changes the configuration of the device to a light.
The device is usually meant as a smart wall switch replacement.
Due to the nature of this device, it can be used either as a light or a switch.
As I see the module schema, it is currently not possible, to have two device_type values. 🙈
            "0x80.......": {
                "friendly_name": "Büro Deckenlicht",
                "homeassistant": {
                    "light": {
                        "state_value_template": "{{ value_json.state }}",
                        "value_template": null
                    },
                    "switch": {
                        "object_id": "light",
                        "type": "light"
                    }
                }
            },

The device is integrated by the mqtt integration with homeassistant auto detection

I see. Could you have a look info config/.storage/core.entity_registry file and search for the entity, and than share the JSON. Might be some informatie in there where we can distinguish this.
Check in Powercalc is done here:
https://github.com/bramstroker/homeassistant-powercalc/blob/master/custom_components/powercalc/power_profile/power_profile.py#L234
Hue always creates a light entity for their smart switches, and I also added switch_as_x there which allows you to change a switch into a light (with HA helpers). This solved the same issue as you have now.
So I might just add mqtt there as well when there is no other way to distinguish.

Found a workaround:
Deleted the homeassistant configuration in zigbee2mqtt, now the device is detected as switch and I changed to a light using a helper.
Now the device is auto-detected twice:
2023-03-12 21:18:35.370 DEBUG (MainThread) [custom_components.powercalc.discovery] switch.buro_deckenlicht: Auto discovered model (manufacturer=SONOFF, model=Zigbee two way smart switch (ZBMINI)) 2023-03-12 21:18:35.378 DEBUG (MainThread) [custom_components.powercalc.discovery] light.buro_deckenlicht: Auto discovered model (manufacturer=SONOFF, model=Zigbee two way smart switch (ZBMINI)) 2023-03-12 21:18:35.379 DEBUG (MainThread) [custom_components.powercalc.discovery] Done auto discovering entities 2023-03-12 21:18:35.440 DEBUG (MainThread) [custom_components.powercalc.sensors.power] Creating power sensor (entity_id=switch.buro_deckenlicht entity_category=None, sensor_name=Büro Deckenlicht Device Power strategy=FixedStrategy manufacturer=sonoff model=ZBMINI standby_power=0.33 unique_id=0x804b50fffeab5e26_switch_zigbee2mqtt) 2023-03-12 21:18:35.440 DEBUG (MainThread) [custom_components.powercalc.sensors.energy] Creating energy sensor: Büro Deckenlicht Device Energy 2023-03-12 21:18:35.441 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy daily (entity_id=sensor.buro_deckenlicht_device_energy_daily) 2023-03-12 21:18:35.441 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy weekly (entity_id=sensor.buro_deckenlicht_device_energy_weekly) 2023-03-12 21:18:35.441 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy monthly (entity_id=sensor.buro_deckenlicht_device_energy_monthly) 2023-03-12 21:18:35.441 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy quarterly (entity_id=sensor.buro_deckenlicht_device_energy_quarterly) 2023-03-12 21:18:35.442 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy yearly (entity_id=sensor.buro_deckenlicht_device_energy_yearly) 2023-03-12 21:18:35.442 DEBUG (MainThread) [custom_components.powercalc.sensors.power] Creating power sensor (entity_id=light.buro_deckenlicht entity_category=None, sensor_name=Büro Deckenlicht Device Power strategy=FixedStrategy manufacturer=sonoff model=ZBMINI standby_power=0.33 unique_id=a02039d95ad8f03ae1de4f5f14fa1cac) 2023-03-12 21:18:35.442 DEBUG (MainThread) [custom_components.powercalc.sensors.energy] Creating energy sensor: Büro Deckenlicht Device Energy 2023-03-12 21:18:35.442 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy daily (entity_id=sensor.buro_deckenlicht_device_energy_daily) 2023-03-12 21:18:35.442 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy weekly (entity_id=sensor.buro_deckenlicht_device_energy_weekly) 2023-03-12 21:18:35.443 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy monthly (entity_id=sensor.buro_deckenlicht_device_energy_monthly) 2023-03-12 21:18:35.443 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy quarterly (entity_id=sensor.buro_deckenlicht_device_energy_quarterly) 2023-03-12 21:18:35.443 DEBUG (MainThread) [custom_components.powercalc.sensors.utility_meter] Creating utility_meter sensor: Büro Deckenlicht Device Energy yearly (entity_id=sensor.buro_deckenlicht_device_energy_yearly)

hmm yes, I see.
This is because the light entity which has platform switch_as_x is allowed to be discovered, but the switch.* entity itself as well.
I will remove switch_as_x from that powercalc check, because it makes no sense at all thinking more about is, because when you use this there is alway as switch entity. I added that as a possible fix for this issue https://github.com/bramstroker/homeassistant-powercalc/issues/1491, but the actual fix was to allow hue.

Here the requested JSON.
I think adding switch_as_x for mqtt should fix the issue.
Maybe this is related to all switches, where a light could be plugged?
{
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "f79c7015f8b1cd121a0f593a1cdcebf2",
        "device_class": null,
        "device_id": "3855b433bc699e14539807fbfddf31c5",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "switch.buro_deckenlicht",
        "hidden_by": "integration",
        "icon": null,
        "id": "f0b3e39fc7a9c5e301f8e7041acf586b",
        "has_entity_name": false,
        "name": null,
        "options": {},
        "original_device_class": null,
        "original_icon": null,
        "original_name": "Büro Deckenlicht",
        "platform": "mqtt",
        "supported_features": 0,
        "translation_key": null,
        "unique_id": "0x80......._switch_zigbee2mqtt",
        "unit_of_measurement": null
      },
{
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "supported_color_modes": [
            "onoff"
          ]
        },
        "config_entry_id": "a02039d95ad8f03ae1de4f5f14fa1cac",
        "device_class": null,
        "device_id": "3855b433bc699e14539807fbfddf31c5",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "light.buro_deckenlicht",
        "hidden_by": null,
        "icon": null,
        "id": "ebe9008e606db6b63524b2580364191c",
        "has_entity_name": false,
        "name": null,
        "options": {},
        "original_device_class": null,
        "original_icon": null,
        "original_name": "Büro Deckenlicht",
        "platform": "switch_as_x",
        "supported_features": 0,
        "translation_key": null,
        "unique_id": "a02039d95ad8f03ae1de4f5f14fa1cac",
        "unit_of_measurement": null
      },

I have made a fix with #1563
Your solution to make it a light with the HA helpers is correct.
Than powercalc can just discover and create power sensor for switch.buro_deckenlicht, and ignore light.buro_deckenlicht.
Without my fix it also detects light.buro_deckenlicht because it has switch_as_x

Will make a release later this week. When you want to install the fix you can install the master branch with HACS (check allow beta versions).

Works, thanks! 😊


[all] Optimize project dependency

Waiting kafka clients update, so we can just use kafka-clients;
Waiting netty 4.1.x become final, so redis driver will use the same dependency;


[MB-7755] temp test to test dtod

Description
In order to test the DTOD connection, you have 2 options:

create a UT not to be checked into master, but pull and run it locally and make sure there are no errors
create a DDDSIT and create a payment request for it

Reviewer Notes
Is there anything you would like reviewers to give additional scrutiny?
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make db_dev_e2e_populate && rm bin/prime-api-client ; make bin/prime-api-client
make server_run

prime-api-demo RDY4PY

You can stop the script after creating a payment request with service items. You will then have to update the DDDSIT service item and create a new payment request manually for DDDSIT.
prime-api-client --insecure fetch-mto-updates | jq 'sort_by(.updatedAt) | .[-1]' > demo_mto.json

Create the update service item payload for DDDSIT.
cat demo_mto.json | jq " .mtoServiceItems | map(select(.reServiceCode == \"DDDSIT\"))[0] | {mtoServiceItemId: .id, ifMatch: .eTag, body: {id: .id, modelType: \"UpdateMTOServiceItemSIT\", sitDestinationFinalAddress: {streetAddress1: \"20245 4th St\", city: \"Harlem\", state: \"GA\", postalCode: \"30814\", country: \"United States\"}}}" > update_dddsit_service_item.json

prime-api-client --insecure update-mto-service-item --filename update_dddsit_service_item.json  | jq

save output from above and put it into output_create_dddsit.json
cat output_create_dddsit.json | jq ' {  body:  {  isFinal: false,  moveTaskOrderID: .moveTaskOrderID,      serviceItems: {id: .id}}  }' > create_dddsit_request_pr.json

edit the file create_dddsit_request_pr.json  to add the correct [] around the service items ids.
vim create_dddsit_request_pr.json

e.g.,
		serviceItems: [
			{
				id: test
			}
		]

prime-api-client create-payment-request --insecure --filename  create_dddsit_request_pr.json | jq

Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
this article explains more about the approach used.

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Messages

:book:
:link: MB-7755

  Generated by :no_entry_sign: dangerJS against 1ab84914f416c22b35afd7e43d8090cd115f1503


UIMARCAUTH-92  Labels update

Purpose
https://issues.folio.org/browse/UIMARCAUTH-92

Approach

TODOS and Open Questions

Learning

Screenshots

@dltj Could you please update translations (manually)?

https://github.com/folio-org/ui-marc-authorities/pull/104


Dynamic Headline Numbering

Does this feature exist in Emacs orgmode core?
Yes
Orgmode link

https://orgmode.org/manual/Dynamic-Headline-Numbering.html

Feature value
Firstly, thank you for reading this feature request. I checked the documentation and did not find this feature discussed anywhere. I apologize if I missed mention of it.
What does this feature do?
When viewing org files with Emacs, the user can toggle outline numbering on each heading with M-x org-num-mode. See the below GIF for an example.

What is the value of this feature?
The value of this feature is that it adds another visual means of understanding the organization of an org file.
Additional context
No response

Looks like another use-case for neovim/neovim#9496

Is this only visual thing or numbers get literally appended? I didn't give it a test in Emacs.

It looks like its just visual. I cannot edit it and the cursor jumps 'over' it

Thanks for giving it a test. It really does depend on Neovim anticonceal.


Create duncan.yaml

Problem
Summary of Changes
Fixes #

can u add me to your project miraland.cli mate?


How to connect to RegTest?

var network = Network.RegTest;
QBitNinjaClient client = new QBitNinjaClient(network);
error:“Network not supported”

RegTest is in your machine, running Bitcoin Core, that's not a global network.
https://www.youtube.com/watch?v=LLZNvl90PC0


Speed up notebooks

This PR adds a switch to use a much smaller number of iterations for minimize(), sample() and loops in continuous integration tests compared to running locally, which significantly speeds up the tests. It also adds a sample_feed_dict() method to Model which is needed to speed up the MCMC predict_f calls on the samples.

Codecov Report

Merging #789 into master will decrease coverage by 0.26%.
The diff coverage is 27.77%.

@@            Coverage Diff             @@
##           master     #789      +/-   ##
==========================================
- Coverage   97.52%   97.25%   -0.27%
==========================================
  Files          55       55
  Lines        4759     4777      +18
==========================================
+ Hits         4641     4646       +5
- Misses        118      131      +13

Impacted Files
Coverage Δ

gpflow/models/model.py
92.47% <12.5%> (-7.53%)
:arrow_down:

gpflow/test_util.py
88.67% <40%> (-11.33%)
:arrow_down:

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 8fa0d57...69f7dd3. Read the comment docs.

Because of the checks for CI environment, the notebooks are now slightly messier - I hope this is made up for by the fact that now only one of the five slowest tests is a notebook test, and the overall travis runtime is reduced by about one third.

Went through the code - ready to be merge. @markvdw @awav

we could change is_continuous_integration to a module-level global variable, and rename the function to _is_continuous_integration() ... ? would then have to change all the notebooks as well, but might be cleaner...

Ready to merge, please!
@awav if you prefer notebook_niter instead of nb_niter I'm happy to change that, it just needs to be consistent..


Quickly pressing buttons in shooting mode causes functions to get stuck on

Equipment: M5StickC PLUS, GFX 100ii
When in shooting mode, quickly tapping a button only seems to trigger the shutterPress/focusPress functions, and the shutter/focus is locked on until the button is long pressed (another quick press keeps the function locked on)
I actually find this behaviour to be very useful, however trying to 'unstick' the buttons is annoying. It would be a lot better if a second quick press simply turned the function off

@matthudsonau Thank you for the bug report!
That was embarrassingly easy to reproduce :neutral_face:
I have a fix and can release a v2-alpha image if you want to test.
Further, I'm interested in this comment "I actually find this behaviour to be very useful".
Could you elaborate?
The current button handling is designed for CL/CH shooting, where you hold for continuous snapping.

On my previous remote (wired canon thing on my 50S), I would lock the shutter so it would shoot continuously. Very useful when shooting lightning or astro. Can't do that on the 100 ii (new remote connector)
I did shoot some lightning around a month ago, and having to hold the button in to keep shooting got very annoying within a couple of minutes. Similar with astro (although in that case I used the internal intervalometer, but it's a hop through the menus to set up and configure every time I want to move the camera)

Thanks for that description, I've opened #65.


adapting based on props

Adapting a styled-component based on props creates a brand new component each time, so you only get componentDidMount and zero componentDidUpdate events for all descendants of the style. This means you can't optimize any parts of your app using shouldComponentUpdate if you use dynamic styles. Is there a way to do this without sacrificing React's primary optimization path?

Could you please post an example?

As you can see in the implementation, once you create a StyledComponent it is not recreated. It receives new props and recomputes the CSS, checking whether the result changed, and rerenders with a new className.
https://github.com/styled-components/styled-components/blob/master/src/models/StyledComponent.js
If you would like to prevent unnecessary rerenders you should do that at a higher component thstbpasses down your props to a styled component eventually, further down the tree.
If you need more help, feel free to post examples / questions here, or on Gitter. I'm currently rewriting the documentation and turning them into a website. Do you think a section on optimisations would help you?

Ahh I see what I was missing, that you need a function where props gets passed in as the first argument. I didn't pick up on that so I was creating the styled components inside of a parent component's render() function, which recreates them every time.
Maybe the docs could spell this out so other noobs don't miss it.


Default options

This closes #5
I also added some baseline tests. Feel free to offer some feedback if you would like me to use different naming conventions or different testing conventions.

This is great. Thank you @DesignByOnyx for the nice start to the test suit.


Some Typo's in your keygen scripts.

In both keygen files, you need to change to the following:
import argeparse
change to
import argparse
Also in the file: scripts/erista_keygen.py, you have an error on the path on line 21
subprocess.run(f'hactoolnet --keyset prod.keys -t pk11<PHONE_NUMBER>000819/romfs/nx/package1 --outdir<PHONE_NUMBER>000819/romfs/nx/pkg1', stdout = subprocess.DEVNULL)

Change to:
subprocess.run(f'hactoolnet --keyset prod.keys -t pk11<PHONE_NUMBER>000819/romfs/a/package1 --outdir<PHONE_NUMBER>000819/romfs/nx/pkg1', stdout = subprocess.DEVNULL)

Modding both files fixes errors - you could also add a python requirements.txt , If not, users should run - "pip install argparse" to install that module to python.
Thanks for the keygens though, they work well.

Change to:
subprocess.run(f'hactoolnet --keyset prod.keys -t pk11<PHONE_NUMBER>000819/romfs/a/package1 --outdir<PHONE_NUMBER>000819/romfs/nx/pkg1', stdout = subprocess.DEVNULL)

This actually is not broken.
/a/ is for mariko.
/nx/ is for erista, the reason it's failing is because you do not have the appropriate keys.
the keys required are descriped in the README.md, but the tl:dr really is you need tsec_secret_26 to derive package1_key_%% beyond 6.2.0, and tsec_secret_26 requires hardware glitching of the tsec aes scp key register and bruteforcing.
here's some reading material if you are interested in that, combined its all relevant, but plutoo's gist is what is required:
https://gist.githubusercontent.com/plutooo/733318dbb57166d203c10d12f6c24e06/raw/15c5b2612ab62998243ce5e7877496466cabb77f/tsec.txt
https://hexkyz.blogspot.com/2021/11/je-ne-sais-quoi-falcons-over-horizon.html
https://www.unknowncheats.me/forum/3141470-post1.html
https://github.com/vbe0201/faucon
https://github.com/CAmadeus/falcon-tools
https://gitlab.com/Nxyoom/tsec-exploration
Python script to derive entire keyset for the firmware version you've input, requires "package1_key_%%" and "tsec_root_key_%%" to be present already. (requires tsec_secret_26)
    * It will obtain the key source referred to as "master_kek_source_%%" from the firmware files you've provided, and then initiate key derivation if needed and replace your existing "prod.keys". *
    * This script eliminates the need for "lockpick" of any kind, assuming the user already have the pre-requisite keys.
    * This script works by extracting "package1" with the "package1_key_%%", and then proceeds in finding "master_kek_source_%%", appending that to your existing prod.keys as defined in [Part 2](guides/Part2.MD) of the guides. And then transforms "master_kek_source_%%" using "tsec_root_key_%%" to become "master_kek" and subsequently sets off the key derivation chain, using the tool "hactoolnet".
    * Usage: do "python scripts/erista_keygen.py -f folder / --firmware folder" with firmware files present in a folder called firmware, or as supplied with -f or --firmware . [
    ```

I am considering pushing a smaller writeup on this, but it is one of my low-priority side-projects.
ideally i'd figure out how to rebase it to mainline hekate as it has features for this and better code to amend. (i currently use a hwinit based launcher, using the gplv2 example from https://gitlab.com/Nxyoom/tsec-exploration/-/tree/main/launcher )

Nice, thanks for the info. I've just made a test c# keygen app now and it seems to work fine, so far I have this:
hactoolnet --keyset decrypt.keys -t switchfs Firmware --title<PHONE_NUMBER>000819 --romfsdir<PHONE_NUMBER>000819/romfs/
hactoolnet --keyset decrypt.keys -t pk11<PHONE_NUMBER>000819/romfs/a/package1 --outdir<PHONE_NUMBER>000819/romfs/a/pkg1
decrypt.keys at this point only has:
mariko_bek = 6Axxxxx
mariko_kek = 41xxxxx
At this point when we can see the OEM Bootloader Version:
example:
Firmware 15.xx - OEM Bootloader Version:      0F (mariko_master_kek_source_0E)
Firmware 16 - OEM Bootloader Version:         10 (mariko_master_kek_source_0F)
Firmware 17 - OEM Bootloader Version:         11 (mariko_master_kek_source_10)
Firmware 18 - OEM Bootloader Version:         12 (mariko_master_kek_source_11)
Now we can write to our decrypt.keys - mariko_master_kek_source_(OEM Bootloader Version -0x1) = xxx
I wrote the program to get the key from Decrypted.bin automatically and append decrypt.keys, so now we can run hactool to output prod.keys with the new values added.
hactoolnet --keyset "decrypt.keys" -t keygen > prod.keys
I actually wrote a program called IPS Patch creator ages ago that can decrypt the switch firmware if you know the keys, and now I have this info for the keygen I can add this keygen code into it so that it can decrypt the firmware automatically without needing to update the keys manually. So thanks for your scripts are they we very helpfull in understanding how these keys are derived.

I actually wrote a program called IPS Patch creator ages ago that can decrypt the switch firmware if you know the keys, and now I have this info for the keygen I can add this keygen code into it so that it can decrypt the firmware automatically without needing to update the keys manually. So thanks for your scripts are they we very helpfull in understanding how these keys are derived.

yeah, i actually wrote the means to automatically update using mariko bek/kek, because the mariko package is always accessible with keys from a lower iteration because it is required for firmware updates, so initiating keygen while processing firmware files ensures you always have the latest mariko_master_kek_source which also ensures you will always have the latest mariko_master_kek, which in turn will provide you the latest master_key, etc etc

This is nice to have information. I am so glad you posted those scripts as they make life alot easier without needing to update lockpic_rcm now. Before I was needing to wait until Atmosphere git was updated so I could get the keys to update that but now I don't need to anymore. This makes writing patches much faster now as I can dump FW as soon as it's available and then decrypt it, then use ghidra to dump decrpyted modules into c code - which makes it so much easier to trace the sub's where to patch if that patterns I normally use change. I am pretty chuffed I came across your git yesterday as I have learned alot from it.
Cheers.

no problem mate

PS. I know the Bootloader Version is shown in hactoolnet output, but for speed in code it seems to be at header address 0x150 in /0100000000000819/romfs/a/package1. For your scripts you can read address and use it to write mariko_master_kek_source_xx without having a prod.keys file first and then you can just generate a brand new file from scratch without appending anything.

PS. I know the Bootloader Version is shown in hactoolnet output, but for speed in code it seems to be at header address 0x150 in /0100000000000819/romfs/a/package1. For your scripts you can read address and use it to write mariko_master_kek_source_xx without having a prod.keys file first and then you can just generate a brand new file from scratch without appending anything.

I actually was just about to push a commit with that, as when i first made it it was lazily done.

Thanks for updating your scripts, the new updated ones are better and work well. I've been busy all day but I'll have a look in a while and see if I can find anything else that could, but all seems good now on my end - from a noobs perspective :-).


update wireframes for dashboard components

Link:
https://excalidraw.com/#json=XVLookOsovpPgwV_Ql-2e,Cahu_Zs0KfaOXXIb9BAdBg


Method Not Allowed.  I can not use the POST method.

def upload():
    if request.method == 'POST' and 'photo_user' in request.files:
        filename = user_photo.save(request.files['photo_user'])
        newprofilephoto = FinalUserImage(user_id=current_user.id,
                                       image_filename=filename,
                                       image_url='static/img/profile/' + filename)
        session.add(newprofilephoto)
        session.commit()
        return redirect(url_for('user.profile'))
    return render_template('user/upload.html', form=UserImageForm())

I'm trying to use the post method for a form and I'm getting a 405 error as if I had not specified the path like this @user.route ('/ upload /', methods = ['POST'])
my routes.py
routes = [
    default.Functional('/user', profile),
    default.Functional('/user/upload', upload)
]

And i work with blueprint....
from flask.ext.via.routers.default import Blueprint
my top router.py:
routes = [
    Blueprint('user', 'app.user', template_folder="templates"),
    Blueprint('restaurant', 'app.restaurant',  template_folder="templates"),
    Blueprint('food', 'app.food', template_folder="templates"),
]

Is this a bug or something missing to specify the use of the POST method?

Functional routes only listen for the GET method and currently don't provide a way to override the methods option like the @route decorator. To achieve what you're after you may wish to look at the Pluggable router which allows you to route to a Flask MethodView for example:
from flask.views import MethodView
from flask.ext.via.routers.default import Pluggable

class UserUploadView(MethodView):

    def post(self, bar=None):
        # handler for post method
        return 'foo'

routes = [
    Pluggable('/user/upload', UserUploadView, 'user_upload'),
]


Iterate design of the code-to-condition mapping tool

Problem statement
From conversations with engineers, we can leverage recent code-to-condition mapping to reduce back and forth communication for comparing the codes.
Background & context

Follow up ticket for: Test solution(s) re: senders checking code-to-condition table #13989
Working doc: Link

Working links
Previous work

Audrey's Figma
James's written instructions, edited by Audrey
James's mapping template

Acceptance criteria

[x] Review feedback from @victor-chaparro, including any feedback from recent senders
[X] REMOVED AC (N/A): ~Implement design changes per feedback from eng~
[x] Design next steps are captured in a ticket (either design hand-off materials or eng implementation)
[x] Documentation updated to include what to do if a LOCAL code is returned
[x] Epic is updated to include future improvement to handle LOCAL codes

Adjusted the ACs and marked as complete:

Added documentation on how to handle local codes (for onboarding engineers) in the code to condition mapping tool working space doc
Added backlog ticket to the epic: Investigate enhancing the code-to-condition mapping tool to handle local codes #16470

Closing this ticket.


<IP_ADDRESS>70620: Restore of *sbk-file from <IP_ADDRESS>70501 isn't possible

I have stored a backup of a well working Homematic configuration from RaspberryMatic <IP_ADDRESS>70501.
It is possible to restore this file again to a bare RaspberryMatic <IP_ADDRESS>70501 sd-card, but not to a bare RaspberryMatic <IP_ADDRESS>70620 sd-card. No failure massage, restore seems to work, RM  reboots, but without my backuped configruation.
Cf. https://homematic-forum.de/forum/viewtopic.php?f=65&t=37694&p=369282#p369282
Eckart0

Is it possible that you provide your backup file for debugging purposes? This would help to debug the potential problem and find a way to work around it. If possible please send me your sbk file in private mail or provide a path that I can access/download it somewhere.

I deliver my backup-file via Dropbox: https://www.dropbox.com/s/dunnc4v25zmq6o1/170626 homematic-ccu2-<IP_ADDRESS>70501-2017-06-26-2310.sbk?dl=0
Hardware: RPi3. No security key set. Do you need the ssh-password?
Regards, Eckart
Von: Jens Maus<EMAIL_ADDRESS>Gesendet: Dienstag, 27. Juni 2017 00:07
An: jens-maus/RaspberryMatic<EMAIL_ADDRESS>Cc: Eckart0<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Betreff: Re: [jens-maus/RaspberryMatic] <IP_ADDRESS>70620: Restore of *sbk-file from <IP_ADDRESS>70501 isn't possible (#120)
Is it possible that you provide your backup file for debugging purposes? This would help to debug the potential problem and find a way to work around it. If possible please send me your sbk file in private mail or provide a path that I can access/download it somewhere.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/jens-maus/RaspberryMatic/issues/120#issuecomment-311195782 , or mute the thread https://github.com/notifications/unsubscribe-auth/AcVxcY5G4ZLw4rDs1FpkZIND9AAUDA03ks5sICuWgaJpZM4OF4J0 .  https://github.com/notifications/beacon/AcVxcWIk0IjW3b9UisLNuo9Lbcd08oS2ks5sICuWgaJpZM4OF4J0.gif

… an I attach the syslog-file of the boot procedure of my working …20170501 configuration.
Von: Jens Maus<EMAIL_ADDRESS>Gesendet: Dienstag, 27. Juni 2017 00:07
An: jens-maus/RaspberryMatic<EMAIL_ADDRESS>Cc: Eckart0<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Betreff: Re: [jens-maus/RaspberryMatic] <IP_ADDRESS>70620: Restore of *sbk-file from <IP_ADDRESS>70501 isn't possible (#120)
Is it possible that you provide your backup file for debugging purposes? This would help to debug the potential problem and find a way to work around it. If possible please send me your sbk file in private mail or provide a path that I can access/download it somewhere.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/jens-maus/RaspberryMatic/issues/120#issuecomment-311195782 , or mute the thread https://github.com/notifications/unsubscribe-auth/AcVxcY5G4ZLw4rDs1FpkZIND9AAUDA03ks5sICuWgaJpZM4OF4J0 .  https://github.com/notifications/beacon/AcVxcWIk0IjW3b9UisLNuo9Lbcd08oS2ks5sICuWgaJpZM4OF4J0.gif

Thanks again for the backup file. I tested it here but (of course) it worked for me out-of-the-box. Please explain which browser you are using and which RaspberryPi you use.

I use Chrome (browser cache empty) and RPi3. EckartS

Ok,
now i tried IE as browser (cache empty): no restore poosible. No failure massage in WebUI, but no restore.
Then I used a direkt restore on the RasPi, as you described it https://homematic-forum.de/forum/viewtopic.php?f=65&t=37728. That worked with the first reboot. The resored file seemed to work, just HmIP and VirualDevices stopped after using WebUI. tbd later.
But: The following reboots produced on the RasPi a file system failure message:
"Ext4-fs error (device mmcblk0p3): ext4_mb_generate_buddy:758: group 1, block bitmap and by descriptor inconsistent: 23339 vs 2355 clusters"
WebUI is frozen showing the bluescreen "Die RaspberryMatic ist noch nicht bereit ..."
You succeded in restoring my backup-file on v...20170620. Is it possible that you send my a link to access an image file of that restore? Just to exclude that there is any other problem, i.e. with my hardware?
Regards, EckartS

@Eckart0 The filesystem error you are seeing suggests that you should exchange your SD card to make sure it is not near end-of-life and thus produce these errors. This would then also explain your problem with the webui-based upload process. So please use a brand-new SD card and don't use a cheap one either :)

That was the crux of the matter. I tried two cheap 4GB SD-Cards. Now it works with to expensive 8GB cards. Sorry for the circumstancies and thanks for the advice. Eckart0

Ok thanks. Never use cheap sd cards with the raspberrypi. Always use high grade sandisk or kingston cards


Process explorer hovered item loses visual feedback periodically

This is https://github.com/microsoft/vscode/issues/104013 again, just not as bad because at least scroll is stable now.

I'm unable to reproduce this in current Insiders so closing as not reproducible.


[Enum Request] Table 1173 Document Attachment, Field 13 Document Type

Change field 13 Document Type from Option to Extensible Enum.
There is no easy way to extend Option fields, so making this an Enum instead would greatly simplify things, for example, adding support for Service Items.

Table 1173 is the Document Attachment table.

This is already implemented
    field(13; "Document Type"; Enum "Attachment Document Type")
    {
        Caption = 'Document Type';
    }


select user to launch tasks as

Is it possible to select the user used to execute a task as? I am thinking something similar to supervisor's user option in the processes definition which ultimately uses os.setgroups/os.setgid/os.setuid. Thanks.

@kchaliki Currently we only have support for setting the user in our custom executor, but I've added support for changing the user for the default mesos executor in #1262


Unnecessarily uses two API calls if a pre-cached version is not requested

Description:
If the version of node requested is not one of the versions pre-cached on the Actions job runners, this action will make two API calls to effectively do the same thing as downloading https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json. Downloading that URL directly would use 0 API calls.
These API calls are counted against the API rate limits. In one small sampling in our repo while investigating "API rate limit exceeded" errors (data in GitHub support ticket 1513647), these calls represented 567 of the 958 hits (almost 60%) leading up to the event.
While the actual code involved appears to be in your actions/toolkit repo rather than this one. GitHub Support asked me to raise this here.
Action version:
v3
Platform:

[x] Ubuntu
[ ] macOS
[ ] Windows

Runner type:

[x] Hosted
[ ] Self-hosted

Tools version:

Node version 16.13.2, being installed by this action. Pnpm version 6.23.6.
Repro steps:
You can see it easily enough in this test run on my personal repo, which used this workflow.
Expected behavior:
API rate limit is not unnecessarily used.
Actual behavior:

Here, before running this action, we see the rate limit usage was 2/1000.
After using the action to install a cached version of node, here we see the usage was still 2/1000.
After using the action to install an uncached version of node, here we see the usage has gone up to 4/1000.

Hello @anomiex. Thank you for your report. We'll investigate the issue.

Hello @anomiex ,
After the investigation we came to the conclusion that this is not an issue on our side, since these "additional calls" are probably happening when manifest is being fetched, and the second one is happening when toolkits downloadTool gets invoked, so in a way this is expected behaviour.
That is why I will close this issue now. If you have any questions or concerns, please feel free to leave a comment on this thread or open another issue

Your (GitHub's) own support is who asked me to open this here. If you agree it's in one of your (GitHub's) other repositories, why not copy it there instead of just closing this with "not my problem"?


fix(ripple): Always remove ripple after a certain period

The ripple foreground is not removed if transition is interrupt (e.g. change parent visibility, hidden).
Fixes #1818
R: @kara @jelbourn

Still seems to be failing on IE11... I'll try to take a look today.

Fixed IE11


[Feature Request]: Multi-dataset recipes

🚀 The feature
It could be interesting to have a recipe and tools that help combine multiple training datasets. Some other toolkits do it, picking one example: k2/icefall.
To my knowledge, we do not have such a recipe in SpeechBrain nor do we provide documentation on how to do it.
This issue is for the sake of tracking progress and centralize discussion. If one wants to implement it, it should probably get more discussion beforehand.
Solution outline
Things to investigate:

Whoever desires to implement this would need to examine what mechanisms are already there to help merge datasets, and decide on the best approach if any APIs should be added.
We could make a tutorial that shows how to do it and explaining concerns around dataset merging.
ASR is possibly one of the most viable targets for this: Could try LibriSpeech+CommonVoice for example (or also for example GigaSpeech c.f. #1210). There are probably normalization and BPE LM pre-training concerns here.
Should train a model and compare performance with the baseline, e.g. do we save some WER% on LibriSpeech if we train on LS+CV?

Additional context
No response

In SpeechBrain we currently don't have a specific format for datasets, which makes dataset operations tricky. I think it's simply a matter of us not forcing any specific filenames or sample keys.
Cases where some datasets do use the same conventions can probably already be handled with something like a ConcatDataset.
On the other hand, SpeechBrain is compatible with any normal torch dataset implementations. Maybe for these kinds of cases users could look at Lhotse or other dataset providers that do standardize the datasets.

Hey @Gastron, thanks for your comment. We are planning to train some large ASR models on multiple datasets with SpeechBrain. Do you think you could contribute into this project by adding this new feature of multi-datasets recipes?
Thanks.
Adel


[guides] Integrating social login with user table

Proposed outline:

What this guide will help you do
What you should have already done (configure social provider and auth)
For access to more info that what hasura needs for login, set up the scopes variable
How to get the access token, refresh token (different for different providers) on the client-side
How to store the access token in a data table
Where can you use this access token

Caveats (for us):

Some providers give you different access tokens for the server and mobile in which case the auth provider stuff cannot be easily linked


MINOR - Add /validate endpoint

Describe your changes:
To help us easily check database access, ES health, Pipeline Service Client, jwks configuration and migrations.
It will require changes in Collate to define the MigrationValidationClient there to handle Collate-only migrations
❯ http GET http://localhost:8585/api/v1/system/validate "Authorization: Bearer ${JWT_TOKEN}"
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Length: 354
Content-Type: application/json
Date: Wed, 28 Feb 2024 13:48:01 GMT
Vary: Accept-Encoding

{
    "database": {
        "description": "Validate that we can properly run a query against the configured database.",
        "passed": true
    },
    "jwks": {
        "description": "Validate that the ingestion-bot JWT token can be properly decoded.",
        "passed": true
    },
    "migrations": {
        "description": "Validate that all the necessary migrations have been properly executed.",
        "message": "Found the versions [[1.1.0, 1.1.1, 1.1.2, 1.1.5, 1.1.6, 1.1.7, 1.2.0, 1.2.1, 1.2.3, 1.2.4, 1.3.0, 1.2.0-collate, 1.2.3-collate, 1.3.0-collate, 1.3.1, 1.4.0]], but expected [[1.1.0, 1.1.1, 1.1.2, 1.1.5, 1.1.6, 1.1.7, 1.2.0, 1.2.1, 1.2.3, 1.2.4, 1.3.0, 1.3.1, 1.4.0]]",
        "passed": false
    },
    "pipelineServiceClient": {
        "description": "Validate that the pipeline service client is available.",
        "passed": true
    },
    "searchInstance": {
        "description": "Validate that the search client is available.",
        "message": "Search client is not available",
        "passed": false
    }
}

Type of change:

[ ] Bug fix
[ ] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] My PR title is Fixes <issue-number>: <short explanation>
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

Some thoughts:

validation in the context of web servies is usually for ser/de (validating a json).
This is more of a health check. As such makes more sense to add it under something like /healthcheck?full=true.
This is operational information. probably makes some sense to collect it periodically and expose it via Prometheus metrics. (cc: @tutte)

Some thoughts:

validation in the context of web servies is usually for ser/de (validating a json).
This is more of a health check. As such makes more sense to add it under something like /healthcheck?full=true.
This is operational information. probably makes some sense to collect it periodically and expose it via Prometheus metrics. (cc: @tutte)

Agree. Although is a healthcheck-like, this shouldn't replace the health endpoint and the healthcheck should be a return 200.
To me a good route would be something like /status if qs is not an option.
In any case, prometheus metrics should expose this information

Some thoughts:

validation in the context of web servies is usually for ser/de (validating a json).
This is more of a health check. As such makes more sense to add it under something like /healthcheck?full=true.
This is operational information. probably makes some sense to collect it periodically and expose it via Prometheus metrics. (cc: @tutte)

Agree. Although is a healthcheck-like, this shouldn't replace the health endpoint and the healthcheck should be a return 200. To me a good route would be something like /status if qs is not an option. In any case, prometheus metrics should expose this information

I like he /status. Updated. Also, this is not replacing the existing healthcheck. Ingestion Pipeline health is already a prom metric. I can do followups for db/ES


website: Update website to support Ubuntu 24.04

This is a work in progress:

The link for the Docker image for Ubuntu 24.04 min-dependencies doesn't work because the image has not been created yet.
The links to the Dockerfiles for Ubuntu 24.04 don't work because the files are currently only available on the develop branch.

Can you update the PR "conversation"/overview to have checkboxes based on what needs to be done? I.e., reword what you have as action items.

The PR is ready for review. The commits should be squashed.

Closing in favor of #132.


https://github.com/chafey/cornerstoneWADOImageLoader/issues/47

Fix for issue #47
"CornerstoneImageLoadProgress" event without imageId for multiframe images

It looks like these fixes were made during the large shift to web workers. Thanks for your contribution!


Configure GH action for Java compatibility tests on pull requests

Closes #420
Description
configures Github action to run Java compatibility tests on pull requests (not required for CI success/failure).
References README for running Java compatibility tests on local.
Is it a feature that change user experience?
No.
Client output
No special client output.

Pull Request Test Coverage Report for Build 407833770

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

Totals

Change from base Build 405764565:
0.0%

Covered Lines:
8252

Relevant Lines:
9095

💛  - Coveralls


ROS2 Support

Hey @whoenig -- I've been working on porting this ROS package to ROS2 and I'm happy to say I've reached full functionality for the core crazyflie_driver package on ROS2 Eloquent.
Current working branch: https://github.com/theseankelly/crazyflie_ros/tree/ros2
There's still some work to be done, and I propose using this issue to track the tasks in case anyone is curious or looking for ROS2 support.

[ ] crazyflie (metapackage)

not started

[ ] crazyflie_controller

not started

[ ] crazyflie_cpp

[x] ROS2 port (working branch here)
[ ] Fix cmake scripts to detect cmake/catkin/ament properly

[ ] crazyflie_demo

not started

[ ] crazyflie_description

not started

[x] crazyflie_driver
[ ] crazyflie_tools

not started

There's also the issue of how to merge/maintain this fork. I think we have two options and I'll leave it up to you, @whoenig:

I can maintain a fork and rename it crazyflie_ros2
Create a ros2 or distro (eloquent) branch in this crazyflie_ros project

Option 2 seems to be the most common in ROS packages right now (example unless the ROS2 version of the package is a complete rewrite. In this case, I'm attempting to keep feature/naming/API pairity between ROS1/ROS2. It took me a while to get used to the idea, but it seems like its easier to maintain patches between ROS1/ROS2 as well as manage a single release repo if you were ever to release this to the ROS index.

This looks great - thanks Sean! I have not looked into ROS2 in detail, but had the plan to work on a port in the fall of this year while also merging crazyswarm and crazyflie_ros into one package. This merge will be a breaking change, in the sense that some of the parameter/topic names (especially for the launch files) will not be fully compatible.
Moving forward, I prefer option 2 - I think fragmentation by forks is a great "risk" in open-source projects in general. I could give you push access to the repo (there seems to be no way to restrict access to a particular branch for my github account type, so this would assume that you'll only push to the ros2 branch), or I can create a branch and you submit PRs to that branch. Depending on how different the ROS1 and ROS2 implementations will get, the merge of crazyswarm -> crazyflie_ros might then only happen for the ROS2 version in the fall.
Some other notes:

Once we have a separate branch, we should also setup continuous integration. I'd be interested in trying github actions, since Travis CI is very slow in adding newer OS images.
This will also give the opportunity to extend to Mac and Windows platforms (crazyflie_cpp/tools work on Mac, but not yet Windows).
I currently don't like the design that the crazyflie_cpp repo "knows" about ROS by providing cmake files. I think we need to find an alternative solution here. There are two options: a) requiring that crazyflie_cpp is installed as a library, or b) duplicating the code to build (a specific version of crazyflie_cpp) inside the crazyflie_ros package. I think b) is probably easier to handle and allows us to keep crazyflie_cpp and crazyflie_tools as submodules.

Sounds good. The choice for push access vs submitting PRs is entirely up to you. I'll likely submit changes via PR either way -- probably better to have one person doing merges unless you don't want to be bothered with code reviews for ROS2.
CI -- agreed! GitHub actions is the way to go for ROS projects. I've recently set this up for work and can help if needed.
crazyflie_cpp -- agreed. I just submitted a PR which changes crazyflie_cpp into a standard cmake project. This is the recommended way to incorporate third party, non-ROS libs into the ROS index. Using colcon in ROS2 to build is pretty easy, but I think standard cmake packages present some challenges in ROS1; not sure. Either way, I think this is a better way to go since crazyflie_cpp isn't really a ROS node.
Another idea is to merge crazyflie_cpp and crazyflie_tools into a single repo with a module based cmake architecture (cmake -DBUILD_MODULE_TOOLS=OFF to disable the tools binaries, for example).

I created a ros2 branch, for which you can submit PRs. If it ends up being too annoying or I am too slow, I can still give you direct push access later. I'd love to look over the changes as well, since that will allow me to learn about ROS2 as we go.
CI: Do you know if people use it for ROS1 as well or is Travis still the preferred way? Moving forward, we should definitely go with the github actions for the ros2 branch, but it might also be worthwhile to upgrade other repositories/branches for me, especially since github actions seem to have more OS images.
Crazyflie_cpp: This was a nice change - thanks. Originally, I had in mind to have no ROS-related files in there (i.e., no package.xml), but lets see how far we can go this route. Either way, your refactoring is certainly nicer than how it was before. Moving crazyflie_cpp and crazyflie_tools into the same repo would be a possibility. However, the only benefit would be to reduce the overhead to update submodules (which can be pretty annoying), or do you see other advantages, too?


rdpwrap 10.0.19041.1566  supported but no multi-access

rdpwrap 10.0.19041.1566  supported but no multi-access accounts
thx

Applicable to https://github.com/stascorp/rdpwrap/issues/1725