Add blacklist of consumer groups

As mentioned in #4 a consumer group name blacklist in addition to the whitelist would also be useful for ignoring console consumers, for example.

I've thought about this some more and I agree that exposing a blacklist for consumer groups (and all the other features that currently have whitelists: topics, metrics) would be useful.

@graphex @seglo I will do the job, would you assign to me?

@drrzmr Done.  Thanks for volunteering!

Also interested in this feature!

Apologies for the spam, had forgotten about my work machine's git setup being different.
I've gone ahead and implemented the above, as it would make our Prometheus instance and storage much happier if consumer groups with uuids were filtered out from the get go.

Apologies for the spam, had forgotten about my work machine's git setup being different.
I've gone ahead and implemented the above, as it would make our Prometheus instance and storage much happier if consumer groups with uuids were filtered out from the get go.


Asyncio integration only instruments one Asyncio event loop

How do you use Sentry?
Sentry Saas (sentry.io)
Version
1.30.0
Steps to Reproduce
To observe this error, we can add a print statement within the inner _coro_creating_hub_and_span async function (defined within _sentry_task_factory which is itself defined within patch_asyncio) in the file sentry_sdk/integrations/asyncio.py. This inner function is supposed to wrap every async call when the AsyncioIntegration is enabled, and so adding the print statement allows us to verify that asyncio has been correctly instrumented.
Next, we run the following sample script:
import asyncio
import time

import sentry_sdk
from sentry_sdk.integrations.asyncio import AsyncioIntegration

async def fib(n):
    if n == 0:
        return 0

    if n == 1:
        return 1

    time.sleep(0.05)

    async with asyncio.TaskGroup() as tg:
        fib1 = tg.create_task(fib(n - 1))
        fib2 = tg.create_task(fib(n - 2))

    return fib1.result() + fib2.result()

async def main():
    sentry_sdk.init(
        dsn="<dsn here>",
        traces_sample_rate=1.0,
        integrations=(AsyncioIntegration(),),
    )

    await runner()  # This call is instrumented

async def runner():
    with sentry_sdk.start_transaction(op="test", name="Fibonacci"):
        result = await fib(5)

    print(result)

if __name__ == "__main__":
    print("initial call")
    asyncio.run(main())
    print("initial call has ended\n")

    print("second call")
    asyncio.run(runner())  # This call is NOT instrumented
    print("second call has ended\n")

Expected Result
Both calls to runner should be auto-instrumented by the SDK's asyncio integration.
Actual Result
The SDK only auto-instruments the first call to runner, which is made within the main function. The SDK fails to instrument the second call to runner, which is made outside the main function.
Likely Cause
This issue likely has the same cause as #2328; that is to say, this issue appears to be caused by the Sentry SDK only instrumenting the currently running asyncio event loop. asyncio.run() always creates a new event loop every time it is called, which is why the second call to runner fails.
Potential Solutions

Don't fix, and close the issue
Calling asyncio.run() multiple times, while technically possible, is likely not a common use case, and the Python docs recommend avoiding multiple calls to the function from the same thread. From the docs, "[asyncio.run()] should be used as a main entry point for asyncio programs, and should ideally only be called once." If we go this route, perhaps we should document only supporting a single asyncio.run() call as a known SDK limitation.
Modify the SDK to instrument newly created event loops
This solution would also likely solve the related issue #2328. And, even if calling asyncio.run() multiple times is not a common or even a recommended design pattern, it is possible to do and so we should support it.

If we go with second option, this issue could likely be resolved by instrumenting asyncio through the use of a custom event loop policy which instruments the SDK when a new event loop is created in addition to instrumenting the current event loop.

+1 I'm eager to test sentry apm in ray/asyncio...

A quick question @dPeS does ray with asyncion call asyncio.run() multiple times?


hello-world: Update to fit the new canonical data

Update according to https://github.com/exercism/x-common/pull/544
Please don't merge this until the date mentioned in the PR above.

Got it!


Update the cli docs to use akashctl

Closing this in favour of https://github.com/ovrclk/docs/issues/56


Fix 50 warnings due to iOS 8 deprecated enumerations

Fixing iOS 8 warnings by replacing old NSCalendarUnit by new ones

Merci !


How should source_sequence_length and decoder_lengths be passed in?

I'm using the tutorial to develop an NMT model but it does not explain the purpose of sequence_length either in this code snippet:
encoder_outputs, encoder_state = tf.nn.dynamic_rnn(
    encoder_cell, encoder_emb_inp,
    sequence_length=source_sequence_length, time_major=True)

or this one:
helper = tf.contrib.seq2seq.TrainingHelper(
    decoder_emb_inp, decoder_lengths, time_major=True)

and the online API is not helpful in this case. In model.py, an iterator object is used, but the significance of this is unclear.
Should source_sequence_length and decoder_lengths be passed in as placeholders? (I believe) that since all the inputs are padded to the same length during batching, there is no way for the graph to know the lengths without having extra placeholders, but this seems wasteful.
In fact -- and this is probably a separate question, but it is also not addressed in the explanation -- why do all the inputs need to be padded to the same size to begin with?

@nave01314 The source_sequence_length and decoder_lengths for training are calculated before we pad the source sequence and the target sequence. You can checkout the code here for getting the sequence length.
It is very common to pad sequential data, so dynamic_rnn can evaluate the full batch until the max sequence length in the batch. Note that the inputs to dynamic_rnn has to be a tensor with shape [batch_size, max_time, ...].


Persisting RichTextDocument

Syncing Entities containing a RichTextDocument attribute via CoreData Transformable does not work for me. Anyone has a trick up his sleeve to make this work?

@robatum Hey, sorry for late response!
The RichTextDocument is designed to be stored in the Core Data using Transformable type.
In order to do store RichTextDocument in Core Data you need to follow these steps:

Create a type for your Core Data entity and make sure the fieldMapping is set for the RichTextDocument field (content in my case).

import Contentful
import ContentfulPersistence
import CoreData

final class Article: NSManagedObject, EntryPersistable {
    static var contentTypeId: ContentTypeId = "article"

    @NSManaged var id: String
    @NSManaged var localeCode: String?
    @NSManaged var createdAt: Date?
    @NSManaged var updatedAt: Date?

    @NSManaged var title: String
    @NSManaged var content: RichTextDocument

    static func fieldMapping() -> [FieldName : String] {
        return [
            "title": "title",
            "content": "content"
        ]
    }
}

Create value transformer:

import Contentful
import Foundation

final class RichTextDocumentTransformer: ValueTransformer {
    override class func transformedValueClass() -> AnyClass {
        NSData.self
    }

    override func transformedValue(_ value: Any?) -> Any? {
        guard let text = value as? RichTextDocument else { return nil }

        return try! NSKeyedArchiver.archivedData(withRootObject: text, requiringSecureCoding: false)
    }

    override class func allowsReverseTransformation() -> Bool {
        true
    }

    override func reverseTransformedValue(_ value: Any?) -> Any? {
        guard let data = value as? Data else { return nil }
        return try! NSKeyedUnarchiver.unarchivedObject(ofClass: RichTextDocument.self, from: data)
    }
}

Add attribute with a type Transformable to Core Data entity and set:

Transformer: RichTextDocumentTransformer
Custom Class: RichTextDocument
Module: Current Product Module - make sure this is set.

Let me know if that works for you.

No update in this thread. I am closing this for now.

Hey Tomasz,
thank you very much for your reply and your excellent example!! I tried a similar approach based on NSSecureUnarchiveFromDataTransformer but couldn't make RichTextDocument conform to NSSecureCoding ;-) .
Your approach is working for me but with one (important) limitation: As long as I only have Text Blocks and Paragraphs all is good but as soon as I'm embedding an Asset (Picture) or Embed to the Document the decoding fails.
This is my DocumentTransformer right now:
`
import Contentful
import Foundation
@objc(RichTextDocumentTransformer)
final class RichTextDocumentTransformer: ValueTransformer {
override class func transformedValueClass() -> AnyClass {
NSData.self
}
override func transformedValue(_ value: Any?) -> Any? {
guard let text = value as? RichTextDocument else { return nil }
    //let resultRender = DefaultArticleRenderer().render(document: text)
    do {
        let result = try NSKeyedArchiver.archivedData(withRootObject: text, requiringSecureCoding: false)
        return result
    } catch {
        Logger.error("Couldn't archive contentful data: \(error)")
        return nil
    }
}

override class func allowsReverseTransformation() -> Bool {
    true
}

  override func reverseTransformedValue(_ value: Any?) -> Any? {
    guard let data = value as? Data else { return nil }
    do {
        guard let result = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? RichTextDocument else {
                                         //NSKeyedUnarchiver.unarchivedObject(ofClass: RichTextDocument.self, from: data) else {
            Logger.error("Couldn't cast to RichTextDocument.")
            return nil
        }
        return result
    } catch {
        Logger.error("Couldn't unarchive contentful data: \(error)")
        return nil
    }
}

}
extension Contentful.RichTextDocument: NSSecureCoding {
public static var supportsSecureCoding = false

} `
The error which I receive is:

🚨 Error ⏱ 06/25/2020 05:26:28:239 📂 RichTextDocumentTransformer.swift:41 : Couldn't cast to RichTextDocument.
valueNotFound(Swift.KeyedDecodingContainer<Contentful.Link.Sys.(unknown context at $104be348c).CodingKeys>, Swift.DecodingError.Context(codingPath: [_JSONKey(stringValue: "Index 2", intValue: 2), NodeContentCodingKeys(stringValue: "data", intValue: nil), JSONCodingKeys(stringValue: "target", intValue: nil), CodingKeys(stringValue: "sys", intValue: nil)], debugDescription: "Cannot get keyed decoding container -- found null value instead.", underlyingError: nil))

I also tried to run the demo project you've provided which gave me a different but related error, but this time already while encoding the document:

I'm currently working with Xcode 11.5 on MacOS 10.15.4, I'm using these pods:
pod 'Contentful' , '5.0.11' pod 'ContentfulPersistenceSwift' , '0.15.0'
Also tried the most recent version but without any differences. In case you have another idea, I'm open for recommandations :-).
Thx in advance!
Best Andreas

Hey Andreas!
I noticed there is a typo in my example Core Data model. There should be fileType for Asset Model but is filetype instead.
Also sorry for the example not running as expected. I forgot that the space and the specific article are used as a base for another thing I am working right now so, indeed the project could crash.
Anyway, I think you're right that it seems impossible to persist more complex RichTextDocument at the moment. Link class seems to be the main limitation as I am check in the code. I'll open the issue on our internal tracker. Thanks!

Hey Tomasz,
thanks for your fast reply and taking the time to look into the issue!

I noticed there is a typo in my example Core Data model. There should be fileType for Asset Model but is filetype instead.

No worries that was a quick fix :-)

