ml_logistic_regression does not work with categorical features

library(sparklyr)
library(dplyr)
sc <- spark_connect("local")

d <- data.frame(y = letters[1:2], x1 = letters[1:2], x2 = 1:4)
dx <- copy_to(sc, d, overwrite = TRUE)

dx %>%  ml_logistic_regression(response = "y", features = c("x1","x2"))

gets:
Error: org.apache.spark.SparkException: VectorAssembler does not support the StringType type
while
d <- data.frame(y = letters[1:2], x1 = 1:2, x2 = 1:4)
dx <- copy_to(sc, d, overwrite = TRUE)

dx %>%  ml_logistic_regression(response = "y", features = c("x1","x2"))

is OK (difference is that x1 is categorical in (1) and numeric in (2).
In SparkR both work:
d <- data.frame(y = letters[1:2], x1 = letters[1:2], x2 = 1:4)
dx <- as.DataFrame(sqlContext, d)

md <- glm(y ~ ., family = "binomial", data = dx)
summary(md)

Did you try using the ft_string_indexer ? You should be able to do:
d <- data.frame(y = letters[1:2], x1 = letters[1:2], x2 = 1:4)

dx <- copy_to(sc, d)

dx %>%
  sdf_mutate(x1_cat = ft_string_indexer(x1)) %>%
  ml_logistic_regression(response = "y", features = c("x1_cat", "x2"))

@kevinushey What accounts for this difference in behavior from SparkR? It looks to me like y and x1 are both character vectors (not factors) so our handling seems correct (i.e. user is required to use ft_string_indexer). What would happen if y and x1 were in fact factors, would this then work without the sdf_mutate?

Behind the scenes, sparklyr uses the ft_string_indexer for categorical response variables; it seems like we might need to do the same for features as well. I'll take a look on Monday and confirm that SparkR is doing the same thing here.

@slopp I'm just a spoiled R user expecting ml_logistic_regression  to do all that for me :) Btw that would be pretty ugly with 100 categorical features.
@kevinushey that would be great.

It looks like this is going to take some more work to implement. IIUC, Spark is using the OneHotEncoder transformer to transform categorical vectors into separate binary vectors, which are then used in the model fit. (basically, as dummy variables, if I understand correctly?)

@szilard I had the same issue / response. Glad I'm not the only one.

@kevinushey Re dummies: I guess so too, I'm not really a Spark user ;) In most stats.ML libs it's either the user (extra code) or the system (behind the scenes) that's doing the encoding, I prefer the later (less user code to write/maintain, nicer API). Looks like SparkR does it now (it was broken a few months ago), so it would be nice to match it at some point of time.

Definitely agree that we should be doing this ourselves behind the scenes!
I think this code (roughly speaking) is what Spark (and hence SparkR) is using to handle categorical variables:
https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/feature/RFormula.scala#L128-L174
Basically, given a column of strings (intended to be treated as a categorical variable), we need to:

Use the StringIndexer to transform the column into a numeric column, indexed from 0:n, and then

Use the [OneHotEncoder)(https://spark.apache.org/docs/latest/ml-features.html#onehotencoder) to transform the column produced before into a vector of 'binary vectors', where each binary vector is effectively a dummy-variable encoding of the categorical variable level.

The tricky part in doing this all transparently is keeping track of variable labels and so on.

We should now handle categorical variables using a similar approach to R / SparkR. For a dummy dataset, I see:
library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local")

set.seed(123)
data <- data.frame(
  y = rnorm(100),
  x = rep(letters[1:10], each = 10),
  stringsAsFactors = FALSE
)

data_tbl <- copy_to(sc, data)

ml_linear_regression(data_tbl, y ~ x)

producing
> ml_linear_regression(data_tbl, y ~ x)
Call:
y ~ xb + xc + xd + xe + xf + xg + xh + xi + xj

Coefficients:
(Intercept)          xb          xc          xd          xe          xf          xg          xh          xi
 0.07462564  0.13399632 -0.49918452  0.24741891 -0.08334118  0.14706035  0.04845804 -0.43754346  0.23846966
         xj
 0.36246853

Of course, we need to preserve the original call appropriately, but this is definitely a step in the right direction.

Closing this as implemented now; please let us know if you encounter any bugs / have other feature requests!

Re-opening this because of performance issues:
Take this data: https://s3.amazonaws.com/benchm-ml--main/train-10m.csv
(airline dataset, I used it in this benchmark: https://github.com/szilard/benchm-ml/ )
d_train <- spark_read_csv(sc, name = "d_train", path = "train-10m.csv")

system.time({
md <- d_train %>%
       sdf_mutate(Month_cat = ft_string_indexer(Month)) %>%
       sdf_mutate(DayofMonth_cat = ft_string_indexer(DayofMonth)) %>%
       sdf_mutate(DayOfWeek_cat = ft_string_indexer(DayOfWeek)) %>%
       sdf_mutate(UniqueCarrier_cat = ft_string_indexer(UniqueCarrier)) %>%
       sdf_mutate(Origin_cat = ft_string_indexer(Origin)) %>%
       sdf_mutate(Dest_cat = ft_string_indexer(Dest)) %>%
       ml_logistic_regression(response = "dep_delayed_15min",
          features = c("Month_cat","DayofMonth_cat","DayOfWeek_cat","DepTime",
             "UniqueCarrier_cat","Origin_cat","Dest_cat","Distance"))
})

runs in 58 sec on 16 core box
(SparkR is 54 sec)
system.time({
md <- d_train %>% ml_logistic_regression(response = "dep_delayed_15min",
            features = setdiff(colnames(d_train),"dep_delayed_15min"))
})

runs forever (I stopped it after ~10mins)
also uses only 1 core
logs show things like:
SELECT *
FROM `sparklyr_tmp_202f65621d37

An unrelated note, I think the sdf_mutate sequence can be re-written as:
md <- d_train %>%
   sdf_mutate(
      Month_cat = ft_string_indexer(Month),
      DayofMonth_cat = ft_string_indexer(DayofMonth),
      DayOfWeek_cat = ft_string_indexer(DayOfWeek),
      UniqueCarrier_cat = ft_string_indexer(UniqueCarrier),
      Origin_cat = ft_string_indexer(Origin),
      Dest_cat = ft_string_indexer(Dest)) %>%
   ml_logistic_regression(
      response = "dep_delayed_15min",
      features = c("Month_cat","DayofMonth_cat","DayOfWeek_cat","DepTime",
                   "UniqueCarrier_cat","Origin_cat","Dest_cat","Distance"))

i.e. a single call to sdf_mutate with multiple parameters. @kevinushey is that correct?

Yeah, just checked, that works and it has same runtime (expected as the calls should be just lazily evaluated). Nicer code though.

Note that the models you are fitting are not identical -- the first converts the character vectors into integer vectors, and fits those as a numeric response, rather than a categorical response.
The second version actually does fit those as categorical variables -- with the current implementation, this implies introducing a new dummy variable for each level in each categorical variable (minus one reference level).
The problem appears to be that generating the dummy variables takes much longer than expected.

It looks like the main culprit is our use of withColumn, which is a very slow mechanism for building DataFrames:
https://issues.apache.org/jira/browse/SPARK-7276
I'll look into speeding this up. Thanks for reporting!

Oh, I see. I think in most cases people would want to fit as categorical vars (and that's the default of most R functions e.g.glm and that's also what R users would generally expect).
It looks like SparkR is doing that (dummies), yet it's fast (so you can speed up sparklyr :))
Back to the original example, slightly modified:
d <- data.frame(y = letters[1:2], x1 = letters[1:3], x2 = 1:6)
dx <- copy_to(sc, d)

As categorical:
dx %>%  ml_logistic_regression(response = "y", features = c("x1","x2"))

Call: y ~ x1b + x1c + x2
Coefficients:
(Intercept)         x1b         x1c          x2
  1.1552454   0.4620983   0.9241965  -0.4620982

As integer encoding:
dx %>% sdf_mutate(x1_cat = ft_string_indexer(x1)) %>%
  ml_logistic_regression(response = "y", features = c("x1_cat", "x2"))

Call: y ~ x1_cat + x2

Coefficients:
(Intercept)      x1_cat          x2
  1.1497085   0.1914684  -0.3829368

SparkR:
d <- data.frame(y = letters[1:2], x1 = letters[1:3], x2 = 1:6)
dx <- as.DataFrame(sqlContext, d)

md <- glm(y ~ ., family = "binomial", data = dx)
summary(md)

$coefficients
              Estimate
(Intercept) -2.0794417
x1_a         0.9241967
x1_b         0.4620987
x2           0.4620979

I just pushed a commit to sparklyr that should speed up the generation of dummy variables -- I think this should put us close to / on par with SparkR, as we are now mostly bottlenecked by the speed of Spark's own logistic regression routines.
I'm also curious what the performance is like between ml_logistic_regression and ml_generalized_linear_regression, since these farm out to different Spark (Scala) APIs.

I can't see the speedup (with newly installed sparklyr).
You can use same data as above for testing (10M rows) or this smaller one:
https://s3.amazonaws.com/benchm-ml--main/train-10m.csv (100K rows).
library(sparklyr)
library(dplyr)
sc <- spark_connect("local")

system.time({
d_train <- spark_read_csv(sc, name = "d_train", path = "train-0.1m.csv")
})

system.time({
md <- d_train %>%
   sdf_mutate(
      Month_cat = ft_string_indexer(Month),
      DayofMonth_cat = ft_string_indexer(DayofMonth),
      DayOfWeek_cat = ft_string_indexer(DayOfWeek),
      UniqueCarrier_cat = ft_string_indexer(UniqueCarrier),
      Origin_cat = ft_string_indexer(Origin),
      Dest_cat = ft_string_indexer(Dest)) %>%
   ml_logistic_regression(
      response = "dep_delayed_15min",
      features = c("Month_cat","DayofMonth_cat","DayOfWeek_cat","DepTime",
                   "UniqueCarrier_cat","Origin_cat","Dest_cat","Distance"))
})
#   user  system elapsed
#  0.508   0.045   7.904

system.time({
md <- d_train %>% ml_logistic_regression(response = "dep_delayed_15min",
            features = setdiff(colnames(d_train),"dep_delayed_15min"))
})
#   user  system elapsed
#  9.156   0.828  56.034

Btw I have a config.yml with:
  sparklyr.shell.executor-memory: 20G
  sparklyr.shell.driver-memory: 30G

To use ml_generalized_linear_regression it seem one needs 2.0.0.
With the 2.0.0-preview:

library(sparklyr)
library(dplyr)
sc <- spark_connect("local")
d_train <- spark_read_csv(sc, name = "d_train", path = "train-0.1m.csv")

system.time({
md <- d_train %>%
   sdf_mutate(
      Month_cat = ft_string_indexer(Month),
      DayofMonth_cat = ft_string_indexer(DayofMonth),
      DayOfWeek_cat = ft_string_indexer(DayOfWeek),
      UniqueCarrier_cat = ft_string_indexer(UniqueCarrier),
      Origin_cat = ft_string_indexer(Origin),
      Dest_cat = ft_string_indexer(Dest)) %>%
   ml_logistic_regression(
      response = "dep_delayed_15min",
      features = c("Month_cat","DayofMonth_cat","DayOfWeek_cat","DepTime",
                   "UniqueCarrier_cat","Origin_cat","Dest_cat","Distance"))
})
#   user  system elapsed
#  0.492   0.027   9.752

system.time({
md <- d_train %>% ml_logistic_regression(response = "dep_delayed_15min",
            features = setdiff(colnames(d_train),"dep_delayed_15min"))
})
#Error: java.util.concurrent.ExecutionException: java.lang.Exception: failed to compile: #org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 53, Column 26: #Expression "inputadapter_isNull5" is not an rvalue

system.time({
md <- d_train %>%
   sdf_mutate(
      Month_cat = ft_string_indexer(Month),
      DayofMonth_cat = ft_string_indexer(DayofMonth),
      DayOfWeek_cat = ft_string_indexer(DayOfWeek),
      UniqueCarrier_cat = ft_string_indexer(UniqueCarrier),
      Origin_cat = ft_string_indexer(Origin),
      Dest_cat = ft_string_indexer(Dest)) %>%
   ml_generalized_linear_regression(
      family = binomial(),
      response = "dep_delayed_15min",
      features = c("Month_cat","DayofMonth_cat","DayOfWeek_cat","DepTime",
                   "UniqueCarrier_cat","Origin_cat","Dest_cat","Distance"))
})
#   user  system elapsed
#  0.523   0.034   6.593

Conscious this is close but still the valid forum.
If we have a numerical field which we want to bucketize and then use in a ML model:
for example:
tbl4 = sdf_mutate(tbl3,
                comp_factor = ft_string_indexer("comp"),
                avg_temp_factor = ft_bucketizer( "avg_temp", splits = c(-Inf,0,5,10,20,30,Inf)),
                avg_temp_factor2 = ft_one_hot_encoder("avg_temp_factor"),
                stdev_temp_factor = ft_bucketizer("sdev_temp", splits = c(-Inf,0,4.4,6.3,8.3,16,Inf)),
                stdev_temp_factor2 = ft_string_indexer("stdev_temp_factor"),
                stdev_temp_factor3 = ft_one_hot_encoder("stdev_temp_factor2")
                 )

model_parameters <- c('avg_temp_factor2',
                'stdev_temp_factor3',
                'comp_factor',
model = ml_survival_regression(tbl4, response = "time",features = model_parameters, censor = "status", intercept = TRUE)

model$coefficients print the value as if it was a numerical parameter, not a category.
model$coefficients
            (Intercept)        avg_temp_factor2      stdev_temp_factor3             comp_factor
             0.67959997              0.00000000              0.39217879             -0.42696859

Is this the right way via the package to transform numerical values into categories?
Eliano


WindowedListView lags on scroll up on Android

Description
I've implemented a List of Items using WindowedListView
<WindowedListView
          data={values}
          renderRow={this.renderCell}
          initialNumToRender={10}
          onEndReached={this.handleOnEndReached}
          maxNumToRender={30}
          numToRenderAhead={20}
          viewablePercentThreshold={50}
          renderWindowBoundaryIndicator={this.renderWindowBoundaryIndicator}
          />

it works fine on iOS, but it lags a lot on Android.
this is a video of the bug: https://youtu.be/aFDBJU93b-o
it takes a lot of time to rerender the row when we scroll up, and it waits one row to be rendered after another.
this do not happen on ios
Additional Information

React Native version: 0.39.2
Platform: Android
Operating System: MacOS

I figure it out that WindowedListView uses contentInset prop of ScrollView here: https://github.com/facebook/react-native/blob/942b9332b2e9eb779e84d996648e66550965af82/Libraries/Experimental/WindowedListView.js#L531
that only works on iOS
I've tried to replace it to use contentContainerStyle as described here https://github.com/facebook/react-native/issues/2914#issuecomment-167153409 by @satya164,
but it did not work
any ideas of how can I fix this for android?

@sibelius it works for that use case, but it's not quite the same.

@sibelius Did you manage to fix the scroll issue?

No, I've migrated to FlatList
But it also has the same problem with the list has a bunch of rows

@sibelius Please reopen this issue as its still not fixed.

@bharath-kamath I recommend to move to FlatList instead of using WindowedListView,
and open another issue if you have the same problem with FlatList


fix(nextjs-router): forwarding ref on RefineLink component

closes #3380
Self Check before Merge
Please check all items below before review.

[X] Corresponding issues are created/updated or not needed
[X] Docs are updated/provided or not needed
[X] Examples are updated/provided or not needed
[X] TypeScript definitions are updated/provided or not needed
[X] Tests are updated/provided or not needed
[X] Changesets are provided or not needed

Thank you @vanflux @aliemir ! 💥


Add a pressed stated effect

Is your feature request related to a problem?
No
Describe the solution you'd like:
When pressing one of the drop down items, is it possible to show an effect? (Highlight or a ripple effect on the item being pressed)
Describe alternatives you've considered:

Have you found any solution ?


Check for ROCA factorisation weaknesses

Based on sample Python code from https://github.com/crocs-muni/roca.

What would you think if having a class that tests for weak keys?  ROCA is one example, Debian weak keys are another, so are keys with small factors.  The class would take a OpenSSL::PKey (rather than cert) so it can be used with CSRs and such.
If you agree, I'll merge then refactor.

Sounds reasonable to have a whole bucket of key-related checks in one place.


TypeError: simpleOdataServer.adapter is not a function

Tested in my own system, as well as on npm.runkit, always getting same error:
TypeError: simpleOdataServer.adapter is not a function
Demo-Code from runkit:
var mongoClt = require('mongodb').MongoClient;
var simpleOdataServer = require("simple-odata-server");
var Adapter = require('simple-odata-server-mongodb');
var url = "<IP_ADDRESS>:27017";

mongoClt.connect(url, function(err, db) {
    simpleOdataServer.adapter(Adapter(function(cb) { cb(err, db); }));
});

See the example.
https://github.com/pofider/node-simple-odata-server#get-started
var odataServer = ODataServer("http://localhost:1337")
    .model(model)
    .adapter(Adapter(function(es, cb) { cb(null, db)}));

Sorry, got my example from your suggestion:
The mongo adapter can be used as
var Adapter = require('simple-odata-server-mongodb')
MongoClient.connect(url, function(err, db) {
odataServer.adapter(Adapter(function(cb) {
cb(err, db.db('myodatadb'));
}));
});
Using mongodb, I have no model of data, because the documents stored are very different in structure and content. How to use this without a applying a model?

Unfortunately the model is required.

Ok, I see, this approach will not end up in a working stack for me.
Thank you for your replies, anyway.


Add 5 new Open Source Organizations

Add the following Organizations to the project list:

[ ] Probot: https://github.com/probot

[ ] ODK: https://github.com/opendatakit

[ ] SugarLabs: https://github.com/sugarlabs

[ ] JupyerHub: https://github.com/jupyterhub

[ ] AllenAI: https://github.com/allenai

I want to go with this issue.

@sara-02
I want to go for this issue

@Jaggu-123 sure, go ahead and send a PR.

Make sure you fork is in sync with the latest changes from master and the projects you add follow the same format as other projects we have in the list.

ok , Thanks

@sara-02
I have made the pull request.
Plz have a look.

@Jaggu-123 I a few comments, please update the PR with those.

Sorry I am new to programming, what is "PR"?

@Rangnarer PR => Pull Request.
If you are new, I will suggest you to follow the tutorial given in README of this repo.
Which will guide you to add yourself in contributors list and step by step guide to create a Pull Request

Fixed in https://github.com/Roshanjossey/first-contributions/pull/5947


Remove kubernetes-common

Consolidate into the only task that is using it

@bansalaseem I don't think this should cause any problems, can you confirm as the KubernetesManifestV0 codeowner?

Can you please share what problem are you trying to solve? I am asking this as the kubectl-objectmodel code belongs in tasks common only.  I understand that today it is being used in only 1 task but as we rev up any of our kubernetes task, it will be used by more than 1.
So it will be overall waste of time, currently you are spending time in moving it out and later on we will to spend time to add it back.

Sure, mostly I'm just trying to clean up common at the moment and it didn't make sense to me to have something in common that isn't actually shared (I didn't initially realize that this has only been around for <1 month).
If this is going to be used by more tasks going forward I'm ok leaving it. In general, I think its a better model to keep things out of common until they're actually shared though.


[Executor/View] Add Executor View

This commit adds executor view on ONE view container.
ONE-vscode-DCO-1.0-Signed-off-by: Jiyoung Yun<EMAIL_ADDRESS>

I rebased this PR. Please check this code again. /cc @yunjayh @dayo09

PTAL /cc @dayo09


Defined new revisions for golang dep: github.com/kubernetes/apimachinery

Ran component through the scanners since I noticed it had not been harvested yet. PR matches curation site. Closing.


[PROPOSED] Steer QuickSwap Merkl Farm

SQMF
Status: PROPOSED
Status will be changed soon.
Description
Earn MERKL rewards by Steer vault.
Base contracts

LPStrategyBase
FarmingStrategyBase

Adapters

AmmAdapterIdLib.ALGEBRA

SteerPeriphery.sol
Steer WMATIC/USDC vault 0x280bE4533891E887F55847A773B93d043984Fbd5 UI
Steer WBTC/WETH vault 0x12a7b5510f8f5E13F75aFF4d00b2F88CC99d22DB UI

Hello, should I use quickswap pool address or create a pool for steer strategy?
As far as i check the route2() function, there is not defiedge route part in PolygonLib.sol.


permanent location for test.log

whenever im running the tt command,
its creating a test.log file in that location
it will better if there is a permanent location for test.log file like ~/.tt/test.log

Sorry for the prolonged response. This was a bug, that file should not exist at all. It should be fixed in the latest commit.

no problem


Change shabad translation to present tense

As described above
Please select which platform you are using:-
Desktop Version
Feedback Type
Corrections
What went wrong?
hak hak aagaeh gur gobi(n)dh si(n)gh
Guru Gobind Singh was the truth for the connoisseurs of truth,
Swih ShnSwh gur goibMd isMG ] 107 ]
shaeh shahanashaeh gur gobi(n)dh si(n)gh || 107 ||
Guru Gobind Singh was the king of kings
In the meaning of shabad which the Tense used is past tense and the meaning taken are from Dr. Sant Singh Khalsa which has been used by many Gurbani searching apps where it should have been the same ideally however in Gurbani searcher they have used Present Tense
For example: Guru Gobind Singh was the king of kings
In the above statement it should be
As described above
What should have happened instead?
Guru Gobind Singh is the king of kings
Which seems to the correct statement as we believe Guruji is Hazar nazar
This should be done for the whole Shabad
How can the issue be recreated by our team?
Same as above
Which web browser are using?
Chrome
Operating System
Microsoft Windows
Name
Jaspal Singh Bhamra

@saintsoldierx uploaded to control panel


Support Network Peering parameters

While setting up Network Peering we ran into some issues with the peering connection configuration. We are not able to enable the "Exchange custom routes" configuration:

I believe it is the PeeringNetwork object in the addPeering request: https://cloud.google.com/compute/docs/reference/rest/v1/networks/addPeering

@fernandocarletti is this the right resource/setting for you? https://pulumi.io/reference/pkg/nodejs/@pulumi/gcp/compute/#NetworkPeeringArgs-autoCreateRoutes
This is the same as networkPeering.autoCreateRoutes at https://cloud.google.com/compute/docs/reference/rest/v1/networks/addPeering.

@clstokes My issue is with networkPeering.exchangeSubnetRoutes, which export/import the custom routes in the peering VPC. That's the one I could not find a way to set in Pulumi.

@fernandocarletti The description for networkPeering.autoCreateRoutes says This field will be deprecated soon. Prefer using exchangeSubnetRoutes instead. so I wonder if it has the same effect?

(We'll still need to address the deprecation of it.)

@fernandocarletti I think they are functionally equivalent. Can you set autoCreateRoutes in Pulumi and see if it works for you?

Ping @fernandocarletti just circling back on this one before we either close it out or chase it down

Hello @stack72. I believe in the end this feature wasn't used at Linio (@nesl247 can tell for sure). Seems like the options for configuring the peering in the GCP console are a bit different from the ones available in the API. As far as I remember with the autoCreateRoutes you can't select if you are just importing or just exporting, what was needed in the case I was working on.
TLDR I believe we can close this.

We can close this out. If we run into this again we can always reopen it.

Thanks to you both :)


Fix missing special markers :: in runserver_plus.rst

Consistent with the rest of the document
Without this, --reloader-interval 5 is rendered with an em dash instead on Read the Docs @ http://django-extensions.readthedocs.io/en/latest/runserver_plus.html#io-calls-and-cpu-usage

–reloader-interval 5

Thanks !

Wow, that was quick!

Coverage decreased (-0.1%) to 53.185% when pulling e719b705d02ec81981409360faf12f6ca58c67b7 on myii:patch-1 into 61586ce4c5af238560cd2b5fb83b92d96d5d7a6d on django-extensions:master.

Coverage decreased (-0.1%) to 53.185% when pulling e719b705d02ec81981409360faf12f6ca58c67b7 on myii:patch-1 into 61586ce4c5af238560cd2b5fb83b92d96d5d7a6d on django-extensions:master.

Coverage decreased (-0.1%) to 53.185% when pulling e719b705d02ec81981409360faf12f6ca58c67b7 on myii:patch-1 into 61586ce4c5af238560cd2b5fb83b92d96d5d7a6d on django-extensions:master.

Coverage decreased (-0.1%) to 53.185% when pulling e719b705d02ec81981409360faf12f6ca58c67b7 on myii:patch-1 into 61586ce4c5af238560cd2b5fb83b92d96d5d7a6d on django-extensions:master.


change witch i hope works

then it does belong here. hope is a church thing. arround here we know!


Error when calling WriteRecord in Timestream-Write

Confirm by changing [ ] to [x] below to ensure that it's a bug:

[x] I've gone though Developer Guide and API reference
[x] I've searched for previous similar issues and didn't find any solution

Describe the bug
Hello, when I am trying to call WriteRecordsRequest of Timestream-write, I face an error saying 404. But when I do
        cconfig.endpointOverride = "ingest-cell2.timestream.us-east-1.amazonaws.com";

It works fines. I know I can do this, but what if in the future the link changes then? My API will stop working.
SDK version number
1.8
Platform/OS/Hardware/Device
What are you running the sdk on?
Ubuntu 20.10
To Reproduce (observed behavior)
Steps to reproduce the behavior (please share code)
Does not work (Returns 404 status code)
Aws::Client::ClientConfiguration cconfig;
        clientConfiguration = cconfig;
        TimestreamWriteClient timestreamWriteClient(cconfig);
        WriteRecordsRequest writeRecordsRequest = WriteRecordsRequest();
        writeRecordsRequest.SetDatabaseName(databaseName);
        writeRecordsRequest.SetTableName(tableName);
        writeRecordsRequest.AddRecords(*records);
        Aws::TimestreamWrite::Model::WriteRecordsOutcome writeRecordsOutcome = timestreamWriteClient.WriteRecords(writeRecordsRequest);

Works like a charm
Aws::Client::ClientConfiguration cconfig;
        clientConfiguration = cconfig;
        cconfig.endpointOverride = "ingest-cell2.timestream.us-east-1.amazonaws.com";
        TimestreamWriteClient timestreamWriteClient(cconfig);
        WriteRecordsRequest writeRecordsRequest = WriteRecordsRequest();
        writeRecordsRequest.SetDatabaseName(databaseName);
        writeRecordsRequest.SetTableName(tableName);
        writeRecordsRequest.AddRecords(*records);
        Aws::TimestreamWrite::Model::WriteRecordsOutcome writeRecordsOutcome = timestreamWriteClient.WriteRecords(writeRecordsRequest);

Expected behavior
Success (200)
Logs/output
[INFO] 2020-11-09 11:23:49.771 Aws_Init_Cleanup [140258397099904] Initiate AWS SDK for C++ with Version:1.8.79
[TRACE] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[INFO] 2020-11-09 11:23:49.771 Aws::Config::AWSConfigFileProfileConfigLoader [140258397099904] Initializing config loader against fileName /home/nelson/.aws/credentials and using profilePrefix = 0
[TRACE] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[INFO] 2020-11-09 11:23:49.771 Aws::Config::AWSConfigFileProfileConfigLoader [140258397099904] Initializing config loader against fileName /home/nelson/.aws/config and using profilePrefix = 1
[TRACE] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[DEBUG] 2020-11-09 11:23:49.771 Aws::Config::ConfigFileProfileFSM [140258397099904] found profile default
[DEBUG] 2020-11-09 11:23:49.771 Aws::Config::ConfigFileProfileFSM [140258397099904] found access key *****************************
[INFO] 2020-11-09 11:23:49.771 Aws::Config::AWSProfileConfigLoader [140258397099904] Successfully reloaded configuration.
[TRACE] 2020-11-09 11:23:49.771 Aws::Config::AWSProfileConfigLoader [140258397099904] reloaded config at 2020-11-09T11:23:49Z
[TRACE] 2020-11-09 11:23:49.771 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.772 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.772 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.772 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[DEBUG] 2020-11-09 11:23:49.772 Aws::Config::ConfigFileProfileFSM [140258397099904] found profile default
[DEBUG] 2020-11-09 11:23:49.772 Aws::Config::ConfigFileProfileFSM [140258397099904] found region us-east-1
[INFO] 2020-11-09 11:23:49.772 Aws::Config::AWSProfileConfigLoader [140258397099904] Successfully reloaded configuration.
[TRACE] 2020-11-09 11:23:49.772 Aws::Config::AWSProfileConfigLoader [140258397099904] reloaded config at 2020-11-09T11:23:49Z
[INFO] 2020-11-09 11:23:49.773 CurlHttpClient [140258397099904] Initializing Curl library with version: 7.69.1, ssl version: OpenSSL/1.1.1f
[DEBUG] 2020-11-09 11:23:49.773 ClientConfiguration [140258397099904] ClientConfiguration will use SDK Auto Resolved profile: [default] if not specified by users.
[WARN] 2020-11-09 11:23:49.773 ClientConfiguration [140258397099904] Retry Strategy will use the default max attempts.
[INFO] 2020-11-09 11:23:49.773 EC2MetadataClient [140258397099904] Creating AWSHttpResourceClient with max connections 2 and scheme http
[INFO] 2020-11-09 11:23:49.773 CurlHandleContainer [140258397099904] Initializing CurlHandleContainer with size 2
[DEBUG] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] ClientConfiguration will use SDK Auto Resolved profile: [default] if not specified by users.
[WARN] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] Retry Strategy will use the default max attempts.
[DEBUG] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] ClientConfiguration will use SDK Auto Resolved profile: [default] if not specified by users.
[WARN] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] Retry Strategy will use the default max attempts.
[DEBUG] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] ClientConfiguration will use SDK Auto Resolved profile: [default] if not specified by users.
[WARN] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] Retry Strategy will use the default max attempts.
[TRACE] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[INFO] 2020-11-09 11:23:49.774 Aws::Config::AWSConfigFileProfileConfigLoader [140258397099904] Initializing config loader against fileName /home/nelson/.aws/credentials and using profilePrefix = 0
[TRACE] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[TRACE] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Checking HOME for the home directory.
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Environment value for variable HOME is /home/nelson
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Home directory is missing the final / appending one to normalize
[DEBUG] 2020-11-09 11:23:49.774 FileSystemUtils [140258397099904] Final Home Directory is /home/nelson/
[INFO] 2020-11-09 11:23:49.774 ProfileConfigFileAWSCredentialsProvider [140258397099904] Setting provider to read credentials from /home/nelson/.aws/credentials for credentials file and /home/nelson/.aws/config for the config file , for use with profile default
[INFO] 2020-11-09 11:23:49.774 ProcessCredentialsProvider [140258397099904] Setting process credentials provider to read config from default
[WARN] 2020-11-09 11:23:49.774 STSAssumeRoleWithWebIdentityCredentialsProvider [140258397099904] Token file must be specified to use STS AssumeRole web identity creds provider.
[DEBUG] 2020-11-09 11:23:49.774 DefaultAWSCredentialsProviderChain [140258397099904] The environment variable value AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is
[DEBUG] 2020-11-09 11:23:49.774 DefaultAWSCredentialsProviderChain [140258397099904] The environment variable value AWS_CONTAINER_CREDENTIALS_FULL_URI is
[DEBUG] 2020-11-09 11:23:49.774 DefaultAWSCredentialsProviderChain [140258397099904] The environment variable value AWS_EC2_METADATA_DISABLED is
[DEBUG] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] ClientConfiguration will use SDK Auto Resolved profile: [default] if not specified by users.
[WARN] 2020-11-09 11:23:49.774 ClientConfiguration [140258397099904] Retry Strategy will use the default max attempts.
[INFO] 2020-11-09 11:23:49.774 EC2MetadataClient [140258397099904] Creating AWSHttpResourceClient with max connections 2 and scheme http
[INFO] 2020-11-09 11:23:49.774 CurlHandleContainer [140258397099904] Initializing CurlHandleContainer with size 2
[INFO] 2020-11-09 11:23:49.774 InstanceProfileCredentialsProvider [140258397099904] Creating Instance with default EC2MetadataClient and refresh rate 300000
[INFO] 2020-11-09 11:23:49.774 DefaultAWSCredentialsProviderChain [140258397099904] Added EC2 metadata service credentials provider to the provider chain.
[DEBUG] 2020-11-09 11:23:49.774 Aws::Config::ConfigFileProfileFSM [140258397099904] found profile default
[DEBUG] 2020-11-09 11:23:49.774 Aws::Config::ConfigFileProfileFSM [140258397099904] found access key *******************
[INFO] 2020-11-09 11:23:49.774 Aws::Config::AWSProfileConfigLoader [140258397099904] Successfully reloaded configuration.
[TRACE] 2020-11-09 11:23:49.774 Aws::Config::AWSProfileConfigLoader [140258397099904] reloaded config at 2020-11-09T11:23:49Z
[INFO] 2020-11-09 11:23:49.774 CurlHandleContainer [140258397099904] Initializing CurlHandleContainer with size 25
[TRACE] 2020-11-09 11:23:49.774 AWSClient [140258397099904] Found body, but content-length has not been set, attempting to compute content-length
[DEBUG] 2020-11-09 11:23:49.774 AWSAuthV4Signer [140258397099904] Calculated sha256 7a9b3d4ae148c7e575f5d935720052da5c06609722f069f14378b30426719564 for payload.
[DEBUG] 2020-11-09 11:23:49.774 AWSAuthV4Signer [140258397099904] Canonical Header String: amz-sdk-invocation-id:184F67F5-0FB1-487F-A818-9F29A72916E9
amz-sdk-request:attempt=1
content-length:344
content-type:application/x-amz-json-1.0
host:ingest.timestream.us-east-1.amazonaws.com
x-amz-api-version:2018-11-01
x-amz-content-sha256:7a9b3d4ae148c7e575f5d935720052da5c06609722f069f14378b30426719564
x-amz-date:20201109T112349Z
x-amz-target:Timestream_20181101.WriteRecords
[DEBUG] 2020-11-09 11:23:49.774 AWSAuthV4Signer [140258397099904] Signed Headers value:amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-api-version;x-amz-content-sha256;x-amz-date;x-amz-target
[DEBUG] 2020-11-09 11:23:49.774 AWSAuthV4Signer [140258397099904] Canonical Request String: POST
/
amz-sdk-invocation-id:184F67F5-0FB1-487F-A818-9F29A72916E9
amz-sdk-request:attempt=1
content-length:344
content-type:application/x-amz-json-1.0
host:ingest.timestream.us-east-1.amazonaws.com
x-amz-api-version:2018-11-01
x-amz-content-sha256:7a9b3d4ae148c7e575f5d935720052da5c06609722f069f14378b30426719564
x-amz-date:20201109T112349Z
x-amz-target:Timestream_20181101.WriteRecords
amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-api-version;x-amz-content-sha256;x-amz-date;x-amz-target
7a9b3d4ae148c7e575f5d935720052da5c06609722f069f14378b30426719564
[DEBUG] 2020-11-09 11:23:49.774 AWSAuthV4Signer [140258397099904] Final String to sign: AWS4-HMAC-SHA256
20201109T112349Z
20201109/us-east-1/timestream/aws4_request
fb11a0f23055875a8a60d5bdf9bc4a7b97c43b46b6347ac102ff6008568d18df
[DEBUG] 2020-11-09 11:23:49.775 AWSAuthV4Signer [140258397099904] Final computed signing hash: bdd9152188bff03ac7f9732360db328794f55e3fd143923bed90e36e4a1fad9b
[DEBUG] 2020-11-09 11:23:49.775 AWSAuthV4Signer [140258397099904] Signing request with: AWS4-HMAC-SHA256 Credential=/20201109/us-east-1/timestream/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-api-version;x-amz-content-sha256;x-amz-date;x-amz-target, Signature=bdd9152188bff03ac7f9732360db328794f55e3fd143923bed90e36e4a1fad9b
[DEBUG] 2020-11-09 11:23:49.775 AWSClient [140258397099904] Request Successfully signed
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] Making request to https://ingest.timestream.us-east-1.amazonaws.com
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] Including headers:
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] amz-sdk-invocation-id: 184F67F5-0FB1-487F-A818-9F29A72916E9
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] amz-sdk-request: attempt=1
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] authorization: AWS4-HMAC-SHA256 Credential=***/20201109/us-east-1/timestream/aws4_request, SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-api-version;x-amz-content-sha256;x-amz-date;x-amz-target, Signature=bdd9152188bff03ac7f9732360db328794f55e3fd143923bed90e36e4a1fad9b
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] content-length: 344
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] content-type: application/x-amz-json-1.0
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] host: ingest.timestream.us-east-1.amazonaws.com
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] user-agent: aws-sdk-cpp/1.8.79/Timestream Write/Linux/5.8.0-26-generic x86_64 GCC/10.2.0
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] x-amz-api-version: 2018-11-01
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] x-amz-content-sha256: 7a9b3d4ae148c7e575f5d935720052da5c06609722f069f14378b30426719564
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] x-amz-date: 20201109T112349Z
[TRACE] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] x-amz-target: Timestream_20181101.WriteRecords
[DEBUG] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] Attempting to acquire curl connection.
[DEBUG] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] No current connections available in pool. Attempting to create new connections.
[DEBUG] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] attempting to grow pool size by 2
[INFO] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] Pool grown by 2
[INFO] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] Connection has been released. Continuing.
[DEBUG] 2020-11-09 11:23:49.775 CurlHandleContainer [140258397099904] Returning connection handle 0x560dbdc267e0
[DEBUG] 2020-11-09 11:23:49.775 CurlHttpClient [140258397099904] Obtained connection handle 0x560dbdc267e0
[DEBUG] 2020-11-09 11:23:49.917 CURL [140258397099904] (Text)   Trying <IP_ADDRESS>:443...

[DEBUG] 2020-11-09 11:23:51.447 CURL [140258397099904] (Text) Closing connection 0
[DEBUG] 2020-11-09 11:23:51.447 CURL [140258397099904] (SSLDataOut) 5bytes
[DEBUG] 2020-11-09 11:23:51.448 CURL [140258397099904] (Text) TLSv1.2 (OUT), TLS alert, close notify (256):
[DEBUG] 2020-11-09 11:23:51.448 CURL [140258397099904] (SSLDataOut) 2bytes
[DEBUG] 2020-11-09 11:23:51.453 CurlHttpClient [140258397099904] Returned http response code 404
[DEBUG] 2020-11-09 11:23:51.453 CurlHttpClient [140258397099904] Returned content type application/x-amz-json-1.0
[TRACE] 2020-11-09 11:23:51.453 CurlHttpClient [140258397099904] Response content-length header: 63
[TRACE] 2020-11-09 11:23:51.453 CurlHttpClient [140258397099904] Response body length: 63
[DEBUG] 2020-11-09 11:23:51.453 CurlHttpClient [140258397099904] Releasing curl handle 0x560dbdc267e0
[DEBUG] 2020-11-09 11:23:51.453 CurlHandleContainer [140258397099904] Releasing curl handle 0x560dbdc267e0
[DEBUG] 2020-11-09 11:23:51.454 CurlHandleContainer [140258397099904] Notified waiting threads.
[DEBUG] 2020-11-09 11:23:51.454 AWSClient [140258397099904] Request returned error. Attempting to generate appropriate error codes from response
[TRACE] 2020-11-09 11:23:51.454 AWSErrorMarshaller [140258397099904] Error response is {
"__type":       "com.amazon.coral.service#UnknownOperationException"
}
[WARN] 2020-11-09 11:23:51.454 AWSErrorMarshaller [140258397099904] Encountered Unknown AWSError 'com.amazon.coral.service#UnknownOperationException':
[ERROR] 2020-11-09 11:23:51.454 AWSClient [140258397099904] HTTP response code: 404
Resolved remote host IP address: <IP_ADDRESS>
Request ID: c0ebd10b-4dfb-4ee5-b703-cca1ed8e0560
Exception name: com.amazon.coral.service#UnknownOperationException
Error message: Unable to parse ExceptionName: com.amazon.coral.service#UnknownOperationException Message:
5 response headers:
connection : close
content-length : 63
content-type : application/x-amz-json-1.0
date : Mon, 09 Nov 2020 11:23:51 GMT
x-amzn-requestid : c0ebd10b-4dfb-4ee5-b703-cca1ed8e0560
[WARN] 2020-11-09 11:23:51.456 AWSClient [140258397099904] If the signature check failed. This could be because of a time skew. Attempting to adjust the signer.
[DEBUG] 2020-11-09 11:23:51.456 AWSClient [140258397099904] Server time is Mon, 09 Nov 2020 11:23:51 GMT, while client time is Mon, 09 Nov 2020 11:23:51 GMT
404
Unable to parse ExceptionName: com.amazon.coral.service#UnknownOperationException Message:
[INFO] 2020-11-09 11:23:51.457 CurlHandleContainer [140258397099904] Cleaning up CurlHandleContainer.
[INFO] 2020-11-09 11:23:51.457 CurlHandleContainer [140258397099904] Cleaning up CurlHandleContainer.
[DEBUG] 2020-11-09 11:23:51.457 CurlHandleContainer [140258397099904] Cleaning up 0x560dbdc21090
[DEBUG] 2020-11-09 11:23:51.457 CurlHandleContainer [140258397099904] Cleaning up 0x560dbdc267e0
To enable logging, set the following system properties:
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace;
Aws::InitAPI(options)

Hi @Dashing-Nelson ,
Yea, I'm seeing the same error.
We'll look into this and thanks for pointing it out to us!

Hi @Dashing-Nelson ,
This should be fixed and merged, thanks again.

this issue still persists in 1.9.3


Manifest merger failed

I am receiving the following error when I installed version 2.1.2 and compiled
Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined.
Steps To Reproduce
Install the 2.1.2 version supposed to be latest, and compile
Code To Reproduce
Please provide a simple code example that allows others to replicate the bug.
Environment Info:
System:
OS: macOS 11.6.1
CPU: (8) x64 Apple M1
Memory: 39.56 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 14.17.3 - /usr/local/bin/node
Yarn: 1.22.15 - /usr/local/bin/yarn
npm: 6.14.14 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.0.1, iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0
Android SDK:
API Levels: 28, 29, 30, 31
Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.2, 31.0.0
System Images: android-31 | Google APIs ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2020.3 AI-203.7717.56.2031.7935034
Xcode: 13.1/13A1030d - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_292 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 17.0.2 => 17.0.2
react-native: 0.67.1 => 0.67.1
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Paste the exact react-native-track-player version you are using => 2.1.2
Real device? Or simulator? => Real Device
What OS are you running? => Oxygen OS <IP_ADDRESS>HD65AA
How I can Help
What can you do to help resolve this?
=> The following error goes when I changes the AndroidManifest.xml file inside node_modules for react-native-track-player with the following changes
OLD (This gives error which comes with the version)
<!-- A receiver that will receive media buttons. Required on pre-lollipop devices -->
<receiver android:name="androidx.media.session.MediaButtonReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>

NEW(This resolves the error)
<!-- A receiver that will receive media buttons. Required on pre-lollipop devices -->
  <receiver android:name="androidx.media.session.MediaButtonReceiver" android:exported="true">
      <intent-filter>
          <action android:name="android.intent.action.MEDIA_BUTTON" />
      </intent-filter>
  </receiver>

Please fix in the main library.

I faced the same problem for target Android-12. Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined.
I made the similar as stated above and it work for me too. Please fix this as a bug fix in a new release

Hi, Android 12 will be supported in 2.2.0 I guess, take a look at this discussion where you can help test the new version https://github.com/DoubleSymmetry/react-native-track-player/discussions/1264

@iphonic @saudahmed please upgrade to v2.2.0-rc3, that should solve your problem.


Expose glob capture and replace in cli

Will be useful for debugging join inputs that are behaving unexpectedly.

cc @svekars

 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.

Is this covered in the new pachctl list datum functionality?

Is this covered in the new pachctl list datum functionality?

Removing the needs docs label at this level. It has been added to the feature request #5624

Removing the needs docs label at this level. It has been added to the feature request #5624

Closing this PR, as it's obsolete.


doc: add doc of how to debug remote machine

Can I debug remotely?
Yes. Node Inspector must be running on the same machine, but your browser can be anywhere.
Just make sure port 8080 is accessible.
And if Node Inspector is not running on your remote machine, you can also debug it as long as >your local machine can connect it.
In this way, you must launch Node Inspector with --no-inject which means some features are not >supported such as profiling and consoling output inspection.

So how to debug remote machine with your local Node Inspector?

option 1
$ node-inspector --debug-host <IP_ADDRESS> --no-inject
then open the url
http://<IP_ADDRESS>:8080/debug?port=5858
option 2
$ node-inspector  --no-inject
then specify the remote machine address as a host parameter in the url
e.g.) http://<IP_ADDRESS>:8080/debug?host=<IP_ADDRESS>&port=5858

cc @sparkleholic

I am having trouble figuring out how to make this work. Part of my confusion is understanding what is running where (remote versus local).

Define remote to mean a system that is running the Node.js app which is to be debugged (for example, a headless IoT device that has Node.js installed and will be running the Node.js JavaScript app that we are trying to debug).

Define local to mean my laptop (i.e., workstation) on which I wish to run and view the debugger inside of my Chrome browser (so my local workstation, contains a keyboard, mouse and video screen and browser, but it is NOT running the Node.js JavaScript app that we wish to debug).

Here's what I believe I should be doing:

On the remote machine, start my app with node-debug, for example:
$ node-debug --debug-brk main.js

On the local machine, start node-inspector, for example:
$ node-inspector --debug-host <IP_ADDRESS> --no-inject
(where <IP_ADDRESS> is the IP address of the remote machine)

On the local machine, copy http://<IP_ADDRESS>:8080/?port=5858 into the Chrome browser (which is running on the local machine).

When I do that above, get some messages that imply a debug connection is almost working, but not quite. I see this sort of a message in the debug console that opens in my Chrome browser:
Error: Cannot find module '/Users/pfische1/.nvm/versions/node/v6.9.1/lib/node_modules/node-inspector/lib/InjectorServer.js'
and:
Page.getResourceContent failed. Error: ENOENT: no such file or directory, open '/home/ubuntu/node-debug-test/main.js'
In fact, both files exist (on the local machine and on the remote machine, respectively). Perhaps I've got things backwards?
Which commands need to be typed on which machine (local and remote) to make this work?

After some more probing and experiments I figured out what works for the situation I am describing above, which may be a different scenario than what you are trying to describe.
The process that works for me is much simpler than what you describe in the docs:

At the console of the remote machine (e.g. an ssh session into remote), type:

$ node-debug --debug-brk --cli --web-host <IP_ADDRESS> my-app.js

Where --debug-brk is technically not required (I like to be safe), --cli makes sure the node-debug session does not attempt to automatically open a browser on the remote device, the IP address specified by --web-host is the remote device's IP address (the one to which you have a remote ssh console) and my-app.js is the name of the app you are going to start running and debug using node-debug.
If the above is successful, you should see something like the following printed on the remote console, that indicates the node-debug session has begun:

Node Inspector v1.1.1
Visit http://<IP_ADDRESS>:8080/?port=5858 to start debugging.
Debugging my-app.js
Debugger listening on [::]:5858

Open a browser (preferably, Chrome) on your local workstation and copy the URL provided above into your browser's address bar.

If successful, you'll see an instance of remote Chrome DevTools running in the local browser and open to the first line of executable code in my-app.js. From here you can debug as normal.
NOTE: if you are using any console.log() messages they should appear in the CDT console, but they will also appear in your remote device's ssh console. This is especially of note if your app ends with some console.log() messages, those messages will appear in the ssh console but may get dropped from the remote CDT console, due to a sudden loss of the debug connection.

After some more probing and experiments I figured out what works for the situation I am describing above, which may be a different scenario than what you are trying to describe.
The process that works for me is much simpler than what you describe in the docs:

At the console of the remote machine (e.g. an ssh session into remote), type:

$ node-debug --debug-brk --cli --web-host <IP_ADDRESS> my-app.js

Where --debug-brk is technically not required (I like to be safe), --cli makes sure the node-debug session does not attempt to automatically open a browser on the remote device, the IP address specified by --web-host is the remote device's IP address (the one to which you have a remote ssh console) and my-app.js is the name of the app you are going to start running and debug using node-debug.
If the above is successful, you should see something like the following printed on the remote console, that indicates the node-debug session has begun:

Node Inspector v1.1.1
Visit http://<IP_ADDRESS>:8080/?port=5858 to start debugging.
Debugging my-app.js
Debugger listening on [::]:5858

Open a browser (preferably, Chrome) on your local workstation and copy the URL provided above into your browser's address bar.

If successful, you'll see an instance of remote Chrome DevTools running in the local browser and open to the first line of executable code in my-app.js. From here you can debug as normal.
NOTE: if you are using any console.log() messages they should appear in the CDT console, but they will also appear in your remote device's ssh console. This is especially of note if your app ends with some console.log() messages, those messages will appear in the ssh console but may get dropped from the remote CDT console, due to a sudden loss of the debug connection.

Ok, here we got two situations.

Start  app by running node-debug --debug-brk main.js on your remote machine, and then open your local browser with http://x.x.x.x.:8080/?port=5858.

Just make sure your app on the remote machine is lanuched with --debug , this doesn't require your app installing node-inspector, and then lanuch node-inspector with  --debug-host <IP_ADDRESS> --no-inject in your local machine.

So, basically you just need to start your app with node --debug, not node-debug --debug-brk main.js and  Node-inspector has nothing to do with your remote app in this case, just lanuch it on your local machine.
Hope this will help, Thanks.

Thanks for the clarification. I still cannot get anything to work using your second (ii) method, but that's fine because the first (i) method does exactly what I need. Including node-inspector and node-debug on my remote machine (the machine being debugged) is not an issue for me, so there's not much value for me in the second method.


open container for customizations during runtime

You are able to mount in your customization scripts under
/scripts/toran-proxy/local/*.sh which - if existent - will get sourced
by launch.sh during container startup.

Hi,
Thanks you for contributing :smile: !

I moved this code into a seperate script as you suggested.

Do you agree on the location where to find the customization scripts (/scripts/toran-proxy/local)? I thought local implies site local changes. What do you think?

Hum, must be /data/toran-proxy/scripts :wink:

Nice, now just rebase and squash your commits, and I'll go merge !

Here we go

Great !
Thank you for contributing :smile:


RuntimeError:you must first build vocabulary before training the model

Message:
Walk iteration:
1 / 10
2 / 10
3 / 10
4 / 10
5 / 10
6 / 10
7 / 10
8 / 10
9 / 10
10 / 10
Traceback (most recent call last):
File "src/main.py", line 104, in
main(args)
File "src/main.py", line 100, in main
learn_embeddings(walks)
File "src/main.py", line 87, in learn_embeddings
model = Word2Vec(walks, size=args.dimensions, window=args.window_size, min_count=0, sg=1, workers=args.workers, iter=args.iter)
File "C:\Anaconda2\lib\site-packages\gensim\models\word2vec.py", line 473, in init
self.train(sentences)
File "C:\Anaconda2\lib\site-packages\gensim\models\word2vec.py", line 777, in train
raise RuntimeError("you must first build vocabulary before training the model")
RuntimeError: you must first build vocabulary before training the model
Google said it is a problem with Word2Vec where min_count is to large. However, here the problem still occur although min_count=0

Problem found:
because  walks = []

How about checking your input? I had the same error but it ended when I changed the separator of my file from , to space.

@dopha-mipa  Yes that is right. I checked my input file format, and the problem occur since the default seperator setting in pandas is different from this file.
Thank you thought i solve the problem months ago. :)


Add a warning that tfds.load can not be used for own Datasets

URL(s) with the issue:
https://www.tensorflow.org/datasets/api_docs/python/tfds/load
Description of issue (what needs changing):
Add a warning that tfds.load() can not be used for the users own Datasets, i.e. that he creates himself. To a new user trying to to load a Dataset from a set of files it is not obvious that this method is only for pre-made, immutable Datasets.
Although it does say

Loads the named dataset into a tf.data.Dataset.

i initially interpreted it such that my own Dataset can be assigned a name.
I was looking for a way to split a Dataset into train and validation subsets and stumbled upon this documentation. I was redirected from https://www.tensorflow.org/datasets/splits which comes up as one of the most prominent search results when searching for "tensorflow Dataset splits" .
Result
A user who visits https://www.tensorflow.org/datasets/api_docs/python/tfds/load will not spend 1 h of trying to understand all the documentation but will immediately realize that this is only for immutable pre-made Datasets.

Hey, @PanCakeConnaisseur Tensorflow Datasets (tfds) is used to load the datasets which are present on the library. For knowing which datasets are included in this library you can
Use tfds.list_builder() . For loading your custom dataset you can use tf.data.

I have made a customized dataset by using different images available online. Can i add that dataset in the tfds directory ?
Looking forward to your replies

Thanks for the issue we can load datasets mentioned in the catalog here.
Perhaps we can add this to the function documentation. Thanks!

@ymodak Sorry for the late answer.
This is not true. tfds.load can be use to load any datasets as long as they have been imported. Otherwise TFDS has no way to know where the datasets is declared.
import tensorflow_datasets as tfds

import my_custom_dataset  # Register `MyCustomDataset`

tfds.load('my_custom_dataset')

I only see this issue now. In the future, please post the tfds issues in https://github.com/tensorflow/datasets as TFDS library is developed independently from TensorFlow.


Problems with fear

If the effect of fear is imposed on the target, then in the effects of the modifier's influence - 1 CP, but this is not observed in the left plate (and as a result, it does not participate in the battle)

Select the modifier to apply the values


RestClient::InternalServerError - 500 Internal Server Error

I m getting internal server error when i hit the same url multiple times.. it works for first couple of times and then i see the exception -
(puma stderr)
2016-05-27 17:06:45 - RestClient::InternalServerError - 500 Internal Server Error:
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/abstract_response.rb:74:in `return!'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/request.rb:495:in `process_result'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/request.rb:421:in `block in transmit'
        /home/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:853:in `start'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/request.rb:413:in `transmit'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/request.rb:176:in `execute'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient/request.rb:41:in `execute'
        /home/.rvm/gems/ruby-2.1.1/gems/rest-client-1.8.0/lib/restclient.rb:65:in `get'
        /home/myproj/lib/icinga_api.rb:32:in `get'

On the browser i see,
exception trace here ->>
# block; otherwise, it returns self.
    #
    def start  # :yield: http
      raise IOError, 'HTTP session already opened' if @started
      if block_given?
        begin
          do_start
          return yield(self)
        ensure
          do_finish
        end
      end
      do_start
      self
    end

What could be the issue here?

Looks like the issues is on application side, api  Closing the issue.


Bug: Class extending & incompatible methods

TypeScript Version:  2.1.1
Code (playground link)
interface Details {
    name: "Alex" | "Dan",
    age:number
}

class A {
    method(): Details {
        return {
            name: "Alex", // this doesn't fire any error
            age:30
        }
    }
}

class B extends A {
    method() {
        return {
            name: "Alex", // this fires an error
            age:50
        }
    }
}

Expected behavior:
No compilation errors
Actual behavior:
An error that says:

Class 'B' incorrectly extends base class 'A'.
Types of property 'method' are incompatible.
Type '() => { name: string; age: number; }' is not assignable to type '() => Details'.
Type '{ name: string; age: number; }' is not assignable to type 'Details'.
Types of property 'name' are incompatible.
Type 'string' is not assignable to type '"Alex" | "Dan"'.

But method in class B is returning an object that is compatible with the declared interface an the error doesn't show up on class A method.

Adding the Details interface as a declaration for the return type in the class B method does solve the issue.
interface Details {
    name: "Alex" | "Dan",
    age:number
}

class A {
    method(): Details {
        return {
            name: "Alex",
            age:30
        }
    }
}

class B extends A {
    method(): Details {
        return {
            name: "Alex",
            age:50
        }
    }
}

However, I don't have to add a declaration for the method() in class B since the class B is extending another class (B) where the method has a return declaration.

Duplicate of https://github.com/Microsoft/TypeScript/issues/1373
Related discussion in https://github.com/Microsoft/TypeScript/pull/6118 and https://github.com/Microsoft/TypeScript/issues/10570


Enabling cutensor in the CD pipeline

Description
@MoisesHer previously enabled to use cutensor to accelerate our einsum. However, we still need to turn it on manually https://github.com/apache/incubator-mxnet/blob/fcfef81c36a311e96735c817b26692ad3333960f/config/linux.cmake#L43. It will be great if we can enable the cutensor-acceleration by default in our pip wheel.
I think this can be a 2.0 item.
What's your opinion @szha @leezu

If we do this, the pip wheel will only work on computers with cutensor installed. We are currently not allowed to ship the cutensor inside the pip wheel under Apache License 2, though NVidia could allow this if they decide so.

If we do this, the pip wheel will only work on computers with cutensor installed. We are currently not allowed to ship the cutensor inside the pip wheel under Apache License 2, though NVidia could allow this if they decide so.

NVIDIA is OK to have cuTensor being included in the MXNet 2.0 release.  And MXNet 2.0 meet all requirements on the license agreement.

Ping @szha and @leezu  on this item. It will be wonderful if we can have einsum enabled by default so we can have very nice performance boost.

@TristonC do you mean NVidia would like to send a letter to ASF to allow ASF to relicense cuTensor under AL2 if shipped together with MXNet? I'm not clear what you mean with "NVIDIA is OK to have cuTensor being included in the MXNet 2.0 release".
If not, we should ask ASF Legal team if it's fine to compile with cuTensor but not include cuTensor shared library in the pip wheel. In this case, the pip wheel will only work on computers with cutensor installed.
Is cuTensor installed by default for any cuda 11.x user?

@leezu I don't think there will be another email being sent to ASF to relincese cuTensor.   In case of
If not, we should ask ASF Legal team if it's fine to compile with cuTensor but not include cuTensor shared library in the pip wheel. In this case, the pip wheel will only work on computers with cutensor installed.

We will need to work on cuTensor installation script to work with MXNet. We are glad to help on that.

We will need to work on cuTensor installation script to work with MXNet. We are glad to help on that.

Thank you for clarifying! Sounds good


Run sriov tests in CI

What this PR does / why we need it:
This PR enable the Prow CI to run jobs for testing sriov devices.
The setup script runs a kind (https://github.com/kubernetes-sigs/kind) cluster where it performs the tests.
The script expects the physical (and virtual) functions to be in the pods namespaces, and then moves them inside the node of the cluster.
Release note:
NONE

/hold

/test pull-kubevirt-e2e-k8s-1.13.0-sriov

@fedepaol have you considered installing Multus using addons operator https://github.com/kubevirt/cluster-network-addons-operator and SR-IOV using sriov-network-operator https://github.com/openshift/sriov-network-operator (that would install DP, CNI and configure VFs AFAIK).

@fedepaol have you considered installing Multus using addons operator https://github.com/kubevirt/cluster-network-addons-operator and SR-IOV using sriov-network-operator https://github.com/openshift/sriov-network-operator (that would install DP, CNI and configure VFs AFAIK).

As discussed over slack, I'd prefer to keep (at least the sriov operator) for a separate PR.

/hold cancel

This won't work as planned:
The cluster-up directory is coming from https://github.com/kubevirt/kubevirtci and replaced on every make generate, so your changes will be lost. You need to add the k8s 1.14 kind cluster over there, ideally in a way that the cluster works the same way as all other clusters with make cluster-up. Also network configuration should be done there as far as possible imho. Maybe you can use the existing test.sh script then, have a look at how genie and multus tests are handled there.

As per the cluster-up thing, we are using things in KUBEVIRT_PROVIDER=external mode, which means that we rely to some other mechanism to bring up the cluster (in this case kind).
In fact, given the external mode we are invoking only
make cluster-build
make cluster-deploy

I am not sure it should be this should be part of cluster-up (but I could be wrong). Adding it there would mean to have a kind mode under cluster-up which would feel a bit alien compared to the other "providers" and will always need to be treated as a special case.
In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup  / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

Small nit, if you still need your own test script: the check-patch.k8s-1.14.2-kind-sriov.sh filename pattern suggests that it is being called by STDCI, which is not used anymore. I'd prefer a different filename.

Will change it

Since I'm not familiar with the network topic itself, I can't say anything about the actual content of all this configurations wink

This won't work as planned:
The cluster-up directory is coming from https://github.com/kubevirt/kubevirtci and replaced on every make generate, so your changes will be lost. You need to add the k8s 1.14 kind cluster over there, ideally in a way that the cluster works the same way as all other clusters with make cluster-up. Also network configuration should be done there as far as possible imho. Maybe you can use the existing test.sh script then, have a look at how genie and multus tests are handled there.

As per the cluster-up thing, we are using things in KUBEVIRT_PROVIDER=external mode, which means that we rely to some other mechanism to bring up the cluster (in this case kind).
In fact, given the external mode we are invoking only
make cluster-build
make cluster-deploy

I am not sure it should be this should be part of cluster-up (but I could be wrong). Adding it there would mean to have a kind mode under cluster-up which would feel a bit alien compared to the other "providers" and will always need to be treated as a special case.

Mh, yes, it would be different than the other providers, but it does not need to be treated different imho. You just need to implement up() and down() in provider.sh, and instead of calling gocli you call kind for starting / stopping the cluster and SRIOV setup. Just like you do now in the test script. Does that make sense? Or do I miss something?

In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

If you make this a new provider, you can configure kubectl.sh to whatever it needs to be :)

Small nit, if you still need your own test script: the check-patch.k8s-1.14.2-kind-sriov.sh filename pattern suggests that it is being called by STDCI, which is not used anymore. I'd prefer a different filename.

Will change it

Since I'm not familiar with the network topic itself, I can't say anything about the actual content of all this configurations wink

Something different: are we actually ok with running kind in CI, no matter if being called in the script or as a new provider? There is a reason that we use pre-provisioned clusters, e.g. (almost) no need for downloading anything during tests. @rmohr wdyt?

This won't work as planned:
The cluster-up directory is coming from https://github.com/kubevirt/kubevirtci and replaced on every make generate, so your changes will be lost. You need to add the k8s 1.14 kind cluster over there, ideally in a way that the cluster works the same way as all other clusters with make cluster-up. Also network configuration should be done there as far as possible imho. Maybe you can use the existing test.sh script then, have a look at how genie and multus tests are handled there.

As per the cluster-up thing, we are using things in KUBEVIRT_PROVIDER=external mode, which means that we rely to some other mechanism to bring up the cluster (in this case kind).
In fact, given the external mode we are invoking only
make cluster-build
make cluster-deploy

I am not sure it should be this should be part of cluster-up (but I could be wrong). Adding it there would mean to have a kind mode under cluster-up which would feel a bit alien compared to the other "providers" and will always need to be treated as a special case.

Mh, yes, it would be different than the other providers, but it does not need to be treated different imho. You just need to implement up() and down() in provider.sh, and instead of calling gocli you call kind for starting / stopping the cluster and SRIOV setup. Just like you do now in the test script. Does that make sense? Or do I miss something?

Makes sense

In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

If you make this a new provider, you can configure kubectl.sh to whatever it needs to be :)

Ok, but again, would make it sense to do it in two steps (local first, as part of kubevirt ci later)? I already started splitting the pieces and almost everything is in place. The only part I am not sure is where the current script enables sriov feature gate and restarts kubevirt pods, which needs to happen after cluster deploy. Also, currently I delete disks-images-provider right after cluster deploy, which I am not sure how would  fit in CI

Small nit, if you still need your own test script: the check-patch.k8s-1.14.2-kind-sriov.sh filename pattern suggests that it is being called by STDCI, which is not used anymore. I'd prefer a different filename.

Will change it

Since I'm not familiar with the network topic itself, I can't say anything about the actual content of all this configurations wink

Something different: are we actually ok with running kind in CI, no matter if being called in the script or as a new provider? There is a reason that we use pre-provisioned clusters, e.g. (almost) no need for downloading anything during tests. @rmohr wdyt?

As per this, if I understood correctly kind needs only two things to work: the kind binary itself which makes all the magic plus the node container image. If this is reason for concern, we could make our own copies.

In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

If you make this a new provider, you can configure kubectl.sh to whatever it needs to be :)

Ok, but again, would make it sense to do it in two steps (local first, as part of kubevirt ci later)? I already started splitting the pieces and almost everything is in place.

I'd prefer to move right now (if we agree it is doable), but I wouldn't block on it :slightly_smiling_face:

The only part I am not sure is where the current script enables sriov feature gate and restarts kubevirt pods, which needs to happen after cluster deploy. Also, currently I delete disks-images-provider right after cluster deploy, which I am not sure how would fit in CI

you can do both in hack/cluster-deploy.sh, after the testing manifests were deployed (line 40). No need to restart KubeVirt then, because you modify the config before it is deployed.

In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

If you make this a new provider, you can configure kubectl.sh to whatever it needs to be :)

