expose random_wrap and random_unwrap (plus discussion of early typed key surprises)

I've been working on producing a MWE for this issue for the last month or so.  Part of this is setting everything up identically right before the freeze.
What I want to do is run the program that fails and print out the key array, and then produce a MWE where I reconstruct that key array.  The problem is that I'm using the new custom PRNG and these don't seem to have any interface for construction from an array.
I don't want to step on any toes, but it seems to me that the design complicates this kind of use pattern.  There are some excellent aspects to the current design.  Jax does an excellent job of having small interfaces, and the new PRNG is no exception.  However, it's just one function too small for my needs.
Trying to shoehorn this feature request to fit the pimpl idiom looks like it's going to be awkward.   It would end up being something like PRNGKeyArray(impl, key_array), which means exposing the pimpl objects (threefry_prng_impl, etc.), and PRNGKeyArray, and providing access to the pimpl objects—all things that go against the whole pimpl idea in the first place.  Or perhaps adding methods to construct from a base array for each implementation?
I want to humbly suggest removing the pimpl pattern, and switching to using ordinary classes and inheritance.  Pimpl was popularized in C++ as a compilation firewall (for example, this excellent description by C++ standards chair Herb Sutter).  The idea is that it allows you to completely hide private members (methods and data) in compiled source, and expose a minimal header with only public methods.  That's why it rarely turns up in Python since there is no distinction between source and header.
The ordinary Python way to do this is:
class PRNGKeyArray(metaclass=PRNGKeyArrayMeta):
   def __init__(self, key_data: Array):
    assert not isinstance(key_data, core.Tracer)
    self._base_array = key_data

  @classmethod
  def _key_shape(cls) -> core.Shape:
    raise NotImplementedError

  def _split(self, num: int) -> Self:
    raise NotImplementedError

  def _random_bits(self, bit_width: int, shape: core.Shape) -> Array:
    raise NotImplementedError

  def _fold_in(self, data: Array) -> Self:
    raise NotImplementedError

class Threefry2x32Key(PRNGKeyArray):
    ...

class RBGKey(PRNGKeyArray):
    ...

class UnsafeRBGKey(PRNGKeyArray):
    ...

Then, you can reproduce training examples by dumping:
print(type(key_array))  # This is a function I want.
print(key_array.unsafe_raw_array())

and then restoring:
SomeKeyType(raw_array)  # This is the other function I want.

I'm happy to code it up, and there would be no user-facing interface changes (except for exposing the key classes), so nothing would break.

Current workaround:
    from jax._src.prng import PRNGKeyArray, threefry_prng_impl
    weight_rng = PRNGKeyArray(threefry_prng_impl,
                              jnp.array((2634740717,<PHONE_NUMBER>), dtype=jnp.uint32))

If you're importing _src.prng for workarounds, a better workaround may be:
jax._src.prng.random_wrap(raw_array, impl=impl)

In particular, this works under jit.
I'll try to write back soon about the broader questions up top. Just wanted to get this to you in the meantime. As always, thanks for putting thought into these things and for the discussion/feedback, Neil!

Coming back to this, the "workaround" might actually be an answer to part of the question. @NeilGirdhar – regardless of the idiom by which we set up PRNG implementations, my original thought was to expose random_wrap and random_unwrap (perhaps by a different name) as public API functions. Would that suffice for your needs as more than a workaround?
I'm also happy to separately review improvements to the internal idiom we use for PRNG implementations (e.g. a switch to inheritance), assuming it's a separate concern, and especially if it cleans things up or makes them easier!
The reason that I propose to have random_{,un}wrap be the way only in/out of key arrays follows my previous comment: these functions bind corresponding array-casting primitives, and in particular calling them is invariant under jit (and staging more generally). Constructing or unwrapping a Python PRNGKeyArray (or derivative thereof) is merely the corresponding impl rule for these primitives.
Does this seem right?

Sorry for the delay.  I wanted to invest some time in understanding random_wrap.  I'm afraid I don't understand what JIT invariance means.  My understanding of Jax internals still has a long way to go.  I don't want to waste your time, but why is it that simple construction doesn't work with the JIT?

Would that suffice for your needs as more than a workaround?

That means you'll be exposing the PRNGImpl classes like threefry_prng_impl?  Yes, that definitely works.

I'm also happy to separately review improvements to the internal idiom we use for PRNG implementations (e.g. a switch to inheritance), assuming it's a separate concern, and especially if it cleans things up or makes them easier!

Yes, it's a separate concern!  And I love your commitment to finding the best design.

This seems to be related:
from jax import enable_custom_prng, vjp
from jax.random import PRNGKey

with enable_custom_prng():
    def f(i):
        return PRNGKey(i)

    out, f_vjp = vjp(f, 1)  # Fails!

Would it be possible to make new-style KeyArrays py-trees?  And then arm PRNGKey with a custom derivative that sends a zero cotangent back?
Also, how do I produce a zero cotangent for a new style key array?

In other words, why do you need to do random_wrap(array, impl) instead of PRNGKeyArray(impl, array)?

Calling random_wrap(array, impl) binds the random_wrap_p primitive. When we're staging, we can capture it as such, and so we can later lower it, as well as lower operations on its output (such as slicing; see the gather below):
>>> import jax
>>> import jax.numpy as jnp
>>> def f(x):
...   k = jax._src.prng.random_wrap(x, impl=jax._src.prng.threefry_prng_impl)
...   k = k[:2, :3]
...   return jax.vmap(jax.vmap(jax.random.bernoulli))(k)
...
>>> with jax.enable_custom_prng():
...     print(jax.make_jaxpr(f)(jnp.ones((5, 6, 2), jnp.uint32)))
...
{ lambda ; a:u32[5,6,2]. let
    b:key<fry>[5,6] = random_wrap[impl=fry] a
    c:i32[1] = broadcast_in_dim[broadcast_dimensions=() shape=(1,)] 0
    d:i32[1] = broadcast_in_dim[broadcast_dimensions=() shape=(1,)] 0
    e:i32[2] = concatenate[dimension=0] c d
    f:key<fry>[2,3] = gather[
      dimension_numbers=GatherDimensionNumbers(offset_dims=(0, 1), collapsed_slice_dims=(), start_index_map=(0, 1))
      fill_value=None
      indices_are_sorted=True
      mode=GatherScatterMode.PROMISE_IN_BOUNDS
      slice_sizes=(2, 3)
      unique_indices=True
    ] b e
    g:u32[2,3] = random_bits[bit_width=32 shape=()] f
    h:u32[2,3] = shift_right_logical g 9
    i:u32[2,3] = or h<PHONE_NUMBER>
    j:f32[2,3] = bitcast_convert_type[new_dtype=float32] i
    k:f32[2,3] = sub j 1.0
    l:f32[] = sub 1.0 0.0
    m:f32[2,3] = mul k l
    n:f32[2,3] = add m 0.0
    o:f32[2,3] = max 0.0 n
    p:bool[2,3] = lt o 0.5
  in (p,) }
>>>

When evaluating eagerly, the primitive is indeed implemented as the expression PRNGKeyArray(impl, array).

Would it be possible to make new-style KeyArrays py-trees?

Not quite, because they aren't equivalent to (some tuple of) basic arrays. It's maybe easiest to consider a few examples of what would go wrong if you made them pytrees (naturally, ones that flatten to the underlying uint32 array). One example is that we can vmap a function over them down to the last dimension, then operate on the key bits—something we want to disallow. Another example is that if we tree_map over them, we'd accidentally "unwrap" them back down to uint32 arrays.

Also, how do I produce a zero cotangent for a new style key array?

What do you do for current uint32-style raw key arrays?

This seems to be related: [...]

That's a bug! Thanks for catching it. Filed #14856

We should tag the tracking issue too: #9263
This is a great thread Neil! Thanks for kicking the tires and asking useful questions.

It's maybe easiest to consider a few examples of what would go wrong if you made them pytrees (naturally, ones that flatten to the underlying uint32 array). One example is that we can vmap a function over them down to the last dimension, then operate on the key bits—something we want to disallow. Another example is that if we tree_map over them, we'd accidentally "unwrap" them back down to uint32 arrays.

Just a though, but does Jax support structured arrays?  If so, you could make all of the key information a single record.  Then, it would be essentially atomic in the eyes of vmap and tree-map.

If they're not a pytree, how are they dynamically passed to a jitted function?

They're indeed not a pytree, but they do correspond to a "JAX type" (that error you were getting with the VJP bug is spurious).  In other words: we made it work!

And an unrelated question, after #14856 is fixed, how should I produce a zero cotangent for a key array?

I'm not sure that it makes sense to make one? Key arrays correspond to uint-dtyped arrays under the hood, but either way neither of those forms a vector space. If a function returns a key array, what does it means to differentiate it? Int dtypes present a special case that we (perhaps questionably) decided to handle, and so zeros_like works there.
Pragmatically: if you're taking VJP of a function whose output has some key arrays and some numeric ones, you could wrap it in one that only outputs numeric ones (and drops the keys) and take VJP of that?

I do appreciate your point that the interaction between key arrays and our AD API changes as we upgrade to typed key arrays, and some user-side code might need rewriting. We'll have to think on whether we can make the upgrade easier...

Right.  I may be able to work around this, but it's going to be complicated.
One pattern that's pretty common in my code is to have classes like this:
@dataclass
class GeometrySamplerLoss:
    attention_prediction_error: RealArray
    rivals_prediction_error: RealArray
    attention_curvature: RealArray
    rivals_curvature: RealArray

    @classmethod
    def zeros(cls) -> GeometrySamplerLoss:
        z = jnp.asarray(0.0)
        return GeometrySamplerLoss(z, z, z, z)

    @classmethod
    def cotangent(cls) -> GeometrySamplerLoss:
        o = jnp.asarray(1.0)
        z = jnp.asarray(0.0)
        return GeometrySamplerLoss(o, o, z, z)

When inferring a trajectory using scan, I use the zeros method to initialize the state, and the contangent method to produce a custom cotangent to pushed into a VJP to train these model components.
I understand your idea about not adding key arrays to model component outputs, but instead to create auxilliary outputs. This will complicate my design.  I'll have to have a pair of outputs—one for regular things, and one for auxilliary things.  (I guess while I'm at it, I can put all of the non-diferrentiated things in the auxxilliary output, which is a benefit.)
Alternatively, we could consider something like jax.custom_derivatives.zero_cotangent:
def zero_cotangent(x: T) -> T:
  """Return a zero cotangent like x."""

