knife vsphere vm clone fails

knive vsphere vm clone fails if:

dc.hostFolder does not contain any ComputeResources or ClusterComputeResources
The first host found does not have access to the requested vlan, datastore or datastorecluster or is in Maintnenance Mode

Suggested fix:
Clean up and implement the following logic in one or more seperate functions:
while (hosts.first.hhost.first.runtime.inMaintenanceMode || !(hosts.first.host.first.network.include?(find_network(get_config(:customization_vlan)))) || !(hosts...include?(find_datastore...) ... datastorecluster)
hosts.shift
end
The reason I'm submitting this issue is to request any pointer/suggestions to help getting this implemented cleanly and accepted upstream.  I currently intend to implement a recursive function, named something like "find_valid_host(dc.hostFolder cust_vlan datastore|datastorecluster)".  I may instead take a hash as input to find_valid_host to allow for future restrictions, or leaving out restrictions easily.

Hi Nick,
Thanks for submitting the bug report and offering to do the work. Until you mentioned it I didn't dig into the host selection, and now I think this will help out with #2, also.
As general guidance we're looking for code that is expressive and improves the clarity of the class. Since we have no tests now I'd prefer to see a minimal implementation rather than a massive refactor. Happy to look at refactors as a second pull request, though.
I'd suggest leaning on the Enumerable methods over a recursive implementation, as that can be be made to read almost English-like. You could even ditch the find_. If the method returns the first valid host or pool then something like
rspec = RbVmomi::VIM.VirtualMachineRelocateSpec(pool: first_valid_pool)

def first_valid_pool
  valid_hosts = all_hosts #or something
    .reject { |host| host.runtime.inMaintenanceMode }
    .reject { |host| host.network.blah }
    .reject { |host| some other condition }
  if valid_hosts.empty?
    log_fatal "Doh"
  else
    valid_hosts.first.resourcePool
  end
end

I'd also suggest leaving out the restrictions part in the spirit of a minimal implementation, as that can easily be added as another step to the pipeline when we have a clearer idea of the use cases.
Let me know what you think, and I'm always around to help.

I've been ambushed by Legal, hopefully that will resolve itself this week
I've replaced the find_all_in_folder call in generate_clone_spec with a call to what I'm calling "traverse_folders_for_computeresources" based on "traverse_folder_for_vms"
I'm including if get_config(:datastore|datastorecluster|customization_vlan) hosts.reject!{|h| !h.datastore|network.include?... followed by "if hosts.empty fatal_exit "no hosts have the requested Datastore|Datastorecluster|Network available!"

I'll send a pull request as soon as I can.


Spraze

Made a maze game for Sprig. The third level was the hardest.

The first club meeting we have we'll try to start coding a Sprig version of the Pico-8 version of Celeste

It's still in slight WIP, I want to add some more levels and untouchable blocks.

BTW something is broken because of some n.replace function that looks like it's a device uploading thing? I have spent about half an hour debugging but can't seem to fix it.

I've added some sound effects as well.

By the way, where does the name Sprig come from? The little pink frog?

Nice work! Sprig is just a fun name we came up with. It invokes the green circuit board and this idea of new growth (in its cheesiest interpretation). This game is really complete with art and sounds. As you note some levels are definitely more engaging than others. The PR starts on level 10 so I'll change that to 0 and then merge it in!

Nice work! Sprig is just a fun name we came up with. It invokes the green circuit board and this idea of new growth (in its cheesiest interpretation). This game is really complete with art and sounds. As you note some levels are definitely more engaging than others. The PR starts on level 10 so I'll change that to 0 and then merge it in!

Yeah I forgot I had modified it to start at 10 because I tried to fix some bugs... guess I should've checked that one value lol

How can I get the physical console, by the way?

Good question! Here is the form to get on the Sprig waitlist. You're of the first to complete a game so we're still ironing out bugs.
https://airtable.com/appN9cSnDgORAM2bp/tblYLyzi8RySfkONg/viwMrglQ6x9pBSE0O?blocks=hide


[Windows] When there is no unread notification, Mark all as read text is not needed

I think it would be best to leave the text as it is but have it disabled if there are no messages.


Synchronous scene loading functions don't update map until some other render event occurs

TO REPRODUCE THE ISSUE, FOLLOW THESE STEPS:

Load up the iOS framework using 0.8-beta2 in a sample app.
Load a scene file using an async function (cinnabar for example)
Load a different scene file using a synchronous function (walkabout for example)

RESULT:
Until you re-interact with the map, the map will remain in cinnabar display.
EXPECTED RESULT:
The map should switch immediately without additional "motivation".
ENVIRONMENT:

Environment: iOS 10.3.2 on an iPad Pro 12.9 (first gen).
Tangram-es Version:  0.8-beta2

OTHER:
Can be resolved by enabling continuous rendering, meaning there's probably a missing call in the sync function to request a render.

I'm having trouble reproducing this in our demo app - can you point me to code that exhibits this issue?

Sure!
The callsite is here: https://github.com/mapzen/ios/blob/issue-351/SampleApp/SampleMapViewController.swift#L50
Which calls this superclass function:
https://github.com/mapzen/ios/blob/issue-351/MapzenSDK/MZMapViewController.swift#L549
Which cascade through an objective-c-like series of functions (since we can't use nice overloading to maintain compatibility) down to here:
https://github.com/mapzen/ios/blob/issue-351/MapzenSDK/MZMapViewController.swift#L583
Which just extracts the URL path for the bundle and then calls into the TGMapViewController's function over here:
https://github.com/tangrams/tangram-es/blob/master/platforms/ios/src/TangramMap/TGMapViewController.mm#L157
which cascades a bunch again and ultimately winds up here:
https://github.com/tangrams/tangram-es/blob/master/platforms/ios/src/TangramMap/TGMapViewController.mm#L174

@msmollin Thanks! Reproduced the issue in the sample app and confirmed that #1612 resolves it.


Sftp Asset Injector throws URISyntaxException if item contains special characters

Required Information

[ ] AEM Version, including Service Packs, Cumulative Fix Packs, etc: 6.4.1, 6.4.2
[ ] ACS AEM Commons Version: 3.19.1
[ ] Reproducible on Latest? yes

Expected Behavior
If migrated folder contains files or folders with special characters, those items should be imported
Actual Behavior
When we have space characters inside of imported folder, we have the following:

Asset is not imported, only exception is written into log
Folder not imported, and process is running in endless loop

Steps to Reproduce
Run Sftp Asset Injector(file or url), with special chars in names

working on it

Dude you rock! 🗡 Let me know if you need any assistance with this patch.  Also, if possible, could you update the unit test to assert it works?  I think I have a few mocks in there already that help bypass the SFTP library to at least test the rest of the code.


Add more functional tests for file change notifications

From @HaoK on Thursday, November 3, 2016 10:28:09 AM
We should add some basic end to end coverage of file change notifications on each OS using the actual file watcher.  Today most of the tests are using a mock file watcher which doesn't expose any real issues caused by behaviors from the OS.
The configuration reload on change feature has been flaky and although that will have some test coverage of this as well, it would be more appropriate for the basic functionality to be covered in this Repo.
Ideally if there were tests verifying change tokens are fired properly across these scenarios on all supported platforms:
CreateFile
ModifyFile
DeleteFile
DeleteDirectory
DeleteParentDirectory
And a few combinations of the above
Copied from original issue: aspnet/FileSystem#242

Thanks for your feedback. We appreciate your letting us know about the problem you've encountered or suggestion but we are not planning to take further action on this issue because our focus has been on issues with significantly higher customer interest and issues impacting a broad number of customers.


akord.storage.buy() seems to not be working

When using akord.storage.buy(1) (using an American Express credit card that has previously been used to purchase storage in Akord through the frontend,) I get back the payment object as expected
'
{
paymentId: 'pi_example',
amount: 12,
currencyCode: 'usd',
clientSecret: 'pi_example_secret_example'
}
'
But, the card never gets charged and storage is never added to my account. I am developing an app and this feature is necessary for the project.
Thank you for your time

Hi @VDD2004 ,
it's done like this by design. Payments by default are 2-step functions.
Please have a look at our examples in docs:
https://github.com/Akord-com/akord-js?tab=readme-ov-file#buy
here is how you can buy storage in 2 steps:
const { paymentId, amount, currencyCode } = await akord.storage.buy(3); // initiate payment for 3 GB's: no storage increase yet, no payment yet

await akord.storage.buy({ paymentId }); // confirm the payment: storage increase after successful payment

you can also auto-confirm the payment in single step:
const { paymentId, amount, currencyCode } = await akord.storage.buy(3, { currencyCode: 'EUR', confirm: true }); // auto-confirm payment for 3 GB's: storage increase after successful payment

Oh, I feel like I should have known that; I only looked though the api docs and not the documentation on Github. Sorry for the trouble.


Update publish workflow to go to crates.io too

Also update the README to lead with instructions for using the crate
and the npm package. This is the future!

Dry run passed!


Update prometheus/client_golang to fix CVE-2022-21698

See https://github.com/prometheus/client_golang/releases/tag/v1.11.1 for more information

@bitsf: would it be possible to allow the tests to execute please? Thanks


ziti version command

Idea for conforming the ziti version command now that components have been consolidated: It currently emits an inventory of component versions, including ziti-edge-tunnel. Moving forward, it seems most sensible to only emit the version of the ziti executable.
Nice-to-have flags include: update-available checker, structured output format(s), e.g., JSON.
I'm unsure whether the other flags still make sense: --batch-mode, --configIdentity, --staging, --timeout, --verbose. Of those, I know what I'd expect --verbose to do, and the rest don't seem to have any purpose for a version command that I can conjure.

The version command does not show ziti-edge-tunnel installed despite it being present in the default location prescribed by the Linux package. I'm guessing the version command is relying only on the executable search PATH, not the default location.
I'd prefer to see only the version of the CLI emitted, and only show the current output when --verbose is given.


Flaky test: TestTrigger in gc/scheduler

Description
TestTrigger failed
Steps to reproduce the issue:

checkout v1.5.0
cd containerd
go test -v -count 100000 ./gc/scheduler -run TestTrigger

Describe the results you received:
...
=== RUN   TestTrigger
--- PASS: TestTrigger (0.00s)
=== RUN   TestTrigger
    scheduler_test.go:135: GC wait timed out
--- FAIL: TestTrigger (0.01s)
...
=== RUN   TestTrigger
--- PASS: TestTrigger (0.00s)
FAIL
FAIL    github.com/containerd/containerd/gc/scheduler   10.209s
FAIL

Describe the results you expected:
The test passed.
What version of containerd are you using:
v1.5.0

runc --version
$ runc --version
runc version 1.0.0-rc93+dev
commit: fc8a0d97a9ade7a270114eded52c8c64f037a430
spec: 1.0.2-dev
go: go1.16.3
libseccomp: 2.5.1

uname -a
$ uname -a
Linux vultr.guest 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

C3E2:1 A7E:480EBA:54CIE8:60A2B091

#5472
#5485
#5493
#5287

지금 블루투스   폐어링 자꾸 끊겼다 연결됐다 합니다
로컬에 문제 있는 폴더 파일은 끌어오기가 안됩니다

Prometheus Client Data Exposition Format.pdf

Tried the test on v1.5.0 and it passed for me. Do you have any error messages in containerd logs or otherwise?

@timmyyuan I think it might related to go runtime.
https://github.com/containerd/containerd/blob/f2edc6f164f977b459a3abaa310d145f20050617/gc/scheduler/scheduler_test.go#L122-L136
go scheduler.run(ctx) might be scheduled later and

@timmyyuan I think it might be related to go runtime.
https://github.com/containerd/containerd/blob/f2edc6f164f977b459a3abaa310d145f20050617/gc/scheduler/scheduler_test.go#L122-L136
go scheduler.run(ctx) might be scheduled later than that timeout.

Thanks @fuweid , does such a test need to be fixed ?

Thanks @fuweid , does such a test need to be fixed ?

yeah. but we need to find out that root cause, right? It is hard to reproduce in local and the fix should make senses.

Hmm, I cannot reproduce the issue by myself, as like @alakesh.
@fuweid @timmyyuan Is it still flaky? If not, I'd like to resolve this issue.


Default support collectors include logs for kurl-kotsadm-proxy

This needs to go in kots.io static spec also, and in vandoor  :(


Rules for inheriting the same type with different arguments

(split off from #67. another edge case for the "It's not just type usages" bucket)
interface NumberList<T extends @Nullable Number> extends List<T> {}

interface SerializableList<T extends @Nullable Serializable> extends List<T> {}

interface IntegerList extends NumberList<@Nullable Integer>, SerializableList<@NotNull Integer> {}

IntegerList is inheriting List twice with "different arguments," @Nullable Integer and @NotNull Integer. That is, it's both a List<@Nullable Integer> and a List<@NotNull Integer>. That's no good. This should be illegal, just as it's illegal to be both a List<Integer> and a List<Double> (8.1.5):
interface ConfusedList extends List<Integer>, List<Double> {}

error: repeated interface
interface ConfusedList extends List<Integer>, List<Double> {}
                                                  ^
error: List cannot be inherited with different arguments: <java.lang.Integer> and <java.lang.Double>
interface ConfusedList extends List<Integer>, List<Double> {}
^

Over the past year, I've come to believe that it's not our job to write rules like this. Instead, we write rules for subtyping and substitution (and maybe others that I'm forgetting), and it's up to tools how to apply those. I would expect for tools to often decide to apply subtyping checks in the same cases as the JLS requires for normal subtyping. A tool that was strict about this would issue an error in this case. But actually writing such a rule isn't our goal for this project.
Rather than close this issue outright, I'm going to retitle it to suggest that we add a sample input, as tool owners may find it useful as a case to consider.
(And I'm doing the same thing in #67.)


DNS resolution failed in stream subsystem

Is there an existing issue for this?

[X] I have searched the existing issues

Kong version ($ kong version)
2.5
Current Behavior
When the host of the tcp service is a domain (like 'smtp.exmail.qq.com'), kong has error log :
2023/10/31 22:51:18 [error] 65#0: *42425 stream [lua] balancer.lua:1038: execute(): DNS resolution failed: dns client error: 101 empty record received. Tried: ["(short)smtp.exmail.qq.com:(na) - cache-miss","smtp.exmail.qq.com:5 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.gateway-2b2d55ba.svc.cluster.local:5 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.svc.cluster.local:5 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.cluster.local:5 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.gateway-2b2d55ba.svc.cluster.local:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.svc.cluster.local:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.cluster.local:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:1 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.gateway-2b2d55ba.svc.cluster.local:1 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.svc.cluster.local:1 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com.cluster.local:1 - cache-miss/scheduled/dns client error: 101 empty record received"] while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8000 2023/10/31 22:51:18 [error] 65#0: *42425 [kong] response.lua:869 unable to proxy stream connection, status: 503, err: {"message":"name resolution failed"} while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8000
I confirm Kong pod can resolve smtp.exmail.qq.com:
[root@group-07627f42-kong-0 logs]# ping smtp.exmail.qq.com
PING smtp-v6.exmail.qq.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=1 ttl=50 time=42.7 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=2 ttl=50 time=42.8 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=3 ttl=50 time=42.8 ms

Is this as expected? Does the tcp service not support domain names?
Expected Behavior
The tcp service of the domain name can be accessed normally
Steps To Reproduce

create a route :
{          "strip_path":true,          "id":"eabb6363-073f-4376-8113-e0e6cf9b31f7",          "snis":null,          "service":{              "id":"5d0e9e44-7102-4470-9cca-bc5d18789d7d"          },          "tags":null,          "hosts":null,          "request_buffering":true,          "response_buffering":true,          "path_handling":"v1",          "https_redirect_status_code":426,          "created_at":1698760609,          "updated_at":1698760900,          "headers":null,          "preserve_host":false,          "protocols":[              "tcp"          ],          "paths":null,          "methods":null,          "sources":null,          "destinations":[              {                  "port":8000,                  "ip":"<IP_ADDRESS>/0"              }          ],          "regex_priority":0,          "name":"qq"      }

create a service
{          "host":"smtp.exmail.qq.com",          "id":"5d0e9e44-7102-4470-9cca-bc5d18789d7d",          "name":"qq",          "retries":5,          "tags":[          ],          "ca_certificates":null,          "port":465,          "client_certificate":null,          "created_at":1698760539,          "updated_at":1698760539,          "connect_timeout":60000,          "tls_verify":null,          "read_timeout":60000,          "path":null,          "tls_verify_depth":null,          "protocol":"tcp",          "write_timeout":60000      }

Anything else?
No response

I think you need to use FQDN(ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) as the domain, in your k8s env, smtp.exmail.qq.com is a short name, not FQDN.
and, the DNS resolution logic of curl/ping is different from Kong, which is why you can ping success.

I think you need to use FQDN(ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) as the domain, in your k8s env, smtp.exmail.qq.com is a short name, not FQDN.
and, the DNS resolution logic of curl/ping is different from Kong, which is why you can ping success.

Kong also has this problem if it is not deployed in k8s.
2023/11/01 09:11:11 [error] 3157050#0: *26743 stream [lua] init.lua:374: execute(): DNS resolution failed: dns client error: 101 empty record received. Tried: ["(short)smtp.exmail.qq.com:(na) - cache-miss","smtp.exmail.qq.com:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:1 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:5 - cache-miss/scheduled/dns client error: 101 empty record received"] while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8200 2023/11/01 09:11:11 [error] 3157050#0: *26743 [kong] response.lua:828 unable to proxy stream connection, status: 503, err: {"message":"name resolution failed"} while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8200

If the host of the service is also smtp.exmail.qq.com, but the service protocol is http, the domain name can be resolved normally.

Kong also has this problem if it is not deployed in k8s

could you try it on the latest version?

I have tried 3.0 and it can be reproduced. I will try the latest version 3.4.

Kong also has this problem if it is not deployed in k8s

could you try it on the latest version of kong?

3.4.2 can be reproduced, there are more error logs
2023/11/01 17:09:31 [error] 268950#0: *2416 stream [lua] init.lua:371: execute(): DNS resolution failed: dns client error: 101 empty record received. Tried: ["(short)smtp.exmail.qq.com:(na) - cache-miss","smtp.exmail.qq.com:33 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:1 - cache-miss/scheduled/dns client error: 101 empty record received","smtp.exmail.qq.com:5 - cache-miss/scheduled/dns client error: 101 empty record received"] while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8200
2023/11/01 17:09:31 [error] 268950#0: *2416 lua entry thread aborted: runtime error: /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:90: function cannot be called in preread phase (only in: rewrite, access, response, header_filter, error, admin_api)
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/share/lua/5.1/kong/pdk/private/phases.lua:90: in function 'check_phase'
        /usr/local/share/lua/5.1/kong/pdk/response.lua:1116: in function 'after'
        /usr/local/share/lua/5.1/kong/init.lua:949: in function 'preread'
        preread_by_lua(nginx-kong-stream.conf:90):2: in main chunk while prereading client data, client: <IP_ADDRESS>, server: <IP_ADDRESS>:8200

I think you need to use FQDN(ref: kubernetes.io/docs/concepts/services-networking/dns-pod-service) as the domain, in your k8s env, smtp.exmail.qq.com is a short name, not FQDN.
and, the DNS resolution logic of curl/ping is different from Kong, which is why you can ping success.

use FQDN, not short name(smtp.exmail.qq.com)

hi @zhangzerui20 , the DNS resolve has changed these days, pls try with kong/kong:nightly-ubuntu


support building for windows

We're mostly there, might as well finish the job.

This would be great!

I try to compile libgroove with Visual C++ 2015 but it can't compile the code because pthread.h (Unix specific library) and stdatomic.h (C11 not fully supported by VC 2015 yet) files are missing.
Do you plan to change libgroove to be compilable with VC 2015 (as libsoundio is) in the 5.0 milestone?
Thanks.

Is it still going to be supported?

Is this still intended?


Mock for router

Added mock router for testing.
Rewrote some tests with mocked router

Reasoning behind mock
Unit tests shouldn't be dependent on network or RPC because it cause them to be unstable. So every unit test should be wrote with mocked router. If real API tests required it should be separate target with non blocking failing.
Also having mocked router it becomes possible to write more detailed tests.

This is great. And can go in.
Check this out https://github.com/metaplex-foundation/amman/. We can use your new mock router to call a local validator an actually run a chain.

Please click request so I can see the Pr faster --->


Fix | Fix issue with SqlCommand OnStatementCompleted event not being triggered

Fixes issue #212
@Charles-Gagnon
Please verify the fix and let us know.

Also added test to verify the same.

Awesome, thanks! Do you have a build I can use? Otherwise I'll grab one from these validation builds when they complete and let you know if it solves our issue.

Microsoft.Data.SqlClient.PR216.zip
You may try this NuGet package that contains the fix.

NuGet Package for validation:
Microsoft.Data.SqlClient.Commits.1.1.0-build.19269.1-aa56756


[feature/OPT-885] to dev

Just a few little changes about doc and help. Great feature, congrats!

@smaneroiriusrisk great feedback! I have pushed all the changes requested


Add @cloud for ☁

@hardmath123 wins.

Yaaaaay! What prompted this? :-)

Well, you were arguing for this the other day :P
Want to implement it for me? xD

:D/

Has nobody volunteered for this yet? I guess I can do it


Azure Extension for NPS - Password management

We successfully deployed NPS Extension for MS NPS server. We would like to implement password management feature form Cisco Anyconnect but it doesn't work.
NPS Event:
An NPS extension dynamic link library (DLL) that is installed on the NPS server rejected the connection request.
Currently NPS Exntesion for MS NPS doesn't support password management as far as our test goes.

Hello @Kaliloo, Can you share the Azure document link / URL that you are referring to ?
This azure-docs repository deals about feedback related to particular Azure document page (like correcting doc bugs, doc enhancements, product issues related to wrong doc instructions if any, etc.) so thats the reason for asking related Azure document link / URL to get more context of this issue if it's intended to update / correct / enhance anything in the referred Azure document.

Closing this issue for now as there is no response on the previous comment.


log4j-kafka added with "retryCount" function

I added log4j-kafka with "retryCount" function and also put test case.
The test case is setting up wrong kafka endpoint and retry count. And then check if history size is equal to retry count.
Thanks
I changed files below.
org.apache.logging.log4j.kafka.appender.KafkaManger
org.apache.logging.log4j.kafka.appender.KafkaAppender
org.apache.logging.log4j.kafka.appender.KafkaAppenderTest
KafkaAppenderTest.xml in log4j-core

In the master branch the kafka support was moved to the log4j-kafka module.  We had not planned on moving it to its own module in 2.x.  It doesn't look like you moved it though but added a new module and left the old classes in place, so now there will be two instances of the KafkaAppender.
This just doesn't look right to me.

Oh sorry, I removed log4j-kafka and modified below files in log4j-core projects
org.apache.logging.log4j.kafka.appender.KafkaManger
org.apache.logging.log4j.kafka.appender.KafkaAppender
org.apache.logging.log4j.kafka.appender.KafkaAppenderTest
KafkaAppenderTest.xml in log4j-core

After applying the patch and fixing the typo in KafkaAppenderTest.xml the KafkaAppenderTest is failing with:
[ERROR] Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.538 s <<< FAILURE! - in org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppenderTest
[ERROR] testAppendWithRetryCount(org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppenderTest)  Time elapsed: 0.021 s  <<< FAILURE!
java.lang.AssertionError: expected:<3> but was:<1>
	at org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppenderTest.testAppendWithRetryCount(KafkaAppenderTest.java:172)

[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR]   KafkaAppenderTest.testAppendWithRetryCount:172 expected:<3> but was:<1>
[INFO]
[ERROR] Tests run: 6, Failures: 1, Errors: 0, Skipped: 0

I fixted unit test and KafkaAppender.java
if exception occurs while sending Kafka, I put retry logic.
Thank you inadvance.

Just check below files.
org.apache.logging.log4j.kafka.appender.KafkaAppender
org.apache.logging.log4j.kafka.appender.KafkaAppenderTest
KafkaAppenderTest.xml in log4j-core

PR merged with minor changes.


Add Bazel support

This PR helps users of the Bazel build system to integrate xtl in their builds.
Supporting two build systems (CMake and Bazel) is of course more effort to maintain but helps to spread xtl.
In the worst case the Bazel build does simply not work - in the best case, someone who uses Bazel can benefit from it.
Also, other projects support CMake and Bazel side by side (e.g. Catch2, gtest, etc.)

Hi @Vertexwahn , and thank you for your contribution.

In the worst case the Bazel build does simply not work

I am not fan of providing sometihng that potentially does not work, meaning this build should be tested and maintained on the long run. However, we have limited bandwidth, and I won't be able to maintain this myself so is that something you plan to maintain on the long run?
Another approach could be to have this in a dedicated repo.

@JohanMabille I can maintain it at least for the next 6 months. After this period we can decide if this is dropped again or if I can continue.


1.1 Data Plane Performance Test

Acceptance Criteria:

Run data plane performance test
Record results

Covered in #1286


Skip operations when necessary

If a file has been copied or uploaded already before, and we confirmed they are identical, then skip the operation.
This might be useful to avoid repeating unnecessary tasks.

Closed in #99


[Question]: Is it possible to switch on or off the camera_image option

What happened?
I'd like to use the camera_image feature only when a condition is true/false
I have a switch that tells me that my livingroom camera is in privacy_mode or not. I'd like to use this to display  the camera feed when it is off and an image instead.
Is it possible ? I'm not used to templating in HA.
Tried this but not working:
camera_image: false if is_state('switch.camera_salon_privacy', 'on') else camera.camera_salon_sd_stream

Card Version
1.1.16
HomeAssistant Version
2023.11.1
Relevant log output
No response

😭


How to pass the protein pdb file to the released model weight: (mc_gearnet_edge.pth)

Hi author,
Right now I download the pretrain weight from Multiview Contrast. I want to load this weight, and then pass a pdb file to the model. In this case, I can get the latent representation of the protein pdb file from the model.
Now I think I can successfully load the released pretrained weight, however, I am stuck at passing the pdb file to the model. Here is how I pass it:
def extract_representation(model, protein_structure_path):
    protein = Protein.from_pdb(protein_structure_path)

    _protein = Protein.pack([protein])

    input_feature = protein.atom2graph

    with torch.no_grad():
        representation = model(_protein, input_feature)

    # Return the output, which is the protein's representation
    return representation

I think GearNet model takes two parameter: 1. a Graph object, 2. input (not sure what this is). However, it seems like either _protein  is wrong or input_feature is wrong. With this code, I am getting this error:
Traceback (most recent call last):
  File "/content/GearNet-main/script/test.py", line 62, in <module>
    main()
  File "/content/GearNet-main/script/test.py", line 58, in main
    representation = extract_representation(model, args.pdb)
  File "/content/GearNet-main/script/test.py", line 43, in extract_representation
    representation = model(_protein, input_feature)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
  File "/content/GearNet-main/gearnet/model.py", line 115, in forward
    edge_hidden = self.edge_layers[i](line_graph, edge_hidden)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
  File "/content/GearNet-main/gearnet/layer.py", line 132, in forward
    update = self.aggregate(graph, message)
  File "/content/GearNet-main/gearnet/layer.py", line 118, in aggregate
    update = update.view(graph.num_node, self.num_relation * self.input_dim)
RuntimeError: shape '[4944, 472]' is invalid for input of size 711936

Can you please help me on how to pass the pdb file to the model.
Thank you

I think your mistake is that you are using atom2graph as input feature, when the packed protein object has the attribute residue_feature or node_feature Depending if you are working with residue or atom view.
Doing something like the code below worked for me
protein_model  =  graph_construction_model(packed_protein)
representation  = gearnet_edge(graph=protein_model, input=protein_model.residue_feature.float())


Furnace.setfuel Problem

Issue Description:
furnace.setfuel does not work.
What happens:
using furnace.setFuel to use torch as a fuel source does not work
What you expected to happen:
torches valid fuel source
Script used (Please Pastebin or gist your script, posting an unpasted or ungist'd script will automatically close this issue):
furnace.setFuel(minecraft:torch, 1600);
Minetweaker.log file (Please Pastebin or gist your file, posting an unpasted or ungist'd file will automatically close this issue):
https://pastebin.com/wudVnc35

Affected Versions (Do not use "latest"):

Minecraft: 1.10.2
Forge: 1.10.2-<IP_ADDRESS>6
Crafttweaker: 1.10.2-3.0.26

Your most recent log file where the issue was present:
https://pastebin.com/tvwABQC4

This is a "feature" of Forge, no burn times for vanilla items can be changed. Nothing I can do about it.

Okay I misunderstood vanilla items mean all vanilla items.  I tried moded items as well with exact same effect.


NEST API does not have the possibility to add an array of values to the Include/exclude parameters in a TermsAggregation

When filtering on values in a TermsAggregation, ElasticSearch has added the possibility to enter arrays of exact values in the Include/Exclude parameters from version 1.5.0.
This is not yet available in the NEST API

+1

@Beckero thanks for reporting :+1: , this is now implemented.


Code not correct implemented

If you enable the pulugin, the code will not be correct implemented. The start for script-tag is missing, but i think
`

function(c,l,a,r,i,t,y){

c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};

t=l.createElement(r);t.async=1;t.src='//www.clarity.ms/tag/'+i+'?ref=joomla';

y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);

})(window, document, 'clarity', 'script', 'xxxxxxxxxx');

`

@harrypotter06, Could you please ensure  that the code is correctly implemented and that the snippet is added and started automatically. Clarity starts collecting data as soon as the plugin is added and set up as mentioned in the readme here. You can validate that Clarity is working by following these steps.
If this is not the case, then please share below details to assist you further.
•	Version of Joomla you are using?
•	Your website URL
•	 Clarity project id?

Hello,
after a half year, i got answer .....
It is the code that you plugin will enable if Plugin enabled.
That code are not correct and that can you check if you enable the plugin on your system end verrify if that the same that Microsoft had published

Hello,
It is the same as the one on the install manually part on Clarity dashboard. If this is not what you have, could you please share your website URL.
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src='//www.clarity.ms/tag/'+i+'?ref=joomla';
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, 'clarity', 'script', 'xxxx');
Thanks,
Clarity Support Team
Visit our docs!: https://docs.microsoft.com/en-us/clarityhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fclarity&data=05|01|v-vidasa%40microsoft.com|343fe08f40a94e184c6408da28fedd21|72f988bf86f141af91ab2d7cd011db47|1|0|637867372409365494|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Q1zklwmipOGmVmg01HjPFwTVAwft75whSRoB8fFF%2BoY%3D&reserved=0
<EMAIL_ADDRESS>@.***
Confidentiality note: This e-mail, and any attachment to it, contains privileged and confidential information intended only for the use of the individual(s) or entity named in the e-mail.  If the reader of the e-mail is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that reading it is strictly prohibited.  If you have received this e-mail in error, please immediately return it to the sender and delete it from your system.
From: harrypotter06 @.>
Sent: Monday, February 6, 2023 2:40 AM
To: microsoft/clarity-joomla-plugin @.>
Cc: Microsoft Clarity Support @.>; Comment @.>
Subject: Re: [microsoft/clarity-joomla-plugin] Code not correct implemented (Issue #4)
Hello,
after a half year, i got answer .....
It is the code that you plugin will enable if Plugin enabled.
That code are not correct and that can you check if you enable the plugin on your system end verrify if that the same that Microsoft had published

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fclarity-joomla-plugin%2Fissues%2F4%23issuecomment-1418870012&data=05|01|v-vikasd%40microsoft.com|5d156f6977ea4967519a08db082e7efa|72f988bf86f141af91ab2d7cd011db47|1|0|638112768068115385|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=BKFa7hjoEBhHuai%2BMDtVFk4roaiZ%2BkGPE%2BCf%2BGBJ7O0%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAW5BXQYA5NLWDVMNUOXNOH3WWDIH7ANCNFSM5VKAOC4Q&data=05|01|v-vikasd%40microsoft.com|5d156f6977ea4967519a08db082e7efa|72f988bf86f141af91ab2d7cd011db47|1|0|638112768068115385|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=tV6lw1AYA3JmSqxvLwrCIIwbHRzO9O4grsVGzP0Nj6Y%3D&reserved=0.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

No it isn't
What you open, you must be closed
The issue in your code (if Plugin enabled):

Do you see the problem? You forgot to put the brackets in front of the "function"!
Also technically undesirable "'?ref=joomla'" - It's nobody's business what is used for a system for a website. That has something to do with security.
Where can I "securely submit" my website, so how can I submit it without it being public here?

@harrypotter06 , Please share website address to our Clarity support alias at<EMAIL_ADDRESS>

Hello,
the new version fix the issue - Thanks for your support


How do you pass SSL certificate parameters via docker labels?

What version of Traefik are you using (traefik version)?
1.1.2 (docker)
I'm using Traefik with docker, and I'm wondering how to use docker labels to specify the SSL cert and key files. For some sites we are using Let's Encrypt, but for others we have purchased certificates. For example, if I deploy a website for container www.foo.com, I want to also pass in the CertFile path. Our deploy process would handle dropping the file in the proper folder.
Here's an example of what I'm trying to achieve:
docker service create \
    --name foo \
    --label traefik.frontend.rule=Host:www.foo.com \
    --label traefik.frontend.certFile=/certs/www_foo_com.crt
    --label traefik.frontend.keyFile=/certs/www_foo_com.key
   --network traefik-net
   foo

Is this possible?
From the documentation, I don't see any way to do this via labels - the only way I currently see to do this is by editing traefik.toml.

having the same doubt here, but in my case I plan to bundle the certificate in a traefik image.

@nathantreid any luck with this?

In my case I just list all certs under [endpoint]. I don't think traefik reads certs on run-time.

@chulkilee Can you please elaborate on this?
At the minute I don't seem to have any way to provide https using Docker backend, but I feel like I must be missing something?

See https://docs.traefik.io/toml/#entrypoints-definition. cert config is under endpoint, not under frontend.

traefik automatically picks certs based on host name
all certs must be given at [endpoint] when traefik started (wildcard doesn't work)

I was afraid that might be the case, but I was hoping that there was something I was missing. I guess I need to turn this into a feature request then. The problem with loading the certificates manually through the config is that I have to write a process to edit the file (more complexity on my end) and restart traefik to load the certificates, which means all of our websites go down just so I can load new SSL certificates for one site.

Close in favor of  #1623 - Feel free to subscribe there for updates.


Fix to #6451 - Query :: Include doesn't work with SelectMany

Problem was that we were not able to match query source we were trying to include, if it came from the SelectMany since it has different structure than just regular filter/projection etc.
Fix is to compensate for the SelectMany case when constructing IncludeSpecification by using the correct query source.

@anpete

@maumar Is this stale now?


Latest version is not compatible with Xcode 11 Swift 5.1

Trying to update to latest version gives this error.


Headless mode is not working for WebDriverIO

Describe the bug
The current code for setting the headless option for WebDriverIO is not working, i.e. the option is ignored and browser still opens:
      capabilities: {
        'browserName': this.browser,
        'wdio:devtoolsOptions': { headless: options.headless },
      },

Based on current WebDriverIO documentation, it is now dependent on the browser selected. For example, for Chrome, it should be
'goog:chromeOptions': {
    args: ['headless', 'disable-gpu']
}

I verified by modifying the code in the node_module/vitest/dist/vendor-node.caa511fc.js of my project and it works after the change.
Reproduction
None
System Info
System:
    OS: macOS 13.4.1
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 45.28 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.16.1 - /usr/local/opt/node@18/bin/node
    npm: 9.5.1 - /usr/local/opt/node@18/bin/npm
  Browsers:
    Chrome: 115.0.5790.170
    Edge: 115.0.1901.203
    Safari: 16.5.2
  npmPackages:
    @vitejs/plugin-react: ^4.0.1 => 4.0.3
    @vitest/browser: ^0.34.1 => 0.34.1
    @vitest/coverage-istanbul: ^0.34.1 => 0.34.1
    @vitest/ui: ^0.34.1 => 0.34.1
    vite: ^4.4.0 => 4.4.7
    vitest: ^0.34.1 => 0.34.1

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

My CI is failing with the same issue - webdriverio now attempts to start graphical chrome in a headless environment


SPIKE Claim staking reward

Thank you for filing an issue!

Version

0.4.3
Description

As a user I want at some point be able to claim my reward for having staked my atoms.

What is blocking this?

@jbibla Please link your design here.

Please remove issues from the backlog when moving them into Scrumptious.

@jbibla probably wants to show the claim option in the rewards section of the design he posted. not to mixup with the "claim" button on the unbonding tx.

the "claim" button on the unbonding tx.

in the future, to be known as the "unbonding" button 😉

Scope:

Know how to "claim" rewards
Know how to display rewards

Linking an active discussion of this: https://github.com/cosmos/voyager/issues/1285

There is a tx for withdrawing all rewards TxWithdrawDelegationRewardsAll
It is also possible to withdraw just from one validator which we can implement as a 2nd step.
We probably need to create an endpoint to query for rewards, as there is none right now or calculate it clientside. For calculating it clientside we still need additional information like ValidatorDistInfo and DelegatorDistInfo as seen in the wihdraw calculation done here. I suppose just querying the calculated data is better as it leaves the logic on the SDK side.
As for updating the rewards, they are triggered on following events (taken from https://github.com/cosmos/cosmos-sdk/blob/develop/docs/spec/distribution/state.md):

delegation amount to a validator is updated,
a validator successfully proposes a block and receives a reward,
any delegator withdraws from a validator, or
the validator withdraws it's commission.

Blocked by https://github.com/cosmos/cosmos-sdk/pull/2236, not yet implemented on the SDK

the implementation will take a while so I wouldn't consider adding it to this week sprint


Merge develop branch to v2 branch

Codecov Report

Merging #2444 (6ea698d) into v2 (54f3412) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##               v2    #2444      +/-   ##
==========================================
- Coverage   97.61%   97.57%   -0.04%
==========================================
  Files          56       56
  Lines       10700    10695       -5
==========================================
- Hits        10445    10436       -9
- Misses        255      259       +4

Impacted Files
Coverage Δ

botocore/httpsession.py
92.55% <0.00%> (-0.47%)
:arrow_down:

botocore/utils.py
96.83% <0.00%> (-0.17%)
:arrow_down:

botocore/response.py
92.53% <0.00%> (-0.11%)
:arrow_down:

botocore/credentials.py
98.45% <0.00%> (-0.11%)
:arrow_down:

botocore/waiter.py
98.28% <0.00%> (-0.01%)
:arrow_down:

botocore/paginate.py
97.83% <0.00%> (-0.01%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 54f3412...6ea698d. Read the comment docs.


Release 0.6.0 version of origin.js

Confirm readiness

[x] origin-js: Confirm js tests passing

git checkout develop
git pull
npm run install:dev
npm test (This will also test smart contracts)
npm start

[x] demo-dapp: Confirm all tests passing
[ ] demo-dapp: Confirm it runs against remote (unlinked) origin-js

git checkout develop
git pull
npm install
npm start

[x] demo-dapp: Confirm it runs against local (linked) origin-js

git checkout develop
git pull
npm run install:dev
npm start
Probably need to Reset Account on MetaMask.

[x] Confirm deployment accounts have eth for gas

npm run deploy_checklist
[x] Rinkeby (Faucet)

Public post for [0]: https://plus.google.com/u/0/114203467826302852415/posts/F7sJZMGCbgg
[x] account[0] 0x1a5c29c94d03c4c8f7414564cbd57295d61e898f
[x] account[1] 0x564aae0251d49d1f8d4d8d9e5da08f8cceff9ef2

[x] Ropsten (Faucet)

[x] account[0] 0x1a5c29c94d03c4c8f7414564cbd57295d61e898f
[x] account[1] 0x564aae0251d49d1f8d4d8d9e5da08f8cceff9ef2

Publish

[x] demo-dapp: Replace git reference with version number in package.json

 "origin": "OriginProtocol/origin-js#develop" --> "origin": "0.6.0"
sed -i -e 's/OriginProtocol\/origin-js#develop/0.6.0/g' package.json

[x] origin-js : In package.json, confirm version is 0.6.0 (should have been changed as part of previous release)
[x] If contracts have changed:

Show diff with: git diff master..develop contracts/contracts/
cd contracts
[x] Deploy new smart contracts to Ropsten. Be sure addresses are listed in ABI files.

export ROPSTEN_MNEMONIC="<mnemonic>"
npx truffle migrate --network ropsten | tee releases/0.6.0_ropsten.log

[x] Deploy new smart contracts to Rinkeby.  Be sure addresses are listed in ABI files.

export RINKEBY_MNEMONIC=$ROPSTEN_MNEMONIC
npx truffle migrate --network rinkeby | tee releases/0.6.0_rinkeby.log

[ ] Migrate data from old contracts to new. (Once we get around to writing migrations!)

[x] origin-js: Build origin.js (in dist/origin.js) -- Not redundant: This will bake in the new contract addresses into the contract's .json files.

npm run install:dev

[ ] demo-dapp: Merge develop into master and push
[x] origin-js: Merge develop into master and push
[x] origin-js: Create new GitHub release with origin.js code,

[x] Version in form v0.6.0 (This will add git tag on master)
[x] Include addresses of smart contracts in description

[ ] demo-dapp: Add git tag to master to match origin-js.

git tag -a v0.6.0 -m "New release"

[ ] bridge-server: Add git tag to master to match origin-js.

git tag -a v0.6.0 -m "New release"

[x] origin-js: Publish to npm.

npm publish

[x] demo-dapp: Confirm that demo-dapp works when run alone again NPM.
[ ] demo-dapp: Deploy new version of dapp to heroku (url to be determined)
[x] bridge-server: merge develop to master

Follow-up

[x] Confirm published origin.js file is accessible via code.originprotocol.com redirect

https://code.originprotocol.com/origin-js/origin-v0.6.0.js

[x] demo-dapp npm unlink origin
[ ] demo-dapp: Confirm that "one-line setup & run" command works on master branch shown by default
[x] demo-dapp: confirm its using npm package works and can find contracts
[x] origin-js: Increment version number to  on develop to for next release

git checkout develop
subl package.json

[x] git push
[ ] demo-dapp: Replace version number with git reference in package.json
-"origin": "0.6.0" -->  "origin": "OriginProtocol/origin-js#develop"

git push

[ ] docs: Review docs for needed updates. Confirm example code on playground site (jsfiddle?) still work.
[ ] Copy this to-do list into new issue for next sprint.
[ ] Post notice of new release on Discord

Rinkeby
Using network 'rinkeby'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
  ... 0x0885b7021b73169a25dacdb895d1a028bab4791c58d8edb4df373f3123ba5209
  Migrations: 0xed747bfc08ec4f97f04278b7940acefbd8d7f4cc
Saving successful migration to network...
  ... 0x010ef25e82c54a56cf8b55527720b9e9c11fe82eda74e9d9149c1661979293be
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Running step...
  Deploying PurchaseLibrary...
  ... 0x2be7f975ba7507a67604ad519f99f56f0e45dd05f8e528fe3ad38c25e6cc7c47
  PurchaseLibrary: 0x0b3fc419df0ee2caa30b512fa098c7e0c0582d0c
  Linking PurchaseLibrary to ListingsRegistry
  Linking PurchaseLibrary to Listing
  Deploying UserRegistry...
  ... 0xd8285c96e319db762b13129fe202bf28e5c0f42d47ce94ae5448deefae3d43a9
  UserRegistry: 0xa080e08a6355debebbc29b9e35d8c001ad6eb3cd
  Deploying ListingsRegistry...
  ... 0xc18d795c699d8e6d804b9e83ac2f3b2ce218667f249852cc4ed886c4d646abd2
  ListingsRegistry: 0xf9555a250a36f59c6b74aabec018b8f55da72ec4
  Deploying KeyHolderLibrary...
  ... 0xc2fc5a949183df415a9b5e7a29644689982a6cbf0a39ba5739ab75cf1485b15f
  KeyHolderLibrary: 0xb67eaa8e3044c2cfbe7a4bd9192111712db0d09b
  Linking KeyHolderLibrary to KeyHolder
  Linking KeyHolderLibrary to ClaimHolderLibrary
  Deploying ClaimHolderLibrary...
  ... 0x312336e48d659b34b5719648c8b4655255ba82ae1a07b3dc9928b4588e2c56e9
  ClaimHolderLibrary: 0x7c410ddc563cbb03f9d21fd1616c597e7c66318f
  Linking ClaimHolderLibrary to ClaimHolder
  Linking KeyHolderLibrary to ClaimHolder
  Linking ClaimHolderLibrary to ClaimHolderRegistered
  Linking KeyHolderLibrary to ClaimHolderRegistered
  Linking ClaimHolderLibrary to ClaimHolderPresigned
  Linking KeyHolderLibrary to ClaimHolderPresigned
  Linking ClaimHolderLibrary to OriginIdentity
  Linking KeyHolderLibrary to OriginIdentity
  Deploying OriginIdentity...
  ... 0x8215c58d6df2d026f86a72c84db6b8df889885dc1154e3a8777be73e9f5c45dd
  OriginIdentity: 0xc8467dc9155f9d7045ea478c85dc074aecb893c6
Saving successful migration to network...
  ... 0x7af8c2eea29e1deee826228fec79f39ba55ab2522c1a678409c25060ebfa262d
Saving artifacts...
Running migration: 3_create_sample_listings.js
  Running step...
default_account:       0x1a5c29c94d03c4c8f7414564cbd57295d61e898f
a_seller_account:      0x564aae0251d49d1f8d4d8d9e5da08f8cceff9ef2
a_buyer_account:       0x47d4e5afd1624ea63cd7ace59d5dc1d87cff3bb5
another_buyer_account: 0xb7cc090637f6af85e3ed8cc623a5efe95b90b9f9
  ... 0x506f96280576400dbf5408918658a38fcf5bc6e48daf472c6d34bf14f14b0564
  ... 0x82b59071c9938df411b11c176a2874214ee01e347ff18afc9c3894fb5e57ff59
  ... 0x361456cd2d0eccdf9aab7dcf1a3e710d0a6f6c909e7ae6ec43b59d68aec287ea
  ... 0xe193bdb6da94c91a8a9da9f0fc433ee1d7199b1b44834ea9a56b13b621514f7e
  ... 0x7bd7a8539cb02b2fa2057831ce4d49868a1fce9facbcea6191075abac275607c
Saving successful migration to network...
  ... 0x8b0f922176a5dfe75cb0183e1b628d3aecf3408373114a7f2499a3de4bf64264
Saving artifacts...
Running migration: 4_add_sample_issuers.js
  Running step...
  ... 0xa81b0b0fb36b0e35a26b4f10a971cb06f78fefccf8e70629796cedf2ca87d080
  ... 0xfbb19c13527aa5d156d63f11b17d22dbee15271c1b3db5449c9fb50fb90ae72a
Saving successful migration to network...
  ... 0xa656ced07ec1236e03fcdcde4d46d548dad1b2f9a1afda95741ab6a96ed2231d
Saving artifacts...

Ropsten
$ npx truffle migrate --network ropsten
Compiling ./contracts/Listing.sol...
Compiling ./contracts/ListingsRegistry.sol...
Compiling ./contracts/Migrations.sol...
Compiling ./contracts/Purchase.sol...
Compiling ./contracts/PurchaseLibrary.sol...
Compiling ./contracts/UserRegistry.sol...
Compiling ./contracts/identity/ClaimHolder.sol...
Compiling ./contracts/identity/ClaimHolderLibrary.sol...
Compiling ./contracts/identity/ClaimHolderPresigned.sol...
Compiling ./contracts/identity/ClaimHolderRegistered.sol...
Compiling ./contracts/identity/ClaimVerifier.sol...
Compiling ./contracts/identity/ERC725.sol...
Compiling ./contracts/identity/ERC735.sol...
Compiling ./contracts/identity/KeyHolder.sol...
Compiling ./contracts/identity/KeyHolderLibrary.sol...
Compiling ./contracts/identity/OriginIdentity.sol...
Writing artifacts to ./build/contracts

Using network 'ropsten'.

Running migration: 1_initial_migration.js
  Deploying Migrations...
  ... 0x0c151d67cc73d28440ad35d3f8a3948f4cb98d3c1aabefc6c383ef5325141922
  Migrations: 0xe2e32df1d7e9a921c520e2c9263b949635c864c1
Saving successful migration to network...
  ... 0x358534b78abb80847067ac61363d6211c78286b024854b61f845a68e07057a2c
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Running step...
  Deploying PurchaseLibrary...
  ... 0x687d09de5c88bc582f40fa641530ee3d4a929bde4e120292c4b4d8a5b035c923
  PurchaseLibrary: 0xe367a47c875492ed2d646d8fa06ed5dc44f74bae
  Linking PurchaseLibrary to ListingsRegistry
  Linking PurchaseLibrary to Listing
  Deploying UserRegistry...
  ... 0x9b5e1ca64934b48643f6718f1c5b0f1f99016afe70b34237fbdc4e8e496d3e37
  UserRegistry: 0xd9ed0df63df8dbe53ef108de9b3c59ad0118912c
  Deploying ListingsRegistry...
  ... 0x133b7826552ec22c1a788bb85e7198ffd8d22c39650999365dfbb3da7266897a
  ListingsRegistry: 0x2861f28756e14cf0733383be8aa66ba3b65f1b4e
  Deploying KeyHolderLibrary...
  ... 0xcd5f76f87b91deb8c5a6be2108c2fa59701ee93a8aa78dae7d62fc8dd2a4d1a3
  KeyHolderLibrary: 0x8e88b51bb991fbb7f35749e87eaeb6079371ccba
  Linking KeyHolderLibrary to KeyHolder
  Linking KeyHolderLibrary to ClaimHolderLibrary
  Deploying ClaimHolderLibrary...
  ... 0x0da98fa7b5edef9ab4224c709e44e70f2d65845253cb498cf955c6598c18369e
  ClaimHolderLibrary: 0x369836ffab631d5fd1cca20b6746743e9b6459fd
  Linking ClaimHolderLibrary to ClaimHolder
  Linking KeyHolderLibrary to ClaimHolder
  Linking ClaimHolderLibrary to ClaimHolderRegistered
  Linking KeyHolderLibrary to ClaimHolderRegistered
  Linking ClaimHolderLibrary to ClaimHolderPresigned
  Linking KeyHolderLibrary to ClaimHolderPresigned
  Linking ClaimHolderLibrary to OriginIdentity
  Linking KeyHolderLibrary to OriginIdentity
  Deploying OriginIdentity...
  ... 0x88592440d3dcaedf8dd75d140395cbe8144a118d2db5ea731f279c4d7f2821f5
Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/errors.js:35:16)
    at XMLHttpRequest.request.onreadystatechange (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/httpprovider.js:115:32)
    at XMLHttpRequestEventTarget.dispatchEvent (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:64:18)
    at XMLHttpRequest._setReadyState (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:354:12)
    at XMLHttpRequest._onHttpResponseEnd (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:509:12)
    at IncomingMessage.<anonymous> (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:469:24)
    at emitNone (events.js:110:20)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1059:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/errors.js:35:16)
    at XMLHttpRequest.request.onreadystatechange (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/httpprovider.js:115:32)
    at XMLHttpRequestEventTarget.dispatchEvent (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:64:18)
    at XMLHttpRequest._setReadyState (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:354:12)
    at XMLHttpRequest._onHttpResponseEnd (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:509:12)
    at IncomingMessage.<anonymous> (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:469:24)
    at emitNone (events.js:110:20)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1059:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/errors.js:35:16)
    at XMLHttpRequest.request.onreadystatechange (/Users/stan/Origin/origin-js/node_modules/truffle-hdwallet-provider/node_modules/web3/lib/web3/httpprovider.js:115:32)
    at XMLHttpRequestEventTarget.dispatchEvent (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:64:18)
    at XMLHttpRequest._setReadyState (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:354:12)
    at XMLHttpRequest._onHttpResponseEnd (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:509:12)
    at IncomingMessage.<anonymous> (/Users/stan/Origin/origin-js/node_modules/xhr2/lib/xhr2.js:469:24)
    at emitNone (events.js:110:20)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1059:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
  OriginIdentity: 0x788371f0976b370f435ef45303f8f7f14ee27e15
Saving successful migration to network...
  ... 0xa5771d126f1466866f24c344d028266788334026ef53b333643cdf6d19535486
Saving artifacts...
Running migration: 3_create_sample_listings.js
  Running step...
default_account:       0x1a5c29c94d03c4c8f7414564cbd57295d61e898f
a_seller_account:      0x564aae0251d49d1f8d4d8d9e5da08f8cceff9ef2
a_buyer_account:       0x47d4e5afd1624ea63cd7ace59d5dc1d87cff3bb5
another_buyer_account: 0xb7cc090637f6af85e3ed8cc623a5efe95b90b9f9
  ... 0x04b4f2fcd181ca52a93b6b07d3026518895799b85b7273c41778429857de80da
  ... 0x31b4e83e0d39ce460cb7e656c40a9b2af95663ddbe0be393709db2e317ba061f
  ... 0x01263a13bbbb4bafffa03c746be0e7166d9b28fbdbe875395a971dcf90280f38
  ... 0xd0a2a981562b4314271d87a124ca1c7b9f311cca62a875dfcc3c11be34a63174
  ... 0x24d7732c10f47f4826122eaf0cce231bac51b20e123c1753fb1e9a3df434edf9
Saving successful migration to network...
  ... 0x564535b5a4d47150b6c8d3f59f1abacc0717760e767f459036fe37f2f4845521
Saving artifacts...
Running migration: 4_add_sample_issuers.js
  Running step...
  ... 0x98c8367797201eeb395775115afacacc57cf4d1c03c770b719a522306d8c8872
  ... 0x98b09e365414cf6a6143e3868ccf38f2f942ffec26549cea426e7e117ddd7411
Saving successful migration to network...
  ... 0x064841d74747e709176b708e8473f840a70603984f1f1266afe6937fda0d8ee2
Saving artifacts...

@micahalcorn -- I've got everything non-DApp deployed. Let's get our final fixes in there and ship it!

@wanderingstan do you want to check any more of these boxes and/or close this?


Please fix issues reported by adapter checker

ERRORs must be fixed:
❗ [E026] "{'engines': {'node'>='16'}}" is required at package.json, "{'engines':{'node'>='18'}}" is recommened
❗ [E033] @iobroker/adapter-core 2.6.0 specified. 3.1.4 is required as minimum, 3.1.6 is recommended. Please update dependencies at package.json
❗ [E036] @iobroker/testing 2.4.5 specified. 4.1.3 is required as minimum, 4.1.3 is recommended. Please update devDependencies at package.json
❗ [E130] Too many "common.news" found in io-package.json. Must be less than 20. Please remove old news.
❗ [E204] Version(s) "0.9.0" listed at common.news at io-package.json do not exist at NPM. Please remove from news.
WARNINGs should be fixed if time allows:
👀 [E145] Missing mandatory translation into de of some "common.news" in io-package.json.
👀 [W040] "keywords" within package.json should contain "ioBroker"
👀 [W115] "common.tier" is required in io-package.json. Please check https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#adapter.
👀 [W145] Missing suggested translation into ru,pt,nl,fr,it,es,pl,uk,zh-cn of some "common.news" in io-package.json.
👀 [W181] "common.license" in io-package.json is deprecated. Please define object "common.licenseInformation"
👀 [W184] "common.main" is deprecated and ignored. Please remove from io-package.json. Use "main" at package.json instead.
👀 [W184] "common.materialize" is deprecated for admin >= 5 at io-package.json. Please use property "adminUI".
👀 [W522] Please consider migrating to admin 5 UI (jsonConfig).
👀 [W853] .npmignore found - consider using package.json object "files" instead.
Please feel free to ask if any questions arise.

Waiting for PR

Where do you need halp to solve which problem?

I thought it is described in the issue?

repleaced by #253


PRD-Issue: [VSC] It's easy to copy code the Cody generates in chats

Related Docs:

PRD: Cody Chat and Commands

Description:

As a user, I want to copy and paste code that Cody suggests in a chat. Instead of having to highlight the code and press command+c and command+v, I want to see options to copy the code with one click or insert the code at my cursor in my project file.
Objectives:

Make copy and pasting code easy with one-click options to copy code or insert code at cursor. It's important that these are easily discoverable for the user.
Acceptance Criteria:

Easily discoverable "copy code" option
Easily discoverable "insert at cursor" option

Design Tasks:
### Design Tasks
- [ ] Add a draft title or issue reference here

Engineering Tasks:
### Engineering Tasks
- [ ] Add a draft title or issue reference here

this is done, will groom with Beyang before closing
Copy code:

Insert at cursor:

✅ Easily discoverable "copy code" option
✅ Easily discoverable "insert at cursor" option
✅ Bonus "Save code to new file" option

All worked as expected.


Audio for 'Security Crowdsourcing the SDL Practices'

http://owaspsummit.org/Working-Sessions/Security-Crowdsourcing/Security-Crowdsourcing-the-SDL-Practices.html
Security Crowdsourcing the SDL Practices.mp3.zip
One more @Ambg05

@Ambg05 can you look at the content that is already at http://owaspsummit.org/Working-Sessions/Security-Crowdsourcing/Crowdsourcing-Security-Knowledge.html since we might be able to merge these two Working Sessions

@DinisCruz  I've merged the audio in with http://owaspsummit.org/Working-Sessions/Security-Crowdsourcing/Crowdsourcing-Security-Knowledge.html at PR #611
Let me know if you're happy with what I've done.

Hi @Ambg05 for issues like this

can you add the comment in thePR
can you close the issue once the audio is done and the text is the PR

thx
great stuff and good to see that we workflow works


Fix: Missing link to Python SDK samples

What this PR does / why we need it:
The link to the sample for KFServing Python SDK is missing.
This PR fixes it.

/retest

/lgtm
/approve


Eliminate a race where a mesos agent could not connect to the master

[x] Installs cleanly on a fresh build of most recent master branch
[x] Upgrades cleanly from the most recent release
[x] Updates documentation relevant to the changes

When adding a worker node to an existing cluster, the previous iptables
template would block the new worker node from registering with the master.

while I couldn't repro the original problem on master (AWS) to verify the fix, this does not break anything and looks like it would address the issue. lgtm


Fix to IFilterPredicateFunc

From the angular docs (https://docs.angularjs.org/api/ng/filter/filter):

function(value, index, array): A predicate function can be used to write arbitrary filters. The function is called for each element of the array, with the element, its index, and the entire array itself as arguments. The final result is an array of those elements that the predicate returned true for.

So the predicate function should return a boolean value instead of an array.

@eugenpodaru, seems right. The documentation text is a bit misleading though.

thanks mate!


How to handle muliple hubots on the same ST2 instance

A question following AHH#11.
How should ST2 handle multiple instances of hubot? Our ST2 installation has two hubots attached (both using the same chatops user), our own hubot that pre-dates us installing ST2 and the docker container version. If we run a chatops.post_message to a user, they receive an message from both bots as a DM (in slack) and I would expect if both bots were in the same channel the messages would be duplicated. However if your talking to a single Bot as a DM the messages are routed correctly.
The question is how to handle this? I think one option is to only have a single bot, but it would be nice to attache aliases to different bots (e.g. lab, dev & prod) that act on different environments via the same ST2 instance.

@jjm: yes, right now you can only have a single bot per stackstorm instance. post_message sends a chatops announcement which all bots are supposed to act upon. So the only legit solution that doesn't involve hacking is having multiple stackstorm instances.
We'll keep the issue open, because we can probably append hubot's user id to the announcement later, or do something similar to it, even if they still will only support the same set of commands.

Cheers, I'll deal with our issue by turning off the second bot and only turning it on for capturing blog images.

The multiclient feature would be usefull not only for hubot, but for stuff like ansible, puppet, chef and other.
In some cases due to politics/security/etc, a separation of environments "per customer" is done, so the company ends up having multiple saltstack servers (1 per client), which they want to plug to single stackstorm.

+1
this would make multi tenant chatops a lot easier!

Does anyone know if this feature as been implemented? It's mid 2019 and no news since 2016

Near the end of 2020, checking again.. Is this possible now?  we are also looking at supporting both slack and ms team.

This is possible with the err-stackstorm project.  https://err-stackstorm.readthedocs.io/en/latest/configuration.html#route-key

@StackStorm/maintainers @StackStorm/contributors Should we close this one off? I raised it around 5 years ago and there's ongoing discussions on the future of hubot.
Just reviewing and cleaning up my still open raised issues.

TL;DR; Yes. I think we can close this.
As the implementation for multi-bot routing will depend on which bot backend is used, I think we can close this for hubot as hubot itself is on the way out.
Err-stackstorm already has this feature (thanks @nzlosh!). afaik, that uses the routing keys that ST2 core already makes available. Unlike Errbot, our Hubot integration only used the routing key to distinguish between chat providers (slack, irc, etc), not individual bots.
Once we replace Hubot with OpsDroid (no integration exists yet), OpsDroid also supports naming each chat service connection, so it should be able to use the route key flexibly like Errbot does.


Material You color theme compatibility

Hi, I am a user of your mdc-maui library and I really appreciate your work.
I have a question: does your library support color sync with mobile devices that use Material You design system? Material You is a new design system that adapts the color scheme of the app to the wallpaper of the device, or can be set manually. I think it would be great if your library could also sync the color of the web app with the mobile device. Is this feature planned or already implemented? If not, do you have any suggestions on how to achieve this? Thank you for your time and attention.

You could try using my library: https://github.com/albi005/MaterialColorUtilities
The package for .NET MAUI can generate color schemes from the wallpaper or an accent color.

@albi005 sounds great, it will work with this library?

Yes! This library already depends on and uses the colors from MaterialColorUtilities. The only difference is that MDC-MAUI adds a "Color" suffix at the end of color names, so you will have to:

Subclass MaterialColorService and override the Apply method:

public class CustomMaterialColorService : MaterialColorService<CorePalette, Scheme<uint>, Scheme<Color>, LightSchemeMapper, DarkSchemeMapper>
{
    public CustomMaterialColorService(IOptions<MaterialColorOptions> options, IDynamicColorService dynamicColorService, IPreferences preferences) : base(options, dynamicColorService, preferences)
    {
    }

    protected override async void Apply()
    {
        foreach (KeyValuePair<string, Color> color in SchemeMaui.Enumerate())
        {
            _appResources[color.Key + "Color"] = color.Value;
        }
    }
}

Register the new service in MauiProgram.cs before UseMauiApp<App>:

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        MauiAppBuilder builder = MauiApp
            .CreateBuilder()
            .UseMaterialColors<CustomMaterialColorService>()
            .UseMauiApp<App>();

		// ...

        return builder.Build();
    }
}

This will update the colors in the app's global ResourceDictionary anytime dark mode is toggled, the source color or the color scheme change.
If you need any more help, feel free to ask.

No plan, Material U dynamic themes only support android 12 and latest.


getComponent reject should return http response back to client

If I return a promise from getComponent, and I decide the name is not valid currently this is the response
 ®[test-hypernova]$ http POST localhost:3030/batch < test/assets/organism.json
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 0
Date: Thu, 16 Jun 2016 20:08:45 GMT
X-Powered-By: Express

for reference, the posted json looks like:
{
  "test" : {
    "name": "/usr/bin/evil",
    "data": {
      "name": "Ryan"
    }
  }
}

a section of my getComponent looks like
    getComponent(name) {
      return new Promise((resolve, reject) => {
        // make sure the name has no funny biz
        var parts = name.split('@')
        if (parts.length !== 2) return reject('Weird name passed to us')
        if (!validate(parts[0]).validForNewPackages) return reject('invalid package')

Can we make it so the rejected promise makes a 400 status code, and maybe a json response like:
{
    "error": null,
    "results": {
        "test": {
            "duration": 268.287959,
            "error":"invalid package",
            "meta": {},
            "name": "/usr/bin/evil",
            "statusCode": 400,
            "success": false
        }
    },
    "success": false
}

This sounds totally reasonable, and could be done before the .then in https://github.com/airbnb/hypernova/blob/master/src/utils/BatchManager.js#L139

If you return a rejected Promise from getComponent you'll already trigger an error and onError will be called for all the plugins.
A response is already returned with the format:
{ name: 'MyComponent',
     html: null,
     meta: {},
     duration: null,
     statusCode: 500,
     success: false,
     error: { name: 'Error', message: 'A rejected promise', stack: [Object] } }

so do you just want the statusCode to be 400 and duration to be not null?

@goatslacker for some reason I don't get that response back. My response is
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 0
Date: Thu, 16 Jun 2016 20:08:45 GMT
X-Powered-By: Express

with an empty body (as suggested by the Content-Length)
I am fine with the message you specified (and statusCode of 500) but I am not seeing that behaviour

I'll post my setup.

@ryanramage
λ npm ls | grep hypernova
├──<EMAIL_ADDRESS>
cat hypernova.js

const server = require('hypernova/server')

server({
  devMode: true,
  getComponent() {
    return Promise.reject(new Error('A rejected promise'))
  },
  port: 3030,
})

curl -X POST localhost:3030/batch -H 'Content-Type: application/json' -d '{"foo":{"name":"foo","data":{}}}' | json

{
  "success": true,
  "error": null,
  "results": {
    "foo": {
      "name": "foo",
      "html": null,
      "meta": {},
      "duration": null,
      "statusCode": 500,
      "success": false,
      "error": {
        "name": "Error",
        "message": "A rejected promise",
        "stack": [
          "Error: A rejected promise",
          "at getComponent (/tmp/playground/hypernova.js:6:27)",
          "at BatchManager.render (/tmp/playground/node_modules/hypernova/lib/utils/BatchManager.js:163:22)",
          "at /tmp/playground/node_modules/hypernova/lib/utils/lifecycle.js:170:22",
          "at tryCatcher (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/util.js:16:23)",
          "at Promise._settlePromiseFromHandler (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/promise.js:502:31)",
          "at Promise._settlePromise (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/promise.js:559:18)",
          "at Promise._settlePromise0 (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/promise.js:604:10)",
          "at Promise._settlePromises (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/promise.js:683:18)",
          "at Async._drainQueue (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/async.js:138:16)",
          "at Async._drainQueues (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/async.js:148:10)",
          "at Immediate.Async.drainQueues [as _onImmediate] (/tmp/playground/node_modules/hypernova/node_modules/bluebird/js/release/async.js:17:14)",
          "at tryOnImmediate (timers.js:543:15)",
          "at processImmediate [as _immediateCallback] (timers.js:523:5)"
        ]
      }
    }
  }
}

There are reasons why you might be getting an empty response and that's maybe because you're passing an empty request. The request format matters, you can see an example above in my curl request. Another thing is that there should be a Content-Type header set to application/json so that body-parser extracts the jobs from the request.

@goatslacker thanks. that fixed it for me. It was actually one of my rejects was returning a string and not an Error object.

Looks like a bug. I'll get that fixed.


Next-Contentlayer + PWA - Next Config

Can you please tell me how to add next-contentlayer along with Next PWA settings ?
/** @type {import('next').NextConfig} */

const { withContentlayer } = require('next-contentlayer');

const withPWA = require('next-pwa')({
  dest: 'public',
  register: true,
  skipWaiting: true,
  disable: process.env.NODE_ENV === 'development'
});

module.exports = withPWA({
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'cdn.sanity.io',
        port: ''
      },
      {
        protocol: 'https',
        hostname: 'lh3.googleusercontent.com',
        port: '',
        pathname: '/a/**'
      }
    ],
    domains: [
      'avatars.githubusercontent.com',
      'avatar.vercel.sh',
      'res.cloudinary.com'
    ]
  },
  async redirects() {
    return [
      {
        source: '/projects/category',
        destination: '/projects',
        permanent: false
      }
    ];
  }
});```

https://github.com/vercel/next.js/discussions/40710
This might help you. Questions like this would probably get answered faster in the discord.


metro-resolver-symlinks fails to resolve react inside symlinked dependency

What happened?
I've spent a couple of days trying to use rnx-kit to get a react-native app to use a symlinked dependency library and I can't seem to do it.  Do you have a an example somewhere that works?
My library structure (I'm using NPM workspaces to create the symlinks)
+-lib_1
+-lib_2
+-webApp (works fine with webpack - lib_1 and lib_2 are symlinked as package dependencies)
+-reactNativeApp (using metro-resolver-symlinks - lib_1 is symlinked as package dependency)
   +- node_modules
   +- package.json
+-node_modules
+-package.json

Every time I attempt to run the bundler it fails trying to resolve react inside the symlinked library:
react-native rnx-bundle --entry-file index.js --platform android --bundle-output android/main.jsbundle --sourcemap-output android/main.jsbundle.map --assets-dest android
Gets me:
error Unable to resolve module react from <path to lib_1>\src\App.js:

None of these files exist:
  * ..\node_modules\react(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
  * ..\node_modules\react\index(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
> 1 | import { createElement as rc } from 'react';
    |                                      ^
  2 | import { View, Text } from 'react-native';
  3 | export default function Application() {

Affected Package
metro-resolver-symlinks
Version
^0.1.21
Which platforms are you seeing this issue on?

[X] Android
[ ] iOS
[ ] macOS
[ ] Windows

System Information
System:
    OS: Windows 10 10.0.19044
    CPU: (16) x64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
    Memory: 15.89 GB / 31.92 GB
  Binaries:
    Node: 16.6.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.5 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 7.19.1 - C:\Program Files\nodejs\npm.CMD
    Watchman: Not Found
  SDKs:
    Android SDK: Not Found
    Windows SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Visual Studio: Not Found
  Languages:
    Java: 11.0.15 - C:\Program Files\OpenJDK\openjdk-11.0.15_10\bin\javac.EXE
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.0.0 => 18.0.0
    react-native: 0.69.0 => 0.69.0
    react-native-windows: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to Reproduce
I created a brand new react native project with npx react-native init (reactNativeApp above), then I followed the instructions here: https://microsoft.github.io/rnx-kit/docs/guides/bundling
My package.json for the reactNativeApp:
{
    "name": "silouinative",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "android": "react-native run-android",
        "ios": "react-native run-ios",
        "start": "react-native start",
        "test": "jest",
        "lint": "eslint .",
        "bundle": "react-native rnx-bundle --entry-file index.js --platform android --bundle-output android/main.jsbundle --sourcemap-output android/main.jsbundle.map --assets-dest android"
    },
    "dependencies": {
        "react": "18.0.0",
        "react-native": "0.69.0"
    },
    "devDependencies": {
        "@babel/core": "^7.12.9",
        "@babel/runtime": "^7.12.5",
        "@react-native-community/eslint-config": "^2.0.0",
        "@rnx-kit/babel-preset-metro-react-native": "^1.1.0",
        "@rnx-kit/cli": "^0.14.0",
        "@rnx-kit/metro-config": "^1.2.33",
        "@rnx-kit/metro-resolver-symlinks": "^0.1.21",
        "babel-jest": "^26.6.3",
        "eslint": "^7.32.0",
        "jest": "^26.6.3",
        "metro-react-native-babel-preset": "^0.70.3",
        "react-test-renderer": "18.0.0"
    },
    "workspaces": [
        "../lib_1"
    ],
    "jest": {
        "preset": "react-native"
    }
}

At first this just failed trying to resolve @babel/runtime/helpers/interopRequireDefault (which definitely exists in node_modules) so I modified the default metro-config.js to look like this:
const { makeMetroConfig } = require('@rnx-kit/metro-config');
const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks');
const path = require('path');
module.exports = makeMetroConfig({
    projectRoot: __dirname,
    resolver: {
        resolveRequest: MetroSymlinksResolver(),
    },
    watchFolders: [__dirname, path.resolve(__dirname, '..')]
});

That fixed the babel file resolution, but now it can't seem to find react .  Interestingly, IT DOES seem to resolve lodash.camelcase, but also fails to resolve react-native if I reorder the imports:
None of these files exist:
  * ..\node_modules\react-native(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
  * ..\node_modules\react-native\index(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
  1 | import camelcase from 'lodash.camelcase';
> 2 | import { View, Text } from 'react-native';
    |                             ^
  3 | import { createElement as rc } from 'react';
  4 | export default function Application() {

Again, I've verified that all of these dependencies exist in the corresponding node_modules folder that the error points to.
Is it failing because the react-native and react dependencies also exist in the main application package?  When using Haul in the past, I've had to tell webpack to alias react and react-native to the main application package location.  Is there a way to do that here?
I tried to use the remapModule: MetroSymlinksResolver.remapImportPath to do something like that, but there is almost no documentation (that I could find).  I tried to decipher the code here https://github.com/microsoft/rnx-kit/blob/main/packages/metro-resolver-symlinks/src/utils/remapImportPath.ts, but it didn't make very much sense to me because I'm completely unfamiliar with the enhanced-resolver package it uses.
The symlinked library (lib_1) contains almost nothing.  It's a proof of concept.  Here is the code:
index.js
import _App from './App';
export const App = _App;
export default { App };

App.js
import { View, Text } from 'react-native';
import { createElement as rc } from 'react';
export default function Application() {
    return rc(View, null,
        rc(Text, null, 'Hello lib')
    );
}

Here is the lib_1 package.json:
{
    "name": "lib_1",
    "version": "1.0.0",
    "description": "",
    "main": "src/index.js",
    "type": "module",
    "scripts": {
        "lint": "eslint .",
        "test": "cross-env NODE_NO_WARNINGS=1 DEBUG_PRINT_LIMIT=300000 node --experimental-specifier-resolution=node ../node_modules/mocha/lib/cli/cli.js",
        "test:teamcity": "node --experimental-specifier-resolution=node ../node_modules/mocha/lib/cli/cli.js --reporter mocha-teamcity-reporter --recursive",
        "updateIndexes": "lib_create-index ./src --recursive  --exportAsObject --ignoreUnsafe --banner //Call_[npm_run_updateIndexes]_to_update_this_file."
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {},
    "devDependencies": {},
    "peerDependencies": {
        "react": "18.0.0",
        "react-dom": "18.0.0"
    }
}

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @DaveWelling, sorry to hear that you've been having trouble with this. Do you have a repo where we can reproduce this? It's hard to tell what the issue could be here.

@tido64 No problem:  https://github.com/DaveWelling/reprornxkit

clone
cd silo_ui-native
npm run bundle

Thanks so much for looking at this so quickly!

@DaveWelling: Is this also how your repo is set up? I've not seen workspaces set up like this before, and it's probably why our resolver fails. Bundling works if I move the workspaces declaration to the root package.json:
diff --git a/package.json b/package.json
index f8397e3..e9869cc 100644
--- a/package.json
+++ b/package.json
@@ -23,5 +23,9 @@
         "eslint-plugin-react": "^7.21.5",
         "eslint-plugin-react-hooks": "^4.3.0",
         "npm-run-all": "^4.1.5"
-    }
+    },
+    "workspaces": [
+        "lib_ui-components-new",
+        "silo_ui-native"
+    ]
 }
diff --git a/silo_ui-native/package.json b/silo_ui-native/package.json
index 080ded6..89f6ad4 100644
--- a/silo_ui-native/package.json
+++ b/silo_ui-native/package.json
@@ -28,10 +28,7 @@
         "metro-react-native-babel-preset": "^0.70.3",
         "react-test-renderer": "18.0.0"
     },
-    "workspaces": [
-        "../lib_ui-components-new"
-    ],
     "jest": {
         "preset": "react-native"
     }
-}
\ No newline at end of file
+}

Then run:
npm i
cd silo_ui-native
npm run bundle

@tido64 This does indeed fix the bundler, but the reason the workspaces were configured this way is that I need to have the react native libraries in the node_modules for the react native project (as opposed to the root) in order to build the native portion.  I'm not aware of a way to point the Android/iOS native build stuff at the root directory.
I also don't know of a way to avoid hoisting specific libraries with npm workspaces.  Even if there was a way, that would likely be very messy as every package that contains native code would need to be setup to avoid hoisting.

It sounds like you would have to override the resolver config. Maybe something like this:
diff --git a/silo_ui-native/metro.config.js b/silo_ui-native/metro.config.js
index 22aa573..c535ba3 100644
--- a/silo_ui-native/metro.config.js
+++ b/silo_ui-native/metro.config.js
@@ -1,14 +1,23 @@
-const { makeMetroConfig } = require('@rnx-kit/metro-config');
+const { makeMetroConfig, resolveUniqueModule } = require('@rnx-kit/metro-config');
 const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks');
 const path = require('path');
-module.exports = makeMetroConfig({
-    projectRoot: __dirname,
+
+const [reactPath] = resolveUniqueModule("react", "..");
+const [reactNativePath] = resolveUniqueModule("react-native");
+
+const metroConfig = makeMetroConfig();
+module.exports = {
+    ...metroConfig,
     resolver: {
+        extraNodeModules: {
+          "react": reactPath,
+          "react-native": reactNativePath,
+        },
         resolveRequest: MetroSymlinksResolver(),
         //nodeModulesPaths: [path.resolve(__dirname, '..', 'node_modules')]
     },
-    watchFolders: [__dirname, path.resolve(__dirname, '..')],
-});
+    watchFolders: metroConfig.watchFolders.concat([path.resolve(__dirname, '..')])
+};
 // /**
 //  * Metro configuration for React Native
 //  * https://github.com/facebook/react-native

Hi @DaveWelling, when you get a chance, can you try out the example @tido64 posted and see if it works? Thank you for using rnx-kit and taking the time to file this issue.

Absolutely. I am out of the office until next week, but I will definitely let you know how it goes when I get back. Thanks again for responding so quickly.

@tido64 @afoxman Thanks again for looking at this.  The solution seems to work if I turn off detectDuplicateDependencies in package.json for the native project.  Otherwise, I get this:
 BUNDLE  ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 89.8% (453/478)error @babel/runtime (found 2 copies)
warn   7.18.6 D:\Temp\junk\rnxKitRepro\node_modules\@babel\runtime
warn   7.18.6 D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\@babel\runtime
error react (found 2 copies)
warn   18.0.0 D:\Temp\junk\rnxKitRepro\node_modules\react
warn   18.0.0 D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\react
 BUNDLE  ./index.js

error: Error: Duplicates found
    at D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\@rnx-kit\metro-plugin-duplicates-checker\lib\index.js:38:23
    at D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\@rnx-kit\metro-serializer\lib\index.js:38:37
    at Array.forEach (<anonymous>)
    at D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\@rnx-kit\metro-serializer\lib\index.js:38:17
    at build (D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\metro\src\Server.js:665:28)
    at async Server.requestProcessor [as _processBundleRequest] (D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\metro\src\Server.js:574:18)
    at async Server._processRequest (D:\Temp\junk\rnxKitRepro\silo_ui-native\node_modules\metro\src\Server.js:420:9)

I guess this means that I won't be able to take advantage of the duplicate detection capabilities of rnx-kit, but I didn't have that before so there's no great loss for me.
I've updated the reproduction repository (https://github.com/DaveWelling/reprornxkit) in case you are curious about how it is being used.  It now includes the web project which can (just like the native project) use the lib_ui-components-new library.
The only thing I don't really understand is how this configuration is working without the MetroSymlinksResolver in the metro.config.js
I will implement this solution in our application and ensure it still works with the full codebase.  Assuming that also works, I will close this issue.

@DaveWelling: This config should work with duplicates plugin:
const { makeMetroConfig, resolveUniqueModule } = require('@rnx-kit/metro-config');
const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks');
const path = require('path');

const [babelRuntimePath, babelRuntimeExclude] = resolveUniqueModule("@babel/runtime", "..");
const [reactPath, reactExclude] = resolveUniqueModule("react", "..");
const [reactNativePath, reactNativeExclude] = resolveUniqueModule("react-native");

const metroConfig = makeMetroConfig();
module.exports = {
    ...metroConfig,
    resolver: {
        extraNodeModules: {
          "@babel/runtime": babelRuntimePath,
          "react": reactPath,
          "react-native": reactNativePath,
        },
        blockList: [babelRuntimeExclude, reactExclude, reactNativeExclude],
        resolveRequest: MetroSymlinksResolver(),
    },
    watchFolders: [
        ...metroConfig.watchFolders,
        path.resolve(__dirname, '..', 'node_modules')
    ]
};

Sorry for the late reply. It's been … busy 😅

@tido64 I think there might be a windows specific bug in the blockList code. It looks like there is a problem with the regex where it isn't terminating part of the expression.

This is interesting. If you compare the config against the error, it's clear that it was modified:
/(?<!D:\\reprornxkit\\silo_ui-native)[/\\]node_modules[/\\]react[/\\].*/

vs.
/((?<!D:\\reprornxkit\\silo_ui-native)[\\\]node_modules[\\\]react[\\\].*)/

I've submitted a PR to work around this 👆

There is something else you might want to be aware of. For any native dependencies, I needed to create aliases using resolveUniqueModule.

This is something I've seen as well, but unsure how to fix. I think one option is to run resolveUniqueModule against all direct dependencies declared in package.json, but I don't know if that would cause more issues. Maybe we make it opt-in behaviour? What do you think?

@tido64

I think one option is to run resolveUniqueModule against all direct dependencies declared in package.json, but I don't know if that would cause more issues. Maybe we could make it opt-in behaviour? What do you think?

It's a thorny problem that I imagine would be difficult to explain to consumers of your toolset.  The gist seems to be that react-native is not identifying native code inside symlinked module dependencies when building the APK.  Somebody that understands the react-native build code better than I do would probably offer a more helpful answer.  It seems to me the ideal solution would be alteration of the gradle and xcode build scripts to resolve the native code correctly, but that sounds difficult to me.


Build failed

When trying to install via npm install node-libtorrent
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Darwin 14.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "avenge"
gyp ERR! cwd /Users/joseym/shorts/xbmc/torrent/node_modules/node-libtorrent
gyp ERR! node -v v0.10.21
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok

npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "node-libtorrent" "--save"
npm ERR! node v0.10.21
npm ERR! npm  v2.0.0
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: `node-gyp avenge`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the node-libtorrent package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp avenge
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-libtorrent
npm ERR! There is likely additional logging output above.

DAMN !! Same here...
Subodhs-MacBook-Pro:~ subodhjena$ npm install node-libtorrent

<EMAIL_ADDRESS>install /Users/subodhjena/node_modules/node-libtorrent
node-gyp rebuild

CXX(target) Release/obj.target/libtorrent/src/module.o
../src/module.cpp:4:10: fatal error: 'libtorrent/version.hpp' file not found
#include <libtorrent/version.hpp>
^
1 error generated.
make: *** [Release/obj.target/libtorrent/src/module.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 15.5.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/subodhjena/node_modules/node-libtorrent
gyp ERR! node -v v4.4.5
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/Users/subodhjena/package.json'
npm WARN subodhjena No description
npm WARN subodhjena No repository field.
npm WARN subodhjena No README data
npm WARN subodhjena No license field.
npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "node-libtorrent"
npm ERR! node v4.4.5
npm ERR! npm  v3.10.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-libtorrent package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-libtorrent
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-libtorrent
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/subodhjena/npm-debug.log
Subodhs-MacBook-Pro:~ subodhjena$ sudo npm install node-libtorrent
Password:

<EMAIL_ADDRESS>install /Users/subodhjena/node_modules/node-libtorrent
node-gyp rebuild

CXX(target) Release/obj.target/libtorrent/src/module.o
../src/module.cpp:4:10: fatal error: 'libtorrent/version.hpp' file not found
#include <libtorrent/version.hpp>
^
1 error generated.
make: *** [Release/obj.target/libtorrent/src/module.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 15.5.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/subodhjena/node_modules/node-libtorrent
gyp ERR! node -v v4.4.5
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/Users/subodhjena/package.json'
npm WARN subodhjena No description
npm WARN subodhjena No repository field.
npm WARN subodhjena No README data
npm WARN subodhjena No license field.
npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "node-libtorrent"
npm ERR! node v4.4.5
npm ERR! npm  v3.10.2
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-libtorrent package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-libtorrent
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-libtorrent
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/subodhjena/npm-debug.log

@bcomnes @jenasubodh you need install libtorrent dev package (library headers)

Cool thanks for the tip!

@bcomnes @jenasubodh you need install libtorrent dev package (library headers)

Hello can you explain it more about libtorrent dev package.
I am trying to install node binding of libtorrent. Seem it fail to build when it tried to search for include header.
Can you give me more insight.