Anyway, I think you're right that it seems impossible to persist more complex RichTextDocument at the moment. Link class seems to be the main limitation as I am check in the code. I'll open the issue on our internal tracker. Thanks!

+1 Would be great to have this feature included as the persistence/syncing works flawless otherwise and we would prefer to use it over a custom implementation.
Have a great weekend!
Best Andreas

Hey Tomek xD
+1 for Link support in RichTextDocument as that's the only puzzle that we need to have to fully support persistence;)

+1

Hello @tomkowz, apologies if this is the wrong thread but just wanted to check if there is an update regarding...

Anyway, I think you're right that it seems impossible to persist more complex RichTextDocument at the moment. Link class seems to be the main limitation as I am check in the code. I'll open the issue on our internal tracker. Thanks!

Our content team is currently trying to leverage Links within within rich text so this would be greatly appreciated.

@SDC-KurtTreangen this should now be fixed if you could check and verify.

Hello @mariuskatcontentful ,
When attempting to test the fix that was included with https://github.com/contentful/contentful.swift/tree/5.5.1 I receive the following error when using CocoaPods.
[!] CocoaPods could not find compatible versions for pod "Contentful":
  In Podfile:
    Contentful (~> 5.5.1)

    ContentfulPersistenceSwift was resolved to 0.17.4, which depends on
      Contentful (~> 5.4.1)

@SDC-KurtTreangen Thanks for catching that. I sorted it if you want to check again.

Sorry for the late response @mariuskatcontentful . Everything is working as expected with the latest version. Thanks!
The solution on our end was to switch on the Link. If entryDecodable, cast it to our custom protocol for representing in line links, if entry or unresolved fetch the link from our local CoreDataStore by its id. This allows us to load rich text with in line links from CoreData and from the Client API.


Can't resolve label reference 'priority desc, added_on'; converting to text() (this warning may be suppressed after 10 occurrences)

I don't update SQLAlchemy and now when 1.2 tag in master I has the next error:

/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py:572: SAWarning: Can't resolve label reference 'priority desc, added_on'; converting to text() (this warning may be suppressed after 10 occurrences)
util.ellipses_string(element.element))

I just stumbled upon the same issue. I checked and it seems that 1.x.x is affected by this, and versions up to 0.9.9 are not. It should be an easy fix though, so give me a minute.

Ok, after further investigation it seems that this has been resolved in current master (and also monitor). So basically, when running 1.2 one should install a compatible sqlalchemy version: pip install sqlalchemy==0.9.9. Might be something for the documentation, I don't know..

But based on the warning I don't think it's a critical bug, more of a deprecation warning..

Yes, not is critical, and 1.2 work with this warning. Thanks.

And, I know it not is about this issue, but, what is different in master and monitor? In books I read that they use master, what is "work" of monitor?

It's what Cuckoo 2.0 will be based on (with regards to the Windows side, anyway).

If I understand this, then Cuckoo 2.0 is development in branch monitor?

2.0 will feature more than just the monitor branch, but monitor will definitely represent the Windows part of it, yes.

Closing this issue as it doesn't affect the master branch (anymore). It'd in theory still be useful to put out a 1.2.1 version with fixed version in the requirements.txt file, but yeah..

Hi ,
I am using SQLAlchemy (1.1.13), but I still get these kind of warnings
C:\Python36\lib\site-packages\sqlalchemy\sql\compiler.py:624: SAWarning: Can't resolve label reference 'BatchConfiguration.create...'; converting to text() (this warning may be suppressed after 10 occurrences)
util.ellipses_string(element.element))


getAttribute() & hasAttribute() & getProp()

PR for #100, added getAttribute() & getProp() methods and changed behavior of hasAttribute() method.

Looks great, two more things are needed before merging -

docs - can you update the docs and add a page for getAttribute and getProp?
types - this project has a typescript types definitions file - https://github.com/eddyerburgh/avoriaz/blob/master/types/index.d.ts . There is a typescript test file - types/test/mount - to check the functions can be used correctly

Thanks for this PR. I'm going on vacation tomorrow for 1 week. I won't have my laptop with me, so I can merge the PR, but I won't be able to release unfortunately.
Also, I'm proposing we add the same methods to vue-test-utils - you might be interested in the proposal - https://github.com/vuejs/vue-test-utils/issues/27

Hi, I can merge this soon. Can you fix the conflicts in types/index.d.ts?

@eddyerburgh done!

Great 🤗
I've released the changes as 4.0.0.
Thanks so much for the PR 🙂


Update document with FluviiAppConfig examples

Update readme document with more detailed examples of configuration FluviiAppConfig

Documentation was updated when the new Fluvii version was released; sorry that we didn't get this added before then!


uploadprogress : Upload not found

Hi,
Cant find out how to use the uploadProgress feature.
Here I upload my file :
$pcloudFile = new pCloud\Sdk\File($pCloudApp);
$pcloudFile->upload($fileName, $folderId, $fileName, 0, "myHash");
And in an another thread I try to get the status of the upload :
$request = new pCloud\Sdk\Request($pCloudApp);
$tmp = $request->get("uploadprogress", ['progresshash' => "myHash"]);
$tmp = $tmp->uploaded;
I get this error :
Uncaught pCloud\Sdk\Exception: Upload not found in ....
Should I use the hash provided by the upload function ? Well actually I get the same error even when using this hash :
$hash = $pcloudFile->upload($fileName, $folderId);
$hash = $hash->metadata->hash;
Thank you for your help,

Hello JeanLouisMassei,
somewhere at the end of the example script, which you provided you are executing the following code:
$hash = $pcloudFile->upload($fileName, $folderId);
which is doing something which we call "chunked upload", the PHP script actually is sending the file on chunks using "upload_write" method. This method currently doesn't supply/has info related to the "uploadprogress", the "uploadprogress" currently is supported only by the standard "uploadfile" API endpoin. This is one of the reasons you can not fetch info related to the progress of the upload, on the other hand you also need to supply the "uploadprogress" API call with the exact API server the upload is happening on, which I can not see in the example. In any case we are planning in the future to add support for upload progress also to the "upload_write" API call, and of course we will add additional methods to the SDK, so it can be easy utilized.

In addition, you can implement and use the following method "/upload_info with access_token=auth&uploadid=1234 as params, which will return:
{  "result": 0,  "size": 150000000,  "sha256": "0469c985af64834db8c5dd411bf44af83d0b0a9e6852ab1de7925af0bdc18e24", "sha1": "cf068822a61029b57378fe75d051817f714c24e7" }
where the size ( in bytes ) is what you need.


Malacañang

馬拉坎南 马拉坎南 [Ma3 la1 kan3 nan2] /Malacañang (official residence and workplace of the President of the Philippines)/
https://www.facebook.com/flwph/posts/6095753527138898/

Thanks, good catch.
Besides the palace, it seems this is also
used for the museum and the gardens etc so
maybe we should just put Malacañang for now.


ARO-7160: Increase polling duration for virtual machine to 30mins

Which issue this PR addresses:
Fixes https://issues.redhat.com/browse/ARO-3807
What this PR does / why we need it:
Polling duration for virtual machine is increased to 30 minutes to give more time for process to finish and avoid timing out.
Test plan for issue:
No test plan. Unable to reproduce a wait time of more than 15 minutes.
Is there any documentation that needs to be updated for this PR?
No, tech debt.
How do you know this will function as expected in production?
Existing implementation that overrides default polling duration exists in
pkg/util/azureclient/mgmt/features/deployments.go

/azp run ci, e2e


aarch64: missing packages binary cache

Describe the bug
To Reproduce
Steps to reproduce the behavior:

...
...
...

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
  - nixUnstable
# a list of nixos modules affected by the problem
module:

We currently lack aarch64-builders on Hydra.

@grahamc

What happened to all the builders we had before?

Is this why the stdenvBootstrapTools.aarch64-linux jobs are backlogged?

What happened to all the builders we had before?

It is my understanding we have get the builder depending on availability/pricing.

Is this why the stdenvBootstrapTools.aarch64-linux jobs are backlogged?

Yes. This is now becoming a channel blocker.

Oh, maybe we're using spot instances! Makes sense, so I guess the price hiked and all the builders just poof! got deallocated to save money.

These don't technically block the channel, but let's keep the label so it shows up on https://status.nixos.org

Bootstrap tools block nixpkgs-unstable.

Related: https://github.com/NixOS/nixpkgs/issues/83049

We have sufficient aarch64 capacity again.


Add Phrase support

Add Phrase support.
new func : NewPhraseListGrammarFromRecognizer, AddPhrase, Clear

Is there any chance this is merged soon? We would like to use it with our implementation as well.

Having Phrase List Grammar feature will be really helpful for our project as well

@czkoko thank you for creating this PR!


DBZ-5359 Use constructor instead of dependency injection

https://issues.redhat.com/browse/DBZ-5359

Thx @ani-sha!


Error upgrading from 2.x to 3.x: The destination vertex must be a vertex record

OrientDB Version: 3.0.10
Java Version: "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11,
mixed mode)
OS: Windows 10 Home
Expected behavior
Until (at least) version 2.2.23
Directly from Studio->Browse, execute the following query:
SELECT percorso from (
	SELECT shortestPath(son, parent, 'OUT', 'hypernym') as percorso from (
		select from (
			select list(son) as son, list(parent) as parent from (
				SELECT EXPAND( $c )
					LET $a = ( select null as son, @rid as parent from synset where lemmas lucene 'animale' and lang='it'),
              				$b = ( select @rid as son, null as parent from synset where lemmas lucene 'gatto' and lang='it' and verified is null ),
					$c = UNIONALL( $a, $b )
                        )
                  ) unwind son, parent
	)
)

Result
PROPERTIES
--

#21:0 #22:0 #23:0 #24:0 #21:1 #22:1 ..More(2)
#21:2 #21:0 #22:0 #23:0 #24:0 #21:1 ..More(3)

Actual behavior
java.lang.IllegalArgumentException: The destinationVertex must be a vertex record
Steps to reproduce
See above. You can use the reduced example db in #8565
I cannot find any upgrade instruction about changes in the sql that could be impacted in the above query.
Please, help, I cannot upgrade in these conditions

Hi @adepase
Are you sure this think worked in v 2.2? I'm asking because shortestPath() function is the same, and it accepts two vertices as "from" and "to"
In this example you are passing two lists, so I'd say a failure is the expected behavior...
Thanks
Luigi

Oh, I think I got it, could you please do a test for me: try to change the "parent" alias with something else (eg. "parent_"), it's probably just a misbehaviour with reserved words
Thanks
Luigi

