add MIRRORS

Recently, my team came into a problem with  carbon-relay. Here it is.
We use carbon-relay with RELAY_METHOD be consistent-hashing and REPLICATION_FACTOR be 2 with 2 backends with carbon-cahce. However, as time goes, the data is growing more and more and we finally make a decision to add more machines and use consistent-hashing to do load balance between them. At the same time we also want to get a full dumped metric info to do some other work.
I read the source code about carbon 0.9.x and some documents and finally find out that i can not get a solution with current carbon's functionality. So, i finally make this pull requests to add  a new configuration option in carbon-relay.
MIRRORS
Description

This defines mirror destinations for relay to dump a full metric info no matter how you configure RELAY_METHOD. This can be helpful when you want to duplicate all metric info as well as use RELAY_METHOD, like consistent-hashing, to do some load balance or else.
Note this option take the same argument format as DESTINATIONS
This option uses TCP + pickle to sent data
By default, this option will be empty and has no influence on default relay behaviors.

Configuration

MIRRORS = <IP_ADDRESS>:2004, <IP_ADDRESS>:2005

Usages
assume below:
RELAY_METHOD = consistent-hashing
MIRRORS = <IP_ADDRESS>:2004

with settings above, we can get a fully dumped metric info to MIRRORS destinations with also the behavior of consistent-hashing to do some load balance.
NOTIFICATION
after the PR i have commit another one, with a bug fix about MIRRORS. So, you should use both commis to make a merge.

