Mock Server Startup API fails

Software versions
This has been tested on Windows as well as on macOS
General Library Versions

@pact-foundation/pact-node: 10.13.1
@pact-foundation/pact-core: 11.1.0
deasync: 0.1.22

Windows

OS: Windows 10
Node Version: v14.17.4

macOS

OS: macOS 11.4
Node Version: v16.6.1

Issue Checklist
Please confirm the following:

[x] I have upgraded to the latest
[x] I have the read the FAQs in the Readme
[x] I have triple checked, that there are no unhandled promises in my code
[ ] I have set my log level to debug and attached a log file showing the complete request/response cycle
[x] For bonus points and virtual high fives, I have created a reproduceable git repository (see below) to illustrate the problem

Description
During the evaluation of karma-pact (keep reading, it is not a karma or karma-pact issue), we stumbled across a problem: the mock server didn't become available and karma did shutdown immediately.
The reason was an exception, that we tried to reproduce in an isolated way. To do this, we've extracted the core logic and executed it without karma (or anything other besides pact).
The following code has been used:
import wrapper from "@pact-foundation/pact-core"
import deasync from "deasync"
import needle from "needle"

var pacts = [{port: 8992}];

// If pact options is object, wrap in array
if (!Array.isArray(pacts)) {
    pacts = [pacts];
}

var startingServers = [];

pacts.map(function (pact) {
    var server = wrapper.createServer(pact);
    server.start().then(function () {
        console.log('Pact Mock Server running on port: ' + server.options.port);
        // Remove current server from starting servers array
        startingServers = startingServers.filter(x => x !== server.options.port);
    }, function (err) {
        console.error('Error while trying to run karma-pact: ' + err);
    });
    // Add current server to starting servers array
    startingServers.push(server.options.port);
});

deasync.loopWhile(function () {
    return !isMockServerReady();
});

function isMockServerReady() {
    return startingServers.length === 0;
}

console.log("mock server ready: " + isMockServerReady())

needle.get("http://localhost:8992", {}, function (error, value) {
    console.log("value")
    console.log(value)
    console.log("error")
    console.log(error)
});

The application crashes and the mock server never becomes available. The reason seems to be an unhandled error somewhere in the codebase:
internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error: connect ECONNREFUSED <IP_ADDRESS>:8992
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16)

(full log further down).
This unhandled exception becomes handled through deasync and thus terminates the process. I suspect that the exception is being caused by __waitForServiceUp() or __call() in service.ts, but was unable to track the exception down.
The code has been tested with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Expected behaviour
index.js should be executed without any problems. A request to the mock server should be possible at the end.
Steps to reproduce
The project demonstrating the issue can be found here:
https://github.com/fernanfs/pact-playground
Running the example is simple:

checkout the codebase
execute npm install
run node index.js

Relevant log files
This is the output generated on Windows when running index.js:
C:\Workspace\Tools\node-v14.17.4-win-x64\node.exe C:\Workspace\ws\pact-playground\index.js
Debugger listening on ws://<IP_ADDRESS>:51885/d1abdb52-1fa6-4819-b57a-9709e94932d1
Debugger attached.
[2021-08-10 13:18:28.098 +0000] INFO (25028 on WPU8L0082869<EMAIL_ADDRESS>Creating Pact Server with options:
{"port":8992,"dir":"C:\\Workspace\\ws\\pact-playground","pactFileWriteMode":"overwrite","ssl":false,"cors":false,"host":"localhost"}
[2021-08-10 13:18:28.237 +0000] INFO (25028 on WPU8L0082869<EMAIL_ADDRESS>Removing all Pact servers.
Waiting for the debugger to disconnect...
internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error: connect ECONNREFUSED <IP_ADDRESS>:8992
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16)
    at TCPConnectWrap.callbackTrampoline (internal/async_hooks.js:131:17)
    at Function.module.exports.loopWhile (C:\Workspace\ws\pact-playground\node_modules\deasync\index.js:71:23)
    at file:///C:/Workspace/ws/pact-playground/index.js:28:9
    at ModuleJob.run (internal/modules/esm/module_job.js:170:25)
    at async Loader.import (internal/modules/esm/loader.js:178:24)
    at async Object.loadESM (internal/process/esm_loader.js:68:5)
Emitted 'error' event on ClientRequest instance at:
    at Socket.socketErrorListener (_http_client.js:475:9)
    at Socket.emit (events.js:400:28)
    at emitErrorNT (internal/streams/destroy.js:106:8)
    at emitErrorCloseNT (internal/streams/destroy.js:74:3)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
    at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:64:3)
    at Function.module.exports.loopWhile (C:\Workspace\ws\pact-playground\node_modules\deasync\index.js:70:11)
    at file:///C:/Workspace/ws/pact-playground/index.js:28:9
    [... lines matching original stack trace ...]
    at async Object.loadESM (internal/process/esm_loader.js:68:5) {
  errno: -4078,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 8992
}

This is an absolutely awesome report! Super detailed, logs included, tested in OSX and Windows and a reproducible example!? You're amazing!
I think this might be related to the very last version where needle was introduced. My guess is that needle.get is throwing this error, which isn't caught, because it's thrown from inside the promise constructor. If that's the case, it should be an easy fix.

Definite virtual hi fives @fernanfs !

Which was the last Version of pact-node which did not include needle? I'll downgrade to that version and see if that changes anything. If so, we would have a workaround in the meantime.
Thanks for your help!

Sorry, I wasn't very clear:

related to the very last version where needle was introduced.

This should have said "related to the latest release, in which needle was introduced". So, any version before 11.1.0.
Specifically, try 11.0.1 of pact-core, or 10.12.2 of pact-node.
I may have a fix for you - I'm about to release 11.1.1 of pact-core now, and if that works, I'll back-port it to pact-node.