Sure, you got it! It works (even when incapsulated in the bigger query I didn't post :) ).
I think it would be a good thing to add "parent" to the reserved word list in http://orientdb.com/docs/3.0.x/sql/SQL-Syntax.html#reserved-words
Thank you
Alessandro

Obviously you can close this for me

Hi @adepase
Actually I think it's a bug ;-)
$parent is used to reference the parent query, but parent should be allowed as a normal property/projection name. I'm checking it, probably it's an easy fix
Thanks
Luigi

Anyway, please let us use "ancestor" at least (I don't like underscores and I lack synonyms) :)

Hi @adepase
I pushed a fix, it will be released with v 3.0.11
Thanks
Luigi


Add any open source organization which is not mentioned

Add any open source organization which you know and is not mentioned in the website.

@iriteshmishra Kindly assign this issue to me !


Unable to launch a windows VM

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind enhancement

What happened:
I have downloaded windows 2012 based image (.qcow2 format) from https://cloudbase.it/ and then ran below commands on master node to add it to openshift default registry.
oc login -u kubeadmin -p xx-xxxx-xxx
podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
podman build -t vmidisks/win2k12r2:latest -f ./Dockerfile .
(My Dockerfile has below 2 lines)
FROM scratch
ADD win2k12r2.qcow2 /tmp/
podman tag localhost/vmidisks/win2k12r2 image-registry.openshift-image-registry.svc:5000/openshift/image
podman push image-registry.openshift-image-registry.svc:5000/openshift/image
oc create -f vmi_windows.yaml
details of this file is given in VMI specification
What you expected to happen:
windows VM should be provisioned
How to reproduce it (as minimally and precisely as possible):
This is covered in what happened section
Anything else we need to know?:
it fails with below message
[root@master-0 tmp]# oc get pod
NAME                              READY   STATUS             RESTARTS   AGE
virt-launcher-vmi-windows-mnk4t   1/2     ImagePullBackOff   0          77s
Normal   Pulling     (x3 over 34s)  kubelet, paeprod-worker-1  Pulling image "image-registry.openshift-image-registry.svc:5000/openshift/image"
Warning  Failed      (x3 over 28s)  kubelet, paeprod-worker-1  Failed to pull image "image-registry.openshift-image-registry.svc:5000/openshift/image": rpc error: code = Unknown desc = pinging docker registry returned: Get https://image-registry.openshift-image-registry.svc:5000/v2/: dial tcp 172.xx.xx.xxx:5000: connect: no route to host
Warning  Failed      (x3 over 28s)  kubelet, paeprod-worker-1  Error: ErrImagePull
Normal   BackOff     (x5 over 27s)  kubelet, paeprod-worker-1  Back-off pulling image "image-registry.openshift-image-registry.svc:5000/openshift/image"
Warning  Failed      (x5 over 27s)  kubelet, paeprod-worker-1  Error: ImagePullBackOff
Environment:

KubeVirt version (use virtctl version):
Client Version: version.Info{GitVersion:"v0.25.0", GitCommit:"b755c56f396ed880940821688eaddbd869e33897", GitTreeState:"clean", BuildDate:"2020-01-03T13:13:53Z", GoVersion:"go1.12.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{GitVersion:"v0.20.2", GitCommit:"eb1308c9b403d9d19a9b006e805ca57d014cf40a", GitTreeState:"clean", BuildDate:"2019-08-20T14:10:36Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes version (use kubectl version):

[root@master-0 tmp]# oc version
Client Version: v4.2.13
Server Version: 4.2.14
Kubernetes Version: v1.14.6+b294fe5

VM or VMI specifications:
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
labels:
special: vmi-windows
name: vmi-windows
spec:
domain:
clock:
timer:
hpet:
present: false
hyperv: {}
pit:
tickPolicy: delay
rtc:
tickPolicy: catchup
utc: {}
cpu:
cores: 2
devices:
disks:
- disk:
bus: sata
name: containerdisk
interfaces:
- masquerade: {}
model: e1000
name: default
features:
acpi: {}
apic: {}
hyperv:
relaxed: {}
spinlocks:
spinlocks: 8191
vapic: {}
firmware:
uuid: 5d307ca9-b3ef-428c-8861-06e72d69f223
machine:
type: q35
resources:
requests:
memory: 12Gi
networks:

name: default
pod: {}
terminationGracePeriodSeconds: 0
volumes:

name: containerdisk
containerDisk:
image: image-registry.openshift-image-registry.svc:5000/openshift/image

Cloud provider or hardware configuration:
Baremetal servers

OS (e.g. from /etc/os-release):
Master node is running on CoreOS and worker node is running on CentOS 7.
output from master node is as follows
NAME="Red Hat Enterprise Linux CoreOS"
VERSION="42.81.20191223.0"
VERSION_ID="4.2"
PRETTY_NAME="Red Hat Enterprise Linux CoreOS 42.81.20191223.0 (Ootpa)"
ID="rhcos"
ID_LIKE="rhel fedora"
ANSI_COLOR="0;31"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="OpenShift Container Platform"
REDHAT_BUGZILLA_PRODUCT_VERSION="4.2"
REDHAT_SUPPORT_PRODUCT="OpenShift Container Platform"
REDHAT_SUPPORT_PRODUCT_VERSION="4.2"
OSTREE_VERSION=42.81.20191223.0

worker node output is as below
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Kernel (e.g. uname -a):
Linux master-0 4.18.0-147.3.1.el8_1.x86_64 #1 SMP Wed Nov 27 01:11:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Install tools:
virtctl

Others:

@abhiniveshjain in general most things look ok. I think the only issue is that you are placing the disks in /tmp:

podman build -t vmidisks/win2k12r2:latest -f ./Dockerfile .
(My Dockerfile has below 2 lines)
FROM scratch
ADD win2k12r2.qcow2 /tmp/

They need to be added to /disk to auto-detect it.
An alternative would be to explicitly give the path to the disk in the spec: path: whatever.

Thanks. PODs came up fine after this but VMI is showing in failed state.
[root@master-0 tmp]# oc get vmis
NAME          AGE   PHASE    IP            NODENAME
vmi-windows   45m   Failed   10.x.x.x   worker-0
Following is the error that I am seeing here. Is it /disk that I need to add in DockerFile or /disk/
does one missing "/" at the end causing this?
Phase:             Failed
Qos Class:         Burstable
Events:
Type     Reason            Age                 From                            Message

Normal   SuccessfulCreate  43m                 virtualmachine-controller       Created virtual machine pod virt-launcher-vmi-windows-bjvxn
Warning  SyncFailed        41m (x25 over 41m)  virt-handler, worker-0  failed to find a sourceFile in containerDisk containerdisk: Failed to check /proc/1/root/var/lib/containers/storage/overlay/b1fe5bb24174cd52420f02f0653b54899ee22adcc6b4a8c55b2b205ba0c753da/merged/disk for disks: readdirent: not a directory
Warning  SyncFailed        36m (x5 over 36m)   virt-handler, worker-0  failed to detect socket for containerDisk containerdisk: dial unix /var/run/kubevirt/container-disks/d368bc1f-4841-11ea-bce3-20040fec89f0/disk_0.sock: connect: no such file or directory

Following is the error that I am seeing here. Is it /disk that I need to add in DockerFile or /disk/
does one missing "/" at the end causing this?

Ha yes. It has to go into the /disk folder. So very likely a missing /.

I have changed it and performed whole exercise again, still getting same error. Please see the logs.
My windows image is in .gz format, hope this is ok?
[root@master-0 win]# cat Dockerfile
FROM scratch
ADD  win2k12r2new.qcow2.gz /disk/
VMI failure log.txt

We only support qcow2 and raw.

Also the error said that it still sees a /disk directory. You use the image pull policy IfNotPresent. So your node may not pull the latest image.
So two things: 1) ensure that you have the image uncompressed, 2) ensure that the image gets pulled (e.g. using Always as pull policy).

Looks like something is wrong with the image that I am using. Do you have any idea on below error? This started coming after I extracted .gz file and used that.
Warning  Failed     63s (x2 over 3m50s)            kubelet, worker-0  Failed to pull image "image-registry.openshift-image-registry.svc:5000/default/win2k2012image:latest": rpc error: code = Unknown desc = Error committing the finished image: error adding layer with blob "sha256:d724582939992ef13269b15a70c4f819036dffd4b08a9a89ec9d729aeaef965d": Error processing tar file(exit status 1): unexpected EOF
I have one working .iso image, how can I covert that to .img or .qcow2?

Have you checked https://kubevirt.io/2019/How-To-Import-VM-into-Kubevirt.html ?

Instead of CDI, I am using Container Registry Disks (https://github.com/kubevirt/kubevirt/blob/master/docs/container-register-disks.md ) method. Is there any issue with this method?

There is nothing wrong with it. The only difference is that in the containerDisk case, you can't write permanently to the image. In the case of CDI you can, since the data is stored in a PVC.

"sha256:d724582939992ef13269b15a70c4f819036dffd4b08a9a89ec9d729aeaef965d": Error processing tar file(exit status 1): unexpected EOF

This reminds me of a docker bug where it had issues with layers which were bigger than I think 5 GB. Updating docker normally helps.

Thanks. so Ideally it should work with container disk case also. In place of docker, I am using Podman and it is of below version.
podman version
Version:            1.4.2-stable3
RemoteAPI Version:  1
Go Version:         go1.12.12
OS/Arch:            linux/amd64

There is nothing wrong with it. The only difference is that in the containerDisk case, you can't write permanently to the image. In the case of CDI you can, since the data is stored in a PVC.

"sha256:d724582939992ef13269b15a70c4f819036dffd4b08a9a89ec9d729aeaef965d": Error processing tar file(exit status 1): unexpected EOF

This reminds me of a docker bug where it had issues with layers which were bigger than I think 5 GB. Updating docker normally helps.

Do you suggest to use CDI since in practical purposes, we would be required to change the image? e.g. If I install an application on top of the OS then effectively I am changing the image and these changes need to persist after POD/node reboot. Is this correct understanding?

Were you ultimately able to launch the Windows VM?

Yes I was able to launch it. Thanks for your help.


Move authorization logic to a dedicated ResourcePolicy

This PR moves the authorization logic to a dedicated ResourcePolicy.
This will give devs the ability to customize authorization logic when needed.
Currently, if you need to customize how an action is authorized, you'll have to use the Service Container to rebind every class inside src/Http/Request plus every other class that makes checks using ->hasPermission().
Having a dedicated ResourcePolicy is also more aligned with Statamic, since the process to customize authorization will be exactly the same described in Statamic's docs to customize the EntryPolicy.
For instance:
<?php
// app/Policies/ResourcePolicy.php

namespace App\Policies;

use DoubleThreeDigital\Runway\Policies\ResourcePolicy as RunwayResourcePolicy;
use Illuminate\Auth\Access\HandlesAuthorization;

class ResourcePolicy extends RunwayResourcePolicy
{
    use HandlesAuthorization;

    public function edit($user, $resource)
    {
       // Do custom checks here before running the default ones

        return parent::edit($user, $resource);
    }
}

// app/Providers/AppServiceProvider.php

public function boot()
{
    $this->app->bind(RunwayResourcePolicy::class, ResourcePolicy::class);
}

Something weird is going on with your fork... all of the commits from your previous PR are showing up as separate changes on this PR which makes it difficult to review.
I don't suppose you'd be able to recreate your fork and re-open this PR?

Obviously make a copy of any file changes you've made to your fork.
Delete your fork on GitHub and locally
Fork the Runway repository again & clone it down
Then, for any new PRs you open, create a new branch for the PR (don't create PRs from your main branch, I think that may be what's causing issues here)

If the main branch on your fork becomes out-of-date, GitHub has a 'Sync fork' button to sync your fork with the main repository.

I hope that makes sense?

I've had a quick look, PR looks great, we should have been using policies since the start!
I'll give this a proper review once the fork issue has been resolved.

Then, for any new PRs you open, create a new branch for the PR (don't create PRs from your main branch, I think that may be what's causing issues here)

If the main branch on your fork becomes out-of-date, GitHub has a 'Sync fork' button to sync your fork with the main repository.

Yeah...Sorry for that. Surely this was the problem. I notice that and I wasn't sure if this was normal. I probably did something wrong. I have never contributed to any repo before. So, I don't exactly know what is "right" here. But no worries. I'll try to redo the work on a separate branch. If that doesn't work, I'll fork it again from scratch...

Then, for any new PRs you open, create a new branch for the PR (don't create PRs from your main branch, I think that may be what's causing issues here)

If the main branch on your fork becomes out-of-date, GitHub has a 'Sync fork' button to sync your fork with the main repository.

Yeah...Sorry for that. Surely this was the problem. I notice that and I wasn't sure if this was normal. I probably did something wrong. I have never contributed to any repo before. So, I don't exactly know what is "right" here. But no worries. I'll try to redo the work on a separate branch. If that doesn't work, I'll fork it again from scratch...

Thanks! 👍


Configure WAF association through ingress annotations?

I'm curious if it is feasible to add a feature to attach an AWS Web Application Firewall (WAF) rule to an ALB created by the ingress resource by specifying the rule name in an annotation.
Thanks!

Hi @athal7,
We had a PR from @dix-icomys https://github.com/coreos/alb-ingress-controller/pull/115
But unfortunately fell through the cracks. Can you validate the functionality described in that PR is what you're looking for?
If so, perhaps we can try to integrate this in 1.1.

@joshrosso thanks for the quick response! That functionality is exactly what I'm looking for. Let me know if I can be of help getting it across the finish line.

At this point, it's a matter of rebasing or reworking that PR into the
continued_stabilization branch. If you have cycles to bring that up to
speed and create a PR against the branch I'm open to testing it and getting
it in for 1.0.
On Sep 15, 2017 12:52 PM, "Andrew Thal"<EMAIL_ADDRESS>wrote:

@joshrosso https://github.com/joshrosso thanks for the quick response!
That functionality is exactly what I'm looking for. Let me know if I can be
of help getting it across the finish line.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/alb-ingress-controller/issues/211#issuecomment-329869464,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF6a-SO9dEffv9eQ3MxF2UqlvBC7MHEBks5sisdRgaJpZM4PZRDl
.

I'll see what I can do, what sort of timing are you looking at in terms of cutting the release?

Tracking here https://github.com/coreos/alb-ingress-controller/pull/214

We don't have a hard date yet. I'll keep you posted.
Intuition tells me trying to get a preview out end of this week and possibly cutting something the following week.

Thanks for the work btw!

Should this issue be closed?

Hi,
I had manually associated an existing WAF with ALBs created using the ingress controller, but I've seen that those load balancers are no longer associated to the WAF after a while. I don't understand why, but I guess it has something to do with the alb-ingress-controller.
Could you please tell confirm in which version is the feature avaiable (I'm currently using 487-https-loops).
I haven't found information in the documentation on how to configure it. Is it described somewhere?
Thank you

I think I have found the way to configure it from the source code
So in the annotations of the ingress you have to specify the WAF_ACL_ID:
alb.ingress.kubernetes.io/waf-acl-id: $WAF_ACL_ID
Cheers

@juancho85 Thanks for finding that, definitely a gap in the documentation


Ansys brand icon should be updated to new company branding

We might reach out to them for the icon they want us to use, and say we are looking for a 100x100 png https://www.ansys.com/about-ansys/brand

https://github.com/OSC/bc_osc_ansys_workbench/pull/21
I talked with Alan today and it should now have the updated logo.


[Bug] Running the Mac OS - Homebridge Zigbee2MQTT - doesn't really start up when the Mac OS boots up.

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
I have installed Homebridge on a Mac OS Monterey. I have Mosquitto and Zigbee2MQTT configured. Mosquitto and Zigbee2MQTT - works at system startup which is visible thanks to MQTT Explorer.  I installed the plugin - z2m and prescribed the mqtt address. The plugin rebooted after changing the settings and everything worked! Hooray? No. After the reboot it turned out that it didn't work properly.
The Homebridge log says it's fine.
[3/14/2024, 7:33:24 PM] [homebridge-z2m] Connected to MQTT server
[3/14/2024, 7:33:29 PM] [homebridge-z2m] Zigbee2MQTT is ONLINE
[3/14/2024, 7:33:30 PM] [homebridge-z2m] Using Zigbee2MQTT v1.36.0 (identified via zigbee2mqtt/bridge/info)
but the accessories section was empty.
I restarted the child bridge z2m
and everything worked again.
[3/14/2024, 7:35:16 PM] [homebridge-z2m] Process Ended. Code: 143, Signal: null
[3/14/2024, 7:35:23 PM] [homebridge-z2m] Restarting Process...
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Launched child bridge with PID 1094
[3/14/2024, 7:35:24 PM] Registering platform 'homebridge-z2m.zigbee2mqtt'
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Loaded homebridge-z2m v1.11.0-beta.3 child bridge successfully
[3/14/2024, 7:35:24 PM] Loaded 1 cached accessories from cachedAccessories.0EBEC2A64B1B.
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Connecting to MQTT server at mqtt://<IP_ADDRESS>:1883
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Restoring accessory: test_sw (0xa4c138f3271bad89)
[3/14/2024, 7:35:24 PM] Homebridge v1.7.0 (HAP v0.11.1) (homebridge-z2m) is running on port 59590.
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Connected to MQTT server
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Zigbee2MQTT is ONLINE
[3/14/2024, 7:35:24 PM] [homebridge-z2m] Using Zigbee2MQTT v1.36.0 (identified via zigbee2mqtt/bridge/info)
And so it is every time. To make everything work, after each system reboot you need to reboot z2m.
Related devices
No response
Related Devices
No response
Steps To Reproduce
No response
Expected behavior
z2m works correctly at system startup - automatically
Device entry
No response
Status update
No response
Messages from this plugin
No response
This plugin
1.93
Homebridge
1.7
Zigbee2MQTT
1.36
Homebridge Config UI X (if applicable)
No response

I think this is an issue with your setup.
Is Homebridge started after both your MQTT broker and Zigbee2MQTT are online or not?
Does your MQTT broker support persistent messages and is Zigbee2MQTT using them?

I'm not sure. how do I check it?
What is the correct order and how to set it? Could you please advise?

I think this is an issue with your setup. Is Homebridge started after both your MQTT broker and Zigbee2MQTT are online or not?

That really depends on how you've setup your system.
Personally I'm using a Docker compose file, in which you can explicitly set the dependencies between containers.

I'm not sure. how do I check it? What is the correct order and how to set it? Could you please advise?

I think this is an issue with your setup. Is Homebridge started after both your MQTT broker and Zigbee2MQTT are online or not?

Can you provide the plugin configuration? I use this plugin on catalina, then sonoma without the same problem for two years approx.

@DarkGrey88 It's weird, visually it's the same as my config.

I'm not sure. how do I check it? What is the correct order and how to set it? Could you please advise?

I think this is an issue with your setup. Is Homebridge started after both your MQTT broker and Zigbee2MQTT are online or not?

Can you provide the plugin configuration? I use this plugin with catalina on intel mac mini 2012 for two years approx, then last month on mac mini m2 with sonoma without the same problem

Yesterday I started from scratch. And it seems to me that as long as I just added zigbee devices and rebooted my mac at the same time, everything worked fine. The problem appeared after I enabled child bridge for the z2m plugin. And then after rebooting my mac the devices did not appear again until I rebooted the child bridge z2m plugin.

@DarkGrey88 It's weird, visually it's the same as my config but try to cache_state: true

it works the same even without that line(

Hi everyone,
I think I'm in the right place to ask my question.
I have Homebridge running on Mac OS Sonoma.
Trying to make my Sonoff Zigbee 3.0 usb dongle plus work
I installed Aedes embedded MQTT Broker & Homebridge Zigbee2MQTT
My broker is properly configured because I have a few mqtt switches which work fine
Just put the broker info into Zigbee2MQTT
Can't make it work
Am I missing a step ?
I can read there's a yaml file, where?
Any precious help would be much appreciated.
A very detail procedure would be awesome !
Thx

Hi everyone, I think I'm in the right place to ask my question. I have Homebridge running on Mac OS Sonoma. Trying to make my Sonoff Zigbee 3.0 usb dongle plus work I installed Aedes embedded MQTT Broker & Homebridge Zigbee2MQTT My broker is properly configured because I have a few mqtt switches which work fine Just put the broker info into Zigbee2MQTT Can't make it work Am I missing a step ? I can read there's a yaml file, where? Any precious help would be much appreciated. A very detail procedure would be awesome !

Does your mqtt broker use authorisation?

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

Hi everyone, I think I'm in the right place to ask my question. I have Homebridge running on Mac OS Sonoma. Trying to make my Sonoff Zigbee 3.0 usb dongle plus work I installed Aedes embedded MQTT Broker & Homebridge Zigbee2MQTT My broker is properly configured because I have a few mqtt switches which work fine Just put the broker info into Zigbee2MQTT Can't make it work Am I missing a step ? I can read there's a yaml file, where? Any precious help would be much appreciated. A very detail procedure would be awesome !

Does your mqtt broker use authorisation?

I have a username and a password

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

no I can't access the frontend. How to ?

I have a username and a password

the text configuration of the plugin does not show this

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

no I can't access the frontend. How to ?

you need to install zigbee2mqtt first https://www.zigbee2mqtt.io

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

no I can't access the frontend. How to ?

There's a rough outline of the steps needed to set this up on the plug-in website: https://z2m.dev/install.html
More information about the Zigbee2MQTT frontend, can be found on the Zigbee2MQTT website: https://www.zigbee2mqtt.io/guide/configuration/frontend.html

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

no I can't access the frontend. How to ?

you need to install zigbee2mqtt first https://www.zigbee2mqtt.io for Sonoff Zigbee 3.0 usb dongle plus I would recommend that you flash test fw [20240315] file name CC1352P2_CC2652P_launchpad_coordinator_20240315.hex from Koenkk/Z-Stack-firmware#496

my dongle is already uptodate will try try to install zigbee2mqtt do I choose the python method ?

FYI factory fw is not good
two year ago i'm using this installation metod https://kinori.tech/blog/en/2021/11/19/install-and-run-zigbee2mqtt-on-your-mac/

@LaurentCole Do you also have Zigbee2MQTT running (e.g. can you access its frontend to see that the dongle works)?

no I can't access the frontend. How to ?

you need to install zigbee2mqtt first https://www.zigbee2mqtt.io for Sonoff Zigbee 3.0 usb dongle plus I would recommend that you flash test fw [20240315] file name CC1352P2_CC2652P_launchpad_coordinator_20240315.hex from Koenkk/Z-Stack-firmware#496

my dongle is already uptodate will try try to install zigbee2mqtt do I choose the python method ?

FYI factory fw is not good two year ago i'm using this installation method https://kinori.tech/blog/en/2021/11/19/install-and-run-zigbee2mqtt-on-your-mac/

So I finally manage to install zigbee2mqtt, thx to you for the link
I then install Homebridge Zigbee2MQTT into Homebridge (do I really need it)
Then launched zigbee2mqtt via terminal

<EMAIL_ADDRESS>start
node index.js

[2024-05-21 17:54:06] info: 	z2m: Logging to console, file (filename: log.log)
[2024-05-21 17:54:06] info: 	z2m: Starting Zigbee2MQTT version 1.37.1 (commit #cda867a)
[2024-05-21 17:54:06] info: 	z2m: Starting zigbee-herdsman (0.46.6)
[2024-05-21 17:54:06] info: 	zh:zstack:znp: Opening SerialPort with {"path":"/dev/tty.usbserial-1460","baudRate":115200,"rtscts":false,"autoOpen":false}
[2024-05-21 17:54:06] info: 	zh:zstack:znp: Serialport opened
[2024-05-21 17:54:07] info: 	z2m: zigbee-herdsman started (resumed)
[2024-05-21 17:54:07] info: 	z2m: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20230507,"transportrev":2},"type":"zStack3x0"}'
[2024-05-21 17:54:07] info: 	z2m: Currently 0 devices are joined:
[2024-05-21 17:54:07] warning: 	z2m: permit_join set to  true in configuration.yaml.
[2024-05-21 17:54:07] warning: 	z2m: Allowing new devices to join.
[2024-05-21 17:54:07] warning: 	z2m: Set permit_join to false once you joined all devices.
[2024-05-21 17:54:07] info: 	z2m: Zigbee: allowing new devices to join.
[2024-05-21 17:54:07] info: 	z2m: Connecting to MQTT server at mqtt://<IP_ADDRESS>:1883
[2024-05-21 17:54:07] info: 	z2m: Connected to MQTT server
[2024-05-21 17:54:07] info: 	z2m: Started frontend on port 8080
[2024-05-21 17:54:07] info: 	z2m: Zigbee2MQTT started!
I can access the frontend but I can't add devices
Thought my coordinator was up to date but apparently not, do I really need to.
thx

Hi guys, thx for your help, everything works fine now.
Still I have an issue with the plist file.
I copied & paste the plist lines
Saved the file as 'zigbe2mqtt.application.plist'
Put it in the Launch Deamons folder
But zigbee2mqtt doesn''t start when I restart the mac
Do I need to modify this line :
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
:-)

Hi guys, thx for your help, everything works fine now. Still I have an issue with the plist file. I copied & paste the plist lines Saved the file as 'zigbe2mqtt.application.plist' Put it in the Launch Deamons folder
But zigbee2mqtt doesn''t start when I restart the mac
Do I need to modify this line : ![CDATA[/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin]]>
:-)

my plist located in /Library/LaunchDaemons/zigbee2mqtt.plist is:

where /Users/m/ is the z2m installation dir
also check the permissions of the plist:
owned with r/w by system
read-only group wheel

Hi guys, thx for your help, everything works fine now. Still I have an issue with the plist file. I copied & paste the plist lines Saved the file as 'zigbe2mqtt.application.plist' Put it in the Launch Deamons folder
But zigbee2mqtt doesn''t start when I restart the mac
Do I need to modify this line : ![CDATA[/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin]]>
:-)

