Bluetooth: controller: Workaround for Unknown Rsp during Encryption S…

…etup
Some old peer central controllers respond with Unknown
Response PDU to our local Slave Initiated Feature Request
after the peer initiated the Encryption Setup Procedure.
The peer has voilated the Bluetooth Specification by sending
the Unknown Response during the Encryption Setup Procedure,
but as a workaround to IOP with such controller our local
implementation is updated to not disconnect the connection
but accept the voilating Unknown Response PDU.
Fixes #12362.
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

@Olivier-ProGlove FYI

@Olivier-ProGlove please test this PR and confirm that it solves the issue.

I confirmed applying this PR in our old Zephyr repository (v1.13.0 based) seems to fix the HID reconnection issue on Windows 10 Surface tablet. I also confirmed @carlescufi suggestion CONFIG_BT_CTLR_SLAVE_FEAT_REQ=n fix my  issue.
I will do a HCI dump of the HID reconnection this afternoon with the latest samples/bluetooth/peripheral_hids/ and share with you to confirm it does the expected behaviour.
cc: @joerchan

@Olivier-ProGlove Thank you.

@Olivier-ProGlove thanks for verifying. Given all the input you have given us I believe it's safe to conclude that this is indeed the issue. Note that the problem is on the other controller, not on Zephyr, but it makes sense to include this fix to avoid any other interoperability problems in the future.

CC @pdunaj @jhn-nordic

Codecov Report

Merging #13983 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master   #13983      +/-   ##
==========================================
- Coverage   52.24%   52.24%   -0.01%
==========================================
  Files         307      307
  Lines       45444    45446       +2
  Branches    10511    10513       +2
==========================================
  Hits        23741    23741
  Misses      16911    16911
- Partials     4792     4794       +2

Impacted Files
Coverage Δ

subsys/bluetooth/controller/ll_sw/ctrl.c
54.45% <0%> (-0.02%)
:arrow_down:

subsys/bluetooth/controller/ll_sw/ull_conn.c
48.99% <0%> (-0.03%)
:arrow_down:

Continue to review full report at Codecov.

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

@carlescufi @cvinayak  @jhedberg @joerchan @FrankGorgenyi While this PR seems to have fix Zephyr v1.13 (or at least during my quick testing) it does not seem to fix the head of Zephyr. See my traces: https://github.com/zephyrproject-rtos/zephyr/issues/12362#issuecomment-468704354


Error Log: Unhandable information found in DoReadDevices : "childLockEnabled" with value : false

Hey, iam permanently getting this warning:
(23327) Send this info to developer !!! { Unhandable information found in DoReadDevices : "childLockEnabled" with value : false
i've got adapter verion 0.2.6 (newest)
Thanks! :)

Hi! Please check and maybe reinstall your adapter installation because the attribute is definitely covered in this version.
https://github.com/DrozmotiX/ioBroker.tado/blob/43fe97c1b0d70717f89f70e48ae6f3c0f4a90105/lib/state_attr.js#L406-L410
I do not believe it is an adapter issue but maybe an installation issue.
Thanks!

Hey!
The problem is fixed in 0.2.6 but iobroker didnt want to update.
I triggered it manually with the github url and now its working!
sudo iobroker url "https://github.com/HGlab01/ioBroker.tado"
It didnt work without sudo. (strange... )
Thanks!


plotRDA, plot loadings

In OMA, there is an example on how to plot loadings of features in  dbRDA. We could consider to generalize this to plotting function if that is a common way to analyze which features drive the difference

I would like to provide some examples on how to plot these feature loadings after talking with @antagomir about this.
There would be 2 ways of plotting :

With tree, this option means that the tree need to be agglomerated to the same features as the loadings matrix we get after performing the reduction method (this is now possible for LDA & NMF methods as agglomerateByPrevalence has been fixed to be possible to agglomerate tree). Here are quick examples for each of these reduction methods :

PCA

library(mia)
library(ggtree)
library(scater)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- logNormCounts(tse)
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", ncomponents = 2)
# Get the feature loadings
loadings_matrix <- attr(reducedDim(tse, "PCA"), "rotation")
phylo <- rowTree(tse)
circ <- ggtree(phylo, layout = "circular")
df <- rowData(tse)
color <- randomcoloR::distinctColorPalette(
  length(
    unique(
      df$Phylum
    )
  )
)
df <- data.frame(Class = df$Phylum)
rownames(df) <- phylo$tip.label

df2 <- data.frame(abs(loadings_matrix))
rownames(df2) <- phylo$tip.label

# Plot the tree with first inner circle (Classes)
p <- gheatmap(
  p = circ,
  data = df,
  offset = -.1,
  width = .1,
  colnames_angle = 95,
  colnames_offset_y = .5,
  font.size = 4,
  color = "black") +
  ggplot2::scale_fill_manual(
    values = color,
    name = "Class"
  )
# Plot the feature loadings in different circles
for(i in 1:2){
  if(i == 1){
    p <- p +
      ggnewscale::new_scale_fill()
  }
  df3 <- dplyr::select(
    df2, (all_of(i))
  )

  p <- gheatmap(
    p,
    df3,
    offset = i*.065,
    width = .1,
    colnames_angle = 90,
    font.size = 4,
    high = "darkslateblue",
    low = "gray98",
    color = "black",
    legend_title = expression(beta[k]))
}

p

NMF

library(NMF)
library(mia)
library(ggtree)
data(GlobalPatterns)
tse <- GlobalPatterns
tse <- transformAssay(tse, method = "relabundance")
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Perform the NMF reduction method
x <- t(assay(tse, "counts"))
nmf2 <- nmf(x, 2)
H <- nmf2@fit@H
W <- nmf2@fit@W
# Get the feature loadings
feature_loadings <- t(H)
phylo <- rowTree(tse)
circ <- ggtree(phylo, layout = "circular")
df <- rowData(tse)
color <- randomcoloR::distinctColorPalette(
  length(
    unique(
      df$Phylum
    )
  )
)
df <- data.frame(Class = df$Phylum)
rownames(df) <- phylo$tip.label

df2 <- data.frame(feature_loadings)
rownames(df2) <- phylo$tip.label
# Plot the tree and the first inner circle (Classes)
p <- gheatmap(
  p = circ,
  data = df,
  offset = -.1,
  width = .1,
  colnames_angle = 95,
  colnames_offset_y = .5,
  font.size = 4,
  color = "black") +
  ggplot2::scale_fill_manual(
    values = color,
    name = "Class"
  )
# Plot the feature loadings in different circles
for(i in 1:2){
  if(i == 1){
    p <- p +
      ggnewscale::new_scale_fill()
  }
  df3 <- dplyr::select(
    df2, (all_of(i))
  )
  p <- gheatmap(
    p,
    df3,
    offset = i*.065,
    width = .1,
    colnames_angle = 90,
    font.size = 4,
    high = "darkslateblue",
    low = "gray98",
    color = "black",
    legend_title = expression(beta[k]))
}
p

LDA

library(mia)
library(topicmodels)
library(ggtree)

data(GlobalPatterns)
tse <- GlobalPatterns

tse <- transformAssay(tse, method = "relabundance")
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank = "Class", update.tree = TRUE, prevalence = 0.99)
# Perform LDA reduction method
lda_model <- LDA(t(assay(tse, "counts")), k = 2)

df <- as.data.frame(t(assay(tse, "counts")))

posteriors <- topicmodels::posterior(lda_model, df)
# Get the feature loadings
feature_loadings <- t(as.data.frame(posteriors$terms))

phylo <- rowTree(tse)
circ <- ggtree(phylo, layout = "circular")
df <- rowData(tse)
color <- randomcoloR::distinctColorPalette(
  length(
    unique(
      df$Phylum
    )
  )
)
df <- data.frame(Class = df$Phylum)
rownames(df) <- phylo$tip.label

df2 <- data.frame(feature_loadings)
rownames(df2) <- phylo$tip.label
# Plot the tree and first inner circles (Classes)
p <- gheatmap(
  p = circ,
  data = df,
  offset = -.1,
  width = .1,
  colnames_angle = 95,
  colnames_offset_y = .5,
  font.size = 4,
  color = "black") +
  ggplot2::scale_fill_manual(
    values = color,
    name = "Class"
  )
# Plot the feature loadings in different circles
for(i in 1:2){
  if(i == 1){
    p <- p +
      ggnewscale::new_scale_fill()
  }
  df3 <- dplyr::select(
    df2, (all_of(i))
  )
  p <- gheatmap(
    p,
    df3,
    offset = i*.065,
    width = .1,
    colnames_angle = 90,
    font.size = 4,
    high = "darkslateblue",
    low = "gray98",
    color = "black",
    legend_title = expression(beta[k]))
}
p

This is the exact same process for every reduction method, the only thing that changes is how the loadings matrix is retrieved and stored which is why wrappers discussed in microbiome/mia#596 could be helpful.  As also discussed it might be possible to recognize the type of reduction method so that the user do not have to specify method when calling function.
Note that we agglomerate with a high prevalence in order to have only few features so that it can be understandable (and that the legend does not get out of the screen).

Without tree, I have made an example for PCA, there are still things that can be changed (e.g. adding coefficients inside circles?, should we consider only absolute values?)