hi @andyxning , can this PR remove one relay tier in this situation? ( https://github.com/graphite-project/carbon/issues/333)
would  I be able do the following layout with this PR ?

i see #333. I
think this MIRRORS can meet your requests.
I am not sure i have understood what you said in #333, so if i am wrong
please let me know.
I think you want to make load balance with carbon-relay and also want to
make a fully dumped info to make a backup. So, if it true, this MIRRORS
option will be definitely suit you.
And thus you can just use one carbon-relay instead of four relays, as
dist-01a, dist-01b, dist-01c, dist-01d] with consitent-hashing and can have
MIRRORS points to your backup server.
MIRRORS will not impact the normal behavior about RELAY_METHOD, instead it
just use the already existing code about receiving and sending metric of
carbon-relay. So it will work strongly just like carbon-relay.
++++++
Ning Xie
2015-01-20 16:02 GMT+08:00 Toni Moreno<EMAIL_ADDRESS>
hi @andyxning https://github.com/andyxning , can this PR remove one
relay tier in this situation? ( #333
https://github.com/graphite-project/carbon/issues/333)
would I be able do the following layout with this PR ?
[image: image]
https://cloud.githubusercontent.com/assets/5883405/5233554/0d3b6fee-778d-11e4-9cea-782125bdcd93.png
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70617497
.

I'm still thinking on the layout we need and I think it is not possible if you only do a complete metric replication .
condider the most easy layout.

If I configure mirror to send data to each other metrics ( as in the next picture) could itself enter in a infinite loop, isn't it?

You say that you "can not get a solution with current carbon's functionality". Can you elaborate on this claim?

As a point of reference, we had a full metrics feed replicated among two DCs, as described here.

hi @obfuscurity I  already have  the first layout  in the previous post working ok. But  I would like to have a single carbon-relay doing the 2 things itself (if possible) to eliminate a  relay tier

@toni-moreno That was actually directed at @andyxning. But are you saying that #333 can be closed?

I mean that in our situation which use REALY_METHOD being
consistent-hashing to do some load balance and in which we also want an
option to config a destination to dump a full info singly with out the
influence of consistent-hashing DESTINATIONS.
we formally use consistent-hashing with replication-factor be 2 and two
backends, thus all  the backends have the same data. Later, we split fully
dumped info by adding a destination in the DESTINATIONS option with
replication-factor be 3. However, with data growing, now we want to add
two backends  also with the consistent-hashing method and
replication-factor be 2.
Thus the question comes, we can not still put the dumped destination in
DESTINATIONS option, because it will not get a fully dumped info anymore
only part of it. We still not want to add more layers into our system,
because it may make our system more complicated and thus more work to make
it correctly.
Under the above situation, i read the carbon source code of 0.9.x and
finally add the MIRRORS option.
++++++
Ning Xie
2015-01-20 23:29 GMT+08:00 Jason Dixon<EMAIL_ADDRESS>
You say that you "can not get a solution with current carbon's
functionality". Can you elaborate on this claim?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70671511
.

I don't think that "not wanting to add another layer" is a valid reason for introducing this change. I still don't understand how this is substantively different than REPLICATION_FACTOR=2 with consistent-hashing. Can someone else explain to me what I'm missing?

yes, that's absolutely right. If you do configure mirror to send data to
each other metrics, it will enter in a infinite loop.
I put the above answer and add MIRRORS option under the assumption that the
fully dumped info will be used in other subsystems, not anymore in carbon.
Sorry for not making my idea clearly.
++++++
Ning Xie
2015-01-20 22:24 GMT+08:00 Toni Moreno<EMAIL_ADDRESS>
I'm still thinking on the layout we need and I think it is not possible if
you only do a complete metric replication .
condider the most easy layout.
[image: image]
https://cloud.githubusercontent.com/assets/5883405/5818682/c3265e7e-a0b7-11e4-8724-6525a3749bf4.png
If I configure mirror to send data to each other metrics ( as in the next
picture) could itself enter in a infinite loop, isn't it?
[image: image]
https://cloud.githubusercontent.com/assets/5883405/5818760/5b9d5298-a0b8-11e4-8a23-c82946b1d640.png
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70660354
.

Sorry for my poor english. Here is a example.
Suppose we use consistent-hashing method and replication-factor be 2 with
backends, backend1 and backend2.  now with the consistent-hashing method
backend1 and backend2 will both have the same data.
now, we add  a new destination, dump-backend, to the DESTINATIONS also with
consistent-hashing method and replication-factor be 3. Now, DESTINATIONS
will be backend1, backend2 and dump-backend and all the three destinations
will also have the same data cause the replication-factor be 3.
After that, now we want to add two new backends, backend3 and backend4, to
DESTINATIONS with replication-factor be 2 and also consistent-hashing
method. We do so just want to do some load balance.
what i want is that carbon-relay will do load balance with
consistent-hashing in backend1, backend2 , backend3 and backend4 and also
config dump-backend to get a full dumped data.
If i config dump-backend with backend[1-4] in DESTINATIONS, thus
consistent-hashing will have five machines to do load balance not in four
backend machines. And so, i can not get a fully dumped info only parts
actually.
we can not find an existing option can do this job. So, my team come into
that we can add a new config to do the dump data job with no influence on
the existing relay methods DESTINATIONS.
++++++
Ning Xie
2015-01-21 10:19 GMT+08:00 Jason Dixon<EMAIL_ADDRESS>
I don't think that "not wanting to add another layer" is a valid reason
for introducing this change. I still don't understand how this is
substantively different than REPLICATION_FACTOR=2 with consistent-hashing.
Can someone else explain to me what I'm missing?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70773601
.

@andyxning I appreciate your effort to explain your setup but I feel like I must still be missing something. Do you have a simple diagram that illustrates your configuration?

As shown in below graph.
G1 is the original arch we use.

Suppose we use consistent-hashing method and replication-factor be 2 with
backends, >>backend1 and backend2.  now with the consistent-hashing method
backend1 and backend2 >>will both have the same data.

G2 is the one that we add a new backend, dump-backend.

now, we add  a new destination, dump-backend, to the DESTINATIONS also
with consistent->>hashing method and replication-factor be 3. Now,
DESTINATIONS will be backend1, >>backend2 and dump-backend and all the
three destinations will also have the same data >>cause the
replication-factor be 3.

Until now, everything is ok. Thus we come into the graph G3. G3 is the arch
that we thought with the requirement below:

After that, we want to add two new backends, backend3 and backend4, to
DESTINATIONS >>with replication-factor be 2 and also consistent-hashing
method. We do so just want to do >>some load balance.

what i want is that carbon-relay will do load balance with
consistent-hashing in backend1, >>backend2 , backend3 and backend4 and also
config dump-backend to get a full dumped data.

as is shown in G3, If i config dump-backend with backend[1-4] in
DESTINATIONS, thus consistent-hashing will have five machines to do load
balance not in four backend machines.
Thus in G3 we will get "a.b.c" in backend1 and backend2 and "d.e.f" in
backend3 and dump-backend. This is wrong because we want dump-backend get
"a.b.d" and "d.e.f" and backend1 and backend2 get "a.b.c" and backend3 and
backend4 get "d.e.f".
++++++
Ning Xie
2015-01-21 12:02 GMT+08:00 Jason Dixon<EMAIL_ADDRESS>
@andyxning https://github.com/andyxning I appreciate your effort to
explain your setup but I feel like I must still be missing something. Do
you have a simple diagram that illustrates your configuration?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70781276
.

sorry for last email without the mentioned graph. Here it is.
++++++
Ning Xie
2015-01-21 14:28 GMT+08:00 Andy Xie<EMAIL_ADDRESS>
As shown in below graph.
G1 is the original arch we use.

Suppose we use consistent-hashing method and replication-factor be 2
with backends, >>backend1 and backend2.  now with the consistent-hashing
method backend1 and backend2 >>will both have the same data.

G2 is the one that we add a new backend, dump-backend.

now, we add  a new destination, dump-backend, to the DESTINATIONS also
with consistent->>hashing method and replication-factor be 3. Now,
DESTINATIONS will be backend1, >>backend2 and dump-backend and all the
three destinations will also have the same data >>cause the
replication-factor be 3.

Until now, everything is ok. Thus we come into the graph G3. G3 is the
arch that we thought with the requirement below:

After that, we want to add two new backends, backend3 and backend4, to
DESTINATIONS >>with replication-factor be 2 and also consistent-hashing
method. We do so just want to do >>some load balance.

what i want is that carbon-relay will do load balance with
consistent-hashing in backend1, >>backend2 , backend3 and backend4 and also
config dump-backend to get a full dumped data.

as is shown in G3, If i config dump-backend with backend[1-4] in
DESTINATIONS, thus consistent-hashing will have five machines to do load
balance not in four backend machines.
Thus in G3 we will get "a.b.c" in backend1 and backend2 and "d.e.f" in
backend3 and dump-backend. This is wrong because we want dump-backend get
"a.b.d" and "d.e.f" and backend1 and backend2 get "a.b.c" and backend3 and
backend4 get "d.e.f".
++++++
Ning Xie
2015-01-21 12:02 GMT+08:00 Jason Dixon<EMAIL_ADDRESS>
@andyxning https://github.com/andyxning I appreciate your effort to
explain your setup but I feel like I must still be missing something. Do
you have a simple diagram that illustrates your configuration?
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70781276
.

So if I understand you correctly now, you're adding MIRRORS just to avoid running an extra layer of relay(s) to perform replication between your two backend clusters. If that's correct, then I'm :-1: on merging this.
You can get the same effect by just running another carbon-relay on the same host. You don't need separate hardware, and you don't need MIRRORS to accomplish this. You just need another carbon-relay that handles replication at the first "layer", then another relay to handle load-balancing at the second "layer". Each relay has their own DESTINATIONS and REPLICATION_FACTOR.
I mentioned this type of setup in my previous comment.

Yes, that's right.
However, i still think if we can do the two things in one instance without
adding any influence to the carbon-relay's original functionality, it may
be not that bad to do this than adding more carbon-relay instance in the
processing chain. The latter one add more layers in the processing chain
and will make the entire arch more fragile and we must pay more attention
to operate this, like more configuration files and we still need to monitor
two instances at  the same time.
++++++
Ning Xie
2015-01-21 22:49 GMT+08:00 Jason Dixon<EMAIL_ADDRESS>
So if I understand you correctly now, you're adding MIRRORS just to avoid
running an extra layer of relay(s) to perform replication between your two
backend clusters. If that's correct, then I'm [image: :-1:] on merging
this.
You can get the same effect by just running another carbon-relay on the
same host. You don't need separate hardware, and you don't need MIRRORS
to accomplish this. You just need another carbon-relay that handles
replication at the first "layer", then another relay to handle
load-balancing at the second "layer". Each relay has their own
DESTINATIONS and REPLICATION_FACTOR.
I mentioned this type of setup in my previous comment
https://github.com/graphite-project/carbon/pull/365#issuecomment-70671880
.
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-70849673
.

I'm strongly against this. It may seem like "not a big deal" to you, but you're effectively duplicating in code what can already be accomplished via configuration. This adds unnecessary bloat to the code base and could easily confuse other users. Look how long we've been discussing it and I actually understand how carbon-relay works. :stuck_out_tongue:
None of the other project owners or committers have stepped in to offer their opinion, so I'll leave this open for a while. But I'm :-1: on this change.

Since it won't be accept i will close this PR, however i will retain this feature in my forked version.

While for a new person this would seem to be a logical addition, I agree that adding MIRRORS is a bad idea. I already have this functionality in our setup using a separate relay tier. Actually, I have 5 tiers in each of 4 datacenters, all replicating to each other.

I still think if we can do some thing in one layer, and at the same time
nothing complicated thing is imported to accomplish this, then we should at
least consider about this.
In your condition, 5 tiers is configured in each datacenters, if it is just
for what MIRRORS option does then i would think that i will heavily burden
the OPS to maintain all 5 tiers to work correctly to make sure that it is
do the right thing.
i think we should make arch more flat if possible, isn't it? [?]
++++++
Ning Xie
2015-01-29 0:47 GMT+08:00 Bryan L. Gay<EMAIL_ADDRESS>
While for a new person this would seem to be a logical addition, I agree
that adding MIRRORS is a bad idea. I already have this functionality in our
setup using a separate relay tier. Actually, I have 5 tiers in each of 4
datacenters, all replicating to each other.
—
Reply to this email directly or view it on GitHub
https://github.com/graphite-project/carbon/pull/365#issuecomment-71869285
.

You make it sound as if we're being stubborn about this, but I don't think we are. I have considered it and I'm personally against it, since the functionality already exists. To me adding this would be an anti-pattern and would potentially confuse users.
If you convince one of the other maintainers that this is a good thing, I won't fight its inclusion, but I'm not going to merge it myself.


Error 404

I called it picture_labler as that seemed more descriptive. When running I get this.
Error: 404: Not Found
error: Uncaught (in promise) Error: Is a directory (os error 21): copy '/home/chris/Pictures/Screenshot from 2023-02-03 10-10-20.png' -> '/home/chris/Pictures/'
    at Object.copyFileSync (ext:deno_fs/30_fs.js:72:7)
    at file:///home/runner/work/airenamer/airenamer/main.ts:47:12
    at eventLoopTick (ext:core/01_core.js:183:11)

if this is still happening, let me know. will close .


Ignore nil errors in WithError

Closes #67

Ah I think we should close that issue, there was another PR somewhere with further discussion but personally I think it's a user-error. 99% of the usage looks like:
err = json.NewDecoder(gz).Decode(&record)
if err != nil {
  log.WithError(err).Error("error decoding record")
  http.Error(w, "Error parsing record record", http.StatusBadRequest)
  return
}

I suppose it doesn't really hurt but I've never hit this, I'm not sure when you'd call it with a nil

I totally agree, but IMHO it could work as a double check


Biometrics?

I have an app that I want to automate that performs some fingerprint biometric checks. We really only need to test on one platform, so can restrict it to Android emulators. Would it be possible to add execution of something like:
adb -e emu finger touch 1

In Maestro so that the script can provide the necessary fingerprint when needed? I've only just started looking at Maestro and find it promising. Thanks.

+1 for biometrics
We are implementing passkeys as a auth mechanism & cannot accept the passkey request in the maestro test without fingerpint

Having the same problem and just grab a workaround from the Maestro Slack channel. We can achieve it by running the localhost server and accessing it via Maestro JavaScript. The localhost can get a request and execute any command in the file system (e.g.:  xcrun simctl push …)
Hope this help.

@xuanmai-agilityio have you got a code snippet / repo showing how you achieve this?

@peterferguson Not fully tested with the push notification or any simulator/emulator control. But this snippet works with simple command like ls, la,... hope this help
const express = require('express');
const { exec } = require('child_process');

const app = express();
const port = 3000;

app.get('/runcmd', (req, res) => {
  const cmd = req.query.cmd;

  exec(cmd, (error, stdout, stderr) => {
    if (error) {
      console.error(`Error executing command: ${error.message}`);
      res.status(500).send('An error occurred');
    } else {
      console.log(`Command executed successfully: ${cmd}`);
      res.send(stdout);
    }
  });
});

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

+1 for biometrics
We have device authentication for app access that is constantly breaking. Would be great to be able to catch it with automated e2e tests.

There's some docs on Android Developers about simulating fingerprint, dropping it in case it's useful.

Just a note – there's no active development going on here, but if someone wants to take a stab at it, we are always more than happy to review the PR!

Hi, there is a similar command for iOS Simulator that emulates a biometric check. I believe this should be fairly straightforward to implement since maestro already uses simctl for some operations.
xcrun simctl spawn 'SIMULATOR_ID' notifyutil -p com.apple.BiometricKit_Sim.fingerTouch.match
xcrun simctl spawn 'SIMULATOR_ID' notifyutil -p com.apple.BiometricKit_Sim.fingerTouch.nomatch

xcrun simctl spawn 'SIMULATOR_ID' notifyutil -p com.apple.BiometricKit_Sim.pearl.match
xcrun simctl spawn 'SIMULATOR_ID' notifyutil -p com.apple.BiometricKit_Sim.pearl.nomatch

There are two separate notifications for TouchID and FaceID, but for some reason fingerTouch works for both in my tests.

+1 for biometrics
@RepliedSage11 Does this work in Maestro cloud?

I haven't tried Maestro Cloud.

@peterferguson Not fully tested with the push notification or any simulator/emulator control. But this snippet works with simple commands like ls, la,.... curl http://localhost:3000/runcmd\?cmd\=ls hope this help
const express = require('express');
const { exec } = require('child_process');

const app = express();
const port = 3000;

app.get('/runcmd', (req, res) => {
  const cmd = req.query.cmd;

  exec(cmd, (error, stdout, stderr) => {
    if (error) {
      console.error(`Error executing command: ${error.message}`);
      res.status(500).send('An error occurred');
    } else {
      console.log(`Command executed successfully: ${cmd}`);
      res.send(stdout);
    }
  });
});

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

adb -e emu finger touch 45146572
adb -t 5554 emu  finger touch 45146572
if the call the request in browser manually it's woking fine all times but when the cmd is executed through local host node server it's failing some times


Customize Storybook template

Now that we have a public Storybook page, we should add some custom theming, additional info and better organization for our components.
Things we might want to add include:

Display ReactUSWDS version and USWDS version somewhere
Truss-specific branding/logo
Links back to Github repo, Truss site?
Custom theme fonts/colors?
Some static pages to display documentation,  introduction, other info

Please add your own ideas/thoughts!
References:

https://storybook.js.org/docs/configurations/theming/
https://medium.com/storybookjs/how-design-systems-use-storybook-2ed735ad07a9

Resolved by #2382


npm install mapnik failing in freebsd 10.1 as part of Tilemill build

Installed mapnik via ports with no errors.
setenv CXX clang++
setenv CC clang
Now attempting to npm install in tilemill.git
gives error:

<EMAIL_ADDRESS>install /usr/local/tilemill/node_modules/mapnik
node-pre-gyp install --fallback-to-build

gmake: Entering directory '/usr/local/tilemill/node_modules/mapnik/build'
ACTION binding_gyp_action_before_build_target_generate_protoc_files Release/obj/gen/vector_tile.pb.cc
ACTION binding_gyp_action_before_build_target_generate_setting Release/obj/gen/mapnik_settings.js
COPY /usr/local/tilemill/node_modules/mapnik/lib/binding/node-v11-freebsd-x64/mapnik_settings.js
TOUCH Release/obj.target/action_before_build.stamp
CXX(target) Release/obj.target/mapnik/src/json_proj_transform_grammar.o
../src/json_proj_transform_grammar.cpp:1:10: fatal error: 'mapnik/json/geometry_generator_grammar_impl.hpp' file not found
#include <mapnik/json/geometry_generator_grammar_impl.hpp>

From tilemill/ npm-debug.log
1147 info install<EMAIL_ADDRESS>1148 info postinstall<EMAIL_ADDRESS>1149 info install<EMAIL_ADDRESS>1150 info postinstall<EMAIL_ADDRESS>1151 info install<EMAIL_ADDRESS>1152 verbose unsafe-perm in lifecycle false
1153 info<EMAIL_ADDRESS>Failed to exec install script
1154 verbose unlock done using /root/.npm/_locks/mapnik-dcdffebe5eb2f992.lock for /usr/local/tilemill/node_modules/mapnik
1155 verbose stack Error<EMAIL_ADDRESS>install: node-pre-gyp install --fallback-to-build
1155 verbose stack Exit status 1
1155 verbose stack     at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:212:16)
1155 verbose stack     at EventEmitter.emit (events.js:98:17)
1155 verbose stack     at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:14:12)
1155 verbose stack     at ChildProcess.emit (events.js:98:17)
1155 verbose stack     at maybeClose (child_process.js:766:16)
1155 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:833:5)
1156 verbose pkgid<EMAIL_ADDRESS>1157 verbose cwd /usr/local/tilemill
1158 error FreeBSD 10.1-RELEASE-p16
1159 error argv "node" "/usr/local/bin/npm" "install"
1160 error node v0.10.35
1161 error npm  v2.1.18
1162 error code ELIFECYCLE
1163 error<EMAIL_ADDRESS>install: node-pre-gyp install --fallback-to-build
1163 error Exit status 1
1164 error Failed at the<EMAIL_ADDRESS>install script 'node-pre-gyp install --fallback-to-build'.
1164 error This is most likely a problem with the mapnik package,
1164 error not with npm itself.
1164 error Tell the author that this fails on your system:
1164 error     node-pre-gyp install --fallback-to-build
1164 error You can get their info via:
1164 error     npm owner ls mapnik
1164 error There is likely additional logging output above.
1165 verbose exit [ 1, true ]
1166 verbose unbuild node_modules/mapnik
1167 info preuninstall<EMAIL_ADDRESS>1168 info uninstall<EMAIL_ADDRESS>1169 verbose unbuild rmStuff<EMAIL_ADDRESS>from /usr/local/tilemill/node_modules