Ok, but again, would make it sense to do it in two steps (local first, as part of kubevirt ci later)? I already started splitting the pieces and almost everything is in place.

I'd prefer to move right now (if we agree it is doable), but I wouldn't block on it slightly_smiling_face

Ok, I currently pushed here an intermediate version that isolates the "cluster up" part from setting up all the sriov part. Will hold this and see how it melts into CI

The only part I am not sure is where the current script enables sriov feature gate and restarts kubevirt pods, which needs to happen after cluster deploy. Also, currently I delete disks-images-provider right after cluster deploy, which I am not sure how would fit in CI

you can do both in hack/cluster-deploy.sh, after the testing manifests were deployed (line 40). No need to restart KubeVirt then, because you modify the config before it is deployed.

Ok thanks. That would mean polluting it with provider specific ifs right? (Also, I think on the long distance the sriov feature gate will be enabled by default so it would only be a matter of deleting disks-images-provider)

In case we want to go that way it would take a bit, so would it make sense to have a local cluster setup / configuration (separate from kubevirt configuration / test launch, possibly melt in tests.sh) and considering moving it there afterwards? As part of this, under cluster-up/k8s-1.14.2-kind-sriov I currently have only manifests file that could be moved in the same place.
Re test.sh, I considered using it but I thought it was reallly cluster-up specific (for example it uses kubectl.sh while here bare kubectl works since we are dealing with a local cluster), but can try again to blend my stuff into it.