Is that what interpreters.ad.instantiate_zeros does?

They're indeed not a pytree, but they do correspond to a "JAX type"

Maybe I don't understand the definition of "pytree".  I thought anything that supports tree_util.tree_flatten is a pytree?  Or does pytree imply an aggregate type? So Array is not a pytree for that reason?

Maybe I don't understand the definition of "pytree". [...]

I rather meant more narrowly that the type is not registered with tree_util.register_pytree_node[_class]. By your more basic definition, key arrays are indeed pytrees (specifically, leaves, just like other arrays are).

Right. I may be able to work around this, but it's going to be complicated.

Yeah, I can understand that this is more complex to express, at least relative to what you could write earlier. We'll have to think about this, but perhaps slightly orthogonally.
For example, maybe we should allow None or a SymbolicZero(shape, dtype) as a generalized convenient shorthand for (co-)tangents that indicate "this is not involved in differentiation." The shorthand here is really just to avoid the has_aux and closure rewriting, but it would have essentially equivalent meaning. And it could be nice for more than only key arrays, too.

Alternatively, we could consider something like jax.custom_derivatives.zero_cotangent

This sounds like it'd be along the lines of the above, in that it could be how you'd obtain such a hypothetical SymbolicZero(shape, dtype). We might also want it for tangents. Maybe we could call it symbolic_zero_perturbation_like or something that's less verbose but along the same lines.
I'm thinking out loud here.

Is that what interpreters.ad.instantiate_zeros does?

Kind of, but not exactly in that it doesn't know about primal-tangent correspondences. Anyway, that's an internal helper, which will be rendered only available via jax._src at the next opportunity. I wouldn't depend on it.

This sounds like it'd be along the lines of the above, in that it could be how you'd obtain such a hypothetical SymbolicZero(shape, dtype). We might also want it for tangents. Maybe we could call it symbolic_zero_perturbation_like or something that's less verbose but along the same lines.
I'm thinking out loud here.

Awesome.
I think there's a lot of beauty to the way that you can return None out of a custom VJP to represent a zero cotangents for a non-differentiated primal input.  What I'm looking for is a way to pass something into a custom VJP to represent a zero cotangent of non-differentiated primal output.
So, I really like your idea of SymbolicZero.  Like you say, it would be nice for it to work for more than only key arrays—ideally,  all "Jax types"?

Anyway, that's an internal helper, which will be rendered only available via jax._src at the next opportunity. I wouldn't depend on it.

I'm definitely not using that!  :smile:   I only found it because I guessed that you might be producing zero cotangents somewhere in Jax code.  If you already have a zero cotangent function inside Jax, I figured it would strengthen the argument for exposing such a function.

I brought up both None and SymbolicZero because both come up in custom JVPs as of #14570. Symbolic zeros enter the rule, but the rule can return Nones if preferred. Plain Nones are fine if information like the shape and dtype aren't needed or can be inferred. I haven't entirely thought through whether a None is enough when invoking a VJP.

If you already have a zero cotangent function inside Jax, I figured it would strengthen the argument for exposing such a function.

To be sure, I think we've determined that this isn't quite the function you're looking for anyway – is that right?
That is, your request is not "let me obtain a proper zero cotangent for this arbitrary primal array." Instead it is "let me indicate, by passing a sentinel value in place of a cotangent, an intent not to perturb at this output position."
(In fact, there isn't a cotangent space for your primal array, and in particular no zero contangent.)

Is that what interpreters.ad.instantiate_zeros does?

Kind of, but not exactly in that it doesn't know about primal-tangent correspondences. Anyway, that's an internal helper, which will be rendered only available via jax._src at the next opportunity. I wouldn't depend on it.

I do depend on this... :D Please keep in available somewhere please!

Plain Nones are fine if information like the shape and dtype aren't needed or can be inferred. I haven't entirely thought through whether a None is enough when invoking a VJP.

I'm pretty sure plain Nones are totally fine. That's the API offered by equinox.filter_vjp and it works smoothly. (After all you can always just reconstruct the symbolic zero with a Zero(core.get_aval(primal).at_least_vspace()).)

That is, your request is not "let me obtain a proper zero cotangent for this arbitrary primal array." Instead it is "let me indicate, by passing a sentinel value in place of a cotangent, an intent not to perturb at this output position."

Yes, exactly!
primals_out, f_vjp = vjp(f, *primals_in)
cotangents_out = f_vjp(*cotangents_in)

Where cotangents_in is a tuple of pytrees of cotangent inputs, some of which may contain symbolic zero components.  For example, cotangents_in[3] may be equal to (jnp.ones(3), {'foo': SymbolicZero(PRNGKey(2))}).
This goes beyond what's supported by None in a custom VJP backwards pass (which can only send None for an entire cotangent output—not for a component.

I'm pretty sure plain Nones are totally fine. That's the API offered by equinox.filter_vjp and it works smoothly

So you support None even in place sub-elements of cotangents (as in my example above)?

Closing because at this point we have jax.random.{key_data,key_impl} for unwrapping and jax.random.wrap_key_data for wrapping.


TypeError: 'NoneType' object is not iterable

I have tried redownloading, rebooting, but nothing works, this is the error i get:
[2023-06-09 15:54:08.191908] Waiting for device [2023-06-09 15:54:08.191908] Found device = 0e8d:20ff Traceback (most recent call last):   File "C:\Users\Lucec\OneDrive\Desktop\bypass_utility-master\main.py", line 237, in <module>     main()   File "C:\Users\Lucec\OneDrive\Desktop\bypass_utility-master\main.py", line 40, in main     device = Device().find()   File "C:\Users\Lucec\OneDrive\Desktop\bypass_utility-master\src\device.py", line 109, in find     self.ep_in = usb.util.find_descriptor(cdc_if, custom_match=lambda x: usb.util.endpoint_direction(x.bEndpointAddress) == usb.util.ENDPOINT_IN)   File "C:\Users\Lucec\AppData\Roaming\Python\Python310\site-packages\usb\util.py", line 192, in find_descriptor     return _interop._next(desc_iter(**args))   File "C:\Users\Lucec\AppData\Roaming\Python\Python310\site-packages\usb\_interop.py", line 68, in _next     return next(iter)   File "C:\Users\Lucec\AppData\Roaming\Python\Python310\site-packages\usb\util.py", line 183, in desc_iter     for d in desc: TypeError: 'NoneType' object is not iterable

Can anybody help?

I am getting this identical error. I ran the program from the FireISO image of linux.


cmd/vet: Consider reverting tag conflict for embedded fields

What version of Go are you using (go version)?

$ go version
go version go1.12 linux/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/pschultz/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pschultz/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build788821326=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Run go vet on existing code base, containing code such as this: https://play.golang.org/p/HnkPcNUu84J
What did you expect to see?
go vet to either succeed, or to report only real problems.
What did you see instead?
go vet fails due to intended shadowing of embedded fields with json tags.
#25593 changed vet to also report repeated tags from embedded types.
We use this technique intentionally to create slightly varying JSON representation for struct types, typically when returning large lists of a particular type. Here is a simplified example (playground):
package main

import (
    "encoding/json"
    "fmt"
)

type Book struct {
    Author Author `json:"author"`
    Title  string `json:"title"`
}

type Author struct {
    Name      string `json:"name"`
    Biography string `json:"biography"`
}

func main() {
    b := Book{
        Title: "Foo",
        Author: Author{
            Name:      "John Doe",
            Biography: "Lorem Ipsum",
        },
    }

    // When returning a list of books, we don't want to include the whole
    // Author struct for each book.
    type BookSummary struct {
        Book            // Include all Book fields by default,
        Author struct { // but override the "author" field with a smaller model
            Name string `json:"name"`
            // All other fields omitted
        } `json:"author"`
    }

    var s BookSummary
    s.Book = b
    s.Author.Name = b.Author.Name

    j, _ := json.MarshalIndent(s, "", "  ")
    fmt.Println(string(j))
}

With go vet now rejecting this code, the only viable alternative I can see is to redefine the Book type completely:
type BookSummary struct {
    Title  string `json:"title"`
    Author struct {
        Name string `json:"name"`
    } `json:"author"`
    // Many more fields
}

This way, however, the JSON representation of BookSummary will not be updated automatically when Book fields are added or changed. We would also have to assign each field individually, since Book and BookSummary don't have the same underlying type. Realistically, this forces us to do some kind of code generation, which is clearly much more trouble than what worked with Go 1.11.
Other possible fixes are:

Not run go vet anymore
Marshal the Book value, then unmarshal into a map, then modify the map, and then marshal again.
Add the MarshalJSON method and some fields that control how that method behaves.

None of these are appealing.
Please consider this as a valid use-case for repeated json tags on embedded fields and revert 4b439e41e2cdd78e0eeed05942c93364c5d99b6b.

This is why we ask that you try out betas and RCs - this change to vet has been shipped in all 1.12 releases, going all the way back to beta1 :)
I admit I haven't considered this kind of false positive, but it would be a shame to simply throw away the added check. @alandonovan @robpike @powerman any thoughts?
Another option is to revert this particular vet enhancement in 1.12.1, and keep it in master to decide what to do before the 1.13 release.

Well, we had same bug in our old implementation (small test helper function based on reflect). It was easy enough to fix it: iterate over struct fields from last to first, add seen map to skip already seen field names, pass current seen map to same (recursive) function in case of Anonymous struct field or pass empty map in case of non-Anonymous struct field.
I don't know exact Go policy about such non-security fixes in patch releases - if policy forbid this then such a fix should go in 1.13 while 1.12.1 should revert added check. But fix is fairly obvious (I suppose go vet should require similar change in algorithm), so maybe it makes sense to allow it for 1.12.1.

This does seem like a valid use of field shadowing with no easy alternative. Daniel, do you have any real-world examples of true-positive reports of this checker that we could use to try to identify a better heuristic? Otherwise we may have to disable the field shadowing check for now.
There are many ways in which adding an annotation or comment mechanism would simplify the task of writing checkers with high precision and recall, but we have historically avoided doing so.