I've built Tilemill on this machine before under FreeBSD/PCBSD 10.0, but won't build under 10.1
Peter

node-mapnik 3.x only supports mapnik 3.x (current mapnik master). If you want to build node-mapnik from source against Mapnik 2.x, then you need node-mapnik 1.7.x series: https://github.com/mapnik/node-mapnik/tree/v0.7.x.
I would recommend you use tilemill master + mapnik master + node-mapnik 3.1.x.

Ah, so I mistakenly have a node-mapnik to mapnik version mismatch?
Thanks for being quick with the feedback.
I'll sort it in the morning, and close this issue.
Peter

Mapnik master won't build -> moved to open issue at Mapnik.  See above link.


[ISSUE-344] Deserialize json in kafka source

What changes were proposed in this pull request?

new configuration for connector.format
new JsonDeserializer extends TableDeserializer to deserialize string to row
return JsonDeserializer according to configuration in Kafka Source

How was this PR tested?

[x] Tests have Added for the changes
[ ] Production environment verified

Hi @Leomrlin could you help reivew my pr?

qingfei1994

Hi @qingfei1994 ,
I've reviewed the PR you submitted and wanted to share a few points of feedback. I've outlined my suggestions for modification.Thank you!

Hi @Leomrlin,  I've updated my pull request as per your suggestion, could you further check?

LGTM


Added Godot Texture Flags

Exposes options in the godot 'import inspector' to the user to allow for adding Texture.Flags to the .pxo files.
Flags include:
repeat (normal and mirrored)
filter
mipmaps

I believe some of those deleted lines are part of the code-style rules we have here. You can check the workflow's output once it completes to change them :)


Enable key auth plugin output is very odd

Is there an existing issue for this?

[X] I have searched the existing issues

Kong version ($ kong version)
2.5.0
Current Behavior
Enable key auth plugin output is very odd
curl -X POST http://:8001/routes/mock/plugins
--data name=key-auth
this command gives output:
{"message":"Not found"}
but works
Expected Behavior
should return 201 successful response
Steps To Reproduce
No response
Anything else?
No response

@AshisRanjanDey, I tried to reproduce, but I could not. Can you show all your commands? Are you sure you have a route with name=mock?


feat:Service | added local policies

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Spryr has degraded performance

In 2f85357, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4512 ms

Resolved: Spryr performance has improved in f59b57c after 7 minutes.


Use blog list page as root / home / start page

Originally posted by @alabhyajindal in https://github.com/janraasch/hugo-bearblog/issues/2#issuecomment-1909758090

Hi!
Thanks for the great theme!
I'm having a strange problem. I followed your instructions here to use the blog list page as home.  The issue is that sometimes I get a blank page on the home section and sometimes I get the blog list. It's completely random.
I don't have a content/_index.md file and my blog/_index.md contains:
+++
title = "Blog"
url = "/"
[menu]
  [menu.main]
    identifier = "blog"
    weight = 1
+++

My website is at https://alabhyajindal.com and the source code is at https://github.com/alabhyajindal/aj, if you want to take a look.

Hi @alabhyajindal,
I can reproduce this random behaviour. No idea why this is happening though 😳...
You could take the question over to the main Hugo Discourse https://discourse.gohugo.io where you'll get a lot more eyes on the issue.
In the mean-time, in your local Hugo repository let's

remove content/blog/_index.md and instead
create a content/_index.md-file with the content

+++
title = "Blog"
[menu]
  [menu.main]
    identifier = "blog"
    weight = 1
+++

Plus, create a layouts/index.html with the following content
{{ define "main" }}
<content>

    {{ $blog_posts := where .Site.RegularPages "Type" "in" "blog" }}
    {{ range $blog_posts }}

          <time datetime='{{ .Date.Format "2006-01-02" }}' pubdate>
            {{ .Date.Format (default "02 Jan, 2006" .Site.Params.dateFormat) }}
          </time>

      {{ .Title }}

    {{ else }}

No posts yet

    {{ end }}

  {{ if .Data.Singular }}
  {{else}}

      {{ range .Site.Taxonomies.tags }}
      #{{ .Page.Title }}  {{ end }}

  {{ end }}
</content>
{{ end }}

That should do the trick.
I hope that helps 🤝.
Kind regards to Meghalaya, India 🇮🇳😁.
Cheers!

Thanks Jan! That works perfectly. Cheers!

I found a solution on the Hugo Discourse. It might be helpful to other people wanting to use the blog list as their home page:

Create content/blog/_index.md with the following contents:

+++
title = "Blog"
url = "/"
[menu]
  [menu.main]
    identifier = "blog"
    weight = 1
+++

Add home to disableKinds in the hugo.toml file:

disableKinds = ["taxonomy", "home"]


Documentation: Support for creating checks from the server side.

Can I add Graphite checks in the form of a configuration file or seed them to a datastore in the backend?
The documentation doesn't state that and only specify the UI way to do the same

You can automate via the API but we don't currently have a way of doing as a config file

Got it, Thanks.


UNABLE_TO_GET_ISSUER_CERT_LOCALLY

I require superagent and use it  in app.js，add when I run node app.js，it shows UNABLE_TO_GET_ISSUER_CERT_LOCALLY

{ Error: unable to get local issuer certificate
at TLSSocket. (_tls_wrap.js:1116:38)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket._finishInit (_tls_wrap.js:643:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:473:38)
code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
response: undefined }

This seems to be a local issue for you, if you can provide a reproducible test case or more information let us know.


Re-export causes runtime error

module Foo where

foo : Int
foo = 34

module Bar where

import Foo exposing (foo)

foo : Int
foo = foo

module Main where

import Bar exposing (foo)
import Graphics.Element exposing (Element, show)

main : Element
main = show (foo + 1)

Will be NaN as foo is undefined and in JavaScript undefined + 1 == NaN. However in other cases this will create runtime errors.

I think that when you write foo = foo there, you are not saying
Bar.foo = Foo.foo

Instead, you are saying
Bar.foo = Bar.foo

So this is then just ticket https://github.com/elm-lang/elm-compiler/issues/873#issuecomment-168686792, it has nothing to do with re-exporting, and does not need a new ticket.
If you do want to re-export rather than define a self-recursive value/loop, you should be able to write
module Bar where

import Foo exposing (foo)

foo : Int
foo = Foo.foo

Fair enough, I was not aware of #873


Fixed simple array of in type and responseModel

For instance [Project] instead of List[Project]

@googlebot I signed it!

@shelbys Thanks for PR 👍
I changed it a bit before merging but it still passes your test.


Front end --rev option with a GUI

A GUI should be developed to frontend the --rev option.
Several possibilities exist:

A GUI app for the desktop.
A browser-based app for desktop and, eventually, mobile.
An extension to an editor that understands resim could work.

The built-in server to support this capability is up in the spinup branch.
The GET /rev/ endpoint executes revup style resim instructions.


Added squashlistenerror property

I have no capability to test this code at the moment, but I believe that it will compile down to javascript and function as expected.
The one thing I would have like to have done is to figure out if there is a way to communicate between editor windows so that once the first editor window opens the socket any new editor window would be able to determine that the socket is in use and to not give the error. Unfortunately, I have pretty much no knowledge of the programming environment for VS Code and was not able to find any examples that would give me an idea how it would work.

I don't think that preventing an error message is a good feature to be added.
If you don't want to see the error message, you can choose to set the onstartup options to false in your User Settings. And then, just start the Remote VSCode in the window you want to use it.
To set it not to run on startup, add the following to your User Settings
  // Launch the server on start up.
  "remote.onstartup": false,

And to start Remote VSCode manually, open the Command Palette... and type Remote: Start Server.
Note that you can configure your setting in a User or Workspace level.

Sorry, I have been meaning to get back to this issue.
I think you are missing several points. First of all, the PR that I submitted leaves existing functionality in place and one must specifically turn off the error notifications.
Some of us are not a developer that would only have a single VSCode window open at any given time. Anyone doing operations type of work typically have several editor windows open working on multiple projects at a time. Right at this moment I have 7 VSCode windows open on multiple containers that need to cooperate with one another, a couple of windows for code of utilities being worked on and one for Jenkins job definitions. Through out the day these windows are being opened and closed frequently as various tasks are being completed. To have a  disruptive notification that the port can not be opened because it already is open interrupts the through process and workflow.
In addition, leaving the remote server off on startup is just as destructive, as when one wants to open a file from a remote server, the server is not running. Thus wasting time and interrupting the process of getting work done to determine why the file did not open up in an editor window.


add "import" section to docs/resources/service.md

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I made the changes to add import example here: https://github.com/ClickHouse/terraform-provider-clickhouse/pull/92


Dev

Coverage remained the same at 100.0% when pulling 0937d4dc0b23a54593ac8d97cd5746f543a89dca on dev into 1ec1c074284e3382dd91f2a2a523135f5e16cbb9 on master.

Coverage remained the same at 100.0% when pulling 0937d4dc0b23a54593ac8d97cd5746f543a89dca on dev into 1ec1c074284e3382dd91f2a2a523135f5e16cbb9 on master.


SAKIII-4745 embedded content with current group when uploading to another library

https://jira.sakaiproject.org/browse/SAKIII-4745

Verified and merged.


Disappearance of the picture

The image is generated, briefly shown on the canvas in Photoshop, but then disappears. In this case, only the selection area remains on the selected layer.

I additionally checked this and did all the steps to connect the plugin from the beginning. This is the only plugin folder and manifest.json is definitely taken from it.
But that didn't help solve the problem.

which photoshop version do you have?

also do you see the images in the output directory?

I'm using photoshop version v23.
In the manifest.json file, the version has been changed from default 24 to 23.

Images are saved in output directories.
C:\Auto-Photoshop-StableDiffusion-Plugin\server\python_server\output\2022-12-27

I have the same problem

Hey guys @hyd998877 @UnicornJoe42, the plugin only works with photoshop +v24

