docker-compose leaks python in PATH

Describe the bug
docker-compose leaks the python binary so when I create a shell with docker-compose and a poetry environment, I get in PATH the python from docker-compose and not from my python environment.
To Reproduce
let
  # replace this with a poetry env/python.withPackages of your own
  myPythonEnv = import ./nix/pyEnv.nix { inherit nixpkgs; };

  nixpkgs = import <nixpkgs> {};

  # last nixpkgs with docker 1.25.0
  # (to avoid the bug https://github.com/docker/compose/issues/7127)
 # I checked against master and the package hasn't changed
  old = import (fetchTarball {
    url = "https://github.com/nixos/nixpkgs/archive/3223730c3d202f34f3833e37caeab875c85621a6.tar.gz";
    sha256 = "05z9lfm3sz8c4ffah5xhc1gcv52b7dhkzmby4lmla7dpq4zsj3gm";
  }) {};

in
nixpkgs.mkShell {
  name = "platform";
  buildInputs = with nixpkgs; [
    old.docker-compose
    myPythonEnv
  ];

}

then type python in the shell, you will notice that you get python from docker-compose. if you swap the two buildInputs, then you get myPythonEnv's python in PATH first. That's how I fixed it for now.
@Frostman
Expected behavior
I would prefer docker-compose to not propagate python in PATH.. Is that necessary ?

docker-compose is built using buildPythonApplication, I'd expect that it would create a wrapper script launching the app with the right PATH so it wouldn't leak Python.
The problem isn't reproducible if I take the docker-compose out of latest unstable (at moment of writing: flake github:NixOS/nixpkgs-channels/84d74ae9c9cbed73274b8e4e00be14688ffc93fe), but it is reproducible if I take python out of latest Nixpkgs and docker-compose out of the tarball provided, which leads me to think that the commit mentioned in the URL of the tarball needs to be investigated.

Python is always propagated by products of buildPython*. While undesirable in situations like these, it is not really possible to get rid of.
Note mkShell is a hack, that in the end is just stdenv.mkDerivation and is thus for build-time, not run-time. The reason it works is because it runs hooks, which is also the reason you encounter this issue.
In a way, it would be nice if you could say "now I need a run-time shell, don't use propagation". That would work, however, it likely means your $PATH is not constructed either. What we need is to become better at distinguishing between run-time and build-time hooks, and have Nix support that (with the new nix shell and nix develop).

Maybe using something like symlinkJoin or whatever is used to construct system-path in NixOS with nix shell will achieve the needed result?

thank you all for the details, I will try bumping see if that changes the behavior (and report back). For my usage, it was enough to swap both in the buildInputs, to:
buildInputs = with nixpkgs; [
    myPythonEnv
   old.docker-compose

  ];

so that myPythonEnv's appears in PATH first. closing.


Blacklight 6 upgrade

Test failures:

spec/features/edit_scanned_resource_spec.rb:37 (ForbiddenAttributesError)
spec/views/curation_concerns/base/structure.html.erb_spec.rb (6 mocking errors)

Closes #374

@escowles Edited. I think this is ready now.

:+1:  -- thanks for bring this one home!


Updating spring-data-elasticsearch to 5.0.0-RC1

Signed-off-by: Andriy Redko<EMAIL_ADDRESS>Description
Updating spring-data-elasticsearch to 5.0.0-RC1 (released today)
Issues Resolved
N/A
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dblock if you don't mind, needs your signoff :) thanks!

And now your approval counts too @dlvenable, welcome!


Loss function

I'm sorry that I don't understand the loss function in your code, it's different with paper.

@jinzequn Thanks for pointing it out. I have changed the loss function from l2 to Charbonnier penalty.

The results become better or worse? I have never konw about Charbonnier penalty before, I wonder that does Charbonnier penalty really work?

I did not do large quantitative evaluation, but visually they look slightly sharper comparing to l2 loss.

Thanks a lot!


New Loopback - Uncaught TypeError seen just before re-joining an apprtc loopback call, with a different name

Browsers and versions affected
M54 Canary 54.0.2839.x in Win 10, Linux
Description
"Uncaught TypeError: Cannot read property 'hangup' of null" seen just before joining an apprtc video-only loopback call
Steps to reproduce

Start an apprtc loopback call (for ex: https://appr.tc/r/138919216?debug=loopback)
After a while, end the call
In the same session, edit the URL to https://appr.tc/r/138919216?debug=loopback&audio=true and hit Enter
Observe the JS console

Expected results
Video-only loopback call should be established without errors
Actual results
Very quickly, just after you hit Enter, you'd see the JS error "Uncaught TypeError: Cannot read property 'hangup' of null", before prompt to join the apprtc video-only loopback call appears
Screenshot -

CC: @KaptenJansson

This happens even after re-joining the apprtc loopback call with a different room name (by editing the URL), in the same session
Changed the title accordingly

Issue in the new loopback logic which has been temporarily reverted.

Closing due to age.


On collection edit page, add ability to assign collection-level keywords

We will need an addition to the collection form for entering these keywords. This should function like the one on the deposit form, with FAST lookup and free text entry.
When a collection manager sets keywords, they will only be assigned to new deposits or newly versioned items in a collection, not to any existing items.

Originally part of #1738.

This is no longer a priority, so I'm closing this ticket.


fab switch does not do the right thing when manifest changes

Bug Report
Summary
fab switch operates on the repos listed in the starting manifest, but it should also consider the repos in the manifest of the destination branch.
Steps to Reproduce
Given a forest with a repo name experimental which is included in the manifest only on the experimental-branch branch:
fab clone --branch experimental-branch example # 1
fab switch master # 2
fab switch experimental-branch # 3

Expected Behaviour

experimental repo on experimental-branch branch
experimental repo on master branch
experimental repo on experimental-branch branch

Actual Behaviour

experimental repo on experimental-branch branch
experimental repo changes to master branch
experimental repo stays on master branch [sic, this is what triggered the bug report]

Other Information
Should do something sensible when switching to branch with a repo that is not yet present.
Should do something sensible when destination branch does not exist on a repo that is not included in destination manifest.

fab switch now uses destination branch manifest rather than starting manifest to determine free repos. In addition, applies changes to free/locked/pinned dependency type, and displays a message about missing new repos.
Fixed in v3.2.0.


Swift Package Manager support

As the only dependency URITemplate supports it, just adding Package.swift would work fine.

It will require additional changes as Mockingjay has mixed sources (Objective-C and Swift) in the same target which is not supported by Swift Package Manager.

what is the staus here?

This would be useful... The changes regarding mixed sources wouldn't be just a matter of translating MockingjayURLSessionConfiguration.m to swift? 🤔
You could even keep both and use .m for pods and .swift for SPM (not really sure of the impact of the changes on ObjC projects...)

I have a copy here: https://github.com/saltzmanjoelh/Mockingjay.git
@kylef Thoughts? I simply put the swizzling in where the MockingjayProtocol is registered.

@saltzmanjoelh My version corrects the build for Cocoapods and includes your version with the SwiftPM support: https://github.com/ppamorim/Mockingjay

What is the status of this? Is there any progress in supporting SMP?
I like MockingJay very much and would love to keep using it...

Although I do see some recent commits?

Maybe @ppamorim can issue a PR for SPM?


Add support for NOTICE level if defined in logging

I am wondering what your thoughts are on this.
For some reason or the other python went deliberately against using syslog standard levels. Graylog obviously does use them. There are some pypi packages available to retrofit the notice level to python, for example http://verboselogs.readthedocs.io/en/latest/readme.html
I think the default fallback (https://github.com/severb/graypy/blob/master/graypy/handler.py#L151) is not particularly helpful, since the value of python loglevels are defined in a completely different manner to syslog levels, so if I set NOTICE to be 25 graypy would pass 25 to graylog.
Another option to achieve the same thing would be to map the graylog loglevel using python loglevel ranges, something alongside
def SYSLOG_LEVEL(python_level):
  if python_level >= 60: return 1 # ALERT
  if python_level >= 50: return 2 # CRITICAL
  if python_level >= 40: return 3 # ERROR
  if python_level >= 30: return 4 # WARNING
  if python_level >= 25: return 5 # NOTICE
  if python_level >= 20: return 6 # INFO
  return 7 # DEBUG

which would work for all custom log levels.
Or I could of course just modify graypy from within my code, and leave the graypy source alone.

In my opinion graypy should convert python levels to sensible syslog levels (ie. the level value in the log record), regardless of what custom levels are defined (ie the level_name value). The current practice of passing on the python level value of any custom levels is broken.
So fwiw this is what I ended up doing:
  # Monkeypatch graypy for proper log level support
  class PythonLevelToSyslogConverter(object):
    @staticmethod
    def get(level, _):
      if level < 20:   return 7 # DEBUG
      elif level < 25: return 6 # INFO
      elif level < 30: return 5 # NOTICE
      elif level < 40: return 4 # WARNING
      elif level < 50: return 3 # ERROR
      elif level < 60: return 2 # CRITICAL
      else:            return 1 # ALERT
  graypy.handler.SYSLOG_LEVELS = PythonLevelToSyslogConverter()


BUG: L-BFGS-B non fortran contiguous error

Describe your issue.
Hi,
I am using jax (0.2.26, jaxlib v 0.1.75) to write a function to be optimized for the mle, but I have a problem with scipy minimizer.
The function itself is a R^n -> R function written in jax-jit compatible format. The function itself is pretty simple and convex, and indeed the optimization is quite simple.
Unfortunately, for my project I need to use the L-BFGS-B method, as I have to compare it with other implementations, but when called it raises the exception ValueError: failed to initialize intent(inout) array -- input not fortran contiguous. Note that both the x and the gradient have the correct (n,) shape.
The fun thing is that the exact same code does not give any problem if I use the BFGS method of scipy optimize.
At the moment I can't provide a reproducible code, I will do it as soon as I get back home tonight.
Reproducing Code Example
from numpy.random import default_rng
import jax.numpy as jnp
import jax
from jax.config import config
config.update('jax_enable_x64', True)   # This way jax uses 64-bit float instead of the default 32

from scipy.optimize import minimize

# Data generation
rng = default_rng(42)
p = 5; n = 1000
mean = rng.normal(size=p); cov = rng.normal(size=(p, p)); cov = cov @ cov.T
print(mean.shape)    # (p,)
print(cov.shape)        # (p, p)

y = rng.multivariate_normal(mean, cov, size=(n))
y = jnp.concatenate([y.T, jnp.ones(shape=(1, n))], axis=0)
print(y.shape)           # (p+1, n)

# Function and gradient definition, this is the logpdf of a p+1 mvn with 0 mean
@jax.jit
def nloglik(x):
     mat = jnp.zeros(shape=(p+1, p+1)).at[jnp.tril_indices(p+1)].set(x)
     mat = jnp.matmul(mat, mat.T)
     maha = jnp.trace(jnp.linalg.solve(mat, jnp.matmul(y, y.T)))
     return 0.5 * (n * jnp.linalg.slogdet(mat)[1] + maha)

grad = jax.jit(jax.grad(nloglik))

# Starting point
init = jnp.linalg.cholesky(jnp.identity(p+1))[jnp.tril_indices(p+1)]
print(init.shape)                  # ((p+1) * (p+2) / 2, )
starting_fun = nloglik(init) # To trigger jit
starting_grad = grad(init) # To trigger jit
print(starting_fun.shape)     # ()
print(starting_grad.shape)    # ((p+1) * (p+2) / 2, )

minimize(nloglik, init, jac=grad, method='l-bfgs-b')
# This throws the error shown below while
minimize(nloglik, init, jac=grad, method='bfgs')
# This works perfectly fine

Error message
Traceback (most recent call last):
  File "small_test.py", line 215, in <module>
    'iprint':50,
  File "/home/jschiavon/.pyenv/versions/optispd/lib/python3.7/site-packages/scipy/optimize/_minimize.py", line 624, in minimize
    callback=callback, **options)
  File "/home/jschiavon/.pyenv/versions/optispd/lib/python3.7/site-packages/scipy/optimize/lbfgsb.py", line 353, in _minimize_lbfgsb
    isave, dsave, maxls)