If you make this a new provider, you can configure kubectl.sh to whatever it needs to be :)

Ok, but again, would make it sense to do it in two steps (local first, as part of kubevirt ci later)? I already started splitting the pieces and almost everything is in place.

I'd prefer to move right now (if we agree it is doable), but I wouldn't block on it slightly_smiling_face

Ok, I currently pushed here an intermediate version that isolates the "cluster up" part from setting up all the sriov part. Will hold this and see how it melts into CI

The only part I am not sure is where the current script enables sriov feature gate and restarts kubevirt pods, which needs to happen after cluster deploy. Also, currently I delete disks-images-provider right after cluster deploy, which I am not sure how would fit in CI

you can do both in hack/cluster-deploy.sh, after the testing manifests were deployed (line 40). No need to restart KubeVirt then, because you modify the config before it is deployed.

Ok thanks. That would mean polluting it with provider specific ifs right?

yes, but we already do for the openshift scc config

(Also, I think on the long distance the sriov feature gate will be enabled by default so it would only be a matter of deleting disks-images-provider)

:+1:

Ok, let's see if with this intermediate step I'll be able to integrate this with CI in a reasonable amount of time, otherwise I'll consider splitting it up and allocate some more time on moving it.

/hold trying to run the tests, will move kind to CI and clean up if it works