May I ask why the output folder of the pictures I have generated is empty and no pictures are saved? Do I need to manually save the generated pictures

@songjiping That's because we've changed where we store the images.
you will find the path foreach project in the settings tab


Wrongful Snippet Generation of Non-Existent Class ExternalGroupMember

Available Http request:
POST https://graph.microsoft.com/beta/external/connections/contosohr/groups/31bea3d537902000/members
Content-Type: application/json

{
  "id": "e811976d-83df-4cbd-8b9b-5215b18aa874",
  "type": "user",
}

Generated snippet with non-existent class 'ExternalGroupMember':
GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var externalGroupMember = new Microsoft.Graph.ExternalConnectors.ExternalGroupMember
{
	Id = "e811976d-83df-4cbd-8b9b-5215b18aa874",
	Type = Microsoft.Graph.ExternalConnectors.ExternalGroupMemberType.User
};

await graphClient.External.Connections["{externalConnectors.externalConnection-id}"].Groups["{externalConnectors.externalGroup-id}"].Members
	.Request()
	.AddAsync(externalGroupMember);

Screenshot of error:

To Reproduce
Steps to reproduce the behavior:

Go to https://docs.microsoft.com/en-us/graph/api/externalconnectors-externalgroup-post-members?view=graph-rest-beta&tabs=csharp#example-1-add-an-azure-active-directory-user-as-a-member

Closing this as this is fixed in the openApi based snippet generator and passes raptor compile


roles dropdown empty in user view

roles dropdown empty in user view
I've a problem with the user view, especially with the roles drop down.
They are empty and so it's impossible to change the role of a user via gui.
The data is loaded via API correctly:
{
  "permissions": [
    {
      "href": "https://.../perm/8ee7b92b-4a68-4d84-9053-19bcbc1fce70",
      "id": "8ee7b92b-4a68-4d84-9053-19bcbc1fce70",
      "match": "user",
      "scopes": [
        "read:alerts",
        "read:blackouts",
        "read:heartbeats"
      ]
    },
    {
      "href": "https://.../perm/97545288-17fc-4897-8a9b-d6257a740fc1",
      "id": "97545288-17fc-4897-8a9b-d6257a740fc1",
      "match": "ams",
      "scopes": [
        "read:alerts",
        "write:alerts",
        "read:blackouts",
        "write:blackouts",
        "read:heartbeats"
      ]
    }
  ],
  "status": "ok",
  "total": 2
}

The thrown error in the JavaScript console is:
16:23:33.678 "Error: [ngRepeat:dupes] http://errors.angularjs.org/1.5.11/ngRepeat/dupes?p0=role%20in%20roles&p1=string%3Auser&p2=user
G/<@https://.../vendor/js/angular.min.js:6:426
We</<.compile/</<@https://.../vendor/js/angular.min.js:308:39
If/this.$get</m.prototype.$watchCollection/<@https://.../vendor/js/angular.min.js:143:302
If/this.$get</m.prototype.$digest@https://.../vendor/js/angular.min.js:144:410
If/this.$get</m.prototype.$apply@https://.../vendor/js/angular.min.js:147:361
l@https://.../vendor/js/angular.min.js:99:192
K@https://.../vendor/js/angular.min.js:103:376
tg/</N.onload@https://.../vendor/js/angular.min.js:104:338
" 1 angular.min.js:119:446
	f/< https://.../vendor/js/angular.min.js:119:446
	vf/this.$get</< https://.../vendor/js/angular.min.js:92:42
	If/this.$get</m.prototype.$digest https://.../vendor/js/angular.min.js:145:66
	If/this.$get</m.prototype.$apply https://.../vendor/js/angular.min.js:147:361
	l https://.../vendor/js/angular.min.js:99:192
	K https://.../vendor/js/angular.min.js:103:376
	tg/</N.onload https://.../vendor/js/angular.min.js:104:338

Sorry but I can't reproduce this. I created 3 roles and can assign them to users without a problem...
{
  "permissions": [
    {
      "href": "http://localhost:8080/perm/d851aef9-3ced-4aa9-9803-cfe5a64cf44f",
      "id": "d851aef9-3ced-4aa9-9803-cfe5a64cf44f",
      "match": "read-only",
      "scopes": [
        "read"
      ]
    },
    {
      "href": "http://localhost:8080/perm/0cc50400-f7ea-4961-ae47-024711b9fec7",
      "id": "0cc50400-f7ea-4961-ae47-024711b9fec7",
      "match": "read-write",
      "scopes": [
        "write"
      ]
    },
    {
      "href": "http://localhost:8080/perm/fafed461-c1cc-4583-8437-7047ae2bc6bb",
      "id": "fafed461-c1cc-4583-8437-7047ae2bc6bb",
      "match": "websys",
      "scopes": [
        "admin"
      ]
    }
  ],
  "status": "ok",
  "total": 3
}

The error doesn't help me much either. I just a trackback of angular framework code. There doesn't seem to be a reference to any alerta web UI code. Any chance there is more to that error than you managed to capture? Or anything else that might help debug this?

Found the reason with this: https://docs.angularjs.org/error/ngRepeat/dupes
So I tested with:
<span ng-repeat="role in roles track by $index">{{ $index }}:{{ roles[$index] }}, </span>

And got:
0:user, 1:ams, 2:user,

The question is now: where is the second user coming from? /api/perm is just exposing 2 roles.

yes. you should modify the server configuration to set permissions for the default "user" role...
USER_DEFAULT_SCOPES = ['read', 'write']  # Note: 'write' scope implicitly includes 'read'

https://github.com/alerta/alerta/blob/371ab3c7144ba9ae83a895ed31053bb6147cccc0/alerta/settings.py#L59

thanks, it's working now. but maybe this could be described more clearly or maybe the controller should test if user is already existing.

It's probably both. ie. documentation should be better and the API should probably reject user-defined roles called "admin" and "user".


creating more than one regions freezes Firefox / function of having only one region needed

Hi,
As always, I am grateful to the great minds and hearts behind this very promising wavesurfer.js tool.
After quite some struggle, I am finally very close to what I really need - when a user drags to create a region, all other regions are cleared leaving only the most recently created one and the player starts looping the region right away endlessly until Pause is clicked or until another region is created. When another region is created, the previous region will be cleared and only the most recenlty created region will loop. etc.. Whenever a new region is created, the user doesn't have to clear the previous region to clear it manually.
In other words, how to create a region the creation of which will automatically trigger a clearance of all previous regions? Or, is there an option to have only one region in action at a time?
Not only that, I have found a glitch: If I forget to clear the current region before creating another one, two regions appear and the playing gets stuck and then alas! Firefox freezes. which slows down the whole computer. I have to kill Firefox using Windows Task Manager and relaunch it. This is very annoying to the users.
My environment: Win10 prof. / Firefox 70.0.1 32 bit / wavesurfer.js 3.2.0 / regions plugin for 3.2.0.
Any help is greatly appreciated.
best regards
Jim

can you create an example to reproduces this crash @liujinliang01?

Hi Thijs,
I have created a codepen instance: https://codepen.io/liujinliang01/pen/VwwxQmg
Thank you very much for your kind support.
best regards
Jim
At 2019-11-10 20:52:57, "Thijs Triemstra"<EMAIL_ADDRESS>wrote:
can you create an example to reproduces this crash @liujinliang01?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


how to use the build lib output folder within other react app?

Hi,

Can you please elaborate as to what you are trying to do?

Install the package using npm and use the component, when you will build your app using npm run build, only the required code will be added. Keeping your package size minimal


[api-minor] Change getPageLabels to always return the pageLabels, even if they are identical to standard page numbering

This changes the API according to the review comments in the now closed PR #6923.

/botio unittest

/botio unittest

Looks good. Thank you.


ResultException: NotRunning

Having this problem with my Unity Project. I'm using 2020.3.20f1

It only happens on discord canary. I tried stable and is working fine

In the details tab of the task manager. What is the discord canary exe name?

Its DiscordCanary.exe, though I think it was fixed last update.

I'm gonna close the issue since it was an issue with using powercord (a discord mod) which must have caused that issue I removed it and it worked again. So I'm sorry for somehow wasting your time and thanks you for responding.


Enable cross OS running of e2e tests and their screenshots

It was necessary to run the e2e in a docker container to avoid the differences that Mac, Linux and Windows would have when executing the visual comparisons.

:tada: This issue has been resolved in version 0.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Authentication problem - loading EBRAINS log-in page

Authentication with Python client gives:

Exception: Something went wrong loading EBRAINS log-in page. Status code 302

The line:
https://github.com/HumanBrainProject/hbp-validation-client/blob/master/hbp_validation_framework/__init__.py#L305
gives
https://iam.ebrains.eu/auth/realms/hbp/protocol/openid-connect/auth?response_type=code&client_id=validation-service-v2&redirect_uri=https%3A%2F%2Fvalidation-v2.brainsimulation.eu%2Fauth&scope=openid+profile+collab.drive+clb.drive%3Aread+clb.drive%3Awrite+group+team+web-origins+role_list+roles+email&state=XXXXX.....XXXXX&nonce=XXXXX.....XXXXX

(XXXXX.....XXXXX used to hide info)
The problem is independent of the password being correct or incorrect.
I wll test again later today and tomorrow to see if the problem persists.

Problem persists.... needs to be investigated.

I've created a ticket with EBRAINS support

This should now be fixed, please can you check?
The problem arose because the EBRAINS Keycloak server was upgraded, and apparently the new version is stricter about checking the validity of requested scopes, so an invalid scope in the VF API implementation that previously passed silently now triggered an error.

Yes, it works now!
Thanks for looking into this @apdavison .


Creating new store or campaign sometimes logout

I have tested with Umbraco 7.4.1 / SQL CE and Tea Commerce 3.1.0
I think I have had this issue before and it seems to happen first time you create a new store or marketing campaign .. or when there isn't any stores or campaigns already created.
It seems to happen immediately after reloading the child nodes for "Stores" or "Marketing".
I get this error in the console.
)]}',
{"Message":"Authorization has been denied for this request."}

Hi Bjarne,
I believe Umbraco will do that if the get nodes fails somehow. We did have a problem with creating stores that would fail yesterday and fixed a bug. The fix have been uploaded to our. I don't know if you where unlucky enough to get the faulty version of the package.
I will try and make a new installation myself and check it out.
/Rune

Looks like at the moment before a store have been created this will happen, and after creating the first store you will have to reload the page. Seems to have something todo with some legacy Umbraco code we use for the tree.
We might have to update that.

Hi Rune
Okay, I just noticed it.. but seems only to happen when there isn't any child nodes (it seems GetNodes method doesn't get any id's?
Btw. the documentation for 3.1.0 : https://documentation.teacommerce.net/revision-history/
The bindingRedirect for Newtonsoft.Json should of course use v8 as new version, not v6 :)
/Bjarne