ValueError: failed to initialize intent(inout) array -- input not fortran contiguous

SciPy/NumPy/Python version information
1.7.3 1.21.4 sys.version_info(major=3, minor=7, micro=9, releaselevel='final', serial=0)

L-BFGS-B expects regular NumPy arrays as outputs for nloglik and grad functions, internally JAX arrays are converted to NumPy arrays. Here, the output of grad function can't be used without an explicit copy.
Using minimize(nloglik, init, jac=lambda x: numpy.array(grad(x)), method='l-bfgs-b') would fix the problem.

Thank you, I solved it a while ago with the same workaround.
Still, I would add a couple of lines in the docs to specify that the "L-BFGS-B" has stronger requirements for the outputs of the function.


Increase double-click time for editing environments (Double click to edit)

Describe the bug
Double clicking on a newly created sub environment only works if you click really fast and if you work with a laptop, where your double-clicking is probably a bit slower than with a mouse you can't select or edit the sub environments.
To Reproduce
Steps to reproduce the behavior:

Click 'ctrl + e' to manage environments
Create one or two sub environments
Try to select it with a double-click on a touch pad.

It would be great if the double click-click time could be increased a bit, so have more time to execute the second click.

Is this issue still a problem in the latest Insomnia?  I am not able to reproduce it.


HeroRoller doesn't work embedded in Character Sheets.

Okay, it mostly works. If I put a roll like

!heroll --d:4n

As a "Custom Action" for a Hero System character sheet, it can't figure out who invoked the command and instead relies on the current speaker settings.
For players, this is fine, as they usually only control one character each. But for the GM, this often means the OCV of the last speaker is used, instead of the OCV of the character sheet containing the invocation.
I am very new to both javascript and the Roll20 API or I might have attempted a fix.
Ideally, the best thing would be to be able to autodetect being invoked from a character sheet. Failing that, having an option like:

--as:Heritic

would greatly aid in running games.

I know we discussed this on the API Forum, but for the benefit of others who might see the above request, it is in version 1.2.1, and is discussed here:
https://app.roll20.net/forum/permalink/9956423/

@swestrup, if this was resolved by v1.2.1, you could close the issue.

Alas, although this USED to work, recent changes to the Roll20 API have broken it again. Currently the --as: option does not work embedded in a character sheet, although it still works in chat.


New sample script: Restore configurations of Tenant Wide Extensions

Adds new sample script to restore configurations of tenant wide extensions from a tenant. Closes #1439

@garrytrinder - Not sure why test fails. I didn't make any change in the indicated file.

Coverage remained the same at 100.0% when pulling f536beb378ffb08a4c7f03ce5ccc0667a7daa1d4 on sprider:restore-tenantwideextensions-configuration into 9bd92e21206e966fd214384ffabce900057a7861 on pnp:master.

Thanks @sprider we will review shortly 👍🏻

Hi @waldekmastykarz, Sorry for the inconvenience this may have caused. Not sure how those three commits got added. I have reverted the additional commits I made from this pull request. Could you please check now?

Hey @sprider, I've been able to resolve the conflict locally, you should be able to resolve this by following the below steps.

Checkout local master branch > git checkout master
Ensure your local master is up to date > git pull --rebase upstream master
Checkout your feature branch > git checkout restore-tenantwideextensions-configuration
Rebase your feature branch from master > git rebase master
A merge conflict will occur in mkdocs.yml > open in VSCode, accept both changes and save the file
Mark the conflict as resolved in VSCode by staging the updated mkdocs.yml file
Continue the rebase and complete the rebase > git rebase --continue
Move your sample scripts file into the new sample-scripts folder under docs and commit the change
Perform an interactive rebase fixing up additional commits into 4e939495a > git rebase -i HEAD~10 See https://garrytrinder.github.io/2020/03/squashing-commits-using-interactive-rebase
Check that your feature branch is now one commit ahead of master > git log --graph --oneline --decorate
Push your feature branch to origin updating this PR > git push --force

I have however pushed a fixed version of your branch to my fork, you can find it here https://github.com/garrytrinder/office365-cli/tree/restore-tenantwideextensions-configuration

@garrytrinder, Thank you for your detailed steps.
I am able to follow till step number 6(Mark the conflict as resolved in VSCode by staging the updated mkdocs.yml file). Noticed the following when I executed git rebase --continue

If I copy restore-tenant-wide-extensions-configuration.md file in docs/docs/sample-scripts/spo folder, I see the following when I commit:

Can I proceed with this?

You are seeing the message as the conflict in mkdocs.yml has not been staged before continuing the rebase.
In the VSCode UI, on the line for mkdocs.yml in the Merge Changes section, there is a plus symbol next to the file, this stages the change and marks the conflict as resolved. It's not obvious from the UI that you have to stage the change after accepting the change in the file when in a merge conflict scenario.
I wouldn't make extra changes during the rebase as that could cause more issues, it's tempting but should be avoided. So I would discard the change to the .md file before continuing the rebase and perform that change after the rebase has completed.

@garrytrinder, I am able to stage mkdocs.yml via VS Code and resolve the conflict. Also I am not making any changes to any of these files. export-configs-tenant-wide-extensions.md is not even part of my change.
Is it possible to share your steps with a short screen recording. If it is too much at this time, Can I submit a new pull request with difference branch name. Please advice.

Ok, after resolving the conflicts and staging, can you not continue the rebase?

@garrytrinder Thank you for your time to review my issue.
I see the following changes when I copy my sample "script restore-tenant-wide-extensions-configuration.md" in "docs/docs/sample-scripts/spo" folder.
Could you please share a quick screen recording of the below two steps alone?

Move your sample scripts file into the new sample-scripts folder under docs and commit the change(refer screenshot for my output)
Perform an interactive rebase fixing up additional commits into 4e939495a > git rebase -i HEAD~10

From your screenshot, the two files are still showing as in conflict which is represented by C, clicking the Stage Change button should resolve the conflict, either removing the change if it has already been made or as Index Modified.

If you have the above git state, you can then continue the rebase with git rebase --continue.

@garrytrinder Thank you ! I am able to stage the files. I don't see export-configs-tenant-wide-extensions.md file in your screenshots. I am little confused with that file. Should I remove that file by running git remove 'export-configs-tenant-wide-extensions.md' and continue?

No need to remove the other file, that just represents another file that was in conflict in this particular commit, removing that file will remove it from the commit which we don't want. Just resolve any conflicts in the file and stage in the same way before continuing the rebase.
Happy for you to raise another PR if you feel that will be easier.