library(mia)
library(ggtree)
library(scater)
library(ggcorrplot)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- logNormCounts(tse)
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", ncomponents = 2)
# Get the feature loadings
loadings_matrix <- attr(reducedDim(tse, "PCA"), "rotation")
phylo <- rowTree(tse)
circ <- ggtree(phylo, layout = "circular")
df <- rowData(tse)
df <- data.frame(Class = df$Phylum)
rownames(df) <- phylo$tip.label
df2 <- data.frame(loadings_matrix, phylo$tip.label)

Plot feature loadings
ggcorrplot(abs(loadings_matrix),
           type = "lower",
           method="circle",
           title="Feature loadings",
           ggtheme=theme_bw) +
  scale_fill_gradient2(breaks=c(0, 1), limit=c(0, 1))

Thanks @ElySeraidarian
Could we formulate a miaViz-style function for one of these, so that the plotting can be done on a single line of code, given that the user provides a TreeSE object that has a) feature loading matrix (in some position that we can change later, i.e. in rowData or in metadata or in attr) and b) (optionally) a rowTree.
In the first round at least we can assume that the user has themselves done the necessary agglomerations etc. There are so many considerations on those things that we cannot automated all possible scenarios on the data sizes anyway.

Looks very nice and interesting. However, I am wondering if that is the most usual way to plot loadings ( I don't know). At least for eigenvalues the most usual way might be scree plot (bar plot). We could have function to plot both loadings and eigenvalues perhaps since both are needed to describe the ordination results fully.
library(mia)
library(ggplot2)
library(patchwork)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- transformAssay(tse, method = "clr", pseudocount = 1)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", assay.type = "clr")
# Get the feature loadings
df <- attr(reducedDim(tse, "PCA"), "rotation") |> as.data.frame()
# Add taxonomy labels to column
df[["feature"]] <- getTaxonomyLabels(tse)[ match(rownames(df), rownames(tse)) ]
# Get top 50 loadings
df <- df[ order(abs(df[["PC1"]]), decreasing = TRUE)[1:50], ]
# Order loadings and add factor to keep the order
df <- df[ order(df[["PC1"]]), ]
df[["feature"]] <- factor(df[["feature"]], levels = df[["feature"]])

# Loadings plot
p1 <- ggplot(df, aes(x = .data[["PC1"]], .data[["feature"]])) +
    geom_bar(stat="identity")

eig <- attr(reducedDim(tse, "PCA"), "varExplained")
eig <- eig / sum(eig)
df <- data.frame(eig_vals = eig)
# Get percentage of explained
df[["PC"]] <- paste0("PC", seq_len(nrow(df)))
df[["PC"]] <- factor(df[["PC"]], levels = df[["PC"]])
# Scree plot
p2 <- ggplot(df, aes(x = .data[["PC"]], .data[["eig_vals"]])) +
    geom_bar(stat="identity")

p1 + p2

Only some ordination methods provide eigenvalues (e.g. PCA, MDS) and I think only in PCA (out of the commonly used ordinations) the eigenvalues have an actual clear + commonly used interpretation. Thus a general function for this might not be feasible.
It would be interesting to experiment with different ways to visualize loading matrices. The barplot/screeplot is indeed very common.
However, heatmap (options 2) seems to me like a good alternative. In there, one should show also the sign of the loading (e.g. with different colors for negative and positive values); also do not use two different indicators (like size and color) to denote the same thing. If you could use native ggplot2 instead of ggcorrplot that could be useful (reducing package dependencies is in general good). I would swap the figure for better readability of species names.
The tree + heatmap is very nice since usually the loadings do not show the tree but this can be useful. The idea has been borrowed from Susan Holmes' phyloseq work.

Thanks for your returns, indeed it will be possible to create a call for a one line function that will do the plotting.
We can add different options to visualize loadings so that the user will find the best for himself.
I have not been able to plot the exact same plot using ggplot2 but here is an example I have build based on your returns
library(mia)
library(ggtree)
library(scater)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- logNormCounts(tse)
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", ncomponents = 2)
# Get the feature loadings
loadings_matrix <- attr(reducedDim(tse, "PCA"), "rotation")
df <- attr(reducedDim(tse, "PCA"), "rotation") |> as.data.frame()
df[["Feature"]] <- getTaxonomyLabels(tse)[ match(rownames(df), rownames(tse)) ]
colours = c("red","white", "blue")

dfgroup <- data.frame(PC = c(df$PC1,df$PC2), Feature = c(df$Feature, df$Feature), group = c(rep("PC1",length(df$PC1)), rep("PC2", length(df$PC2))))

# Plot feature loadings
ggplot(dfgroup, aes(x = .data[["PC"]], y = .data[["Feature"]], group = as.factor(group), col = as.factor(group)))  +
  geom_point(size=6) +
  labs(title="Feature Loadings Plot") +
  scale_colour_manual(name = "Principal Components",
   values = c("red","blue")) +
  xlim(-1, 1)

It is a bit different as the loadings value differs from y-axis and there is no colour change for positive/negative values.
So here is also the improved version using ggcorrplot in case we want to use it
library(ggcorrplot)
library(mia)
library(ggtree)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- logNormCounts(tse)
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", ncomponents = 2)
# Get the feature loadings
loadings_matrix <- attr(reducedDim(tse, "PCA"), "rotation")
# Plot feature loadings
ggcorrplot(loadings_matrix,
           type = "lower",
           method="circle",
           title="Feature loadings",
           colors = colours,
           ggtheme=theme_bw) + coord_flip()

I would not combine the two axes like in the first plot. PC1 and PC2 we wouldn't compare directly in most cases. The original ggcorr plot looked better in fact.
A related idea, how about plotting just one axis at a time (as heatmap), sorting the values in increasing order, and then using colors to illustrate the increasing values (instead of bars)?
Probably the standard barplot / screeplot would be useful to include as option as well.
Note: often the user is interested on just a few top features (e.g. 5-10). This might help to find additional complementary options, too.
To get fwd, can we create one function that has the more standard barplot, and one heatmap version as options?

This could

support loading matrices directly (numeric matrix of features x components); if it also supports TreeSE that is a bonus

color scale should be two-color scale (negative values blue, positive red); to me it could look better if the colors were shown by squares rather than circles but this is a minor detail and if the plotting function works well otherwise, it should be relatively straightfwd to test alternative visualizations.

This one should be finally good
library(mia)
library(ggtree)
library(scater)
data("GlobalPatterns", package = "mia")
tse <- GlobalPatterns
tse <- logNormCounts(tse)
# Agglomerate to keep only high prevalence features
tse <- agglomerateByPrevalence(tse, rank="Phylum", prevalence=0.99, update.tree = TRUE)
# Achieve PCA reduction
tse <- runPCA(tse, name = "PCA", ncomponents = 2)
# Get the feature loadings
loadings_matrix <- attr(reducedDim(tse, "PCA"), "rotation")
df <- attr(reducedDim(tse, "PCA"), "rotation") |> as.data.frame()
df[["Feature"]] <- getTaxonomyLabels(tse)[ match(rownames(df), rownames(tse)) ]
df <- df[ order(abs(df[["PC1"]]), decreasing = TRUE)[1:10], ]
df <- df[ order(df[["PC1"]]), ]
df[["Feature"]] <- factor(df[["Feature"]], levels = df[["Feature"]])

df1 <- data.frame(PC1 = round(df$PC1,2), Feature = df$Feature)
df2 <- data.frame(PC2 = round(df$PC2,2), Feature = df$Feature)

# Plot feature loadings
p1 <- ggplot(df1, aes(x = "PC1", y = Feature, label = PC1))  +
  geom_point(aes(fill = PC1), size=15, shape = 22) +
  scale_fill_gradient2(limits = c(-1,1)) +
  geom_text(color="black", size=4) +
  labs(title="Feature Loadings Plot")

p2 <- ggplot(df2, aes(x = "PC2", y = Feature, label = PC2))  +
    geom_point(aes(fill = PC2), size=15, shape = 22) +
    scale_fill_gradient2(limits=c(-1,1)) +
    geom_text(color="black", size=4) +
  labs(title="Feature Loadings Plot")

p1 + p2

Great!
Can you prepare an actual miaViz function that takes care of this?

https://github.com/microbiome/mia/issues/604

@ElySeraidarian can you close this issue as it becomes ready?


Fix interp_points + add assertion in test

Changed interp_points() to scipy.ndimage.map_coordinates instead of griddata. Commented the rest of the code that might allow to write a mutiprocessing loop if needed in the future.
Added assertions to test_interp().
All tests passing.
Resolves #100
Resolves #69
One current limitation: we need to know if the pixel coordinates refers to center or corner (is_area or is_point). Right now I shift x/y by 0.5 pixel assuming it's the center, which works for our test Raster.
For robustness, we'd need to add the is_area or is_point info from GDAL into the Raster class. This is necessary to further improve the inter_points method.

Resolves #100 and #69

No wonder I couldn't get my head around those tests.
I've discovered a new interesting behaviour of the rio.ds.index() function:
r.ds.index(x,y)
Out[33]: (75, 301)
r.ds.index(x,y,op=np.float32)
Out[34]: (75.0, 302.0)

Just by changing operator, you shift y by 1. Right now test_interp() works the way it is intended. But, when comparing to value_at_coords(), it only works if the operator is math.floor (lower index).
How should we go about this?

No wonder I couldn't get my head around those tests.
I've discovered a new interesting behaviour of the rio.ds.index() function:
r.ds.index(x,y)
Out[33]: (75, 301)
r.ds.index(x,y,op=np.float32)
Out[34]: (75.0, 302.0)

Just by changing operator, you shift y by 1. Right now test_interp() works the way it is intended with np.float32. But, when comparing to value_at_coords(), it only works if the operator is math.floor (lower y index).
How should we go about this?

Hahaha what!? That should probably be added as an issue on rasterio, no? A quick search in their issues shows no result corresponding to this phenomenon.
Could this be circumvented for now, and then hopefully be fixed by rasterio in time?

Wait for the next level:
r.ds.index(x,y,op=np.float32,precision=10)
Out[20]: (138.0, 504.0)
r.ds.index(x,y,op=np.float32)
Out[21]: (138.0, 504.0)
r.ds.index(x,y)
Out[22]: (138, 503)
r.ds.index(x,y,precision=0)
Out[23]: (137, 504)
r.ds.index(x,y,precision=1)
Out[24]: (137, 504)
r.ds.index(x,y,precision=10)
Out[25]: (138, 504)

The issue is that the "math.floor" argument is by default in the underlying function:
def rowcol(transform, xs, ys, op=math.floor, precision=None):

which is wrapper by index

Need to test this in more details, but it looks like the "right" solution is the np.float32 and the default setting with math.floor can be falsely rounding (with default precision=None or other) when you provide the exact coordinates:
r.bounds
Out[27]: BoundingBox(left=478000.0, bottom=3088490.0, right=502000.0, top=3108140.0)
xmin = 478000
yax=3108140
ymax=3108140
r.ds.index(xmin,ymax)
Out[31]: (0, 0)
r.ds.index(xmin,ymax,op=np.float32)
Out[32]: (0.0, 0.0)
r.ds.index(xmin,ymax,op=np.float32,precision=10)
Out[33]: (0.0, 3.637979e-12)
r.ds.index(xmin,ymax,precision=10)
Out[34]: (0, 0)
r.ds.index(xmin,ymax,precision=1)
Out[35]: (-1, 0)
r.ds.index(xmin,ymax,precision=0)
Out[36]: (-1, 0)
r.ds.index(xmin,ymax)
Out[37]: (0, 0)

Wait for the next level:
r.ds.index(x,y,op=np.float32,precision=10)
Out[20]: (138.0, 504.0)
r.ds.index(x,y,op=np.float32)
Out[21]: (138.0, 504.0)
r.ds.index(x,y)
Out[22]: (138, 503)
r.ds.index(x,y,precision=0)
Out[23]: (137, 504)
r.ds.index(x,y,precision=1)
Out[24]: (137, 504)
r.ds.index(x,y,precision=10)
Out[25]: (138, 504)

What's problematic is that the "math.floor" argument is by default in the underlying function, and is the one showing all those changes:
def rowcol(transform, xs, ys, op=math.floor, precision=None):

which is wrapped by index

Call an exorcist!
This should definitely be an issue in rasterio, no?
Also, why do they need math.floor() in the first place? Maybe it's new (and rio still supports py=2.7), but round(1.1) returns 1 (type(round(1.1)) == int).

I thought we had discussed this before, but I cannot find any mention to it. But I agree, the use of floor by default is a bit strange. Maybe float32 should be the default. We could add an optional argument opt to xy2ij too.

@rhugonnet what is the status of this??

@rhugonnet  Tomorrow, your first challenge will be to merge this PR! :-P

@erikmannerfelt @adehecq
Defaulted to np.float32 as operator. Raises warning when other operator is used.
Modified area_or_point as optional input (None, 'Area', 'Point') that defaults to GDAL metadata AREA_OR_POINT fetched through rasterio when the value is None.
Updated all tests, passing.

There seems to be a merge conflict. Otherwise, it looks very good!

There should be an Iterable import here:
https://github.com/GlacioHack/GeoUtils/blob/5e2b975a1a281fb38e1695e58916b4eadddeaeb1/geoutils/georaster.py#L9

I've fixed some additional bugs after merging.
Now only need approval to merge the PR!


fix: Can't drag mouse to select text in input.

Details

Fixed Issues
$ https://github.com/Expensify/App/issues/41104
PROPOSAL: https://github.com/Expensify/App/issues/41104#issuecomment-2079752142
Tests

Start to create a group chat
Type the name of someone to filter results
Click 'Add to group'
Try to drag the cursor across the text input
Verify the tab doesn't starts to swipe away

[x] Verify that no errors appear in the JS console

Offline tests

Start to create a group chat
Type the name of someone to filter results
Click 'Add to group'
Try to drag the cursor across the text input
Verify the tab doesn't starts to swipe away

QA Steps

Start to create a group chat
Type the name of someone to filter results
Click 'Add to group'
Try to drag the cursor across the text input
Verify the tab doesn't starts to swipe away

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/85894871/1a277b7b-9304-4097-a245-4f72ea7f70f2

Android: mWeb Chrome
https://github.com/Expensify/App/assets/85894871/34123937-f8cb-4ffb-bd2e-bf6fc893089c

iOS: Native
https://github.com/Expensify/App/assets/85894871/389ad8c6-3066-4d35-aab5-5672f2fd1688

iOS: mWeb Safari
https://github.com/Expensify/App/assets/85894871/63d290a1-fe3e-4e77-87a0-88e41b57af7b

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/85894871/50bd2d84-f2a7-4aea-b764-3004825d478f

MacOS: Desktop
https://github.com/Expensify/App/assets/85894871/68e50b7e-1bea-4956-9e9c-35ac01a01f85

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@Krishna2323 small change to test steps, step 3. Click 'Add to group' is redundant and not related to reproduce flow, I think we need to remove it.

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.71-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Profile page will not load

I've tried several times last night and this morning to load the profile page for mgn1. From the admin side, this account looks normal to me.
I'm getting the following error:

We're sorry, but something went wrong.
If you are the application owner check the logs for more information.

I am able to load profile pages for other users.

That must be this error. Looks like there's more than one user with this problem.

@EricDurante Should this be comparing the years for a CommitteeMembership?  Or some other attribute?

I see the problem here. In the production database, we have some CommitteeMembership records with a role of "Thesis Advisor", but we don't have a ranking for that value here. So we're trying to compare a number to nil in some cases.
This would be a very easy fix ...if we knew what the rank for that role should be compared to the others in the list. Incidentally, we do have rankings for two roles that don't appear in the production data currently: "Special Member" and "Outside Member". Unfortunately this is one part of our code that we need to be careful to keep in sync with changes to the eTD app. It would be a good idea to at least have a fallback ranking (of 0 maybe) in RMD for any roles values that don't match a value in the list.

@ajkiessl We compare committee memberships by the significance of the member's role to determine which memberships to show first in their profile.

@EricDurante I'll chat with Justin about this, and then work on a fix.  I think "Thesis Advisor" would be pretty high on the list.

Yeah, I assume that "Thesis Advisor" and "Dissertation Advisor" probably have equal significance.

Also, since we are on the topic, I should mention that we recently (Spring 2021) added a lot of new roles for dissertations in eTD.  They are dynamic and are regularly imported from LionPATH.  I don't think they change often, but they can.  There are ~170 of them right now.  This is something we will have to address before we import eTDs again.

Sounds good.  I'll add all of this.

Thanks, @ajkiessl!

@anaelizabethenriquez This has been fixed and pushed to production.


"All databases" option with no default database produces "FATAL: database 'something' does not exist.

Did not find anything like this on issue or on Wiki
System information:

Operating system (distribution) and version
MacOS
DBeaver version
Version <IP_ADDRESS>007192031
Additional extensions
non

Connection specification:

Database name and version
PostgreSQL 10.11
PostgreSQL 10.11 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit

Driver name
PostgreSQL JDBC Driver 42.2.5

Do you use tunnels or proxies (SSH, SOCKS, etc)?
SSH tunnel

Describe the problem you're observing:
When I create a connection with "PostgreSQL-->"Show all Database = true" and I set no default database in "Main-->Database = empty" it tries to connect to a database 'something' (not the real database name), but does not exist. I'd expect it to try to connect to postgres
Steps to reproduce, if exist:

Configure a connection as in the problem description
Click "Test Connection" in the "Edit Connection" dialog.

Include any warning/errors/backtraces from the logs
nothing that seems to illuminate this issue

I cannot reproduce it in the latest release 7.1.4.

Please check what is written in Connection settings>Initialization (default database and schema)

If there are not wrong databases/schemas in Initialization could you please try 7.1.4 DBeaver version https://dbeaver.io/download/?

There is another problem in "All database" option : when specified user does not have rights to all existing database, error message "permission denied for database xxx" is displayed instead of displaying only granted databases (seen after migrate from 7.1.3 to 7.1.5, PostgreSQL 9.6)

@cplasse this feature will be implemented in scope of #9721


File uploading issue

Hello,
I have some issue in file uploading in loopj library
I have use same as code in your example but getting error like this "W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection"
and my code is
       RequestParams params = new RequestParams();
        final String contentType = RequestParams.APPLICATION_OCTET_STREAM;
        File myFile = new File(imagepath);
        try {
            params.put(Const.PARAMS.IMAGE, myFile,contentType,myFile.getName());
            params.setHttpEntityIsRepeatable(true);
            params.setUseJsonStreamer(false);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

Please give me solution for this.

This is not issue of the library.


Configurable MongoDB address.

The connection string for Mongo should be configurable.

The connection string is now configurable.


H2O Wave

WHAT

add system and training visualization using H2O Wave
add services in docker-compose.yml which runs the wave server.
add Dockerfile for H2O Wave
add h2o_wave, psutil in dependencies.
add class for visualization.

Simpler docker image with only H2O Wave : STomoya/h2o_wave_docker

Keeping until more stable release of H2O Wave


Swith from skia::RefPtr to RefPtr

Now that we can use WTF everywhere, we don't need to use skia::RefPtr.

lgtm


App doesn't open when there's no running instance

Hi, I've added this plugin to my project and it works perfectly fine if there's a running instance of the app. If there's none and app is closed, when I try to open it with my URI scheme it fails to do so.
I must also note that I'm using windows.
Also the project is open source and available at: https://github.com/openmultiplayer/launcher
URI scheme example: omp-launcher://<IP_ADDRESS>:7777

I see it flash open for a split second so i assume some of the code at the start of main() panic. If you launch the exe the same way a deep link does, so like this:
.\omp-launcher.exe omp-launcher://<IP_ADDRESS>:7777

You will get this error:
error: unexpected argument 'omp-launcher://<IP_ADDRESS>:7777' found

Usage: omp-launcher.exe [OPTIONS]

For more information, try '--help'.

which stems from the Args::parse() line.
The reason why it works while the primary instance is open is because prepare() in the secondary instance (spawned by the OS when you call the deep link) forwards the url to your primary instance and exits immediatly, thus never reaching the Args::parse() line.

Glad to know, and thanks for your time you put into it, truly appreciated


Product url suffix not appended to deeplinks in exported product data

FACT-Finder SDK version (see package.xml): 4.2.0
Magento edition and version: <IP_ADDRESS>
PHP version: 5.6
Expected behavior: When product data export is triggered deeplinks should be the correct links for product  detail pages
Actual behavior: deeplinks does not have suffix and therefor lead to 404 error pages
Steps to reproduce:

go to magento admin->configuration->catalog->seo
set a Product URL Suffix  and save configuration
clear magento caches
trigger product data export
check deeplinks column in the generated csv file, the suffix will be missing

With latest release the method for obtaining the product url in FACTFinder_Core_Model_Export_Type_Product was changed, in previous versions it was relying on the product model to generate the url:
    {
        $productUrl = Mage::getModel('catalog/product')
            ->getCollection()
            ->addAttributeToFilter('entity_id', $productId)
            ->setStoreId($storeId)
            ->setPage(1, 1)
            ->addUrlRewrite()
            ->getFirstItem()
            ->getProductUrl();

        return $productUrl;
    }

now the generation of the url is custom and product url suffix setting is not considered:
    {
        $product = Mage::getModel('catalog/product')
            ->getCollection()
            ->addAttributeToFilter('entity_id', $productId)
            ->setStoreId($storeId)
            ->setPage(1, 1)
            ->getFirstItem();

        $productUrl = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . $product->getRequestPath();
        return $productUrl;
    }

I see your problem with prefixing. One changed this to fix the url generation by cli execution of shell/factfinder.php.
Better solution is to set the storeId before loading the product.
If you do not use this script (shell/factfinder.php) you can change the code back to the old one. To fix this globally for both cases we have to change some more code.

@mbraeuner: Please solve this issue in 4.2.1. Thank you in advance.

I found a simple soloution to fix both cases. Reverting back to old code and setting store Id will export in backend and on shell the correct product url. It also respects the seo prefix.
@skalenji: please let me know if branch issue-230 works for you


Screenshots path

Hi guys!
I have a question about screenshots path in generated .xml report
Is there any option to insert links to screenshots files in XML / path to folder with saved screens, so QA can just click on such link in Jenkins and download / open it in browser?

You can do this with the junit-attachments jenkins plugin here: https://wiki.jenkins.io/display/JENKINS/JUnit+Attachments+Plugin
You write out a filename to standard in or out and the plugin can publish them as direct test attachments in Jenkins rather than build artifacts. I recently forked this repo to work on that specific feature, but I wound up changing the logic for cucumber / jenkins reporting as well.
            if (testData.state === 'fail') {
                const screenshot = screenshots.find(function (item) { return item.toLowerCase().indexOf(test.title.toLowerCase()) > 0 });
                testCase.failure();
                testCase.standardError(`\n[[ATTACHMENT|${screenshot}]]\n\n${testData.error.stack}`);
            }

@christian-bromann thoughts on this? It requires a separate plugin to work correctly. At least for Jenkins, anyway.

Can I access the junit reporter in the afterTest hook?
I would just like to add some content to the "Standard Error" (for example embed a screenshot/iframe via html) but I don't know how to access the reporter.
@jukafah @AndreyYevtukhov


Add support for GetAccountBalances

Fixes # .
Motivation

Solution

Open questions

Pull Request Test Coverage Report for Build 3970

18 of 65 (27.69%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.5%) to 75.259%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

types/utils.go
18
20
90.0%

utils/utils.go
0
45
0.0%

Totals

Change from base Build 3914:
-0.5%

Covered Lines:
3778

Relevant Lines:
5020

💛  - Coveralls

Left a few nits! Looking forward to seeing the tests in CoinStorage and BalanceStorage to make sure this import works correctly.


query / ttl does not cache network requests

Describe the bug
It seems like setting ttl does not cache anything useful.
I believe the problem is in this code:
def query(
        self,
        *columns: str,
        table: str,
        count: Optional[types.CountMethod] = None,
        ttl: Optional[Union[float, timedelta, str]] = None,
    ) -> SyncSelectRequestBuilder:
     ...
        @cache_resource(ttl=ttl)
        def _query(_self, *columns, table, count):
            return _self.client.table(table).select(*columns, count=count)

it caches the query builder rather than an actual network response which takes place later in the execute() method of the builder.
To Reproduce
Set breakpoint anywhere at  httpx._client.Client.request, it's always hit despite the ttl value.
Expected behavior
Network requests should not be sent for same query until the TTL expires.
** Please complete the following information:

OS: Ubuntu 22
Python Version 3.11.9
Library Version st-supabase-connection==1.2.2

Hey @andr-c 👋
The initial intention to cache the query builder and not the response was intentional as I wanted query() to be the equivalent of select(), and any number of filters or modifiers can be chained to select(). This led to false cache hits if the select() clause was the same, but modifiers were different.
Since this approach doesn't really help in preventing unnecessary network requests, I am adding a new execute_query() method to the connection that will cache the API response based on the query path (table name) and parameters.

@andr-c - I've a PR open for the above changes: https://github.com/SiddhantSadangi/st_supabase_connection/pull/12
Could you install it using pip install git+https://github.com/SiddhantSadangi/st_supabase_connection.git@ss/cache_api_response and let me know if it works well for you?
Note that this version removes the query() method and adds a new execute_query() function that needs to be imported separately from st_supabase_connecton: from st_supabase_connection import SupabaseConnection,  execute_query.
Usage examples have been updated in the README: https://github.com/SiddhantSadangi/st_supabase_connection/blob/ss/cache_api_response/README.md#file_cabinet-database-operations


Stream archives to Azure Blob Storage in bbs2gh migrate-repo, rather than loading the whole archive into memory

When running a bbs2gh migrate-repo migration with Azure Blob Storage where the archive is larger than 2GB, currently it fails with a System.IO.IOException stating:

The file is too long. This operation is currently limited to supporting files less than 2 gigabytes in size.

This switches to streaming the file, rather than reading it all into memory, mirroring the approach (and using the code!) from gh gei.
Fixes https://github.com/github/gh-gei/issues/974.

[x] Did you write/update appropriate tests
[x] Release notes updated (if appropriate)
[x] Appropriate logging output
[x] Issue linked
[ ] Docs updated (or issue created)
[ ] New package licenses are added to ThirdPartyNotices.txt (if applicable)

I've just tested this in a Codespace and it works.


Incompatible with Iris

https://paste.gg/p/anonymous/6eecb2fc634b43a787eec9c42d4af4a0

what causes this issue @qouteall

I think there is a issue within the Iris GitHub currently referencing this; I remember looking it up earlier as I had this same issue previously.

https://github.com/qouteall/ImmersivePortalsMod/issues/648

I don't have a crash when using this mod with Iris(+Sodium) but I have the issue that my FPS drops to 1 Frame per second, when using this mod and  looking at the portal.

@SirPytan use this https://github.com/qouteall/Iris/releases/tag/ipc1.1.1_1

Th pr was merged 31 minutes after you posted this command, iris development versions are fully compatible with immersive portals.

I am using the latest Version from HyperCubeMC:
https://github.com/HyperCubeMC/Iris/actions/runs/1178473993
https://github.com/HyperCubeMC/sodium-fabric/actions/runs/1178189673
Just download the Actions folder unzip it and use the .jar (without source, dev and so on) and it works.
I know have more stable FPS with Immersive Portals mod.


Make sure we still take the oldest VS when we have actual duplicate hosts

Please provide a description of this PR:
Bugfix #48071; I realized while reading #10464 that I didn't account for the duplicate hostname case. We still must make sure the oldest deployed VS wins for backwards compat purposes. I added a test case to make sure this nuance isn't missed in the future

In response to a cherrypick label: new pull request created: #48341

In response to a cherrypick label: new pull request created: #48342


Huge performance down after rerun a subscription of 1500+ elements.

I am making  an app with a map and a bunch of filters on the left side. I have a collection called Traces which are some geolocalised points. And a Trackers collection which are traces' categories.
When I subscribe to Traces I send an array of trackersIds to get what I need.
I got this autorun block which reruns each times the trackers ids array is changed.
$meteor.autorun($scope, function(){
	$meteor.subscribe('traces', {trackersIds:$scope.getReactively('trackersIds',true)}).then(function(){
		$scope.traces = $meteor.collection(Traces);
	});
});

My subscription is about 1500 elements.
At the first run there is no problem, the app is smooth. But when I uncheck then recheck a tracker the subscription rerun and my application begin to slow down dramatically. Even if my subscription is still of 1500 elements.
How could I know where is the bottleneck? I tried to use the Chrome profiler but there is too much element and I don't know where to look.
I don't think my subscription is too big, because it runs smoothly at the first time. Could be there a memory leak somewhere? A non destroyed object stayed alive between the first and second subscription?
Thx for your help.

I am not sure it will solve your solution, but can you try replace $meteor.subscribe with $scope.$meteorSubscribe  and $meteor.collection with $scope.$meteorCollection?
one other thing which might give you an idea is this:
place the code bellow as a bookmark item (the code is the url)
click it on the page. You will see the number of angular watchers on the page.
  javascript:(function() { var watchers, elementsWithScope, scope, i, _len; watchers = 0;   elementsWithScope = document.querySelectorAll('.ng-scope'); for (i = 0, _len = elementsWithScope.length; i < _len; i++) { scope = angular.element(elementsWithScope[i]).scope();       if (scope.$$watchers != null) { watchers += scope.$$watchers.length; } } alert('Watcher Count: ' + watchers); })()

@dagatsoin You may also take advantage of Angular's single-binding feature, for example:

References:
https://docs.angularjs.org/api/ng/directive/ngBind
https://docs.angularjs.org/guide/expression

@Tallyb I replace collection and subscribe. Did not notice any change but it is best-practice, so thx.
Concerning the watchers. Something strange here. Each time I uncheck and recheck a tracker layer - so at each autorun iteration - the total number of watchers increases by 2: 92, 94, 96, 98... instead of stay unchanged.
Is it a normal behavior ?

@dagatsoin Have you tried "stopping" the old collection as I believe it still hold some resources and execution cycles unless told so.
Here is an example using your code, but you would just place the piece of code within your refactored variant.
      $meteor.autorun($scope, function(){
        $meteor.subscribe('traces', {trackersIds:$scope.getReactively('trackersIds',true)}).then(function(){
          if ($scope.traces && $scope.traces.stop) {
            // stop the old subscription - this unbinds watchers and cleans up memory
            $scope.traces.stop();
          }
          $scope.traces = $meteor.collection(Traces);
        });
      });

Please share with us if this works.

@Tallyb, @dagatsoin, @smoke there's no need to stop a subscription within the $meteor.autorun, as the method internally handles the subscriptions and stops them whenever the previous autorun gets invalidated, so using $scope.$meteorCollection (which internally binds to the $destroy signal of the scope) or checking if it can be stopped (as proposed by smoke) will have no effect other than some extra code lines and calls.
@dagatsoin are you loading all the traces on the first run? If so, the alternative is to keep them loaded in minimongo and then filtering at the collection level and not the subscription. I.E.
$scope.$meteorSubscribe('traces');

$meteor.autorun($scope, function() {
  $scope.traces = $meteor.collection(function() {
    return Traces.find({trackerIds: $scope.getReactively('trackersIds', true)});
  }, false);
});

Your performance drop most likely is because on each computation of autorun, since the subscription is ended, all the data that was stored needs to be deleted before the new one arrives, so it will take extra time while removing the documents from minimongo.

@auterium :+1: great suggestion

@auterium In fact, @smoke 's solution has worked. I think the $destroy signal does not fire. But I don't understand why.
So manually stopping it does the job. And the number of watchers does not increase at each iteration any more.
So, is it the normal behavior? Would not be to the $meteorSubscribe to auto stop when the autorun iterate like @auterium says? Could it be a bug?

@dagatsoin the $destroy signal is at the $scope level, so when the $scope is destroyed, the signal gets send. $scope.$meteorObject, $scope.$meteorCollection, and $scope.$meteorSubscribe are stopped when the $destroy signal is fired.
Strange thing is that when I researched this it was properly stopping on each autorun computation. How are you checking the listeners?

I don't check the listeners. It is just a deduction because I need to manually stop this. Do you have a snippet to check if $destroy is fired ?
I dis this but nothing logs:
$meteor.autorun($scope, function(){
  		$scope.getReactively('trackersIds',true);
		$scope.$meteorSubscribe('traces', {trackersIds:$scope.trackersIds}).then(function(){

			// I try to watch $destroy with this
	  		$scope.$on("$destroy", function() {console.log("destroy");});

			if ($scope.traces && $scope.traces.stop) {
				// stop the old subscription - this unbinds watchers and cleans up memory
				$scope.traces.stop();
			}
			$scope.traces = $scope.$meteorCollection(Traces);
		});
});

@dagatsoin man it took me almost 20 mins to figure out this...
Here's your problem: you should not call for $meteor.collection or $scope.$meteorCollection within the autorun. Each autorun's invalidation stops any subscription created inside it to replace it for the new one, but it doesn't do the same for collections or objects. You should be using $scope.$meteorCollection outside the autorun as it can be created only once and it will be reactive based on what the subscription gets.
Please try the following code:
// This needs to be $scope.$meteorCollection so the collection will be destroyed when the user leaves the controller
$scope.traces = $scope.$meteorCollection(Traces);

$meteor.autorun($scope, function() {
  // This is better as it's lower level and the subscription will be stopped by Meteor on each autorun invalidation
  $meteor.subscribe('traces', {
    trackerIds: $scope.getReactively('trackersIds')
  });
});

Please let us know if it works as expected

@auterium, it works like @smoke code but much proper! Your 20 minutes has been very useful indeed. You finally make me understand in which order collection/subscription work! It worse a beer or two if you come to britany :beers:

@auterium Great job - definitely seems more proper and cleaner with your solution!

Thanks guy, I'm glad it helped! And @dagatsoin, I'll be in Paris for 2 days in september if you want to pay for those beers lol


Skills: Obsolete SkillHttpClient

#minor

Coverage remained the same at 78.912% when pulling b7ab454df7e36c044d5a53e7c89748452384dbb7 on ccastro/obsolete-skillhttpclient into 9a466676606184bce15dfa0aa507c469b0538048 on main.


Asynchronous startup/shutdown API

CentralDogma.start() and stop() are synchronous, and we could make it asynchronous like Server in Armeria. Asynchronous startup/shutdown API is mainly useful when you want to start or stop a CentralDogma cluster concurrently without introducing additional threads and signaling code.
Perhaps we could generalize the code in Armeria Server and make it usable in CentralDogma and CommandExecutor implementations.
Resolving this issue would change the behavior and signature of CentralDogma.start() and stop().

https://github.com/line/armeria/pull/1344


fix top wrap: game of life

when cells hit the top they act unpredictably and don't wrap around.

This has been fixed.


Audit CloudWatch Log Group settings do not take effect

Description
It looks like because there isn't a depends on between this log group and the EKS cluster, EKS is likely creating the log group before the module. The EKS cluster resource explicitly calls this out: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_cluster#enabling-control-plane-logging

[x] ✋ I have searched the open/closed issues and my issue is not listed.

⚠ Note
Before you submit an issue, please perform the following first:

Remove the local .terraform directory (! ONLY if state is stored remotely, which hopefully you are following that best practice!): rm -rf .terraform/
Re-initialize the project root to pull down modules: terraform init
Re-attempt your terraform plan or apply and check if the issue still persists

Versions

Module version [Required]: v18.29.1

Terraform v0.14.10
+ provider registry.terraform.io/hashicorp/aws v3.75.2
+ provider registry.terraform.io/hashicorp/cloudinit v2.2.0
+ provider registry.terraform.io/hashicorp/http v3.1.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.13.1
+ provider registry.terraform.io/hashicorp/local v2.2.3
+ provider registry.terraform.io/hashicorp/random v3.4.3
+ provider registry.terraform.io/hashicorp/tls v4.0.3

Reproduction Code [Required]
  cloudwatch_log_group_retention_in_days = 30
  cluster_enabled_log_types = [
    "api",
    "audit",
    "authenticator",
    "controllerManager",
    "scheduler",
  ]

Steps to reproduce the behavior:
Use the module with Audit logs enabled, tags set, audit log retention set.
Expected behavior
CloudWatch Log retention set, tags set
Actual behavior
No log retention set, no tags set

the log group is created long before the cluster (cluster takes roughly 12 minutes to create). closing due to lack of reproduction


GDPR accept consent differs between http and https

Describe the bug
I did all types of experiments on the _CookeConsentPartial.cshtml normally generated by .net core 2.2 templates. The content of the file is as follows:
@using Microsoft.AspNetCore.Http.Features

@{
    var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
    var showBanner = !consentFeature?.CanTrack ?? false;
    var cookieString = consentFeature?.CreateConsentCookie();
}

@if (showBanner)
{

    This website uses cookies, and also may collect some information using Google Analytics. Learn More.
    <button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
        Accept
    </button>

}

I did the experiments under an environment that does not enforce https by commenting out app.UseHsts(); in startup.cs.
I tested the effect of GDPR acceptance under http and https and under www and non-www and studied the effect of each case on the rest for the 4 combinations.
I found different behaviors under different protocols:
Accept the consent under https, then the GDPR banner becomes hidden under https only (the http version is not affected)
Accept the consent under http, then the GDPR banner becomes hidden under both http and https
To Reproduce
Steps to reproduce the behavior:

Using this version of ASP.NET Core '2.2.3'
Create a new .net core project using templates
Comment out the line app.UseHsts() in startup.cs
Under Incognito, accept the banner under http and see the effect on https and also vice-versa.

Expected behavior
I expect to make acceptance under https similar to the normal expected behavior under http. The opposite is also OK as long as we unify the behavior between the protocols.
Screenshots
N/A
Additional context
Add any other context about the problem here.
Include the output of dotnet --info
dotnet--info.txt
Problem source
May be it is relates to the behavior in the following code:
https://github.com/aspnet/AspNetCore/blob/62351067ff4c1401556725b401478e648b66acdc/src/Security/CookiePolicy/src/ResponseCookiesWrapper.cs

This is because if a cookie is written out for the first time on https it's marked HTTPS only, and not available to HTTP.
We make this assumption because, frankly, if you support HTTPS you need to start thinking about moving to HTTPS only. There's no excuse any more. Plus, if you're taking PII and GDPR is a concern then HTTPS is going to be a requirement for you anyway, and you should be sending the HSTS header as well.

As @blowdart said, this is by-design behavior when on HTTPS.


Introduce descriptive types to refer to task input and output files and directories

A solution for #2290 and #2305, introducing various APIs to define and reference lazily calculated directory and file locations, and use these to define and wire together task input and output files and directories.

This looks like a good step forward.

It neatly solves the performance problem of eagerly canonicalizing files in code like this:

test.report.html.destinationDir = file("$reportsDir/someName")

Which could now be something like (Ignoring backwards compatibility concerns):
test.report.html.destinationDir = layout.reportsDir.dir("someName")

Fitting this onto our existing types might become awkward, since we'd have to find new names for all the getters.

I also wonder whether we should have some DSL decoration that allows me to assign a Provider<File> to a "legacy" task that wants a File.

We should explain this concept in the user guide/plugin developer guide.

@oehme Thanks for the feedback.

Fitting this onto our existing types might become awkward, since we'd have to find new names for all the getters.

I think this is something that we don't have a good answer for yet. It's already been tricky to come up with new names for the properties on the native tasks.

I also wonder whether we should have some DSL decoration

Yes, I plan to add something there.

We should explain this concept in the user guide/plugin developer guide.

Absolutely.

@adammurdoch I'm only seeing one commit on this PR now and it doesn't seem to encompass the topic. Did you force push the wrong thing by chance?

@alkemist I did indeed, sorry. The changes have already been merged into master and are here: https://github.com/gradle/gradle/compare/93559d6...261adcb


How can i theme the lspoutline colors in my theme?

Is your feature request related to a problem? Please describe.
I cannot manage to theme the lspoutline colors.
I tried using the ones here
LSOutLineProperty { Property },
    LSOutLineConstructor {},
    LSOutLineInterface { Type },
    LSOutLineFunction { Function },

but they always get reset to default values whenever I toggle it.
Describe the solution you'd like
Make it possible for theme authors to theme the lspoutline colors
Describe alternatives you've considered
At least you could also link to the default highlight groups reserved for such things as property, interface, method, etc.

@glepnir Thanks for your help. Altough I don't want to change the colors for me only. I want people to be able to install my theme and make it work. Can I do this in my theme and not in my lua config?

I had add it support in next version.  then you config it in your colorscheme.


Add support for non-default unbonding periods.

When creating a client, we need to set the unbonding period of the remote chain.
This is currently hardcoded in link.ts. We should query the chains for that value if possible, or add it as a config option to the registry.yaml.
I am unsure if this is exposed via the staking module. If there is an answer, let's do this auto-config via query. Otherwise, let's add to registry.yaml and default to the current value if not set.

This can be done via query on staking params. See the go relayer
TODO: add this query and make one of the test chains have a non-default unbonding period for unit tests


Allow middle clicking to close tabs

Just like in most popular text editors and web browsers, this change allows middle mouse clicking to close tabs.

Thanks for the PR @codecat :+1:


Prepare a template operator

A template operator is a re-usable operator which could be leveraged by component teams to create their own operators, to interact with the kyma-operator and thereby be a part of the modularisation framework
AC:

[ ] Prepare a template operator skeleton project
[ ] Implement a template CR managed by this operator
[ ] Implement basic simple state handling for the template CR
[ ] Showcase operator best practices
[ ] Write documentation how to re-use this operator and inject into the kyma-operator

Developer Notes:

Base on existing v1alpha1 API Definition of Kyma / ModuleTemplate & Manifest
Assume that CLI is used for Module Creation and Module Bundling in Reference Commands (e.g. Makefile in Skeleton Project)
Make sure that Skeleton does not contain any project opinionation by using stub coding wherever necessary
Assume that Skeleton is based on CRDs that at least implement the Operator State subresource with an Enum with the Same Value as Kyma status.state


Allow IEndpointSource to return null Endpoint

Let IEndpointSource return a null Endpoint during sending metrics
to allow them to be skipped.
Resolves #171

I'm a little confused by the code coverage results. I didn't expect files that I didn't modify to be impacted by this change. I haven't used Codecov before so I hope I'm not missing something obvious if there are some more tests that I need to add.

There's some level of randomness in the tests that we haven't eliminated, so sometimes the coverage results vary for code unrelated to a change.
It looks to me that you've added the appropriate test case to handle this change.

@yousifh Thanks for your contribution 👍
I'll look at publishing 4.0.1 to NuGet.org with this change later this afternoon.


update to rolling

Signed-off-by: Alberto Soragna<EMAIL_ADDRESS>Description
Updates the repository to ROS 2 rolling
Fixes # (issue).
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Tested gazebo classic and ignition.
Gazebo ignition requires to build the ign_ros2_control package from sources, due to https://github.com/ros-controls/gz_ros2_control/issues/105
Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

This requires to first release the irobot-create-msgs for rolling


As an HR advisor I want to view and employee's details so that the employee's promotion request can be supported

Tasks:

[ ] - Connect to the existing database.
[ ] - Add function to extract employee record based on ID.
[ ] - Display the employee record.


iOS handler issues

Description
Secondary toolbar item dissapears when navigating away from page.
To Reproduce

Create a detail page with secondary toolbar item.
Create another page (lets call it page 2) with two secondary toolbar items.
Run app.
Detail page toolbar item appears correctly.
Navigate to page 2, toolbar items appear as text.
Close page 2, (should go back to detail page) now toolbar item dissapears on detail page.

Evidence
No response
App Version
1.0
OS Version
17.6.1
Diagnostic information
No response

Will look into it soon 👀

Sounds good if it's not a massive amount of work.
Still hoping that MAUI team will be resolving the issue, though that might be a while.
Thanks for all your work.


CartSession::forget(); not forgetting the session

Lunar version: dev-develop
Laravel Version: 9.45.1
PHP Version: 8.1.3
Database Driver & Version: mysql-8.0.22-win64

Expected Behaviour:
$order = $cart->getManager()->createOrder(); does not clear the cart from the user's session.
so we call CartSession::forget();   before redirect to success screen and it should remove the cart from the user
Actual Behaviour:
It doesn't remove the cart from the session

@charlielangridge I'd say this is intended behaviour as the cart manager isn't aware of the CartSession. Down the line when we have API integrations which are stateless it wouldn't make sense for the Cart Manager to try and purge itself from the session.
Also it would be somewhat of an assumption to forget the cart when an order is created, it should be up to the storefront to decide when it needs to forget it IMO.


DEAD?

is this dead?

I've been wondering the same thing...

The code is still here and PRs are still welcome :). I only have so much
time for free work :)
On Apr 24, 2016 09:32, "robertbudge"<EMAIL_ADDRESS>wrote:

I've been wondering the same thing...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/shipyard/shipyard/issues/801#issuecomment-213956220

consider merge into https://github.com/rancher/rancher ?

Same goes for me, I don't have as much time free recently.  Would be awesome if we could grow the community and get more contributors :)


Make Travis use conda-build

Make Travis use conda-build
Add build for pure python without MPI (using HPAT_CONFIG_MPI var)
Add python version define
Move coverage to run_test.sh
Set numba version to 0.46.0 and pandas to 0.25.0

Close this PR and create a new instead.


[1.19] Forge breaking changes

Forges 41.0.64+ and 41.0.94+ introduce breaking changes for keymap-0.6.0-beta.0+1.19-forge.

Hey there, thanks for the heads up!, that is indeed quite an issue, I will try and look into it as soon as I find the time, thanks.

Took me long enough xDD, but I think this should be kinda covered now on the latest cf/modrinth(waiting approval), kinda, tho only tested against 1.19.2, not 1.19 and 1.19.1, cuz lazy

Cheers for all your work on these doovers.
Take it easy dude.
But TAKE IT!


Remove shade plugin from dataframe

Using the shade plugin can cause problems when loading from Maven/Gradle/SBT/etc.  https://github.com/jtablesaw/tablesaw/issues/108

I'm going to close this PR in favor of removing datavec-dataframe and replacing with the upstream tablesaw. I'll leave my other PR open as it will help with that