my plist located in /Library/LaunchDaemons/zigbee2mqtt.plist is:
where /Users/m/ is the z2m installation dir also check the permissions of the plist: owned with r/w by system read-only group wheel
to stop manually (change daemon name to you own) : sudo launchctl bootout system/zigbee2mqtt
to update z2m (change path to z2m dir you own): sudo /Users/m/zigbee2mqtt/update.sh
to run manually (change plist file name to you own): sudo launchctl bootstrap system /Library/LaunchDaemons/zigbee2mqtt.plist

thx
will try that & tell you the result

will try that & tell you the result

I'm using Sonoma, our work dirs and file names may be different.

Hi guys, thx for your help, everything works fine now. Still I have an issue with the plist file. I copied & paste the plist lines Saved the file as 'zigbe2mqtt.application.plist' Put it in the Launch Deamons folder
But zigbee2mqtt doesn''t start when I restart the mac
Do I need to modify this line : ![CDATA[/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin]]>
:-)

my plist located in /Library/LaunchDaemons/zigbee2mqtt.plist is:
where /Users/m/ is the z2m installation dir also check the permissions of the plist: owned with r/w by system read-only group wheel
to stop manually (change daemon name to you own) : sudo launchctl bootout system/zigbee2mqtt
to update z2m (change path to z2m dir you own): sudo /Users/m/zigbee2mqtt/update.sh
to run manually (change plist file name to you own): sudo launchctl bootstrap system /Library/LaunchDaemons/zigbee2mqtt.plist

