SUBACK not returned when subscriptions are denied.

I came accross this while developing a custom ACL plugin based on vmq_pgauth_demo, but this behaviour happens on a vanilla VerneMQ deployment as well (as of 0.12.2) with vmq_acl.
If a client issues a SUBSCRIBE and it is denied by some auth_on_subscribe plugin, no SUBACK packet is returned to the client (leaving the client without any feedback and blocking synchronous clients).
@ioolkos @dergraf could you reproduce this behaviour? Is there any workaround?

Hm, yes, you could be correct in that the SUBACK should always return the failure code here.
@ckrey could you kindly confirm this from a client or protocol spec perspective?

@ioolkos I ran some ErlyBerly on this, and thought this may be helpful. My vmq.acl:
user testark
topic read a/b

Now, SUBSCRIBEing to a/b yields
<0.11266.0> +1098us vmq_reg:subscribe(false, <<"testark">>, {[], <<"mqtt-client-1">>}, [{[<<"a">>, <<"b">>], 1}]) => ok
<0.11266.0>   +24us vmq_acl:auth_on_subscribe(<<"testark">>, {[], <<"mqtt-client-1">>}, [{[<<"a">>, <<"b">>], 1}]) => ok

while SUBSCRIBEing to a/c yields
<0.11266.0>   +46us vmq_reg:subscribe(false, <<"testark">>, {[], <<"mqtt-client-1">>}, [{[<<"a">>, <<"c">>], 1}]) => {error, not_allowed}
<0.11266.0>   +27us vmq_acl:auth_on_subscribe(<<"testark">>, {[], <<"mqtt-client-1">>}, [{[<<"a">>, <<"c">>], 1}]) => next

but no SUBACK is returned.

@ioolkos As for the protocol,

When the Server receives a SUBSCRIBE Packet from a Client, the Server MUST respond with a SUBACK Packet [MQTT-3.8.4-1]

Yes correct, the server MUST always respond with SUBACK.
The SUBACK contains either the maximum granted QoS level or 0x80 indicating a failed subscription per topic filter.
The spec is a bit weak by not explicitly stating what a "failed subscription" is. But a "failed subscription" is not a subscription which is denied by the authorization process. An acl may change over time and the permission for a specific message topic cannot be checked at the time of SUBSCRIBE to a topic filter in all cases.
E.g. mosquitto does notreturn 0x80 even if access is not allowed to the requested topic.
In general, there is no feedback from the server defined regarding authorisation except in CONNECT/CONNACK. Even a PUBLISH to a topic the user has no access to (and is therefore denied by the broker) is handled as a positive flow between client and broker.
aclfile
topic MQTTClient

user MQTTClient
topic MQTTclient/private

client
$ mosquitto_sub -t 'MQTTClient/private' -v -d -q 2
Client clientID sending CONNECT
Client clientID received CONNACK
Client clientID sending SUBSCRIBE (Mid: 1, Topic: MQTTClient/private, QoS: 2)
Client clientID received SUBACK
Subscribed (mid: 1): 2
^C
$ mosquitto_pub -t 'MQTTClient/private' -m 'xxx' -d -r -q 2
Client clientID sending CONNECT
Client clientID received CONNACK
Client clientID sending PUBLISH (d0, q2, r1, m1, 'MQTTClient/private', ... (3 bytes))
Client clientID received PUBREC (Mid: 1)
Client clientID sending PUBREL (Mid: 1)
Client clientID received PUBCOMP (Mid: 1)
Client clientID sending DISCONNECT

mosquitto
New connection from ::1 on port 1883.
New client connected from ::1 as clientID (c1, k60).
Sending CONNACK to clientID (0, 0)
Received SUBSCRIBE from clientID
MQTTClient/private (QoS 2)
clientID 2 MQTTClient/private
Sending SUBACK to clientID
Socket error on client clientID (0, 0)
Denied PUBLISH from clientID (d0, q2, r1, m1, 'MQTTClient/private', ... (3 bytes))
Sending PUBREC to clientID (Mid: 1)
Received PUBREL from clientID (Mid: 1)
Sending PUBCOMP to clientID (Mid: 1)
Received DISCONNECT from clientID
Client clientID disconnected.

If the topic level requested in the SUBSCRIBE is invalid (e.g. "abc/#/def"), it should be handled as a protocol violation (close connection).

But a "failed subscription" is not a subscription which is denied by the authorization process.

@ckrey from where did you draw this conclusion?

Correct:
a) server MUST return a SUBACK
b) SUBACK should state the granted QoS level (00, 01, 02)

@ckrey:

b) SUBACK should state the granted QoS level (00, 01, 02)

OR 0x80 to indicate failure (whish is the case).

@ckrey to quote the spec again,

[MQTT-3.8.4-5] The SUBACK Packet sent by the Server to the Client MUST contain a return code for each Topic Filter/QoS pair. This return code MUST either show the maximum QoS that was granted for that Subscription or indicate that the subscription failed.

@ckrey thanks for this thorough description!
So, in short, Mosquitto doesn't return the failure either.
In fact, we might have [overlooked 0x80 completely]
(https://github.com/erlio/vmq_commons/blob/master/src/vmq_parser.erl#L402)

@ioolkos thanks for taking the time :-) So, please let me ask if this is something you are planning to "fix" in a near future?

To be honest, I do not know what a "failed subscription" is. Will ask paho-dev

@testark if this needs to be fixed, we're certainly planning to fix it.
Can't promise a new release within 2 weeks though.
Also, I'm really curious too what a failed subscription is :)

@ioolkos OK, thank you so much :-)
@ioolkos @ckrey pardon me if I'm wrong, but ain't a "failed subscription" a subscription that didn't actually succeed?

https://dev.eclipse.org/mhonarc/lists/paho-dev/msg03124.html

mosquitto disconnects you if you provide an invalid subscription string.
Access control is currently limited to PUBLISH only (so your subscription may have been successful, but you won't receive any messages due to a denial). This is because matching a topic against a wildcard sub is easy, but matching a wildcard sub against a wildcard acl is more difficult. I had to disable returning 0x80 so it wasn't producing incorrect behaviour and have only had bugfix releases since.
mosquitto 1.5 will return 0x80 when a subscription is denied.
If access to the topic is denied

@ralight Thank you very much for your input :-)

@ioolkos, looks like @ckrey did not receive any input from paho-dev. To me, it is clear that every SUBSCRIBE must have a matching SUBACK, and that a failed subscription is one that didn't succeed (hence 0x80). Could I expect this to be fixed on the next release? :-) Or only a later one?

@testark the mqtt refcards [here] (https://dzone.com/refcardz/getting-started-with-mqtt) section 16 states that subscription failure is for authentication failure. So the HiveMQ guys clearly are of this opinion, which is good.
seems we have to add this feature asap, yes ;)

The answer from ralight was triggered by my request to paho-dev

@ioolkos That's great :-)


AC temperature set

Checklist

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

Is your feature request related to a problem? Please describe.
Would be useful tu set temperature for AC
Describe the solution you'd like
Set a input number box for the temperature
Describe alternatives you've considered
.
Additional context
.

This will be a cool feature, though. Unfortunately not available via API..


⚠ ClamAV has degraded performance

In 7a73eae, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 588 ms

Resolved: ClamAV performance has improved in d330b15.


Creepers and Ghasts Activate the Underwater Effect

If a creeper or ghast's fireball explodes, the mod plays the underwater effect, not the on land effect.
Why?

Actually wait,it may be because I had a gamerule activated. Still a bug though.

Fixed.


Have you tracked all the requests for Google analytics to confirm this? I watched a lot of things they transmit there, including the size of the device screen, etc. I wouldn't be surprised if data analysts tracked bot patterns based on this data.

Have you tracked all the requests for Google analytics to confirm this? I watched a lot of things they transmit there, including the size of the device screen, etc. I wouldn't be surprised if data analysts tracked bot patterns based on this data.

I do. they are lying

Have you tracked all the requests for Google analytics to confirm this? I watched a lot of things they transmit there, including the size of the device screen, etc. I wouldn't be surprised if data analysts tracked bot patterns based on this data.

They banned a guy that applied manually original key from game into hamster. What you're talking about?
https://github.com/user-attachments/assets/1102c376-aae5-4f59-9648-d50205471623
Pls, say that this is analytics too....

Они просто рандомно раздали баны вот и вся математика. Про тапы в один пиксель на телефоне это вообще пиздятина, доказывающая что они держат своё комьюнити за глупое стадо.

они держат своё комьюнити за глупое стадо.

поправочка, за стадо хомяков) И в общем то не скрывают этого.


Cannot find requisite cpp files for setuptools

In src/xlib/, I have a setup.py which is build a Python C++ extension using setuptools. When python3 setup.py build_ext is run within that directory, the build completes successfully. However, when running colcon build --symlink-install from the workspace root, I get the following errors:
x86_64-linux-gnu-gcc: error: PythonBindings.cpp: No such file or directory
x86_64-linux-gnu-gcc: fatal error: no input files
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
---

It seems that colcon is not copying over the source files to the build folder at build/xlib, and thus the setup.py is unable to build the extension. I am unable to find documentation or sources to help me do this.
colcon build completes successfully, but obviously leaves the built xlib.cpython-*-.so in the src/xlib folder.
sources=[
        'PythonBindings.cpp',
        'Other.cpp',
        'Example.cpp'
]
lib_module = Extension(
    'xlib',
    sources=sources,
    language='C++',
    extra_compile_args=['-std=c++14'],
    libraries=['stdc++'],
    include_dirs=[numpy.get_include(), get_python_inc()]
)

setup(
    name='lib_bindings',
    version='1.0.0',
    packages=[],
    author='Ritwik Gupta',
<EMAIL_ADDRESS>    maintainer='Ritwik Gupta',
<EMAIL_ADDRESS>    keywords=['x'],
    classifiers=[],
    description='x',
    ext_modules=[lib_module],
    package_data={
        '': ['PythonBindings.cpp', '*.h', '*.c']
    },
    include_package_data=True
)

I understand that package_data is the wrong way to go about this, but it does not seem like this functionality exists within colcon itself. I may be wrong here, please correct me!

Please provide a ready-to-run reproducible example.

@dirk-thomas I added a simple example to this repo: https://github.com/RitwikGupta/colcon_cpp_extension_build

The colcon build invocation even fails for me for the example when not using --symlink-install?

Nvm, ignore my last comment - I had symlink installed enabled in a global config file...