@alandonovan I think there are some true positives which we do want to keep as part of the check. In particular, when the duplicates happen at the same level, so neither "wins" and overrides the other. For example:
https://play.golang.org/p/tcTVhSJ2F2b
In that program, neither field is encoded, even though both are promoted normally. Both start showing up if either json tag is changed. I don't think this could ever be a false positive; if one really wants to skip nested fields, they can add json:"-" to the anonymous struct fields, or they can override both with a third field in the parent which isn't encoded.
I don't think the fix would be trivial, though. And given that the check isn't super important, and we've gotten one false positive wrong already, I think we should revert in 1.12.1. I can submit the non-revert fix to master for 1.13.
@alandonovan what would be the simplest way to apply the revert? The original change was in cmd/vet, and the code has been refactored and moved to another repo, so a clean revert won't work. In order of preference, I would:

Add a return right after if field.Anonymous() and remove the relevant tests, disabling the enhancement
Manually port the revert to cmd/vendor/x/tools
Revert in x/tools, pull only that change to cmd/vendor, and un-revert in x/tools

I forgot that x/tools has a 1.12 branch; we can revert the commit(s) there, and pull the latest 1.12 branch changes into Go's 1.12 branch.

Is this behaviour described in the bug an supported use case that should continue to work or a hack that happens to work?
Because if this behaviour is supported, the it seems subtle enough to warrant an example. This would lock down this behaviour both in vet as well as in the encoding/json package.

@nightlyone I'm not sure if this is a documented and intended feature. But like @alandonovan mentioned, it seems like a useful feature to me. And I imagine some users already depend on it, as pointed out by the bugs filed against vet.
Let's use #30846 to keep track of the proper fix for Go 1.13.

@mvdan, go vet is still failing for the same reason in 1.12.1. Looks like the cmd vendor tree hasn't been updated.

@pschultz you're absolutely right. Why was this issue closed? Nothing about this CL was merged into Go's 1.12 release branch. And https://go-review.googlesource.com/c/tools/+/164659/ simply updated this issue, it didn't close it.
Well... let's try again for 1.12.2.

@mvdan, is this still on your radar?

See https://github.com/golang/go/issues/30399#issuecomment-483652435; I did the relevant backports in the tools repo over a month ago. This just needs someone to update the vendored copy of x/tools before doing a 1.12.x release. I'm not needed for that, nor do I know when Go 1.12.5 will happen. I honestly don't know why this trivial amount of work has been getting pushed back since Go 1.12.2.

Closing as the cherry-picks have landed.


⚠ Bofrost.be has degraded performance

In 3132e04, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1074 ms

Resolved: Bofrost.be performance has improved in 55cc0f6 after 6 minutes.


changed hover color on upload button, bell icon and profile icon colo…

…rs to white
Description
This pull request includes all tasks on the uniformity trello board card.
#1 The hover color on the "Upload a case" button has been changed to reverse what normally looks like. Previously the button just went completely white when hovered over. (Non-hover remains unchanged)

#2 The bell icon next to the aforementioned button, has had it's background color changed to white.
#3 The fill color on the "Profile" icon next to the bell icon has also been changed to white.

#4 all shadow boxes have been eliminated from the application.
Type of change
Visual
Please delete options that are not relevant.

[ x ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] This change requires a documentation update

Checklist:

[ x ] My code follows the style guidelines of this project
[ x ] I have performed a self-review of my own code
[ x ] I have removed unnecessary comments/console logs from my code
[ x ] I have made corresponding changes to the documentation if necessary (optional)
[ x ] My changes generate no new warnings
[ x ] I have checked my code and corrected any misspellings
[ x ] No duplicate code left within changed files
[ x ] Size of pull request kept to a minimum
[ x ] Pull request description clearly describes changes made & motivations for said changes

Very clean and direct comments on the update, I understand everything you did without even looking at the code yet.


Add tls-everywhere

Can one of the admins verify this patch?

@asyedham could you rebase this patch. i got machines and I am going to test

@masco Have resolved the merge conflicts. Please have a look


Backprojection: From Pixel Coordinates to World Coordinates

Hi everyone,
I am able to create a ray from the camera optical centre to the image pixel coordinates. However, a minus sign is unclear to me. It must be correct as it works but I would like to understand the last missing part.
On the following page the mapping from pixel to world coordinates is described in Section Pixel to Application-specified Coordinate System:
https://github.com/MicrosoftDocs/mixed-reality/blob/1e5d3036ce48120106af6cd8647c2aaaff21a881/mixed-reality-docs/locatable-camera.md
Gernerally, mapping from image coordinates to world coordinates we only obtain a ray connecting the camera optical center and all point lying on that ray. For this we can use the inverse Camera Intrinsic Matrix:
K^-1 = [1/fx        0          -cx/fx
0          1/fy       -cy/fy
0           0               1]
Xcam = K^-1 * Xpix
Thus, considering the calculation of Xcam_x:
Xcam_x = (Xpix_x/fx) - (cx/fx)
I interprete the 7th row  (from.x = (to.x - (from.z * axsX.z)) / axsX.x;) of the function UnProjectVector as follows:
Xcam = (Xpix_x/fx) - (cx *(-1)/fx) = (Xpix_x/fx) + (cx/fx)
Can someone explain the flip of the signs here? I assume it is due to the image plane being at Z = -1. But I am very uncertain about this and further, I can not explain it mathematically.
Thanks for any help or discussion,
Lisa

I also meet this problem, do you have any solution? Thanks in advance.


Incorrect line number reported during YAML parsing

---
GENERATOR:
  PackageName: cgogentest
  PackageDescription: "Package harfbuzz provides Go bindings for Harfbuzz"
  PackageLicense: "THE AUTOGENERATED LICENSE.
  PkgConfigOpts: [harfbuzz]
  Includes: [hb.h]

PARSER:
  IncludePaths:
    - /usr/include
  SourcesPaths:
    - cgogentest/cgogentest.h

TRANSLATOR:
  ConstRules:
    defines: expand
  PtrTips:
    function:
      - {target: "_buffer_serialize_list_formats$", self: arr, tips: [ref]}
      - {target: ".", tips:[sref,sref,sref,sref,sref]}
  Rules:
    global:
      - {transform: lower}
      - {action: accept, from: "^hb_"}
      - {action: replace, from: "^hb_", to: _}
      - {transform: export}
    const:
      - {action: accept, from: "^HB_"}
      - {action: replace, from: "^hb_", to: _}
    type:
      - {action: ignore, from: "_func_t$"}
      - {action: replace, from: "_t$"}
    private:
      - {transform: unexport}
    post-global:
      - {action: replace, from: _$}
      - {load: snakecase}

Reports an error:
17:18 $ cgogen cgogentest.yml
  processing cgogentest.yml ⠋[ERR] yaml: line 20: found unexpected ':'

It took me 5 minutes to realise that the error is actually on Line 21
      - {target: ".", tips:[sref,sref,sref,sref,sref]}

forgot a space after :

Yes, but the line number reported is wrong. Isnt that a bug?

@deepakjois that comes directly from https://github.com/go-yaml/yaml, I guess they omitting --- there but don't know for sure.

Ok, but I still think it is a usability issue. Somebody new to this may not realise what the problem is, and waste time on it like I did.

I'm really sorry about that :)
However YAML syntax errors are out of scope of my concern, the YAML itself is the best usability decision I made here.
The only option is to change the parser to something else, but I'm lazy for that.

I wasn’t suggesting or expecting you to change the parser. But I do think reporting the wrong line number is a serious usability issue.
But I am a bit disappointed that you are so eager to close every issue I am filing. In this case, the least you can do is keep the issue open. I could have filed a bug against the yaml package, if it is indeed their problem, and then maybe closed the issue here.
Just because it isn’t your problem doesn’t make it go away. Anyway, I won’t say much because this is your project and your repository. But I hope you reconsider closing issues without discussion, if you are interested in fostering a community around this tool.
Thank you for reading.

Sorry I'm kinda new to issues, I close them the way I archive emails in the inbox, don't want to have the desk cluttered. The discussion still goes on, I don't lock the thread. I have checked many communities and they keep issues closed until there is nothing that can bring them back.
This time I agreed with you and re-opened issue :)

Sorry I'm kinda new to issues, I close them the way I archive emails in the inbox, don't want to have the desk cluttered. The discussion still goes on, I don't lock the thread.

Thank you for the clarification. Like I said, this is your repository, so you are free to organise things the way you want. My only concern is that this issue doesn’t get forgotten.
When I get the time, I will definitely followup with the yaml project and see why this is happening.

Reported go-yaml/yaml#205


Rename package product to MapLibre

https://github.com/maplibre/maplibre-gl-native-distribution/blob/d761956e81e74d8bdbfba31e0ec3a75616190658/Package.swift#L8
https://github.com/maplibre/maplibre-gl-native-distribution/blob/d761956e81e74d8bdbfba31e0ec3a75616190658/Package.swift#L9
Can this be renamed to MapLibre? It shows up like this right now:

It is possible, of course, to change the library name.  I have always leaned towards leaving it as is, with the rationale is that is originally the Mapbox SDK.  I will leave it to the MapLibre community to decide.
The library is used in Swift as import Mapbox.  It will be a breaking change that we'll need to communicate to consumers of the Swift Package if it is renamed.

I'm also inclined to have the framework renamed.
I think there might be use cases where one will use both SDKs in the same app.

Can this be closed with https://github.com/maplibre/maplibre-gl-native-distribution/commit/71237cde41cad7b2af4df2abed637383e879fb2e#diff-f913940c58e8744a2af1c68b909bb6383e49007e6c5a12fb03104a9006ae677e?

Yes!
You also need to use import MapLibre from 6.0.0.


spelling: installation

[x] Have you signed the Contributor License Agreement?
[x] Are you working against an Issue? #2728

This is the followup for #2728, it removes various items that are now covered by dictionaries, and fixes a typo that crept in while staging the update...
Microsoft Reviewers: Open in CodeFlow

/azp run


Create UI for the Download Manager

Some basic UI is added in 82be709ae0d6d2c88fa4a3d5653a76a37777e298 it allows basic download to a download folder inside the project. The install and launch features are not currently called and dont have UI support

Does this include the COE?

yes COE is there now. It just downloads it.
it does all what Anderes tool did up to the install phase which I did not add, not completely sure how this should work. The API for calling it is there so just need to get the workflow clarified for this part. It should just take an hour or two to add these calls if the user workslow is more or less strait forward ( I in general just dont like tools to auto install stuff)

