"401 Unauthorized" on dashboard

Description of problem:
After installing the zigbee2mqtt addon for HomeAssistant through the supervisor addon panel, attempting to access the web ui results in a blank page reading "401: Unauthorized".
Restarting the addon as well as uninstalling and reinstalling had no effect.
Zigbee2mqtt add-on version (if edge, please report commit hash):
1.21.0-1

Your entire configuration from the frontend (with sensitive fields redacted):
Not sure what this is asking for, sorry.
Running platform (details from Suypervisor > System)
// Example
Core: core-2021.7.4
Supervisor: supervisor-2021.06.8
Operating System: Home Assistant OS 6.1

Your logs from Home Assistant Supervisor
21-08-02 13:24:09 INFO (MainThread) [supervisor.store.git] Cloning add-on https://github.com/zigbee2mqtt/hassio-zigbee2mqtt repository
21-08-02 13:24:12 INFO (MainThread) [supervisor.store] Loading add-ons from store: 64 all - 2 new - 0 remove
21-08-02 13:24:12 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.RUNNING
21-08-02 13:24:12 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
21-08-02 13:24:24 INFO (MainThread) [supervisor.addons] Creating Home Assistant add-on data folder /data/addons/data/45df7312_zigbee2mqtt
21-08-02 13:24:24 INFO (SyncWorker_4) [supervisor.docker.interface] Downloading docker image zigbee2mqtt/zigbee2mqtt-aarch64 with tag 1.21.0-1.
21-08-02 13:25:21 INFO (MainThread) [supervisor.addons] Add-on '45df7312_zigbee2mqtt' successfully installed
21-08-02 13:25:28 INFO (MainThread) [supervisor.ingress] Update Ingress as panel for 45df7312_zigbee2mqtt
21-08-02 13:25:32 INFO (SyncWorker_3) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:25:38 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:25:44 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:25:44 INFO (SyncWorker_1) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:25:46 INFO (SyncWorker_1) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:25:48 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:26:04 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:26:05 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:26:16 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:26:16 INFO (SyncWorker_3) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:26:18 INFO (SyncWorker_3) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:26:43 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:26:47 INFO (SyncWorker_4) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:26:48 INFO (SyncWorker_1) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:26:51 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:26:52 WARNING (MainThread) [supervisor.api.ingress] No valid ingress session None
21-08-02 13:27:18 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:27:18 INFO (SyncWorker_2) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:27:20 INFO (SyncWorker_2) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:27:50 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:27:50 INFO (SyncWorker_0) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:27:51 INFO (SyncWorker_0) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:28:21 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:28:21 INFO (SyncWorker_4) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:28:23 INFO (SyncWorker_4) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:28:53 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:28:53 INFO (SyncWorker_3) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:28:55 INFO (SyncWorker_3) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1
21-08-02 13:29:25 WARNING (MainThread) [supervisor.misc.tasks] Watchdog found a problem with 45df7312_zigbee2mqtt!
21-08-02 13:29:25 INFO (SyncWorker_0) [supervisor.docker.interface] Cleaning addon_45df7312_zigbee2mqtt application
21-08-02 13:29:26 INFO (SyncWorker_0) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.21.0-1

Issue was caused due to Firefox default cookie settings with local mDNS domain. Using the IP address of the installation instead solved the issue.


Automatically build release EBS snapshots for AWS

At Engine Yard, we create EBS snapshots of the Docker volume for each Deis release. We then use this snapshot to create new volumes for hosts that we create.
Currently, this process is manual and tedious. We should have a CI job that kicks off this automatic build and snapshot creation so that we can share it with our community.
/cc @iancoffey

closing as irrelevant for v2.


Upgrade to 3.1 best practices?

I am upgrading from 3.0 to 3.1 and it appears that the preferred method to authenticate routes is to nest the routes under an authenticated parent route.
So in order to do this migration I would have to move all my routes, controllers, templates and rename all transition to functions.
I wouldn't have a problem with this but in this case all routes are authenticated except for one login page.
It seems like there should be a way to use the applications route beforeModel hook to do the authentication and skip it only on the login route.
I was hoping the following would work but it is buggy.  It works on page load but if you transition to a route after after the application has loaded it is not requiring authentication.
// routes/application.js
export default class ApplicationRoute extends Route {
  @service session;

  beforeModel(transition) {
    if (transition.targetName !== 'login') {
      this.session.requireAuthentication(transition, 'login');
    }
  }
}

// routes/login.js
export default class LoginRoute extends Route {
  @service session;

  beforeModel(transition) {
    this.session.prohibitAuthentication('index');
  }
}

Is there any other way to pull this off without reworking my whole application?
Thanks for taking the time to look at this.
~ aaron

Github resubmitted this multiple time. Sorry.


resultRecipient() support for Destinations from other modules

Would be awesome if resultRecipient() supported Destinations from other modules when the recipient module depends on the sender.
In the current state, this error is thrown.
Non existent Destination as the ResultRecipient's result origin!

@raamcosta will the new NavGraph annotations fix this issue?

A workaround I did is that you can implement ResultRecipient and ResultBackNavigator on a common module and use only that in different modules

@raamcosta will the new NavGraph annotations fix this issue?

No. Because KSP processes nav graph annotations only per module. The solution to this will require some manual work in the navigation module. I just want to see if I can provide some tools to make that work easier.
I am planning to look into this in the coming weeks 🙂

to whom it may concern, my workaround is to make a proxy destination in each module that would be a Destination and use my screen directly:
/**
 * Auxiliary screen to use SearchUserScreen between modules
 * https://github.com/raamcosta/compose-destinations/issues/59
 */
@Composable
@Destination
fun SearchUserProxy(
    resultNavigator: ResultBackNavigator<String>?
) {
    SearchUserScreen(resultNavigator)
}

We'll have a solution in the next release, pay attention to release notes :)

Wasn't able to allow this without losing some type safety at compile time + some manual work when calling DestinationsNavhost. So the fix is not ideal for this particular scenario where the recipient module actually depends on the sender module.
Since I need to have information about the Destination to check if it also contains a correspondently typed result, I didn't find a better solution.
I think I will reopen this however, so I can maybe explore more in the future :)
In the meantime, I wanted to make this possible even when modules don't depend on eachother, so that's why the solution went this way.

to whom it may concern, my workaround is to make a proxy destination in each module that would be a Destination and use my screen directly:
/**
 * Auxiliary screen to use SearchUserScreen between modules
 * https://github.com/raamcosta/compose-destinations/issues/59
 */
@Composable
@Destination
fun SearchUserProxy(
    resultNavigator: ResultBackNavigator<String>?
) {
    SearchUserScreen(resultNavigator)
}

Is this still the best solution for this problem?

Hi @Onvistlex !
No, we did some changes to enable this better:
https://composedestinations.rafaelcosta.xyz/navigation/backresult#multi-module-result-back-case
I actually think I'm going to close this one, as there are no plans to do anything else here for foreseeable future.


[Android] Add response headers to XHR response

This is code from https://github.com/facebook/react-native/pull/3062 with fix for support multiple values from @qbig

@ide @mkonicek any feedback?

Could you add an example of this working to the XHRExample? (https://github.com/facebook/react-native/blob/master/Examples/UIExplorer/XHRExample.android.js)

Also, is this how iOS sends response headers as well? (i.e. do they do a comma separated list or do they send an array). We want to make sure these APIs are consistent.

Yes, this is consistent with iOS

@astreet @ide I fixed typo and added example, can you review this changes?

Looks great, thanks! Can you just update the inlines to keep with our internal code formatting so I can just auto-import without having to touch it? :)

@facebook-github-bot shipit

Thanks!

awesome!

@facebook-github-bot shipit