@garrytrinder I have created a new pull request(https://github.com/pnp/cli-microsoft365/pull/1811) as I am not able to resolve this issue with this branch. Sorry for the inconvenience again and Thank you so much for your time to review and guide me on this.


dotplot with x axis being one variable and y axis being another variable

[x] Additional function parameters / changed functionality / changed defaults?
[ ] New analysis tool: A simple analysis tool you have been using and are missing in sc.tools?
[ ] New plotting function: A kind of plot you would like to seein sc.pl?
[ ] External tools: Do you know an existing package that should go into sc.external.*?
[ ] Other?

Hi,
I'm wondering if it is possible to add a new feature to sc.pl.dotplot if it is not too much of work. Say I'm interested in just one gene, and I want to plot the expression across two conditions. I understand that currently this could be achieved by using groupby = ['var1', 'var2'], but it'll be only one column, and conditions will be coerced into var1_var2. Is it possible to add a feature to the plotting function and change this behavior? I want var1 to be the x axis and var2 to be the y axis.
Thank you very much!

That's an interesting idea and I see how it would be useful. I don't think it's going to be easy to implement, since I believe our code is heavily based around having groups of observations on one axis, groups of variables on the other.
Definitely something to keep in mind for a refactor though.

I've created a hacky workaround by creating new DotPlot class here.
It turned out to be strangely difficult to update the dot colors, so this workaround is essentially a matrix plot with properly sized (but uniformly colored) dots on top.
It can be used as such:
from _newdotplot import NewDotPlot
NewDotPlot(adata, var_names='CD8A', groupby=['patient','celltype'], dotcolor='powderblue', figsize=(10,10)).style(color_on='square', cmap='Reds').show()

@zhangguy, adding on to some thoughts from your PR https://github.com/theislab/scanpy/pull/2055#issuecomment-987012001
From my reading of that PR, you added a boolean argument groupby_expand which, when True, assumed group_by had two values: a grouping variable for the rows of the plot and a grouping variable for the columns of the plot. It also assumed var_names was a single variable which would be used to fill cell in the plot. As an example:
pbmc = sc.datasets.pbmc3k_processed().raw.to_adata()
pbmc.obs["sampleid"] = np.repeat(["s1", "s2"], pbmc.n_obs / 2)

sc.pl.dotplot(pbmc, var_names='LDHB', groupby=['louvain', 'sampleid'], groupby_expand=True)

Instead of having an argument which changes the interpretation of the earlier arguments, I would prefer more orthogonal arguments.
I think you'd be able to get an output close to what you would currently like with:
import scanpy as sc, pandas as pd, numpy as np

pbmc = sc.datasets.pbmc3k_processed().raw.to_adata()
pbmc.obs["sampleid"] = np.repeat(["s1", "s2"], pbmc.n_obs / 2)
df = sc.get.obs_df(pbmc, ["LDHB", "louvain", "sampleid"])

summarized = df.pivot_table(
    index=["louvain", "sampleid"],
    values="LDHB",
    aggfunc=[np.mean, np.count_nonzero]
)
color_df = summarized["mean"].unstack()
size_df = summarized["count_nonzero"].unstack()

# I don't think the var_names or groupby variables are actually important here
sc.pl.DotPlot(
    pbmc,
    var_names="LDHB",  groupby=["louvain", "sampleid"],  # Just here so it doesn't error
    dot_color_df=color_df, dot_size_df=size_df,
).style(cmap="Reds").show()

I think this functionality could be more generic, and inspired by the pd.pivot_table function. This could end up looking like:
# Imaginary implementation:
sc.pl.heatmap(
    pbmc,
    var_names="LDHB",
    row_groups="louvain",
    col_groups="sampleid"
)

sc.pl.heatmap(
    pbmc,
    var_names=["LDHB", "LYZ", "CD79A"],
    row_groups="louvain",
    col_groups="sampleid"
)

What do you think about that?

@zhangguy, adding on to some thoughts from your PR #2055 (comment)
From my reading of that PR, you added a boolean argument groupby_expand which, when True, assumed group_by had two values: a grouping variable for the rows of the plot and a grouping variable for the columns of the plot. It also assumed var_names was a single variable which would be used to fill cell in the plot. As an example:
pbmc = sc.datasets.pbmc3k_processed().raw.to_adata()
pbmc.obs["sampleid"] = np.repeat(["s1", "s2"], pbmc.n_obs / 2)

sc.pl.dotplot(pbmc, var_names='LDHB', groupby=['louvain', 'sampleid'], groupby_expand=True)

Instead of having an argument which changes the interpretation of the earlier arguments, I would prefer more orthogonal arguments.
I think you'd be able to get an output close to what you would currently like with:
import scanpy as sc, pandas as pd, numpy as np

pbmc = sc.datasets.pbmc3k_processed().raw.to_adata()
pbmc.obs["sampleid"] = np.repeat(["s1", "s2"], pbmc.n_obs / 2)
df = sc.get.obs_df(pbmc, ["LDHB", "louvain", "sampleid"])

summarized = df.pivot_table(
    index=["louvain", "sampleid"],
    values="LDHB",
    aggfunc=[np.mean, np.count_nonzero]
)
color_df = summarized["mean"].unstack()
size_df = summarized["count_nonzero"].unstack()

# I don't think the var_names or groupby variables are actually important here
sc.pl.DotPlot(
    pbmc,
    var_names="LDHB",  groupby=["louvain", "sampleid"],  # Just here so it doesn't error
    dot_color_df=color_df, dot_size_df=size_df,
).style(cmap="Reds").show()

I think this functionality could be more generic, and inspired by the pd.pivot_table function. This could end up looking like:
# Imaginary implementation:
sc.pl.heatmap(
    pbmc,
    var_names="LDHB",
    row_groups="louvain",
    col_groups="sampleid"
)

sc.pl.heatmap(
    pbmc,
    var_names=["LDHB", "LYZ", "CD79A"],
    row_groups="louvain",
    col_groups="sampleid"
)

What do you think about that?

Thanks @ivirshup !
I like these lines you suggested- perhaps I can adopt to make it more elegant when creating color_df/size_df:
import scanpy as sc, pandas as pd, numpy as np

pbmc = sc.datasets.pbmc3k_processed().raw.to_adata()
pbmc.obs["sampleid"] = np.repeat(["s1", "s2"], pbmc.n_obs / 2)
df = sc.get.obs_df(pbmc, ["LDHB", "louvain", "sampleid"])

summarized = df.pivot_table(
    index=["louvain", "sampleid"],
    values="LDHB",
    aggfunc=[np.mean, np.count_nonzero]
)
color_df = summarized["mean"].unstack()
size_df = summarized["count_nonzero"].unstack()

# I don't think the var_names or groupby variables are actually important here
sc.pl.DotPlot(
    pbmc,
    var_names="LDHB",  groupby=["louvain", "sampleid"],  # Just here so it doesn't error
    dot_color_df=color_df, dot_size_df=size_df,
).style(cmap="Reds").show()

this is the output:

some work are needed to modify the grid/axis size, legend and scale. Actually this is the reason I work on top of the _dotplot and _baseplot function/ classes to implement the solution- to make the plots the same style with scanpy dotplot without doing too much work on the cosmetics.
But I can certainly change grouby_expand from bool to an actual variable group_cols as you suggested in #2055 . Or should we call it col_groups as you did in your sc.pl.heatmap pseudo code?
I'd be more than happy to make it more generalized, i.e., to sc.pl.heatmap, but I may need some time to understand sc.pl.heatmap first. The plotting functions are getting really complex- it took me some time to understand _dotplot and _baseplot :)
Thanks

Or should we call it col_groups as you did in your sc.pl.heatmap pseudo code?

That could be up to you. It depends on what the user is trying to achieve, which makes more sense. For instance, I'm not sure if it makes sense to allow splitting the columns by both variables and groups, or if that's the wrong abstraction.

I'd be more than happy to make it more generalized, i.e., to sc.pl.heatmap, but I may need some time to understand sc.pl.heatmap first. The plotting functions are getting really complex- it took me some time to understand _dotplot and _baseplot :)

This code could definitely be a lot more simple. Would definitely appreciate help here! I think some of the concepts used in seaborn could be quite useful here, though it looks like they're under heavy refactoring at the moment (relevant seaborn branch).
Maybe a good first step would be to fix how so the dotplot would look right if the user provides the dot size and dot color dataframes? Would make these plots possible, and gives an interface to try later approaches with.

Hi @ivirshup
I made some updates to PR #2055 . The column grouping argument was changed to an actual string/list 'col_groups'.
A few examples:
## plot one gene, one column grouping variable
sc.pl.dotplot(pbmc, var_names='C1QA', groupby='louvain', col_groups='sampleid')

## plot two genes, one column grouping variable
sc.pl.dotplot(pbmc, var_names=['C1QA', 'CD19'], groupby='louvain', col_groups='sampleid')

## plot two genes, tow column group variable
sc.pl.dotplot(pbmc, var_names=['C1QA', 'CD19'], groupby='louvain', col_groups=['sampleid', 'condition'])

## or we could use the same varaibles as y axis
sc.pl.dotplot(pbmc, var_names=['C1QA', 'CD19'], groupby=['sampleid', 'condition'], col_groups='louvain')

For the heatmap, I think you were referring to sc.pl.matrixplot. sc.pl.heatmap is a different function which plot a cell as a row and a gene as a column. col_groups was also added to sc.pl.matrixplot:
## plot two genes, tow column group variable
sc.pl.matrixplot(pbmc, var_names=['C1QA', 'CD19'], groupby='louvain', col_groups=['sampleid', 'condition'])

For the row_groups you proposed in your hypothetical sc.pl.heatmap implementation, it is equivalent to the current groupby argument in sc.pl.dotplot/sc.pl.matrixplot. I think it might be good to keep it as is for now- for this kind of changes it might be good to do a coordinated update on all plotting functions since I see quite a few functions use the groupby argument.


Timeline does not show frame numbers

Original ticket:
https://sourceforge.net/p/djv/feature-requests/90/

The timeline now shows frame number ticks and labels at appropriate intervals.

Hi, Sorry to bring this up again, but I'm using DJV 2.0.5 and need to know what frame is displayed from an image sequence in DPX, and I cannot find where to get that info.
In this use case, it makes DJV not good for what I need so I would love to be able to know the frame number / file name (in case it's many images forming a sequence).
Maybe I'm just blind and don't look at the right place, in that case thanks for pointing it to me!

Hi, do you have the time units set to "frames"? You can change that in the settings (click the gear button in the top right):

Hi, no sorry, I had missed that, thanks for your reply, this is now working perfectly for my need!

I had to google this to find out how to do it.
It's in the right spot. Not sure where to put it where it's easier to see?
Thanks for having it searchable!


Add support for snapit

WHY are these changes introduced?
To add support for the /snapit command in PRs, which will publish an snapshot of all packages and post the info back in the PR.

WHAT is this pull request doing?
Add a snapit action.

HOW to test your changes?

Post-merge steps

Checklist

[ ] I've read the Contributing Guidelines
[ ] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[ ] I've added a changeset if this PR contains user-facing or noteworthy changes
[ ] I've added tests to cover my changes
[ ] I've added or updated the documentation

Awesome! We should update the version of snapit if https://github.com/Shopify/snapit/pull/14#issuecomment-2206097727 because create-hydrogen for example would need to be shown in a different way.

Yeah, it's tricky, I think that Idea makes sense but I don't think i'll have time to implement it so not sure when that will happen :/
I will maybe add a new property:
custom_message_prefix and custom_message_suffix so that you can define custom messages before and after the packages info, maybe there you can add something about create-hydrogen?


Enhance chrome and firefox extension's UI.

Enhance extension's interface (both firefox and chrome)...
(Used Bootstrap because it was a better fit.)

Pinging @0x48piraj :)

There will be a subscribe button, too

By the way, merging this, great work @Rishabh570


Cannot read property panel of undefined

Steps to Reproduce:

run code.sh --user-data-dir <empty folder>
click on extensions viewlet
click on the "..." and pick "Show popular extensions"

=> Cannot read property 'panel' of undefined

Fixed by 2ad75aa47bb4ff53c13acf28491c86ac5e1db554


Model statistics console: Dubious calculation of total mapping time in resource model statistics view

On a system with substantial traffic, we found that the "total time" shown in the model statistics is dubious. Here, the number of instantiations and subsequent mappings multiplied by the average duration does not add up to the total time shown. This is a client-side calculation and should be investigated.

The issue here is not that the averages or total are wrong - it is a formatting error in the view. The instantiation count, when exceed 10.000 instantiations, has a order-of magnitude error. "6.3k" in the above image sound read "63k".

Fixed!


feat: User sees show events on the info page GRO-1024

This PR adds back something that was removed when we re-built the more info page for shows: PartnerShowEvent records. Here's the Figma I was following:
https://www.figma.com/file/k465puwy6YQOcEESEkppni/Smaller-Tasks-2022?node-id=24%3A952
What I did here was update the GQL to include the events array and then I broke out an EventList component. I didn't start with that component extracted but then when it came time to test it was handy to have a way to filter down to that part of the page.

Heres some screenshots

https://artsyproduct.atlassian.net/browse/GRO-1024
/cc @artsy/grow-devs @starsirius

would it make sense to configure the dateTimeRange to show the local time instead of UTC?

Also, just surfacing that the CMS doesn't have guards in place for the description, title and event type so partners might put random stuff in that will be shown on the page.

Yeah that's a good call out @TMcMeans about the timezone. This field in MP is hardcoded to UTC:
https://github.com/artsy/metaphysics/blob/main/src/schema/v2/show_event.ts#L28
So I guess I'm not sure what to do here - any thoughts @damassi? What do we typically do with regard to timezones in Force? 🤔

isnt there a function in force called DateTimeFormat() that does just that?? @damassi correct me here if I'm wrong

im looking at some of the auctions sale specs and it seems like there are formattedStart & endTimes that can be fetched and rendered client-side but I dunno if the show events have any of those properties.

Well I found this: https://github.com/artsy/force/blob/main/src/Apps/Auction/Components/AuctionDetails/AuctionDetailsStartTime.tsx#L12-L15
And I read that file but I don't see how this is done client-side and where we pass the user's timezone?

yep, that's the file I was looking in but those formatted times are fetched from the query, and then rendered client-side.

Ok with https://github.com/artsy/metaphysics/pull/4396 I was able to update the logic in MP so that a user's timezone is taken into account - see screenshot above! I'm going to merge this and get it out to production. 😅


disable extension pack should disable individuals

VSCode Version: 1.8.1

Using "PHP Extension Pack" as an example.
It contains "PHP Debug" and "PHP IntelliSense".
Disable it ("disable by workspace") only disable itself. I need to disable "PHP Debug" and "PHP IntelliSense" individually.

Duplicate of #16666. You can find more discussion of this behavior on #14440


Control process resources

Hi,
I'm experimenting with different process monitors like supervisord and Circus, looking for control on managed process' resources like max-open-files and such.
Reding Eye Wiki and main md, I didn't find such feature.
If there is such feature, can you point me to Eye documentation?
Thanks,
Yarden

Right now eye supported only this checks https://github.com/kostya/eye/tree/master/lib/eye/checker. But you can write custom checker, with any feature that supported by sigar gem https://support.hyperic.com/display/SIGAR/Home (open files, network usage and such metrics). You can also write your custom checker as eye extension gem.

Maybe I'm missing something.
Is Eye is a process manager? can it spawn processes?
If yes, can I set resource limit like nofile ? or the spawned process inherits the user limit configuration?
My intention is not (only) to monitor resource consumption, but to allow resource intensive processes not to be limited by process management system (supervisord limits nofile for 1024, for not reason).

Eye mainly is a process manager, it spawn processes, check it for alive, memory, cpu, and something, and restart them if needed.
File limit should be inherited from eye daemon.
If you want to decrease limit, you can do like this:
start_command "sh -c 'ulimit -n 10 && youprocess'"

but shell sequences allowed only if youprocess is selfdaemonized (https://github.com/kostya/eye/wiki/About-start_command).

Thanks for clarifying this one :)


Correct sign stacksize

Copy-paste error from mineflayer...
How can we make sure mapdata is always up-to-date?

It needs to be parsed from an official source, nothing we can do other than catch errors when they come up


interactive code better user experience improvements

Description
The interactive code editor had an issue with c/cpp language highlights and poor editing experience. CodeMirror indeed has better configuration options and many styles that can be configured and used.
What?

C/CPP kernel support is better checked
CodeMirror can be configured in thebe-config dictionary.  An example is
thebe_config = {
"binderUrl": "https://binder4.org.aalto.fi",
"repository_url": "https://github.com/jupyter-xeus/xeus-cling/stable",
"always_load": False,
"codemirror-config": {
'theme': 'eclipse',
'indentUnit': "4",
'indentWithTabs': "true",
'electricChars': "true",
'lineNumbers': "true"
}
}
thebe.py modified to support codemirror themes (only eclipse and abcdef theme styles for now), addons (matchbrackets is working, but show-hint is not -- so it can be removed), and codemirror-config parsing and handling.
thebe.js modified just to get the c/cpp language name from the kernel name. That part should anyway be changed in the next releases.

Testing
What type of test did you run?

[ ] Accessibility test using the WAVE extension.
[ ] Django unit tests.
[ ] Selenium tests.
[ ] Other test. (Add a description below)
[ X] Manual testing.

[ADD A DESCRIPTION ABOUT WHAT YOU TESTED MANUALLY]
Did you test the changes in

[X ] Chrome, Edge
[ ] Firefox
[ ] This pull request cannot be tested in the browser.

Think of what is affected by these changes and could become broken
The changes are not expected to break anything since I have changed the dependencies.
Translation

[ ] Did you modify or add new strings in the user interface? (Read about how to create translation)
No

Programming style
Yes

[ ] Did you follow our style guides?

Have you updated the README or other relevant documentation?
It is not needed, but may be interactive code-related part in the README might be altered to show how thebe-config can be used to configure codemirror.

[ ] documents inside the doc directory.
[ ] README.md.
[ ] Aplus Manual.
[ ] Other documentation (mention below which documentation).

Is it Done?

[ ] Reviewer has finished the code review
[ ] After the review, the developer has made changes accordingly
[ ] Customer/Teacher has accepted the implementation of the feature

Clean up your git commit history before submitting the pull request!

Documentation links for myself:

https://thebe.readthedocs.io/en/latest/configure.html#customize-codemirror
https://codemirror.net/doc/manual.html#config
https://github.com/codemirror/codemirror

@yusein-ali I forgot to say this: the git commit is currently not linked to your GitHub account. The link is based on the commit author email and the email addresses in your GitHub profile. Would you like to fix the link so that you will better receive recognition for your A+ contributions? It is possible to rewrite history and change the author email in the existing git commit.


Regression: saving buffer will affect folding

Neovim version (nvim -v | head -n1)
NVIM v0.8.0-dev+1856-g58323b1fe
Operating system/version
macOS 12
How to reproduce the issue

Open some fold manually (with zr, etc.) while &foldlevel remaining unchanged
Save the buffer, e.g., :w

nvim-ufo config is quite minimal, e.g.,
  require 'ufo'.setup {
    open_fold_hl_timeout = 150,
  }

FYI, the file I was working on is a python file where foldmethod=expr.
Expected behavior
All open/close folds should remain intact and untouched. This would include all folds that were manually opened or closed. This behavior was fine in d99d722.
Actual behavior
Bug: Folds will close (or open) as per the &foldlevel variable.
After doing git bisect, I think the first commit that breaks the behavior is d0bf0cb.

It's expected, using below config to avoid:
local ftMap = {
    python = ''
}
require('ufo').setup({
    provider_selector = function(bufnr, filetype)
        return ftMap[filetype]
    end
})

ufo only respect diff and marker foldmethod if the provider_selector return not '' value.

This sounds overbearing, but I don't think it is necessary to use other foldmethods after the treesitter provider is added. Only few filetype buffer will use a specific expr, IMO.

Thanks, so it's related to the "fold provider" as in the README: https://github.com/kevinhwang91/nvim-ufo#customize-provider-selector
Is the fold provider supposed to invalidate all the existing folds (upon saving) and update to the new fold by default and that's what you intended? I would not agree with the default behavior of losing folds whenever the folds get updated for some reason, but if that's the case I could always disable the fold provider.
FYI, I am using foldmethod=expr with treesitter folding, foldexpr=nvim_treesitter#foldexpr().

foldmethod is window opt, which may be changed by the user and other plugins. The new window opts in Neovim will inherit the last one which makes ufo doesn't update if ufo only updates in manual foldmethod. I don't want to waste time to solve this non-sense issue. Users should make sure the fold works well if they use ufo and other fold plugins.
You can disable all the fold providers if you want.

Thanks for your reply. What I've learned after reading your comments and documentations carefully again is that nvim-ufo works with foldmethod=manual (but actual folds are obtained from the provider, through foldexpr, or whatever provider strategies). The foldmethod=expr is a usual setup if nvim-ufo were not used, so I happened to have that option.
So the behavior in this issue seems to be my misunderstanding and now I can get understand why you thought the issue is "non-sense", probably due to my ignorance of how nvim-ufo works and what it expects, but I would like to mention that the mechanism and implementation details are not necessarily crystal clear for users (from what can be tell from README). With all due respect, I don't think it is a non-sense to feel the unexpected behavior itself where folding is lost whenever saving (regarldess foldmethod=manual or foldmethod=expr) is inconvenient.
Anyway, thanks for providing the workaround and your efforts for the great plugin!

I will add some details on how ufo works after treesitter provider is added.
If you have read the codebase of ufo, you will find that ufo has made great efforts to improve its performance and defeat any fold plugins.
Theoretically, perf of treesitter provider will be better than set foldexpr=nvim_treesitter#foldexpr() in ufo.

If one uses treesitter provider, the workaround of disabling provider (empty string "") is no longer valid. As soon as one saves the buffer, all folds will be reset (or everything gets closed in my case) as per foldlevel. So, provided treesitter fold provider is used, how am I supposed to stop all the folds reset?

the workaround of disabling provider (empty string "") is no longer valid.

Can't reproduce it, post your setup.

As soon as one saves the buffer, all folds will be reset (or everything gets closed in my case) as per foldlevel. So, provided treesitter fold provider is used, how am I supposed to stop all the folds reset?

Increase your foldlevel, Once apply folds with foldmethod=manual, Neovim will respect the foldlevel and close folds smaller than foldlevel.

Of course I read them carefully. The effective configs are actually identical, I just wanted to use treesitter provider for the demonstration purposes. Indeed the exact same config in #6 doesn't change anything and irrelevant to the behavior, as long as treesitter provider is used.
Having the maximum possible foldlevel set foldlevel=99 foldlevelstart=-1 would prevent all the folds being closed when updated, but this is not a perfect solution because one may still change the foldlevel while editing. For example, zM (close all the folds) will make foldlevel=0 and zR (open all the folds) will make foldlevel=99 (or actually the deepest fold level). I would like to mention again that no matter what foldlevel is used, the folds that were open/closed manually by users should remain untouched.

Of course I read them carefully. The effective configs are actually identical, I just wanted to use treesitter provider for the demonstration purposes. Indeed the exact same config in #6 doesn't change anything and irrelevant to the behavior, as long as treesitter provider is used.

open a new issue and use a minimal config please.

Having the maximum possible foldlevel set foldlevel=99 foldlevelstart=-1 would prevent all the folds being closed when updated, but this is not a perfect solution because one may still change the foldlevel while editing. For example, zM (close all the folds) will make foldlevel=0 and zR (open all the folds) will make foldlevel=99 (or actually the deepest fold level).

Please check out https://github.com/kevinhwang91/nvim-ufo/issues/7, need to remap zM and zR.

I would like to emphasize again that no matter what foldlevel is used, the folds that were open/closed manually by users should remain untouched.

Can't fix it, this is the limit of manual.  I have read the source code, FFI also can't work.

OK Thanks. I'd like to mention that the config was already minimal and the issues I am mentioning still lies in the same context. But if you mind, for this issue I'll be just simply stick to NO fold providers. When the treesitter feature is complete ad becomes more stable to use with other bugs you mentioned are fixed, I'll revisit and open a new issue.


Pairs matching bug

Pairs matching fails to match the parenthesis in the following snippet
  if ((ACommand >= ecDeleteLastChar) and (ACommand < ecUndo)) or

Snippet is taken from line 10491 in BCEditor.Editor.Base which I used for testing, it also happens in other places in the same file, this is with the "Object Pascal.json" highlighter.

Fixed.


api: add note to NEP-11 wrappers regarding method name deviations

Coverage remained the same at 82.207% when pulling ddcb5b34fd713f2236d4e505e0b9959cf067e65c on nep11-docs into 18d2afd5c42c381fed936309c77e8bc6dcaa43b1 on master.


ShinyProxy not serving on 8080 port.

I am trying to install ShinyProxy in a local server The application.yaml config I use
proxy:
  title: Open Analytics Shiny Proxy
  logo-url: http://www.openanalytics.eu/sites/www.openanalytics.eu/themes/oa/logo.png
  landing-page: /
  heartbeat-rate: 10000
  heartbeat-timeout: 60000
  port: 8080
  authentication: ldap
  admin-groups: scientists
  # Example: 'simple' authentication configuration
  users:
  - name: jack
    password: password
    groups: scientists
  - name: jeff
    password: password
    groups: mathematicians
  # Docker configuration
  docker:
    cert-path: /home/none
    url: http://localhost:2375
    port-range-start: 20000
  specs:
  - id: 01_hello
    display-name: Hello Application
    description: Application which demonstrates the basics of a Shiny app
    container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    container-image: openanalytics/shinyproxy-demo
    access-groups: [scientists, mathematicians]
  - id: 06_tabsets
    container-cmd: ["R", "-e", "shinyproxy::run_06_tabsets()"]
    container-image: openanalytics/shinyproxy-demo
    access-groups: scientists

logging:
  file:
    shinyproxy.log

ShinyProxy is running as a service on port 8080.
● shinyproxy.service - ShinyProxy
   Loaded: loaded (/etc/systemd/system/shinyproxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-27 08:43:30 IST; 5 days ago
 Main PID: 31430 (java)
    Tasks: 40
   Memory: 897.8M
   CGroup: /system.slice/shinyproxy.service
           └─31430 /usr/bin/java -jar /opt/shinyproxy/shinyproxy.jar

However, if I curl the URL, it says
$ curl localhost:8080
curl: (7) Failed connect to localhost:8080; Connection refused

My docker is up and running on 2375 and I can spin up a test container and access it over browser. So that doesn't seem to be the problem here. Could anyone help me out?

Hi, @sarthi2395. I think you need to change authentication to “simple”.

Ah snap. Thanks! I changed authentication to simple, restarted the service. Now curl doesn't throw any error and does not print anything when run on the terminal. I also tried loading the URL in my browser, still no luck.

have you configured docker startup options ?

Yes I did. Docker seems to be running fine on 2375
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:// -D -H tcp://<IP_ADDRESS>:2375

I figured out what the issue was. Looks like the port 8080 was not open to remote access. I use a CentOS server so I fixed this with
firewall-cmd --zone=public --add-port=8080/tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

This, if added in FAQ would be really helpful. Closing this thread now.


Allow Unicode filenames.

The fName may not properly encoded when the Content-Disposition header is being set.

It might be better to 3xx redirect the user to the correct filename contained in the path instead of trying to use the correct encoding in the header: http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http


Add SpanEvent request build and upload process in benchmark module

What does this PR do?

Rename MetricsContext to BenchmarkContext so that it can be used for span as well
Create SpanRequestBodyBuilder to build span request
Create BenchmarkSpanToSpanEventMapper to map from BenchmarkSpan to SpanEvent
Update DatadogHttpClient to be able to upload span request
Add some unit tests.

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.99%. Comparing base (d42c570) to head (ac637b5).

Additional details and impacted files
@@                  Coverage Diff                  @@
##           feature/profiling    #2217      +/-   ##
=====================================================
+ Coverage              69.94%   69.99%   +0.05%
=====================================================
  Files                    726      726
  Lines                  26999    26994       -5
  Branches                4527     4527
=====================================================
+ Hits                   18883    18892       +9
+ Misses                  6843     6829      -14
  Partials                1273     1273

see 27 files with indirect coverage changes


Create Repository for Project CRUDL

Create a repository object for Project create/read/update/delete/list
Projects have a mandatory name, unique within their root container ("account"). As we don't have accounts yet, the must be globally unique for now (attenttion: among non-deleted projects).
Todo:

DB schema (migration script)
Repository struct & function (like wi repo)
Tests

As we don't have accounts yet, the must be globally unique for now (attenttion: among non-deleted projects).

I think you can use a unique index like the one we have for work item link category names:
-- Ensure we only have one link category with the same name in existence.
-- If a category has been deleted (deleted_at != NULL) then we can recreate the category with the same name again.
CREATE UNIQUE INDEX work_item_link_categories_name_idx ON work_item_link_categories (name) WHERE deleted_at IS NULL;

DB schema (migration script)

One thing you need to consider as well when soft deleting a project is to soft-delete all work items belonging to this project. I suggest to improve my former trigger which did the same for when work item types were deleted:
CREATE TRIGGER update_WI_after_WILT_trigger
AFTER UPDATE OF deleted_at
ON work_item_types
FOR EACH ROW
EXECUTE PROCEDURE update_WI_after_WIT();

NOTE: Ignore the wrong naming of update_WI_after_WILT_trigger. It should have been update_WI_after_WIT_trigger.
In order to make this trigger not run slow (as observed by @aslakknutsen in #518) we should change the FOR EACH ROW to FOR EACH STATEMENT.
source:

This specifies whether the trigger procedure should be fired once for every row affected by the trigger event, or just once per SQL statement.

And consider making deleted_at an index maybe?
Anyway, these are just my thoughts.


multiple websockets open per browser window

sometimes after a longer browser sessions, more than one websocket is open. You see it when you shut down the server and look in the js console, there will be a number of "Websocket closed" messages. investigate.

cleaning up old issues. This does not seem to be a problem currently


Fixed a couple of memory leaks.

The map in ViewGroupDescriptor now stores WeakReference as a value instead of Object directly. Since views were stored there directly that could cause activities to be leaked through the context of the view.
The highlight view field is now nulled out when the highlighting is cleared.

Looks good to me! :) Squash the commits and then I'll merge it. Thanks for noticing and fixing this!

The commits are squashed. Sorry it took a couple of days to get to it.

Thanks :)


WIP: ENH: Wrap CastImageFilter for VectorImage <-> Vector

Addresses #1133

Superceded by https://github.com/InsightSoftwareConsortium/ITK/pull/2073/files


Adding pojos renaming to developers what's new page

See https://trello.com/c/UFdIEL7U/50-clarify-migration-steps-for-gateway

Good to merge.


Discord crashing when clicking view button on notification popup

Crashing or closing ( not really sure which one, but app terminates ). Bug happens every time.
I am using XFCE 4.12 on archlinux ( using discord-linux 0.1.3-3 release, from AUR )

The notification crash issue is of electrons and is out of my power.


asio async_connect error: system:111 (Connection refused)

on linux ubuntu 18.04 and windows with BOOST 1.67:
I have these errors:
[info] asio async_connect error: system:111 (Connection refused)
Error getting remote endpoint: system: 107
Help will be appreciated
Thanks

I'm having the same issue. Were you able to fix it?

Currently, no fix :-(
socket-io cpp seems no more maintened :(

could we have some help from developpers/mainteners of socketio cpp client ?

Some code helps, but given the error, it's probably a firewall issue?

No firewall installed on my pc. Localhost used. Code available here
https://github.com/Nelson-numerical-software/nelson/tree/nelson_sio/modules/sio_client/src/cpp

@Nelson-numerical-software You are passing in an ip. You need to pass in an url like http://localhost

Sorry but i use a complet uri http:/localhost:port
Please notice that this trouble is present with recent boost version and current master.
It seems that current master does not work. An official release could help for packaging(stable version)

Also, you should bind all your functions before you call connect.  I see you are waiting for a connection then doing binding.  I am pretty sure those calls are not thread safe.  Also, your lock/wait/unlock usage is not great.  They are probably breaking something.

when the server peer closed, the client peer try to do async_connect , or connect, this error will occur. It is by design.


Create vertical_order.cpp

What do intend to do with this PR?
There is a proper structure that needs to be maintained.
First, open an issue and then open a PR for that issue. Refer to .github folder for the required format to be followed.
If you are a creator you need to make a proper folder structure of src, images, README
If you are a learner you can contribute to any specific repo.
As per this PR, I am considering you a learner. So you need to contribute to some repo and not randomly anywhere. Best solution is contributing here after opening your own folder there.
Pls don't make random PRs as they won't be considered anywhere. In OSS you always need to follow some rules and pls do here also.

@sbindal057 Kindly reopen a PR by adding ur file here. U will be given contributor status then


Update 0000-01-01-uw.md

Hereby leaving my first ever pull-related comment...

Description of changes so far... this time I am creating a pull request


GEODE-924: GEODE-1139: Fix ShorteningExpirationTimeRegressionTest

Fix all flakiness in ShorteningExpirationTimeRegressionTest.
Fix GEODE-924 and GEODE-1139.
@dhemery Please review.

Precheckin was green!


Fix img naming to fit auto grader convention

Fix team member image names to fit correct format

You need to change the image link in AboutUs.md as well

Great catch! Have made the relevant changes

LGTM


Add FixedHeight

As discussed in PictureRenderer.Optimizely
Let me know what you think :)

Thanks! Note that the email address you used when pushing this is not associated with you GitHub account. You need add that email if you want to show up as a contributor to this repo.


Fix ticker leak

I noticed a tiny issue in events. There's a ticker that needs to be stopped at exit. This is described in the docs here: https://golang.org/pkg/time/#NewTicker
@alextoombs

LGTM; may want to run system tests Continuum-side though.
cc @shobhit85 @shatrugna

Systests are green: http://tc.apcera.net/viewType.html?buildTypeId=SystemTests_DeployTestBranchesVSphereMultiCentral&branch_SystemTests=fix_ticker_leak&tab=buildTypeStatusDiv


[Bug]: Older applications on release throw internal server error as soon as it is clicked

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When I click any older application on release.app.appsmith.com it throws Internal Server Error provided that the application has some widgets in its dsl.
Steps To Reproduce

Go to release.app.appsmith.com
Click on any application which has some widgets in its canvas
You will notice an Internal Server Error

Public Sample App
No response
Version
Release V1.8.4

Getting this NPE in local after pulling the latest changes from the release branch.
java.lang.NullPointerException: null
	at com.appsmith.server.domains.ActionDependencyEdge.hashCode(ActionDependencyEdge.java:23)
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
	*__checkpoint ⇢ Handler com.appsmith.server.controllers.PageController#getAllPages(String, String, ApplicationMode, String) [DispatcherHandler]
Original Stack Trace:
		at com.appsmith.server.domains.ActionDependencyEdge.hashCode(ActionDependencyEdge.java:23)
		at java.base/java.util.HashMap.hash(HashMap.java:340)
		at java.base/java.util.HashMap.put(HashMap.java:608)
		at java.base/java.util.HashSet.add(HashSet.java:220)

Tested and verified on Release. Applications are working fine now.


When Open AI key is not provided it does not show any proper response.

when i unfortunately tried using no open ai key it is showing some vague html in toast box. It would be better if it shows no key provided error in toast.

Oh good catch! wanna PR? 👀

Oh good catch! wanna PR? 👀

Sure will comeback with a PR


Don't tail logs by default

Add -f for tailing, or a flag for the opposite but copying tail -f is probably more intuitive

+1 for -f, as you said it's intuitive and common known (docker, heroku)


itkTestDriver link error with afl-clang-fast++ compiler

I'm trying to build ITK master with the afl-clang-fast++ compiler and hit a link error right at the very end:
ld: Undefined symbols:
  std::exception_ptr::__from_native_exception_pointer(void*), referenced from:
      std::exception_ptr std::make_exception_ptr[abi:ne180100]<std::__1::future_error>(std::__1::future_error) in libITKCommon.a[98](itkPoolMultiThreader.cxx.o)
  ___cxa_init_primary_exception, referenced from:
      std::exception_ptr std::make_exception_ptr[abi:ne180100]<std::__1::future_error>(std::__1::future_error) in libITKCommon.a[98](itkPoolMultiThreader.cxx.o)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/itkTestDriver] Error 1
make[1]: *** [Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/all] Error 2
make: *** [all] Error 2

Searching the codebase for itkTestDriver, I found a build setting named DO_NOT_BUILD_ITK_TEST_DRIVER, which if I set to 1 results in that thing not being built and therefore no link error. (Looks like I'm not the first to not want it, but interestingly that string appears exactly once.)
I'm configuring with:
BUILD_TESTING = OFF
DISABLE_MODULE_TESTS = ON

Which I thought disabled all testing stuff. Assuming so, why is itkTestDriver even being built?  From its name, it seems like it should not be needed given my build options.

itkTestDriver is an executable that is installed. Other projects that depend on ITK may use it for their testing even though they may not want to test ITK themselves.


refactor(gh-ci): split workflow tasks

Optimize the github actions workflow

@mdelez right now the merge is blocked because the branch protection settings expects the "Build and Test" action which doesn't exist anymore. I'm able to change the settings after merging this PR only.


Python 3.5 compatibility

Socket message sending and receiving has changed from using plain strings to "byte-like" types which is achieved by encoding or decoding the message before and after receiving. I've chosen utf-8 as it's the most common but may break chat functionality for certain languages. Maybe it should become a parameter of the TwitchChatStream class.
The changes will not break compatibility with Python2.7.

Awesome, thanks!


Panic related to unicode characters

I've encountered an input which causes a panic with an error:
byte index 1 is not a char boundary; it is inside '𝟏' (bytes 0..4) of `𝟏`

The Mathml is below.  I've trimmed it down as much as I can.    The error message seems to suggest the issue relates to the bold superscript 1.  I removed the bold on that character and then it works.  However I also tried removing other unrelated parts of the formula and it also works so I don't really understand the cause.
Here's the Mathml:
<math>
  <msup>
    <mi>H</mi>
    <mrow>
      <mrow>
        <mn mathvariant="bold">1</mn>
      </mrow>
    </mrow>
  </msup>
  <mrow data-mjx-texclass="INNER">
    <mo data-mjx-texclass="OPEN">(</mo>
    <mi>G</mi>
  </mrow>
</math>"#;

Thanks for the bug report. I can replicate the problem.
It happens because of the bold '1'. MathCAT has code that tries to determine if some numbers have block separators and it appears that the code assumes the digits are all ASCII. So looking at the length (which is 4 bytes) triggers that block separator check code, but slicing at '3' to look for a block separator causes the problem.
I'll get a fix into the next build and add a test for this case.

I was incorrect about the location -- it is in the code for speaking ordinal numbers. There is a separate bug (#261) for canonicalization.
I have a fix for this bug that I will commit shortly.


Cats translate error

When i try to use the "translate all" button on a mmd model, it says "It looks like you got banned from google translator" which makes it unable to translate.

getting this error msg as well

same

Also the same, updated everything to make sure as well and not banned from Google Translate as I can still use it!

yup ditto there also ggetting that same error

getting it here on August 2nd

Also still getting this same Error too on my end

I am still getting this error.

@Darkblader24
Same issue, can't translate

This is fixed in the dev version, you can install it via the Settings & Updates panel


SMS notifications

Hoiio is cheap, supports sender rebranding, sending in bulk and have an API that is not terrible.
Example request: https://secure.hoiio.com/open/sms/send?dest=%2B4791916350&msg=Hoiio+World&access_token=key&app_id=id
Each SMS sent costs USD 3.5 cents which is roughly equivalent to 20 øre.

I'm going to go ahead and reopen this for consideration. This might be worth a look https://django-twilio.readthedocs.org/en/latest/

I'll have a look at this and come up with some thoughts and figures for next meeting.

@torkil might have an update on what they use at Hoopla?

We use PSWinCom. Pretty happy with them.
HTTP API: https://wiki.pswin.com/Gateway HTTP API.ashx
The also have SMTP API if you'd like to not worry about queuing and retrying.

I've used Twilio earlier. Super easy, cheap and nice. My 5 cents.

Not happening anytime soon, but we're open to talking about it again in the future if requested.


Refreshing a single tv show causes media info for entire library to update

Version: <IP_ADDRESS>
Build: 2016-08-16 15:05
OS: Mac OS X 10.11.6
JDK: 1.8.0_91 x86_64 Oracle Corporation
Refreshing a single TV show forces a "getting Mediainfo" update for the entire repository. This may be due to the full repository of tv shows missing mediainfo.
From a quick look at the source, the current behaviour when you select "update selected tv show" is to refresh the info for the show, but then run the "getting mediainfo" process which runs for the entire collection. See https://github.com/tinyMediaManager/tinyMediaManager/blob/master/src/main/java/org/tinymediamanager/core/tvshow/tasks/TvShowUpdateDatasourceTask2.java#L206 where it iterates over all tv shows.
Ideally, refreshing a single TV should only update mediainfo for the single tv show regardless of the status of the mediainfo data.

thanks for the hint. will be in the next version


[New Feature]: DSWx-HLS Upstream Data Updates

Checked for duplicates
Yes - I've already checked
Alternatives considered
Yes - and alternatives don't suffice
Related problems
N/A
Describe the feature request
We need to account for upcoming DSWx-HLS changes that have updated the upstream algorithm. The data changes apparently do not required PGE updates.
The PCM changes needed for this are:

No updates to the input data stream from LP.DAAC
Updates to the collection information for DSWX-HLS as we push data to PO.DAAC. Basically, modify settings.yml

We should have a branch ready for release with the above changes that can be deployed to our OPS venue.

Need to modify collection name for DSWx-HLS product type

Collection name was modified in setttings.yaml


How can I set temperatur of model when I reload Keras fine-tuned Gemma?

Is there a way in the sampler method you use to specify the temperature or sampling method (e.g. nucleus, top-k, etc.)?

you can set the sampler for that, more information at the bottom in this tutorial: https://ai.google.dev/gemma/docs/keras_inference

Hi,
Could you please confirm if this issue is resolved for you with the above comment ? Please feel free to close the issue if it is resolved ?
Thank you.

Close please

As mentioned, Closing this issue,  Please feel free to reopen if this is still a valid request. Thank you!


Many 404 urls

Issue report
URL where issue occurs

https://adobeio-prod.adobemsbasic.com/apis/creativecloud/stock/docs.html#!adobe/stock-api-docs/master/docs/getting-started/02-register-app.md

In the #choose-an-integration-type-and-register chapter

Q&A link (in Service account point) (clicking on it do add the anchor but don't scroll)
"API Key Integrations" in the API Key point

In the "Use case matrix" chapter, the "What are the different use cases for the Adobe Stock API?"

https://adobeio-prod.adobemsbasic.com/apis/creativecloud/stock/docs.html#!adobe/stock-api-docs/master/docs/getting-started/07-workflow-guides.md

Link for "Enterprise service account" & "Affiliate workflow (search only)"

Type of issue

[X] Broken or missing link

Brief description of issue
Mainly 404 links.
I'm just posting 2 pages, there is probably.

Hi @Suisse00, thank you for the report. Yes, this is a known issue with our hosting platform. The PDF links should be fixed soon but I will move the files elsewhere if necessary. For now, I have uploaded both missing PDFs to here: https://github.com/adobe/stock-api-docs/tree/master/supplemental


The item isn't craftable

The disenchanter shows up in REI, but it isn't craftable, and the recipe does not work.
This seems to be because the recipe format is now incorrect.
Minecraft 1.21.3
Fabric Loader 0.16.9

Thanks for bringing this to my attention, I've released a fix in 0.1.11.
I also appreciate your PR on this topic, although I have a cleaner solution which I implemented in the released version - so I'll go ahead and close that too
Cheers


Restore DOM when selection is collapsed after IME composition

Summary
This fixes issue listed in https://github.com/facebook/draft-js/issues/1301, but I believe it could fix #1320 as well.
The editor state is not updated while an IME is composing text. In it's current state, the IME updates the DOM and then React tries to remove the nodes (entities, style ranges, etc) but the nodes are no longer there.
If the selection contains an entity or style range, we need to restore the DOM so that React can properly remove the nodes.
This change adds an extra condition to  the mustRest boolean where if the selection is not collapsed, then restore the editor before applying the updates below in lines 180-192.
I could see how one could get more sophisticated about this approach and examine the selection for an entity, style range or multiple blocks, however, I think this might add a lot of undo complexity.
Test Plan
Make sure IME input works when selecting multiple ranges. Should work when selection contains multiple blocks, style ranges or entities. Should also work when the selection contains no entities, style ranges and just a single block.

I'm also able to reproduce this on Facebook comments:

Type some content
Start a new paragraph and mention someone
Highlight part of the mention and some of the previous text
Type using 2-Set Korean input

I would upload a gif but not really sure how to do that without posting a recording of my fb wall and leaking some of my friends' info. Below are screenshots of each step.

I can report that this solved the bug for us and we haven't had any further issues.

2018 wasn't a particularly active period in draft-js history haha.
I'm looking through old PRs and this one looks very interesting. @thread, is this still an issue? I'd be happy to merge it if so.

I am still seeing the issue in #1320 and was able to resolve with this snippet so yes, still an issue (assuming this does indeed solve #1320 as OP was unclear whether it did or didn't)


Showing tab number only for active tab

I've just installed the package but I am seeing the exact opposite behaviour from the package description. The package only shows the tab number for the tab with focus instead of showing the tab number for all tabs without focus. Since a picture says more than a thousand words:

My setup is:
OSX v10.11.4
Atom v1.6.2
Tab-numbers v0.3.0

Strange, works perfect for me on the Atom Dark and One Dark themes. What theme are you using? Do you have any other packages installed that might interfere with the tabs styling?

I am using the Atom Dark theme. These are the packages I've installed:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>todo-show
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Zentabs is a package I suspected might be interfering but after disabling it I still saw the same behaviour.

I also use zentabs without any problems. Would you mind inspecting the tab close button element and see what overrides https://github.com/mrodalgaard/atom-tab-numbers/blob/master/styles/tab-numbers.less#L25 .

Odd, just reenabled the package and now it works fine. Not sure what has happened. Thank you for your support!


Model.__fields__ missing — not mentioned in transition docs

Initial Checks

[X] I confirm that I'm using Pydantic V2 installed directly from the main branch, or equivalent

Description
Model.__fields__ is not available. Presumably this is by design but I cannot find mention of it in https://docs.pydantic.dev/latest/blog/pydantic-v2-alpha/
Traceback (most recent call last):
  File "/Users/mz/dev/prefect/example.py", line 8, in <module>
    Foo.__fields__
AttributeError: type object 'Foo' has no attribute '__fields__'. Did you mean: '__fields_set__'?

Example Code
from pydantic import BaseModel

class Foo(BaseModel):
    pass

Foo.__fields__

Python, Pydantic & OS Version
pydantic version: 2.0a3
        pydantic-core version: 0.27.0 release build profile
                 install path: /Users/mz/.pyenv/versions/3.11.2/envs/prefect-311/lib/python3.11/site-packages/pydantic
               python version: 3.11.2 (main, Mar 15 2023, 09:11:17) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]
                     platform: macOS-13.2.1-arm64-arm-64bit
     optional deps. installed: ['typing-extensions']

In Pydantic V2, you can use model_fields and __pydantic_decorators__ insted.
from pydantic import BaseModel, field_validator

class Foo(BaseModel):
    a: str

    @field_validator('a')
    @classmethod
    def check_a(cls, value):
        return value

print(Foo.model_fields)
print(Foo.__pydantic_decorators__)

We are working on documentation and try to improve pydantic docs based on the changes in V2


RevEng - unable to add EF.Relational.Design package

Attempting to install the EF.Relational.Design package build 16182 from aspnetcidev fails with:
Attempting to gather dependencies information for package 'Microsoft.CodeAnalysis.CSharp.1.1.0-rc1-20151014-07' with respect to project 'design\EntityFramework.SqlServerCompact40.Design', targeting '.NETFramework,Version=v4.5.1'
Attempting to resolve dependencies for package 'Microsoft.CodeAnalysis.CSharp.1.1.0-rc1-20151014-07' with DependencyBehavior 'Lowest'
Resolving actions to install package 'Microsoft.CodeAnalysis.CSharp.1.1.0-rc1-20151014-07'
Resolved actions to install package 'Microsoft.CodeAnalysis.CSharp.1.1.0-rc1-20151014-07'
Adding package 'Microsoft.CodeAnalysis.Analyzers.1.0.0' to folder 'C:\Code\EntityFramework7.SqlServerCompact\packages'
Added package 'Microsoft.CodeAnalysis.Analyzers.1.0.0' to folder 'C:\Code\EntityFramework7.SqlServerCompact\packages'
Added package 'Microsoft.CodeAnalysis.Analyzers.1.0.0' to 'packages.config'
Executing script file 'C:\Code\EntityFramework7.SqlServerCompact\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\tools\install.ps1'...
Successfully installed 'Microsoft.CodeAnalysis.Analyzers 1.0.0' to EntityFramework.SqlServerCompact40.Design
Install failed. Rolling back...
Package 'Microsoft.DiaSymReader.Native 1.2.0-rc' does not exist in project 'EntityFramework.SqlServerCompact40.Design'
Removed package 'Microsoft.CodeAnalysis.Analyzers 1.0.0' from 'packages.config'
Executing script file 'C:\Code\EntityFramework7.SqlServerCompact\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\tools\uninstall.ps1'...
Package 'Microsoft.DiaSymReader.Native 1.2.0-rc' does not exist in folder 'C:\Code\EntityFramework7.SqlServerCompact\packages'
Removing package 'Microsoft.CodeAnalysis.Analyzers 1.0.0' from folder 'C:\Code\EntityFramework7.SqlServerCompact\packages'
Removed package 'Microsoft.CodeAnalysis.Analyzers 1.0.0' from folder 'C:\Code\EntityFramework7.SqlServerCompact\packages'
Could not install package 'Microsoft.DiaSymReader.Native 1.2.0-rc'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5.1', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
========== Finished ==========

Hmm, it looks like that package requires a project.json based solution. There might be a NuGet or package bug here--I don't think it should block install. This is just one more reason to do #3602

But it does block install now :sad: - removing Roslyn sounds like a healthy approach in the long term

File a bug on NuGet/Home saying that you can't install Microsoft.CodeAnalysis.Common into a net451 project, and see where that goes...

No SQLCE scaffolding for RC1 then, I guess...

@bricelam Bug was already filed in the Roslyn repo https://github.com/dotnet/roslyn/issues/6495

We are going to go ahead with https://github.com/aspnet/EntityFramework/issues/3602 (and try to get it into RC1)


Create a document on how we interact on Slack

Should be a P1, but so far MeiliSearch employees are pretty good with the Slack community. It will still be important to define our process or things like using the ✅ emoji once we answered a questions so it's easier to manager once the community grow and we have more employees.

seems that we're still doing fine


Improved covariance of DBCollection.insert

Changed signature of the insert method from insert(List<DBOject>) to insert(List<? extends DBOject>). This is needed to (for example) enable insert to accept a List<BasicDBObject>.

Apologies for not coming back to this ticket sooner, I'm pleased to say this functionality was added in the 3.x series of the driver and your contribution help make it so!  Many thanks.


Fix delta eds bug: incremental eds will only generate eds for the upd…

…ated services so if we cal removed resources for incremental eds, it will cause missing endpoints in envoy. We should not cal removed resource when it is incremental eds push
Please provide a description of this PR:
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Please check any characteristics that apply to this pull request.

[x] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
424eccc829712a83d230ba917f5ae4ddf7e2fc16
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
424eccc829712a83d230ba917f5ae4ddf7e2fc16
link
true
/test release-notes_istio

lint_istio
424eccc829712a83d230ba917f5ae4ddf7e2fc16
link
true
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
424eccc829712a83d230ba917f5ae4ddf7e2fc16
link
true
/test lint_istio

release-notes_istio
6958e7f701af66a8f19184d02a0bed614208005c
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes_istio

'When the DeltaDiscoveryRequest is a ACK or NACK message in response to a
previous DeltaDiscoveryResponse, the response_nonce must be the nonce in
the DeltaDiscoveryResponse. Otherwise (unlike in DiscoveryRequest)
response_nonce must be omitted.'
In the
https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/discovery/v3/discovery.proto#envoy-v3-api-msg-service-discovery-v3-deltadiscoveryrequest
On Mon, Nov 29, 2021 at 5:56 PM Zhonghu Xu @.***> wrote:

@.**** commented on this pull request.
In pilot/pkg/xds/delta.go
https://github.com/istio/istio/pull/36273#discussion_r758871046:

if usedDelta {

  resp.RemovedResources = deletedRes

} else {

} else if req.Full {

i think we can mock it
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/36273#discussion_r758871046, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXOJD477AKIUED6ADSDUOQVL5ANCNFSM5I2GHHKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks

It is not reflecting Envoy will ignore RemoveResources in EDS


fix(synchronize): only synchronize if true is passed in .env

:tada: This PR is included in version 1.16.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Plan out architecture for serving thumbnails

Part of the AWS Imagine Grant.

Thanks

Can i have my assets and money back.


Added my Leverage sheet ver0.1

Not a polished version but functional.

This new sheet needs a "sheet.json" (check the ReadMe, or look at another sheet and see how they do it) and a preview image.

I think this has been actioned.


Instance::run panics if another instance trapped in the same thread

It looks like thread-local state becomes infected once an instance traps (e.g. by executing unreachable), and when the next instance is created in the same thread, it panics with the following backtrace:
thread '<unnamed>' panicked at 'enabling or changing the signal stack succeeds: Sys(EPERM)', src/libcore/result.rs:1084:5
stack backtrace:
   0: std::sys_common::backtrace::print
   1: std::panicking::default_hook::{{closure}}
   2: std::panicking::default_hook
   3: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
   4: std::panicking::continue_panic_fmt
   5: std::panicking::try::do_call
   6: <T as core::any::Any>::type_id
   7: core::ptr::real_drop_in_place
   8: core::result::Result<T,E>::expect
             at /private/tmp/nix-build-rustc-1.38.0.drv-0/rustc-1.38.0-src/src/libcore/result.rs:879
   9: lucet_runtime_internals::instance::signals::<impl lucet_runtime_internals::instance::Instance>::with_signals_on
             at /Users/lifted/Projects/dfinity/rs/.cargo-home/registry/src/github.com-1ecc6299db9ec823/lucet-runtime-internals-0.1.1/src/instance/signals.rs:65
  10: lucet_runtime_internals::instance::Instance::run_func
             at /Users/lifted/Projects/dfinity/rs/.cargo-home/registry/src/github.com-1ecc6299db9ec823/lucet-runtime-internals-0.1.1/src/instance.rs:612
  11: lucet_runtime_internals::instance::Instance::run

The panic comes from this place:
impl Instance {
    pub(crate) fn with_signals_on<F, R>(&mut self, f: F) -> Result<R, Error>
    where
        F: FnOnce(&mut Instance) -> Result<R, Error>,
    {
    // Set up the signal stack for this thread. Note that because signal stacks are per-thread,
    // rather than per-process, we do this for every run, while the signal handler is installed
    // only once per process.
    let guest_sigstack = SigStack::new(
        self.alloc.slot().sigstack,
        SigStackFlags::empty(),
        libc::SIGSTKSZ,
    );
    let previous_sigstack = unsafe { sigaltstack(Some(guest_sigstack)) } // <-- PANICS
        .expect("enabling or changing the signal stack succeeds");

You can reproduce the issue using the following small crate:
src/main.rs
use lucet_runtime::{DlModule, MmapRegion, Region};
use lucet_runtime_internals::alloc::Limits;
use lucetc::Lucetc;

fn main() {
    let wasm = wabt::wat2wasm(
        r#"
            (module
              (func (export "trap") unreachable)
              (func (export "test")))
        "#,
    )
    .unwrap();

    let lucetc = Lucetc::try_from_bytes(wasm.as_slice()).unwrap();
    lucetc.shared_object_file("mod.so").unwrap();
    let module = DlModule::load("mod.so").unwrap();
    let memory: std::sync::Arc<MmapRegion> = MmapRegion::create(1, &Limits::default()).unwrap();

    for func_name in &["trap", "test"] {
        let mut instance_handle = memory.new_instance_builder(module.clone()).build().unwrap();
        println!("{:?}", instance_handle.run(func_name, &[]));
    }
}

Cargo.toml
[package]
name = "min-example"
version = "0.1.0"
edition = "2018"

[dependencies]
lucet-runtime = "0.1.1"
lucetc = "0.1.1"
lucet-runtime-internals = "0.1.1"
wabt = "0.7.4"

The issue disappears if every instance is created in a separate thread:
src/main.rs
use lucet_runtime::{DlModule, MmapRegion, Region};
use lucet_runtime_internals::alloc::Limits;
use lucetc::Lucetc;

fn main() {
    let wasm = wabt::wat2wasm(
        r#"
            (module
              (func (export "trap") unreachable)
              (func (export "test")))
        "#,
    )
    .unwrap();

    let lucetc = Lucetc::try_from_bytes(wasm.as_slice()).unwrap();
    lucetc.shared_object_file("mod.so").unwrap();
    let module = DlModule::load("mod.so").unwrap();

    for func_name in &["trap", "test"] {
        let module = module.clone();
        let handler = std::thread::spawn(move || {
            let memory: std::sync::Arc<MmapRegion> =
                MmapRegion::create(1, &Limits::default()).unwrap();
            let mut instance_handle = memory.new_instance_builder(module).build().unwrap();
            println!("{:?}", instance_handle.run(func_name, &[]));
        });
        handler.join().unwrap();
    }
}

Hi @roman-kashitsyn, thanks for the report! Unfortunately I'm so far unable to replicate this issue, at least on my Linux machine. Can you share more about your OS environment?
Also, the "0.1.1" versions of the Lucet packages on crates.io are pretty old at this point, it may also be worth trying the current versions from master. I tried your example with both, and it succeeded both times, though.

Sorry, I forgot to mention that I observe the issue on macOS 10.14. I'll try to reproduce it on current master.

I got access to a Mac to test this out, and can confirm that it's also an issue with master. Mac OS is a pretty experimental platform for us; most of the developers and our deployment environment are x86-64 Linux. As a result, we may not be able to get to the bottom of this very soon, but we're happy to provide guidance if you're interested in troubleshooting.
It appears there's something strange going on with the semantics of alternate signal handler stacks on Mac. When a Lucet guest traps, a SIGILL is raised and handled by the runtime, which swaps back to the host context and returns an error. After the swap to the host context, the thread is no longer on the alternate signal stack, but getting EPERM from that call suggests that the OS believes that signal stack is still active. Perhaps there's a system call we need to make on Macs only to convince the OS that we've jumped away from the handler?

I'll check if the problem still reproducible if I call sigaltstack with SS_DISABLE flag before setting the new stack.
It's weird that the problem is not reproducible on Linux, the man page says
       EPERM  An attempt was made to change the alternate signal stack while
              it was active (i.e., the process was already executing on the
              current alternate signal stack).

As far as I understand, that should mean that it's illegal to change the alternative signal stack if it has already been used to handle a signal.

We should never be swapping out the alt stack when the signal handler is running, only after we've swapped back to the host context. Linux must correctly recognize when we've jumped away from the handler, where Mac OS still believes it's running.

I tried to construct a small C program reproducing the macOS issue with sigaltstack, but I didn't manage to trigger the issue. Here is the program I tried:
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>

static volatile int G_caught_sig = 0;

static char G_sig_stack_1[SIGSTKSZ];
static char G_sig_stack_2[SIGSTKSZ];

void handler(int sig, siginfo_t *_info, void *_arg) {
  G_caught_sig = sig;
}

int main() {
  stack_t ss, old_ss;
  ss.ss_size = SIGSTKSZ;
  ss.ss_flags = 0;
  ss.ss_sp = &G_sig_stack_1;

  if (sigaltstack(&ss, &old_ss) < 0) {
    perror("sigaltstack");
    exit(EXIT_FAILURE);
  }

  struct sigaction sa;
  sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
  sa.sa_sigaction = &handler;
  sigemptyset(&sa.sa_mask);
  if (sigaction(SIGILL, &sa, NULL) < 0) {
    perror("sigaction");
    exit(EXIT_FAILURE);
  }

  raise(SIGILL);

  printf("Caught signal = %d\n", G_caught_sig);

  ss.ss_sp = &G_sig_stack_2;
  if (sigaltstack(&ss, &old_ss) < 0) {
    perror("sigaltstack");
    exit(EXIT_FAILURE);
  }

  return 0;
}

UPD: One interesting difference I observed is that the syscall trace of this small C program contains sigreturn (a syscall that cleans up the stack), while the trace of the rust program in the issue description doesn't have this syscall.

This is more evidence that Mac OS behaves differently when jumping out of a signal handler, rather than returning. Unfortunately for many of the signals that a guest raises when faulting can't be immediately resolved, so it would just keep reraising the same signal if we returned from the handler. I wonder if there's a syscall similar to sigreturn that we could call to make it clear to the OS that we're no longer on the signal stack?

Unfortunately for many of the signals that a guest raises when faulting can't be immediately resolved, so it would just keep reraising the same signal if we returned from the handler.

Yes, that makes a lot of sense. I wrote another small C program that uses longjmp to get jump out of a signal handler to avoid being stuck in an infinite loop.
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <setjmp.h>
#include <unistd.h>
#include <sys/mman.h>

static jmp_buf jump_buffer;

static volatile int G_caught_sig = 0;
static volatile char *G_memory = NULL;

static char G_sig_stack_1[SIGSTKSZ];
static char G_sig_stack_2[SIGSTKSZ];

void handler(int sig, siginfo_t *_info, void *_arg) {
  G_caught_sig = sig;
  longjmp(jump_buffer, sig);
}

int main() {
  G_memory = mmap(0, getpagesize(), PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
  if (G_memory == MAP_FAILED) {
    perror("mmap");
    exit(EXIT_FAILURE);
  }

  stack_t ss, old_ss;
  ss.ss_size = SIGSTKSZ;
  ss.ss_flags = 0;
  ss.ss_sp = &G_sig_stack_1;

  if (sigaltstack(&ss, &old_ss) < 0) {
    perror("sigaltstack");
    exit(EXIT_FAILURE);
  }

  struct sigaction sa;
  sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
  sa.sa_sigaction = &handler;
  sigemptyset(&sa.sa_mask);
  if (sigaction(SIGBUS, &sa, NULL) < 0) {
    perror("sigaction");
    exit(EXIT_FAILURE);
  }

  while (setjmp(jump_buffer) == 0) {
    printf("Setting memory at %p\n", G_memory);
    G_memory[0] = 'z';
  }

  printf("Caught signal = %d\n", G_caught_sig);

  ss.ss_sp = &G_sig_stack_2;
  if (sigaltstack(&ss, &old_ss) < 0) {
    perror("sigaltstack");
    exit(EXIT_FAILURE);
  }

  return 0;
}

The program terminates successfully.
The syscall trace still contains sigreturn (most likely it's called by longjmp). I also took a quick look at the latest available xnu kernel sources, it appears that sigreturn is the only place where the SA_ONSTACK flag causing the EPERM error is cleared.

Ah, it looks like sigreturn is more flexible than the one available on Linux. We might be able to use it to jump back to the host context on a fault, instead of our own Context::set_from_signal. Or, we might have to use a C trampoline that we can setjmp from, so that we can longjmp out of the handler without having to get our hands dirty with what appears to be an undocumented syscall.
Again, we probably won't be able to dive deeply into this in the short term, but this is very helpful diagnostic information for us. Thank you!


Persistence format for settings and configuration

🚀 Feature
Splitting from https://github.com/napari/napari/issues/992
Motivation
We need some human readable format to store settings for different configuration options in the napari core application and plugins.
Pitch
We need this to be human readable, and hopefully clear and concise
Alternatives

YAML
JSON
TOML
INI (no, but included for completeness)

Additional context
How to handle plugin "state" for a broad definition of state this could include how the UI looks and Qt offers ways of saving./loading this information with a hex string.
What about state. of variables on plugins? This might require a separate binary format, depending on the plugin?

I think we can close this now that #2212 has merged and we went with YAML, right @goanpeca?

Agreed! Closing


[Question] How does the layering of this project match the clean architecture official diagram?

Hi,
I am a newbie in the clean architecture, Can anyone help me and explain
1. How does the layering of this project match the clean architecture official diagram?

Is it correct?

Clean
Manga

Entities
Domain

Use Cases
Application (UseCases/Services)

Controllers/Gateways/Presenter
Infrastructure

Devices/Web/DB/UI/External Interfaces
WebApi

I am looking for a comparative comparison to better understand how layering works. Can anyone explain it with details?
How to map the current project with the official image?
Unfortunately for me, clean architecture is not as transparent as onion architecture!
2. How did the Manga implement this part of the diagram? (example please)

I cannot speak about the layering of the code of this repo but, since you are not familiar with clean architecture but you do with onion architecture, something that have helped me is that Clean Architecture is a combination of Onion Architecture + Hexagonal (aka ports and adapters architecture). This article explains it very well: https://herbertograca.com/2017/09/28/clean-architecture-standing-on-the-shoulders-of-giants/


🐛 BUG: Examples don't seem up to date

Hey @DrFedro! Very correct, the examples are in fact brutally outdated. ^^ Been meaning to work on that, but as ever time is the issue.


Feat/implement categori api on homepage

I implemented the GET /category endpoint on the homepage in this PR. I also took out the Tabs component from SearchBar component and make it an independent component that is imported in SearchBar.
Before Changes:

After Changes with API request:

I managed to make the tests passed (even with the existing api request in it). I think mocking the function that hits the API and provide a mock data worked the charm.

itu kenapa tabnya dari 6 jadi 4? memang disengaja ya?

itu kenapa tabnya dari 6 jadi 4? memang disengaja ya?

Ga, belum di update aja data di BE nya.
Sekarang sudah aku update ya:


Site needs search

Site should integrate some search functionality

addressed with PR - https://github.com/SudoMagicCode/TouchDesigner-StyleGuide/pull/13


How to get the sea light variable

I want to use the sea light in my scene, how can I get the variable defining sea light from the shader Ocean.shader(or other scripts)?

The lighting for the ocean is driven by the primary directional light and environmental lighting. You will be able to get everything you need from Unity.
I'll close this for now. But I will see your reply if I haven't answered your question fully.