thx will try that & tell you the result

How do I set these persons via terminal ?

will try that & tell you the result

I'm using Sonoma on M2 Mac Mini, our work dirs and file names may be different.

I need to write this in terminal to make it work manually :
plex@mac-mini-de-plex ~ % cd /Applications/zigbee2mqtt
plex@mac-mini-de-plex zigbee2mqtt % npm start
Then my plist file is like that but cannot make it work.

Label
zigbe2mqtt.application.plist
EnvironmentVariables

PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

WorkingDirectory
/Applications/zigbee2mqtt
ProgramArguments

/user/local/bin/npm
start

RunAtLoad

KeepAlive

will try that & tell you the result

I'm using Sonoma on M2 Mac Mini, our work dirs and file names may be different.

Hi,
thx for the help but still cannot make my plist file working at boot.
I have correct permissions on the plist file
Do you have any idea what is wrong, could you help me a bit more?
:-)

will try that & tell you the result

I'm using Sonoma on M2 Mac Mini, our work dirs and file names may be different.

Hi, thx for the help but still cannot make my plist file working at boot. I have correct permissions on the plist file
Do you have any idea what is wrong, could you help me a bit more? :-)

I used another program.
I have installed Windscribe(VPN). When it was installed, it created and placed its plist in the autoloader. Then I disabled autorun in the program settings and replaced the contents of the plist file with what I needed.

Hi
I have this error when
sudo launchctl bootstrap system /Library/LaunchDaemons/zigbee2mqtt.plist
Bootstrap failed: 5: Input/output error


Use the Hugo getJson Function instead of having a seperate dowload script

Not entirely sure this is a good idea, but now the downloading and transforming of the calendar is handled by hugo instead of standalone script

Deploying preview to https://xHain-hackspace-xhain-website-pr-72.surge.sh

lol, I'm bad at git, I'll remove the change that were previously merged

Nice. This would keep everything in the hugo build process and we can remove data/calendar.json from the repository.


Simple compilation on macOS x86_64 only

Hi,
I've been trying to compile the examples, but it seems that one has to cross-compile by default. Is there any basic example that compiles on x86_64 only? Even so, I'm not even able to get the cross-compilation outcome:
I'm on rustc version  1.61.0 and I installed cargo-make, and install the following as advised:
rustup target add x86_64-pc-windows-gnu
rustup target add aarch64-apple-darwin
rustup toolchain install stable-x86_64-pc-windows-gnu

This occurs without errors
then
cargo make package-all

to get the following
simp $ cargo clean
simp $ cargo make package-all
[cargo-make] INFO - cargo make 0.35.12
[cargo-make] INFO - Project: simp
[cargo-make] INFO - Build File: Makefile.toml
[cargo-make] INFO - Task: package-all
[cargo-make] INFO - Profile: development
[cargo-make] INFO - Running Task: legacy-migration
[cargo-make] INFO - Execute Command: "cargo" "build" "--target" "x86_64-pc-windows-gnu"
   Compiling autocfg v1.1.0
   Compiling proc-macro2 v1.0.39
   Compiling ucd-trie v0.1.3
   Compiling unicode-ident v1.0.0
   Compiling syn v1.0.95
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling winapi v0.3.9
   Compiling parking_lot_core v0.8.5
   Compiling cfg-if v1.0.0
   Compiling smallvec v1.8.0
   Compiling scopeguard v1.1.0
   Compiling max-sys v0.1.0 ($HOME/Downloads/src/median/max-sys)
   Compiling paste v1.0.7
   Compiling lazy_static v1.4.0
   Compiling pest v2.1.3
   Compiling instant v0.1.12
   Compiling memoffset v0.6.5
   Compiling lock_api v0.4.7
   Compiling semver-parser v0.10.2
   Compiling semver v0.11.0
   Compiling quote v1.0.18
   Compiling rustc_version v0.3.3
   Compiling field-offset v0.3.4
   Compiling parking_lot v0.11.2
   Compiling median v0.1.1 ($HOME/Downloads/src/median/median)
   Compiling median_macros v0.1.0 ($HOME/Downloads/src/median/median_macros)
warning: cross-crate traits with a default impl, like `Send`, should not be specialized
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:837:1
    |