Hi @nucleartux @astreet, I am working on a PR to support the "response" attribute to XHR in order to solve this issue ( https://github.com/facebook/react-native/issues/6017), and just now noticed this PR. Let me know if you have any thoughts about supporting "response" attribute, in addition to the "responseText".


refactor,fix,chore: rectifies the egen_fix/sdk_pytorch_torchrun_custom_container_training_imagenet notebook

Following are the changes made to the notebook in the PR

removed boiler plate
added colab enterprise
edited based on template
Fix docker file for package installation

REQUIRED: Fill out the below checklists or remove if irrelevant

If you are opening a PR for Official Notebooks under the notebooks/official folder, follow this mandatory checklist:

[x] Use the notebook template as a starting point.
[x] Follow the style and grammar rules outlined in the above notebook template.
[x] Verify the notebook runs successfully in Colab since the automated tests cannot guarantee this even when it passes.
[x] Passes all the required automated checks. You can locally test for formatting and linting with these instructions.
[ ] You have consulted with a tech writer to see if tech writer review is necessary. If so, the notebook has been reviewed by a tech writer, and they have approved it.
[ ] This notebook has been added to the CODEOWNERS file under the Official Notebooks section, pointing to the author or the author's team.
[x] The Jupyter notebook cleans up any artifacts it has created (datasets, ML models, endpoints, etc) so as not to eat up unnecessary resources.

If you are opening a PR for Community Notebooks under the notebooks/community folder:

[ ] This notebook has been added to the CODEOWNERS file under the Community Notebooks section, pointing to the author or the author's team.
[ ] Passes all the required formatting and linting checks. You can locally test with these instructions.

If you are opening a PR for Community Content under the community-content folder:

[ ] Make sure your main Content Directory Name is descriptive, informative, and includes some of the key products and attributes of your content, so that it is differentiable from other content
[ ] The main content directory has been added to the CODEOWNERS file under the Community Content section, pointing to the author or the author's team.
[ ] Passes all the required formatting and linting checks. You can locally test with these instructions.

/gcbrun


Requirement.txt is missing

Will it be possible for you to push requirements.txt file to your repo as docker is not working.

Hello @abhishekkrthakur,
Can you please add requirements.txt. Thanks in advance


Unknown or unsupported object with type 'Location'

Hi,
I am trying to capture hrefs from the website below :

https://www.sarenza.com

with following code snippet :
const Puppeteer = require("puppeteer");
const { captureHeapSnapshot, findObjectsWithProperties } = require("puppeteer-heap-snapshot");

const start = async () => {
    const browser = await Puppeteer.launch();
    const page = await browser.newPage();

    await page.goto("https://www.sarenza.com");

    let heapSnapshot = await captureHeapSnapshot(await page.target());

    console.log('heapSnapshot:', findObjectsWithProperties(heapSnapshot, ['href']));
}

start();

I got this issue :
(node:38964) UnhandledPromiseRejectionWarning: Error: Unknown or unsupported object with type 'Location'
    at compileGraphNodeObject (C:\ws\white-label\code\test\pupeteer-heap-snapshot\node_modules\puppeteer-heap-snapshot\dist\cjs\src\build-object.js:75:19)
    at buildObjectFromNodeId (C:\ws\white-label\code\test\pupeteer-heap-snapshot\node_modules\puppeteer-heap-snapshot\dist\cjs\src\build-object.js:34:12)
    at C:\ws\white-label\code\test\pupeteer-heap-snapshot\node_modules\puppeteer-heap-snapshot\dist\cjs\src\query.js:16:57
    at Array.map (<anonymous>)
    at findObjectsWithProperties (C:\ws\white-label\code\test\pupeteer-heap-snapshot\node_modules\puppeteer-heap-snapshot\dist\cjs\src\query.js:14:20)
    at start (C:\ws\white-label\code\test\pupeteer-heap-snapshot\index.js:16:34)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:38964) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:38964) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Thanks for replies.

I had a look at the website -- it has Cloudflare running which protects from bots/scraping.
You might consider trying:
const Puppeteer = require("puppeteer");
const { captureHeapSnapshot, findObjectsWithProperties } = require("puppeteer-heap-snapshot");
const randomUseragent = require('random-useragent'); // npm install random-useragent

const start = async () => {
    const browser = await Puppeteer.launch();
    const page = await browser.newPage();
    const agent = randomUseragent.getRandom();
    await page.setUserAgent(`${agent}`);

    await page.goto("https://www.sarenza.com");

    let heapSnapshot = await captureHeapSnapshot(await page.target());

    console.log('heapSnapshot:', findObjectsWithProperties(heapSnapshot, ['href']));
}
start();

Remember that headless puppeteer will let the requested server (aka requested url) know that it's a headless version of Chrome. Servers and services like Cloudflare can block this very easily.

Sorry for the delay on the reply here - I haven't had much time to look into this issue. From what I can see is that puppeteer-heap-snapshot simply does not know how to de-serialize the Location type from the heap snapshot. I'm happy to accept PRs if anyone wants to tackle understanding the datatype and de-serializing it. It's surprising that whatever this data is has its own data type as opposed to a primitive string or object.

You mean the Location DOM object? It looks like src/build-object.ts does not handle any DOM objects, so I expect that it will fail on any DOM reference in JS. Vue/React apps are will not have this issue since they have a virtual DOM and can not* reference DOM elements directly.
Just call .toString() on any unknown object is safe. It will give you [object NAME]. If that is not useful then you have to have specific code for that object. You are also missing all of the JS objects. TypeArray, Temporal, Date, Map, Set etc (maybe I missed some here).
* it's a simplification...

I agree w/ @dotnetCarpenter. I guess we can simply pass blacklisted object names to options to omit them from compiling matched graph nodes. I'm not sure but sounds like some sort of WebAPI/globals can be used as default list.
So after little tweak same code as above would give me proper result on "https://polypane.app/css-specificity-calculator/" (just some example of SPA which runs ontop of Gatsby):
[
  { children: 'privacy policy', href: '/privacy/' },
  { children: 'disclaimer', href: '/disclaimer/' },
  { children: 'Integrations', href: '/integrations/' },
  { children: 'Testimonials', href: '/testimonials/' },
  { children: 'Download', href: '/download/' },
  { children: 'Integrations', href: '/integrations/' },
  { children: 'Docs', href: '/docs/' },
  { children: 'Site Quality', href: '/site-quality/' },
  { children: 'Accessibility', href: '/accessibility/' },
  {
    children: 'Accessibility Statement',
    href: '/accessibility-statement/'
  },
  { children: 'Disclaimer', href: '/disclaimer/' },
  { children: 'Legal', href: '/legal/' },
  { children: 'Home', href: '/' },
  { children: 'All free tools', href: '/resources/' },
  {
    children: 'Responsive design glossary',
    href: '/responsive-design-glossary/'
  },
  { children: 'Create Polypane workspace', href: '/create-workspace/' },
  { children: 'Color contrast checker', href: '/color-contrast/' },
  { children: 'For Marketers', href: '/marketers/' },
  { children: 'For Agencies', href: '/agencies/' },
  { children: 'For QA', href: '/quality-assurance/' },
  { children: 'Pricing', href: '/pricing/' },
  { children: 'privacy policy', href: '/privacy/' },
  { children: 'Privacy', href: '/privacy/' },
  { children: 'disclaimer', href: '/disclaimer/' },
  /* more results */
]


Bootstrap 4

An alpha version of Bootstrap 4 has just been released. Are there any plans on supporting the alpha version of bootstrap v4 in meteor-autoform or will we have to wait until a v4 full release?

This is my humble attempt to provide Bootstrap 4 support: https://github.com/imajus/autoform-bootstrap4
WARNING: some of components are not converted from Bootstrap 3 to 4. I will accept PRs.


serenity-bdd: The id generated doesn't include the path to the feature, so the context of the feature is lost.