Fixed the revision history, thanks :)

This had just been fixed in f71fd0b and will be in 3.2.6 release


Read secrets from agent

These changes require to have on test running machine test files which contains some secret parameters:
/run/secrets/dut-pass
/run/secrets/plug-login
/run/secrets/plug-pass
/run/secrets/switch-token
/run/secrets/switch-secret
/run/secrets/wifi-ssid
/run/secrets/wifi-password

should be merged after https://github.com/tiiuae/ghaf-infra/pull/325


BLU MP not displayed.

BLU Mage spells do not seem to display MP appropriately.
Tooltip:

In-game:

This is due to #15, the filter is incorrect.


Support allowlisting of snippets from extensions

There are a decent collection of snippet extensions that have a variety of useful snippets. However these extensions also often contain many snippets you will never use.
As a result if an extension contains 120 snippets but you only need 30 of them, your intellisense is full of 90 snippets you'll never ever need. Sometimes multiple extensions will also offer the same thing (e.g. there's a "react" snippets extensions that overlaps with both a "react hooks" snippets extension and general js/ts snippet extensions) meaning the snippet you want isn't always the only thing that shows up when you fully type it out.
This is also a bigger issue because in some contexts (eg. an object literal in TS where you want to list/expand properties) the context seems to be a little ambiguous to vscode and as a result you get a large selection of your snippets mixed in with TS interface properties.
I think a good solution to these issues would be to make it possible to explicitly allowlist/whitelist the snippets provided by snippet extensions. By default all snippets for an extension can be made available. But if the user has provided a allowlist for an extension in their settings, then non-allowlist snippets from that extension should not show up in intellisense.

This is a duplicate. Unfortunately, I don't recall the exact issue number nor its title :flushed: Anyways, searching for issues with the same labels will likely help you :point_right:
https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aopen+label%3Afeature-request+label%3Asnippets


Align options with naming convention pp chatbot

Let's align some options with our naming convention.
Affected commands
All pp chatbot commands.
Options to rename

-n, --name [name] --> -n, --displayName [displayName]

Can I work on this?

Can I work on this?

Hi @SmitaNachan, I'm actually busy fixing this tonight. But thanks for offering your help anyway!

Closing this, moving it back into the main issue.


Documentation : Add in and out contract of all views and helpers.

Add in and out contracts to easely use objects in the focus framework.

#68


⚠ DDoS-Relay US-W-sfo3-02 has degraded performance