837 | unsafe impl<T: Send> Send for MaxObjWrapper<T> {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(suspicious_auto_trait_impls)]` on by default
    = warning: this will change its meaning in a future release!
    = note: for more information, see issue #93367 <https://github.com/rust-lang/rust/issues/93367>
note: try using the same sequence of generic parameters as the struct definition
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:151:1
    |
151 | / pub struct Wrapper<O, I, T> {
152 | |     s_obj: O,
153 | |     wrapped: MaybeUninit<I>,
154 | |     _phantom: PhantomData<T>,
155 | | }
    | |_^
    = note: `max_sys::object` is not a generic parameter

warning: cross-crate traits with a default impl, like `Send`, should not be specialized
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:838:1
    |
838 | unsafe impl<T: Send> Send for MSPObjWrapper<T> {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this will change its meaning in a future release!
    = note: for more information, see issue #93367 <https://github.com/rust-lang/rust/issues/93367>
note: try using the same sequence of generic parameters as the struct definition
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:151:1
    |
151 | / pub struct Wrapper<O, I, T> {
152 | |     s_obj: O,
153 | |     wrapped: MaybeUninit<I>,
154 | |     _phantom: PhantomData<T>,
155 | | }
    | |_^
    = note: `t_pxobject` is not a generic parameter

warning: cross-crate traits with a default impl, like `Sync`, should not be specialized
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:839:1
    |
839 | unsafe impl<T: Sync> Sync for MaxObjWrapper<T> {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this will change its meaning in a future release!
    = note: for more information, see issue #93367 <https://github.com/rust-lang/rust/issues/93367>
note: try using the same sequence of generic parameters as the struct definition
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:151:1
    |
151 | / pub struct Wrapper<O, I, T> {
152 | |     s_obj: O,
153 | |     wrapped: MaybeUninit<I>,
154 | |     _phantom: PhantomData<T>,
155 | | }
    | |_^
    = note: `max_sys::object` is not a generic parameter

warning: cross-crate traits with a default impl, like `Sync`, should not be specialized
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:840:1
    |
840 | unsafe impl<T: Sync> Sync for MSPObjWrapper<T> {}
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = warning: this will change its meaning in a future release!
    = note: for more information, see issue #93367 <https://github.com/rust-lang/rust/issues/93367>
note: try using the same sequence of generic parameters as the struct definition
   --> $HOME/Downloads/src/median/median/src/wrapper.rs:151:1
    |
151 | / pub struct Wrapper<O, I, T> {
152 | |     s_obj: O,
153 | |     wrapped: MaybeUninit<I>,
154 | |     _phantom: PhantomData<T>,
155 | | }
    | |_^
    = note: `t_pxobject` is not a generic parameter

warning: `median` (lib) generated 4 warnings
   Compiling simp v0.1.0 ($HOME/Downloads/src/median/median/examples/simp)
error: linker `x86_64-w64-mingw32-gcc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `simp` due to previous error
[cargo-make] ERROR - Error while executing command, exit code: 101
[cargo-make] WARN - Build Failed.

@shakfu sorry it has taken so long for me to respond, for some reason I didn't have notifications set up for this repo.
I think you should just be able to do cargo make package to build only for your host OS and architecture

@x37v Thanks, I got it working now :smile:
I think the whole cross-compilation section is too advanced and high up in the initial median README.md and may be the source of some confusion (like mine) that this is a requirement to compile.
May I suggest that you insert something like the following above it:
To compile an example, cd into its folder in median/examples and
cargo make build
cargo make package
cargo make install

@shakfu I updated the median/README.md a bit.. what do you think?

@x37v Excellent.
In fact, I learned something new: that cargo make install triggers the prior commands.
Thanks very much 👍


encounter ConnectionError when executing data_selection.sh

Hi Xingcheng, thanks for the great work and releasing the code.
I first download and run ./bin/elasticsearch, then execute bash example_scripts/data_selection.sh. But  I've encountered an error:
elasticsearch.exceptions.ConnectionError: ConnectionError(('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))) caused by: ProtocolError(('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')))
Could you help me to fix this error? Is there anything I missed about elasticsearch?

Hi. I'm sorry have no clear recollection about this error in my experience. My suggestions are

Make sure elasticsearch is really started after executing ./bin/elasticsearch by curl localhost:9200.
Make sure elasticsearch is hosted on the same port with the client in the data selection script (port 9200 by default).

Thanks for the quick reply!
curl only gets curl: (52) Empty reply from server, and elasticsearch returns:
[2022-03-08T02:58:46,651][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/<IP_ADDRESS>:9200, remoteAddress=/<IP_ADDRESS>:53090}
It seems that elasticsearch is not started. I found this answer. So do I need to install Kibana too?

Hi Xingcheng, thanks for the great work and releasing the code.
I first download and run ./bin/elasticsearch, then execute bash example_scripts/data_selection.sh. But I've encountered an error: elasticsearch.exceptions.ConnectionError: ConnectionError(('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))) caused by: ProtocolError(('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')))
Could you help me to fix this error? Is there anything I missed about elasticsearch?

Just make some change on the file 'config/elasticsearch.yml'
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl:
  enabled: false
xpack.security.transport.ssl:
  enabled: false

Don't know why, but works.


.Net Reorder Example Numbers

Motivation and Context
Resolves #3978

Dropping this as we will restructure the Examples.


Feature: Add support for Data Profiling Scan

resolves https://github.com/dbt-labs/dbt-bigquery/issues/1330

Problem
Dataplex data profiling lets you identify common statistical characteristics of the columns in your BigQuery tables. This information helps you to understand and analyze your data more effectively.

https://cloud.google.com/dataplex/docs/data-profiling-overview?hl=en

If you are managing tables with dbt, it is natural to want to configure Data Profile Scan in a yaml file. If data profiling could be set within dbt after the table is created, it would make it easier for dbt users to use the data profiling function.
Solution
I created this pull request to add support for Data Profiling Scan. If you write the following in dbt_project.yml and then run dbt run, the Data Profile Scan settings will be configured automatically.
models:
  +on_schema_change: "sync_all_columns"
  my_project:
    +persist_docs:
      relation: true
      columns: true
    sandbox:
      +schema: sandbox
      +materialized: table
      +data_profile_scan:
        location: us-central1
        sampling_percent: 10
        enabled: "{{ target.name == 'prod'}}"

You can also specify Data Profile Scan settings for individual model files, rather than dbt_project.yml.
version: 2
models:
  - name: my_table
    config:
      data_profile_scan:
        location: us-central1
        scan_id: my_profile_scan
        sampling_percent: 10
        row_filter: "TRUE"

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

@colin-rogers-dbt @VersusFacit Could you review this pull request?
I can also make a pull request to fix the documentation for BigQuery configurations, so please let me know if you need this 👍. If you need it, it would be helpful if you could let me know if you need it before this pull request is merged or if it would be sufficient after it is merged.

@mikealfare @colin-rogers-dbt Could you review this pull request? It seems that many users are waiting for this feature to be incorporated into dbt-bigquery.

I can also make a pull request to fix the documentation for BigQuery configurations, so please let me know if you need this 👍. If you need it, it would be helpful if you could let me know if you need it before this pull request is merged or if it would be sufficient after it is merged.


Implements configurable models

This PR adds configurable models and addresses issue #39.
The configuration has been implemented in the same exact style as in the other Laravel Cashier packages.
I doesn't add any new behavior and existing tests are passing. Tests of the configurability have been added.

Also, there's some tests failing. Probably an easy fix.

The code that made tests fail has been fixed.

Thanks @nicolaibaaring !
I noticed a large number of lingering imports even after this commit: https://github.com/mollie/laravel-cashier-mollie/pull/48/commits/d6e48d823a222078f1ff30f88b16ebc236daa504
Can you double check this?

@sandervanhooft, did you verify, if this is completed, and is there any chance that this can be merged?

All well!
Just curious: what sparked this? What default behaviour were you missing?


Support for Waltti routes

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
Currently the custom component doesn't support Waltti routes. This is easy to implement, as the GraphQL route URL is a bit different from that of HSL, e.g. https://api.digitransit.fi/routing/v1/routers/waltti/index/graphql instead of https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql
Describe the solution you'd like
Make it possible to choose between HSL and Waltti for routes and timetables.
Describe alternatives you've considered
Forking the repo to modify the code from HSL to Waltti, but I feel like it would serve more people to just modify the GraphQL client to take into account other vendors, such as Waltti.
Additional context

Hello,
Thanks for sharing this. The original design used the generic national digitransit endpoints, which combine lots of regions' data and worked for most things, but were missing a few HSL-specific bits of data, which is why I switched it over to use the HSL-only endpoints in the most recent version.
Ideally, we could just use national endpoints with no problems, but that doesn't seem feasible at the moment.
I've not tried the Waltti-specific endpoint at all yet, and you're quite right that it's probably possible to offer those two with minimal work, and meet the needs of a lot of users beyond the capital region.
I'll try it, hopefully this week, and post an update here.

Hello again,
This was quite straightforward, so I went ahead and released v0.3.0, which adds support for Waltti stops. From testing, it seems like only the GTFS ID works for these stops (get this from the Reittiopas stop page URL, as described in the README).
I'm planning to refactor the config flow a little in connection with Station support, so hopefully the onboarding process can be improved soon.
Feel free to reply here, or open a new issue, if you have any trouble getting it set up.


Incremental Fetching - Change Tracking mechanism

How difficult it would be to implement Change Tracking mechanism?

#156


Add possibility to get the most popular tags dynamically

Add possibility to get the most popular tags dynamically instead of using hardcoded values for popular topics.

Done


Cannot access Donkeycar directory or d2 for car calibrations

Hi guys im still very new to donkeycars and I am now having an issue where I cant seem to access the donkey directory after successfully connecting the IP address and through SSH? When we try to load up the donkey car directory, it says it does not exist. Wroscoe was nice to provide a zipped disk image for our Raspberry Pi 3 B+ however, we just cant seem to access the directory. After typing in the script 'nano ~/d2/config.py'  we are then brought to the GMU nano 2.7.4 with "Directory '~d2' does not exist)." We really do not know what is wrong as when we type in the following script 'git clone https://github.com/wroscoe/donkey.git donkeycar' we are left with 'fatal: destination path 'donkeycar' already exists and is not an empty directory.' My assumption would be that the donkey car directory and d2 should be accessible so that we may start calibrating our car. Can anyone please help out? Thank you

If you used the prebuilt zipped disk image like you said you did, everything is already set up for you, so you do not need to type the command git clone https://github.com/wroscoe/donkey.git donkeycar. What this command does is download the donkeycar source code from github into the donkeycar directory, but the directory is already their on the prebuilt disk image so you get an error. What you need to do is update the source code, not download it. To do that, move into the source code directory with the command cd ~/donkeycar, and then type git pull && sudo pip install -e. This will update the source code. If you get any errors, let me know. After updating the source code, you must create a car directory. this directory will be the directory that all your cars data will be stored in - pictures it takes, calibration data, settings, models, etc.  To create this directory, simply type donkey createcar --path ~/d2 then everything should work properly. Hope this helps!

"Directory '~d2' does not exist" suggests that you miss-typed the 'nano ~/d2/config.py'.
Since '~' is your home directory, '~/d2' would be a 'd2' subdirectory under your home directory.
Try just using cd to change your current directory to '~/d2':
cd ~/d2
then you can use nano to edit the config.py file:
nano config.py

You can always create a new "car app" with the command donkey createcar --path ~/d2


Allow public IAM @auth on @function outside of @model

This subject keeps coming up in a number of issues but there is never any resolution.
This questions specifically

Hey @CodySwannGT
The warning question specifically is used is meant to highlight userPools and OIDC providers not using static group authorization (ex. owner authorization, dynamic group authorization). Those rules are mainly supported for @model. Should you use @auth on a @function outside of @model you are limited to using static group authorization under userPools and OIDC.
Marking this as a documentation task as well to add to our docs.