/hold

Opened https://github.com/kubevirt/kubevirtci/pull/119, if it gets in I'll change this mess or consider opening a new PR since now this repo needs a handful of modifications.

Once https://github.com/kubevirt/kubevirtci/pull/119 gets eventually in, this will reduce to just a little lines here and there. Would it make sense to open a brand new PR, and leave this closed so that we can still see the history and the reasoning behind this?

Would it make sense to open a brand new PR

sounds good to me, but whatever you prefer

Hey, 2 questions, and some comments inline:
* do we still need `automation/kind-cluster`? I guess it can be deleted now.

* how did you update the `cluster-up` dir? The way to do it is to update the git commit sha of kubevirtci in `hack/config_default.sh` and run `make generate`

Sorry I wasn't clear. I was pushing here to test the whole thing before sending the real pr (and actally, I found an issue I opened https://github.com/kubevirt/kubevirtci/pull/122 for ).
I am about to open a new pr which will contains only the changes needed on kubevirt so the commit history is cleaner and smaller without all the kind related changes. Will also take into account all your suggestions about KUBEVIRT_PROVIDER, thanks.

ah, just saw the new PR :+1:
Can we close this?

ah, just saw the new PR +1
Can we close this?

Sure!


Disable prompt if username was picked in Join/Host screens