On 22 May 2016, at 23:28, Luis Diogo Couto<EMAIL_ADDRESS>wrote:
Does this include the COE?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub https://github.com/into-cps/intocps-ui/issues/42#issuecomment-220857534

Cool. I guess all that's left is starting the coe when we launch co-sims.
Once that's done we can try the alpha.
By the way,  I'm with you on auto installs. Not a fan at all.
On 22 May 2016 22:32, "Kenneth Lausdahl"<EMAIL_ADDRESS>wrote:

yes COE is there now. It just downloads it.
it does all what Anderes tool did up to the install phase which I did not
add, not completely sure how this should work. The API for calling it is
there so just need to get the workflow clarified for this part. It should
just take an hour or two to add these calls if the user workslow is more or
less strait forward ( I in general just dont like tools to auto install
stuff)

On 22 May 2016, at 23:28, Luis Diogo Couto<EMAIL_ADDRESS>wrote:
Does this include the COE?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub <
https://github.com/into-cps/intocps-ui/issues/42#issuecomment-220857534>

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/into-cps/intocps-ui/issues/42#issuecomment-220857748

The COE is downloadable and can be started from the COE Server status

See #55 for further improvements.


Exposing getSchemaVersion in the client by making it public. (#3744)

Exposing getSchemaVersion in the client by making it public.

Implemented getSchemaVersion in TopicMessageImpl.java

Changed the release version

<--
Contribution Checklist

Name the pull request in the form "[Issue XYZ][component] Title of the pull request", where XYZ should be replaced by the actual issue number.
Skip Issue XYZ if there is no associated github issue for this pull request.
Skip component if you are unsure about which is the best component. E.g. [docs] Fix typo in produce method.

Fill out the template below to describe the changes contributed by the pull request. That will give reviewers the context they need to do the review.

Each pull request should address only one issue, not mix up code from multiple issues.

Each commit in the pull request has a meaningful commit message

Once all items of the checklist are addressed, remove the above text and this checklist, leaving only the filled out template below.

(The sections below can be removed for hotfixes of typos)
-->
(If this PR fixes a github issue, please add Fixes #<xyz>.)
Fixes #
(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)
Master Issue: #
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

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

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

run java8 tests

@merlimat : can you include this in 2.3.1 as well?

 I'm cherry-picking that change directly instead (same as all the other changes merged in master and marked for 2.3.1 milestone).

This is actually a backport of #3744 for branch-2.3. I'm cherry-picking that change directly instead (same as all the other changes merged in master and marked for 2.3.1 milestone).

Thats great, thank you!


Autoschema rework

This is a large PR and please click each commit to have a better understanding of how code has been changed.
In short, this PR
1.  Remove PreflightSchema, ApplySchemaShard and ApplySchemaKeyspace out of vtctl.
2. ApplySchema in vtctl now only allows to apply schema changes to a given keyspace using
schemamanager package.
3. Rewrite test/schema.py to test vtctl.ApplySchema.
4. Fix tests broken due to above change.
More clean ups are coming once schemamanager is mature (better validation, error recovering).

LGTM

@yaoshengzhe, with this PR you removed Ammar's integration test for "vtctl CopySchemaSlave": https://github.com/youtube/vitess/commit/058214740ce8bdea2fa24686b4db91919835144b
I assume you didn't do this intentionally? If that's the case, I'll re-add it as a separate test method in schema.py.

@michael-berlin we could add it back for sure.


echo mouse co-ordinates

Hi I am new here and totally impress by the wonderful presentation yesterday. Thanks
I have successfully  launch the Tagui Live on chrome browser over command prompt.
However when I key in the command - echo mouse_xy() with the intent to get the co-ordinates. It seems to hang over there.
Appreciate any advice on it. ( I am a Window User)
Thanks

Hello @AntoryuLimyh
Good to see you at yesterday's webinar!
You may try the following:

Check that backticks are wrapped around the syntax mouse_xy()
Ensure live mode is successfully started up before using, by typing only after the "LIVE MODE - type done to quit" line appears

Please see attached snapshot for a sample in Windows cmd. If error persists can you also attach a snapshot so we can investigate further? :)

Hello @AntoryuLimyh
Good to see you at yesterday's webinar!
You may try the following:

Check that backticks are wrapped around the syntax mouse_xy()
Ensure live mode is successfully started up before using, by typing only after the "LIVE MODE - type done to quit" line appears

Please see attached snapshot for a sample in Windows cmd. If error persists can you also attach a snapshot so we can investigate further? :)

Hi Ruth,
Thanks for the prompt response.
I have tried that but no luck in getting it to work.
Thanks
Andrew Lim
On Fri, 29 Jan 2021, 09:43 Ruth<EMAIL_ADDRESS>wrote:

Hello @AntoryuLimyh https://github.com/AntoryuLimyh
Good to see you at yesterday's webinar!
You may try the following:

Check that backticks are wrapped around the syntax mouse_xy()
Ensure live mode is successfully started up before using, by typing
only after the "LIVE MODE - type done to quit" line appears

Please see attached snapshot for a sample in Windows cmd. If error
persists can you also attach a snapshot so we can investigate further? :)
[image: image]
https://user-images.githubusercontent.com/40910744/106219961-71eb1880-6215-11eb-81be-f3a1d980bb60.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769516069,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OW3JJVF765G6NR3ZYLS4IHF5ANCNFSM4WYATCMA
.

Hi Ruth,
Thanks for the prompt response.
I have tried that but no luck in getting it to work.
Thanks
Andrew Lim
On Fri, 29 Jan 2021, 09:43 Ruth<EMAIL_ADDRESS>wrote:

Hello @AntoryuLimyh https://github.com/AntoryuLimyh
Good to see you at yesterday's webinar!
You may try the following:

Check that backticks are wrapped around the syntax mouse_xy()
Ensure live mode is successfully started up before using, by typing
only after the "LIVE MODE - type done to quit" line appears

Please see attached snapshot for a sample in Windows cmd. If error
persists can you also attach a snapshot so we can investigate further? :)
[image: image]
https://user-images.githubusercontent.com/40910744/106219961-71eb1880-6215-11eb-81be-f3a1d980bb60.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769516069,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OW3JJVF765G6NR3ZYLS4IHF5ANCNFSM4WYATCMA
.

Hello @AntoryuLimyh
I see. Perhaps you can try the following:
Please check that you have installed OpenJDK for Windows - see step 3 in installation steps here. FYI, the mouse_xy() function relies on TagUI's built-in integration with SikuliX (base on OpenCV) which is dependent on OpenJDK.
You may also attach a copy of the log file right after you exit the run, for us to investigate further. The log file can be found here: C:\tagui\src\tagui.sikuli\tagui.log , which keeps track of the latest run.
Hope this helps!

Hello @AntoryuLimyh
I see. Perhaps you can try the following:
Please check that you have installed OpenJDK for Windows - see step 3 in installation steps here. FYI, the mouse_xy() function relies on TagUI's built-in integration with SikuliX (base on OpenCV) which is dependent on OpenJDK.
You may also attach a copy of the log file right after you exit the run, for us to investigate further. The log file can be found here: C:\tagui\src\tagui.sikuli\tagui.log , which keeps track of the latest run.
Hope this helps!

Hi Ruth,
Thanks. It works right after I installed the OpenJDK.
Appreciate your help.
Thanks
Regards,
Andrew Lim
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Fri, Jan 29, 2021 at 11:46 AM Ruth<EMAIL_ADDRESS>wrote:

Hello @AntoryuLimyh https://github.com/AntoryuLimyh
I see. Perhaps you can try the following:
Please check that you have installed OpenJDK for Windows - see step 3 in
installation steps here
https://tagui.readthedocs.io/en/latest/setup.html. FYI, the mouse_xy()
function relies on TagUI's built-in integration with SikuliX (base on
OpenCV) which is dependent on OpenJDK.
You may also attach a copy of the log file right after you exit the run,
for us to investigate further. The log file can be found here:
C:\tagui\src\tagui.sikuli\tagui.log , which keeps track of the latest run.
Hope this helps!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769555175,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OXYHJQNW6R3OT3DFHDS4IVRXANCNFSM4WYATCMA
.

Hi Ruth,
Thanks. It works right after I installed the OpenJDK.
Appreciate your help.
Thanks
Regards,
Andrew Lim
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Fri, Jan 29, 2021 at 11:46 AM Ruth<EMAIL_ADDRESS>wrote:

Hello @AntoryuLimyh https://github.com/AntoryuLimyh
I see. Perhaps you can try the following:
Please check that you have installed OpenJDK for Windows - see step 3 in
installation steps here
https://tagui.readthedocs.io/en/latest/setup.html. FYI, the mouse_xy()
function relies on TagUI's built-in integration with SikuliX (base on
OpenCV) which is dependent on OpenJDK.
You may also attach a copy of the log file right after you exit the run,
for us to investigate further. The log file can be found here:
C:\tagui\src\tagui.sikuli\tagui.log , which keeps track of the latest run.
Hope this helps!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769555175,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OXYHJQNW6R3OT3DFHDS4IVRXANCNFSM4WYATCMA
.

Nice work Ruth!
Hi Andrew, adding on, this is a video of how we arrived at the solution - https://youtu.be/rgDUu0D3Ws4?t=3392

Nice work Ruth!
Hi Andrew, adding on, this is a video of how we arrived at the solution - https://youtu.be/rgDUu0D3Ws4?t=3392

Hi Ruth and Ken,
Thanks for the wonderful product and support.
Really appreciate it,
Have a great week ahead.
Regards,
Andrew Lim
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Sat, Jan 30, 2021 at 1:30 AM Ken Soh<EMAIL_ADDRESS>wrote:

Nice work Ruth!
Hi Andrew, adding on, this is a video of how we arrived at the solution -
https://youtu.be/rgDUu0D3Ws4?t=3392
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769942352,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OQKYYCA5KGVVALYCVTS4LWD7ANCNFSM4WYATCMA
.

Hi Ruth and Ken,
Thanks for the wonderful product and support.
Really appreciate it,
Have a great week ahead.
Regards,
Andrew Lim
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Sat, Jan 30, 2021 at 1:30 AM Ken Soh<EMAIL_ADDRESS>wrote:

Nice work Ruth!
Hi Andrew, adding on, this is a video of how we arrived at the solution -
https://youtu.be/rgDUu0D3Ws4?t=3392
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kelaberetiv/TagUI/issues/920#issuecomment-769942352,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASLL6OQKYYCA5KGVVALYCVTS4LWD7ANCNFSM4WYATCMA
.


request: Optional config delete message after "Skyra, roles XY"

Is there an existing issue or pull request for this?

[X] I have searched the existing issues and pull requests

Feature description
An optional configuration (maybe also in the Backend) to automatically delete the messages (command message and bot response) after the role was applied.
Desired solution
Acceptance criteria like:

[ ] bool if the bot command should be deleted
[ ] bool if the bot response should be deleted
[ ] duration before the message will be deleted in sec
[ ] add configuration of these params to the roles tab in skyra frontend (skyra.pw/guilds/XXXXXXX/roles)
[ ] add a "this message will be deleted after X sec" to the response

Alternatives considered
Acceptance criteria like:

[ ] bool if the bot command and the response should be deleted after success
[ ] hardcode delete duration to 10 sec or something readable like that

Additional context
Discovered this while users on my guild will use the commands in the same channel the public roles description is in (the users are non techis) 😄 for now i delete this messages on my own 🤣

I am going to close this because it will never be realized. Part of our plans for Skyra V7 (which you can read here: https://skyra.notion.site/Skyra-v7-922ba06004654142a7b63347a92513a8 ) is removing public roles as they are done now and instead implementing them using Buttons and/or Select Menus. An example of how this might look is Discord's official Pronoun Picker bot: https://support.discord.com/hc/en-us/articles/1500012528941-Pronoun-Picker-Bot-FAQ

Clicking a role button will give an ephemeral reply which only the person clicking can see and disappears automatically after some time.


Fix: Hydrogen incompatible with Atom 1.11+

Fixes #429
Tested with Atom 1.10.0 and 1.12.0-dev.

Discovered during researching for #428

Once I see that green check mark, I'll merge it and you can :shipit:.

We have a few PRs open and almost ready. I'll ship v0.14.0 when they are merged.


Decide on final date and name

As decisions on the final date and name require a quick content update, I'm filing this issue.

[ ] Implement the final campaign name (including logo and all occurances of the name, including repo)
[ ] Implement final date (mostly for the title on the landing page and the countdown)

On date I am thinking first week of October, that is: Monday the 2nd as the first day of events.
On naming I am thinking on landing on "Firefox 57 Sprint"

Assigning to me to reflect that on website.


chore: merge main into wasm clients (pre-v8)

Description
Merges the commit exactly before the sdk 50 upgrade into wasm-clients
Commit Message / Changelog Entry
chore: merge main up to commit fe52d2a147592885c6aa189d9325b792c46c7b86

see the guidelines for commit messages. (view raw markdown for examples)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md).
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[ ] Added relevant godoc comments.
[ ] Provide a commit message to be used for the changelog entry in the PR description for review.
[ ] Re-reviewed Files changed in the Github PR explorer.
[ ] Review Codecov Report in the comment section below once CI passes.

#4612


Doesn’t receive messages on big endian machines

% uname -a
Linux minkus 4.9.0-3-octeon #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) mips GNU/Linux

% DISPLAY=:99 python2 ./poc.py
Traceback (most recent call last):
  File "./poc.py", line 11, in <module>
    outputs = i3.get_outputs()
  File "/home/stapelberg/.local/lib/python2.7/site-packages/i3ipc/i3ipc.py", line 276, in get_outputs
    data = self.message(MessageType.GET_OUTPUTS, '')
  File "/home/stapelberg/.local/lib/python2.7/site-packages/i3ipc/i3ipc.py", line 250, in message
    return self._ipc_send(self.cmd_socket, message_type, payload)
  File "/home/stapelberg/.local/lib/python2.7/site-packages/i3ipc/i3ipc.py", line 246, in _ipc_send
    data, msg_type = self._ipc_recv(sock)
  File "/home/stapelberg/.local/lib/python2.7/site-packages/i3ipc/i3ipc.py", line 241, in _ipc_recv
    data += self._recv_robust(sock, msg_length)
  File "/home/stapelberg/.local/lib/python2.7/site-packages/i3ipc/i3ipc.py", line 226, in _recv_robust
    return sock.recv(size)
OverflowError: Python int too large to convert to C long

% DISPLAY=:99 python3 ./poc.py
Traceback (most recent call last):
  File "./poc.py", line 11, in <module>
    outputs = i3.get_outputs()
  File "/home/stapelberg/.local/lib/python3.5/site-packages/i3ipc/i3ipc.py", line 276, in get_outputs
    data = self.message(MessageType.GET_OUTPUTS, '')
  File "/home/stapelberg/.local/lib/python3.5/site-packages/i3ipc/i3ipc.py", line 250, in message
    return self._ipc_send(self.cmd_socket, message_type, payload)
  File "/home/stapelberg/.local/lib/python3.5/site-packages/i3ipc/i3ipc.py", line 246, in _ipc_send
    data, msg_type = self._ipc_recv(sock)
  File "/home/stapelberg/.local/lib/python3.5/site-packages/i3ipc/i3ipc.py", line 241, in _ipc_recv
    data += self._recv_robust(sock, msg_length)
  File "/home/stapelberg/.local/lib/python3.5/site-packages/i3ipc/i3ipc.py", line 226, in _recv_robust
    return sock.recv(size)
OverflowError: Python int too large to convert to C ssize_t

It's weird that this has never come up before.


Bump supported Terrier version

Hi,
Your command match Terrier v4 (which Terrier 5 and 5.1 also support). I'm happy to provide input about changing the commandline incantations for Terrier v5.
Craig

Dear Craig,
I'm happy to implement / get pull requests to support Terrier v5. Please let me know what we could change.
Best,
Joao

See PR #5
It occurs to me it would be helpful if Terrier's batch retrieval could also write run files to stdout.
Craig

Thanks for the modifications, Craig.


CSS Files getting called every time the view is loaded

I'm noticing that the css file attached to a view is getting called every time I go to its corresponding view. Is there a way to only load the css file the first time a view is loaded?
This issue is causing a delay between the time it takes to load the view and render the css which is very noticeable.

persist: true


Login ERROR

Describe the bug
I can't connect to mikrotik.
Screenshots & Logfiles
debug | TRAP {"errors":[{"category":"","message":"invalid user name or password (6)"}],"channelId":"login","channel":{"id":"login","running":true,"closing":false,"closed":false,"clearEvents":false,"saveBuffer":true,"closeOnDone":false,"lastCommand":["/login","=name=iobroker","=response=007dc2d1cd3a54ab78839bde78e2423859",".tag=login"],"_events":{},"_eventsCount":3}}
in mikrotik log - login failure for user iobroker from <IP_ADDRESS> via api
Versions:

Adapter version: 1.2.1
JS-Controller version: 7.0.3
Node version: v20.18.1
Operating system: docker v10.0.0

Message is "invalid user name or password"
Please verify that you use the correct user and the correct password.
There is a chance that special characters within password / username could be handled incorrectly. Please try with username and password containing only alphanumeric characters (A-Za-z0-9) to explude such a problem.

I tried a password that consists only of numbers or only of letters, the result is the same-an error.

I suggest to open a topic at our forum to check of others have same problem or ev a solutuon.
https:// forum.iobroker.net


Azure needs an available Kubernetes version

Available kubernetes versions on Azure are subject to change. Look up a suitable available version, maybe:
https://docs.microsoft.com/en-us/rest/api/aks/agent-pools/get-available-agent-pool-versions
Just like we had to do for Digital Ocean here: https://github.com/Quansight/qhub/blob/main/qhub/provider/cloud/digital_ocean.py

This looks reasonably tricky to automate but would be extremely useful to have. I belive that first action is to create a curl request that can succesfully return the available kubernetes versions.

In case it's useful I use this command to check available AKS versions:
> az aks get-versions -l australiaeast -o table
The behavior of this command has been altered by the following extension: aks-preview

KubernetesVersion    Upgrades
-------------------  ------------------------
1.21.2               None available
1.21.1               1.21.2
1.20.7               1.21.1, 1.21.2
1.20.5               1.20.7, 1.21.1, 1.21.2
1.19.11              1.20.5, 1.20.7
1.19.9               1.19.11, 1.20.5, 1.20.7
1.18.19              1.19.9, 1.19.11
1.18.17              1.18.19, 1.19.9, 1.19.11

Thanks @dhirschfeld! We're trying to find a way to gather this information without the az command as we didn't want to make the install process any trickier for users... but maybe this is the way that it has to be done :/

I suppose you could use the python SDK directly rather than installing the CLI.

Looks like terraform is another way to get this info:

https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/kubernetes_service_versions

@danlester and @iameskild  seems like #927 addresses this issue - can we close now?

@trallard yes we can :)


foreach implementation?

Hi, thanks for your research. I have successfully used SOAP for training image restoration networks. However, while it works very well, performance is not great as I'm sure contributors are aware. Are there any plans to release a foreach version of SOAP? It would make it usable in real world scenarios for my user case. I've previously ported schedule-free to adan foreach, so I might be able to help in some way or another, even though I'm not a researcher in the field.
Thanks in advance.

There is a foreach implementation by Lucas Nestler at https://github.com/ClashLuke/HeavyBall. We are planning to update our implementation to also have it. I will also mention the biggest blocker to performance is better QR decomposition (Pytorch and Cusolver only support fp32 format making it slower).


Access Token contains incorrect scopes wrt roles of the user

Description:
JWT access token does not contain required scopes  wrt to the roles assigned to the user.
Role validation of the user is not happening during JWT token generation. All the scopes passed during token generation are been granted to the user without validating user roles.
When we generate JWT access token for a user say "operator" with only "view_role" by passing all the created scopes in the token api body like 'scope=openid,create_scope, view_scope, edit_scope'.
In token api response able to all the scopes which are passed during token generation.
The issue is seen only on a HA setup not on single node setup.
Token Api curl:
curl --location --request POST 'https://x.x.x.x/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=password'
--data-urlencode 'password=xyz@123'
--data-urlencode<EMAIL_ADDRESS>--data-urlencode 'client_id=xxxxxx'
--data-urlencode 'client_secret=xxxxxx'
--data-urlencode 'scope=openid operator_access_scope admin_access_scope creater_access_scope adaptor_admin_access_scope
Steps to reproduce:

Create different scopes associated with Roles(Ex: "create_scope" with "create" role associated, similarly edit_scope, view_scope) in publisher portal( APIM 3.2).
Create new user with only "view" role assigned.
Generate JWT access token by passing all the scopes in the body (scope = openid, create_scope edit_scope view_scope)
Notice that all the scopes passed during token generation are granted even though user has only "view" role and only view_scope has to granted for the user.

Affected product version:
3.2 and 5.10
Affected component:
APIM and Identity Server
Environment details (with versions):

OS: Linux - CentOS Linux 7
Client:
Env (Docker/K8s):

Optional fields
Related issues:
NA
Suggested labels:

Suggested assignees:

Any update on this?

Is this issue fixed in any other version ?


Why monaco-editor doesn't work with React Typescript server-side rendering

Monaco-editor does not work when I'm doing server-side rendering. There is an issue raised, #420, back in 2017 which was related to Server-Side Rendering.
I have been trying to integrate monaco-editor in a React app. I have had success but still facing issues. Below I have provided details of my development setup. Please let me know if you need more details to help me.
I have tsconfig.json file configured like this:
{
  "compilerOptions": {
    "target": "ES6",
    "module": "CommonJS",
    "lib": ["dom", "es5", "es2015.collection", "es2015.promise", "dom.iterable"],
    "jsx": "react",
    "sourceMap": true,
    "checkJs": false,
    "outDir": "./dist",
    "strict": true,
    "moduleResolution": "node",
    "baseUrl": "./node_modules",
    "typeRoots": ["node_modules/@types"],
    "allowJs": true,

    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,

    "preserveConstEnums": true,
    "isolatedModules": true
  },

  "include": ["./src/**/*"],
  "exclude": ["node_modules"]
}

And my package.json has the scripts configured like this:
"scripts": {
    "test": "jest",
    "start": "webpack serve",
    "server": "nodemon --exec ts-node server.tsx",
    "build": "webpack -w --mode=development"
  }

The start script is using webpack-dev-server and the server is using ts-node to run my server.tsx file.
The monaco-editor is imported in a React component .tsx file as import * as monaco from 'monaco-editor';
When I run this command: npm run start which uses webpack-dev-server all done nicely and I am able to see my app in the browser.
However, when I run this command: npm run server which uses ts-node to execute server.tsx file, I get this error:
Error: Cannot find module 'monaco-editor'
Require stack:
- D:\Development\Workstation\VividCodes.UI_OLD\src\components\TestMonaco.tsx
- D:\Development\Workstation\VividCodes.UI_OLD\src\components\App.tsx
- D:\Development\Workstation\VividCodes.UI_OLD\server.tsx
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)

This is a copy of the content of server.tsx file:
import express from 'express';
import * as React from 'react';
import ReactDOMServer from 'react-dom/server';

import App from './src/components/App';

const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const config = require('./webpack.config.js');

const webpackHotMiddleware = require('webpack-hot-middleware');

const server = express();
const compiler = webpack(config);
const port = 3000;

server.use(
  webpackDevMiddleware(compiler, {
    publicPath: config.output.publicPath,
  })
);

server.use(webpackHotMiddleware(compiler));

server.get('/', (req: any, res: any) => {
  const initialMarkup = ReactDOMServer.renderToString(<App />);
  console.log(initialMarkup);

  res.send(`

        <title>Monaco_Editor</title>

${initialMarkup}

  `)
});

server.listen(port, () => console.log(`Server started on port: ${port}`));

My plan was to use a correct custom server to render my components dynamically, than doing so on client-side.

Unfortunately the editor does not support server-side rendering, it cannot rebind to existing dom nodes.

Thanks for the comment. That's a shame. Any plan for this to be implemented? Given that it was raised back in 2017

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Component scoped styles don't leak to its slots

Version
3.0.4
Reproduction link
https://codesandbox.io/s/vue3-component-scoped-scss-j241l?file=/src/components/MainMenu.vue
Steps to reproduce
Follow the link and add pseudo element ":deep()" to scoped ".main-menu" CSS class of MainMenu component.
What is expected?
Styles should be applied to current component elements and slots of this component.
What is actually happening?
If don't use ":deep(.main-menu)" styles are applied only to current component elements. But if use this pseudo element, then the styles are applied only to slot elements and component elements inside ".main-menu", but not to this element (in example this is "ul" tag).

Is it still possible to apply all scoped components styles to slots inside current component without using pseudo elements from this https://github.com/vuejs/rfcs/blob/master/active-rfcs/0023-scoped-styles-changes.md ? Sometimes this option is really convenient and flexible enough. For example, it would be nice to add some "scoped-deep" attribute to