Add requester's username (and IP-address) to check-requests made through Uchiwa

Uchiwa's interface allows for explicit requests for checks performed outside of the scheduled times through the GUI.
Excessive use of the feature could cause a DOS, but currently there is no way to figure out, who made the request(s).
In the environments, where authentication is already used, the check-requester's username should be added to the request. In all environments the requester's IP-address(es) (either verbatim or from X-Forwarded-For) should be added.
The values would then be present in the check-results easing any audits.

Would also be great if there was a way to pass a username if via header.  This is what we do with Grafana and it's pretty nice.

to whomever may so implement: #542 probably requires very similar work

Unfortunately, it seems that metadata passed to the /request endpoint is not translated to the check results data, therefore making it impossible to audit the requests.

So, should a feature-request ticket be opened with Sensu itself to have this capability added?

@UnitedMarsupials Yes, I suggest you to do so!

Wait, sorry, I don't get it... Right now, a check-description can have any and all arbitrary fields -- we use this trick to, for example, embed links to Graphite-charts. These fields are copied from the check-request JSON into the check-results JSON (with substitutions performed) and all is well.
Why can't Uchiwa-generated requests have some additional fields added similarly?


Can't run molecule because python error

Issue Type

Bug report

Molecule and Ansible details
ansible [core 2.11.1]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.5 (default, May 24 2021, 12:50:35) [GCC 11.1.0]
  jinja version = 3.0.1
  libyaml = True