Contains
Fix of issue #2912
I prefer to change greeting phrase for first visit of Join/Host screens.
From: Would you like to use a non-default username?
To: Would you like to change default username?
Because as I see it's a wrong question to ask. I'd like to propose ask user to change default nickname. Because before we had "Cancel" button which in this case means - I don't want to use default username, but it doesn't save user choose, it just skips it. And "Yes" button means - I want to use another one, but you can do not change it, etc. In my proposal we won't have this misunderstandings.
Also I've commented wrong translation at present for few languages which I don't know. And hope we will make right translation for them soon.
And add simple validation for usernames - I guess we shouldn't accept usernames from white spaces and longer then 100 chars at least.
How to test
Remove config.cfg file, or change value of "hasEnteredUsername" field to false. And open Join/Host Game menu, and Settings as well.

Can one of the admins please verify this patch?

Thanks! Checking this out :-)
@GooeyHub: add to whitelist

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hi @Cervator, I created new issue to track this problem with translation. And tried to mark word as "fuzzy" as you mentioned above, but unsure, does that Weblate actual? Because I can't find all languages which we support.

Thanks :-)
Oddly after we added a bunch of new languages during Google Code-In, they didn't all seem to register for Weblate :(
It feels like it is stuck trying to rescan for languages or a cache needs to be cleared, or something. I haven't had time to dig into it.
In the meantime the issue should be good for keeping track, I appreciate it!
On a side note I just realized it would be unusually difficult to encounter the new string in a non-English language - since you pick the language on the same settings screen as the player name, meaning just changing the language "counts" :-)
That may change though so I'm not worried about that right now. And maybe you could pick the language via the game launcher one day.