A related aside: We have a number of challenges bringing karma-pact forward to the next version of pact-js (which will use the rust core, bringing substantial speed improvements, and also the long-overdue support for pact spec v3, which has a number of improvements around provider states, matchers etc). We're considering sunsetting both karma-pact and pact-web - I'd like to write up my thoughts on this in more detail, but to summarise quickly:
My personal view is that running API client tests through the browser encourages including UI in your pact tests, and I don't think that's something we should encourage. I see the argument for "well, this is the environment we're deploying too, so we should be testing in it", but as I understand it, modern transpilation practices largely make that argument moot (I may be wrong here - I haven't done a lot of digging on the topic). Additionally, both pact-web and karma-pact are challenging to maintain, so it's a lot of work to keep the ability to run tests in an environment that (personally) I don't really believe it.
However, on the other hand, I don't want pact to have opinions on how you write your tests. Just because it's not my personal preferred style, doesn't mean that we shouldn't support it. My personal style is not "correct" or "best practice" (even if I might enjoy claiming it is if we were arguing about testing over a beer). Also, I like the idea that pact supports doing something a little unusual - I don't know if many tools implement the ability to test actual http request/responses from karma. So it's a cool differentiator.
Anyway, if you're using karma-pact extensively and have thoughts on this, we'd love your thoughts on this issue: https://github.com/pact-foundation/pact-js/issues/626

Also github interpreted "may fix #XX" as "did fix #XX". Reopening, hopefully only for a short time.

Update: 11.1.1 does not fix this issue. Hmm.

I'm really amazed about your extremely fast feedback. Thank you!
I tested v11.1.1, unfortunately with no success:
[2021-08-11 06:29:11.358 +0000] INFO (27809 on Francoiss-MBP.fritz.box<EMAIL_ADDRESS>Creating Pact Server with options:
{"port":8992,"dir":"/Users/francois/ws-ing/pact-playground","pactFileWriteMode":"overwrite","ssl":false,"cors":false,"host":"localhost"}
[2021-08-11 06:29:11.380 +0000] INFO (27809 on Francoiss-MBP.fritz.box<EMAIL_ADDRESS>Removing all Pact servers.
node:internal/process/esm_loader:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error: connect ECONNREFUSED <IP_ADDRESS>:8992
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1142:16)
    at Function.module.exports.loopWhile (/Users/francois/ws-ing/pact-playground/node_modules/deasync/index.js:71:23)
    at file:///Users/francois/ws-ing/pact-playground/index.js:28:9
    at ModuleJob.run (node:internal/modules/esm/module_job:183:25)
    at async Loader.import (node:internal/modules/esm/loader:178:24)
    at async Object.loadESM (node:internal/process/esm_loader:68:5)
    at async handleMainPromise (node:internal/modules/run_main:63:12)
Emitted 'error' event on ClientRequest instance at:
    at Socket.socketErrorListener (node:_http_client:447:9)
    at Socket.emit (node:events:394:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
    at process.runNextTicks [as _tickCallback] (node:internal/process/task_queues:65:3)
    at Function.module.exports.loopWhile (/Users/francois/ws-ing/pact-playground/node_modules/deasync/index.js:70:11)
    at file:///Users/francois/ws-ing/pact-playground/index.js:28:9
    [... lines matching original stack trace ...]
    at async handleMainPromise (node:internal/modules/run_main:63:12) {
  errno: -61,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 8992
}

I then went on to give v11.0.1 of pact-core a shot. There is a difference in the execution, but unfortunately doesn't bring me much further. I don't see the exception, but the application hangs once the mock server is started.
The only output that I see is the following:
[2021-08-11 06:33:58.562 +0000] INFO (28168 on Francoiss-MBP.fritz.box<EMAIL_ADDRESS>Creating Pact Server with options:
{"port":8992,"dir":"/Users/francois/ws-ing/pact-playground","pactFileWriteMode":"overwrite","ssl":false,"cors":false,"host":"localhost"}

But the mock server is actually running, which I can verify with curl:
➜  ~  curl localhost:8992
{"message":"No interaction found for GET /","interaction_diffs":[]}

regarding your side note: I get your point on using karma for pact contract tests. I tend to disagree with you on that but am happy to discuss in pact-foundation/pact-js#626

I've just been bashing my head against this crash for the past hour. Debugging it seems to lead to a function that never returns :/  I started to suspect the M1 mac isn't playing nicely with deasync, so I'm switching to an intel one to eliminate that.

I'm really amazed about your extremely fast feedback. Thank you!

 It's a combination of I happened to be having an open source day, and this issue was so well written and complete that I wanted to prioritise it.

I tend to disagree with you on that but am happy to discuss in pact-foundation/pact-js#626

Awesome! Yes please!

So, I think it's hanging because of a bug in deasync: https://github.com/abbr/deasync/issues/140
I'm not sure if the uncaught exception is happening because of that, too, but if I wrap the whole __call function in service.ts in try/catch then the uncaught exception still happens. If I replace the function with return Promise.reject(new Error("OH NO")), then the promise never resolves because we're hitting that bug. Hmm.

Ok, after some further digging, I found this gem in the original project that deasync was forked from:

This repository is not maintened. deasync npm package is maintained here: https://github.com/abbr/deasync, though it's just a hack and I'd strongly recommend not to use it for anything.

:joy:
The issue of deasync not working in node 12 / 14 has a minimal repro already in the issue I linked, but no activity yet on a fix.
In the meantime, I think your use case is for karma-pact, which only used deasync because Karma didn't support async plugins. It looks like Karma supports async plugins since 4.3.0, so maybe we can rework karma-pact to work around this.

Thanks a lot for the time you've put into this. My use case is indeed primarily using karma-pact and porting it to the async plugins api seems very sensible to do so. I'll dig into that, if you didn't do so already. Maybe I can thank you by creating at least a PR for that. ;-)

Yes please! I definitely don't have the capacity to look at anything karma-pact related until after the next major pact-js release. It probably needs a number of other quality of life updates, too - I would guess it has at least some outdated dependencies.

If you start looking at it and have any questions (or just want a general overview of anything), you're very welcome to pm me on slack (or ask in #pact-js-development). If you're not already in the pact-foundation slack, you should be able to generate yourself an invite here: https://slack.pact.io/

Closing this, because thanks to @fernanfs (https://github.com/pact-foundation/karma-pact/pull/27)  karma-pact v3.0.0 no longer uses deasync, and it looks like this is a deasync issue rather than a pact issue.


The parameter "kherge_uuid.uuid_factory.global" must be defined.

Hello,
when going live i had this message, preventing kernel to boot....
The parameter "kherge_uuid.uuid_factory.global" must be defined.

I got the same. Staging environments work great, go prod and we now 500 with kherge_uuid.uuid_factory.global must be defined


Clarify predicate or remove it from the spec

There have been several issues describing concerns with predicate, such as the following:

https://github.com/decentralized-identity/presentation-exchange/issues/173
https://github.com/decentralized-identity/presentation-exchange/issues/175

Despite being closed, it doesn't seem like the concerns were addressed. I have the following additional concerns:

What does predicate=preferred mean in terms of evaluating inputs?
My guess is that it would be a means to select among candidate inputs, but that's not called out in the spec. 4.3.3 simply says the following:

If the predicate property of the field entry is present, a boolean value should be returned rather than the value of the Field Query Result. Calculate this boolean value by evaluating the Field Query Result against the JSON Schema descriptor value of the filter property.

Because there is no discussion of comparisons among candidate inputs, I'd conclude I should just treat predicate=preferred as a no-op at this level.

There are no examples in the spec demonstrating the predicate field
Discussion of various proof forms related to predicate occupies a lot of space in the spec (see screenshot), but they are not clearly tied in to the rest of the spec/examples (see concerns 1+2). It would be nice to clean up the spec by removing all of this.

My view is that predicates are incredibly important for privacy reasons, whether the VC supports ZKP or not.  It allows the verifier to provide to the holder requirements for whether a verifiable presentation will be accepted for a given business purpose.  That helps the holder decide if they will respond to the request or not. Not responding to a request that will not be accepted is privacy preserving.
The ability to respond to a predicate with a ZKP is powerful, but the value is very much still there even without ZKPs. Further, AFAIK ZKP predicates are quite limited, whereas a general purpose expression (as I believe is supported in PE, but not certain), is very powerful.

The concerns I raise are the very practical ones of creating a testable spec.

I would agree that clarification of both filter and predicate need review and clarification.
It appears to me that filter (not predicate) is what I referenced above in my comment about guidance from the verifier to the holder/prover about what will be accepted for a given use case.  However, it appears from my read of the spec that the filter expression value should be included in the presentation returned to the verifier.  Is that the intention?  If so, the value will not be signed by the Issuer, so it is not verifiable. I would discourage that approach. For filters, I would think that verification is only possible if the prover includes the input claims (signed) to the expression, and the verifier verifies the input claims and then executes the expression to see if it meets the filter condition.
Further, correcting my assumption about predicates, I now assume that they are intended to be ZKP predicates (if so, let's make that explicit), and usable only if the VC format supports ZKP predicates. Did I get that right?  When used, a claim for the predicate would be added as a claim in the presentation (unlike filters), with its value derived from the expression and verifiable based on the ZKP predicate algorithm.
Is that the intention?

to discuss Feb 10 2022: close or rephrase?


bug: memory leak with nested abstract states

Type: bug
Platform: all
createView will be invoked every time a state, which has two preceding abstract parent states, is activated.
reproducing steps:

ionic start abstractStates

change state tab.dash to tab.dash.default where both tab and tab.dash are abstract states, as below:
 	.state('tab.dash', {
 		abstract: true,
 		views: {
 			'tab-dash': {
 				template: "<ion-view><ion-nav-view></ion-nav-view></ion-view>"
 			}
 		}
 	})

 	.state('tab.dash.default', {
 		url: '/dash',
 		views: {
 			'': {
 				templateUrl: 'templates/tab-dash.html',
 				controller: 'DashCtrl'
 			}
 		}
 	})

ionic serve and set an breakpoint at line 42206 inside ionic.bundle.js, in createView

switch between the first two tabs, and you can see the breakpoint is hit every time you switch from tab 2 to tab 1, and if you set an expression viewHistory.views, you can see that the views keep growing, as shown below:

Greetings @michael8090!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Thanks, while we work on a fix, disabling the cache for that page should prevent a leak.
$ionicConfigProvider.views.maxCache(0);

or
$stateProvider.state('myState', {
   cache: false,
   url : '/myUrl',
   templateUrl : 'my-template.html'
})

@perrygovier Thanks for the quick response, but it seems the workaround doesn't fix the leak. I tried disabling the caches both globally and just for that state, but the leak is still there.

I wouldn't call this a memory leak because the way you've constructed the state and template is that you're navigating to another view.

Hi @adamdbradley, it's correct that I'm navigating between two views. But why does navigating between two views result in a constantly growing of the views?

if the growing views are the cached views, as we're navigating between two views, it seems more reasonable that only one cached view is needed in the navigating. So the views should not grow that way.

when we don't add a parent state for tab.dash(from "tab.dash" to "tab.dash.default"), the views don't grow. It doesn't make much sense if we assume it's the navigating action who makes the views grow.


BUG: card goes out the section on hovering

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Hii @arghadipmanna101
On hovering the card goes out of the section and the photo gets cut off I want to fix this issue
Can you please assign me this issue under gssoc24.

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hii @arghadipmanna101
I have understood the problem. I would like to work on this issue under GSSOC'24 contributor.
Please assign this issue to me.


awsDynamoDBStoragePlugin is not supported but added to amplifyconfiguration.json

Is your feature request related to a problem? Please describe.
When i add Storage Category and choose to use DynamoDB as storage, there is no corresponding Amplify Plugin for me to use.
Describe the solution you'd like
ignore and log unknown configuration keys during Amplify.configure()
Describe alternatives you've considered
Possibly remove the option to add dynamoDB as a storage plugin when in an amplify iOS project.
Additional context
Add any other context or screenshots about the feature request here.
This was added as part of the amplifyconfiguration.json work in CLI
https://github.com/aws-amplify/amplify-cli/blob/eacaa96038ce109e8491bf9cdabb6ac8de3c02d6/packages/amplify-frontend-android/lib/amplify-config-helper.js#L147
amplifyconfiguration.json
{
    "UserAgent": "aws-amplify-cli/2.0",
    "Version": "1.0",
    "storage": {
        "plugins": {
            "awsDynamoDbStoragePlugin": {
                "partitionKeyName": "id",
                "region": "us-west-2",
                "arn": "arn:aws:dynamodb:us-123-2:123123123123:table/123123123123-dev",
                "streamArn": "arn:aws:dynamodb:us-123-2:123123123123123:table/123123-dev/stream/2020-06-10T23:21:25.860",
                "partitionKeyType": "S",
                "name": "dynamoc1a123123b-dev"
            }
        }
    }
}

awsconfiguration.json
{
    "UserAgent": "aws-amplify/cli",
    "Version": "0.1.0",
    "IdentityManager": {
        "Default": {}
    },
    "DynamoDBObjectMapper": {
        "Default": {
            "Region": "us-west-2"
        }
    }
}

when i run this for JS react, aws-exports.js
const awsmobile = {
    "aws_project_region": "us-west-2",
    "aws_dynamodb_all_tables_region": "us-west-2",
    "aws_dynamodb_table_schemas": [
        {
            "tableName": "dynamo81236-dev",
            "region": "us-west-2"
        }
    ]
};

commands i ran
> amplify add storage
? Please select from one of the below mentioned services: NoSQL Database
? Please provide a friendly name for your resource that will be used to label this category in the project: dynamo80123123
? Please provide table name: dynamo8123123
? What would you like to name this column: id
? Please choose the data type: string
? Would you like to add another column? Yes
? What would you like to name this column: name
? Please choose the data type: string
? Would you like to add another column? No
? Please choose partition key for the table: id
? Do you want to add a sort key to your table? No
? Do you want to add global secondary indexes to your table? No
? Do you want to add a Lambda Trigger for your Table? Yes
? Select from the following options Create a new function
Successfully added resource dynamo8234f6Trigger8b6e691d locally
Successfully updated resource dynamo80234f6Trigger8b6e691d locally
? Do you want to edit the local dynamo802348f6Trigger8b6e691d lambda function now? No
Successfully added resource dynamo8062346 locally

> amplify push

discussed with @palpatim, paraphasing here

Amplify iOS configuration intentionally fails on missing keys to prevent developer from adding category but forgetting to configure plugin.
why is CLI adding this in? how is this used in other platforms? amplify add storage and choose dynamoDB for JS appears to not add similar configuration
workaround: customer can remove it from config
possibly remove this configuration from being added from the CLI. then CLI changes should include not being able to choose dynamoDB as the storage type

i've asked customer to clarify their use case on discord to confirm if there is a use case that matches this: "i added category X but don't want to add a plugin because .."


.NET Maui Blazer Hybrid error targeting Android

I have a .NET Maui Blazer Hybrid multiplatform solution that uses Whisper.net.
My app targeting the Windows architecture works with no problem.  However, I am having issues targeting Android on a virtual emulator.  It compiles and runs on the Android emulator up until Whisper.net is invoked to load the model.  Here is my code:
    private void LoadModel(string modelFilePath)
    {
        if (!File.Exists(modelFilePath))
        {
            throw new FileNotFoundException($"Model file not found: {modelFilePath}");
        }

        var bufferedModel = File.ReadAllBytes(modelFilePath);
        _factory = WhisperFactory.FromBuffer(bufferedModel);
    }

An exception is thrown on that last line:
_factory = WhisperFactory.FromBuffer(bufferedModel);
Here is the error:
[monodroid-assembly] open_from_bundles: failed to load assembly SlideService.dll
Loaded assembly: /data/data/com.companyname.slideguimauiblazor/files/.override/SlideService.dll
[monodroid-assembly] open_from_bundles: failed to load assembly Whisper.net.dll
Loaded assembly: /data/data/com.companyname.slideguimauiblazor/files/.override/Whisper.net.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly NAudio.Wasapi.dll
[monodroid-assembly] open_from_bundles: failed to load assembly NAudio.Core.dll
Resolved pending breakpoint at 'SlideService.cs:43,1' to void SlideService.SlideService.LoadModel (string modelFilePath) [0x00001].
Resolved pending breakpoint at 'SlideService.cs:49,1' to void SlideService.SlideService.LoadModel (string modelFilePath) [0x00027].
Resolved pending breakpoint at 'SlideService.cs:48,1' to void SlideService.SlideService.LoadModel (string modelFilePath) [0x00020].
Loaded assembly: /data/data/com.companyname.slideguimauiblazor/files/.override/NAudio.Wasapi.dll [External]
Loaded assembly: /data/data/com.companyname.slideguimauiblazor/files/.override/NAudio.Core.dll [External]
[monodroid-assembly] Shared library 'libggml-whisper' not loaded, p/invoke 'ggml_log_set' may fail
[monodroid-assembly] Shared library 'libggml-whisper' not loaded, p/invoke 'ggml_log_set' may fail
...
[chromium] [INFO:CONSOLE(1)] "libggml-whisper
[chromium]    at Whisper.net.Logger.LogProvider.InitializeLogging(INativeWhisper nativeWhisper)
[chromium]    at Whisper.net.WhisperFactory.<>c.<.cctor>b__13_0()
[chromium]    at System.Lazy1[[Whisper.net.LibraryLoader.LoadResult, Whisper.net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]].ViaFactory(LazyThreadSafetyMode mode) [chromium]    at System.Lazy1[[Whisper.net.LibraryLoader.LoadResult, Whisper.net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]].ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
[chromium]    at System.Lazy1[[Whisper.net.LibraryLoader.LoadResult, Whisper.net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]].CreateValue() [chromium]    at System.Lazy1[[Whisper.net.LibraryLoader.LoadResult, Whisper.net, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]].get_Value()
[chromium]    at Whisper.net.WhisperFactory.CheckLibraryLoaded()
[chromium]    at Whisper.net.WhisperFactory..ctor(IWhisperProcessorModelLoader loader, Boolean delayInit)
[chromium]    at Whisper.net.WhisperFactory.FromBuffer(Byte[] buffer, Boolean delayInitialization)
[chromium]    at SlideService.SlideService.LoadModel(String modelFilePath) in C:\workspace\Slide.net\SlideService\SlideService.cs:line 49
[chromium]    at SlideService.SlideService..ctor(String modelFilePath) in C:\workspace\Slide.net\SlideService\SlideService.cs:line 32
[chromium]    at SlideGuiMauiBlazor.Components.Pages.Slide.OnInitializedAsync() in C:\workspace\Slide.net\SlideGuiMauiBlazor\Components\Pages\Slide.razor:line 102
[chromium]    at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()", source: https://<IP_ADDRESS>/_framework/blazor.webview.js (1)
[HWUI] Davey! duration=129668ms; Flags=0, FrameTimelineVsyncId=9685, IntendedVsync=147139655002, Vsync=276789649816, InputEventId=687100588, HandleInputStart=276801611200, AnimationStart=276801625100, PerformTraversalsStart=276803055800, DrawStart=276803178300, FrameDeadline=147172988334, FrameInterval=276800875900, FrameStartTime=16666666, SyncQueued=276803416800, SyncStart=276803489100, IssueDrawCommandsStart=276803581900, SwapBuffers=276807275200, FrameCompleted=276808085800, DequeueBufferDuration=13700, QueueBufferDuration=383300, GpuCompleted=276807940400, SwapBuffersCompleted=276808085800, DisplayPresentTime=0, CommandSubmissionCompleted=276807275200,
Here is a screen shot of the dependencies in my project:

Here is the .csproj file for my project:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <!-- Add multiple frameworks for cross-platform support -->
    <TargetFrameworks>net8.0;net8.0-android;net8.0-ios</TargetFrameworks>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UseMaui>true</UseMaui>
    <!-- Required for MAUI Essentials -->
  </PropertyGroup>

  <ItemGroup>
    <!-- Add dependencies -->
    <PackageReference Include="NAudio" />
    <PackageReference Include="Microsoft.Maui.Essentials" />
    <PackageReference Include="Whisper.net" />
  </ItemGroup>

  <ItemGroup>
    <PackageVersion Update="Whisper.net" Version="1.7.3" />
  </ItemGroup>

</Project>

Hello @StevePGLS ,
Based on the .csproj listed above, it seems that you're missing the runtimes package. Please, add Whisper.net.Runtime package with the same version as Whisper.net to ensure that you'll have the native libraries in your Maui Blazor App.

Thanks for the reply!!
So, I added in the Whisper.net.Runtime.  But it throws the same exception at the same place.  I have provided the log if that helps.  Your help is much appreciated.
Slide_log_16Dec2024.log

Will Whisper.net work when developing .NET MAUI targeting Android?  This issue logged here suggests that I may be doomed.
https://github.com/sandrohanea/whisper.net/issues/36#issuecomment-1537154189

OK.  That worked!!!  Thank you so much Sandro!!
BUT... this worked because I'm using the Nuget packages for Whisper.net and Whisper.net.Runtime.  What I really need to do is modify Whisper.net.  In fact, I already have done that.  I had no problem doing this targeting Windows without Whisper.net.Runtime.  It would fail on Android.
So, now that I'm am modifying Whisper.net, I'm adding it as a project reference to SlideService.  What kind of reference should Whisper.net.Runtime be and from where?  Surely, I'm not using Nuget for that, right?
SlideGuiMauiBlazor:

SlideService.net (project reference)
Whisper.net.Runtime (Where do I get this from?)

SlideService:

Whisper.net (project reference)
Whisper.net.Runtime (From where?)

Thanks!

You can use the Whisper.net.Runtime from the package (nuget), they are not linked statically.
The only think that you need to be carefull will be when newer versions will appear to sync your fork of Whisper.net (project reference) if you want to upgrade Whisper.net.Runtime as it can grow with breaking changes (even between minor version bump) if Whisper.cpp will introudce new contracts.
If you belive that some changes are required in Whisper.net you can also create some PR so you don't need to keep it as a fork that always require you to keep it up to date.

Is there are way I can know which version Whisper.net.Runtime that I should use based on when I did a "git clone" of Whisper.net? Like is there some version file in the project?

There is this file that shows the version that is currently in development:
https://github.com/sandrohanea/whisper.net/blob/1c1ff13e5c47958de661005849432deb01bfa7e9/Whisper.net/Whisper.net.csproj#L7C5-L7C29
However, the best way to have a sync version is to always sync Whisper.net with a released tag (e.g. https://github.com/sandrohanea/whisper.net/tree/1.7.3)
This way you know that the tag represents the released version, and it is tested with the equivalent Whisper.net.Runtime

Here you can find the tags and their commits for Whisper.net: https://github.com/sandrohanea/whisper.net/tags

Do you know how to fix these errors?  A lot of them go away after manually deleting the \bin and \obj directories (clean doesn't always do it).  I still get this one:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\workspace\Slide.net\Whisper.net\bin\Debug\net8.0-android\android-x64\Whisper.net.dll'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at Microsoft.Android.Build.Tasks.Files.CopyIfChanged(String source, String destination) in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/Files.cs:line 126
at Xamarin.Android.Tasks.MonoAndroidHelper.CopyAssemblyAndSymbols(String source, String destination)
at Xamarin.Android.Tasks.LinkAssembliesNoShrink.CopyIfChanged(ITaskItem source, ITaskItem destination)
at Xamarin.Android.Tasks.LinkAssembliesNoShrink.RunTask()
at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 25

Do you know how to fix these errors? A lot of them go away after manually deleting the \bin and \obj directories (clean doesn't always do it). I still get this one:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\workspace\Slide.net\Whisper.net\bin\Debug\net8.0-android\android-x64\Whisper.net.dll'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost) at Microsoft.Android.Build.Tasks.Files.CopyIfChanged(String source, String destination) in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/Files.cs:line 126 at Xamarin.Android.Tasks.MonoAndroidHelper.CopyAssemblyAndSymbols(String source, String destination) at Xamarin.Android.Tasks.LinkAssembliesNoShrink.CopyIfChanged(ITaskItem source, ITaskItem destination) at Xamarin.Android.Tasks.LinkAssembliesNoShrink.RunTask() at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 25
I'm using Whisper.net.Runtime version 1.7.1 because I cloned Whisper.net back in October.

Unfortunately, I don't know why you received that one but looks like some issue with the Maui build when referencing that project

Sandro, again thank you so much for your help.  I am still having issues getting this to work with a compiled modified version of Whisper.net targeting Android on an emulator in Windows.  I have no problem getting this setup to work targeting Windows.
Do your examples have one that is a .NET Maui project that works on Android?  I looked and didn't see one.

As I understand it, the error I was getting above to do with .NET Maui not correctly generating Whisper.net.dll for the correct architecture.  It gets the platform (Android) correct, but not the correct architecture (x86_x64).


load pdb file if available for linenumbers in stacktrace

if we want linenumbers in the stacktrace of a exception/Environment.StackTrace or StackTrace,GetFrame,... we have load the pdb files
changed method DotNetCorePlugins\src\Plugins\Loader\ManagedLoadContext.cs LoadAssemblyFromFilePath:187

i am ready. but i do not known what todo abaot the whitespace problem.

Ok i think pull request is ready

Thanks!


Optimizations to argument-based event interception

For code that has a lot of matching, ie.
on[SomeEvent](1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
  11, 12, 13, 14, 15, 16, 17, 18, 19, 20) { msg =>
  ...
}

It should be translated to something like
val setMatch$one = Set(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  15, 16, 17, 18, 19, 20)
on[SomeEvent] { msg =>
  if(setMatch$one.contains(msg.getId)) {
    ...
    msg.terminate
  }
}

By bootstrap.scala
Is it worth the time to do this? Is it even possible? Until the following questions are answered, this issue will remain experimental

Event arguments are actually represented in code with the new event model, so this is definitely possible. You could change the ImmutableList to an ImmutableSet (or whatever else) depending on the argument count and type. Is it worth it though?

The performance difference between using a Set and List for arguments < 10 elements is negligible. Argument counts exceeding that is an indication of bad design and should be avoided anyway. This can be closed


[NPCMapLocations] Hide minimap in dungeons automatically

I wasn't even aware that the game shows the level number in the top left corner of the screen when you are in the Mines, Skull Cavern etc. because my minimap was hiding the display.
It would be great to have an option which automatically hides the minimap when in dungeons in general (it's rather useless there, anyway).

EDIT
OK, I just saw there is the nifty option MinimapExclusions which basically does just that.

It would still be good to know what the MinimapExclusions entry would have to look like for all dungeons, though,

@NightFright2k19 This will exclude all mines and the volcano dungeon:
"MinimapExclusions": [ "Mines", "SkullCavern", "VolcanoDungeon" ],


It should be a loader while clicking load more button on the category page.

Describe the bug
On the category page, there should be a loader while clicking on the load more button.
Pre-Condition

More than 12 products should be listed in a single category.

To Reproduce
Steps to reproduce the behavior:

Go to 'Shop'
Click on 'Open Category'
Scroll down to 'Load more button'
Click on the Load More button
See the error

Expected behavior
While clicking the load more button it takes a bit of time so here should be shown loader.
Screenshots
Here

Now, Improvement added. so I am closing this issue.
And I have attached a screenshot Here, for future reference.


Consider removing docker-java as a public API dependency

Not stale, but we may not need it since we refactored docker-java and extracted their public API as a separate artefact that made it much easier to maintain


Added web interface for cue list notes live editing.

Hi, @mcallegari
I added this PR for web interface of cut list notes live editing.
Please review it and give me feedback.

coverage: 31.953% (-0.005%) from 31.958%
when pulling 37beeaeac2a2b3e3950bd5579afe962e18bcc9bd on Binary-Vanguard-12138:cuelist_note_live_edit
into 09bd20f746c9f23865e51cc1f1ee48f1b6b5ea42 on mcallegari:master.

I just checked this one. Notes editing is OK but selecting a step from web and hitting play starts from the first element instead of from the selected one.
Not sure if this is because of the change discussed above or if it ever was like this but it needs to be fixed.
Can you please check?

@mcallegari Hi, I reverted setCueIndex to enableCue. Please review it again.


Is this the best/recommended way to get all customData for RSS feed?

Docs enhancement suggestion & Finding the best way to get multiple customData values
● Docs enhancement suggestion: Strictly use customData parameter to get custom parameter values other than predefined ones
I was trying to create the RSS feed for my blogs using this example mentioned in Astro docs. I encountered an interesting thing, which can be added to the documentation for beginners. Like, for me, I was working with an RSS feed for the first time, and I had no clue that you need to use customData parameter strictly to get parameter values other than the predefined parameters (title, link, guid, description, pubDate and content) as in most cases (as many as I encountered) customData can be replaced with someones own customVariable. So, I guess if we can add a comment something similar to this in the Astro docs, it will be a lot more easier to follow.
● Best/recommended way to get all customData with customized rendering
1) To get all the results in one
 tag-
customData: `${sanitizeHtml(marked.parse(blog.data.subtitle + blog.data.duration))}`

The result will be like the below-

“If It Isn’t on Google, It Doesn’t Exist” 🤷♂🤷♂🤷♂⏱ 9 Mins

2) To get a custom result in different
 tags with some string injection-
customData: `${[sanitizeHtml(marked.parse("Subtitle: " + blog.data.subtitle)) + sanitizeHtml(marked.parse("Duration: " + blog.data.duration))]}`

The result will be like the below-

Subtitle: “If It Isn’t on Google, It Doesn’t Exist” 🤷♂🤷♂🤷♂

Duration: ⏱ 9 Mins

I tried passing the array for all the data and then sanitizing it (for 2nd process). But got no luck in that - produced an error. So, if anyone comes up with a better way to reproduce the same customized result, he/she is very much welcome. As for now, this much I have.
P.S.- Thanks to @sarah11918 for pointing me out the possible way to get the desired result.

Yes, I think more guidance on using customData makes sense!
I think it would be great if people want to figure out the most straightforward way to do this so that it's easy for people to follow.
Anyone have thoughts on what we could add to the existing RSS page that would be helpful but not overwhelming? Is anyone doing anything like this with their own RSS feeds? https://docs.astro.build/en/guides/rss/

Validation of RSS Feed with customData
The Problem
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
import sanitizeHtml from 'sanitize-html';
import { marked } from 'marked';
import { formatBlogPosts } from '../../../assets/js/utils'

export async function get(context) {
    const allBlogs = await getCollection("blogs");
    const formattedBlogs = formatBlogPosts(allBlogs);
    return rss({
        xmlns: { atom: "http://www.w3.org/2005/Atom" },
        title: 'Aritra Roy | Blogs',
        description: 'I\'m a Theoretical Computational Chemist & Algorithm Enthusiast from India. If you subscribe to this RSS feed you will receive updates and summaries of my new posts about computational chemistry, programming and stuff.',
        site: context.site,
        author: "Aritra Roy",
        commentsUrl: "https://github.com/aritraroy24/astro-portfolio-comments/discussions",
        source: {
            title: "Aritra Roy | Blog RSS Feed",
            url: "https://invalid-rss-hosted-styled.netlify.app/tutorial/blogs/blog-rss.xml"   // Change the URL to your RSS feed URL, otherwise you will encounter another error at the time of RSS validation
        },
        items: formattedBlogs.map((blog) => ({
            title: blog.data.title,
            description: blog.data.description,
            pubDate: blog.data.pubDate,
            link: `/tutorial/blogs/${blog.slug}`,
            categories: ["Computational", "Chemistry", "Research", "PhD", "Post-doc", "CompChem", "Programming", "Coding", "Technology", "Update"],
            content: `${sanitizeHtml(marked.parse(blog.body))}`,
            customData: `${[sanitizeHtml(marked.parse("Subtitle: " + blog.data.subtitle)) + sanitizeHtml(marked.parse("Duration: " + blog.data.duration)) + sanitizeHtml(marked.parse("Tags: " + blog.data.tags))]}`
        })),
        customData: `<atom:link href="https://invalid-rss-hosted-styled.netlify.app/tutorial/blogs/blog-rss.xml" rel="self" type="application/rss+xml" />`, // change the URL to your RSS feed
        stylesheet: '/rss/blog-rss-styles.xsl',   // or commenting out the style to see raw XML data
    });
}

The above code [consider content & customData parameters of the items mainly] works fine without producing any error at the build time (both styled and unstyled versions) screenshot of the terminal with the build command and using a style.xsl I can see the customised data on the localhost or 'invalid-rss-hosted-styled.netlify.app/tutorial/blogs/blog-rss.xml'. Consider attached screenshot-
Screenshot of the styled RSS feed page of the invalid feed
However,
when using an RSS validator like W3C Feed Validation Service, it gives an error like below-
Screenshot of the error from W3C Feed Validation Service for styled RSS feed
For the unstyled version also, the validation error is the same-
Screenshot of the error from W3C Feed Validation Service for unstyled RSS feed
Root Of The Problem
If we carefully observe the unstyled RSS feed, we can see the
...
 tags are outside of the <content> element (which is performing similar work to the  tag in HTML) for each item. Take a look at the marked region [for one element] of the screenshot from the unstyled RSS feed page-
Screenshot of the unstyled RSS feed page of the invalid feed
The Solution
It is understandable that anyhow we have to bring the
...
 tags inside of the <content> element. To do so, we can inject our customData by adding those inside the content tag using ES6 template literals. Take a look at the following code [consider the content parameter of the items mainly]-
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
import sanitizeHtml from 'sanitize-html';
import { marked } from 'marked';
import { formatBlogPosts } from '../../../assets/js/utils'

export async function get(context) {
    const allBlogs = await getCollection("blogs");
    const formattedBlogs = formatBlogPosts(allBlogs);
    return rss({
        xmlns: { atom: "http://www.w3.org/2005/Atom" },
        title: 'Aritra Roy | Blogs',
        description: 'I\'m a Theoretical Computational Chemist & Algorithm Enthusiast from India. If you subscribe to this RSS feed you will receive updates and summaries of my new posts about computational chemistry, programming and stuff.',
        site: context.site,
        author: "Aritra Roy",
        commentsUrl: "https://github.com/aritraroy24/astro-portfolio-comments/discussions",
        source: {
            title: "Aritra Roy | Blog RSS Feed",
            url: "https://valid-rss-hosted-styled.netlify.app/tutorial/blogs/blog-rss.xml"
        },
        items: formattedBlogs.map((blog) => ({
            title: blog.data.title,
            description: blog.data.description,
            pubDate: blog.data.pubDate,
            link: `/tutorial/blogs/${blog.slug}`,
            categories: ["Computational", "Chemistry", "Research", "PhD", "Post-doc", "CompChem", "Programming", "Coding", "Technology", "Update"],
            content: `${[sanitizeHtml(marked.parse(blog.body)) + sanitizeHtml(marked.parse("Subtitle: " + blog.data.subtitle)) + sanitizeHtml(marked.parse("Duration: " + blog.data.duration)) + sanitizeHtml(marked.parse("Tags: " + blog.data.tags))]}`,
        })),
        customData: `<atom:link href="https://valid-rss-hosted-styled.netlify.app/tutorial/blogs/blog-rss.xml" rel="self" type="application/rss+xml" />`,
        stylesheet: '/rss/blog-rss-styles.xsl',
    });
}

Now if we take a look at the styled RSS feed page that is the same as the previous-
Screenshot of the styled RSS feed page of the valid feed
If we check the RSS feed URL using W3C Feed Validation Service for both styled and unstyled RSS feed pages, we get a validation success message like the below-
Screenshot of the successful validation message from W3C Feed Validation Service for styled RSS feed
Screenshot of the successful validation message from W3C Feed Validation Service for unstyled RSS feed
Finally, if we take a look at the unstyled RSS feed page, we can see the
...
 tags are already inside of the <content> element [marked section (for one item) in the following screenshot]-
Screenshot of the unstyled RSS feed page of the valid feed

This way we can include customData inside the RSS feed with an RSS feed validation.
However, the original question in this issue "Is this the best/recommended way to get all customData for RSS feed?" is still valid.

@tony-sull, There are several points here-

at first I was trying to use anyVariable instead of using customData, as for most of the cases any customData can be replaced with one's own data.  But, it took me a while to understand with RSS, you have to strictly use customData. I thought if we can specify that in the docs, it would be easier for beginners.
Discussing if there is any better way to inject those extra HTML data into the feed without using all the template literals and custom markdown parsing. (proposed by @sarah11918 )
I did the second comment two days later of the initial opening of the issue as soon as I realized that I have to put those HTML data inside the  content property to have a valid RSS feed. I did the long comment if any person finds it helpful while injecting custom HTML data into the RSS feed.

All great info, thanks!  We can definitely add more details around what customData and the other properties do and when to use them.
The general use case of using, and potentially modifying, raw HTML in the feed is always an interesting one.  It has a few limitations related to how the pages are built and bundled, but maybe there's something we can do there to improve that use case a bit if its pretty common for Astro users to want HTML there 🤔

Sounds like we should clarify customData slightly here.
customData expects a ready-formatted XML string, so we should probably

Remove customData from the content collection example as it’s unlikely you’re writing XML in your content frontmatter
Clarify the wording under the “Generating items” heading to underline that this property expects XML

Happy to receive a PR for this! Or if someone has a blog post for how to set this up in more detail, we’d be happy to link to it as a community recipe.

Should I write a blog on the details similar to this post example?

If you like, sure! If it's published somewhere it makes it easy for us to link to.

Great. I'll write one tomorrow then 😊.

@delucis, sorry for taking almost a week. I was busy with my work. However, I have written one today and here is the link -
https://aritraroy.live/tutorial/blogs/2023/how-to-send-any-data-to-rss-feed
Please take a look and let me know about your thoughts.

Closing this issue, but if you'd like to PR your blog post to the Community Recipes page, please do!  🚀


Expicitly send Zigbee "Turn On" command after "move_to_level_with_on_off" command

Description:
Currently, light.turn_on service turns on dimmable ZHA lights by issuing "move_to_level_with_on_off" command to cluster 0x0008 -- Level Control. Per ZCL Specs section <IP_ADDRESS>.5, the light is supposed to turn on, if the brightness level is increased. Some dimmable lights ignore this provision and turn on the light upon receiving "move_to_level_with_on_off" regardless of the new level, but not 45857GE Zigbee in-wall smart dimmer, which will switch on the lights with "move_to_level_with_on_off" only if the new level is greater than the current/last one.
This commit changes behavior, so light.turn_on service always sends "on" command for dimmable lights/switches, after issuing "move_to_level_with_on_off" command. For dimmable lights which switch on with "move_to_level_with_on_off" regardless of the level, this change effectively does nothing, since the light will be already on. For dimmable lights which won't switch on upon "move_to_level_with_on_off" (45857GE) it switches the light on specifically after setting the desired level.
Related issue (if applicable): fixes #12813
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:

[X] The code change is tested and works locally.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[n/a] New dependencies have been added to the REQUIREMENTS variable (example).
[n/a] New dependencies are only imported inside functions that use them (example).
[n/a] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[n/a] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Hi @Adminiuga,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

CC @rcloran

I’m not sure whether we should do this or not. We may break behavior on devices which treat turn on as turn on to 100%, but hard to know without putting it out there.
I also have a branch of zigpy that handles quirky devices where you could implement the turn on along with the _with_on_off commands. Ideally I’d like you to wait for that, but I have no promises on completion. If you want to try it out and implement a CustomDevice for this device, my branch is at https://github.com/rcloran/zigpy/tree/quirks.. I haven’t tried a CustomDevice that overrides a command yet, so feedback on the API would be welcome.

I'm going to argue that the devices which turn on to 100% on "On" command should be treated as "quirky devices", as per specifications, shouldn't the lights go to "OnLevel" (attribute 0x0011) Level upon receiving On command, unless "OnLevel"==255 and in this case device should set level accordingly to "CurrentLevel" (attribute 0x0000) upon "On" command?
And while not representative, I could confirm this behavior testing 45857GE, Sylvania A19 color bulbs and Sylvania BR30 bulbs, although the BR30 are coming up as "Ledvance BR30 RGBW".

in my previous post I was referring to the section <IP_ADDRESS>.1 (and table 3-51) of the (ZCL Specs)[http://www.zigbee.org/~zigbeeor/wp-content/uploads/2014/10/07-5123-06-zigbee-cluster-library-specification.pdf] which defines: "Actions on receipt for On/Off commands, when associated with Level control"

Command
Action On Receipt

On
Temporarily store CurrentLevel.  Set CurrentLevel to the minimum level allowed for the device. Move CurrentLevel to OnLevel, or to the stored level if OnLevel is not defined, over the time period OnOffTransitionTime.

and "OnLevel" is considered defined when it is "Implemented and not 0xFF".

@rcloran could you make a decision if we should move forward or close this PR?

BTW, in GE ZigBee Lighting Switch 45856GE improperly detected @kdjordjev is reporting success
@kjdordjev, do you have any other Zigbee lights in your network, beside 45857GE? Any ill effects after applying this fix?

@Adminiuga
I have only this zigbee light and a motion detector, everything else is zwave.
I had two problems:

Light did not turn on.
I had to apply the fix described https://github.com/home-assistant/home-assistant/issues/11847.
Basically forced TurnOn command after changing the brightness. It works flawlwsly

Light did not update status on manual operation of the switch
I had set the def should_poll(self) property to True.
Now it updates after some delay

I suggest you move forward with turning On after brightness command. In my view should not cause issue, as the light should return to "current level".
Also it will be good to have  the polling setup some other way through a config option, rather than me editing the code and using custom component for this (probably there is a way to do it but i am not aware of this)

When is async_update() called? Is it called only when should_poll() returns True? In this case it doesn't make sense to have async_update() and should_poll set to False.
I think it's time to update light/zha.py to use attribute reporting. Loosing light state after HASS restarts is becoming obnoxious :)

I do not know when async_update() is called, and I would like to understand that too.
I assume the should poll() needs to be true in order to work
However i do not know how to control and set the polling interval, etc

@kdjordjev so to  answer my own question: yes, every entity which has should_poll set to False is going to get 'polled' for updates by HA every scan_interval which by default is timedelta(seconds=15)
I guess as a short term solution having zha lights  polled is fine, but for a long term I'd prefer zha lights to push states updates to HA, as the more lights you get, more unnecessary "polling" traffic is introduced into zigbee network.

@Adminiuga it's when should_poll for an entity is set to True that the entity will be polled at scan interval.

@MartinHjelmare thank you for confirming.

It's right there in the docs introducing the entity concept… https://developers.home-assistant.io/docs/en/entity_index.html#updating-the-entity

I'm going to disagree on "breaking the spec". Unless we're going by different specs here. Per ZigBee Cluster Library specification Revision 6 from 01/14/2016 which I just downloaded from http://www.zigbee.org/non-menu-pages/zigbee-3-0-download/ (requires free registration) the section <IP_ADDRESS>.5 'With On/Off' Commands states:

The Move to Level (with On/Off), Move (with On/Off) and Step (with On/Off) commands have identical
payloads to the Move to Level, Move and Step commands respectively. They also have the same effects,
except for the following additions.
Before commencing any command that has the effect of increasing CurrentLevel, the OnOff attribute of the On/Off cluster on the same endpoint, if implemented, SHALL be set to On.
If any command that decreases CurrentLevel reduces it to the minimum level allowed by the device, the
OnOff attribute of the On/Off cluster on the same endpoint, if implemented, SHALL be set to Off

the keyword here being increasing. Sending exactly the same level is not "increasing" therefore we do need to send "turn_on" command according to the specs!

OK, seems like we should be a bit smarter then about which command we send, and not just indiscriminately send two.

I can only think of sending "move_to_level" only when there's "brightness" attribute present in the service call and always send "On" command.


STM32F7 MPU Memory Restrictions (Shareable attribute)

Came across a problem configuring the MPU for a board running the STM32F777.  The system locked the board and I believe that the lock was caused by the MPU_RASR_S attribute being used on a memory region that didi not support sharing.
The code was configuring the MPU using the mpu_user_intsram macro in mpu.h which expands to the following:
#define mpu_user_intsram(base, size) \
  do \
    { \
      /* The configure the region */ \
      mpu_configure_region(base, size, \
                           MPU_RASR_TEX_SO   | /* Ordered            */ \
                           MPU_RASR_C        | /* Cacheable          */ \
                                               /* Not Bufferable     */ \
                           MPU_RASR_S        | /* Shareable          */ \
                           MPU_RASR_AP_RWRW    /* P:RW   U:RW        */ \
                                               /* Instruction access */); \
    } while (0)

This passes the MPU_RASR_S attribute to mpu_configure_region which attempts to set the appropriate attributes for the memory region.
I was executing mpu_user_intsram(0x20070000, 0x8000) and this address is in a region that is not shareable and this caused my application to lock.
I finally resolved this by removing the shareable attribute to get the system running.
Now according to PM0253 - STM32 Programming Manual, the majority of the memory map is not shareable (Table 17 in Rev 5 of this document).  In fact only 0xA0000000-0xBFFFFFFF and 0xE0000000-0xE00FFFFF are allowed to be shareable.
Given this restriction I think it would be advisable to make shareable an explicit option as these macros only work correctly for a small portion of the memory map.

@xiaoxiang781216 @davids5 @raiden00pl what do you think? Should we remove the MPU_RASR_S from mpu_user_intsram() or make some validation test to confirm that it is using an area that can be shared?

As far as I understand, the sharable attribute is only suitable for SMP system, which indicate that the memory will be accessed by multiple CPU concurrently and cache system must do the sync in hardware level. Since ARM never officially support SMP for armvx-m architecture, MPU_RASR_S doesn't make sense for cortex-m at all.

https://developer.arm.com/documentation/dui0646/a/Cortex-M7-Peripherals/Optional-Memory-Protection-Unit?lang=en

It should be noted that MPU_RASR_S is used in a number of other macros in mpu.h as well.

As far as I understand, the sharable attribute is only suitable for SMP system, which indicate that the memory will be accessed by multiple CPU concurrently and cache system must do the sync in hardware level. Since ARM never officially support SMP for armvx-m architecture, MPU_RASR_S doesn't make sense for cortex-m at all.

What about DMA?  Doesn't shareable allow multiple DMA requests to the same memory block?

http://www.st.com/resource/en/application_note/DM00272913.pdf

My preference would be to remove the shared attribute from all of the macros except maybe the peripheral sections (I can't remember if that can be shared) as you are more likely to create a problem with the current code than you are to result in a working system.
If you need the memory region to be shared then you can always do this by calling mpu_configure_region with the appropriate attributes.

https://www.st.com/resource/en/application_note/an4838-managing-memory-protection-unit-in-stm32-mcus-stmicroelectronics.pdf

http://www.st.com/resource/en/application_note/DM00272913.pdf

Is this ST specific extension? DMA normally need do the cache clean/invalidate explicitly. Only very complex/smart DMA master(e.g. GPU) which implement AXI ACE extension can participate with CPU cache coherency system:
https://developer.arm.com/documentation/ihi0022/e/ACE-Protocol-Specification/About-ACE/Coherency-overview?lang=en
I don't believe that Cortex-M IP will implement ACE.

@xiaoxiang781216
I think it's not ST-specific but ARM Cortex-M7-specific.
In fact, in the application note for i.mxrt, as you can also seen in
https://www.nxp.com/docs/en/application-note/AN12042.pdf
It says that Cache policy is fixed to Non-cacheable when Shareable bit is set, no matter what’s the TEX/C/B value. A full cache policy settings table can be found in ARM Cortex-M7 Processor User Guide

So I think to make the normal memory region cacheable, the shareable bit in MPU should be 0.
In this case, cache coherency between CPU and DMA must be ensured by software. (i.e. clean/invalidate)

Yes, I think so. The memory tagged with both cacheable and shareable isn't really implemented on Cortex-M architecture.

For the ARM Cortex-M7

So I think to make the normal memory region cacheable, the shareable bit in MPU should be 0.
In this case, cache coherency between CPU and DMA must be ensured by software. (i.e. clean/invalidate)

I believe this to be correct and that mpu_user_intsram is incorrect.


Fix: Mobile friendly position tracking switch

This closes #234. We moved the position tracking switches below the language switch, which should make them visible on mobile devices.

We also tried replacing the switches by buttons and displaying them as Leaflet controls on the left side, but this turned out to be very complicated, so we did not implement it, since we have only a few days left for the project.

Nice icons!
Two things:

While this now looks right on some phones, my phone still displays the "HPI Navigator" inside the plus and minus buttons. This can be reproduced in Firefox "Responsive design mode" with the "Galaxy S20 Linux" preset, which has a similar aspect ratio. I am not sure if this is in your scope here though
The switches themselves are cached on Firefox, which means that the page may have them enabled when loading; in the MDN, they link to this SO answer, it would be nice if you could clean this / my mess ;D

Other than that, nothing I can complain about :)


builtins.define deprecated. Migrate internals to rspack.DefinePlugin

This plugin internally uses the builtin.define which Rspack has now deprecated for there new plugin version https://www.rspack.dev/config/plugins.html#defineplugin
We currently get this warning when using builtin.define:
'builtins.define = {}' has been deprecated, please migrate to rspack.DefinePlugin (https://www.rspack.dev/config/plugins.html#defineplugin)

It might be worth migrating this Plugin's internals over to the new Plugin system.

This repository has been deprecated. Please use https://github.com/rspack-contrib/rspack-plugins/tree/main/packages/plugin-dotenv instead.


Cannot Edit and Save Existing Advisor Position Information

Today a super user received an error message when trying to save the information from an advisor position.  The error message said the super user didn't have the permissions to perform the action (or something like that).
I am pretty sure we did not change the advisor organization assigned to the advisor position.

@dspCarlson Preconditions for being allowed to update a position are:

if the position type is Admin or Super User, the user must be an Admin
position must have an organization
user must be Super User (or Admin) for the organization of the position

If the message was "You do not have permissions to do this", the third condition was the case.

@gjvoosten Both positions were in the same advisor organization.  One position was inactive.  I will try to recreate the bug in staging.  I will have to work with the super user.

@gjvoosten This issue has happened five times since we last chatted about it.

@dspCarlson Anything that could help in reproducing this? Note that if the position is an Admin or a Super User and the person editing it is Super User, they cannot actually see the permissions of the position (only Permissions NATO Billet is shown; the other buttons are hidden).
They will however get an error when trying to save the position.

This bug has not presented itself since February 2018.  I was conducting desk-side training with the super user when the bug occurred.  However, since I was at another location, I was not able to fully investigate the bug in a timely manner.
I am closing this issue and removing it from the Bugs project.


[improve][ci] Switch to Java 21 as default JVM version for CI

Motivation
Java 21 has been switched in the Docker image in 3.3.0 with "PIP-324: Alpine image (#22054)":
https://github.com/apache/pulsar/blob/branch-3.3/docker/pulsar/Dockerfile#L61
Pulsar CI should also run on Java 21 by default.
Modifications

Use Java 21 by default in CI
Run a scheduled build on Java 17 with docker image using Java 17
Add -XX:+ZGenerational to PULSAR_GC parameters by default when running on Java 21+
Cleanup remaining Ubuntu related properties from the Maven build.

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.50%. Comparing base (bbc6224) to head (aff2d69).
Report is 612 commits behind head on master.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #23373      +/-   ##
============================================
+ Coverage     73.57%   74.50%   +0.92%
- Complexity    32624    34463    +1839
============================================
  Files          1877     1934      +57
  Lines        139502   145132    +5630
  Branches      15299    15870     +571
============================================
+ Hits         102638   108124    +5486
+ Misses        28908    28712     -196
- Partials       7956     8296     +340

Flag
Coverage Δ

inttests
27.75% <ø> (+3.17%)
:arrow_up:

systests
24.50% <ø> (+0.18%)
:arrow_up:

unittests
73.86% <ø> (+1.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 603 files with indirect coverage changes


Support Mixins

Requested by @LexManos via irc

[ ] Generate decompiled output class code
[ ] Intellisense should work
[ ] Class view to show generated class structure
[ ] Demonstrate functionality (@Getter/@Setter)

Anything else?

I'm going to assume that I need to apply a mixin, then decompile the output class. Am I wrong?

So far, I've gotten it to create a class file, but it's not transformed with the mixins. I might need assistance on understanding how a mixin is detected so I can properly test things.


Build Failed After upgrading v -0.1.2 to v 0.1.4

There is a warning after upgrading the build failed.
Warning: unexpected element (uri:"", local:"base-extension"). Expected elements are <{}codename>,<{}layoutlib>,<{}api-level>
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/audio_wave-0.1.4/lib/audio_wave.dart:84:31: Error: Method 'addPostFrameCallback' cannot be called on 'WidgetsBinding?' because it is potentially null.
 - 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/binding.dart').
Try calling using ?. instead.
      WidgetsBinding.instance.addPostFrameCallback((x) {
                              ^^^^^^^^^^^^^^^^^^^^

FAILURE: Build failed with an exception.

Can you update flutter to version 3.x ? And tell me if it's working?

I'm also getting this error on versions 0.12 and 0.14. Any solutions?

@unknownaloy Can you try again after upgrading the latest flutter version?

@thruthesky I'm closing the PR. Upgrading Flutter version fixes this


Terraform deployment Error - failed to cancel/create contract: failed to submit extrinsic

Hi,
Almost every 1 out of 3 times I got the below error, forcing me to re-apply terraform,
Error: failed to delete deployment: failed to cancel contract: failed to submit extrinsic: Priority is too low: (302300000 vs 302300000)
Using:
terraform v1.2.1
nodes = 291, 294, 298 (but for what i have seen this is not related to the nodes themselves)
Best regards

if more than one deployment from the same account are taking place at the same time, it might happen.
you can use --parallelism 1 if you are.
@luisanadal is this the case for you? please update this issue if this doesn't fix it or if there are no simultaneous deployments

let me check that, you might be right
On Wed, 2022-06-08 at 07:30 -0700, Reem Khamis wrote:

if more than one deployment from the same account are taking place at
the same time, it might happen.
you can use --parallelism 1 if you are.
@luisanadal is this the case for you? please update this issue if
this doesn't fix it or if there are no simultaneous deployments
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID:
@.***>


Add loop inductance with siwave DC

Description of the feature
We need to add loop inductance evaluation from siwave post processing
Steps for implementing the feature
No response
Useful links and references
No response

Hi @svandenb-dev , is this feature implemented?

yes


Support filtering the repositories page list

Perhaps, next step is to create something like a quick-return for both the filter box and the toolbar? Because, now when user types something, the screen is really, really tight.

Any input regarding this?
cc: @jonan @hzsweers @larsgrefer

I think it would be better to add a menu-entry (action-button) for the filtering feature.
So the input-field can be shown or hidden like the searchbar

@fadils let's get this in, but maybe update the PR with more details information. Specifically, screenshots and an overview of the changes would be especially useful if everything is going to be squashed into one commit.

Will do

Closing for inactivity


Enhancement: Updated Vue Example to demonstrate Event usage

By creating this pull request you agree to the terms in CONTRIBUTING.md.
https://github.com/Infineon/.github/blob/master/CONTRIBUTING.md
--- DO NOT DELETE ANYTHING ABOVE THIS LINE ---
CONTRIBUTING.md also tells you what to expect in the PR process.
Description
Updated the Vuejs Example application to demonstrate the usage of custom events.

📦 Published PR as canary version: 20.34.5--canary.737.6975682273fab3cb719c8836dd23448278b89ad0.0

:sparkles: Test out this PR locally via:
npm install<EMAIL_ADDRESS># or
yarn add<EMAIL_ADDRESS>

The dynamic setting of currentPage in the Pagination component is not working entirely correctly. The currentPage does change, but the page buttons do not, and therefore the change is not obvious to the user, especially in this Vue app where the pagination is not linked to a table. I will merge the PR because the changes are correct, and open a new issue for the Pagination.


Security issues requiring package updating

[Y] I have looked at the documentation here first?
[Y] I have looked at the examples provided that may showcase my question here?

Package version eg. v9, v10:
v10
Issue, Question or Enhancement:
We've identified that 3 CVEs are introduced through the use of go-playground/validator:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14040
Introduced through<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>Introduced through<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-9283
Introduced through<EMAIL_ADDRESS>›<EMAIL_ADDRESS>Introduced through<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11254
Introduced through<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>›<EMAIL_ADDRESS>

Sub'd as we've also been notified through our security toolchain that we're shipping validator using x/text v0.3.2 which is coming from validator.

Fixed in https://github.com/go-playground/validator/pull/801

One of the dependencies https://github.com/go-playground/locales 0.13.0 (the current latest) remains vulnerable as it continues to use x/text v0.3.2.
Informed upsteam here: https://github.com/go-playground/locales/issues/37


Cant find Themes.

It wont show where to put themes or anything...
I tried repairing it but still does not work.
Lil bit of help.

in my case I can find the themes but It doesnt work

Fixed it im just dumb.

Firstly, my themes doesn't work. After repair it, my themes gone away. But they still exist in my directory file


Add "ConsoleOperation" to allow interrupts to have notes and custom labels

Fixes #764
Here's my first stab at it! I left in the original interrupt menu item so I could compare behavior, I'm happy to take them out once this is in good shape.
https://user-images.githubusercontent.com/112170/150663972-47504b97-5f61-4295-9001-da3a20b6c793.mp4

This is so really robust work. Like it gives me a lot of faith that the api is really navigable if you can figure it out enough to put something this nice together that quickly.

Already included but some rough edges.

Double click on a node calls activation which generally loads up specific properties. You have some specific properties these aren't changed on node activate.
The previous command in the node isn't in the text box on start. One would expect to maybe have a simple text entry box there, with the previous command already present.
The editing window is probably overbuilt. I can't see using more than maybe the default Text Popup thing in reality.
Editing. Closing and editing again displays the old value in the window rather than the new value you put in there the first edit.
Interrupt commands generally are CLI and GUI. So in theory if you ran the code in the commandline it should work, but the command is really only included with a gui popup. Getting that right might be a little harder, the interrupt command for example saves itself in function/interrupt and switches out for text and gui forms. Though that's a very general form since you can spool any console commands there and only the gui lets you put in the console commands.
There's no way to add in your special commands to the tree without gui. If I wanted to spool this entire thing from command line and use your special node types, there's no set methodology that makes that possible.

Most of these are minor, the clear_and_open() being added in there strictly doesn't work but everything else, despite some rough edges is pretty robustly done. Bravo.

The divide between command and name is weird. You really only need one.

Smoothing out the edges I commented out the stuff and you get 1 text entry box. It took me a bit to figure out what was going on there with the name and commands differences, but largely this is an issue with adapting the code I think. Still waiting on the updated approval but still quite solid work.

:+1 from me too.

So I thought it could be cool to have a sicint label in the tree, that's a summary of the message that gets shown. but it's not a dealbreaker.
Thanks for helping smooth out the rough edges 😅

It got confusing as to which part was the command and which part was the unneeded label. It wouldn't be too hard to set the label independently. The label is still there but the editing of the command part updates the label currently. If less confusing it would be fine. Especially since you can make a larger number of commands in the node.


Remove Lumen micro framework

Official documentation says: "we no longer recommend that you begin new projects with Lumen". https://lumen.laravel.com/docs/10.x#installation

no longer being recommended doesn't mean it's not needed by people.
Even though it is no longer officially recommended, Lumen is still supported today (at least until version 10 and security fix support until February 4th, 2025).
I don't agree with Lumen being removed.


Description for Service detail is on bottom and sometimes has double lines

Rancher Version: master 8/30
Steps to Reproduce:

Create a service, external service and service alias
Add a description to each
Go to each's detail page

Results: Notice the description is on the bottom (it should be on top, which would be consistent with other details pages.  Also notice for the service alias and external service there are double lines above the description section.

Expected:  Should be on top and no double lines.

Version - master 10/27
Not fixed
Description should be on top for consistency.  Like for Host and containers.

Version - master 11/06
Verified fixed


Pressure and Temp readings incorrect for firmware >= 17

Looks like something is going wrong with the temp/pressure reading..always outputs 10000

I spoke with Alphasense, and the T/P readings are no longer included with firmwares >= 17


update html-minifier version

https://github.com/jonschlinkert/gulp-htmlmin/issues/48

thanks!

want to update unit tests too? otherwise I'll have to do it when I get a chance. fwiw I think this bump shouldn't be necessary anyway, npm should still install html-minifies 1.3.0 since it falls in the range of ^1.0.0

It looks strange, but an hour ago npm installs wrong version of html-minifier.
Anyway, I can update tests too. Should I just add my case to fixtures & expected files or create new fixture for that?

Should I just add my case to fixtures & expected files or create new fixture for that?

Sorry, I should have clarified, the tests might not need to be updated. But I know from past experience that (at minimum) when changes are made in html-minifier there are usually minute changes that need to be made in our fixtures. if the tests are passing still then no need to update anything.
thanks

@jonschlinkert Just for restoring a justice: errors were in html-minifier and your package worked good. I've fixed & wrote test for them in this PR: https://github.com/kangax/html-minifier/pull/583 and v.1.3.2 will work fine.
So, you was right about:

this bump shouldn't be necessary

Sorry about the confusion and thanks for your patience! :)


Custom.css - Line 14

.right_col{min-height: 1000px;}
What is the reason of this line.
Needed to comment out or I had with 'Bootstrap-Table' (https://github.com/wenzhixin/bootstrap-table) issues. The problem resulted in a large white space after the footer.

Hi,
It's just a break after the table. More so like a design preference. Feel free to adjust it to your needs, remove or decrease.

This will be fix on PR https://github.com/puikinsh/gentelella/pull/89


Pushgateway integration

Hey, I really like this package, and I think I would like to start using it.
However, as we briefly talked about at JuliaCon, I think it would be great to also make this usable with pushgateway.
I think it would be very useful to have some method
push_metrics(m::meter, ::pushgatewayconfig)

that pushes a meter object directly to pushgateway. The API is extremely simple, can be done with a simple curl call see docs here. I am not currently familiar enough to know if maybe HTTP.jl can also do it in a similar fashion. I am not sure if HTTP.jl is already a dependency of an OpenTelemetry.jl component, if not, maybe there could be a PackageExtension?
The pushgatewayconfig would at minimum be some URL, but in some cases additional details could go in here as well (specific port, authentication details, ...)
Let me know what you think, happy to contribute/ help.

Hey Steffen,
Glad to hear from you 🤗

HTTP.jl should be enough to do the work. And it's already a dependency here https://github.com/oolong-dev/OpenTelemetry.jl/blob/master/src/exporter/prometheus/Project.toml
I think the format is the same as the pull-based approach. Do correct me if I'm wrong here.

Contributions are always welcomed. (In case you are unfamiliar with the code structure, I may implement it later this Sunday.)

After some initial investigations, the format is slightly different compared to the pull based approach. But in general, it should be easy to implement.
By the way, push gateway and remote write are two different concepts. I created another issue #90 to track the latter.

Hey, thank you for looking at it. I am indeed not yet familiar with the code base, sadly don't have headspace this weekend.
Indeed, "vanilla" Prometheus does not accept remote writes, and hence uses pushgateway as a solution for the use case, which has its own pros and cons.


When replacing value in parameters.yml make sed more greedy

Now it was not replaced whole line and it ended like this:
toran_host: localhost     example.org

Thanks you for contributing :)


Fix test 6.1.24

The current implementation of 6.1.24 evaluates the involvement status over all vulnerabilities. However, the spec intends to do that per vulnerability.

Basically:
https://github.com/secvisogram/csaf-validator-lib/blob/0d59c10bb3f1583c99b771d3437abae902a1412b/lib/mandatoryTests/mandatoryTest_6_1_24.js#L10-L15
should be:
 if (preconditionFor_6_1_24_Matches(doc)) {

   doc.vulnerabilities.forEach((vulnerability, vulnerabilityIndex) => {
     /** @type {Map<string, Set<string>>} */
     const involvementMap = new Map()
     vulnerability.involvements.forEach((involvement, involvementIndex) => {


Python 2.7

(How) Can this be used with Python 2.7? Unfortunately, the python code I need to invoke from my scala project is 2.7 :-(
I've got it to work with JEP, but this seems to have a much nicer api.
Thanks,

Unfortunately, given the EOL of Python 2 and the maintenance challenges in simultaneously supporting the native APIs of both Python 2 and Python 3, it's unlikely that ScalaPy will support Python 2 libraries. Perhaps something like 2to3 could be helpful in getting the 2.7 code converted to Python 3?


Invalid multi byte escape error in Ruby 2.0.0-p0

Getting this error in the following line
.rvm/gems/ruby-2.0.0-p0/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:84: invalid multibyte escape: /[\x80-\xFF]/ (SyntaxError)
Ruby - 2.0.0-p0
Rails - 3.2.11

@whomwah did you put in PR for this?

At this time everyone already moved to https://github.com/aws/aws-sdk-ruby


D-Wave weights are 1's

What is happening?
TL;DR - This codebase demonstrates no value in representing D-Wave Quantum for AI application advancements.
Running the examples and exploring the output weights. What is really happening?

It appears that nothing logically substantial is happening from D-Wave.

After running the examples, the D-Wave output weights are 1's [1 1 1...]. That means nothing is really happening here.  There's no value in this.  Repeated executions result in varied outcomes ( due to RNG initializations ).  However the D-wave final weights remain the same. This provides no additive value to the classic model for training AI.
The readme.md file states that:

This code demonstrates the use of the D-Wave system to solve a binary classification problem using the Qboost algorithm.

However there's no clear alignment with the results of the program output.
python demo.py --wisc
python demo.py --mnist

Possible Considerations
There does not appear to be a mistake here.  However the value of D-wave is unclear.  We can consider the following:

This demo.py example isn't worthwhile and can't demonstrate D-wave/Quantum's value in AI/ML advancements.  Would another example work?
The code isn't demonstrating anything useful.  The training models are 100% trained classically and the data exchanged with D-Wave returns 1's [1 1 1...].  This represents no value in the model.
Is it possible that the intent here is to demonstrate that the D-Wave QPU is able to verify the classically trained model.  If that is the case, then what value does this example bring to ML/AL advancements?

Output Results Screenshot

Coming to a possible conclusion. The DWaveSamper can be used to discover the most meaningful features to be used in an SVM.  While the qboost code example didn't make this clear, nor did it achieve meaningful results after repeated runs, the hybrid quantum and classical ML model allows optimization of the discovery for meaningful features.

Hello @stephenlb, sorry for the delay. I would like to talk to you about your work, here, and what you're looking for. My name is Joel Gottlieb, and you can please reach me at<EMAIL_ADDRESS>

Hi Joel,  thank you.  Email sent.

Hello, I have the same question. Is there any updates or explanations can be added? Thanks

Hi!  I've eventually figured it out.  The examples only sort of make sense.  However I was able to complete my application with total success.


Part I: Install Trellis, start/projects location and folder names...

He - great article!
I'm struggling with Trellis as a whole and think it might be with the very first few steps.

> # Move into the directory where where you keep dev projects.
> cd ~/dev/code.lengstorf.com/projects/

What folder should i be in to start with?
Why is ~/dev/code.lengstorf.com/ in a domain format? ie does it need to be or is ij just how you name folders?
Will all of your web projects (even for different clients) go into this folder?
3b.  so my local projects will be in ~/dev/code.lengstorf.com/projects/test1.com, ~/dev/code.lengstorf.com/projects/test2.com etc

Would be great to clarify this starting points so i can then move onto the next stages with some confidence.
D.

Hey, @v3nt!

What folder should i be in to start with?

Any folder you want — I keep a dev folder for all of my code, but you can choose anywhere you like.

Why is ~/dev/code.lengstorf.com/ in a domain format? ie does it need to be or is ij just how you name folders?

No need for domain format — this is just how I name folders.

Will all of your web projects (even for different clients) go into this folder?
3b. so my local projects will be in ~/dev/code.lengstorf.com/projects/test1.com, ~/dev/code.lengstorf.com/projects/test2.com etc

All of my web projects go into dev. You can organize this however you want.
Good luck!


[Bug report] plugin-vue-export-helper in vite breaks github pages and increase output size

Description
In some projects, a single line chunk called _plugin-vue_export-helper.[hash].js  will be extracted in production mode.
However this actually:

Increase size
Let project fail on github pages with default settings (as jekyll omit files starting with underscore by default)

We need to configure chunks generation like vitepress:

Outputing vue, vue-router and @vuepress/client to a chunk
Pack toll chunks like the one mention above in app.js or in another chunk

Reproduction
Not needed
Used Package Manager
npm
System Info
Not needed

@Mister-Hope where should it be added though? I was about to ask that when you closed it.

Add a empty file named .nojekyll in output folder.

I thinks this should be fixed by #1101 right?

#1101 was reverted


Cannot remove vaccination certificates

Avoid duplicates

[x] Bug is not mentioned in the FAQ
[ ] Bug is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in the documentation repository
[x] Bug is not already reported in another issue

Describe the bug
looked all over the Android app but couldn't find a way apart from cleaning storage and scanning new. the documentation actually only mentions removing test certs but ommits the same for vax certs altogether. why is that?
before someone asks. i scanned some vax certs for travellers without smartphone that i didn't need later anymore and wanted to clean up.

I'll leave the steps how to do it under iOS here, maybe Android is the same:

Click on the tab "Certificates"
Click on the person you want to remove the certificate from
Scroll down to the very bottom
Click on "Vaccination Certificate"
Click on "Delete Vaccination Certificate"

Hope that helps, if Android is different I'll hide this comment.

@Ein-Tim
Android is different. The remove is hidden under the three-dot symbol. Instructions in next post.

@edeso
I'm sorry to hear that you're having difficulty removing a vaccination certificate. Let me help you.

Tap on the "Certificates" tab. If you have a vaccination certificate stored it will show asEUDigital COVID CertificatenameQR code.
Tap on the certificate, now it showsEU Digital COVID CertificateQR codeVaccination Certificatevaccinated on dd.mm.yy
Scroll down toVaccination CertificateVaccination m of nvaccinated on dd.mm.yy. It may also say "Currently used certificate".
Tap on the above from step 3.
On the top right of the screen, tap on the three-dot symbol and then on "Remove".

@MikeMcC399 just tried. properly hidden, but works! thanks! maybe time to document that :)
any reason why it ain't in the first sandwich menu (on 2. above)? it's not intuitively clear that one can dive even more into details on the certs on the bottom.

@edeso

properly hidden, but works! thanks! maybe time to document that :)

This should be considered as an FAQ item at least. In the app itself, the Information menu item (also three-dot symbol at the top level) only deals with adding certificates, not with removing them.

any reason why it ain't in the first sandwich menu (on 2. above)? it's not intuitively clear that one can dive even more into details on the certs on the bottom.

I don't know why the UI was designed this way. There have been similar usability issues with the contact journal where users couldn't find how to delete entries. (see https://github.com/corona-warn-app/cwa-wishlist/issues/334).
If you want to suggest a UI improvement, you could open a new item in https://github.com/corona-warn-app/cwa-wishlist/issues.

@edeso
New FAQ articles have been written and published:
https://www.coronawarn.app/en/faq/#eu_dcc_remove "How do I remove a certificate from the Corona-Warn-App?"
https://www.coronawarn.app/de/faq/#eu_dcc_remove "Wie kann ich ein Zertifikat aus der Corona-Warn-App entfernen?"
There is also a new wishlist item https://github.com/corona-warn-app/cwa-wishlist/issues/608 "Improve usability for removing a certificate" created.