molecule 3.3.1 using python 3.9
    ansible:2.11.1
    delegated:3.3.1 from molecule
    docker:0.3.3a1 from molecule_docker
    podman:0.3.0 from molecule_podman
    vagrant:0.2 from molecule_vagrant

System:
Linux jonas-pc 5.10.36-2-MANJARO #1 SMP PREEMPT Tue May 11 19:38:44 UTC 2021 x86_64 GNU/Linux
Molecule installation method (one of):

pip
and tried with OS package

Ansible installation method (one of):

OS package

Detail any linters or test runners used:
Desired Behavior
Running without python stacktrace.
Actual Behaviour
DEBUG    Validating schema /home/jonas/_dev/my-playbook/roles/docker/molecule/default/molecule.yml.
INFO     default scenario test matrix: lint, destroy, syntax, create, prepare, converge, idempotence, verify, destroy
INFO     Running default > lint
COMMAND: set -e
yamllint .
ansible-lint .
Loading custom .yamllint config file, this extends our internal yamllint config.
WARNING  Listing 1 violation(s) that are fatal
load-failure: [Errno 2] No such file or directory: 'tasks/package_manager/general.yml' (filenotfounderror)
tasks/package_manager/general.yml:1

Finished with 0 failure(s), 1 warning(s) on 25 files.
INFO     Running default > destroy
Traceback (most recent call last):
  File "/home/jonas/.local/bin/molecule", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.9/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/command/test.py", line 149, in test
    base.execute_cmdline_scenarios(scenario_name, args, command_args)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/command/base.py", line 113, in execute_cmdline_scenarios
    execute_scenario(scenario)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/command/base.py", line 155, in execute_scenario
    execute_subcommand(scenario.config, action)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/command/base.py", line 144, in execute_subcommand
    return command(config).execute()
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/logger.py", line 185, in wrapper
    rt = func(*args, **kwargs)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/command/destroy.py", line 107, in execute
    self._config.provisioner.destroy()
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/provisioner/ansible.py", line 702, in destroy
    pb = self._get_ansible_playbook(self.playbooks.destroy)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/provisioner/ansible.py", line 868, in _get_ansible_playbook
    return ansible_playbook.AnsiblePlaybook(playbook, self._config, **kwargs)
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/provisioner/ansible_playbook.py", line 45, in __init__
    self._env = self._config.provisioner.env
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/provisioner/ansible.py", line 519, in env
    default_env = self.default_env
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/provisioner/ansible.py", line 458, in default_env
    self._config.ansible_collections_path: ":".join(collections_path_list),
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/config.py", line 119, in ansible_collections_path
    if ansible_version() >= ansible_version("2.10.0.dev0"):
  File "/home/jonas/.local/lib/python3.9/site-packages/molecule/config.py", line 477, in ansible_version
    return Version(version)
  File "/usr/lib/python3.9/site-packages/packaging/version.py", line 298, in __init__
    raise InvalidVersion("Invalid version: '{0}'".format(version))