Create Beautiful_matrix(Codeforces).cpp

making a matrix beautiful by locating '1' at middle position and '0' at other positions

please star the repo , thanks :)


[RFC] check adb runnable before starting scrcpy

There are many user who encounters missing adb.
To stop things happens again, we check it and show
sexy response to user.
In the first version, I only check in linux. If you like this idea, I will continue to finish windows part.
Thanks.
Signed-off-by: yuchenlin<EMAIL_ADDRESS>

There are many user who encounters missing adb.
To stop things happens again, we check it and show sexy response to user.

I agree, this is a good idea to show a better error message than:
ERROR: "adb push" returned with value 1

However, I think the detection should not rely on the existence of the binary (iterating over PATH directories): it's just an heuristic which will probably fail in some corner cases.
Instead, we can report this problem properly if exec() fails + errno (which is distinguishable from the command exited with a signal or a non-zero value).
In this case, cmd_execute() would need the parent process to wait for the child process until it has exec() (but not until it has terminated, the server is long-lived). For example using pipe2() with flag O_CLOEXEC and make the child write something if exec fails (and auto-close otherwise), and the parent executing a blocking read().
Then it would report this information back to the caller in some way (its signature should be changed).

Hi, @rom1v
I agree that it's just an heuristic method. However, I think the execvp is done by this method and I found the implementation of execvp which proves my assertion. The original idea is to find how does exec do and extract the part we need. If you don't like this method, I will re-write the code base on your advice. Thank you.
Sincerely.

However, I think the execvp is done by this method and I found the implementation of execvp which proves my assertion.

Then, this is a good reason to use the result of exec() instead of reimplementing it :)

Thank you for your advice. I will write a prototype these days.

Hi, @rom1v
I have modified the commit base on your advice.
In linux, the cmd_execute() will return child exec state (0: success, -1: cmd_execute fail, otherwise: errno) now.
We can check child state in adb_execute() and show some sexy response to user.
The result will look like:
ERROR: Missing adb. You need adb, accessible from your PATH to execute scrcpy.
ERROR: Could not execute "adb push"

Thanks.

Hi, @rom1v
Thank you for your effort and time. All look good to me.
btw, I am not familiar with coding in Windows. I will take a look to survey how to detect it in Windows related system recently.
Sincerely,
yuchenlin

Merged in dev: https://github.com/Genymobile/scrcpy/commit/6d2d803003c231df9df3343eb73edf97d9ac3c76
I added another commit not to handle errno from the common command.c: https://github.com/Genymobile/scrcpy/commit/bf32f25170d32a5c2f53f0fc7043841cc6d24b2b

I will take a look to survey how to detect it in Windows related system recently.
:+1:
If you have a solution, now you can just return PROCESS_ERROR_MISSING_BINARY :wink:


UIAPPS-167 Start kitchen sink

Motivation

Jira Issue: https://datadoghq.atlassian.net/browse/UIAPPS-167
We want to provide a template that brings together everything in a showcase-style. It's not intended to be useful as a starting point like the other templates.

Changes

We create a template that brings together all the stuff we've done for the other templates. This is almost entirely copy/paste.

Testing

This is likely best tested once we have support for templates in the Datadog UI. We are almost assuredly going to need to make adjustments to this template afteward.

Releases
Choose one:

[x] No release is necessary.
If you're only updating examples/documentation, this is likely what you want.
[ ] All packages that need a release have a changeset.

Current dependencies on/for this PR:

master

PR #140

PR #141   (this PR)

This comment was auto-generated by Graphite.

Thanks for the review!


New high-level api module (QuickTx)

Enhancement : https://github.com/bloxbean/cardano-client-lib/issues/163
This PR introduces new high-level api called "QuickTx".
There is also a new interface "TransactionEvaluator" to calculate script cost.
Currently we have only one implementation for this new interface. "Blockfrost" .  But the goal is to add more TransactionEvaluator implementations in future. For example: Aiken for offline tx evaluation.
Status: We have enough integration tests for the new apis. Unit tests will be added in next PR.
It provides three main interfaces

Tx : For transaction from a regular account
ScriptTx : For script transactions
QuickTxBuilder :  Transaction builder which composes multiple Tx or ScriptTx to build the final transaction

Example:

Simple Payment

        QuickTxBuilder quickTxBuilder = new QuickTxBuilder(backendService);
        Tx tx = new Tx()
                .payToAddress(receiver1, Amount.ada(1.5))
                .payToAddress(receiver2, Amount.ada(2.5))
                .attachMetadata(MessageMetadata.create().add("This is a test message"))
                .from(sender1Addr);

        Result<String> result = quickTxBuilder.compose(tx)
                .withSigner(SignerProviders.signerFrom(sender1))
                .complete();

Compose multiple regular transactions

       Tx tx1 = new Tx()
                .payToAddress(receiver1, Amount.ada(1.5))
                .payToAddress(receiver2, Amount.ada(2.5))
                .attachMetadata(MessageMetadata.create().add("This is a test message 2"))
                .from(sender1Addr);

        Tx tx2 = new Tx()
                .payToAddress(receiver3, Amount.ada(4.5))
                .from(sender2Addr);

        Result<String> result = quickTxBuilder
                .compose(tx1, tx2)
                .feePayer(sender1Addr)
                .withSigner(SignerProviders.signerFrom(sender1))
                .withSigner(SignerProviders.signerFrom(sender2))
                .completeAndWait(System.out::println);

Mint transaction

     Tx tx = new Tx()
                    .mintAssets(policy.getPolicyScript(), new Asset(assetName, qty), sender1.baseAddress())
                    .attachMetadata(MessageMetadata.create().add("Minting tx"))
                    .from(sender1.baseAddress());

      Result<String> result = quickTxBuilder.compose(tx)
                    .withSigner(SignerProviders.signerFrom(sender1))
                    .withSigner(SignerProviders.signerFrom(policy))
                    .complete();

A complex script transaction with multiple script invocations and mints

      ScriptTx scriptTx = new ScriptTx()
                .collectFrom(spendingUtxoOptional.get(), plutusData)
                .payToAddress(receiver2, Amount.lovelace(scriptAmt))
                .mintAsset(mintingScript, asset, PlutusData.unit(), sender2Addr)
                .mintAsset(plutusScript1, asset1, BigIntPlutusData.of(1), receiver1)
                .mintAsset(plutusScript2, asset2, BigIntPlutusData.of(2), sender1Addr)
                .mintAsset(plutusScript3, asset3, BigIntPlutusData.of(3), receiver1)
                .attachSpendingValidator(spendingScript)
                .withChangeAddress(sender2Addr);

        Result<String> result1 = quickTxBuilder.compose(scriptTx)
                .feePayer(sender2Addr)
                .withSigner(SignerProviders.signerFrom(sender1))
                .withSigner(SignerProviders.signerFrom(sender2))
                .mergeChangeOutputs(false)
                .withTxInspector(txn -> System.out.println(JsonUtil.getPrettyJson(txn)))
                .completeAndWait(System.out::println);

How does this work item play with the whole suppliers package idea?

How does this work item play with the whole suppliers package idea?

@matiwinnetou
QuickTxBuilder internally depends only on supplier apis. For convenience, one of the constructor takes BackendService instance and extracts required suppliers from there.
But there is an another constructor with suppliers
QuickTxBuilder(UtxoSupplier utxoSupplier, ProtocolParamsSupplier protocolParamsSupplier,
                          TransactionProcessor transactionProcessor)


Build Script Should Provision Yarn If It's Not Set Up

If a user does not have yarn globally installed and available on the command line when they run the dev_setup.sh script, it will throw an error on running npm install, as we are now using a yarn.lock file.
Recommended fix: update the setup script to install yarn globally if it is not found on the command line.
Execute yarn global add vs npm global install,  and update the install command to yarn.

Would be a great thing to add to the dev_setup script.  Please submit a PR if you're so inclined.


Is it possible to use a custom pickler for System.Collections.Immutable.ImmutableList ?

Here's what I've tried:
#r "nuget:FsPickler"

open System.IO
open System.Collections.Immutable
open MBrace.FsPickler