Usage example

Hi! Thank you for an awesome repo. But I didn't get how to practically use these containers.
For example, lspcontainers/typescript-language-server immediately closes after run. How to interact with it?

Hi.
This repository has a companion repository lspcontainers/lspcontainers.nvim. You can find examples with packer and plug over there.


feat: add a dry run flag

Description

Motivation and Context

How has this been tested? How can a reviewer test these changes?

Have your performed the following tests?
Please confirm you have done the following tests to ensure your pull request is ready to be merged..

[ ] If this change modifies the deployment flow have triggered a deployment using this branch (i.e. build/dist/darwin_amd64/armory deploy start -f <path to file>)?
[ ] If this change modifes the login flow have you tried logging in and out with this branch (i.e. build/dist/darwin_amd64/armory login) and verified the credentials work?
[ ] Have you verified the specific change made in this PR?

@tunderwood can I close this? Or would you like to get these changes in still? 🤔


audio forwarding

I've just compiled a version from the branch audio.  Unfortunately, I could not find any information about what conditions must all be met.
./run x -a -m 800
x/server/scrcpy-server.jar: 1 file pushed. 0.4 MB/s (18826 bytes in 0.048s)
ERROR: Cannot find USB device having serial turrican:5555
ERROR: AOA audio forwarding failed