In 542de6a, DDoS-Relay US-W-sfo3-02 (http://<IP_ADDRESS>:42069/;csv) experienced degraded performance:

HTTP code: 200
Response time: 146 ms

Resolved: DDoS-Relay US-W-sfo3-02 performance has improved in 25a8ec2 after 6 minutes.


Allow bootstrapping of desktop and CoreCLR

This sets the bootstrap destination as "Bootstrap-NetCore" for CoreCLR and improves the logic to delete the folder prior to bootstrapping.
I build both all of the time but the CoreCLR bootstrapping wipes out the desktop one so I can't use them both!

@dotnet-bot test Windows_NT Build for CoreCLR please


iOS TextInput - text undo/redo doesn't work if value, defaultValue, or onChange is set

Please provide all the information requested. Issues that do not follow this format are likely to stall.
Description
Setting value, or defaultValue with onChange will cause iOS undo/redo keyboard feature (mostly on iPads) to break or rarely work.  Additionally, it may cause a native crash from time to time.
Basically, the undo button gets enabled for half a second, and then gets disabled again. The issue will not happen if value or defaultValue is not set. I suspect this is related to the code that sends the JS value to native which in turn clears/updates the native input.
React Native version:
Run react-native info in your terminal and copy the results here.
info Fetching system and libraries information...
System:
    OS: macOS 10.15.4
    CPU: (4) x64 Intel(R) Core(TM) i5-6267U CPU @ 2.90GHz
    Memory: 108.54 MB / 8.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.16.3 - /usr/local/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.4 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.1 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 23, 26, 28, 29
      Build Tools: 28.0.3, 29.0.2
      Android NDK: Not Found
  IDEs:
    Android Studio: 4.0 AI-193.69<IP_ADDRESS>26763
    Xcode: 11.5/11E608c - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_121 - /usr/bin/javac
    Python: 2.7.15 - /Library/Frameworks/Python.framework/Versions/2.7/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.13.1 => 16.13.1
    react-native: 0.63.1 => 0.63.1
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce

Render a <TextInput value={this.state.value}> somewhere.
Type something on an ipad simulator/device
Observe the undo/redo buttons flashing

Expected Results
Either undo/redo should not be possible, or it should behave just as if a native input was used (do not clear the stack after each component update)
Snack, code example, screenshot, or link to a repository:
The issue can be observed even with the sample code from the docs:
import React, { Component } from 'react';
import { TextInput } from 'react-native';

const UselessTextInput = () => {
  const [value, onChangeText] = React.useState('Useless Placeholder');

  return (
    <TextInput
      style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
      onChangeText={text => onChangeText(text)}
      value={value}
    />
  );
}

export default UselessTextInput;

Additionally, the following crash will happen from time to time, presumably from this poor undo/redo handling of the component, or even Apple's source code.
EXC_BAD_ACCESS Attempted to dereference garbage pointer 0x105c3fa0.
    /usr/lib/libobjc.A.dylib _objc_msgSend
    Frameworks/Foundation.framework/Foundation -[_NSUndoStack popAndInvoke]
    Frameworks/Foundation.framework/Foundation -[NSUndoManager undoNestedGroup]
    PrivateFrameworks/UIKitCore.framework/UIKitCore ___58-[UIApplication _showEditAlertViewWithUndoManager:window:]_block_invoke_2.2401
    PrivateFrameworks/UIKitCore.framework/UIKitCore +[UIUndoGestureInteraction presentProductivityGestureTutorialIfNeededWithCompletion:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore ___58-[UIApplication _showEditAlertViewWithUndoManager:window:]_block_invoke.2400
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIAlertController _invokeHandlersForAction:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore ___103-[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:dismissCompletion:]_block_invoke.458
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIPresentationController transitionDidFinish:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore ___56-[UIPresentationController runTransitionForCurrentState]_block_invoke.503
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[_UIViewControllerTransitionContext completeTransition:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIViewAnimationState animationDidStop:finished:]
    PrivateFrameworks/UIKitCore.framework/UIKitCore -[UIViewAnimationState animationDidStop:finished:]
    Frameworks/QuartzCore.framework/QuartzCore CA::Layer::run_animation_callbacks(void*)
    /usr/lib/system/libdispatch.dylib __dispatch_client_callout
    /usr/lib/system/libdispatch.dylib __dispatch_main_queue_callback_4CF$VARIANT$armv81
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
    Frameworks/CoreFoundation.framework/CoreFoundation ___CFRunLoopRun
    Frameworks/CoreFoundation.framework/CoreFoundation _CFRunLoopRunSpecific
    PrivateFrameworks/GraphicsServices.framework/GraphicsServices _GSEventRunModal
    PrivateFrameworks/UIKitCore.framework/UIKitCore _UIApplicationMain
    zinspector3 _mh_execute_header
    /usr/lib/system/libdyld.dylib _start

Sample video:

I was able to work around this issue by creating a custom component as shown below, but it would great to see a proper fix for this.
import * as React from "react";
import { TextInput } from 'react-native';

type Props = React.ComponentProps<typeof TextInput>;

const UndoTextInput: React.FunctionComponent<Props> = (props: Props) => {
  const { value, onChangeText, ...rest } = props;
  const lastValue = React.useRef(value);
  const textInput = React.useRef<TextInput>();

  const handleChangeText = (textValue: string) => {
    lastValue.current = textValue;
    onChangeText(textValue);
  }

  React.useEffect(() => {
    if (value !== lastValue.current) {
      textInput.current.setNativeProps({ text: value })
      lastValue.current = value;
    }
  })

  return (
    <TextInput {...rest}
      ref={textInput}
      onChangeText={handleChangeText}
    />
  );
}

export default UndoTextInput;

We are already using a UI library that wraps TextInput, so using the above doesn't really work for us.

This is still an issue.

I'm also seeing the occasional EXC_BAD_ACCESS "Attempted to dereference garbage pointer" error. @mhoran or someone please add the discussion label so that the stale-bot won't close this issue!

Still an issue.

Confirmed still an issue but the workaround continues to work. Perhaps the fix for #27693 as proposed by @gedu in #39385 will help, but I'm not sure.

This is still an issue in react-native 0.73.4 / Expo v50. In addition, the workaround posted above needed value added as a dependency to useEffect to resolve a race condition.

This is how my fix looks like.
Seems that it fix the issue, if you can ping and make my PR more visible so it can be review and merged will be awesome.
If the steps I made aren't correct pleas send it again. I use the value and onChange props.
https://github.com/facebook/react-native/assets/1676818/48266bb1-2c16-4468-9278-bbf29ddab391

Still an issue.

I'm proposing another solution: https://github.com/facebook/react-native/pull/39385#issuecomment-2189249312

This looks to still be an issue in 0.76.0 on New Arch with https://github.com/facebook/react-native/pull/46970 applied.

This issue is fixed by the three patches mentioned in https://github.com/reactwg/react-native-releases/issues/595#issuecomment-2442983461. Those should make it into 0.76 once the pick request is complete.


Directions service

Hi,
Do you have any plan to support the directions service?

Same question for me ..
Can we use the directions service with angular2-google-maps ?
-> directions service
-> example
Thank you very much for your work
-- Chris

I too would like to know if this is something I can access. I'm working on a rather map heavy project that requires one of the maps to show Google's suggested directions between two locations. Please let me know if I've over looked the documentation and just not found it. Either way, this project is fantastic! Thanks for your work @SebastianM

This directive can solve your needs
import {GoogleMapsAPIWrapper} from 'angular2-google-maps/core/services/google-maps-api-wrapper';
import { Directive,  Input} from '@angular/core';
declare var google: any;

@Directive({
  selector: 'sebm-google-map-directions'
})
export class DirectionsMapDirective {
  @Input() origin;
  @Input() destination;
  constructor (private gmapsApi: GoogleMapsAPIWrapper) {}
  ngOnInit(){
    this.gmapsApi.getNativeMap().then(map => {
              var directionsService = new google.maps.DirectionsService;
              var directionsDisplay = new google.maps.DirectionsRenderer;
              directionsDisplay.setMap(map);
              directionsService.route({
                      origin: {lat: this.origin.latitude, lng: this.origin.longitude},
                      destination: {lat: this.destination.latitude, lng: this.destination.longitude},
                      waypoints: [],
                      optimizeWaypoints: true,
                      travelMode: 'DRIVING'
                    }, function(response, status) {
                                if (status === 'OK') {
                                  directionsDisplay.setDirections(response);
                                } else {
                                  window.alert('Directions request failed due to ' + status);
                                }
              });

    });
  }
}

hey david, thanks for the directive, but i'm having a hard time including it in my code. Should I insert it right in the google map dom. For instance:
<sebm-google-map  sebm-google-map-directions [origin=x] [destination=y][zoomControl]="false" [latitude]="lat" [longitude]="lng"  (mapClick)="mapClicked($event)"> </sebm-google-map>
I'm having a hard time making it work, I'm actually really new to angular 2... thanks for your help

Hi @ahardworker , This is the right way:
<sebm-google-map>
  <sebm-google-map-directions [origin]="origin" [destination]="destination"></sebm-google-map-directions>
</sebm-google-map>

in your component controller class you must be define this propertys.
origin = { longitude: 4.333, lattitude: -1.2222 };  // its a example aleatory position
destination = { longitude: 22.311, lattitude: -0.123 };  // its a example aleatory position

Thanks! Its working. But I wonder is it possible to dynamically add waypoints, then update the direction without refreshing the page?

Sure @ahardworker,  waypoints is Array of positions,  you can add logic at the directive or inject this array using a input parameter.
for example...
<sebm-google-map>
  <sebm-google-map-directions [origin]="origin" [destination]="destination" [waypoints]="waypoints"></sebm-google-map-directions>
</sebm-google-map>

Directive:
@Directive({
  selector: 'sebm-google-map-directions'
})
export class DirectionsMapDirective {
  @Input() origin;
  @Input() destination;
  **@Input() waypoits;**
  constructor (private gmapsApi: GoogleMapsAPIWrapper) {}
  ngOnInit(){
    this.gmapsApi.getNativeMap().then(map => {
              var directionsService = new google.maps.DirectionsService;
              var directionsDisplay = new google.maps.DirectionsRenderer;
              directionsDisplay.setMap(map);
              directionsService.route({
                      origin: {lat: this.origin.latitude, lng: this.origin.longitude},
                      destination: {lat: this.destination.latitude, lng: this.destination.longitude},
                      **waypoints: waypoints,**
                      optimizeWaypoints: true,
                      travelMode: 'DRIVING'
                    }, function(response, status) {
                                if (status === 'OK') {
                                  directionsDisplay.setDirections(response);
                                } else {
                                  window.alert('Directions request failed due to ' + status);
                                }
              });

    });
  }
}

Hello @davidpestana
I tried to include the Directions-Directive but I'm getting this error:
Can't bind to 'origin' since it isn't a known property of 'sebm-google-map-directions'.
HTML
<sebm-google-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">     <sebm-google-map-marker [latitude]="latHome" [longitude]="lngHome" [title]="'titleHome'"></sebm-google-map-marker>     <sebm-google-map-marker [latitude]="latComp" [longitude]="lngComp" [title]="titleComp"></sebm-google-map-marker>     <sebm-google-map-directions [origin]="origin" [destination]="destination"></sebm-google-map-directions>   </sebm-google-map>
Component
`import {Component, ElementRef} from '@angular/core';
import {GoogleMapsLoader} from './googleMaps.loader';
import { AgmCoreModule } from 'angular2-google-maps/core';
@Component({
selector: 'google-maps',
styles: [require('./googleMaps.scss')],
template: require('./googleMaps.html'),
})
export class GoogleMaps {
latHome: number = 48.151839;
lngHome: number = 13.831726;
latComp: number = 48.329500;
lngComp: number = 14.319765;
titleComp: string = "dynatrace";
zoom: number = 10;
lat: number = (this.latComp + this.latHome) / 2;
lng: number = (this.lngComp + this.lngHome) / 2;
origin = { longitude: 4.333, lattitude: -1.2222 };
destination = { longitude: 22.311, lattitude: -0.123 };
}`
Do I have to register the directive somewhere?

@ProkerBen Yes, you need to register the directive in the module you're using it as a declaration, just like any other directive you use.

Yes, how @ProkerBen saids ,you must need register the directive in your  module
import { CustomMapDirective } from '[your route to directive folder]/google-map.directive';
...
@NgModule({
  imports: [...],
  exports: [..],
  declarations:[...,CustomMapDirective]
})

@davidpestana DirectionsMapDirective displays the route but It doesn't zoom-in although I had set zoom=17

its a google api property, when using DirectionsDisplayService, map automaticly zooms in order to view all waypoints. if you set a Zoom Value,it will be ignored.

@davidpestana  ya! I try it and it works well.
}, function(response, status) {
  if (status === 'OK') {
    directionsDisplay.setOptions({ preserveViewport: true });
    directionsDisplay.setDirections(response);
  } else {
    window.alert('Directions request failed due to ' + status);
  }

directionsDisplay.setOptions({ preserveViewport: true }) force the map keep zoom value

@davidpestana Hi,
I have a problem with the API. I use the directive like you showed in this thread and it works very good!
The only problem I have is when I need to show a new route on the same map. I call the same function again from the parent Component and it prints the new route over the old one. This is the code i have:
`
export class DirectionsMapDirective {
@Input() destination:string;
@Input() origin:string;
constructor (private gmapsApi: GoogleMapsAPIWrapper) {

}

ngOnInit(){
    this.setMap();
}

setMap():void{
    this.gmapsApi.getNativeMap().then(map => {
        var directionsService = new google.maps.DirectionsService;
        var directionsDisplay = new google.maps.DirectionsRenderer({draggable: true});
        directionsDisplay.setMap(map);
        directionsService.route({
            origin: this.origin,
            destination: this.destination,
            waypoints: [],
            optimizeWaypoints: true,
            travelMode: 'DRIVING'
        }, function(response, status) {
            if (status === 'OK') {
                directionsDisplay.setDirections(response);
            } else {
                window.alert('Directions request failed due to ' + status);
            }
        });

    });
}

}
`
When i need to show the new map the parent component calls the setMap function and the origin and destination variables change.
Is there a way to reload the map?

Can you please provide an example of creating waypoints array? Is this waypoint require latlng or something else?
waypoints = [4.333, -1.2222];

I too am having the issue described by okanok. If anyone has a fix for the map displaying all routes without resetting it would be very helpful.

Hi @davidpestana and @ahardworker, I tried to use the directive and the HTML david specified but i keep getting this error "InvalidValueError: in property origin: not a string; and not a LatLng or LatLngLiteral: in property lat: not a number; and unknown property lat".
Component.ts
origin = { longitude: 4.333, lattitude: -1.2222 };  // its a example aleatory position
destination = { longitude: 22.311, lattitude: -0.123 };  // its a example aleatory position
Component.html

<sebm-google-map-directions [origin]="origin" [destination]="destination">

Error : InvalidValueError: in property origin: not a string; and not a LatLng or LatLngLiteral: in property lat: not a number; and unknown property lat

@naranmistry you spelled latitude wrong ;)

@bene-starzengruber was in a little bit in a rush lol

I have been following this topic with great interest. And I look forward to this being integrated into the project (core).

I am also intetesTed I need having the route planning and directions api.

@davidpestana @ahardworker Have implemented the Map with Directions. But I am getting multiple Directions. Have attached my Map Route. Can you please suggest How to get single route at each time?.
Each time Destionation Value change I will call My DirectionsMapDirective Directive.
Thanks in advance.

@okanok @marimuthum17,
After hours of trying i think i got a workaround for this problem... In http://stackoverflow.com/questions/5232756/remove-route-with-google-map you can read that it is necessary to define directionsDisplay global. By defining directionsDisplay inside the directive, each time will create a new instance of DirectionRenderer and so it can't remove the previous route.
So I create DirectionRenderer in my component.
if(this.directionsDisplay === undefined){             this.mapsAPILoader.load().then(() => {               this.directionsDisplay = new google.maps.DirectionsRenderer;               this.showDirective = true;             }); }
And then inject it with @Input() directionsDisplay; into your directive.
I think that isn't fine.. but it works..

@zuschy You have done a GREAT JOB. It works like a charm!!. Thanks for you help.
You saved my day.

Can someone be so kind as to write this as an example to be incorporated into the project?

I tried to send the directionsDisplay to the directive via input like this but the directionsDisplay is always undefined in the directive
           <sebm-google-map-directions *ngIf="marker_count > 1" [directionsDisplay]="directionsDisplay" [waypointCnt]="waypointCnt" [origin]="origin" [destination]="destination" [waypoints]="waypoints"></sebm-google-map-directions>
in the Component I do this
` ngOnInit() {
this.searchControl = new FormControl();
    this.setCurrentPosition();
    if(this.directionsDisplay === undefined){
        this.gmapsApi.getNativeMap().then(map => {
            //var directionsService = new google.maps.DirectionsService;
            //var directionsDisplay = new google.maps.DirectionsRenderer;
            this.directionsDisplay = new google.maps.DirectionsRenderer({
                draggable: true,
                map: map,
            });
        });
    }`

and in the directive
` ngOnChanges(changes: SimpleChanges) {
console.log('onChange fired');
console.log('changing', changes);
    this.gmapsApi.getNativeMap().then(map => {
        var directionsService = new google.maps.DirectionsService;

        //var directionsDisplay = new google.maps.DirectionsRenderer;
        /*this.directionsDisplay = new google.maps.DirectionsRenderer({
            draggable: true,
            map: map,
        });*/

        this.directionsDisplay.addListener('directions_changed', function() {
            computeTotalDistance(this.directionsDisplay.getDirections());
        });

        this.directionsDisplay.setMap(map);
        directionsService.route({
            origin: {lat: this.origin.latitude, lng: this.origin.longitude},
            destination: {lat: this.destination.latitude, lng: this.destination.longitude},
            waypoints: this.waypoints,
            optimizeWaypoints: true,
            travelMode: 'DRIVING'
        }, function(response, status) {
            if (status === 'OK') {
                //directionsDisplay.setDirections({routes: []});
                this.directionsDisplay.setDirections(response);
            } else {
                window.alert('Directions request failed due to ' + status);
            }
        });`

@zuschy @marimuthum17 @Giusti
Me too facing the same problem. directionsDisplay getting undefined in the directive.

Here how I have declared My Directive in Controller
@ViewChild(DirectionsMapDirective) vc: DirectionsMapDirective;
........ and accessed like beow.
if(this.vc.directionsDisplay === undefined){ this.mapsAPILoader.load().then(() => {
this.vc.directionsDisplay = new google.maps.DirectionsRenderer;
});

@bonzysalesman
I have created google map directions service in angular 2 for one of my project.
Here have written one article about this, You can find full sorce code @http://www.17educations.com/angularjs-2/google-map-directions-display-angular-2/
Here have attached demo, If you want you can download the script also. Hope it will help someone else also.

@marimuthum17
Thank you very much gonna take a look at it, another problem is, how would I add autocomplete fields in an ng-for lets say in your example you would have an + button and another searchfield would appear. since the searchfields have to be bound to the #pickupInput / #pickupoutput and has to have a @Viewchild ?

@marimuthum17
Thanks for the support. That works fine for me. Thanks a lot again.

@marimuthum17, @zuschy
Hey the directive is working out great so far but I encountered another problem:
When the User drags am Marker from the generated Route and the adds a Marker to the Route the dragged marker jumps back to its starting point I think its because the origin in the component is not updated when I listend to the "directions_changed" in the directive
Heres my code
Directive
export class DirectionsMapDirective {
    // get variables from map.component
    @Input() origin;
    @Input() destination;
    @Input() waypoints;
    @Input() waypointCnt;
    @Input() directionsDisplay;

    constructor (private gmapsApi: GoogleMapsAPIWrapper) {}

    // updateDirections has 2 optional parameters. gets called in map.component
    updateDirections(directionsDisplay, o?, d?){
        this.gmapsApi.getNativeMap().then(map => {
            var directionsService = new google.maps.DirectionsService;
            directionsDisplay.addListener('directions_changed', function() {
                //this.vc.computeTotalDistance(this.directionsDisplay.getDirections());

                if(directionsDisplay && directionsDisplay.dragResult){
                    let requestOrigin = directionsDisplay.dragResult.request.origin;
                    let requestDestination = directionsDisplay.dragResult.request.destination;
                    console.log(this.origin)
                    if(this.origin && (requestOrigin.lat.toString() == this.origin.latitude && requestOrigin.lng.toString() == this.origin.longitude)){
                        console.log('if?');
                        let temp_lat = requestDestination.lat.toString();
                        let temp_lng = requestDestination.lng.toString();
                        this.origin.latitude = temp_lat;
                        this.origin.longitude = temp_lng;
                        this.vc.updateDirections(directionsDisplay);
                    }
                }
                console.log(directionsDisplay);
            });

            //if origin / destination are undefined use value from optional parameters.
            directionsDisplay.setMap(map);
            if(!this.destination && d) {
                this.destination = d;
            }
            if(!this.origin && o) {
                this.origin = o;
            }

            // give the route the data, travel mode is driving bc users should plan a camping/ roadtrip.
            directionsService.route({
                origin: {lat: this.origin.latitude, lng: this.origin.longitude},
                destination: {lat: this.destination.latitude, lng: this.destination.longitude},
                waypoints: this.waypoints,
                optimizeWaypoints: true,
                travelMode: 'DRIVING'
            }, function(response, status) {
                console.log(status);
                if(status == 'OK'){
                    console.log('new route created')
                    var legs = response.routes[0].legs;
                    for (var i = 0; i < legs.length; i++) {
                        let inputFieldStart = document.getElementById('start') as HTMLInputElement;
                        let inputFieldDestination = document.getElementById('destination') as HTMLInputElement;
                        if(inputFieldStart.value == ''){
                            inputFieldStart.value = legs[i].start_address;
                        }
                        if(inputFieldDestination.value == ''){
                            inputFieldDestination.value = legs[i].end_address;
                        }
                    }
                    if (status === 'OK') {
                        directionsDisplay.setDirections(response);
                    } else {
                        window.alert('Directions request failed due to ' + status);
                    }
                }else{
                    console.log('keine Route möglich!')
                }
            });

            //function for displaying the travel distance
            function computeTotalDistance(result) {
                var total = 0;
                var myroute = result.routes[0];
                for (var i = 0; i < myroute.legs.length; i++) {
                    total += myroute.legs[i].distance.value;
                }
                total = total / 1000;
                document.getElementById('trip_length').innerHTML = 'The trip is ' +total + 'km long.';
            }
        });
    }
}

Component:
Here I basically call this.vc.updateDirections(this.directionsDisplay); on Mapclicked / Autocomplete

Question:
Currently subscribing to list in database. I am using ngFor to create and remove markers when they are added or deleted from database. Is there a way I can associate directions with particular markers and then remove the directions when the marker is removed from the map?
Basically, user says they are available in app. Marker shows up on map with directions to location. When they say they are unavailable. I want the marker and directions associated with it removed from map.
I also watch the location of user with watchPosition. Obviously want marker position updated as well as directions.

is there a way i can calculate the distance (Driving Mode) between two point(lat,lng) .
I'm using "sebm-google-map-directions" . it seem work good, but the first run time it's distance was undefined. after that everything good..
But the solution there is i have to find a shortest path between a default address and a list of other address
I'm trying to use a loop but it doesn't update when ever a loop done
Is there any solution for this ..thank you all
This is my directive

And this is the for loop:

4 objects have a same distance . but lat, lng inside is difference @@

I think it just by async or something like that. but i don't have any idea how to fix it :D
Or is there another way to calculate driving distance between to point(lng,lat)
Thank you all :smile:

@davidpestana thank you for such brilliant work... i implemented basic directive but it giving me error "Directions request failed due to ZERO_RESULTS" can please help me with this error?

I am also facing this issue please check this :
https://github.com/SebastianM/angular-google-maps/issues/985

Thats nothing wrong with code.
Please check, you have added your google map key while calling api. or As per google docs there is cetain limit request for every day.

@marimuthum17 you are correct there was nothing wrong in your code... Actually I missed part of placeId... I was not providing placeId correctly, that was the issue...
@MartiniHenry1988 you are getting problem because you are not using  direction service of google....please refer @marimuthum17 's  earlier comment for complete example.

@davidpestana  , after integrating the directive in the app i am getting the below error in console. what could be the reason ?
InvalidValueError: in property origin: not a string; and not a LatLng or LatLngLiteral: in property lat: not a number; and unknown property lat

did anyting changed, i am getting error below on line directionsDisplay.setMap(map);
Argument of type 'GoogleMap' is not assignable to parameter of type 'Map'

I am facing this issue as well. @chaoranxie have you found solution?

Sorry, I know the subject is already a bit old but I'm having problems and this is the error:
Can't bind to 'origin' since it isn't a known property of 'sebm-google-map-directions'.
but above gave a solution and I'm not clear how to do it, could someone give me an example?
Sorry for my bad english

@Fabian-Thug what version of Angular are you using? I am on 4* and directives work differently.
In the Directive change the syntax from selector: 'sebm-google-map-directions' to selector ['sebm-google-map-directions']  then in the HTML add it TO an element instead of AS an element (example <div sebm-google-map-directions [origin]="origin" [destination]="destination"
I am having issues with the autocomplete event listener and will likely rewrite it with a button. (Using @marimuthum17 code example - which is not working on his site but I think the issue is with the events.

I have done the above one. Now it shows the direction between user's current location and selected destination.
But I need to change marker icons! How to do that?
How to include custom markers in the direction result?

@davidpestana
you give this solution import { CustomMapDirective } from '[your route to directive folder]/google-map.directive'; but for this do i need to install some package ??

Getting an ERROR TypeError: Cannot set property 'origin' of undefined.
@ViewChild(DirectionsMapDirective) vc: DirectionsMapDirective;
public origin :any ;
public destination : any;
constructor(
private modalService                    : NgbModal,
private mapsAPILoader: MapsAPILoader,
private ngZone: NgZone,
private gmapsApi: GoogleMapsAPIWrapper,
private _elementRef : ElementRef

)  {}
Passing values
this.vc.origin = { longitude: 77.333, latitude: 12.2222 };
this.vc.destination = { longitude: 90.311, latitude: 28.123 };
this.vc.updateDirections();
Thanks in advance.

Is there any update about this?
Is it possible use origin and destination as string?

to the reason you cannot access the direction  results and estimate time is because of this below. This is an anonymous callback function where it doesn't get any access read/write the class's variables.
   }, **function(response: any, status: any)** {
i was able to store the info and use services after i changed to this below. it uses es6 arrow function which native to typescript classes. more info here:
   }, **(response: any, status: any) =>** {

Hello,
Can someone show me how to create event such as click start location as output in a route of the direction-path.
Thanks

Hi @davidpestana ,
I am facing a new problem like, when I draw route for the first time, it displays correctly , If I am trying to draw another route, the first one is not getting cleared and for new route, the line is not getting displayed.
Here is my code,
component.ts,
showDirections( ) {     if ('geolocation' in navigator) {       navigator.geolocation.getCurrentPosition((position) => {         this.org = { latitude: position.coords.latitude, longitude: position.coords.longitude};         this.dst = {longitude: this.cycle.longitude, latitude: this.cycle.latitude};         console.log('Src ' + this.org.latitude );         console.log('Dst' + this.dst.latitude );       });     }   }
This function is called after clicking a button by the user. and component's html,
<agm-map  [latitude]="lat" [longitude]="lng" [zoom]="zoom">       <appCycleDirection *ngIf="dst !== undefined"  [org]="org" [dst]="dst"></appCycleDirection>       <agm-marker  [style.height.px]="map.offsetHeight"  [latitude]="lat" [longitude]="lng"></agm-marker>   </agm-map>
The directive code is as follows,
`import { Directive, Input, OnInit } from '@angular/core';
import {GoogleMapsAPIWrapper} from '@agm/core';
declare let google: any;
@Directive({
// tslint:disable-next-line:directive-selector
selector: 'appCycleDirection'
})
export class CycleDirectionDirective implements OnInit {
@Input() org;
@Input() dst;
@Input() originPlaceId: any;
@Input() destinationPlaceId: any;
@Input() waypoints: any;
@Input() directionsDisplay: any;
@Input() estimatedTime: any;
@Input() estimatedDistance: any;
constructor(private gmapsApi: GoogleMapsAPIWrapper) { }
ngOnInit() {
console.log(' In directive ');
console.log(this.org);
this.gmapsApi.getNativeMap().then(map => {
const directionsService = new google.maps.DirectionsService;
const directionsDisplay = new google.maps.DirectionsRenderer;
directionsDisplay.setMap(map);
directionsService.route({
origin: {lat: this.org.latitude, lng: this.org.longitude},
destination: {lat: this.dst.latitude, lng: this.dst.longitude},
waypoints: [],
optimizeWaypoints: true,
travelMode: 'TRANSIT'
}, function(response, status) {
if (status === 'OK') {
directionsDisplay.setDirections(response);
console.log(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
});

}
}
`
What is wrong with my code , I want to make disappear of first route when new route is displayed.

Hi, can we put a click event on the road?

I have used the same directive in my project and it works fine, Just a quick question, Is it possible to display traffic (red, yellow or blue sections on line) on road like in  Waze, Uber or lyft driving maps?
your help is highly appreciated

This guy has done an excellent job with this directive, I have tried it and it works very well, please consider if it can be included in AGM.
https://github.com/explooosion/Agm-Direction


[SPARK-25474][BACKPORT-2.4][SQL] Support spark.sql.statistics.fallBackToHdfs in data source tables

What changes were proposed in this pull request?
Backport the commit https://github.com/apache/spark/commit/485ae6d1818e8756a86da38d6aefc8f1dbde49c2 into SPARK-2.4 branch.
How was this patch tested?
Added tests.

Can one of the admins verify this patch?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/13411/
Test PASSed.

Test build #108315 has started for PR 25284 at commit caf108a.

Test build #108315 has finished for PR 25284 at commit caf108a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/108315/
Test PASSed.

cc @dongjoon-hyun @maropu Kindly review.

Thank you @dongjoon-hyun for merging


error when check update

Please describe what you were doing when this error happened.
Specifications

OS: darwin
IPFS Desktop Version: 0.12.2
Electron Version: 8.2.5
Chrome Version: 80.0.3987.165

Error
TypeError: ctx.checkForUpdates is not a function
    at click (/Applications/IPFS Desktop.app/Contents/Resources/app.asar/src/tray.js:198:30)
    at MenuItem.click (electron/js2c/browser_init.js:1501:9)
    at Function.executeCommand (electron/js2c/browser_init.js:1762:13)

Thank you for bringing this to our attention! It's been flagged for review at the next weekly triage meeting.

Not sure if it's due to the same issue - let me know if I'd have to create a separate one.

IPFS Desktop Version: 0.13.2

OS: Windows 10

I'm getting an error when going to right click on the tray icon -> About -> Check for updates:

I actually have Internet on my computer, so it's not a real cause.

@AbakumovAlexandr  Those are separate issues. Please fill a separate one (and write down if you installed as a single user of for all users).

@devzyf please reopen if you still experience the  issue described in https://github.com/ipfs-shipyard/ipfs-desktop/issues/1608#issue-679875055 with the latest version (0.14.0)


ASR api接口，punc参数不生效

For support and discussions, please use our Discourse forums.
If you've found a bug then please create an issue with the following information:
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Ubuntu]
GCC/G++ Version [e.g. 8.3]
Python Version [e.g. 3.7]
PaddlePaddle Version [e.g. 2.0.0]
Model Version [e.g. 2.0.0]
GPU/DRIVER Informationo [e.g. Tesla V100-SXM2-32GB/440.64.00]
CUDA/CUDNN Version [e.g. cuda-10.2]
MKL Version
TensorRT Version

Additional context
Add any other context about the problem here.

实际上，源码里面并没有用这些参数，可以自己手动改一下源码，让这些参数生效


Visual Shader Alpha Dissolve

Godot version:
bc7178422e98c86c7c8c9d9e572a9c6941836d79
Issue description:
When doing the same as GDQuest but changing the sphere for a monkey head the effect do not work. the mesh just pops in for a split second and then are invisible the rest of the time
Is this a bug??

Does the mesh have UVs? I don't think the monkey head has UVs by default.

Does the mesh have UVs? I don't think the monkey head has UVs by default.

You are correct, my mistake. it worked when i applied an uv to the shape, thanks!


fix(minimal-avax-wallet): Adding as a dependency

:tada: This PR is included in version 1.2.0 :tada:
Your semantic-release bot :package::rocket:


error Error: only one instance of babel-polyfill is allowed

Hello,
Thanks for great component :racehorse: I see some opportunity to make it more useful
Plugin version
1.3.6
Environment:
Ubuntu 18.04.2 LTS Bionic
Current behavior:
When used in the project where babel-polyfill is also using, throws an error while running built app.
error Error: only one instance of babel-polyfill is allowed

It looks like the same problem as currently in number of other libs. Errors happen after importing component inside our app's vue file.
Expected behavior:
Installing and importing component desn't throw error and app runs without console errors.
Fixing it will help in using this helpful stuff, thanks :)

Hi, yea, looks like I'll have to remove babel-polyfill and have it added by consumers, thanks. 👍

Should be fixed with 1.3.7. Moved babel-polyfill to consumer responsibility.

Thank you, that's next step to make you package better :v: Let me know, aren't you afraid moving babel-polyfill to consumer is more risky in case using the newest es* features even on chrome / android or ios browsers?

Hmm, not sure I understand. Babel-polyfill is meant to cover new features for old browsers, like IE. If you target new browsers only, you definitely don't need the polyfill overhead.


Support for Unicode csv files

Now that unicodecsv has dropped support for Python 2.6 we from pywikibot-core are wondering if the future package might add support for Unicode in csv files.

There is also the https://github.com/ryanhiebert/backports.csv library. This should probably work even better.
Is it possible to modify this library so pasteurize replaces all csv imports with backports.csv. If so, in what file should I do this?


Dehumidifiers

Hello, are the dehumidifiers supported? Can I add my dehumidifier manually?
When I enable debug logs and restart homebridge, I can see inside homebridge logs the dehumidifier

TuyaOpenAPI response: {"result":[{"category":"cs","devices":["14433575d8bfcXXXXX"],"functions":[{"code":"switch","desc":"switch","name":"switch","type":"Boolean","values":"{}"},{"code":"fan_speed_enum","desc":"fan speed enum","name":"fan speed enum","type":"Enum","values":"{"range":["low","mid","high"]}"},{"code":"mode","desc":"mode","name":"mode","type":"Enum","values":"{"range":["dehumidify"]}"},{"code":"anion","desc":"anion","name":"anion","type":"Boolean","values":"{}"}],"product_id":"y3o1suysyi4nw96a"}],"success":true,"t":163984XXXXX} path = /v1.0/devices/functions
Adding: Juro-Pro Crystal (cs / 14433575d8bfXXXXXX)

but I cant see it in homebridge accessories or in the homekit app.

Also having the same issue. Dehumidifier appears in log but is unavailable in HomeKit


Plex for Windows v<IP_ADDRESS>8

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

https://github.com/microsoft/winget-cli/issues/137


i.redd.it links aren't parsed correctely to feh

Apparently it's parsing the thread link instead of the image link

Thanks, could you provide an example of a post that contains one of these links?

Apparently it's not RTV fault. It worked as expected on a fresh install


update requires version and tags

this pr adjusts the tags (adds linux and infrastructure), these are specific to automation hub and help both our SEO as well users to list specific collections by use case (if these don't fit don't hesitate to change them, we just need 1 out of the list of 10 that is below at [0])
second change just updates the requires ansible version to 2.9.10. This patch version was when everything in regards to collections was fully merged into ansible itself, so its better to have that listed.
[0]
cloud
linux
networking
storage
security
windows
infrastructure
monitoring
tools
database
application

@thedoubl3j Thanks a ton for that! Please do not hesiste to pock around even more in the code and give us some feedback :)


Wrong names in Infernal Spirit config

Options in Infernal Spirit's configuration named as a Glutton Fish's:

getting back to this, this is now fixed


Mention git submodules in readme.

Maybe this is too obvious to people used to git, but the build error if you don't do it is a little confusing.

Thanks! I actually figured it's probably best if this happens, automatically, so https://github.com/alexcrichton/brotli2-rs/commit/e3eff5598c28aa5821a4d96e79a769e1edf2e61a should hopefully do it all for you now :)

Sounds good, thanks.
On Fri, Apr 8, 2016, 9:45 AM Alex Crichton<EMAIL_ADDRESS>wrote:

Thanks! I actually figured it's probably best if this happens,
automatically, so e3eff55
https://github.com/alexcrichton/brotli2-rs/commit/e3eff5598c28aa5821a4d96e79a769e1edf2e61a
should hopefully do it all for you now :)
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/alexcrichton/brotli2-rs/pull/1#issuecomment-207508731