Thank for the example. That will be helpful to test any potential patch.
The normal installation uses this command to achieve an out-of-source build: https://github.com/colcon/colcon-core/blob/a9e1766d9970c441d8c44491d11760a4af1b2daa/colcon_core/task/python/build.py#L64-L78
The develop call uses: https://github.com/colcon/colcon-core/blob/a9e1766d9970c441d8c44491d11760a4af1b2daa/colcon_core/task/python/build.py#L89-L96
I am not sure what options need to be passed to setuptools to support develop out-of-source together with extension modules. Since we don't have that use case at the moment I don't know when I will be able to work on this.

I got it working!
In the setup() command in setup.py, it is necessary to include a line data_files = [('.', all_files)], where all_files is the source and header files necessary for compilation. colcon build --symlink-install then works as intended.
The requisite line:
https://github.com/RitwikGupta/colcon_cpp_extension_build/blob/471734c870046c83044c8b90457acf69cc579ca2/src/xlib/setup.py#L44
Getting all files:
https://github.com/RitwikGupta/colcon_cpp_extension_build/blob/471734c870046c83044c8b90457acf69cc579ca2/src/xlib/setup.py#L20-L26
Is there any way to document this? It would be helpful for anyone attempting to build extensions with colcon.

Is there any way to document this?

colcon.readthedocs.org is probably the best place for any documentation. I am not sure where in the existing structure it would fit. Maybe a new item on the existing user/how-to page?

Let's close this issue with the merge of the documentation PR over here: https://github.com/colcon/colcon.readthedocs.org/pull/37
Thank you!


StreamSourceRecordReader should support AckPolicy.MANUAL

StreamSourceRecordReader uses the default AckPolicy on RedisItemReader, which is AUTO. If the connector fails to write to the topic after the reader has received a message, and the task is stopped/restarted, that message will be lost (at-most-once processing).
The connector should also support at-least-once processing by XACK'ing each message after they've been committed, indicated by AckPolicy.MANUAL. The connector should support a property such as:
redis.stream.delivery.type: at-least-once | at-most-once

and I'd argue the default should be at-least-once. I believe I can put together a PR for this.

Thank you. I added an option to set the ack policy (auto or explicit).

Hi @jruaux , thanks for putting together a change for this. I've been working on another PR for this but there are some differences between our approaches:
I was hoping to define the behavior in terms of the semantics of the delivery policy (at least once vs at most once) rather than the Redis behavior of XACK. To me as a connector user, this is a more meaningful guarantee. I also believe the current implementation after these changes may be missing part of that guarantee. Read on for details:
If the connector fails between reading messages from the stream and writing the messages to Kafka, the default behavior of the StreamItemReader will drop all of the messages that remain in Redis' "pending entries list", or PEL, described in the docs.  This breaks the promise of "at-least-once" delivery. Even if the messages are written to Kafka, the dropped messages will remain in the PEL indefinitely, which essentially leaks memory in Redis.
One last comment: the new changes refer to a method StreamItemReader.ack(String[]) rather than StreamItemReader.ack(StreamMessage). This doesn't seem to be available in the previous version of spring-batch-redis (3.0.4), and it seems that this change introduces a breaking API change in a patch version (3.0.5), which breaks semantic versioning. I'd suggest restoring the old ack(StreamMessage) method to avoid the breaking change.
I'll push my changes and post my PR so you can review the spirit of my approach. The changes are complete, but I was writing more unit tests to try to verify the behavior. I hadn't noticed the availability of the integration tests, but I'd be happy to pivot to writing more of those instead to demonstrate some of the potential issues with recovery.

Here's a link to the commit with all the changes. The master branch here has diverged too much for now, but it's probably not too much work to incorporate the idea of the StreamMessageRecovery into the current master:
https://github.com/coursehero/redis-kafka-connect/commit/88f49ebe63a8823c60d8a0c31856d08bb6768cd5

Thanks for your input and contribution. I agree with exposing the semantics to the user (vs the Redis implementation). I will also incorporate that message recovery mechanism, although I'm thinking it might belong to Spring Batch Redis as it might benefit other projects.
Good catch regarding the breaking API in Spring Batch Redis. I'll restore that method and push a new version shortly.
Thanks again!

@jruaux - I pushed another commit on that branch that fixes issues with StreamMessageRecovery and adds integration tests. I know you won't be incorporating these changes as-is, but I'd appreciate you taking a look. I'm not sure the best way to provide the integration in Spring Batch Redis to ack the messages that were committed previously by Connect, but not yet acked manually (e.g. we lost a connection to Redis between reading a batch and attempting to commit messages). This behavior is necessary to support "exactly-once" connector processing. The test RedisSourceTaskIT.pollStreamAtLeastOnceRecoverFromOffset(RedisTestContext) mocks restoring from a connector offset.

@ahawtho I included your message recovery logic in Spring Batch Redis v3.0.7 and this project's early access release leverages it. Can you let me know what you think? If all looks good I'll cut a new version

@jruaux I will try to take a look at this tomorrow or Friday. Thanks for putting it all together!

🎉 This issue has been resolved in v0.7.5 (Release Notes)


As an advanced user, I want to add custom flags on my client config

This is a great idea

This is a great idea

Investigate if flag ordering is a problem in typical client start

stale; completed


Click is not working all the times

In some of my test runs, the click method is not working and I have to manually select and click the element
 .evaluate(function() {
                        document.querySelector('a[href="page-1"]').click();
                    })

I can also do the job correctly if I run select and click in Chrome Console.
Unfortunately I can't share a sample as it's a proprietary app.
Error:
wait("a[href="page-1"]")
timed out after 10000ms

Try initiating chromeless with new Chromeless({scrollBeforeClick: true}). If the element is out of the viewport then chromeless is not able to click on it so you need to scroll to it before click. That option will do it automatically before every click.

You can also use the implicit wait together with scrollBeforeClick option like new Chromeless({scrollBeforeClick: true, implicitWait: true}) to make chromeless wait for the node to be present in the DOM before clicking on it.

Hi,
I can't find where the scrollBeforeClick option is documented ?
Best regards

I just made a PR with the documentation: https://github.com/graphcool/chromeless/pull/243/files

The source has more documentation than the documentation:
https://github.com/graphcool/chromeless/blob/master/src/types.ts#L40
Thanks @janza for adding to the doc.