If audio forwarding uses ADB why isn't ADB over Ethernet supported?

Audio forwarding does not use adb, but AOA over USB (adb is still required for scrcpy).

Well, for Samsung and rooted devices , there is another way to record audio.

https://blog.rom1v.com/2020/06/audio-forwarding-on-android-10/
https://github.com/rom1v/sndcpy


Password issue: Socket Error: ('The read operation timed out',)

I'm having immense trouble trying to extract the BLID and password from my Roomba. I've run this from 2 different machines running bash for windows. I've removed the app from my phone completely, rebooted the robot, and I still can't get it to work. This is the output I receive each time.
Received: {
"robotname": "Roomba",
"sku": "R675020",
"nc": 0,
"ver": "3",
"proto": "mqtt",
"ip": "<IP_ADDRESS>",
"hostname": "Roomba-3192C21860517830",
"sw": "3.3.47",
"mac": "DC:F5:05:25:DE:96",
"cap": {
"eco": 1,
"ota": 1,
"svcConf": 1
}
}
Roomba (Roomba) IP address is: <IP_ADDRESS>
Socket Error: ('The read operation timed out',)
Error getting password, receive 2 bytes. Follow the instructions and try again.
FYI, this is a Roomba 690.

The last version of Roomba firmware 3.0.11 changed the way the encryption works (slightly). This was patched and uploaded a couple of weeks ago.
You need to post your full output, including all version numbers, so that I can tell what you are running. You need to be running V1.2.5 of roombapassword for it to work.