What happened?
My rough project structure is:
src/components/componentA/features/coolFeatureA.feature
src/components/componentA/features/commonBehaviour.feature
src/components/componentB/features/coolFeatureB.feature
src/components/componentB/features/commonBehaviour.feature
but because the 'id' generated by the serenity-bdd only takes into account the name and not the directory structure, the commonBehaviour.feature of componentA has the same id as commonBehaviour.feature of componentB so effectively I lose the results belonging to one of the features.
I don't think this is an issue with serenity-cli.
I did see the docs, which say to name the feature file the same as the feature, but:
a) it doesn't explain clearly what happens if you don't do that
b) it doesn't mention anything about uniqueness of filenames etc
What did you expect to happen?
The full path to be included in the 'id' property of the generated json.
Node.js version
18.18.2
Execution environment
windows (bash shell)
How to reproduce the bug.
I can't do that unfortunately due to a locked down dev environment, but hopefully you can see the issue.
Serenity/JS version
This is very difficult in my environment (quite restricted :-( ).

I'm using 3.14.2 for each of:

@serenity-js/console-reporter
@serenity-js/core
@serenity-js/cucumber
@serenity-js/serenity-bdd

and unfortunately can't go higher as later versions of serenity-cli seen to need java version above 8.

Hi,
Thanks for getting back to me and sorry my description could have been clearer.
The issue seems to be that for each of the different component feature scenarios, they are generating a html file with the same name.
From this image you can see that hovering over the Scenario link for the first scenario ('ComponentA') shows "http://localhost:8080/5e72e68f6e6fad16b416ae304454bfc7396b8b75642807c09a65f10f62962643.html"

If I hover over the Scenario link for the first scenario ('ComponentA') or the second scenario ('ComponentB') it shows the link to the same URL :-(.
The bad news for me is that I created a sandbox to reproduce this outside of work and this was not reproducable in v3.21.2 of serenity-js, but was in 3.14.2 :-(.
In desperation, I was looking around and I then came across the serenity-bdd run option "shortFilenames"
npx serenity-bdd run --shortFilenames false
In 3.14.2, unsurprisingly this gives both feature scenarios a file of:
http://localhost:8080/component_operation_should_work_test.html
I tried this in 3.21.2 confident that this too would be broken but it's not. 2 unique files are generated:
http://localhost:8080/e660bf90e893052ddae193567b91a6ac__sl_features_sl_operationworks.html and
http://localhost:8080/ac51b47f2908bcf6b929ff76b17eb1fe__sl_features_sl_operationworks.html
(This isn't a problem for me, I'm just sharing that to reassure you that this is ok in 3.21.2, although the 'shortname' output is not quite as short or readable any more).

Aside:
As a minor hack, for my 3.14.2 case (if you recall we don't have java 11 available on my project), I did manipulate the json output from cucumber-js - appending random numbers after the ids:
{"id":"component-operation-should-work;test"....
became
{"id":"component-operation-should-work;test123"....
etc
and that seemed to fix it. So I may run some thing after cucumber-js and before serenity-bdd to insert the json filename at the end of the ids within the file.

In summary:

If you have any better suggestions to my above hack (e.g. hooking in to the @serenity-js/cucumber formatter) please let me know
As you can see from my screen shot, there is still no 'context'. The directory structure is missing which I think is because I don't have a single 'features' root directory like you do.

src/components/componentA/features/coolFeatureA.feature
src/components/componentA/features/commonBehaviour.feature
src/components/componentB/features/coolFeatureB.feature
src/components/componentB/features/commonBehaviour.feature
What I'd hope to see is that "components/" is part of the hierarchy much like you have with "Another" and "Api" in your screenshot.
Hopefully that sheds some light on the issue. If it's not clear let me know. Thanks for a great tool!

I see, thanks for the detailed explanation and for confirming that the behaviour is correct in 3.21.2.
Serenity BDD 4 changed how it identifies test results, so apart from the id field in the json report, it uses the new path and pathElements fields as well. Those fields are also used to generate the file name you saw when you disabled shortFilenames.
In your case, this behaviour is what helps to differentiate feature files that share the same name.

if you recall we don't have java 11 available on my project

I'd strongly recommend upgrading to Java 11 or newer, either by installing it on your machine, or by running Serenity BDD in a Docker container that offers a newer Java version (e.g. amazoncorretto)
Once you update your runtime environment, you'll have access to newer versions of both Serenity/JS and Serenity BDD and associated frameworks like Playwright or WebdriverIO.

Thanks for a great tool!

You're welcome, I'm glad it helps

Yup I'll try and upgrade.
FYI I think there's a minor issue on the "Test results" because you don't see path information you get on the summary page
Summary:

Test Results:

Perhaps not the original issue I stated so happy to create a new one, if you can confirm the issue?

Perhaps not the original issue I stated so happy to create a new one, if you can confirm the issue?

Yeah, I think it would be nicer to display the full path. I don't think Serenity/JS has much control over how the manual test results are rendered, though. Would you mind proposing this using the Serenity BDD issue tracker?

https://github.com/serenity-bdd/serenity-core/issues/3437 - Done :-)
I'll close this ticket. Can I ask that you look at https://github.com/serenity-js/serenity-js/issues/2306? It may be that I've raised it in the wrong place and it should be over in the other issue tracker.


Migrates CI build from Travis to Github Actions

Issue #, if available:
N/A
Description of changes:
Migrates CI build from Travis to Github Actions
In doing so, we change the compiler versions and build platforms a bit (details below). In order to get it to build on AL2012, I had to lower the cmake minimum version from 3.10 to 3.6—everything seems to still build just fine though.
You can see a successful run here.
Here are the combinations of OS and compiler that are being checked in the new GH Actions workflow.

OS
Compiler

Amazon Linux
clang-3.6.2

Amazon Linux
gcc-4.8.5

Amazon Linux 2
clang-11.0.1

Amazon Linux 2
gcc-7.3.1

Ubuntu 20.04 *
clang-11.0.0

Ubuntu 20.04 *
gcc-9.3.0

MacOS 10.15 *
AppleClang-12.0.0

MacOS 10.15 *
gcc-11.2.0 ^

*These are not fixed to specific versions. They use "latest" and will be updated sometime following a new LTS release of that OS.
^This is the only compiler that is actually fixed to a specific version, though in practice, the Amazon Linux compiler versions are unlikely to change.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Very nice. While we're here: does Github Actions support Windows now? We still have an AppVeyor run for Windows, but it we can move that to Github Actions too, that would be great.

Yes, GH Actions has support for 3 versions of Windows Server. I'll create an issue for us to try to migrate from AppVeyor to GH Actions.


Added cross-environment usage documentation to README.rst

Added some documentation regarding cross-environment usage of requirements.txt.
In short: Run pip-compile on each targeted environment.
Fixes #635, #585, #563,
Changelog-friendly one-liner: Add cross-environment usage documentation to README.
Contributor checklist

~Provided the tests for the changes.~
[x] Gave a clear one-line description in the PR (that the maintainers can add to CHANGELOG.md on release).
[ ] Assign the PR to an existing or new milestone for the target version (following Semantic Versioning).

@tuukkamustonen @barrywhart @cancan101 @taion @JoergRittinger
FYI as you've been the ones discussing mostly discussing the cross-environment topic.
Do tell me if something isn't clear or if you have any questions!

Yeah, giving Python packaging limitations this does make sense.
This is incompatible with checking in requirements.txt, though, right?

@taion Good point about source control. That depends on the user's case I guess. I they deploy an app/service through CI/CD on a single defined Python environment (ex: Only Py3.6 on linux), then committing requirements.txt to source control makes sense. If they deploy on multiple environments from a single repo, then the requirements.txt shouldn't be commited to source control.
I'll figure a way to point that out w/o having to write a dissertation on CI/CD.

It's tricky, though. For example, we mostly develop on OS X, but our CI runs in a Linux Docker container.

@taion Argh, yeah I see. If you don't mind me asking: what are you currently doing to deal with that?

Nothing – just running pip compile on OS X gives good-enough results. Not perfect, but even when there are mismatches, it’s good enough. This may well be due to specific pecularities with our setup, though (we now get tensorflow-gpu from the Docker image whenever we run on Linux, so we never need to put it in our requirements files).

(Pushed but I still need to take care of the source control recommendations)

@vphilippon

If they deploy on multiple environments from a single repo, then the requirements.txt shouldn't be commited to source control.

I'm not sure you should cristallise in doc not commiting requirements.txt to source control. Not doing so opens the door to non deterministic builds (because a compile phase is needed to re-create).
If you want to talk about this, I would instead mention that the files on different platforms should have different annotation (a platform suffix) corresponding to the source environment. That way you keep deterministic behavior for the different platforms.

To be more concrete, now that I'm at a laptop, in the one repo where this even comes up for us, we do:
tensorflow; 'linux' not in sys_platform

On Linux we use a Docker image with TensorFlow pre-installed.
It so happens to work, but it's obviously far from perfect.
In practice, though, with the frequency with which people develop on OS X but deploy on Linux, it's not clear to me that the recommendation here taken literally would improve DX.
Really this is the fault of Python packaging; it's not clear there's much that's possible here

Looks good to me.

@davidovich @tuukkamustonen @taion Updated, with a distinct section regarding commiting.

@vphilippon This was a handy read. Are you game to rebase so that this can be merged? If not, should somebody else open a new PR?
I'd like to confirm that the recommendation is to generate and commit a requirements file for each environment. For example, I'm currently in the process of migrating a Django application from Python 2 to Python 3. We have base and dev requirements. Based on this PR, here's a tox configuration that I came up with:
[tox]
envlist = {2.7,3.7}
skipsdist = true

[testenv]
basepython =
    2.7: python2.7
    3.7: python3.7
envdir =
    {toxworkdir}/requirements-{envname}
deps =
    pip-tools
commands =
    pip-compile -o requirements-{envname}.txt \
        requirements.in
    pip-compile -o requirements-{envname}-dev.txt \
        requirements-{envname}.txt requirements-dev.in

Resulting in these files:
requirements.in
requirements-dev.in
requirements-2.7.txt
requirements-2.7-dev.txt
requirements-3.7.txt
requirements-3.7-dev.txt

If I understand correctly, I should commit all of those files?

For anyone interested, I put together an example repo of how to manage cross-environment requirements files using Tox or Nox: https://github.com/bhrutledge/requirements-py2-py3
Feedback welcome.

@auvipy

please rebase

Addressed in 2b6892fd7624be3d8c61a22003efe1adb09a26d6.

Thanks to @vphilippon and all reviewers!


Error handling with on_error

Hey there, I wanted to consider introducing a new on_error method on the chain as a simple way to handle errors mid-chain, it works similarly to a try..except, and allows you to replace the Exception with another value or a call to a different chain, for example:
>>> from litechain import Chain, join_final_output
>>> import asyncio
...
>>> def failed_greeting(name: str):
...     raise Exception(f"Giving {name} a cold shoulder")
...
>>> async def example():
...     greet_chain = Chain[str, str](
...         "GreetingChain",
...         failed_greeting
...     ).on_error(lambda e: f"Sorry, an error occurred: {str(e)}")
...
...     async for output in greet_chain("Alice"):
...         print(output)
...
>>> asyncio.run(example())
ChainOutput(chain='GreetingChain', data=Exception('Giving Alice a cold shoulder'), final=False)
ChainOutput(chain='GreetingChain@on_error', data='Sorry, an error occurred: ...', final=True)

For a more complete example on how it works together with OpenAIChatChain, check out this notebook with a full code example: https://github.com/rogeriochaves/litechain/blob/cb9b4fe09b93c05a20ae68d50409fe0dc28aaa55/docs/docs/examples/weather-bot-error-handling.ipynb
This is a simple enough error handling solution, but covers most of the use cases I could think of. What do you think?

[x] Add on_error method with tests
[x] Patch debug function to print Exceptions as well
[x] Add a code example for the docs handling bot exceptions
[x] Add docstrings and doctests
[x] Add a documentation guide page on handling errors

Yes... this is great. Good place to catch rate limit exceptions.

Released in v0.1.4


Core API endpoint to update document parents field

New Core API path allowing to upsert the parents field only in a given document

FYI I curl-tested updating parents as well as tags (since it was refactored)

Ok it's tested now

LGTM ❇

:partying_face: :relieved:


[BUG] Files swagger is incorrect

/{shareName}/{directory}/{fileName}/get/responses/206 is missing SMB properties.

#7361


Use NODE_ENV (or fall back to 'production' if not set) when running build

As suggested by @yoshuawuyts in https://github.com/choojs/create-choo-electron/issues/1 this PR sets NODE_ENV to 'production' by default when running bankai build.
If desired a user can set their own NODE_ENV which will override the default.
I tested this in create-choo-app by running npm run dev and being able to see choo-log output in the console. I then ran npm run buildand served the built files statically and saw no more logs from choo-log in the console (due to the NODE_ENV === 'production' check in create-choo-app).
I also ran NODE_ENV="chugga-chugga-choo-choo" npm run build which meant the 'production' default was overridden and this resulted in choo-log being used as expected.
Tests seem to be failing in CI so I don't think I've regressed anything but happy to take a look at that if I have (or take a look separately).

I think this is great! Does it make sense to add a small note to the README about this? It could lead to surprising behavior for folks who rely on NODE_ENV in their apps, so leaving a breadcrumb would be prudent :)

Thanks for the feedback. I'm personally not sure the readme would be the best place for this information, perhaps a better place would be within the cli output when running bankai build, similar to;
https://github.com/choojs/bankai/blob/634ea387655d47d0fd723843bd4526c23052be4e/lib/cmd-build.js#L32
But along the lines of Running in ${process.env.NODE_ENV} mode/n, or something similar. What do you think?


[IngestionClient] Unit test coverage as part of the CI/CD pipeline

Purpose
This PR is actually #2503 but with the comments fixed. Original work has been carried out by @komalg1
This adds Code Coverage report into the project so we can baseline the tests
Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[x] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

@HenryvanderVegte this PR is using the GITHUB_TOKEN which will not work on a fork, as you cannot access that Token from a fork. I believe the theory is that this workflow when run under the repo context (not fork) will have access to the token and will be able to write the Test Coverage as a comment in the PR

/azurepipelines run

/azurepipelines run

@ross-p-smith @HenryvanderVegte @zhouwangzw  The azure pipeline build from a forked repo is disabled now for some security reasons, we are contact to ado org admin to see if we can enable it again.

@ross-p-smith @HenryvanderVegte @zhouwangzw The azure pipeline build from a forked repo is disabled now for some security reasons, we are contact to ado org admin to see if we can enable it again.

thanks a lot @yulin-li !


Ability to use temperature and humidity data from another switchbot device for AC #389

:recycle: Current situation
The current implementation of IR air conditioners uses a default temperature, resulting in inaccurate climate conditions in homekit.
:bulb: Proposed solution
Use an existing switchbot device with temperature and humidity data as the data source for the AC temperature and humidity.
:gear: Release Notes
This PR allows the user to select an existing switchbot device for temperature and humidity data for an AC device.
Adds optional meterType and meterId config options to select the relevant device to use for temperature and humidity for the AC device.
If no options are provided or the specified device is not found, the functionality will remain unchanged.
:heavy_plus_sign: Additional Information
Have only tested with a regular switchbot meter, but should theoretically work with other switchbot devices that support temp/humidity like the hub 2 and WoIOSensor.

Can you rebranch this to the beta-2.6.3 branch?

Potentially related issues: #668 #758

@mrlt8 New beta should be released soon. Can you test and verify it works?

Yes as we get no data back from the api for IR. We can only send commands.
Thanks

@tst-pandit-pan That would mean we would have to integrate with another API, which I will not support in this plugin.

Thank you @donavanbecker & @mrlt8 for all your hard work! The integration of temperature and humidity data into the AC control has been flawless.
I've a suggestion for improvement, it'd be beneficial if the set target temperature could be maintained without resetting to default temperature (i.e. 24°C). Currently, there's no way to indicate what target temperature has been set, as it has been replaced by the sensor temperature.
You may refer from below screenshot, actually I've set the target temperature to 25°C, however, it always shows the default temperature and the sensor temperature.

@mrlt8 @sam-cheuk could you guys please post your config.json? I'm having issues in getting it to work for me. Thanks!

@hamzaahmadk is that you need to add a line in AC IR device config?
"connectionType": "OpenAPI"

@hamzaahmadk is that you need to add a line in AC IR device config?
"connectionType": "OpenAPI"

Tried it but still no luck 😞

@sam-cheuk I have been able to fully integrate the AC into Homekit and I can use it there. The problem I am having is that I am getting two temperature values - one actual, and the other which the AC set to. I am using a Hub 2 to both control the devices as well as provide the temperature/humidity readings (which is different to your setup).

I also edited my config.json to remove the hide_device and external parameters to match your config just in case that would make a difference but still no luck.

@hamzaahmadk Looks like the integration is updating the temperature of the room where the AC is located as 20.0º - does that match what the hub2 is reporting?

@mrlt8 The 20.0º is what the AC is set to and the 23.5º is the temp reported by the Hub 2 (which I have also directly connected to Homekit via Matter. If I understand correctly, in the case of proper integration the temp that the AC is set to (in this case 20.0º) should not show as the current room temperature - only the temp reported by the hub 2 should show. So the temperature should read 23.5º instead of 20.0º–23.5º.

correct. can you turn on debug logging for the AC to see if the CurrentTemperature is being set?

It looks like the CurrentTemperature is being set to undefined even though it is able to update it on the Hub 2. Here are the relevant lines from the debugging log:
`[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner accessory.context.FirmwareRevision: undefined
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner device.firmware: undefined
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner this.platform.version: 2.1.1
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner accessory.context.FirmwareRevision: undefined
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner device.firmware: undefined
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner this.platform.version: 2.1.1
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner ValidValues: [0,1,2], hide_automode: undefined, TargetHeaterCoolerState: 1
[28/07/2023, 22:09:55] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Current Relative Humidity': Characteristic not in required or optional characteristic section for service HeaterCooler. Adding anyway..  See https://homebridge.io/w/JtMGR for more info.
[28/07/2023, 22:09:55] [SwitchBot] [DEBUG] Hub 2: Hub 2 AD CurrentRelativeHumidity: undefined
[28/07/2023, 22:09:55] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Current Temperature': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get (INACTIVE) CurrentHeaterCoolerState: 0
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get TargetHeaterCoolerState: 0, ValidValues: 0,1,2
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Using CurrentTemperature from SwitchBot: Hub 2 (C620DBDE04AD)
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CurrentTemperature: undefined
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get RotationSpeed: 4
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Using CurrentRelativeHumidity from SwitchBot: Hub 2 (C620DBDE04AD)
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CurrentRelativeHumidity: undefined
[28/07/2023, 22:09:56] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Current Temperature': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get HeatingThresholdTemperature: 24
[28/07/2023, 22:09:56] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CoolingThresholdTemperature: 24
[28/07/2023, 22:09:56] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Current Relative Humidity': characteristic value expected valid finite number and received "undefined" (undefined).  See https://homebridge.io/w/JtMGR for more info.
[28/07/2023, 22:09:57] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CoolingThresholdTemperature: 24
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get (INACTIVE) CurrentHeaterCoolerState: 0
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get RotationSpeed: 4
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Using CurrentTemperature from SwitchBot: Hub 2 (C620DBDE04AD)
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CurrentTemperature: undefined
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get TargetHeaterCoolerState: 0, ValidValues: 0,1,2
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get CoolingThresholdTemperature: 24
[28/07/2023, 22:10:45] [SwitchBot] [DEBUG] Air Conditioner: Air Conditioner Get HeatingThresholdTemperature: 24
[28/07/2023, 22:10:45] [@switchbot/homebridge-switchbot] This plugin generated a warning from the characteristic 'Current Temperature': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.`

hmm, seems like the hub doesn't update the context.CurrentTemperature/CurrentRelativeHumidity like the meter does?
https://github.com/OpenWonderLabs/homebridge-switchbot/blob/f0e3999bc4a202985bc05fc1a4f3e83239916f91/src/device/hub.ts#L209-L213
We could probably get the value using getCharacteristic instead if the hub doesn't update the context? @donavanbecker

@mrlt8 i actually didn't put the hub.ts file together. So we could definitely update it so it works like the others.

@mrlt8 Happy to help with testing! 🙂


Laggy UI on Linux (Ubuntu) with two connected displays

Following:
https://github.com/JetBrains/compose-jb/pull/10#issuecomment-713038689
P.S. I checked that examples/todoapp works fine on my PC/Windows and MacBook: animations/resizing seems aren't laggy (on Windows there are some issues with performance, but they are not always visible)

Interesting, so not sure if we could do much on Compose side.

I'm on Ubunutu as well and compose probably runs at around 15-20 fps. Using nvidia drivers with a 1080ti and a single ultrawide monitor. I ran the CEF demo and interestingly CEF has pretty good frame rates, I can even watch Youtube inside the CEF without issue, but compose continues to have poor frame rate.
Any debugging you would like done that might help highlight what the issue is?
$ uname -a
Linux ubuntu-desktop 5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ nvidia-smi
Tue Nov 10 08:41:46 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21       Driver Version: 435.21       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:42:00.0  On |                  N/A |
| 16%   55C    P0    66W / 250W |    894MiB / 11175MiB |      6%      Default |
+-------------------------------+----------------------+----------------------+

I don't think this has to do with rendering (OpenGL) issues.
I think this has to do with (some kind of) event handling.
I only get lag when there's some sort of animation involved.

Which display server is being used? X11, XWayland, or native wayland?
Does the issue persist if you switch sessions to another display server?

With two connected monitors, this code:
wrapped.graphicsConfiguration.device.displayMode.refreshRate

can be very slow (50-100ms).
We call it on every frame.
We will try to switch to system vsync insted of this in https://github.com/JetBrains/compose-jb/issues/137

I'm getting similar issues running on Ubuntu 20.04 on X11 with multiple monitors.  Performance does get worse when a TextField is displayed.  I hadn't realized that multiple monitors was the problem until I found this issue, but then I tried it without them attached and it does seem to work smoothly.
I haven't tried on Wayland, but I do have that installed, so I could give it a go soon.
$ uname -a
Linux bryyo 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

$ nvidia-smi
Tue Dec 29 08:52:29 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro M2200        Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   47C    P0    N/A /  N/A |    743MiB /  4043MiB |     26%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

I've seen the same thing in both of these projects, so I don't think it's related to any specific code that I've written, but just in case it helps:
https://github.com/petitJAM/compose-test-app
https://github.com/petitJAM/Avidity

Same issue here, I to be honest have not tested disconnecting monitors, but I will assume that my 3 connected monitors are the issue. Running the demo app and then clicking the button lags the entire desktop for about 2 seconds.
Its just this example code:
fun main() = Window {
    var text by remember { mutableStateOf("Hello, World!") }

    MaterialTheme {
        Button(onClick = {
            text = "Hello, Desktop!"
        }) {
            Text(text)
        }
    }
}

This should be enough to fully reproduce the issue. I want to point out once again that it is enough to click the button in the example and everything lags.
System info:
OS: Arch Linux x86_64
Kernel: 5.10.3-arch1-1
Resolution: 1920x1080, 1920x1080, 1920x1080
WM: i3-gaps
CPU: AMD Ryzen Threadripper 1950X (32) @ 3.400GHz
GPU: NVIDIA GeForce GTX 1080
Memory: 14737MiB / 64223MiB

NVIDIA smi:
Fri Jan  8 19:30:11 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.45.01    Driver Version: 455.45.01    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 00000000:09:00.0  On |                  N/A |
|  0%   58C    P5    24W / 240W |    994MiB /  8111MiB |     18%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1345      G   /usr/lib/Xorg                     657MiB |
|    0   N/A  N/A      1453      G   ...AAAAAAAA== --shared-files       67MiB |
|    0   N/A  N/A      2479      G   ...AAAAAAAAA= --shared-files       33MiB |
|    0   N/A  N/A     13521      G   kitty                               3MiB |
|    0   N/A  N/A     15561      G   ./ts3client_linux_amd64             2MiB |
|    0   N/A  N/A     35932      G   picom                               2MiB |
|    0   N/A  N/A     35934      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     35935      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     35936      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     48521      G   .../java-14-openjdk/bin/java        7MiB |
+-----------------------------------------------------------------------------+

Killing the compositor and other OpenGL applications doesn't change anything.

Same issue here, I to be honest have not tested disconnecting monitors, but I will assume that my 3 connected monitors are the issue. Running the demo app and then clicking the button lags the entire desktop for about 2 seconds.
Its just this example code:
fun main() = Window {
    var text by remember { mutableStateOf("Hello, World!") }

    MaterialTheme {
        Button(onClick = {
            text = "Hello, Desktop!"
        }) {
            Text(text)
        }
    }
}

This should be enough to fully reproduce the issue. I want to point out once again that it is enough to click the button in the example and everything lags.
System info:
OS: Arch Linux x86_64
Kernel: 5.10.3-arch1-1
Resolution: 1920x1080, 1920x1080, 1920x1080
WM: i3-gaps
CPU: AMD Ryzen Threadripper 1950X (32) @ 3.400GHz
GPU: NVIDIA GeForce GTX 1080
Memory: 14737MiB / 64223MiB

NVIDIA smi:
Fri Jan  8 19:30:11 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.45.01    Driver Version: 455.45.01    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 00000000:09:00.0  On |                  N/A |
|  0%   58C    P5    24W / 240W |    994MiB /  8111MiB |     18%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1345      G   /usr/lib/Xorg                     657MiB |
|    0   N/A  N/A      1453      G   ...AAAAAAAA== --shared-files       67MiB |
|    0   N/A  N/A      2479      G   ...AAAAAAAAA= --shared-files       33MiB |
|    0   N/A  N/A     13521      G   kitty                               3MiB |
|    0   N/A  N/A     15561      G   ./ts3client_linux_amd64             2MiB |
|    0   N/A  N/A     35932      G   picom                               2MiB |
|    0   N/A  N/A     35934      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     35935      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     35936      G   .../xscreensaver/glslideshow       50MiB |
|    0   N/A  N/A     48521      G   .../java-14-openjdk/bin/java        7MiB |
+-----------------------------------------------------------------------------+

Killing the compositor and other OpenGL applications doesn't change anything.

I got the same problem:

 OS: Ubuntu 20.04 focal
 Kernel: x86_64 Linux 5.4.0-60-generic
 Resolution: 3840x1080
 DE: GNOME 3.36.4
 CPU: Intel Core i7-8750H @ 12x 4.1GHz [62.0°C]
 GPU: GeForce GTX 1060
 RAM: 11675MiB / 31804MiB

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1060    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   58C    P0    23W /  N/A |    349MiB /  6078MiB |      8%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1627      G   /usr/lib/xorg/Xorg                251MiB |
|    0   N/A  N/A      2095      G   /usr/bin/gnome-shell               88MiB |
|    0   N/A  N/A     45660      G   ...m/java-15-oracle/bin/java        5MiB |
+-----------------------------------------------------------------------------+

I got the same problem:

 OS: Ubuntu 20.04 focal
 Kernel: x86_64 Linux 5.4.0-60-generic
 Resolution: 3840x1080
 DE: GNOME 3.36.4
 CPU: Intel Core i7-8750H @ 12x 4.1GHz [62.0°C]
 GPU: GeForce GTX 1060
 RAM: 11675MiB / 31804MiB

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1060    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   58C    P0    23W /  N/A |    349MiB /  6078MiB |      8%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1627      G   /usr/lib/xorg/Xorg                251MiB |
|    0   N/A  N/A      2095      G   /usr/bin/gnome-shell               88MiB |
|    0   N/A  N/A     45660      G   ...m/java-15-oracle/bin/java        5MiB |
+-----------------------------------------------------------------------------+

Problem with two displays should be fixed soon.
There is prebuilt version for testing: 0.0.0-vsync-build30
P.S. I discovered a new performance issue with maximized window), not related to this issue.

Problem with two displays should be fixed soon.
There is prebuilt version for testing: 0.0.0-vsync-build30
P.S. I discovered a new performance issue with maximized window), not related to this issue.

Its fixed, really cool!

Its fixed, really cool!

Sweet, I changed to the testing version and it doesn't lag anymore! Good job!

Sweet, I changed to the testing version and it doesn't lag anymore! Good job!

When will this be merged into a full release? I'm having the same issue, 15 FPS or lower, disconnecting one monitor doesn't help. The custom prebuilt version fixes it though.

When will this be merged into a full release? I'm having the same issue, 15 FPS or lower, disconnecting one monitor doesn't help. The custom prebuilt version fixes it though.

When will this be merged into a full release?

I hope this week or at the beginning of the next. The changes are on a review now:
https://android-review.googlesource.com/c/platform/frameworks/support/+/1535152
https://android-review.googlesource.com/c/platform/frameworks/support/+/1534675

When will this be merged into a full release?

I hope this week or at the beginning of the next. The changes are on a review now:
https://android-review.googlesource.com/c/platform/frameworks/support/+/1535152
https://android-review.googlesource.com/c/platform/frameworks/support/+/1534675

Should be fixed in 0.3.0-build146.

Should be fixed in 0.3.0-build146.

Spent so many hours finding how to improve UI performance on Ubuntu 21 with Nvidia graphic card. Tried literally everything but what does help is:
sudo nvidia-settings

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Zulu Republic

Request to be added to the showcase on nextjs.org

Name of company: Zulu Republic, GmbH
Url: https://www.zulurepublic.io
Testimonial about Next.js (optional): I don't see why anyone wouldn't use next.js. This is an example of an enterprise-level, responsive application. Produced with next.js and exported as a static site. Next.js made it infinitely easier to get up and running, and create top-level complex static applications. I use it for everything :)

Where SSR :) ?

@Popugune it’s a static site. No SSR needed.

@thisisvilla https://github.com/zeit/next-site might be a better place to ask such question, or even make a Pull Request 😉.


Add batch endpoint to edit content elements

Main goals:

Do not require multiple requests to insert and order content elements

Introduce a split function concept to support inserting content
elements between text paragraphs of a single text block content
element.

Introduce a merge function concept to join adjacent text blocks
after a content element has been deleted.

REDMINE-17429

Coverage increased (+4.0e-05%) to 99.205% when pulling 104e62e86151c196b0adc28cf4ae11ccf24c2a52 on tf:content-elements-batch into 1efae411be9e54e0068936f11a3ebbf559c9d46b on codevise:master.


Mention bs-react-intl-extractor in README

Mention bs-react-intl-extractor in README and add links to BuckleScript and Reason.

Looking great, thanks!
P.S. BTW I think there's an issue w/ your gh email -> you don't show up in contributors list.

@alexfedoseev Thanks for merging and thanks for the hint about the email address (company vs. private email...).


Loudness: fix momentary calculation

Came across this when looking into https://github.com/reaper-oss/sws/issues/1335.
current line
if (i % 2 && momentaryFilled && doMomentary) (momentaryFilled is bool)
can evaluate differently than Breeder's original line
if (i % 2 == momentaryFilled && doMomentary) (momentaryFilled is int)
e.g. when i = 0; momentaryFilled = false/0 ; doMomentary = true -> 1st line == false, 2nd line == true
With the cast to int the "unsafe conversion from bool to int" warning (https://github.com/reaper-oss/sws/pull/1215#issuecomment-545528589) could be avoided but then it could be thought if maybe better that momentaryFilled stays an int rather than casting every time.
@cfillion
What do you think?
`

:x: Build sws 260-master failed (commit https://github.com/reaper-oss/sws/commit/4e7b6b549d by @nofishonfriday)

Ah, right. I think either momentaryFilled should be reverted to an int or i % 2 converted into a boolean (i % 2 > 0).
if (i % 2 > 0 == momentaryFilled && doMomentary)

:x: Build sws 261-master failed (commit https://github.com/reaper-oss/sws/commit/4a7ff44cfa by @nofishonfriday)


Ability to modify Spinbox editor widgets with mouse drag suddenly stopped working.

Operating system or device - Godot version:
Ubuntu Linux 16.04 64bit, Godot built from git bc31be9812b165c677584a2be81a5a9bd71d8ecf
Issue description (what happened, and what was expected):
It was possible to alter the value of a Spinbox in the editor by holding mouse and dragging up and down, which was pretty handy to alter small values without having to reach for the keyboard. It suddenly stopped working after last update, and doesn't seem intentional judging from the changelogs.
Furthermore, the (rather imprecise, IMHO)"slider" widget will always pop out when the mouse is released after trying this, even if the cursor is far from the Spinbox widget when released.
Steps to reproduce:
Click over Spinbox and drag up/down, the value won't change. When the mouse button is released, the slider widget will pop out.

I can reproduce this on the current master branch too. It looks like a regression from a735573 (I had no time to check but it's the only commit that modified Tree in the last weeks).

This fixed it, and in fact it even seems to work better than before. Thanks a lot!


Add 1.0 to GitHub tags/releases

Sorry seem I completely did forget about creating a tag :disappointed:
https://github.com/bjoernricks/python-quilt/releases/tag/1.0

wow. quick turn around. and I see a new sdist is coming too .. ? ;-)
If so, I'll packaging this up for openSUSE.  They are big fans of the original.  Hopefully they like the py rewrite.

Uh cool that would be great. It wasn't intended as a rewrite. Just a verrsion with a python api :smile: I've started this project a long time ago and didn't even get to announce it at the quilt mailing list. Let me know if something isn't working etc.
Btw. do you need a new sdist (and therefore a new release) on pypi too?

Not needed atm.  I'll package based on the github tag tgz, and let you know how I go.

https://build.opensuse.org/package/show/home:jayvdb:py-new/python-python-quilt
I'll use it for a while before submitting it to the main repos.


any example about MS-DRSR use?

I need to read one or more accounts from a ntds.dit file, including secret attributes. I read that many people do it throw replication. Do you have any suggestions?

The DRSR replication is used by DCSync attack leverages the GetNCChanges method: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/b63730ac-614c-431c-9501-28d6aca91894. There are a lot of information about anatomy of DCSync attack scattered throughout the internet as it's quite popular (example: https://adsecurity.org/?p=1729). But as usual for all MSRPC-related things, it's just the tip of iceberg and hours of poking and selecting right parameters at random.
Will check on it once have some time.

Hello, @dodgyturtle! I've finally managed to check how is it working, so here is a basic sample: https://github.com/oiweiwei/go-msrpc/blob/main/examples/drsr_secrets_dump.go.


Search for MIT krb5 installation on Windows

This code was mostly copied from the python-gssapi project. The only changes were changing the name of the library and changing the formatting to make the CI happy.

I would be very reluctant on adding this as MIT krb5 for Windows supports a widely different set of APIs than what their Linux releases do. We also don't ship any wheels for Windows right now so for an end user to install this library they would require the dlls to be present anyway to build the module on Windows negating the need to search for the dll at runtime.
Ultimately before we could look into this we would need to

Add testing in CI for Windows, or at least to an extent where we can build and import the module at least
Determine if we want to create pre-built wheels for Windows
Determine if we want to ship the krb5 dlls inside our wheel or do what python-gssapi does and just have them as a dependency

Add testing in CI for Windows, or at least to an extent where we can build and import the module at least

I might look into this at some point if I can find the time.

Determine if we want to create pre-built wheels for Windows

I think this might be a good idea.

Determine if we want to ship the krb5 dlls inside our wheel or do what python-gssapi does and just have them as a dependency

I think doing the same thing as python-gssapi would be a good idea. Reasons for that are that:

If both pykrb5 and python-gssapi are used (or pykrb5 and some other library which depends on libkrb5) it would be good if they end up using the same instance of libkrb5 so that e.g. MEMORY: ccaches are shared. If pykrb5 brings its own library then either there will be two libkrb5 instances in the process (which won't share resources) or which libkrb5 instance will be used depends on the ordering of imports.
In general the user will have to install and configure krb5 anyway (for example provide a C:\ProgramData\MIT\Kerberos5\krb5.ini which contains the correct realm configuration), and then it is better to the global krb5 installation instead of installing another one.


services/cli: allow custom KytheCommands to be registered [phab:D1637]

Created by schroederc at 2017-05-12 17:25:45:

zarko commented inline (context lost during migration) at 2017-05-12 20:52:01:
nit: adds

zarko accepted this revision at 2017-05-12 20:52:01

schroederc wrote at 2017-05-12 20:54:17:
Fix typo

schroederc closed via commit 0258db394d37eab18d47d61f4ef24b2909af0caa at 2017-05-12 20:54:36


migrating to warbler_grass crate

I added the warbler grass crate as a dependency and migrated the code.
No changes to the logic in this foxtrot were made, but since I rewrote a heavy part of warbler grass, there might be some unknown changes.

Thanks!


Autocomplete prepopulation, access to form result value and $node bug

Reproduction

https://formkit.link/6ff848eb5bfd93fc49d7108bd3c6583f
https://formkit.link/37f0c23429733cd58d120b9dc7b422d3

Describe the bug
I don't really know how to describe these bugs, but they seem to be connected to each other. I included 2 playgrounds and tried to explain it. Please open the console while using to see logs.
In both I replaced getCities: async ({ search, page, hasNextPage }) with getCities: async (a, b, c, d) to see what data is available to me. In my use case the autocomplete is disabled until $value.countryId is set.
As soon as it is available, I want it to use the options func. My workaround was to use getCities: async (input) as from there I was able to use const countryId = input.node.parent.value.countryId; and this works, but now there are problems:

When changing the country at a later time, the options of the autocomplete do not refresh and the previously selected value stays. I would want this linked so when countryId changes, the result data of countryRegionCityId should be empty.
The autocomplete does not get prepopulated. As @justin-schroeder mentioned on discord "It does call your option loader with an empty string when opening, its your decision to return whatever results make sense to display for an empty string." I would love to do that, but the options func gets called immediately (while countryId is still not set & the countryRegionCityId autocomplete is still disabled)

Schema Example:
{
    $formkit: 'autocomplete',
    name: 'countryId',
    disabled: '$countries.length === 0',
    options: "$countries",
    selectionAppearance: "option",
    openOnClick: true,
    validation: 'required'
},
{
    $formkit: 'autocomplete',
    name: 'countryRegionCityId',
    validation: 'required',
    disabled: '$value.countryId === undefined',
    options: "$getCities",
    openOnClick: true
}

In order to solve this problem I tried a lot of things as above already mentioned. I then discovered what seems to be a bug with the formkit references.  One of my failed attempts was using options: "$getCities($value.countryId, $node)" as I thought, that could work, but now, every schema element is calling getCities on form creation and update.
So a summary of the bugs:

Options func dependencies not updating values
Access to $value / providing arguments for options func breaks it
Value of autocomplete does not reset when argument to options func changes (connected bug to above)
As soon as the options contains a data reference with a function and $node, every formkit schema element is calling said function

(The playgrounds, especially the second one also show reoccuring / interval errors in the console, which might be related to playground iteself)
I hope it is somehow understandable. I am sorry for not being able to provide more details. I can't debug the pro "autocomplete" code. Willing to show problem live.
Environment
• OS: Windows
• Browser: Chrome
• Version: 106.0.5249.119

@sashamilenkovic I don't need the context I need the $value access. To access values. And I also want Formkit to trigger options func after the $value changes.
In the example above (I know that it is wrong) options: "$getCities($value.countryId, $context)" I would want access to the value and the context.

@ThatDeveloper Hey! Sorry for the delay. I'm no FormKit wiz like Justin but here's my (wonky) approach to it (if I understood the problem correctly). https://formkit.link/b11ed857a6c86510c562706352e674b7

@sashamilenkovic Sadly this is not working and is not addressing the, what I think underlying bug. If you test your playground and add a debugger; to getCities you will see, that it gets called almost infinite amount of times because options: "$getCities(xxx)" was used. The default usage would be options: "$getCities" and the first and only arg would be the node context. But again, in order to repopulate the options I would have to reference that value in the options somehow as this gets called again, right?

I think a confusion here is that functions in Schema are not curried. The vue template complier takes your function and curries it automatically — in otherwords:
<script setup>
function foobar() {
}
</script>

<template>
  <button @click="foobar(123)">Click me</button>
</template>

So when we read the above what we assume should happen is on click foobar is called with an argument of 123. However — this is actually not proper javascript syntax. JavaScript would indicate that foobar is called immediate and the resulting value is the callback handler for onClick, however Vue‘s template compiler automatically does something like this:
  <button @click="(e) => foobar(123, e)">Click me</button>

Schema does not do this automatic currying for you (and it will not do so in the future either), so the important thing to understand is when you call a function using parenthesis () in schema — it calls the function immediately during the render. As you've seen, vue renders...a lot! Instead if you need to curry values into your callback, you need to create a curried function, for example:
const data = {
  makeHandler: (runtimeArgs) => () => {
    // now my `runtimeArgs` are available
  }
}

const schema = [
{
  $el: 'button',
  onClick: '$makeHandler("myFoo")'
}]

Ok — now specifically onto your problem. None of that currying stuff is really necessary. Keep in mind that the schema automatically grants access to the context object variables of your current scope. So inside a repeater’s default slot (the children) you can directly access the other values of your repeater’s group on the $value variable. You can use this to add a key to your autocomplete so when the value of your country changes, it automatically re-mounts your component, thus changing your options. This is probably the most efficient way since it does not require a render function. Here is an example:
https://formkit.link/8ee57605d02db960c470fd8f22ff668e
I have not identified a particular bug in schema when looking into this problem. If you think there still is one, feel free to re-open with a minimal playground example. 👍

Hey @justin-schroeder. Thanks for looking into this. Again, I am not good in expressing an issue in written form, please excuse me.
While I think I understand what you are explaining, there still, in my opinion, is somthing off with this.
I have modified your playground a tiny bit: https://formkit.link/a1379b9ff574c2e7bb43d910c25bf38d
& added console logs:

"Add"
Select Country
Select CountryId
Remove Country [CountryId is still present + getCities gets called 3 times with undefined]
Select country again [at this point getCities gets called 2 times with undefined]
Repeat

Sometimes immediatly, sometimes after some attempts you are greeted with this error:

And here two images of options value being still there, not rerendered:

Is hope this helps looking into it.

Since your second input has an async option loader, and we are changing the keys it is not guaranteed to still be mounted when that function is called. You can short circuit the logic if node.at('country') does not return a value: https://formkit.link/af9920e8f97da5d15f94bbc5bf599bd9
The only thing that still seems odd to me, is if you select an first value, and a second value, then change the first value, your second value still holds on to the original value (like 6) but no longer has a matching option. I'm not totally sure what a better option would be there. Intuatively you would want your input to reset to empty, but there are lots of times you would not want that behavior (like if the options just aren’t loaded yet — you wouldn't want the value set back to empty just because the value is missing in the current options).

@justin-schroeder The suggestion with not returning a value to short circuit it, does not solve the underlying issue. While it does stop the js error, I still have an invalid value at an  invalid point.
In my opinion, I think there is no question what option would be better. If I reference an input to another one, e.x. by key: '$value.country' I definitly want it empty / newly rendered (which was the point of it, see your comment above the key), etc. If I would want to preserve something there would not be the reference in the key. It is a very common case to have dependent inputs.
What could we do here? This is a important issue for me.


Configure heisenbridge entrypoint

This change will put an executable in the bin/ output of the package
that can be put into the PATH variable for easier execution.
The python -m heisenbridge call will still work, because main() will automatically be called.

LGTM, thanks!


Option to click on the Down nodes and list them separately

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
Hi everyone,
when we have a node or nodes down, these are listed in the Dashboard page under the heading Down.
To then located the nodes down we need to scroll through the left hand side of page to find the monitor in Red.
Can there be a feautre to click on the 'Down' list and view all the down nodes separately?

✔ Solution
Hi everyone,
when we have a node or nodes down, these are listed in the Dashboard page under the heading Down.
To then located the nodes down we need to scroll through the left hand side of page to find the monitor in Red.
Can there be a feautre to click on the 'Down' list and view all the down nodes separately?

❓ Alternatives
No response
📝 Additional Context
No response

Have you tried the filtering menu added by #3312 into 1.23?
I think the filtering menu already allows for this functionality
⇒ Is this issue resolved?

Thanks, 3312 looks good

Closing as resolved


get_action in EmailMethod raise AttributeError  if device has not email value

https://github.com/jazzband/django-two-factor-auth/blob/fe6c940d93a254dd7d2623c3a4752f69ea6ac1db/two_factor/plugins/email/method.py#L40
A method  masked_email will be raise AttributeError   when invoke get_action  method, If you create device instance without email .
AttributeError at /account/two_factor/ 'NoneType' object has no attribute 'split'

This is fields is optional , so that you can used user email field as alternative if device email field is null.

Yes, we should do like https://github.com/django-otp/django-otp/blob/master/src/django_otp/plugins/otp_email/models.py#L70, (device.email or device.user.email). Would you like to provide a patch, with a regression test?


[WEB] Large image sizes are missing top and right areas, with croppedBitmap

This image (7mb) which was selected from pick_image (gallery) on web.
Then cropped with croppedBitmap, has issues missing top left and right of image.
Smaller images in this case (1.1mb) and below didn't have any issues.
I could not repeat this with the example, any ideas on why this could be happening?
crop_image: ^1.0.6
Image of what is happening below.

[✓] Flutter (Channel stable, 3.19.3, on macOS 14.3.1 23D60 darwin-arm64, locale en-NZ)
• Flutter version 3.19.3 on channel stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ba39319843 (11 days ago), 2024-03-07 15:22:21 -0600
• Engine revision 2e4ba9c6fb
• Dart version 3.3.1
• DevTools version 2.31.1

This is the result from package example (I had updated code to use croppedBitmap etc)
But no issue is found here for some reason?

My first port of call would be to check whether you use the modern CanvasKit or the old HTML engine.

Sorry for late reply we are using CanvasKit


Update examples to V3 versions

Quite a few examples are still for V2, we should probably move all to V3 when its possible.

Closing as covered elsewhere.


Contract negotiation loop

Hi,
I have a problem with the sample 4.0. I fixed the issue with keyName like mentioned in the discussions. But this generated new problems because after everything gone through and the file was moved from one directory to a different, the CPU load of one core gone up to 100%.
Because I thought maybe this could be because it was not the newest version I clone the current version. This generated a complete new issue because the negotiation was running in a loop.
Consumer:

Provider:

By running the following command:
curl -X POST -H "Content-Type: application/json" -d @samples/04.0-file-transfer/contractoffer.json "http://localhost:9191/api/negotiation?connectorAddress=http://localhost:8181/api/ids/multipart"
And I added keyName to ConsumerApiController.java
Best regards,
Henrik

Thanks for finding out, here I see two problems:

the sample 04 was renamed to 04.0 but its README was not updated accordingly
on the consumer side ContractNegotiation REQUESTING state has two meanings:

ContractNegotiation created and waiting to be sent to the provider
ContractNegotiation sent to the provider and waiting for response

This causes the infinite loop, because every REQUESTING negotiation is sent to the provider, but it should not

I noticed strange behavior into the contract negotiation repositories (stores).
In fact, both of the "production" (I mean "production code", not "production ready") implementations contain this logic:
if (ContractNegotiationStates.UNSAVED.code() == negotiation.getState()) {
            if (ContractNegotiation.Type.CONSUMER.equals(negotiation.getType())) {
                negotiation.transitionRequesting();
            } else {
                negotiation.transitionRequested();
            }
        }

this is dangerous because this kind of domain logic should stay in the domain classes, in this case in ContractNegotiation probably. Otherwise every time someone implement a ContractNegotiationStore should report that logic in their implementation, and that would bring to duplication.
However my proposal is to define an additional state between UNSAVED and REQUESTING called INITIALIZED. The negotiations on consumer state in that state will be sent to provider and moved to PROCESSING. That would resolve this bug

closed by #545


multiple layers not suppoted?

Quick question, for my project, I want to add different kinds of markers. This can be done with the Marker component but iI saw in the documentation, that the layer and feature components are way more performance efficient. However, if I add a second component, it overrides the first layer.
My map component is structured like this:
<Map
 ref={mapboxMap}
 Id="mapbox"
 accessToken= accessToken
 style="mapbox://styles/mapbox/light-v10"
 containerStyle={{
  height: "75vh",
  width: "100%",
  minWidth: "75vh",
 }}
 className="map"
 center={focusPoint}
 zoom={[zoom]}
>
  <Layer type="symbol" layout={{ "icon-image": "harbor-15" }}>
    <Feature coordinates={[-0.13235092163085938,51.518250335096376]}/>
   </Layer>
   <Layer type="symbol" layout={{ "icon-image": "roadblock-15" }}>
      <Feature coordinates={[-0.13240092163085938,51.513450335096376]}/>
   </Layer>
</Map>

is there a way to still use Layers? this is just an example, both layers will be full of Markers.

you can implement 2 layers try setting 2 different id tags for each layer element.