In a related issue (#290), I tried setting the viewPort larger without success.


feat: support multiple env in one section

Close https://github.com/ai/browserslist/issues/226

Could you also add to test that staging env way parsed correctly (anyway I will be able to merge PR only hour later)

@ai Also update README


Corrected wrong value

paginationEnabled value is true by default

Coverage remained the same at 80.38% when pulling 37d2426d38168269545aa4d5a16989a47a910a0c on Javid-Izadfar:master into af7981bae5e7200cb43adca7c3d43490898625b5 on SSENSE:master.

@Javid-Izadfar thanks a lot!


implement Future for Vec?

We currently don't have an equivalent of future::join_all. I was thinking: what if we had an implementation that did the same by implementing Future on a Vec of Futures:
impl<T> Future for Vec<Future<Output = T>> {
    type Output = Vec<T>;
}

impl<T, E> Future for Vec<Future<Output = Result<T, E>> {
    type Output = Result<Vec<T>, E>;
}

Not sure if orphan/coherence rules allow this tho. But this might be a nice shorthand. Also interesting perhaps to explore if we can enable this for arrays too. And whether we could use IntoFuture and IntoIteraror in the bounds rather than Future and Vec (probably yes on the first account, no on the second).

That's a very interesting idea. I think such a blanket impl could only live in the standard library. Not sure if there are any coherence issues, but it would probably work!
Is future::join_all(v) essentially equivalent to this?
v.into_stream().map(|f| f).collect()`

@stjepang not quite, as in join_all! the futures would resolve concurrently (though being ordered!), whereas in Stream::map they resolve sequentially.

What if we made it possible to resolve concurrently by doing the following:
v.into_stream().par().map(|f| f).collect()

IMHO, the result of this should be Box<[T]> and the function implemented on &[T]. I don't think the input and output of this should be manipulated or grown by the user.
I would also like to see a parallel API like @stjepang suggests.


CryoSleep Access Fix

About the PR
Fixes #25654 by giving all command and security members cryo access directly on their job prototypes.
Why / Balance
Them not having it was an oversight and how it was meant to originally be in #24096.
Media
(I had a video but it's over 10mb and not really needed.)

[X] This PR does not require an ingame showcase

Changelog
:cl:

fix: Fixed all command and security roles not having cryogenics access.

i would remove that from cadets

i would remove that from cadets

No :godo:
Intern roles should get the exact same treatment as their higher roles, in regards to mechanics at least.

i would remove that from cadets

No :godo: Intern roles should get the exact same treatment as their higher roles, in regards to mechanics at least.

Then where is their externals access?! 😡


[web]Can not show "Space" between chinese

on last channel dev , web default using SKIA , but there is a bug

Cant not show "Space" between chinese
And how can I not use skia?
flutter run -d chrome --release --dart-define=FLUTTER_WEB_USE_SKIA=false NOT WORK
[✓] Flutter (Channel dev, 1.27.0-1.0.pre, on macOS 11.2.1 20D74 darwin-x64, locale zh-Hans-CN)
• Flutter version 1.27.0-1.0.pre at /Volumes/SDK/BETA/flutter-dev
• Framework revision 68c96f100e (6 days ago), 2021-02-08 16:14:15 -0800
• Engine revision b04955656c
• Dart version 2.13.0 (build 2.13.0-0.0.dev)
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn

Hi @sunjianan9900
This is a duplicate of https://github.com/flutter/flutter/issues/76003. To switch to HTML renderer you have to pass: --web-renderer html instead of dart-define. Please follow up on that issue for more updates.
Thank you

Hi @sunjianan9900
This is a duplicate of #76003. To switch to HTML renderer you have to pass: --web-renderer html instead of dart-define. Please follow up on that issue for more updates.
Thank you

thanks for reply
but it's a little different
on #76003 it can not show any chinese character at all
but this issue is not about chinese character not showing up，it can load chinese character,
but "Space" can not show up between chinese , like this:
你❌❌好！
hello   there！
when "Space" between chinese character , it comes up "x"
but  "Space" between english character , it works well

but this issue is not about chinese character not showing up，it can load chinese character,
but "Space" can not show up between chinese

This makes sence, but I do believe that the root cause may be the same as https://github.com/flutter/flutter/issues/73628. @yjbanov can you please confirm?
Thank you

This is being fixed in https://github.com/flutter/engine/pull/24249. We need to roll to a new version CanvasKit.

Duplicate of https://github.com/flutter/flutter/issues/74742


Hiding values in view results

We need a way to hide specific values in the result of views.
For example, given the following view:
Question            gender
Values              @
Question    Values
q1          1       7.201447
            2       9.64925
            3       55.662665
            4       72.663656
            5       4.704566
            6       11.496034
            7       21.69883
            8       3.178551
            9       0.099151
            96      2.199429
            98      2.497416
            99      8.949005

We need a way to hide selected values in the index. For example, in this case the values 96, 98 and 99 which represent some form of non-response like "Don't know", "Prefer not to say", "None of these" have been hidden.
Question            gender
Values              @
Question    Values
q1          4       72.663656
            3       55.662665
            7       21.69883
            6       11.496034
            2       9.64925
            1       7.201447
            5       4.704566
            8       3.178551
            9       0.099151

I'll implement this using column meta tags that are picked up by paint_dataframe.

I've implemented this in a new meta object called rules, using an option called dropx.
The rules object is a dict with x and y keys for axis-specific rules application. Internally dropx results in a call to a function of the same name. The contents of the slicex object becomes that function call's kwargs.
def dropx(df, values):
    """
    Return df after dropping values from the index.

    Assuming a Quantipy-style view result this function drops index
    rows indicated by values and returns the result.

    Parameters
    ----------
    df : pandas.DataFrame
        The dataframe that should have some index rows dropped.
    values : list-like
        A list of index values that should be dropped from the index.

    Returns
    -------
    df : list
        The edited dataframe.
    """

Given the following crosstab:
print crosstab(meta, data, 'income', 'income_cb')

Question                income_cb
Values                        All    1    2    3    4    5    6   7   8   9   10   11   12  901  902  903
Question    Values
income      All              2078  425  204  187  146  119  103  89  68  59  226  101  351  425  848  353
            1                 425  425    0    0    0    0    0   0   0   0    0    0    0  425    0    0
            2                 204    0  204    0    0    0    0   0   0   0    0    0    0    0  204    0
            3                 187    0    0  187    0    0    0   0   0   0    0    0    0    0  187    0
            4                 146    0    0    0  146    0    0   0   0   0    0    0    0    0  146    0
            5                 119    0    0    0    0  119    0   0   0   0    0    0    0    0  119    0
            6                 103    0    0    0    0    0  103   0   0   0    0    0    0    0  103    0
            7                  89    0    0    0    0    0    0  89   0   0    0    0    0    0   89    0
            8                  68    0    0    0    0    0    0   0  68   0    0    0    0    0    0   68
            9                  59    0    0    0    0    0    0   0   0  59    0    0    0    0    0   59
            10                226    0    0    0    0    0    0   0   0   0  226    0    0    0    0  226
            11                101    0    0    0    0    0    0   0   0   0    0  101    0    0    0    0
            12                351    0    0    0    0    0    0   0   0   0    0    0  351    0    0    0

Set up the dropx rules:
meta['columns']['AMA_qincome']['rules'] = {
    'x': {'dropx': {'values': [1, 3, 5, 7, 9, 11]}}
}

meta['columns']['AMA_qincome_cb']['rules'] = {
    'y': {'dropx': {'values': [12, 10, 4, 6, 2, 901, 902, 903]}}
}

Apply the rules using crosstab:
print crosstab(meta, data, 'income', 'income_cb', rules=True)

Question                income_cb
Values                        All    1    3    5   7   8   9   11
Question    Values
income      All              2078  425  187  119  89  68  59  101
            2                 204    0    0    0   0   0   0    0
            4                 146    0    0    0   0   0   0    0
            6                 103    0    0    0   0   0   0    0
            8                  68    0    0    0   0  68   0    0
            10                226    0    0    0   0   0   0    0
            12                351    0    0    0   0   0   0    0

The rules object also supports slicex (#19) and sortx (#15), all of which may be used in any combination.

When drawing chains out of a stack, rules can be applied to what is extracted in the same way:
chains = stack.get_chain(..., rules=True)

rules will currently only be applied to chain items if the parameter post_process is also True (which it is by default).

Resolved by #40


Add _ for variables inside workgraph engine

Codecov Report
Attention: Patch coverage is 92.85714% with 5 lines in your changes missing coverage. Please review.

Project coverage is 79.36%. Comparing base (5937b88) to head (8f09dce).
Report is 29 commits behind head on main.

Files
Patch %
Lines

aiida_workgraph/engine/workgraph.py
92.75%
5 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #227      +/-   ##
==========================================
+ Coverage   75.75%   79.36%   +3.61%
==========================================
  Files          70       61       -9
  Lines        4615     4469     -146
==========================================
+ Hits         3496     3547      +51
+ Misses       1119      922     -197

Flag
Coverage Δ

python-3.11
79.25% <92.85%> (+3.59%)
:arrow_up:

python-3.9
79.32% <92.85%> (+3.58%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update contracts.md

Updated broken link to configuration page.

This is invalid. The links don't need the .md extension. When developing Truffle documentation, run npm run docs within your Truffle checkout and that will give you a development version of the documentation you can work with. You'll see that those links work correctly. Cheers!

Ah OK - I did not realise that this is was how the documentation was supposed to be viewed.  The first thing I did was review this documentation online - on the GitHub website.
I added the .md extensions as this made the links work when viewing via the GitHub website.  Perhaps others will do the same as me and try to read via the GitHub website initially before committing more time?
Great repo by the way.  Appreciate the time you have put into this!

That's a great point. I never thought of consuming the docs that way (my response seems harsh now, apologies).
Let me see if those links will work on the documentation site, and if they do we can reopen this PR.

Hmm, unfortunately they don't. I wonder if there's another option.


How do I get the URL for playback of an item?

Hello.
I am developing an app using this library. I got Browsing figured out, but after having searched for about an hour through the api, I cannot for the life of me figure out how to get a stream or url for playback of an item. Can you provide a sample?
Or do I have to build my own url following this (as in there's no built-in functionality in the library): https://github.com/MediaBrowser/Emby/wiki/Audio-Streaming

Yes you have to build your own urls. Audio is very easy and the link you quoted has an example. Does that help?

Yes I tried the sample, and it works for me. I thought I was going crazy when I couldn't find methods to build the URL in the API. Maybe a quick mention of that on the readme.md would be helpful for others :)


Possible bug in Autoencoder class

Hi Francois, et al., I'm a PhD student in CS/machine learning at USC. We started our DL odyssey using Theano directly and just discovered keras, which has thus far been great, especially for rapidly trying a lot of different models. Thanks for the great work!
I did find what I believe to be a bug in the Autoencoder class, in its handling of tied weights. I noticed after training an autoencoder with tied weights set to true, the actual encoder and decoder weights were NOT identical (which means they WEREN'T actually tied during training). This is because the only place the tie_weights option is used is inside of get_output -- i.e., it just returns the encoder weights as the decoder weights.
Unless I am mistaken, what you want is for the decoder's Theano symbolic variable parameter (e.g., W for a Dense layer) to be the transpose of the encoder's parameter. For example, see the dA class in the Theano tutorial.
I can fix this, but I have two questions:

Do you have a preferred procedure for accepting fixes? I.e., just fork keras, make the changes, send a pull request?

I'm torn about the best way to make the actual fix. I created a new Layer called TiedDense that accepts a Dense "layer" in its constructor and does the "right thing" (sets the W parameter to be equal to layer.W.T, makes an untied bias, only includes the bias in the params list, etc.). For now, I've just been sticking that in a Sequential model and eschewing the Autoencoder class altogether.

Another option would be a to make a class method that takes a (generic) layer and creates a decoder version of that layer with tied weights. With that, one could perhaps build the decoder automatically within the Autoencoder constructor.
Thoughts?
P.S. I've also implemented some Noise layers for use with denoising autoencoders, if those are of interest.

Do you have a preferred procedure for accepting fixes? I.e., just fork keras, make the changes, send a pull request?

Yes. Your PR will be reviewed, you will get feedback, and when everything looks good it will be merged.

Unless I am mistaken, what you want is for the decoder's Theano symbolic variable parameter (e.g., W for a Dense layer) to be the transpose of the encoder's parameter. For example, see the dA class in the Theano tutorial.

It's not so simple, because encoders/decoders are arbitrary stacks of layers.

Another option would be a to make a class method that takes a (generic) layer and creates a decoder version of that layer with tied weights. With that, one could perhaps build the decoder automatically within the Autoencoder constructor.

How would that work?

Yes. Your PR will be reviewed, you will get feedback, and when everything looks good it will be
merged.

OK, I can do that.

Unless I am mistaken, what you want is for the decoder's Theano symbolic variable parameter (e.g.,
W for a Dense layer) to be the transpose of the encoder's parameter. For example, see the dA class
in the Theano tutorial.

It's not so simple, because encoders/decoders are arbitrary stacks of layers.

True, but I think the special case of a single layer denoising autoencoder [1] is important enough to warrant a proper implementation in the keras ecosystem (even if it's just an example and not an actual layer). This would permit comparison with the Theano tutorial [2], and it is a common tool for classic unsupervised pretraining [3]. Regarding HOW to do it...

a class method that takes a (generic) layer and creates a decoder version of that layer with tied
weights.

How would that work?

I have some ideas. Let me flesh them out and then re-post them in this thread, for your feedback.

After review, I decided to remove weight tying for now. You can reintroduce it in a cleaner form in a future PR.

Even if the enc_param is set to the dec_param after the first initial pass everything is in essence the same. But yes, a simple swap of enc_param <--> dec_param in the swapping logic will solve your 1 timestep lag. You do not generally tie biases. The way I implemented weight tying was using:
if len(dec_param.shape) > 1:

This is because layer.get_weights() does not return only the weights.
This is erroneous and needs to be refactored to .get_weights() & .get_bias()

What's the workaround here? Without tied_weights I get the following error if I try the "unofficial" SAE-example from you: Layer is not connected                and is not an input layer.

I see this bug is still open.  I would like to contribute to Keras and feel this would be a good place for me to jump in.  Can someone give me a hand on getting started?

Hi,
what is the current state with the tie_weights parameter ?
Is the bug fix reviewed and released ?

It doesnt support the tie_weights parameter.  As far as I have researched,
this is not being implemented.  I believe you don't have to the tie the
weights to get reasonable results.  In fact, I think one of the reasons
tie_weights was removed was because @fchollet didnt want to propagate that
method because he felt it was unnecessary.  @fchollet, can you comment?
On Wed, Feb 24, 2016 at 10:41 AM, niraabe<EMAIL_ADDRESS>wrote:

Hi,
what is the current state with the tie_weights parameter ?
Is the bug fix reviewed and released ?
—
Reply to this email directly or view it on GitHub
https://github.com/fchollet/keras/issues/386#issuecomment-188310253.

I tried this tutorial  https://blog.keras.io/building-autoencoders-in-keras.html  without the tied weights.  But the result is not great (at least given the same effort of training compared with tied weights in theano dA).    This means I have to translate theano dA class into keras convention in order stay within keras?
Here is the results without tied weights


Fix template single quotes issue

We had an issue with single quotes not being escaped properly when using templates containing text with multiple single quotes.

Good job... I'm waiting Travis.


esp_zb_lock_acquire in IOT-Button-Callback freezes  (TZ-1195)

Answers checklist.

[X] I have read the documentation ESP Zigbee SDK Programming Guide and tried the debugging tips, the issue is not addressed there.
[X] I have updated ESP Zigbee libs (esp-zboss-lib and esp-zigbee-lib) to the latest version, with corresponding IDF version, and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.3.1
esp-zigbee-lib version.
1.5.0
esp-zboss-lib version.
1.5.0
Espressif SoC revision.
ESP32-C6
What is the expected behavior?
On a button press, a connected zigbee powerplug should be toggled and the implemented coordinator should open the network for joining.
static void button_single_click_cb(void *arg,void *usr_data)
{
    esp_zb_apsde_data_req_t req = {
        .dst_addr_mode  = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT,
        .dst_short_addr = 0x8d3e,
        .dst_endpoint   = 1,
        .src_endpoint   = 1,
        .profile_id     = 0x0104,
        .cluster_id     = 0x0006,
        .tx_options     = 0,
        .use_alias      = false,
        .alias_src_addr = 0,
        .alias_seq_num  = 0,
        .radius         = 5,
        .asdu_length    = 3,
        .asdu           = (uint8_t[3]){0x01,0x42,0x02}
    };
    if(esp_zb_lock_acquire(1000/portTICK_PERIOD_MS)){
        ESP_ERROR_CHECK(esp_zb_aps_data_request(&req));
    }else{
        ESP_LOGE(TAG, "esp_zb_lock_acquire failed");
    }
    ESP_ERROR_CHECK(esp_zb_bdb_open_network(240));
}

What is the actual behavior?
The SoC - or at least the zigbee stack - looks like frozen. I have led_indicator_set_on_off calls on the ESP_ZB_NWK_SIGNAL_PERMIT_JOIN_STATUS signal of the esp_zb_app_signal_handler and the led is not turned on or off. I send received aps-data via TWAI and the bus shows nothing.
By commenting the esp_zb_lock_acquire everything works as expected!
Steps to reproduce.

use esp_zb_switch example from the SDK
add espressif/button component
create an iot_button with gpio_btn_cfg and register the function above
see the example working until you press the configured key

More Information.
When debugging the hole handler is passed, but a breakpoint right on the entry of esp_zb_app_signal_handler is never triggered.

In https://github.com/espressif/esp-zigbee-sdk/issues/435 @chshu  wrote

Feel free to raise github issues for any particular questions,...

That does not work out that well here....

@mw75 The esp_zb_lock_acquire() and esp_zb_lock_release() should be used in pairs:
if(esp_zb_lock_acquire(1000/portTICK_PERIOD_MS)){
        ESP_ERROR_CHECK(esp_zb_aps_data_request(&req));
        esp_zb_lock_release();
    }else{


reports.InvalidReportMetadataException: [Some filter conditions are defined but not referenced in your filter logic.]

This error seems to occur when a report contains filters and has more than 2,000 records

This turned out to be an issue with the report service from NPSP. I've fixed in this package and submitted pull request to fix in NPSP too https://github.com/SalesforceFoundation/CampaignTools/issues/94


[FLOC-1290] Add sketch of variant support for provisioning.

https://clusterhq.atlassian.net/browse/FLOC-1290
This is a sketch of adding support for the acceptance runner to run tests with newer versions docker.
Running it will be done in https://clusterhq.atlassian.net/browse/FLOC-1304

If we don't already have one, might also want a separate issue for running our non-acceptance tests (specifically functional tests, but easiest to just do everything) against latest Docker.

:frowning: For some reason, I thought this had been accepted.


override plugin hooks by higher layers don't work

https://github.com/BobBuildTool/basement/blob/17e99bf59a3c2b2b065781b3e9388deeb4eb539e/plugins/paths.py#L1-L30
because of basement uses the NameFormatter hooks, it isn't possible to do this as "user" e.g. in the main layer.
so we could remove the hooks, and make this behavior to bob's default, or we could add the short-path feature here, e.g. by an variable...?!
e.g. bob dev -DBOB_SHORT_PATH="D:" <...>
note: every single character can't be paid by money in windows os! ;-)
what do u think?

I would actually call this a bug in the Bob layer implementation. Conceptually higher layers have higher precedence and should be able to override lower layers. This is working already for default.yaml settings. Obviously the plugins are loaded the other way around. :confused:

as a second topic, if i check this: https://github.com/BobBuildTool/bob/tree/30b1fdfc9dca9e40f46a102f06ac7217365c93c1/test/plugin-settings and this: https://bob-build-tool.readthedocs.io/en/latest/manual/extending.html#bob.input.PluginSetting
is there a good way, to implement a configurable short-path feature?
someting like:

BSP="D:" bob dev <...>
bob dev -DBSP="D:" <...>
bit more complex: creating a cfg file with the path and use bob dev -c <...>

or should that implemented inside the bob tool?!

Plugins must always be configured with the PluginSetting method as described here. This way Bob will recognize changes and recalculate things. This is required because plugins are assumed to be deterministic and Bob cannot see if the plugin reads an environment variable. It's also convenient for the user because he can use the usual default.yaml / user.yaml / bob dev -c ... methods...

ahhh, right, the user.yaml is also a good thing, to configure a short path on e.g. jenkins server. thx. so just the override-bug still remains.

thx. so just the override-bug still remains.

Yes, unfortunately. Technically speaking this is a backwards incompatible change. I'm just not sure if it's worth a policy to optionally retain the old behaviour...

I'm just not sure if it's worth a policy to optionally retain the old behaviour...

IMO: nope. i guess that makes no sense.

Let's properly track the plugin issue in BobBuildTool/bob#428...

Fixed in Bob.


Can't Set fonts

I am trying to use costum fonts.
I got the idea from this blog post and it was working fine
<EMAIL_ADDRESS>But now I added the font called Lantinghei.ttc (that is available on El Captain by default) to my application, listed it on Info.plist as well.
When I print all the font available to my application to the console using the code mentioned in the above blog:
for (NSString* family in [UIFont familyNames])
{
  NSLog(@”%@”, family);
  for (NSString* name in [UIFont fontNamesForFamilyName: family])
  {
    NSLog(@” %@”, name);
  }
}

it gives me output as
Lantinghei TC
    FZLTTHB--B51-0
    FZLTZHB--B51-0
    FZLTXHB--B51-0
Lantinghei SC
    FZLTZHK--GBK1-0
    FZLTTHK--GBK1-0
    FZLTXHK--GBK1-0

Using fontFamily: Lantinghei TC gives me Lantinghei TC Heavy and using fontFamily: Lantinghei SC gives me Lantinghei SC Heavy.
There is no way for me to set the ExtraLight and DemiBold option of the font. When I open the font in FontBook, it shows me all three options of Heavy, DemiBold and ExtraLight
If I use the other 3 weird name listed above, it gives me the same effect no matter which of the 3 I use.
I created a swift project and used those 3 wired name, and it seems to render fine. But in RN, it has no effect than to render the Heavy font.
Here the minimal code I used to reproduce the issue:
'use strict';
import React, {
  AppRegistry,
  Component,
  StyleSheet,
  Text,
  View
} from 'react-native';

class FontTest extends Component {
  render() {
    return (
      <Text style={styles.welcome}>
        Welcome to React Native!
      </Text>
    );
  }
}

const styles = StyleSheet.create({
  welcome: {
    fontFamily: 'FZLTXHK--GBK1-0',
    fontSize: 20,
    textAlign: 'center',
    margin: 40,
  },
});

AppRegistry.registerComponent('FontTest', () => FontTest);

react-native version: 0.20 (but the problem persisted in earlier versions too)
I tested it on IOS, i did not know how to print the name of custom fonts that I can use on android
OS: Mac OSX El Capitan 10.11.2

Have you tried to use a fontWeight?

@Kureev Yes I have, with the same result.

Well, in this case I don't know what to advice. Maybe you can try to convert .ttc to .ttf and try again, but that's just a my feeling.

I've been always explicit with the font names, that is, I was setting the font name to be Lato Bold instead of just Lato & fontWeight. That's been working well.

@grabbou You just nailed it, i've been struggling with a specifically font in these last days, in my case was Axis font, and it didn't work to just rename the font file, what i did was open the font on FontForge and rename from there to Axis-Font and export to .ttf, i still don't know why, but it worked, thanks.

@Kureev I opened the font in a font converting app. I think the issue was with some kind of font post script.
The post script had those weird names
FZLTTHB--B51-0
FZLTZHB--B51-0
FZLTXHB--B51-0
The app changed those name to the sane font names. And everything worked fine.

Can't use custom font in React Native iOS.
My font family name is "Impact".
In RCTConvert.m
+ (UIFont *)UIFont:(UIFont *)font withFamily:(id)family
              size:(id)size weight:(id)weight style:(id)style
   scaleMultiplier:(CGFloat)scaleMultiplier

  UIFont *bestMatch = font;
  CGFloat closestWeight = INFINITY;
  for (NSString *name in [UIFont fontNamesForFamilyName:familyName]) {
    UIFont *match = [UIFont fontWithName:name size:fontSize];
    if (isItalic == RCTFontIsItalic(match) &&
        isCondensed == RCTFontIsCondensed(match)) {
      CGFloat testWeight = RCTWeightOfFont(match);
      if (ABS(testWeight - fontWeight) < ABS(closestWeight - fontWeight)) {
        bestMatch = match;
        closestWeight = testWeight;
      }
    }
  }
return bestMatch;

I find when I use font family "Impact", the code
isItalic == RCTFontIsItalic(match) &&
        isCondensed == RCTFontIsCondensed(match)

return false so bestMatch return nil.
I also find other custom font families work fine. Just "Impact" don't.


Lift symbolic logic to a higher langauge

The symbolic logic immediately reduces all pcode operations to an AIG circuit. However, if a more powerful solver is used, then we force the solver to do additional unnecessary work solving this circuit. Z3 is for example capable of understanding multiplication.
A better approach would be to capture the operations at the pcode level, and then reduce the pcode to the appropriate IL based on the chosen backend.

An intermediate layer which has its own understanding of "symbolic" that implements pcode operations should be sufficient. Then SymbolicMemory is mapping of these symbolic values and performing operations on them. The existing emulator would be the pcode operation implementation for bitvec. Shuffling that around for bitvec and having an open layer that supports other possible implementations shouldn't be too tricky.
An additional benefit from this is it clears the way for a concrete pcode implementation -- i.e. one that doesn't support symbolic values at all.


[enh][transaction] Optimize to reuse transaction buffer snapshot writer

Motivation
The transaction buffer(short for TB) snapshot topic is used to persistent snapshot data for TB, the snapshot can reduce read data when recovering.
Currently, if enable the transaction feature, every topic will create a TB snapshot producer, the topic of the producer is a namespace system topic, so we don't need to create a producer for every topic, one producer per namespace is enough.
Modification
Add a new inner class ReferenceCountedWriter, if the ReferenceCountedWriter for one namespace does not exist, it will be initialized, or else its reference count will be increased, if the reference count reduces to 0, it will be removed from map-cache.
Verifying this change
Adjust existing tests to cover this change.
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation
Check the box below or label this PR directly (if you have committer privilege).
Need to update docs?

[ ] doc-required
(If you need help on updating docs, create a doc issue)

[x] no-need-doc
(Please explain why)

[ ] doc
(If this PR contains doc changes)

This PR is too old, I create a new one https://github.com/apache/pulsar/pull/19641.


Cache cache directory for vimeo/psalm

This PR

[x] Cache cache directory for vimeo/psalm. Looks like it was missing.

Thank you, @bendavies!


segfault in ActiveStreamFilterBase::commonContinue()

1.11 was released a few days ago and my Envoy configuration doesn't work ever since I upgraded from 1.10.
My configuration is based on a Lua filter that makes a few HTTP calls and updates upstream request and client response. Since the last upgrade, Envoy crashes at the very end of every request.
Here is the stacktrace I get :
[2019-07-15 15:16:11.594][108][debug][lua] [source/extensions/filters/http/lua/lua_filter.cc:582] script log: - END call my.app.module - API ack
[2019-07-15 15:16:11.594][108][debug][lua] [source/extensions/filters/common/lua/lua.cc:37] coroutine finished
[2019-07-15 15:16:11.594][108][trace][lua] [bazel-out/k8-opt/bin/source/extensions/filters/common/lua/_virtual_includes/lua_lib/extensions/filters/common/lua/lua.h:183] marking dead N5Envoy10Extensions11HttpFilters3Lua19StreamHandleWrapperE at 0x40fa8bf8
[2019-07-15 15:16:11.594][108][trace][lua] [bazel-out/k8-opt/bin/source/extensions/filters/common/lua/_virtual_includes/lua_lib/extensions/filters/common/lua/lua.h:183] marking dead N5Envoy10Extensions11HttpFilters3Lua16HeaderMapWrapperE at 0x40fa9368
[2019-07-15 15:16:11.594][108][trace][http] [source/common/http/conn_manager_impl.cc:1740] [C0][S14027106735730752972] continuing filter chain: filter=0x2b47090
[2019-07-15 15:16:11.594][108][debug][http] [source/common/http/conn_manager_impl.cc:1415] [C0][S14027106735730752972] encoding headers via codec (end_stream=true):
':status', '200'
'x-app-message', '{"operationId":"eac2bb0c-0088-45fa-89fa-576f083b5e3e","status":"success","timestamp":"2019-07-15T15:16:11.592+0000"}'
'date', 'Mon, 15 Jul 2019 15:16:11 GMT'
'server', 'envoy'

[2019-07-15 15:16:11.594][108][trace][connection] [source/common/network/connection_impl.cc:392] [C0] writing 224 bytes, end_stream false
[2019-07-15 15:16:11.594][108][trace][main] [source/common/event/dispatcher_impl.cc:158] item added to deferred deletion list (size=2)
[2019-07-15 15:16:11.594][108][trace][connection] [source/common/network/connection_impl.cc:288] [C0] readDisable: enabled=false disable=false
[2019-07-15 15:16:11.594][108][trace][http] [source/common/http/conn_manager_impl.cc:1553] [C0][S14027106735730752972] encoding data via codec (size=0 end_stream=true)
[2019-07-15 15:16:11.594][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:81] Caught Segmentation fault, suspect faulting address 0x20
[2019-07-15 15:16:11.594][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:69] Backtrace (use tools/stack_decode.py to get line numbers):
[2019-07-15 15:16:11.594][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #0: [0x7fe36c7074b0]
[2019-07-15 15:16:11.596][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #1: Envoy::Http::ConnectionManagerImpl::ActiveStreamFilterBase::commonContinue() [0xe33d10] source/common/http/conn_manager_impl.cc:1782
[2019-07-15 15:16:11.597][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #2: Envoy::Extensions::HttpFilters::Lua::StreamHandleWrapper::onSuccses() [0x880afd] source/extensions/filters/http/lua/lua_filter.cc:?
[2019-07-15 15:16:11.598][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #3: Envoy::Http::AsyncRequestImpl::onData() [0xdd1be3] /usr/lib/gcc/x86_64-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/unique_ptr.h:267
 (inlined by) source/common/http/async_client_impl.cc:193
 (inlined by) source/common/http/async_client_impl.cc:210
[2019-07-15 15:16:11.600][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #4: Envoy::Http::AsyncStreamImpl::encodeData() [0xdd1484] source/common/http/async_client_impl.cc:102
[2019-07-15 15:16:11.601][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #5: Envoy::Http::StreamDecoderWrapper::decodeData() [0xd60e1c] bazel-out/k8-opt/bin/source/common/http/_virtual_includes/codec_wrappers_lib/common/http/codec_wrappers.h:38
[2019-07-15 15:16:11.601][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #6: Envoy::Http::StreamDecoderWrapper::decodeData() [0xd60e1c] bazel-out/k8-opt/bin/source/common/http/_virtual_includes/codec_wrappers_lib/common/http/codec_wrappers.h:38
[2019-07-15 15:16:11.602][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #7: Envoy::Http::Http1::ClientConnectionImpl::onMessageComplete() [0xe4168e] bazel-out/k8-opt/bin/source/common/buffer/_virtual_includes/buffer_lib/common/buffer/buffer_impl.h:480
 (inlined by) source/common/http/http1/codec_impl.cc:768
[2019-07-15 15:16:11.603][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #8: Envoy::Http::Http1::ConnectionImpl::onMessageCompleteBase() [0xe3f109] source/common/http/http1/codec_impl.cc:476
[2019-07-15 15:16:11.605][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #9: Envoy::Http::Http1::ConnectionImpl::$_7::__invoke() [0xe42a4d] source/common/http/http1/codec_impl.cc:309
[2019-07-15 15:16:11.606][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #10: http_parser_execute [0xfd78b0] ??:?
[2019-07-15 15:16:11.607][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #11: Envoy::Http::Http1::ConnectionImpl::dispatchSlice() [0xe3e9a5] source/common/http/http1/codec_impl.cc:397
[2019-07-15 15:16:11.608][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #12: Envoy::Http::Http1::ConnectionImpl::dispatch() [0xe3e78f] source/common/http/http1/codec_impl.cc:381
[2019-07-15 15:16:11.610][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #13: Envoy::Http::CodecClient::onData() [0xdc1286] source/common/http/codec_client.cc:135
[2019-07-15 15:16:11.611][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #14: Envoy::Http::CodecClient::CodecReadFilter::onData() [0xdc1d1d] bazel-out/k8-opt/bin/source/common/http/_virtual_includes/codec_client_lib/common/http/codec_client.h:173
[2019-07-15 15:16:11.612][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #15: Envoy::Network::FilterManagerImpl::onContinueReading() [0xc1cf41] source/common/network/filter_manager_impl.cc:66
[2019-07-15 15:16:11.613][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #16: Envoy::Network::ConnectionImpl::onReadReady() [0xc198fc] source/common/network/connection_impl.cc:517
[2019-07-15 15:16:11.615][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #17: Envoy::Network::ConnectionImpl::onFileEvent() [0xc193c1] source/common/network/connection_impl.cc:489
[2019-07-15 15:16:11.616][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #18: Envoy::Event::FileEventImpl::assignEvents()::$_0::__invoke() [0xc14065] source/common/event/file_event_impl.cc:49
[2019-07-15 15:16:11.617][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #19: event_process_active_single_queue [0xfc783d] event.c:?
[2019-07-15 15:16:11.618][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #20: event_base_loop [0xfc5df0] ??:?
[2019-07-15 15:16:11.620][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #21: Envoy::Server::WorkerImpl::threadRoutine() [0xc0c55c] bazel-out/k8-opt/bin/source/common/common/_virtual_includes/minimal_logger_lib/common/common/logger.h:280
 (inlined by) source/server/worker_impl.cc:105
[2019-07-15 15:16:11.621][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:73] #22: Envoy::Thread::ThreadImplPosix::ThreadImplPosix()::$_0::__invoke() [0x1195205] source/common/common/posix/thread_impl.cc:32
[2019-07-15 15:16:11.621][108][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:75] #23: [0x7fe36c6fccf8]

And here is my configuration :
static_resources:
  listeners:
  - per_connection_buffer_limit_bytes: 0
    address:
      socket_address:
        address: <IP_ADDRESS>
        port_value: 80
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
          stream_idle_timeout: 0s
          codec_type: auto
          stat_prefix: myapp-api
          route_config:
            name: ups_route
            virtual_hosts:
            - name: upload
              domains:
              - "*"
              routes:
              - match:
                  regex: "^.*$"
                  headers:
                   - name: ":method"
                     exact_match: "PUT"
                route:
                  cluster: ups
                  timeout: 0s
          http_filters:
          - name: envoy.lua
            typed_config:
              "@type": type.googleapis.com/envoy.config.filter.http.lua.v2.Lua
              inline_code: |
                -- Load json library
                package.path = package.path .. ";/etc/envoy-dependencies/json.lua"
                local json = require('json')

                -- Add util local function
                function contains(table, val)
                  for i=1,#table do
                    if table[i] == val then
                      return true
                    end
                  end
                  return false
                end

                function splitstr(inputstr, sep)
                  if inputstr == nil then
                    return nil
                  end
                  if sep == nil then
                    sep = "%s"
                  end
                  local t={}
                  for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                    table.insert(t, str)
                  end
                  return t
                end

                function envoy_on_request(request_handle)

                  -- Make an HTTP call to init API
                  request_handle:logDebug("- START call my.app.module - API init")
                  local headers, body = request_handle:httpCall(
                  "module",
                  {
                     [":method"] = "POST",
                     [":path"] = "/api/v1/module/init",
                     [":authority"] = "module",
                     ["Content-Type"] = "application/json",
                     ["app-content-length"] = request_handle:headers():get("content-length"),
                     ["Authorization"] = request_handle:headers():get("Authorization")
                  },
                  json.encode(
                  {
                    ["appContentLength"] = request_handle:headers():get("content-length"),
                    ["recipientList"] = splitstr(request_handle:headers():get("Recipient"), ","),
                    ["retention"] = request_handle:headers():get("Expiration"),
                    ["strategy"] = request_handle:headers():get("Strategy")
                  }),
                  5000)

                  local streamInfo = request_handle:streamInfo()
                  local dynamicMetadata = streamInfo:dynamicMetadata()

                  dynamicMetadata:set("client","Authorization",request_handle:headers():get("Authorization"))
                  if request_handle:headers():get("Recipient") ~= nil then
                    dynamicMetadata:set("client","Recipient",request_handle:headers():get("Recipient"))
                  end
                  if request_handle:headers():get("Expiration") ~= nil then
                    dynamicMetadata:set("client","Expiration",request_handle:headers():get("Expiration"))
                  end
                  if request_handle:headers():get("Strategy") ~= nil then
                    dynamicMetadata:set("client","Strategy",request_handle:headers():get("Strategy"))
                  end

                  -- get useful parameters from response
                  local computedPath = json.decode(body)["proxyData"]["path"]
                  local computedHeaders = json.decode(body)["proxyData"]["headers"]

                  local requestHeaders = request_handle:headers()
                  local toBeRemoved = {}
                  local toBeKept = { "x-real-ip", "x-forwarded-for", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto", "x-original-uri", "x-scheme", "x-request-id" }

                  for key, value in pairs(requestHeaders) do
                    if not contains(toBeKept,key) then
                      table.insert(toBeRemoved, key)
                    end
                  end

                  for nameHeader = 1, #toBeRemoved do
                    request_handle:headers():remove(toBeRemoved[nameHeader])
                  end

                  request_handle:headers():add(":method","PUT")
                  request_handle:headers():add(":path", computedPath)

                  local app_operationid = string.match(computedPath, "/.*/(.*)")

                  dynamicMetadata:set("app","x-app-operationid",app_operationid)

                  for computedHeader = 1, #computedHeaders do
                    request_handle:headers():add(computedHeaders[computedHeader]["name"],computedHeaders[computedHeader]["value"])
                  end

                  request_handle:logDebug("- END call my.app.module - API init")
                end

                function envoy_on_response(response_handle)

                  if response_handle:headers():get(":status") == "200" then
                    local streamInfo = response_handle:streamInfo()
                    local dynamicMetadata = streamInfo:dynamicMetadata()

                    local Authorization = dynamicMetadata:get("client")["Authorization"]
                    local operationId = dynamicMetadata:get("app")["x-app-operationid"]
                    local Recipient = dynamicMetadata:get("client")["Recipient"]
                    local Expiration = dynamicMetadata:get("client")["Expiration"]
                    local Strategy = dynamicMetadata:get("client")["Strategy"]

                    -- Make an HTTP call to ack API
                    response_handle:logDebug("- START call my.app.module - API ack")
                    local headers, body = response_handle:httpCall(
                    "module",
                    {
                      [":method"] = "POST",
                      [":path"] = "/api/v1/module/ack",
                      [":authority"] = "module",
                      ["Content-Type"] = "application/json",
                      ["Authorization"] = Authorization
                    },
                    json.encode(
                    {
                      ["operationId"] = operationId,
                      ["recipientList"] = splitstr(Recipient, ","),
                      ["retention"] = Expiration,
                      ["strategy"] = Strategy
                    }),
                    5000)

                    response_handle:logDebug(body)

                    local nameHeaders = {}
                    local responseHeaders = response_handle:headers()

                    for key, value in pairs(responseHeaders) do
                      table.insert(nameHeaders, key)
                    end

                    for nameHeader = 1, #nameHeaders do
                      if string.sub(nameHeaders[nameHeader],1,1) ~= ":" then
                        response_handle:headers():remove(nameHeaders[nameHeader])
                      end
                    end

                    response_handle:headers():replace(":status",headers[":status"])
                    response_handle:headers():add("x-app-message",body)

                    response_handle:logDebug("- END call my.app.module - API ack")
                  else
                    response_handle:logDebug("Errors in previous HTTP calls, bypassing on_response filter")
                    response_handle:logDebug(response_handle:headers():get(":status"))
                  end
                end
          - name: envoy.router
            typed_config: {}
  clusters:
  - name: module
    connect_timeout: 10.0s
    type: strict_dns
    http_protocol_options:
      allow_absolute_url: true
    tls_context: {}
    hosts:
      socket_address:
        address: myapp-module-demo.myapp-demo-nprod
        port_value: 8080
  - name: ups
    connect_timeout: 10.0s
    type: strict_dns
    tls_context: {}
    hosts:
      socket_address:
        address: cloud.company.com
        port_value: 443
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 8001

As you can see, the Lua filter seems to run fine until the end; the first line of the logs snippet is the last thing logged in the Lua script.
I'm not 100% sure but I guess the segfault occurs in this version of conn_manager_impl
We temporarily fixed this problem by rollbacking to 1.10 but we'd like to understand this error in order to make sure we're not doing anything wrong (still new to Envoy).

If there is any way you could create a self contained repro that would be awesome and/or provide a core dump with symbols. Something obviously regressed here, but unclear where. cc @soya3129 @snowp

Given our endpoints are private, the first option is not feasible. I can however provide you the core dump.
core.zip

@alyssawilk do you mind taking a look at this? I think the relevant lines are:
2019-07-15 15:16:11.594][108][debug][http] [source/common/http/conn_manager_impl.cc:1415] [C0][S14027106735730752972] encoding headers via codec (end_stream=true):
':status', '200'
'x-app-message', '{"operationId":"eac2bb0c-0088-45fa-89fa-576f083b5e3e","status":"success","timestamp":"2019-07-15T15:16:11.592+0000"}'
'date', 'Mon, 15 Jul 2019 15:16:11 GMT'
'server', 'envoy'

[2019-07-15 15:16:11.594][108][trace][connection] [source/common/network/connection_impl.cc:392] [C0] writing 224 bytes, end_stream false
[2019-07-15 15:16:11.594][108][trace][main] [source/common/event/dispatcher_impl.cc:158] item added to deferred deletion list (size=2)
[2019-07-15 15:16:11.594][108][trace][connection] [source/common/network/connection_impl.cc:288] [C0] readDisable: enabled=false disable=false
[2019-07-15 15:16:11.594][108][trace][http] [source/common/http/conn_manager_impl.cc:1553] [C0][S14027106735730752972] encoding data via codec (size=0 end_stream=true)

It looks like we are ending stream on headers, but then also trying to end stream on an empty data frame.
I think this might be a regression from https://github.com/envoyproxy/envoy/commit/1065ee418ef8a13f0c98613e45d6a6ceed0405c6? If I read it correctly I think we don't handle the case where we continued headers above, but ended stream on that. Then I think we try to end stream again with an empty data frame leading to badness? WDYT?


Cannot Pan Graph with primary mouse button

Hello, thanks for your work, it's the best graph visualization library tried so far.
My current problem is that i cannot pan the pane of the graph, even the main app does not work (Currently using openjdk14 on Ubuntu 19.10 with javafx 13).
Moreover it would be great to be able to pan the graph around using the arrow keys on the keyboard.
I hope it's an easy fix, thank you again
-- EDIT --
I discovered that the mouse panning is actually implemented and it works correctly, but it has to be done with the secondary mouse button. This is very uncomfortable for a laptop user, so in my opinion it should be done with the primary mouse button. This can cause a problem when dragging a node, because both cell and graph start moving around. The simple solution I found is to consume the node dragging event. If this sounds good for you I can add this feature to my pull request, it's an easy fix.

May want to rename this since it is implemented, but is not done so in the expected way.
Perhaps a user could specify which mouse button to use for panning actions?

May want to rename this since it is implemented, but is not done so in the expected way.
Perhaps a user could specify which mouse button to use for panning actions?

It could be an idea, but that would change the node click handler too accordingly to the mouse button. Nevertheless it should not be so difficult.

Minus the keyboard point which is still an open PR, the panning should work now and can be bound to any button.

@Col-E I forked your latest version and am working on a couple improvements, including allowing any mouse button for dragging nodes and dragging the viewport. See the issue in my fork for details.
I will leave arrow key panning alone for now, but might incorporate that as well, using what was done in PR 8.

https://github.com/ogallagher/fxgraph/issues/5 - My implementation didn't intend for multiple binds to the same button. Looking good so far with those demos though 👍


⚠ Bofrost.nl has degraded performance

In 5ffd5ba, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1838 ms

Resolved: Bofrost.nl performance has improved in e5562f9.


Connection timeout with long username

Connection times out when username is too long.
I am using a jwt token for the username to connect to a mosquitto broker. It seems that when I use this token as the username, the client hangs and the connection times out. When I reduce the username to a smaller string (ie 'user') everything works fine.
I believe this is an issue as other client libraries (paho.mqtt and mosquitto_pub) work using this same exact token.
Any suggestions for a fix for this?

This has been driving me crazy for a week, Google Core IOT uses JWT as the user for their MQTT so many people may need information about this issue.
It would be great to have onionhammer suggestion of logging or, at least, talking about it in the documentation.
Thanks anyway because the library is great! Keep the good work!


Rejoin to MUC after an XMPP service disruption

Which version of matterbridge are you using?
0.16.0
Please describe the expected behavior.
After a disruption (network or restart) in the XMPP service (OpenFire in our case), Matterbridge should rejoin to configured rooms (MUCs).
Please describe the actual behavior.
Matterbridge does not rejoin rooms.
Any steps to reproduce the behavior?
Restart the XMPP service. Matterbridge rejoins rooms only after its own service has been restarted.
If this is a bug, I can provide config and logs. (Would require a break in our service so not included now.)

To be honest, xmpp hasn't really been tested that much.
Bridges are supposed to reconnect on disconnects, so this is definitely a bug.
I'll try to reproduce this and ping you if I need your logs.

Should be fixed in master, you can find binaries here: https://bintray.com/42wim/nightly/Matterbridge/_latestVersion
Feedback welcome :-)

Thanks again! I did couple of restarts to our XMPP server and rejoin seems to work. :)

For me this issues still exists if I join Matterbridge with an account on Server A into a group chat on Server B and the connection between them gets disrupted, then matterbridge stops releaying messages... a workaround for me is to join with a Account on the same server but this is not possible in every case...


Don't use current package when reading lockfile

Looks like this default thing is basically a hack, which is fired when the lockfile references some package which is no longer present. That is, if I remove default and just unwrap source id, the only test which fails is git_with_lockfile because it has a typo in the lockfile.
So I've just changed the default to some dummy path. Perhaps a more correct solution would be to ignore such packages completely when loading lockfile.

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

Thanks for the PR! This was actually pretty important back in the day, but I think now that we probe the workspace ahead of time it's much less important.
I think though, yeah, this means that you probably deleted a path dependency from the workspace and should just ignore the entry in the lock file entirely. I think adding a dummy path now is fine as it'll get naturally ignored, but perhaps a comment could be added to that effect?

Let's just do this properly then!

@bors: r+ b91c54f3247a010ade59e251334c67facc712596
Thanks!

:hourglass: Testing commit b91c54f with merge 53e3d17...

:sunny: Test successful - cargo-cross-linux, cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-32, cargo-win-msvc-64
Approved by: alexcrichton
Pushing 53e3d17b03338dc8d31e69592164bcc3028fe522 to master...


Get boundary of each style applied to text

Hello.
Thanks for this great tool.
I'm trying to parse a text layer and generate HTML. But I can`t find - how to get position styles in text?
For example
I have text:
[Test 1] [Test 2]
Test 1 has a green color
Test 2 has a red color
How can I get a boundary of each color?
For example:
For green color
Start 0 position in text
End 6 position in text
For red color
Start 8 position in text
End 13 position in text
Thanks

Found an answer in PSD.js - https://github.com/meltingice/psd.js/issues/70


Host permission URLs blocked due to not resolving to functional URL

I'm trying to publish an update to my extension for Edge (product ID: 87435b2f-a7ae-4c63-8dfd-560238492955). The review is failing with a message saying the host permission links do not resolve to a functional website. This is not true. The links under host_permissions are API's that need to be called with an API key therefore they would not resolve to a normal website since that is not the purpose, these are meant to retrieve data to display for the user in the form of Weather data, and wallpaper from services such as WeatherAPI, Pexels.com, and Unsplash.com. I use Amazon Lambda functions to retrieve that data. Another URL is google fonts API which is used to retrieve extra fonts when a user wish's to customize their New Tab page.
How do I proceed to get my extension approved?
Thanks!

Whoops nevermind, was reading the error wrong. I think I know what it is now.


Wrap common settings under HdBbRPrim

Remove code duplication and slide new HdBbRPrim class under mesh, points and curves. HdBbRPrim carries helper methods to manage object properties.

Hey @bareya this is great! The de-duplication of code will make it less error-prone and it looks like xforms can have visibility flags with their children inheriting those values correctly which didn't work before.
Instancing/prototypes seems to not work yet (crag asset doesn't have the flags working) but this patch didn't break anything, just something that's missing still that didn't work before this patch anyways.


archive day 2 email

@MatiasJJ

you have beatted me with 1 min

looks good, I'll let @MatiasJJ merge as he has done the email work 🙏

Sorry I did not know you were working on it.

no problem, Radovan, I did not officially WIP it.


Use file location for .eslintrc.js resolution

It seems that when using multiple .eslintrc.js files throughout the workspace (of which some may use root: true), vscode-eslint doesn't follow the same resolution algorithm that eslint itself uses.
It seems that eslint.workingDirectories could be a (very inelegant and manual) solution to this problem, by specifying every directory, that has an .eslintrc.js file as a working directory.
Is there no way for vscode-eslint to "just" follow the same resolution logic that eslint uses? Am I doing something wrong?

Hm, I'm having trouble reproducing this in a fresh repo... 🤔
I'll investigate further.

I actually should since the extension uses the eslint npm module. Best to understand what goes wrong would be a GitHub repository I can clone that demos the behaviour.

a GitHub repository I can clone that demos the behaviour.

That's what I was trying to set up, but so far I couldn't reproduce the issue. 😅
I'll give it another go in the next days though.
Thanks for replying already!

I have same issue in newly created project.
With following dependencies:
"dependencies": {
    "react": "^16.8.6"
},
"devDependencies": {
    "eslint": "^6.0.1",
    "eslint-config-workhuman-react": "^1.0.2",
    "eslint-plugin-import": "^2.18.0",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.14.2",
    "eslint-plugin-react-hooks": "^1.6.1",
    "prettier": "^1.18.2"
}

and following folder structure:
| my-project-parent ## Actual root folder where Git initialized
      | my-project ## Folder with `JS` project actually created
      | -- node_modules
      | -- src
      | -- ## ... other folders ...
      | -- .eslintrc
      | -- package.json
| .gitignore
| README.md

If I use my-project-parent as WORKSPACE ROOT I start to have issues with ESLint in Output and it throws issues about missing modules.
In case I open my-project as WORKSPACE ROOT it works fine.
Log:
[Info  - 4:02:47 PM] ESLint server stopped.
[Info  - 4:02:50 PM] ESLint server running in node v10.11.0
[Info  - 4:02:50 PM] ESLint server is running.
[Info  - 4:02:55 PM] ESLint library loaded from: c:\Development\Projects\celebrations-ui-parent\celebrations\node_modules\eslint\lib\api.js
[Error - 4:02:55 PM]
Failed to load plugin 'import' declared in 'celebrations\.eslintrc.js » eslint-config-workhuman-react » eslint-config-workhuman-base': Cannot find module 'eslint-plugin-import'
Require stack:
- C:\Development\Projects\celebrations-ui-parent\__placeholder__.js
Referenced from: C:\Development\Projects\celebrations-ui-parent\celebrations\node_modules\eslint-config-workhuman-base\lib\base.js
Happened while validating C:\Development\Projects\celebrations-ui-parent\celebrations\src\App.js
This can happen for a couple of reasons:
1. The plugin name is spelled incorrectly in an ESLint configuration file (e.g. .eslintrc).
2. If ESLint is installed globally, then make sure 'eslint-plugin-import' is installed globally as well.
3. If ESLint is installed locally, then 'eslint-plugin-import' isn't installed correctly.

Consider running eslint --debug C:\Development\Projects\celebrations-ui-parent\celebrations\src\App.js from a terminal to obtain a trace about the configuration files used.

It also works fine if I run following command from folder where .eslintrc file exists:
./node_modules/.bin/eslint src/App.js --debug

This is a test repo similar to the setup described by @Lighttree : https://github.com/Kosta-Github/eslint-vscode-issue
The contained REAMDE.md contains some more infos for running eslint --debug in the different folders.
The quick summary is:
Note that the vscode plugin is already detecting the correct (i.e., local) eslint instance to use:
[Info  - 9:52:22 AM] ESLint library loaded from: /Users/kosta/devel/misc/eslint-vscode-issue/nested/node_modules/eslint/lib/api.js

As well as the correct eslint config file (i.e., nested/.eslintrc.json):
Failed to load plugin 'promise' declared in 'nested/.eslintrc.json': Cannot find module 'eslint-plugin-promise'

What seems to be missing is that the module/plugin search path should be extended to include the node_modules folder the eslint instance is located in (i.e., /Users/kosta/devel/misc/eslint-vscode-issue/nested/node_modules).
I would really love to get this somehow detected automatically, since I have 10s (close to 100) projects setup like this and I don't want to manually configure them for vscode-eslint usage...

Another example where this wouldn't work since it doesn't follow the native eslint resolution would be
| Project
  | folder 1
    | -- .eslintrc *root:true
    | -- index.js
  | folder 2
    | -- .eslintrc *root:true
    | -- index.js

I think most issues can be traced back to an incorrect process.cwd().
I have a shareable config that looks up the package name from the package.json of the project, to configure import-helper/order-imports. It basically does this:
const APP_NAME = require(`${process.cwd()}/package.json`).name;

module.exports = {
  plugins: ['import-helpers'],
  rules: {
    'import-helpers/order-imports': [
      'error',
      {
        newlinesBetween: 'always',
        groups: [
          // ...
          [`/^${APP_NAME}\\//`],
          // ...
        ],
        alphabetize: { order: 'asc', ignoreCase: true }
      }
    ]
  }
};

I have a monorepo with a package.json at the root of the repository, that basically looks like this:
// ./package.json
{
  "name": "my-monorepo",
  "workspaces": [
    "packages/*"
  ]
}

And then in the package where I use my shareable import-helper/order-imports config, I basically got this package.json:
// ./packages/some-app/package.json
{
  "name": "some-app",
  "scripts": {
    "lint:js": "eslint --ext ts,js ."
  },
  "devDependencies": {
    "@clark/eslint-config-ember": "^1.8.0",
    "eslint": "^6.1.0"
  }
}

And this .eslintrc.js:
// ./packages/some-app/.eslintrc.js
module.exports = {
  root: true,
  extends: '@clark/eslint-config-ember'
};

When I run yarn lint:js somewhere inside the some-app package (can even be a subdirectory of some-app), the process.cwd() is ./packages/some-app.
The require() shown in the first code snippet thus works like this:
process.cwd(); // => ./packages/some-app
const APP_NAME = require(`${process.cwd()}/package.json`).name; // => 'some-app'

When vscode-eslint runs the litner for this any file inside the some-app, package, the process.cwd() is ./ (the repo root).
The require() shown in the first code snippet thus works like this:
process.cwd(); // => ./
const APP_NAME = require(`${process.cwd()}/package.json`).name; // => 'my-monorepo'

I think vscode-eslint should do two things:
When a file is linted, traverse up the directory hierarchy and read all package.json files on the way. Once a package.json that lists eslint as a dependency is found, use it's directory as the process.cwd() and also resolve eslint relative to this directory. As an added bonus, this allows using different versions of eslint in a monorepo, even though I would generally consider this to be an anti-pattern.

@dbaeumer I can provide a reproduction repo, if it helps!  Major reasons are:

we might do something work and then the user has no control over this
it makes the extension duplicate resolving code from eslint which I so far stayed away from. If eslint for some reason changes I need to rewrite this.

I am also pretty sure that if in your example you validate a file in one of these folders from the root workspace folder using the eslint command in a terminal it will fail in the same way as the extension does. ESlint is very cwd sensitive :-)
However I do see the problem that setting up these working directories is sometimes painful in mono repros. So having a command that infers them and writes them to the settings.json after having the user look at them is something I think is definitely useful.
Might be a good opportunity for a PR.

FWIW I was able to fix my config by extending import-helper/order-imports as eslint-plugin-import-helpers-with-package, which can now understand the package keyword. It's substituted with the name property of the first sibling or ancestor package.json.

@buschtoens cool.

Whoops, didn't mean to close this issue. GitHub did this for me, since I referenced this as Fixes in a PR in a private repo.
If any of the other participants feel that this should be reopened, I can do so. But at least for me, the issue is solved for now.


Split too large txs

closes #105
We split into first: undelegate and unvote, second: delegate.
If users want to unvote on many many refs, the first tx may also be too large, in which case it'd need to be splited too (manually to start with?). The chances that this happens are so low, that I went for a fix split into 2, and see if anyone ever opens an issue

Submission checklist:
Layout

[x] Change inspected in the mobile web ui
[x] Change inspected in dark mode

Something is strange here.. whatever transaction I am trying to do falls back to the TX too large, message as seen above.
Maybe I am misunderstanding the process... but it seems buggy to me 🤔

@wirednkod sorry I left the flag to test it.. It's now removed

Thanks, yeah let's merge this monster, I'll refactor the error stuff once the toasts are in


No recipes

I replaced the old Spartan Fire with yours, but I noticed that the new Lightning variants have no recipes:

log
https://gist.github.com/Sereath/1d0a068adeccad27a9db99a877298d3b
Yes, also using Ice and Fire: RotN Edition.
Not sure if you already knew that.
And thank you for making this fork.

Thank you.


Frame-by-Frame Annotation Export Between Keyframes on Video Object Tracking

Hi! I would like to inquire whether it's possible to export frame-by-frame annotations between two keyframes using interpolation. For instance, if I have an object in keyframe 1 and keyframe 5, can I extract the individual annotations for the object in keyframes 2, 3, and 4 from the video object tracking export?

Yes, it is possible to export frame-by-frame annotations between two keyframes using interpolation in Label Studio. When you have annotated an object at keyframe 1 and keyframe 5, Label Studio can interpolate the annotations for frames 2, 3, and 4, and include these interpolated annotations in the export.
To achieve this, you need to enable keyframe interpolation during the export process. This can be done by setting the interpolate_key_frames parameter to True when creating an export snapshot. This tells Label Studio to generate annotations for all frames between your keyframes based on interpolation.
Here’s how you can do it using the Label Studio SDK:
from label_studio_sdk import Client

# Connect to Label Studio
ls = Client(url='http://localhost:8080', api_key='YOUR_API_KEY')

# Get your project
project = ls.get_project(PROJECT_ID)

# Create an export snapshot with keyframe interpolation enabled
export_result = project.export_snapshot_create(
    title='Export with Interpolated Keyframes',
    interpolate_key_frames=True
)

# Get the export ID
export_id = export_result['id']

# Wait for the export to complete (you may need to implement a waiting mechanism)

# Download the export
status, filename = project.export_snapshot_download(
    export_id, export_type='JSON', path='.'
)

By setting interpolate_key_frames=True, the exported annotations will include all interpolated frames between your keyframes. This means that the annotations for frames 2, 3, and 4 will be included in your export, based on the interpolation between the annotations at keyframes 1 and 5.
Note: Make sure that your Label Studio version supports keyframe interpolation during export. This feature is available in Label Studio versions that include video object tracking capabilities.
Links Used:
Label Studio SDK - Project Class

Thanks @makseq, the SDK solution works. Is this supported in API, and are there plans to add this option to the UI as well?


Displacement always [0,0]

Hey, I tried your library and the example "displacement.ino" sketch compiles and can be uploaded, but the output of the setup for me is always [0,0]. I have also tried this with 2 sensors, so I am guessing I might be doing something incorrect, rather than both sensors being broken.
The setup is faithfully recreated to your image however, so I fail to see where I might make a mistake. Do you have any initial idea what could be the issue?
Kind regards,
Niklas

Have you removed the sticker that covers the sensor? you need to unscrew the lens to see it.
Is the lens focused? Use the frame capture script to adjust the focal length until you get a clear image.

Yes, the sticker is removed and I have gotten further in figuring out where the issue stems from. It appears the sensor is not properly recognized. Essentially the sensor.setup() does not succeed. Analyzing this further using the mentioned repos by Neumi and Lauszus in the description, it appears that reading the sensor id appears to be 0x00 at all times. One of the checks they perform is the following:
uint8_t id = spiRead(ADNS3080_PRODUCT_ID);   if (id == ADNS3080_PRODUCT_ID_VALUE)     Serial.println(F("ADNS-3080 found"));
The id never matches with the ADNS3080_PRODUCT_ID_VALUE and is in fact 0x00, but I do not yet know why this is happening with my sensors.

Try checking the connection of the MOSI, MISO, SCL, and NCS pins. The unchanging id may indicate a faulty connection. Alternatively, if you have an oscilloscope, try measuring the output pins to see if there is any output.
Please note that the library was written for one of these modules, if yours differs, then perhaps the sensor uses a different communication registers. I recall there being variants of the ADNS-3080 with different serial numbers.


Saving a .zig file triggers auto-formatting despite the setting being disabled

Description
I have a .zig hello world source code file. Saving (hitting Ctrl+S) causes this file to be reformated (visible by misplacing a closing bracket or a semicolon, for instance), even though I have format-on-save globally disabled in VSCode.
Steps to reproduce

disable the general editor "format-on-save" setting.
install the zig programming language extension
create a .zig source code file
write a couple lines of code that are badly formatted
save (Ctrl+s): this should format the file

Workaround
A temporary solution is to bind Ctrl+s to "saving without formatting", and have the default "save" action unbound.

duplicate of #92
The reason why editor.formatOnSave is not respected is because the extension overrides it for the "zig" language. It takes precedence over the ordinary editor.formatOnSave.
You will need to add the following to your settings.json:
"[zig]": {
  "editor.formatOnSave": false,
},


#build faild

npm run build output:

webpack --config config/webpack.config.js

Hash: 396f0bfb9d565b6f60f0
Version: webpack 1.12.2
Time: 647ms
+ 1 hidden modules
ERROR in Loader /Users/ouyangxian/Documents/git_workspace/starter-node-react/node_modules/babel/index.js didn't return a function

sorry, you can npm i babel-loader --save-dev to solve this problem

solve, tks.


status of this project?

Looks like the last commit was in 2012. Is this project still maintained or should it be considered EOL?

tag @halfblood369


How to accept an incoming call when having an another call on hold

Hi,
Is it possible to get an incoming call while you have another connection on hold?
If so, what do we have to do so that the call is routed to the agent?
Thanks

Hi clegard@,
Amazon Connect will not route a call to an agent who has an active call in progress or is in the after-call-work state.  The agent will only be routed contacts if they are in a routeable availability state such as "Available".


move prettier to peerDeps in eslint-config-react-native-community

Summary

In monorepo environment, prettier-plugin in some editor load from nearest node_modules. Older version of eslint-config-react-native-community includes prettier v1 in their dependencies. It cause conflict of code style inside the monorepo.
Changelog

[Internal] [Fixed] - move prettier to peerDependencies in eslint-config-react-native-community
Test Plan

I think it would be good with no plan to test.

I want to review it. Anyone knows I should mention whom?

@cpojer Do you know who would be the best person to look into this?

@charlesbdudley rebased, thanks for your comment :+1:

@charlesbdudley Thanks for merging this. Can you also take a look at and merge #32117 so I can release these changes to NPM?


Recursively create the znode path

In order to keep things clean when running several redis clusters, we would like to be able to place all of our redis failover information under a designated /redis/<cluster> path.  However redis_failover fails because zk doesn't recursively create the znode path by default.
This should fix that problem.
See Also: http://www.rubydoc.info/gems/zk/ZK/Client/Base#create-instance_method

@ryanlecompte any chance this could get some :eyes:

Closing


⚠ Bofrost.es has degraded performance

In c96e52e, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1644 ms

Resolved: Bofrost.es performance has improved in 5b00d84 after 8 minutes.


Recursive shader includes does not expand paths properly

The recursive shader include parser fails to correctly resolve the following types of paths:
// Common files
#include "/Assets/Hekky/Shaders/Common/Sampling.cginc"
#include "/Assets/Hekky/Shaders/Common/VRCMisc.cginc"
#include "/Assets/Hekky/Shaders/Common/AudioLinkHelpers.cginc"
#include "/Assets/Hekky/Shaders/Common/UnityUtils.cginc"
#include "/Assets/Hekky/Shaders/Common/Lighting.cginc"
#include "/Assets/Hekky/Shaders/Common/Blending.cginc"

These paths use a / to tell the shader compiler to start looking at the project root, so that no matter where I use the above lines from within a project, it will always find the absolute path.

Try to remove the leading /.
Weird that it doesn't work though as I remember specifically adding support for that
https://github.com/d4rkc0d3r/d4rkAvatarOptimizer/blob/main/Editor/ShaderAnalyzer.cs#L382

I had to change it to this to get it to work:
if (currentFilePath.StartsWithSimple("/Assets/") || currentFilePath.StartsWithSimple("Assets/"))
{
    var path = Path.GetDirectoryName(callerPath);
    var assetFolderPath = path.IndexOf("Assets") != -1 ? path.Substring(0, path.IndexOf("Assets") - 1) : path;
    if (currentFilePath[0] == '/') {
        currentFilePath = currentFilePath.Substring(1);
    }
    currentFilePath = Path.Combine(assetFolderPath, currentFilePath);
}

I think it's because of the leading / causing Path.Combine to mess up the evaluated path.


Where are the .txt workflow path files?

Can you please point to where the different workflow paths are?

As the workflow changes after processing each example (in the online setting), we do not keep a record of the trajectory of workflows along the process. But if you're interested in looking at the final workflow memory, I can organize these results and share them later!


[Encoder] parameter checking related to loop-filter-idc

https://rbcommons.com/s/OpenH264/r/1141/

I'm guessing you were opening/closing this pull req to restart the travis run since they were gray.  I can restart travis runs for you on the travis site so if you get gray runs you can leave me a note and I can retry them for you.   I'm retrying 1833 and 1834 now so hopefully they'll be complete by the time you come on.

Also, anyone with merge rights to cisco/openh264 can restart jobs by signing into travis-ci.org.  The restart button is in the upper right when looking at a travis run.  That would be preferable to open/close the pull request because no email is sent to everyone in that case.

I see that, yes that was what I want to try. Thanks for telling me the way.