[Package/Build] Remove SwiftTarget.toolsSwiftVersion in favor of a build setting

Follow-up to https://github.com/apple/swift-package-manager/pull/7544 and associated discussion related to how tools version doesn't mean what it used to with introduction of per-target swift version settings.
Motivation:
Unify handling of swift language version setting to make it harder for users to make mistakes when selected one.
Modifications:

Add a way to specify a default setting assignment
This setting is going to be used if there are no non-default
assignments that match build environment conditions.

Remove toolsSwiftVersion from SwiftTarget in favor of a build setting
Start using "default" assignments to represent tools version
based swift language version setting that is going to be produced
by BuildSettings.Scope if no other assignments match build
environment conditions.
This removes ambiguity from -swift-version selection for
downstream clients.

[PIF] Re-implement swift language version handling
Since toolSwiftVersion is gone and swift language version is
now handled by the build settings we need to adjust PIFBuilder
to handle that properly.
PIF build settings can handle per-target platform specific settings
which are now expressible in SwiftPM via .swiftLanguageVersion
build setting, handling of such settings is implemented in this commit

Result:
Swift language version is handled uniformly as a build setting.

@swift-ci please test


Vis specs: content group

User story
As a maker of IBM.com experiences, I need design specs for the layout patterns that accurately reflect what's available in code so that I can design, build, and communicate with a clear understanding of what to expect.
Notes from the epic
There are a few different cases where the design spec may not reflect eh code accurately:

Some of the designs were changed during development for various reasons
Some of the designs specs were not created accurately as we went through the ontological restructuring of the patterns and subpatterns.
With that, a part of this work will be:

Compare what's in the code and what in the current design specs (if exists)
If there are discrepancies, get agreement from Lara Hanlon and Wonil Suh on what is the intent
Update/create the visual specs.

Acceptance criteria

[ ] Design specs are available in PDF format in this Box fodler

This one is almost done. Pending input from design and dev on padding for the top and bottom of the pattern, for both breakpoints (it's different), and on question if padding on both top and bottom is causing potential conflicts within overall template layouts.

This one is on temporary pause while focusing on Ideation stories around padding and visual spec standards, at least enough work to apply a rough working model for both on this visual spec.


set the mc policy owner reference to the parent policy

Signed-off-by: Gus Parvin<EMAIL_ADDRESS>Make sure the owner reference for the managed cluster hub policies is the parent policy -- not the owner reference in the parent policy which can be anything.
Update Using the parent policy just would not work for some reason -- instead clearing the OwnerReference has fixed the problem that I'm seeing.  Note that the problem can be recreated by:

Clone repo git@github.com:rcarrillocruz/cluster-group-lcm.git
Run make install run
Create the Group resource from the group.yaml but make sure you update the managed cluster reference from spoke1 and spoke2 to something you have.

This causes a policy to be created with the operator or group as the owner and we currently do a DeepCopy which keeps that owner reference.  This causes lots of errors like this in the events:
36s         Warning   OwnerRefInvalidNamespace                        policy/default.group1-batch-1-policy-deployment-policy   ownerRef [policy.open-cluster-management.io/v1/Policy, namespace: local-cluster, name: group1-batch-1-policy-deployment-policy, uid: 184c6961-667c-46f2-b761-4886adf31fe3] does not exist in namespace "local-cluster"

And we get into a tight loop with those events and the policy seems to be continually reconciled.
With this pr it is back to normal.

/retest

I have requested a bugzilla -- so kinda waiting for that too.

Bugzilla for this is https://github.com/open-cluster-management/backlog/issues/13611