packaging.version.InvalidVersion: Invalid version: '[core'

Used config:
---
dependency:
  name: galaxy
driver:
  name: docker
scenario:
  name: default
  test_sequence:
    - lint
    - destroy
#    - dependency
    - syntax
    - create
    - prepare
    - converge
    - idempotence
#    - side_effect
    - verify
    - destroy
platforms:
  - name: rhel8
    image: registry.access.redhat.com/ubi8/ubi-init
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    capabilities:
      - SYS_ADMIN
    command: "/usr/sbin/init"
    pre_build_image: true

  - name: ubuntu
    image: geerlingguy/docker-ubuntu2004-ansible
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    capabilities:
      - SYS_ADMIN
    command: "/lib/systemd/systemd"
    pre_build_image: true
provisioner:
  name: ansible
verifier:
  name: ansible
lint: |
  set -e
  yamllint .
  ansible-lint .

This is a known issue and should be solved in the latest stable version of molecule. Can you please test your setup with version 3.3.4 and report back? Thank you in advance.

I tested it. The version 3.3.4 worked for me! Thanks.


supports color output for execv function

If the return value of execv is 0, output in bright yellow; otherwise, output in red.


HTTP requests continue when 403 error returned (should gracefully degrade)

Accessing a non-exploded epub file that is forbidden (HTTP 403) causes a steady (endless?) stream of HTTP requests that hammer the server.