let mkPickler<'t> (resolver : IPicklerResolver) =
    let seqPickler = resolver.Resolve<'t seq> ()

    let writer (w : WriteState) (ns : ImmutableList<'t>) =
        seqPickler.Write w "value" (ns :> 't seq)

    let reader (r : ReadState) : ImmutableList<'t> =
        ImmutableList.CreateRange<'t>(seqPickler.Read r "value")

    Pickler.FromPrimitives(reader, writer)

let resolver : IPicklerResolver =
    let registry = CustomPicklerRegistry()
    registry.RegisterFactory mkPickler
    PicklerCache.FromCustomPicklerRegistry registry

let binarySerializer = FsPickler.CreateBinarySerializer(picklerResolver = resolver)

let storeAndCount value =
    use s = new MemoryStream()
    binarySerializer.Serialize (s, value)
    s.ToArray().Length

let items = seq { 1 .. 100 }
let immutableList = ImmutableList.CreateRange items

printfn "Storing items gives %d bytes" (storeAndCount items)
printfn "Storing ImmutableList gives %d bytes" (storeAndCount immutableList)

But the ImmutableList doesn't seem to trigger my serializer:
Storing items gives 213 bytes
MBrace.FsPickler.NonSerializableTypeException: Type 'System.Collections.Immutable.ImmutableList`1[System.Int32]' is not serializable.
   at MBrace.FsPickler.Utils.Exn`1.get_Value() in C:\Users\eitsarpa\devel\mbrace\FsPickler\src\FsPickler\Utils\Utils.fs:line 59
   at MBrace.FsPickler.PicklerCache.MBrace-FsPickler-IPicklerResolver-Resolve[T]() in C:\Users\eitsarpa\devel\mbrace\FsPickler\src\FsPickler\PicklerGeneration\PicklerCache.fs:line 75
   at MBrace.FsPickler.FsPicklerSerializer.Serialize[T](Stream stream, T value, FSharpOption`1 pickler, FSharpOption`1 streamingContext, FSharpOption`1 encoding, FSharpOption`1 leaveOpen) in C:\Users\eitsarpa\devel\mbrace\FsPickler\src\FsPickler\FsPickler\Serializer.fs:line 60
   at FSI_0004.storeAndCount[a](a value) in C:\Users\markl\AppData\Local\Temp\uw5uvhcg..fsx:line 27
   at <StartupCode$FSI_0004>.$FSI_0004.main@() in C:\Users\markl\AppData\Local\Temp\uw5uvhcg..fsx:line 34
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
Stopped due to error

We need to do something like this to perform customization:
    open Akka.Serialization
    //open Akka.FSharp.Serialization
    open FAkka.Util.FsPicklerExtension
    open Akka.Actor
    open MBrace.FsPickler
    open System.Threading.Tasks
    open Microsoft.FSharp.Quotations
    open Argu
    open System
    open FAkka.Util.Common

    let taskPickler<'T> (resolver : IPicklerResolver) =
        let toPickler = resolver.Resolve<'T> ()

        let writer (w : WriteState) (t : Task<'T>) =
            toPickler.Write w "result" t.Result

        let reader (r : ReadState) =
            let result = toPickler.Read r "result"
            task {return result}

        Pickler.FromPrimitives(reader, writer)

    let internal serializeToBinary (fsp:BinarySerializer) o =
            use stream = new System.IO.MemoryStream()
            fsp.Serialize(stream, o)
            stream.ToArray()

    let internal deserializeFromBinary<'t> (fsp:BinarySerializer) (bytes: byte array) =
            use stream = new System.IO.MemoryStream(bytes)
            fsp.Deserialize<'t> stream

    //let mutable cacheOpt: PicklerCache option = None

    let registry = new CustomPicklerRegistry()

    let mutable cacheOpt : PicklerCache option = None

    type ExprSerializer(system) =
        inherit Serializer(system)

        let fsp =
            let cache =
                match cacheOpt with
                | None ->

                    let p1 = iActorRefPickler<Akka.Actor.RepointableActorRef> system
                    let p2 = iActorRefPickler<IActorRef>                      system
                    let p3 = iActorRefPickler<LocalActorRef>                  system
                    let p4 = iActorRefPickler<EmptyLocalActorRef>             system
                    let p5 = iActorRefPickler<RootGuardianActorRef>           system
                    //let registry = new CustomPicklerRegistry()
                    let _ = registry.RegisterFactory mkPickler
                    let _ = registry.RegisterFactory p1
                    let _ = registry.RegisterFactory p2
                    let _ = registry.RegisterFactory p3
                    let _ = registry.RegisterFactory p4
                    let _ = registry.RegisterFactory p5
                    let _ = registry.DeclareSerializable<Address>()
                    let _ = registry.RegisterFactory (genPathPickler<ChildActorPath> ())
                    let _ = registry.RegisterFactory (genPathPickler<RootActorPath> ())
                    let _ = registry.RegisterFactory taskPickler<string>
                    let _ = registry.RegisterFactory taskPickler<ImmutableHashSet<string> option>
                    cacheOpt <- Some <| PicklerCache.FromCustomPicklerRegistry registry
                    cacheOpt.Value
                | Some v -> v
            FsPickler.CreateBinarySerializer(picklerResolver = cache)
        //do
        //    registry.DeclareSerializable<System.Collections.Immutable.ImmutableHashSet<string>>()
        override __.Identifier = 99
        override __.IncludeManifest = true
        override __.ToBinary(o) = serializeToBinary fsp o
        override __.FromBinary(bytes, _) = deserializeFromBinary fsp bytes

    ///[DEPRECATED] registerForkFlowType 取代
    let exprSerializationSupport (system: ActorSystem) =
        let serializer = ExprSerializer(system :?> ExtendedActorSystem)
        system.Serialization.AddSerializer("FSharpExpr", serializer)
        system.Serialization.AddSerializationMap(typeof<Expr>, serializer)

You need to provide the generic type parameter:

open System.IO
open System.Collections.Immutable
open MBrace.FsPickler

let mkPickler<'t> (resolver : IPicklerResolver) =
    let tPickler = resolver.Resolve<'t> ()
    let intPickler = resolver.Resolve<int> ()

    let writer (w : WriteState) (ns : ImmutableList<'t>) =
        let tArr = ns |> Seq.toArray
        intPickler.Write w "cnt" tArr.Length
        tArr
        |> Array.iter (fun t ->
            tPickler.Write w "value" t
        )

    let reader (r : ReadState) : ImmutableList<'t> =
        let l = intPickler.Read r "cnt"
        let tArr =
            [|0..(l-1)|]
            |> Array.map (fun _ ->
                tPickler.Read r "value"
            )
        ImmutableList.CreateRange<'t> tArr

    Pickler.FromPrimitives(reader, writer)

let resolver : IPicklerResolver =
    let registry = CustomPicklerRegistry()
    registry.RegisterFactory mkPickler
    PicklerCache.FromCustomPicklerRegistry registry

let p = mkPickler<int> resolver

let binarySerializer = FsPickler.CreateBinarySerializer() //picklerResolver = resolver)

let storeAndCount value =
    use s = new MemoryStream()
    binarySerializer.Serialize (s, value, p)
    s.ToArray().Length

let items = seq { 1 .. 100 }
let immutableList = ImmutableList.CreateRange items

printfn "Storing ImmutableList gives %d bytes" (storeAndCount immutableList)

let resolver2 : IPicklerResolver =
    let registry = CustomPicklerRegistry()
    registry.RegisterFactory mkPickler<int>
    PicklerCache.FromCustomPicklerRegistry registry

let binarySerializer = FsPickler.CreateBinarySerializer(picklerResolver = resolver2)

let storeAndCount2 value =
    use s = new MemoryStream()
    binarySerializer.Serialize (s, value)
    s.ToArray().Length

printfn "Storing items gives %d bytes" (storeAndCount2 items)
printfn "Storing ImmutableList gives %d bytes" (storeAndCount2 immutableList)

    /// Registers a user-specified pickler factory
    member __.RegisterFactory<'T>(factory : IPicklerResolver -> Pickler<'T>) : unit =
        registerPickler (fun () -> picklerFactories.[typeof<'T>] <- fun r -> factory r :> Pickler)

Hi @marklam ,
I implemented a version supporting type with generic parameter. And I push it here (I compiled FsPickler with .net 9)
(FsPickler9)[https://github.com/ingted/FsPickler9]
And the picklerFactory register code should be declared with a static method...
Even though .NET 9 is likely to be the last version for FsPickler, as BinaryFormatter is no longer supported—a tear of the times—if it's still useful, please take it.
open System
open System.IO
open System.Collections.Immutable
open MBrace.FsPickler

type A () =
    static member mkPickler<'t> (resolver : IPicklerResolver) = //: Pickler<ImmutableList<'t>> =
        let tt = typeof<'t>
        let seqPickler = resolver.Resolve<'t seq> ()

        let writer (w : WriteState) (ns : ImmutableList<'t>) =
            seqPickler.Write w "value" (ns :> 't seq)

        let reader (r : ReadState) : ImmutableList<'t> =
            ImmutableList.CreateRange<'t>(seqPickler.Read r "value")

        Pickler.FromPrimitives(reader, writer) //:> Pickler

let mkPickler (t:Type) (argTyps:Type[]) (resolver : IPicklerResolver) =
    let methodTypArg = t.GetGenericTypeDefinition().MakeGenericType argTyps
    let gmi = typedefof<A>.GetMethod("mkPickler").GetGenericMethodDefinition()
    let mi = gmi.MakeGenericMethod [|methodTypArg|]
    mi.Invoke(null, [|resolver|]) |> unbox<_>

let resolver = //: IPicklerResolver =
    let registry = CustomPicklerRegistry()
    //let m = (Func<IPicklerResolver, Pickler<ImmutableList<'T>>> A<'T>.mkPickler).Method
    //let gmd = m.GetGenericMethodDefinition()
    registry.RegisterFactory mkPickler
    PicklerCache.FromCustomPicklerRegistry registry :> IPicklerResolver

let binarySerializer = FsPickler.CreateBinarySerializer(picklerResolver = resolver)

let storeAndCount value =
    use s = new MemoryStream()
    binarySerializer.Serialize (s, value)
    s.ToArray().Length

let items = seq { 1 .. 100 }
let immutableList = ImmutableList.CreateRange items

//printfn "Storing items gives %d bytes" (storeAndCount items)
printfn "Storing ImmutableList gives %d bytes" (storeAndCount immutableList)

By the way, FsPickler9 doesn't need customized pickler to support ImmutableList...

Thanks for the suggestions!

I fixed some issues commit
And all these styles are supported now:
registry.RegisterFactory<ImmutableList<'t>> mkPickler

registry.RegisterFactory<ImmutableList<int>> A.mkPickler<int>

registry.RegisterFactory A.mkPickler<int>

Please replace the code in resolver variable
open System
open System.IO
open System.Collections.Immutable
open MBrace.FsPickler

type A () =
    static member mkPickler<'t> (resolver : IPicklerResolver) =
        let tt = typeof<'t>
        let tPickler = resolver.Resolve<'t> ()
        let intPickler = resolver.Resolve<int> ()

        let writer (w : WriteState) (ns : ImmutableList<'t>) =
            let tArr = ns |> Seq.toArray
            intPickler.Write w "cnt" tArr.Length
            tArr
            |> Array.iter (fun t ->
                tPickler.Write w "value" t
            )

        let reader (r : ReadState) : ImmutableList<'t> =
            let l = intPickler.Read r "cnt"
            let tArr =
                [|0..(l-1)|]
                |> Array.map (fun _ ->
                    tPickler.Read r "value"
                )
            ImmutableList.CreateRange<'t> tArr

        Pickler.FromPrimitives(reader, writer) //:> Pickler

let mkPickler (t:Type) (argTyps:Type[]) (resolver : IPicklerResolver) =
    //let methodTypArg = t.GetGenericTypeDefinition().MakeGenericType argTyps
    let gmi = typedefof<A>.GetMethod("mkPickler").GetGenericMethodDefinition()
    let mi = gmi.MakeGenericMethod argTyps
    let p = mi.Invoke(null, [|resolver|])
    p |> unbox<Pickler>

let resolver =
    let registry = CustomPicklerRegistry()

    registry.RegisterFactory A.mkPickler<int>

    PicklerCache.FromCustomPicklerRegistry registry :> IPicklerResolver

let binarySerializer = FsPickler.CreateBinarySerializer(picklerResolver = resolver)
//let binarySerializer = FsPickler.CreateBinarySerializer()

let storeAndCount value =
    use s = new MemoryStream()
    binarySerializer.Serialize (s, value)
    s.ToArray()

let items = seq { 1 .. 100 }
let immutableList = ImmutableList.CreateRange items

let seqArr = storeAndCount items
let imutlistArr = storeAndCount immutableList

printfn "Storing items gives %d bytes" seqArr.Length
printfn "Storing ImmutableList gives %d bytes" imutlistArr.Length

let seq__ = binarySerializer.UnPickle<seq<int>> seqArr |> Seq.toArray// unbox<ImmutableList<int>>
let imutlist = binarySerializer.UnPickle<ImmutableList<int>> imutlistArr // unbox<ImmutableList<int>>

printfn "Unpickled count: %d" imutlist.Count

And
let binarySerializer = FsPickler.CreateBinarySerializer()

Also works!!

PS. to run the unit tests of fspickler, please build fspickler9 with release profile...