Thanks for the quick response Nick, here's my full output trying the entire script:
jacomil@NUC:~/Roomba980-Python$ python roomba -R <IP_ADDRESS>
CV or numpy module not found, falling back to PIL
PIL module not found, maps are disabled
CV or numpy module not found, falling back to PIL
PIL module not found, maps are disabled
[I 2019-10-28 11:08:53,088] *******************
[I 2019-10-28 11:08:53,088] * Program Started *
[I 2019-10-28 11:08:53,089] *******************
[I 2019-10-28 11:08:53,090] Roomba.py Version: 1.2.5
[I 2019-10-28 11:08:53,090] Python Version: 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
[I 2019-10-28 11:08:53,090] Paho MQTT Version: 1.4.0
[I 2019-10-28 11:08:53,091]  to Exit
[I 2019-10-28 11:08:53,091] Roomba 980 MQTT data Interface
[I 2019-10-28 11:08:53,092] reading info from config file ./config.ini
[W 2019-10-28 11:08:53,093] No roomba or config file defined, I will attempt to discover Roombas, please put the Roomba on the dock and follow the instructions:
[I 2019-10-28 11:08:53,093] Using Password version 1.2.5
waiting on port: 5678 for data
found 1 Roomba(s)
Make sure your robot (Roomba) at IP <IP_ADDRESS> is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Press Enter to continue...
Received: {
"robotname": "Roomba",
"sku": "R675020",
"nc": 0,
"ver": "3",
"proto": "mqtt",
"ip": "<IP_ADDRESS>",
"hostname": "Roomba-3192C21860517830",
"sw": "3.3.47",
"mac": "DC:F5:05:25:DE:96",
"cap": {
"eco": 1,
"ota": 1,
"svcConf": 1
}
}
Roomba (Roomba) IP address is: <IP_ADDRESS>
Socket Error: ('The read operation timed out',)
Error getting password, receive 2 bytes. Follow the instructions and try again.
[I 2019-10-28 11:09:26,371] reading info from config file ./config.ini
[E 2019-10-28 11:09:26,372] No Roombas found! You must specify RoombaIP, blid and roombaPassword to run this program, or have a config file, use -h to show options.

For what it's worth, I do notice that once I hit the enter key, the green wifi light changes to white immediately after getting the above data and the console sits at "Roomba (Roomba) IP address is: <IP_ADDRESS>" for about 10 seconds before presenting the error.


API Key Resource - Update the error message for expiresAt

This follow this discussion (monologue?): https://github.com/meilisearch/meilisearch/issues/2172

Also I noticed none of the errors related to the API keys use the backquote when talking about the field the caused an error, I think we should patch that too, I can do it in this PR if you’re ok with the change.
For example:
indexes field value `:value` is invalid. It should be an array of string representing index names.

Would become:
`indexes` field value `:value` is invalid. It should be an array of string representing index names.

I was misguided by the format and thought we were supporting ISO 8601, but we are actually dealing with RFC 3339 (that format is sharing notation we use with the ISO 8601 format).
We still express a task duration with the ISO-8601 period part.


Helm: cilium-envoy metrics endpoint not included in cilium-agent ServiceMonitor

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Let's imagine somebody wants to run the Cilium built-in Envoy proxy, is trying to expose the envoy metrics endpoint (envoy_*) and lets Prometheus scrape it. Unfortunately, that's currently not supported with our Helm chart. I doubt that's intentional. It actually looks more like a bug to me.
While the cilium-agent DS gets the regarding envoy-metrics port:
https://github.com/cilium/cilium/blob/main/install/kubernetes/cilium/templates/cilium-agent/daemonset.yaml#L245-L250
... and the cilium-agent Services exposes the envoy-metrics targetPort in case .Values.prometheus.serviceMonitor.enabled is set:
https://github.com/cilium/cilium/blob/v1.13.7/install/kubernetes/cilium/templates/cilium-agent/service.yaml#L22-L25
... it's not used in the cilium-agent ServiceMonitor:
https://github.com/cilium/cilium/blob/main/install/kubernetes/cilium/templates/cilium-agent/servicemonitor.yaml#L30-L43
Hence, if somebody wants to scrape those metrics, they need to manually create a dedicated ServiceMonitor resource to scrape 9964/TCP from the Cilium agent pods.
Honestly, I'm not 100% sure if we should even support this and if so, how. The main issue is that Envoy will only start if required (i.e. there is l7 policy/ingress/gateway/CEC enabled, etc.), so even if the Envoy metrics port is enabled, it might not be open at the installation time. This would then result in Prometheus seeing this target as unavailable.
Originally, I thought about an explicit flag to enforce the inclusion of the envoy-metrics port in the cilium-agent ServiceMonitor, but then I found this commit co-authored by @mhofstetter and @jrajahalme.
Currently, I see 4 possible solutions:

Introduce new Helm flags in the Cilium Agent "monitoring" section .Values.prometheus.*. E.g. .Values.prometheus.envoy.enabled=false, .Values.prometheus.envoy.port=9964 and  .Values.prometheus.serviceMonitor.envoyMetrics=false (=.* = default values).
Leverage the existing .Values.proxy.prometheus section, which is, according to @sayboras, anyway handling Cilium Envoy stuff and not Istio proxy things like stated in the comment (# -- Configure Istio proxy options.). This would then also need a .Values.proxy.prometheus.serviceMonitor subsection like we have for the agent. However, this potential solution conflicts with the deprecation intention of the linked commit from above.
We could adjust the cilium-agent ServiceMonitor logic to also include stuff from the .Values.envoy.prometheus section, even though we don't run the standalone Envoy DS (.Values.envoy.enabled=false). This may cause confusion.
We don't do anything as we intend to go with the standalone Cilium Envoy DS in the future anyway. Until then, users simply need to continue to create their own envoy-metrics ServiceMonitor in case they want to scrape from the Cilium built-in Envoy metrics endpoint.

Cilium Version
All of them
Kernel Version
Doesn't matter
Kubernetes Version
Doesn't matter
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

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

After talking amongst the team, we're trying to move all config eventually into .envoy.prometheus and children, even though .envoy.enabled=false in this case.
I'm opening a PR now to cover this option.


⚖ Register Validator: Jailles

Network Choice
nemeton-1
Who are you?
I am Jailles
gentx
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Jailles","identity":"","website":"","security_contact":"jailles444@gmail.com","details":""},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"okp4183w2vpwkuvl36qd3qf2rxuup6n547g7wly02wd","validator_address":"okp4valoper183w2vpwkuvl36qd3qf2rxuup6n547g7w2rlrsv","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"7hE7cwjUEqYcSB2APYnQncjzvoChNSB5ur4/KIhdODs="},"value":{"denom":"uknow","amount":"10000000000"}}],"memo":"67de219804666cb01127932861ee4fb0075f7bea@<IP_ADDRESS>:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AgJGgAr7SDSbmrAZKxU1FNqz9GygGpdKzC+z1GgZs/Zp"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["h18Qk1ptS3ZxcCdgZbHfuxo5zgldz7AWW+EuXafdUaQvb+KvFaxt84nrAVUB4Kcol2kDWazfPCNyfM5mqFVRvg=="]}

😉 Here is the corresponding PR: https://github.com/okp4/networks/pull/503

😉 Here is the corresponding PR: #503

Thank you


Fixing typo in eval node code

Required for all non-trivial PRs

[ ] Rebased/mergable
[ ] Tests pass
[ ] CHANGELOG.md updated
[ ] Sign CLA (if not already signed)

Required only if applicable
You can erase any checkboxes below this note if they are not applicable to your Pull Request.

[ ] TICKscript Spec updated

Thanks!


Kata Containers 1.12.0-alpha1

oci: Fix running of OCI hooks
namespaces: Allow container with agent PID namespace
device: Ease device access for rootfs device to allow node creation
actions: Add action to perform checks for pull requests

02d2f97 oci: Fix running of OCI hooks
96d8dd3 actions: Add action to perform checks for pull requests
5dc7ae4 device: Ease device access for rootfs device to allow node creation
abb006c RFC: namespaces: Allow container with agent PID namespace

/test