Related: https://github.com/readium/readium-js-viewer/issues/243

I am not able to reproduce in the latest version. Please check and report with more details. Many thanks!


Bug with tag element

Tag
Tags are not rendering correctly for some cards.

@dbarabashdev, I've updated the issue description to make it easy to see the bug.
Would you like to work on this and fix it?

@Roshanjossey, I did simple changes and just removed the width property and added the padding. I think it looks good
PR

@Roshanjossey  I want to work on some of the issues of your project would pls tell me how I can do it.
I have the strong knowledge of the C++, C and some portion of Java.

@irahulcse, checkout our web app and slack group to find projects you might wanna contribute to.

@dbarabashdev, I'm closing this issue as this has been resolved in #5379


Add @babel/runtime to dependencies

It'd be cool to include @babel/runtime as a dependency than to expect all developers to have it installed on their machine. Currently, the following error is thrown:

Error: Cannot find module '@babel/runtime/helpers/classCallCheck'

Hey Paul, thanks for this PR!
Can you tell us more about that error? When does it happen?

Sure, sorry. I assume you're using babel to transpile your code when deploying to npm. It happened that I didn't have @babel/runtime installed globally on my machine, so when I ran truffle-flattener from the command line, I got the error above.
Doing npm install @babel/runtime --global fixes this issue, but adding the dependency is better imo.

I recognize the error from other projects, but we aren't using babel in truffle-flattener. We have no build process, it's just a single index.js file.
Can you show me the stack trace and your package-lock.json/yarn.lock? It has to be a problem in one of our dependencies, but I can't figure out wich one.

I think it's web3? I installed truffle-flattener globally, so there's no package-lock.json file to show.
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module '@babel/runtime/helpers/classCallCheck'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (/Users/paulrberg/.nvm/versions/node/v10.15.0/lib/node_modules/truffle-flattener/node_modules/web3/dist/web3.cjs.js:5:39)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)

Which version of truffle-flattener do you have? It's never used web3 as a dependency. Up until the latest version we used some truffle packages, which probably used web3.

Weird, it printed the same version (1.2.12) before and after running npm install truffle-flattener -g. Anyway, problem fixed now! Thanks for the support.


🐛 [Bug report]:  No unique key value for each play in FeaturedPlays

Describe the bug
No unique key value for each play in FeaturedPlays.
Keys help React identify which items have changed, are added, or are removed.
To Reproduce
Steps to reproduce the behaviour:

in local development env
can see warnings in console.

Expected behaviour
should have unique key value for each play in FeaturedPlays.
Screenshots

Desktop (please complete the following information):

OS: [ iOS]
Browser [chrome]
Version [ 22]

Additional context
Like to work on this. Could you assign me to this?

@SSK-14 , Should I assign this to you?

Yes, like to work on this.

@SSK-14 , Assigned to you.


Create and synchronise a Cassandra service

Cassandra cluster database pods need to connect to each other.
A service provides a DNS name for the cluster and each pod will be given a stable hostname under that DNS name.

https://kubernetes.io/docs/tutorials/stateful-application/cassandra/#creating-a-cassandra-headless-service

When a CassandraCluster resource is added or modified, the Service control will ensure that a headless service is created for the cluster and it will update the service configuration if the CassandraCluster configuration changes.
Part of: https://gitlab.jetstack.net/marshal/navigator/issues/26
To run the tests:
go test -v ./pkg/controllers/cassandra/... -args -v 100 -alsologtostderr

CassandraController now creates a Service resource.