.main-menu, :slotted(.main-menu) {

This will apply styles to both the current component and the slotted elements.
I would not recommend :deep() as that will apply the styles to all nested DOM elements, possibly messing with styles in other, nested components. :deep-() is an escape hatch you should rarely need to reach for

.main-menu, :slotted(.main-menu) {

This will apply styles to both the current component and the slotted elements.
I would not recommend :deep() as that will apply the styles to all nested DOM elements, possibly messing with styles in other, nested components. :deep-() is an escape hatch you should rarely need to reach for

@LinusBorg, using your example, the styles of nested selectors (.main-menu__item...) are not applied to them. You try this on my codesandbox example.
And one more moment. In my project I use the BEM methodology of class naming. When I add your pseudo element :slotted() to some CSS class, then I get a "modifier" Error (with "element" &__some the same).

sass 1.30.0, sass-loader v10.1.0

I'll reopen this for the sass error, that seems worth investigating.
We might have to do something here at the compiler level to make these nested syntaxes work. Or maybe I'm missing something.

Okay, thanks. But what about the first question? :slotted() pseudo element doesn't support nesting if I add it to the parent (in my example this is .main-menu)?

To be honest, nested styles probably weren't considered during the design of this pseudo selector api - likely because we usually don't, or rarely,  use it in SFCs. Scoped styles usually make BEM unnessesary in my opinion, flat styles work fine for most things.
We will have to discuss how to approach this.
For now, you can only convert your nested stYles to flat ones to make it work.

This makes it work:
  &__item, ::v-slotted(&__item) {
    margin: 0 15px;

    a {
      color: #4CAF50;
    }
  }

https://codesandbox.io/s/vue3-component-scoped-scss-forked-1urfp?file=/src/components/MainMenu.vue

This makes it work:
  &__item, ::v-slotted(&__item) {
    margin: 0 15px;

    a {
      color: #4CAF50;
    }
  }

https://codesandbox.io/s/vue3-component-scoped-scss-forked-1urfp?file=/src/components/MainMenu.vue


Improve movment

What's new

Now player has the ability to walk (by default) and run (pressing Left Shift).
If player is in the 'young version', it has the ability to jump twice and higher since is more agile.
If player is not young, it has the ability to run faster but it can only jump once.
Fixed movement handle in update func so now is more consistent since it does not rely on fps.
All the multipliers are extracted into consts to be manually changed in the future easily.
Finally there is a toggle in inspector (player object) to switch between young version and old version:

A few things to comment:

The ratio between YV and GV is correct on both 'Jump' and 'Run' actions.
'Walking' velocity should be changed to a slower one. There is nearly no difference between running and walking in the YV. The walking velocity should be nearly boring to play.
The running velocity should be changed to a higher one on both cases but always keeping the ratio YV-GV.
When jumping in the GV, if the key 'jump' is pressed 1ms before the player lands it won't jump again. It should have a kind of memory that stores the command 'jump' just once when it's still on air but about to land.
Also, last minute update, we want to test how it would feel the 'Run_GrownVersion' 'Delay' when starting to run (detailed on the file Movement_Mechanics.md and on Trello -> To Verify -> Run_GrownVersion)

Good job.


Refs #29449 -- Added tests for custom user forms regression.

As described in #29449
those are the tests that should still pass with the recent change in
3333d935d2914c.
The regression is about assuming CharField subclass for
username field on a form. Those tests use the already existing
CustomUserWithFK testing model that has username field as a
foreign key to the different Email model.

You may notice that not only the 3 tests I've added here are now failing.
The other failures are caused by the override_settings bug that makes other tests "see" a different AUTH_USER_MODEL setting after one of those 3 failed tests, because the reload_auth_forms receiver is failing with an error (a similar one that's described in #29449).
I've described the override_settings bug in ticket #29467.

Thanks. I reverted the original patch so I'll close this for now. We can incorporate these tests into the next version of the patch.


Discussion: Returns Optional's in DAO's/Repositories

We could return a Optional instead of a object directly. Then we could remove the null checks and improve the code readability.

userEntity.isPresent() // userEntity.isEmpty()
vs
userEntity != null // userEntity == null

public UserEntity findByEmail(final String email) {
    return find("email", email).singleResult();
}

public Optional<UserEntity> findByEmail(final String email) {
    return Optional.ofNullable(find("email", email).singleResult());
}

The PanacheRepositoryBase already contains the method 'findByIdOptional' as an alternative of 'findById'

Good idea, the use of optinals definitely looks better than lots of null checks!

This is a great idea, if we only talk about the return types of repositories. This would only affect the null checks in the controller layer, right?

@mzudse Could you please create a real discussion as showcase for our lecture?

This is a great idea, if we only talk about the return types of repositories. This would only affect the null checks in the controller layer, right?

Yeah, only the repositories and yes, only the controller layer from what i saw.

@mzudse Could you please create a real discussion as showcase for our lecture?

See https://github.com/remsfal/remsfal-backend/discussions/106

I would like to solve this issue


[Sidebar] Sidebar still occupies space on page when closed

While using the jquery-ui draggable feature, I noticed that dragging an item outside of the browser window would cause the space the sidebar occupies to come into view. I see that the sidebar uses visibility : hidden instead of display : none. Is there a specific reason for this? If not, would it be possible to change how the sidebar is being hidden as this edge case can be quite annoying.

You could hook into the onVisible and onHidden callbacks and set the display property yourself.

Yah, that's a workaround. It would be cleaner to have semantic do it. I was wondering if there was any particular design decision regarding this. If not, I feel like changing the sidebar's css to use display : none may benefit some other people as well.


Initial critical|nonCritical css setup

https://github.com/parameter1/pmmi-media-group-websites/pull/524

 Update critical|noncritical css inclusion within package/site repes


set new image tag don't work on helm 3

cat Chart.yaml  | grep -v '#'| grep -v ^$
apiVersion: v2
name: test3
description: A Helm chart for Kubernetes
type: application
version: 1.1.1
appVersion: old-tag
cat values.yaml
image:
repository: nginx
pullPolicy: IfNotPresent
cat templates/deployment.yaml | grep image | grep -v "#" | grep -v ^#
imagePullSecrets:
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
I want set new tag use this command, but all don't work!
helm install my-test . --set appVersion=new-tag --dry-run --debug
helm install my-test . --set Chart.appVersion=new-tag --dry-run --debug
command all result is :

image: "nginx:old-tag"

Please help me! ^_^
Output of helm version:
v3.0.0
Output of kubectl version:
v1.14.8
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
k8s v1.14.8

the application version cannot be changed on-the-fly. Some users have an overrideAppVersion value which can be used with --set to work around this.
Closing as a duplicate request for #3555.


Feat: Add channelIdx parameter to have the ability to create a region just for a specific channel

Short description
Resolves #3220
Implementation details
Add channelIdx parameter to have the ability to create a region just for a specific channel

How to test it
You can use this code to test it:

code
import WaveSurfer from<EMAIL_ADDRESS>import RegionsPlugin from<EMAIL_ADDRESS>
const wavesurfer = WaveSurfer.create({
  container: document.body,
  url: '/examples/audio/stereo.mp3',
  splitChannels: true,
})

// Initialize the Regions plugin
const wsRegions = wavesurfer.registerPlugin(RegionsPlugin.create())

wavesurfer.on('decode', () => {
  wsRegions.addRegion({
    start: 0,
    end: 8,
    content: 'Resize me',
    color: 'red',
    drag: false,
    resize: true,
    channelIdx: 1,
  })
  wsRegions.addRegion({
    start: 9,
    end: 39,
    content: 'Resize me',
    color: 'blue',
    drag: true,
    resize: true,
    channelIdx: 0,
  })
  wsRegions.addRegion({
    start: 100,
    end: 110,
    color: 'green',
    drag: true,
    resize: true,
  })
})

wavesurfer.on('interaction', () => {
  wavesurfer.play()
})

Screenshots
Checklist

[ ] This PR is covered by e2e tests
[ ] It introduces no breaking API changes

Thanks for addressing my comments!
Looks like the Regions tests are failing.


Medium Issue (C++) #1039

Worked on C++ Medium Level Implemented sile system
Description

Implementation includes proper error handling for file-related issues and follows the requirements mentioned in the issue. The FileHandler class provides methods for reading, writing, appending to, and checking the existence of text files.
Additional Context

Additional Context for FileHandler Implementation
Task Description
In this task, we are asked to create a simple C++ class and methods for handling text files. The class, named FileHandler, should have the following functionalities:

ReadFile: Read the content of a given text file and return it as a string.
WriteFile: Write a given string to a specified text file.
AppendFile: Append a given string to the end of a specified text file.
FileExists: Check if a file exists at a given path.

Implementation Details

The FileHandler class is defined in the FileHandler.h file.
The implementation of the methods is provided in the FileHandler.cpp file.
Error handling has been implemented to handle cases where the file does not exist or other file-related issues occur.

Usage
The main.cpp file provides a simple example of how to use the FileHandler class to perform these operations on a text file named text-file.txt. It checks whether the operations were successful and prints the results.
Contributing
This implementation is intended to be submitted as a pull request to the project. Ensure that you make the changes in your local repository, create a pull request, and submit it for review. Do not modify the main.cpp or text-file.txt files, as per the task requirements.

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Has anyone been able to run torchrec on Mac OS?

I am not able to install FBGEMM package on macOS with Intel chip. Any advice?

Can you provide the error message so we could take a look at?
Another source, https://github.com/pytorch/FBGEMM you can go here and get more instruction on FBGEMM.

Yes. To be specific, I was trying to install fbgemm-gpu on Mac. Below is the error I got
(torchrec) ➜  torchrec git:(main) ✗ pip install pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/cpu

Looking in indexes: https://download.pytorch.org/whl/cpu
Requirement already satisfied: pip in /Users/xshan/miniconda3/envs/torchrec/lib/python3.10/site-packages (23.3.1)
ERROR: Could not find a version that satisfies the requirement install (from versions: none)
ERROR: No matching distribution found for install

MasOS: Ventura
Processor: Intel Core i7

If I follow the instructions on https://pytorch.org/FBGEMM/general/BuildInstructions.html#fbgemm-gpu-docs-build-setup-tools-install to build CPU only with below command.
(torchrec) ➜  fbgemm_gpu git:(main) ✗ python setup.py bdist_wheel \
    --package_name="${package_name}" \
    --package_variant=cpu \
    --python-tag="${python_tag}" \
    --plat-name="-13.6-${ARCH}"

I got CMake error
Not searching for unused variables given on the command line.
CMake Error: Error: generator : Ninja
Does not match the generator used previously: Unix Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.
Traceback (most recent call last):
  File "/Users/xshan/miniconda3/envs/torchrec/lib/python3.10/site-packages/skbuild/setuptools_wrap.py", line 666, in setup
    env = cmkr.configure(
  File "/Users/xshan/miniconda3/envs/torchrec/lib/python3.10/site-packages/skbuild/cmaker.py", line 357, in configure
    raise SKBuildError(msg)

sure will do. Has anyone tried to install torchRec Successfully on MacOS?

move issue to fbgemm repo

@justin8shan did you ever get this sorted out? Running into the same issue now.


InsertGetId always returns 0

We are using SQL Server. The row is inserted correctly, but from our C# code the id returned is 0.

Could you please provide more info about:

The SqlKata version used
The SqlServer version
The Sql output https://sqlkata.com/docs/execution/logging

The logged query:
INSERT INTO [DispatchHistory] ([Action], [Source], [Status], [Dispatch_Counter], [Information], [IntervenerType], [IntervenerCode], [Note], [DispatchList], [DeclineReason]) VALUES ('{', 'O', '[', '6046', '', '1', '1', '', '6046', '');SELECT scope_identity() as Id
We tried with SqlKata 1.1.7 and 1.1.8-ci-712 on SQL Server 2016 (SP2-CU7)
I talked to our DBA, and it seems we have a trigger ALTER TRIGGER [Internal].[DispatchHistory_PartitionSequenceHandler_tg] ON [Internal].[DispatchHistory] INSTEAD OF INSERT that might be the cause.

Finally, this seems to be it. even running the query directly in Microsoft SQL Server Management Studio return a NULL id.
INSERT INTO DispatchHistory ("Status") VALUES('2'); SELECT scope_identity() as Id;

@ahmad-moussawi   I'm having the same issue as described. I'm using:
Npgsql version 4.0.10
SqlKata version 1.1.7

Here is the query:
INSERT INTO themes
(name, url, description, themetypeid, minparticipants, maxparticipants, teamsingularnoun, teampluralnoun, iscustom, bggid, creatorparticipantid)
VALUES
('abc', NULL, NULL, 2, 1, 20, NULL, NULL, true, NULL, 1);
SELECT lastval();

When I run it in the db directly, it returns the next Id correctly. But when I run it in code, it returns zero:
var themeId = new QueryFactory(GetConnection(), new PostgresCompiler())
	.Query("themes")
	.InsertGetId<int>(new
	{
		name = theme.Name,
		url = theme.Url,
		description = theme.Description,
		themetypeid = (int) theme.ThemeType,
		minparticipants = theme.MinParticipants,
		maxparticipants = theme.MaxParticipants,
		teamsingularnoun = theme.TeamSingularNoun,
		teampluralnoun = theme.TeamPluralNoun,
		iscustom = theme.IsCustom,
		bggid = theme.BggId,
		creatorparticipantid = theme.CreatedByParticipantView?.Id
	});

Do you have any triggers on your table?
We had similar specific issue.
lastval() returns value of last affected sequence. If you have trigger on primary table, that write logs to another table, so lastval() returns last log_id, not id of primary table.
The best way to use returns id where id primary key name, but in this case developer have to provide to sqlkata name of primary key column, but this is overhead for sqlkata I expect.
Please, look around of tables. Also provide result of query compilation of this query.

Thanks for the response. Yes, I do have triggers on the table to auto-populate some fields on insert. It makes sense that this could cause an issue. I ended up solving this by using .AsInsert() and then running the sql from that.


added Next Insurance to adopters list

Description
Adding Next Insurance to list of adopters
How was this change tested?
N/A
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[ X] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LGTM!

Hey @bwagner5. Thanks for approving. I just noticed the list is alphabetically sorted, and I just pushed Next at the end :-)
I can create a PR to fix this, if required.


new term immature pericyte added

description added, ref added

Please, merge master branch and solve conflicts.

Hi Jasmine, please can you solve the conflicts?

Hi Jasmine, please can you solve the conflicts?

conflicts solved :)

I think you have deleted the term in the last commit.


Update docs with latest devfile.json

Doc is currently using an out of date devfile.json. It does not include the change which made component required for exec and apply commands.
Also we need a process defined for keeping it current.

Since I added automatic geenration of the api-reference doc in the docs repo, the only thing to do in order to have the docs updated is to update the content of this docs file:
https://github.com/devfile/docs/blob/master/docs/modules/ROOT/attachments/jsonschemas/next/devfile.json
with the last content of this api file:
https://github.com/devfile/api/blob/master/schemas/latest/devfile.json
Ideally, this should be done automatically through a GitHub action when a commit is pushed to the master branch of the devfile/api repository. I started looking at this recently, but didn't implement it for now.

Since I added automatic geenration of the api-reference doc in the docs repo, the only thing to do in order to have the docs updated is to update the content of this docs file:
https://github.com/devfile/docs/blob/master/docs/modules/ROOT/attachments/jsonschemas/next/devfile.json
with the last content of this api file:
https://github.com/devfile/api/blob/master/schemas/latest/devfile.json
Ideally, this should be done automatically through a GitHub action when a commit is pushed to the master branch of the devfile/api repository. I started looking at this recently, but didn't finish implementing it for now.

Done in linked PR


Improving note

Closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/6341

@scanum This PR replaces https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/pull/6349 and was already copy-edited and ready to be merged.

@MSFTTracyP PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@Kateyanne can you help getting this approved and merged?

@MSFTTracyP Hello, can we merge this? Thank you!


🐞 Cannot generate app icon

[jovial@xpsl502x ~]$ Applications/appimagelauncher-lite-2.2.0-travis51-b4010f8-x86_64.AppImage cli integrate Downloads/Discord-0.0.14-x86_64.AppImage
Processing /home/jovial/Downloads/Discord-0.0.14-x86_64.AppImage
Moving AppImage to integration directory
WARNING: No icons found at "usr/share/icons"
WARNING: Using .DirIcon as default app icon
ERROR: Unable to load image.
ERROR: No icon was generated for: /home/jovial/Applications/Discord-0.0.14-x86_64_45d560cf34332f83d002af4bbed24bfe.AppImage
WARNING: Unable to resize the application icon into a 128x128 image: "Unable to load image.". It will be written unchanged.
WARNING: Unable to resize the application icon into a 256x256 image: "Unable to load image.". It will be written unchanged.

When integrating Motrix.AppImage
[jovial@xpsl502x ~]$ Applications/appimagelauncher-lite-2.2.0-travis51-b4010f8-x86_64.AppImage cli integrate Downloads/Motrix-1.5.15.AppImage
Processing /home/jovial/Downloads/Motrix-1.5.15.AppImage
Moving AppImage to integration directory
Extracting usr/share/icons/hicolor/1024x1024/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/1024x1024/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/128x128/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/128x128/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/16x16/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/16x16/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/256x256/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/256x256/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/32x32/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/32x32/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/48x48/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/48x48/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/512x512/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/512x512/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
Extracting usr/share/icons/hicolor/64x64/apps/motrix.png to "/home/jovial/.local/share/icons/hicolor/64x64/apps/appimagekit_86a7031330a7505d37ac1dcb15dc9a99_motrix.png"
WARNING: Unable to resize the application icon into a 128x128 image: "Unable to load image.". It will be written unchanged.
WARNING: Unable to resize the application icon into a 256x256 image: "Unable to load image.". It will be written unchanged.

[jovial@xpsl502x ~]$ sudo pacman -Qi libappimage
[sudo] password for jovial:
Name            : libappimage
Version         : 1.0.3-3
Description     : Reference implementation of the AppImage specification
Architecture    : x86_64
URL             : https://appimage.org/
Licenses        : GPL
Groups          : None
Provides        : None
Depends On      : libarchive  squashfuse  boost-libs  librsvg
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 519.35 KiB
Packager        : Felix Yan<EMAIL_ADDRESS>Build Date      : Sat 12 Dec 2020 09:27:48 PM IST
Install Date    : Fri 07 May 2021 09:52:20 AM IST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

I think it's because Discord.AppImage does not have icons or may be in a different directory structure?

Same goes for guiscrcpy
[jovial@xpsl502x Downloads]$ appimage cli integrate guiscrcpy-.dev.r.glibc2.27-x86_64.AppImage
Processing /home/jovial/Downloads/guiscrcpy-.dev.r.glibc2.27-x86_64.AppImage
Moving AppImage to integration directory
WARNING: No icons found at "usr/share/icons"
WARNING: Using .DirIcon as default app icon
ERROR: Unable to load image.
ERROR: No icon was generated for: /home/jovial/Applications/guiscrcpy-.dev.r.glibc2.27-x86_64_a47d54a96ea50d1dd2e5cdc5e9aa9574.AppImage
WARNING: Unable to resize the application icon into a 128x128 image: "Unable to load image.". It will be written unchanged.
WARNING: Unable to resize the application icon into a 256x256 image: "Unable to load image.". It will be written unchanged.

But for libreoffice
[jovial@xpsl502x Downloads]$ appimage cli integrate LibreOffice-fresh.full-x86_64.AppImage
Processing /home/jovial/Downloads/LibreOffice-fresh.full-x86_64.AppImage
Moving AppImage to integration directory
Extracting usr/share/icons/hicolor/128x128/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/128x128/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/16x16/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/16x16/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/22x22/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/22x22/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/24x24/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/24x24/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/256x256/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/256x256/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/32x32/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/32x32/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/48x48/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/48x48/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/512x512/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/512x512/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/64x64/apps/libreoffice7.1-startcenter.png to "/home/jovial/.local/share/icons/hicolor/64x64/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.png"
Extracting usr/share/icons/hicolor/scalable/apps/libreoffice7.1-startcenter.svg to "/home/jovial/.local/share/icons/hicolor/scalable/apps/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1-startcenter.svg"
Extracting usr/share/mime/packages/libreoffice7.1.xml to "/home/jovial/.local/share/mime/packages/appimagekit_80db303ab4f72d839cfd90039d5653a1_libreoffice7.1.xml"
WARNING: Unable to resize the application icon into a 128x128 image: "Unable to load image.". It will be written unchanged.
WARNING: Unable to resize the application icon into a 256x256 image: "Unable to load image.". It will be written unchanged.

Must be your icon theme, my KDE Plasma install runs fine

I don't think so, it's the default gnome icon theme.. Adwaita I guess. The problem seems to be with extracting.. I'm not sure though.

This is happens due to icon located in root folder of AppImage and not in /usr/share/icons. This is because this AppImage is probably based on Discord's .tar.gz archive located on their website where icon is also located in the root folder. As a workaround you can extract icon yourself to ~/.local/share/icons.
This line gets the name of the icon discord wants:
cat ~/.local/share/applications/appimagekit_*-Discord.desktop | grep "Icon=appimagekit"
Then you need to mount the AppImage itself (mine is located inside ~/Applications):
cd ~/Applications && ./Discord-0.0.15-x86_64_*.AppImage --appimage-mount
After that just copy discord.png from AppImage mounted folder which it will tell you after you executed last command and copy it to ~/.local/share/icons/hicolor/scalable/apps.
Don't forget to log out and login back to your DE (GNOME in your case) because for me it didn't work without relogin.


Can you please provide reference for Terraform to implement above add on.

[Enter feedback here]
Please provide some sample to implement this add on using terraform.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 409a3be9-4831-9401-0bb3-c65209bb3f42
Version Independent ID: 4cf81213-5989-f36c-7456-70accfe452c2
Content: Use the Azure Key Vault Provider for Secrets Store CSI Driver for Azure Kubernetes Service secrets - Azure Kubernetes Service
Content Source: articles/aks/csi-secrets-store-driver.md
Service: container-service
GitHub Login: @Nickomang
Microsoft Alias: nickoman

@nitinkhandelwal26
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@Nickomang
Can you please check and add your comments on this doc update request as applicable.


Faisalmuhammad patch 1

Thank you @faisalmuhammad for your contribution. I moved your changes to this PR #2


feat(ChatGPTClient.js): add support for Azure by API key

I was given access to Azure OpenAI and I noticed that changing the reverse proxy URL and providing the API key as mentioned in #192 would not work for me.
The reason was that authentication is done through the 'api-key' header and not Authorization Bearer. You can authenticate an API call using an Azure Active Directory token with Auth Bearer, but as I'm not an owner of the Azure account, auth by api key is my only option. This was not clear in the repo before, and this would make it standard to authenticate by API key as shown in their docs: https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference
As shown in demos/use-client.js, to use Azure OpenAI API with ChatGPTClient, set azure to true and reverseProxyUrl to your completion endpoint in clientOptions, providing your Azure OpenAI API Key as the first arg as usual:
azure: true,
reverseProxyUrl: 'https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}',

Thank you!


[5.2] Eloquent nests orWhere scopes

When calling custom scopes it is expected that the or in the custom scope is used.
Currently it changes the query to and.
Call:
Model::orIsUp()->orIsDown();

Scopes:
    public function scopeOrIsDown($query)
    {
        return $query->orWhere('status', 'down');
    }

    public function scopeOrIsUp($query)
    {
        return $query->orWhere('status', 'up');
    }

Result:
select * from "eloquent_builder_test_scope_stubs" where ("status" = ?) and ("status" = ?)

Expected:
select * from "eloquent_builder_test_scope_stubs" where "status" = ? or "status" = ?

Pull request:
https://github.com/laravel/framework/pull/14828
Commit which makes the issue:
https://github.com/laravel/framework/commit/b5db61cd08bffbb504a45c494650b70ef09119c2

@segadora This is expected behavior in 5.2 and has been changed in 5.3 to work as you expect. WE can't change it in 5.2 since it's a breaking change.
Check the upgrade guide: https://www.laravel.com/docs/master/upgrade#upgrade-5.3.0

Eloquent scopes now respect the leading boolean of scope constraints. For example, if you are starting your scope with an orWhere constraint it will no longer be converted to normal where. If you were relying on this feature (e.g. adding multiple orWhere constraints within a loop), you should verify that the first condition is a normal where to avoid any boolean logic issues.

Okay, thank you @acasar


Angular/React APPs

Hi Guys,
Just curious. Is it possible to deploy webAPP via beaker? there's plenty of mention about websites/blogs but not much about apps?
Cheers, Rodrigo

How is this possible @taravancil ?
I have been trying to deploy a nodejs application (backend and frontend) but it has been an unsuccessful operation. I reached the point to use Homebase, but no success at all. https://github.com/beakerbrowser/homebase/issues/40

You can't deploy servers inside Beaker. You need to create static single page applications that are stored in a Dat, and have them talk to your oserver using HTTP requests.

It would be really nice to have this feature in Beaker.
I don't think the browser architecture supports webapps though.


[AMBARI-24194] Fix broken Java UTs in ambari-server code -- Part 6

What changes were proposed in this pull request?
Five UT cases fails in Jenkins:
org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelperTest.testRefreshQueueCustomCommand
org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelperTest.testHostsFilterHealthy
org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelperTest.testServiceCheckRunsOnDependentClientService
org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelperTest.testIsTopologyRefreshRequired
org.apache.ambari.server.controller.AmbariCustomCommandExecutionHelperTest.testIsTopologyRefreshRequired
How was this patch tested?
Local manually tested

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3438/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3439/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3452/
Test FAILed.
Test FAILured.

@jonathan-hurley @adoroszlai @swapanshridhar @jayush Please review this code, this is the last failed UT case in Java module, thanks.