Ah - tests are failing because the repo has moved to be under the jetstack org. You'll need to rebase your changes and update imports :smile:

@munnerz Thanks for the review. I think I've addressed all your and merged in the jetstack-experimental -> jetstack changes so that the CI now passes. Please take another look.

/lgtm

/approve

Thanks !


XKCD addon is missing arm64

Report
The http-add-on has arm64 support, but the example arschles/xkcd does not publish a multi-arch image.
Expected Behavior
The example should run with amd64 or arm64 workers
Actual Behavior
So, in a multi-arch cluster, if your pod lands on an arm64 node when it scales up you'll sit waiting for a while and then see:
error on backend (context marked done while waiting for deployment xkcd to reach > 0 replicas (context deadline exceeded))

The pod, having landed on an arm64 node (on the cluster I've prepared for OSSNA/GitOpsCon!) has the predictable error:
$ k logs -f xkcd-bb4b89d74-qhrnr
exec /usr/local/bin/docker-entrypoint.sh: exec format error

Steps to Reproduce the Problem
I spun up an eks cluster with eksctl create cluster --config=file=cluster.config and the repro is in kingdon-ci/fleet-infra with the cluster name multiarch-ossna23.
If you omit the amd64 node group then it would fail every time. I included my cluster definition below. (For me it only fails a random percent of the time, because only 50% of nodes are arm64, it depends if xkcd gets scheduled to an arm64 node or not.)
Logs from KEDA HTTP operator
Not relevant, but here are the chart versions anyway:
http-addon           	keda-test                  	1       	2023-05-04 19:51:41.98488364 +0000 UTC 	deployed	keda-add-ons-http-0.4.1      	0.4.0
ingress-public       	ingress-nginx              	2       	2023-05-04 19:47:20.179020377 +0000 UTC	deployed	ingress-nginx-4.6.0          	1.7.0
keda                 	keda-test                  	1       	2023-05-04 19:50:57.338495283 +0000 UTC	deployed	keda-2.10.2                  	2.10.1

What version of the KEDA HTTP Add-on are you running?
chart 0.4.1
Kubernetes Version
1.25
Platform
Amazon Web Services
Anything else?
The content of the cluster is here:
$ cat ~/w/eks-cluster/cluster.config
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: multiarch-ossna23
  region: ca-central-1

managedNodeGroups:
  - name: ng-3
    instanceType: m5.large
    desiredCapacity: 1
    iam:
      withAddonPolicies:
        autoScaler: true
    # tags:
    #   k8s.io/cluster-autoscaler/enabled: true
    #   k8s.io/cluster-autoscaler/multiarch-ossna23: owned
  - name: ng-4
    instanceType: m6g.large
    desiredCapacity: 1
    iam:
      withAddonPolicies:
        autoScaler: true
    # tags:
    #   k8s.io/cluster-autoscaler/enabled: true
    #   k8s.io/cluster-autoscaler/multiarch-ossna23: owned

# nodeGroups:
#   - name: ng-1
#     instanceType: m5.large
#     desiredCapacity: 1
#     iam:
#       withAddonPolicies:
#         autoScaler: true
#   - name: ng-2
#     instanceType: m6g.large
#     desiredCapacity: 1
#     iam:
#       withAddonPolicies:
#         autoScaler: true

gitops:
  flux:
    gitProvider: github             # required. options are github or gitlab
    flags:                          # required. arbitrary map[string]string for all flux args.
    # these args are not controlled by eksctl. see https://fluxcd.io/docs/get-started/ for all available flags
      owner: "kingdon-ci"
      repository: "fleet-infra"
      private: "false"
      branch: "main"
      namespace: "flux-system"
      path: "clusters/multiarch-ossna"
      # team: "team1,team2"

I pushed a new image at kingdonb/xkcd:latest from https://github.com/kingdonb/xkcd with:
docker buildx build --platform linux/amd64,linux/arm64 -t kingdonb/xkcd:latest . --push

It seems to be working!
The easy thing to do would be to s/arschles/kingdonb/ in the values.yaml
(Or, @arschles you can push over a new image, I think I have managed a clone of your repo, it didn't seem to be pushed anywhere public except for inside of the docker image itself? I was able to extract it, and my arm64 nodes are now singing:
Hello from XKCD-serv! 👋

There's now a callout that leads to this issue Bonus: KEDA in a doc that will get embedded in several talks at OSS Summit
(Hope to see some KEDA authors there!)

Hi,
You are right, as KEDA supports ARM64 we should use an image with ARM64 support. We are also getting the control (or at least trying to do it) over all the resources used for e2e/tests/demos/etc, so I'll an image with AMD64/ARM64 support to this repo.

(Hope to see some KEDA authors there!)

Do you mean in Bilbao on September? If yes, I live 50 km around Bilbao, and we are planing to organize something during the event as CNCF Bilbao chapter :)

I would like to go to Bilbao! But I meant OSS Summit that was just two weeks ago in Vancouver. Thanks for knocking this out!


community(you): Better support for You.com News API

Description
While YouRetriever supports both You.com's Search and News APIs, news is supported as an afterthought.
More specifically, not all of the News API parameters are exposed for the user, only those that happen to overlap with the Search API.
This PR:

improves support for both APIs, exposing the remaining News API parameters while retaining backward compatibility
refactor some REST parameter generation logic
updates the docstring of YouSearchAPIWrapper
add input validation and warnings to ensure parameters are properly set by user
🚨 Breaking: Limit the news results to k items

If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

Thanks for the review @ccurme. I'll fix the failing CI, and re-submit.
I also am planning to alias endpoint_type with endpoint, just to keep it standardized with the You implementations in other frameworks.

Thanks for the review @ccurme. I'll fix the failing CI, and re-submit.
I also am planning to alias endpoint_type with endpoint, just to keep it standardized with the You implementations in other frameworks.

to run formatter and linter locally
cd libs/community
poetry install --with lint,typing
make format
make lint

From debugging the failing tests, I realized that pydantic_v1.Field's alias parameter doesn't behave as I thought it should. The problem I faced is described in https://github.com/pydantic/pydantic/issues/3446.
So I'm reverting the use of aliases, which implies:

Reverting back to endpoint_type instead of endpoint to prevent breaking changes (I'd like some advice on how/when can I implement it for standardization with other libraries. I can also drop deprecations at that time)
Removing the count alias to num_web_results, and updated the documentation stating that num_web_results will be mapped to count for the News API

Kindly following up on this PR, @ccurme. Tqvm!

Kindly following up on this PR, @ccurme. Tqvm!

could we resolve the lint issues? can check them locally by running
cd libs/community
poetry install --with lint, typing
make format
make lint

Apologies for the continued failures on CI. I've double checked and re-run them. No more failures on make lint for you.py (although failures appear for other files irrelevant to this PR). Can you please re-run the CI again? Thank you!

The CI has been passing for 08e8658 so I'm following up on this PR @baskaryan. Thank in advance!


Outbound Postgres support in Go SDK

Fixed during the v2 rework (I think<EMAIL_ADDRESS>


grandeval, ephetic

This pull request was generated by the 'mq' tool
[test]
flake rate: 0.4
logical conflict every: 100
sleep for: 300s
[pullrequest]
requests per hour: 30
deps=[e,g]

/trunk merge


(DOCSP-28054) Docs for atlas clusters failover shows example for clusters delete

Proposed changes
Fixes incorrect example showing in docs for atlas clusters failover
Jira ticket:
https://jira.mongodb.org/browse/DOCSP-28054
Checklist

[x] I have signed the MongoDB CLA
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have added any necessary documentation in document requirements section listed in CONTRIBUTING.md (if appropriate)
[ ] I have addressed the @mongodb/docs-cloud-team comments (if appropriate)
[ ] I have updated test/README.md (if an e2e test has been added)
[x] I have run make fmt and formatted my code

evergreen retry


Input not working

I'm not sure how to get input to work with the stripped down project we currently have. As best as I can tell, there needs to be a player before it works?

fixed


fix-api-server-bind-address-flag - Fixes a flag typo in the api serve…

Fixes #2191

 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.

FWIW, I could reproduce this issue and can confirm this changed fixed it.

Thank you @stephenlawrence !


Preparing for a new release (with Python 3 support)

Greetings! I have joined this project as a maintainer (many thanks, @dw). Here is what I've been working on so far.
The big change is the addition of Python 3 support. With the help of six, this library now runs on both Python 2 and Python 3.
The other big change is to the organization of the files in the repo. I've created a traditional package structure, which makes for easier installation and testing.
In addition, I've updated setup.py to use setuptools, added the cdbmake.py script to the package installation, and updated the README with some documentation.

I'll start filing some issues and opening PRs for these items, but here's a preview of the plan:

Release a new version with Python 3 support to PyPI
Add CI testing of commits (with Travis)
Add code coverage testing (with coveralls)
Create a nicer interface for storing non-bytes data on Python 3
Add a context manager for the Writer classes
Add more thorough documentation (to ReadTheDocs)
...and a few more things.

I'll read through this PR and merge this soon to get started.

This all looks great, with one exception - test_ prefix on the filenames. It breaks tab completion and drives me insane :) Other than that please feel free to merge

Thanks a ton!

I pushed a commit to port _djb_hash to 3.x, I left the opt-in in place since the name of the package after all is "pure" :)

Ha, that was one of the things I was going to bring up gently a little later.