return type of glob withFileTypes is not exported

Calling glob(x, {withFileTypes: true}) resolves with a Path[], but Path is not exported from glob; that means if a consumer needs the type, e.g.:
let paths: Path[];
try {
  paths = await glob('*', {withFileTypes: true});
} catch {
  // ...
}

...they cannot get the Path type unless they either a) assume that path-scurry will always be resolvable since glob is, or b) add path-scurry as a direct dependency, or c):
// dude
let paths: Exclude<Awaited<ReturnType<typeof glob>>, string[]>;

Suggestion: export type {Path} somewhere in src/index.ts.  I can send a PR if you wish.
ty

Ah, yeah, it should probably just re-export all the types from path-scurry, cuz why not.
PR welcome :)

// dude

😂


add Series.corr/3 and Series.cov/2

This is based on corr and cov. For corr, I did not implement the spearman_rank_corr function, because it needs the propagate_nans Polars feature. I wonder what's the appetite for adding new Polars features? Should we do it in this case?

Thank you for the feedback! I've changed the names to correlation and covariance 👍

Oh, there was one issue I ran into when developing this. I don't think it's related to the features here, but I may as well report it before this gets merged.
This works:
DF.new(a: [1.0, 8.0, 3.0, nil], b: [4.0, 5.0, 2.0, nil])
|> DF.mutate(c: covariance(a, b), d: correlation(a, b))

# #Explorer.DataFrame<
#  Polars[4 x 4]
#  a float [1.0, 8.0, 3.0, nil]
#  b float [4.0, 5.0, 2.0, nil]
#  c float [3.0, 3.0, 3.0, 3.0]
#  d float [0.5447047794019223, 0.5447047794019223, 0.5447047794019223,
#   0.5447047794019223]
# >

but this panics:
DF.new(a: [1.0, 8.0, 3.0], b: [4.0, 5.0, 2.0])
|> DF.concat_rows(DF.new(a: [nil], b: [nil]))
|> DF.mutate(c: covariance(a, b), d: correlation(a, b))

# thread '<unnamed>' panicked at 'validity must be equal to the array's length', [...]/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arrow2-0.17.2/src/array/primitive/mod.rs:241:5
# ** (ErlangError) Erlang error: :nif_panicked
# ...

I would've thought that DF.new(a: [1.0, 8.0, 3.0, nil], b: [4.0, 5.0, 2.0, nil]) is equivalent to DF.new(a: [1.0, 8.0, 3.0], b: [4.0, 5.0, 2.0]) |> DF.concat_rows(DF.new(a: [nil], b: [nil]))? Is this a bug, or perhaps I'm understanding concat_rows wrong?

You are using it correctly. This looks like a polars bug. It is failing to merge two dataframes when one has nils and the other does not. Can you isolate it on the Rust side?

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

You are using it correctly. This looks like a polars bug. It is failing to merge two dataframes when one has nils and the other does not. Can you isolate it on the Rust side?

Honestly, I don't know enough about Polars to debug this, but changing the following stops the panic:
diff --git a/native/explorer/src/dataframe.rs b/native/explorer/src/dataframe.rs
index fff57c5..0fe9389 100644
--- a/native/explorer/src/dataframe.rs
+++ b/native/explorer/src/dataframe.rs
@@ -107,7 +107,7 @@ pub fn df_concat_rows(
         out_df.vstack_mut(&df)?;
     }
     // Follows recommendation from docs and rechunk after many vstacks.
-    out_df.rechunk();
+    out_df.as_single_chunk_par();
     Ok(ExDataFrame::new(out_df))
 }

I think it's something to do with the should_rechunk function, seeing that the rechunk function is defined as:
    pub fn rechunk(&mut self) -> &mut Self {
        if self.should_rechunk() {
            self.as_single_chunk_par()
        } else {
            self
        }
    }

What do you think? Would it be worth fixing the bug by skipping their should_rechunk function and rechunk every time concat_rows is called?

I think so. By definition there is more than one chunk, so we can always force it.


fix: import select layout on large fonts and move files

Description
Large font displays of this screen were broken causing some strange behavior on iOS and and text wrapping issues on Android 🤦

Android Before
Android After

Large Font iOS Video Before
https://github.com/valora-inc/wallet/assets/26950305/055b3aba-0080-4853-8ef8-465bdd4840f8
Large Font iOS Video After
https://github.com/valora-inc/wallet/assets/26950305/065876a9-b621-4b48-ab43-14d8b894db17
Test plan
Tested locally on iOS and Android.
Related issues
Fixes: ACT-874
Backwards compatibility
Yes

@cajubelt I introduced these changes and I'll leave the other changes as it decreases the number of CSS lines.
The biggest contributors are called out in the comments, but to reiterate they are: make sure to pass flex down to children you want to inherent the flex property. Don't use alignItems: 'center' in a SafeAreaView styles.


opensles fixes

Fix mem leak and noised sound playing on Android.

@akallabeth
With this lines client is doing this:
rdpsnd get ADPCM -> decode as ADPCM -> get raw PCM -> play sound -> all OK
rdpsnd get PCM -> send raw PCM data to ADPCM decoder -> get garbage -> play noise
Without this lines:
rdpsnd get ADPCM -> decode as ADPCM -> get raw PCM -> play sound -> all OK
rdpsnd get raw PCM -> play sound -> all OK
Tested on WinSrv2008 and Win7 - they send ADPCM.
And on latest Xrdp - it sends raw PCM.

@zavadovsky @zavadovsky maybe this depends on the android device you are testing on?

@bmiklautz I test on Xperia Z3 and Galaxy Note 2014.
Client from playmarket - play noise on both.
Myself builded from "1.2.0-beta1+android9" tag - play noise on both.
With this fix - play normal sound.
As i said before - as server i'm using Xrdp from its master branch on Debian Wheezy.

@akallabeth you remember what tests (device and server) we did?

@bmiklautz Did some tests against win7, win8 and freerdp. Just compiled and run the pull, looks good.

@bmiklautz @akallabeth
You may try to apply this patch and connect Android client to Windows and play some sound:
diff --git a/channels/rdpsnd/client/rdpsnd_main.c b/channels/rdpsnd/client/rdpsnd_main.c
index b7e9eae..96dd652 100644
--- a/channels/rdpsnd/client/rdpsnd_main.c
+++ b/channels/rdpsnd/client/rdpsnd_main.c
@@ -169,6 +169,9 @@ void rdpsnd_select_supported_audio_formats(rdpsndPlugin* rdpsnd)
 	{
 		serverFormat = &rdpsnd->ServerFormats[index];

+		if (serverFormat->wFormatTag != WAVE_FORMAT_PCM)
+			continue;
+
 		if (rdpsnd->fixedFormat > 0 && (rdpsnd->fixedFormat != serverFormat->wFormatTag))
 			continue;

This patch disables all audio formats except PCM.
I make this test without my fix and get same noise from Win7 as i got from Xrdp.
With my fix - sound is normal.

Hello.
@bmiklautz @akallabeth @awakecoding
ping
I rebased this commits to actual master branch.

LGTM, +1
@awakecoding @hardening @bmiklautz Looks like this one has been open for quite some time, could we merge?


Add a feature that allows copying attributes from entity to span/metric/log/

In the signal (trace, metric, logs) definition it would be great to have the capability to copy from attributes of the reporting resource/entity. For example, if my reporting resource has an attribute service.name I would like use that in the definition of a span, e.g.
in trace/metric/logs definition is there a way to copy from attributes of the reporting resource, e.g. my reporting resource has a service.name and I want to use that in an attribute of the http request, e.g. something like http.url: ‘“/api/v1”.concat(VALUEOFTHATATTRIBUTE)’
  - name: 'fromResourceAttributes("service.name").concat("-checkout")'
    spanKind: SPAN_KIND_SERVER
    reportingResource: frontend_instance
    attributes:
      http.method: '"POST"'
      http.url: 'fromResourceAttributes("service.name").concat("/checkout")'
    childSpans: ["doCheckout"]

@svrnm At the runtime when we evaluate attributes for MELT objects, there is no context passed for the entity each data point is linked to.
We will need a different section applicable to each of log, metric & span objects called attributeOperations and we can allow calling two types of methods - one that allows simply copying a attribute KV from the entity and another to that allows copying and modifying (different key name, add prefix, add suffix).
It would be similar to what we have in entity definition - https://github.com/cisco-open/test-telemetry-generator/blob/master/example-definitions/qa/entity-definition.yaml#L79

@preet-dev sounds good to me, reusing what we have already creates consistency 👍

My bad. I missed the fact that in each cycle we first get the metrics/spans/logs and then we copy them to already evaluated resources. Instead of supporting an overridden attributesOperations section for which will have to pass the current resource & metric/span/log in a static context (could lead to concurrency & performance issues), it will be better to define a field.
My proposal is that for each of metrics/logs/spans we define a field copyResourceAttributes in which you can pass a list of attribute keys. During the data generation, if the attribute is available in the current resource, we will copy it otherwise we will add it with an empty String value.

My bad. I missed the fact that in each cycle we first get the metrics/spans/logs and then we copy them to already evaluated resources. Instead of supporting an overridden attributesOperations section for which will have to pass the current resource & metric/span/log in a static context (could lead to concurrency & performance issues), it will be better to define a field.
My proposal is that for each of metrics/logs/spans we define a field copyResourceAttributes in which you can pass a list of attribute keys. During the data generation, if the attribute is available in the current resource, we will copy it otherwise we will add it with an empty String value.

works for me! :)


considered gl-matrix?

This may be heresy, but I'll throw an idea out here and let people scream bloody murder...have we ever considered the possibility of standardizing on matrices, points that are array based instead of object based? WebGL expects arrays in most of it's vertex/texture/etc apis. There are also a lot of existing ecosystem modules that standardize on plain old or native arrays (e.g., https://github.com/toji/gl-matrix)  gl-matrix would be nice given that many browsers have hardware SIMD support behind flags, and are going to be available soon (in fact, gl-matrix internally supports this now.)
I realize this would be a massive paradigm shift for pixi, and totally break backward compatibility...still, wanted to throw this out there and see what people think, and how much/little they hate the idea ;)

SIMD is dead. https://github.com/rwaldron/tc39-notes/blob/a66df6740eec3358d5e24f81817db99d6ee41401/es8/2017-03/mar-21.md#10if-simdjs-status-update

Simple 6 fields "a,b,c,d,tx,ty" are peforming much better even than Float32Array(9) matrix. Cant give links to the tests, but both I and @GoodBoyDigital tried to integrate it already.

JS does double precision, which is critical for apps that work with big coordinates. "projection x transform" for graphics and and sprites are better be on JS side.

I'm using a Float32Array(9) in v5 which in my jsperf tests was similar if not the same perf, and prevents us from needing to do toArray and transpose operations.
https://github.com/pixijs/pixi.js/blob/455c059e8d155c1d9a05fc2ece2c02b3bdf8bf84/plugins/core/src/math/Matrix.js
gl-matrix is beneficial because it had SIMD (which as Ivan mentioned is a dead spec), but has downfalls as well in their implementation. We want a 3x3 matrix (Float32Array(9)) to hit the GPU, but do operations as if it was a 2D matrix to save computation time. gl-matrix doesn't have a good mechanism for that.

@englercj I'm afraid we'll have to use Math.fround in many places to be consistent. Try perf Float64Array.

Yeah I should make it try to use Float64Array if available, good call.
Keep in mind also, we are currently using a float32 when we upload to the GPU. So we do the math in double, then truncate to single. This may be more accurate than doing it all in single, but I'd like to try and be consistent with the data type we upload. Unfortunately that means single-precision until GL 4.0, and WebGL 2 is only GL ES 3.0 :(

Matrix upload never was our bottleneck, we use "uniform3fv" in those places, it is not simple operation, and its followed with a drawCall, and in most of cases, big buffer upload. Heavy pixi app is doing only about 400 drawcalls per frame,
After encountering user problems with big coordinates, I prefere to store everything with double precision up until we upload it.
Also, "a,b,c,d,tx,ty" notation is easierthan "0,1,3,4,6,7". Its also used in spine, they have very sofisticated transforms on top of that. If we switch to matrices it won't be that easy to check our code later. For some people its difficult to imagine matrix operations, but I read them easily.

My vote goes to the one that gives best performance. Last I checked it was using objects over arrays. Although I'm not 100% sure if thats still true, that may well have changed!
For 3d I favour gl-matrix style, mainly as stuff gets uploaded to GPU a lot! With Pixi this is not generally the case. Most manipulation happens in js land (eg sprite batcher).

https://jsperf.com/obj-vs-array-view-access/1
Here is the testing I did. Object is slower than Float32Array, both of which is way slower than normal Array. Since uniform3fv accepts a normal Array object, we should switch to that. Then we get double precision and the fastest CPU speed and it can be directly uploaded.
How does that sound?

My vote goes to the one that gives best performance.
Last I checked it using objects over arrays was faster.

That is very interesting. It seems counterintuitive that objects would be faster than a purely numeric array, because the underlying vm should be able to do a number of optimizations, knowing that object semantics could be largely stripped out. I'm curious if you have any ideas why objects might be faster?

Relevant results from my comp (i7, Windows 10):
Chrome 59:

Firefox 54.0.1 (32-bit):

Microsoft Edge 40.15063.0.0:

Seems like my chrome result of Array being faster was a fluke, not sure what that was but unable to reproduce it now. It is around 50M ops/s, but was 500M ops/s on one run I did before. Weird...

Can you do that with Float64 too please? :)

I care about code quality more than about one more matrix operation per drawcall.

How is Float64Array higher code quality? I understand we get more precision, but I'm not sure I follow why that is so important given we reduce to single-precision anyway.

Also, we don't use invert much. updateTransform() is our problem.

This is benchmarking the read/write of the data storage, the operation performed on the values inbetween in irrelevant.

I care about code quality more than about one more matrix operation per drawcall.

I agree with this too. Consider that "standardizing" on array based matrices, points, & vectors might actually be more of a code quality improvement than a performance one...I would consider re-use of popular js matrix/vector libraries and more interoperability with popular rendering modules to a be a big-time code quality win.

This is benchmarking the read/write of the data storage,
the operation performed on the values inbetween in irrelevant.

I think you're both right. This is benchmarking data storage read/write. But Ivan has a really good point; if updateTransform() is the overwhelming operation, it would be compelling to see that.
I worry about micro benchmarks in general; with these static data sets I wonder if we inadvertently end up taking advantage of compiler optimizations in javascript vms in these tests. running real world tests would be a lot more enlightening (at the expense of being way more work to setup.)

I'm for "(a,b),(c,d),(tx,ty)" double-precision matrix, with conversion to float32array for upload and backed by "posX,posY,pivotX, pivotY,scaleX,scaleY,shearX,shearY,rotZ". I will use it in my fork anyway, but I prefer not to deal with matrix arrays in master pixi too.
That's my standart.

How is Float64Array higher code quality? I understand we get more precision, but I'm not sure I follow why that is so important given we reduce to single-precision anyway.

We multiply camera transform by sprite transform (for scrolling) in updateLocalTransform. Result fits on screen only if its small, so numbers are small in the end, but both sprite position and camera position can be big. User-side solutions:

compute everything on his side. PIXI deals only with relatively small coordinates.
divide world into chunks with big coords, sprite have relative small coords, however that wont work for subpixel camera => camera needs big and small coords too.

I also doubt that it is possible to make people use one or two standarts for vec math in js.

I don't understand what you mean, can you elaborate?

I don't understand what you mean, can you elaborate?

I can't, its too much for me.
We have people with different experiences both in low-level optimizations. and language constructs, DSL-s. We need a standart that satisfies us all on some level.

I agree with @ivanpopelyshev that maintaining 64-bits is important. I'm trying to figure out how we do that, efficiently, without creating and copying buffers each frame.
Maybe we store it as a Float64Array, and when uploading copy it into a Float32Array. That at least lets us use a typed-array as the storage backing which should be easier to copy to/from a webworker.

Float64Array it is then, I'll just have to remember to use (0,1), (3,4), (6,7) as X,Y,translate

All interesting stuff guys, I would be keen for us to benchmark our proposed solution in a real pixi scenario - something like bunnymark.
My experience in this area is that when me and @ivanpopelyshev last switched to gl-matrix for bunny mark we found it ran significantly slower (like a third slower!)
That was a little while ago though and I really would prefer for me to be wrong here!
If the speed difference is now negligible then I think the proposed route above will be ace.
Pixi is SPEEED :P Lets make sure we test before committing fully to any solution.

We still need benchmark of Float64Array. This implementation is acceptable for me, but personally I will use old matrix in my fork. Also dont forget to add properties just for compatibility.
One more thing: @mreinstein , one of standarts i do remember is PaperScript, its a language special for paper.js, adds point operations directly into the language. If JS have more syntax sugar, we would use something like that too.

Is there anything I can help with re: this updated bunnymark? I'm happy to donate some time with this.
I'd be very interested in following along with the perf stuff happening here. Regardless of the results. If the array based stuff ends up still being a lot slower, I'm really curious about the why behind it.
Something to note re: the perf testing...chrome's v8 recently (in v59) released some pretty dramatic changes to v8 called turbofan. Supposedly it has some significant performance improvements.
https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html
might be interesting to run the updated bunnymark on a version prior to turbofan being present vs now, just for the heck of it.

@GoodBoyDigital I updated the bench to include Float64Array, and it is consistently faster to read/write to the array than the object. If it gets slower in pixi then something else changed, because read/write to a Float64Array backing store is faster than an object.
https://jsperf.com/obj-vs-array-view-access/1

Only on Edge does the object speed match/exceed Float64Array, and it is really close.

I've tested this in my env and I get similar results...what the hell?! Why would Float64 array read/write be significantly faster than equivalent Float32 array operations? The only thing that comes to mind is maybe 64 bit floats align on word boundaries? I am perplexed.

Thanks for the offer @mreinstein ! If you could help us out with some perf tests that certainly would put to bed the whole debate with cold hard facts!
Best thing to do is fork pixi and then replace transforms with gl-matrix or @englercj matrix class. For this instance, we only really need to make the sprite batch work too - not the whole engine!
Then once we have a tweaked version we can test perf here: https://pixijs.github.io/bunny-mark/
We can the mess around with the different arrays types.
@englercj thats awesome dude! Its encouraging to see these results for sure. Is v5 version near a state where we can give bunny mark a spin?

@mreinstein just a hunch, I think it may be to do with conversion from 64bit -> 32bit
as a number in js is 64bit right?

@GoodBoyDigital I think maybe you're right. resorting to my friend mrs. google, I stumbled upon this:
https://stackoverflow.com/questions/15823021/when-to-use-float32array-instead-of-array-in-javascript
the top rated answer (currently at 44 votes) seems reasonable and relevant.

If you could help us out with some perf tests

Alrighty, happy to help with this. :)

Best thing to do is fork pixi

@GoodBoyDigital @englercj what is the best branch to fork from at this point?

then replace transforms with gl-matrix or @englercj matrix class.
For this instance, we only really need to make the sprite batch work too - not the whole engine!

Can you elaborate on this a little more? I get not wanting to convert the whole engine to gl-matrix just to run the perf bench... I don't see any sprite batch stuff in https://github.com/pixijs/bunny-mark There appears to be a PIXI.Container as the root element, to which the bunnies are added. Are you saying I should start with pixi.container, pixi.sprite and work backwards from there up the dependency tree to find all places where the transform stuff needs replacement?  Not saying I disagree, just want to ensure I've got the strategy right for minimizing unnecessary work.

updateTransform has two matrix operations inside:

composition from position,pivot,scale,rotation - cant be improved.
multiplication by parent matrix - can be improved.

i suggest to make matrix class with old "a,b,c,d,tx,ty" props backed by Float64Array, and rewrite updateTransform. Also, @mreinstein made enough things to be in the core, i suggest we add him, so he has access to branches and build farm.

so he has access to branches and build farm.

Everyone has access to that, fork + PR does all of that.

I'm curious what kinds of results you folks get in bunny mark..when I try various branches (dev, release, others) from chrome with the default 100k bunnies I get 10-16fps consistently. Doing a perf analysis on the code running over 8.75s:

Almost all of the time is spent in javascript calls.

Of this time spent in javascript, the lion's share of time is actually spent in Sprite.calculateVertices(). 4x more than is spent in TransformStatic.updateTransform()
In firefox I get about twice the framerate, but the breakdown of time spent is similar; calculateVertices() takes up the bulk of time in both browsers. Is this expected? Are you getting similar results in your bunnymark runs?

This is expected for bunnies. And matrix operations that we are talking about are performed in two places: upateTransform() for multiplication and calculateVertices() ONCE PER CALL. It doesn't matter in large scale.

I'm confused. :(   How can I tell the performance of that benchmark? I was under the impression that it's mostly based on pure fps achieved. If that's true, then my frame rate is being severely throttled by the vertices calculations.  Looking at the first diagram I pasted above, rendering is a tiny fraction of the total frame time. vertex and transform updates are overwhelming the total frame time.
If that's false, and fps isn't the measurement of how performant my pixi build is, what criteria do I use to measure a given build?

It can be throttled either on CPU either on GPU side (its not shown),
If you have FPS much less than 60 but "idle" is big - its GPU.
If idle is small, then its CPU.
calculateVertices has matrix operation inside - just multiplication four corners by matrix.

Just small idea for TS fork: add transform that inlines properties for matrix types.
I think it can be done for babel too if we find a way to annotate matrix variables.

I don't understand whats' going on anymore.

Something to keep in mind: the goal of this benchmark in the first place was to see if using objects vs gl-matrix would be a huge performance hit, as it was thought it might. Regardless of the differences in our benchmark results, we seem to show consistently that object perf is no worse than most of the array cases.
I also want to avoid drawing performance conclusions about pixi  in general here because I've profiled the bunny mark. In Chrome, > 50% of the program's total time is spent in Sprite.calculateVertices() (40% ish), followed by Matrix.updateTransform() (11% ish) Firefox seems to run twice as fast, but the ratio of time spent in those 2 functions is still consistent.
I want to avoid going too far off topic, but I'll say that in doing this bunnymark profiling,  I'm starting to thing that our usage of es5 getters/setters might have something to do with the perf drop in chrome: https://jsperf.com/es5-getters-setters-versus-getter-setter-methods/10
Are any of you folks hanging out on slack here? I think it would be easier to chat in semi-real time rather than message passing here.

Whats you email @mreinstein ? Will invite you to slack 👍

<EMAIL_ADDRESS>

Based on what @englercj says apparently we are not doing this. Closing.

Just small update: I have 3x3 matrix instead of 3x2 in https://github.com/pixijs/pixi-projection/blob/master/src/Matrix2d.ts , based on Float64Array.


Correct recovery in SyncCommandBuffer::lock_submit

Before this PR, lock_submit would lock each buffer and image one by one. If at any point an error is detected, the function would immediately return an keep the resources locked. This fixes it.
As to why we don't use RAII instead, if we did we would have to allocate a Vec that holds the locks, which is clearly unnecessary.


NuxtLink to non-existant page results in error 500

Environment

Operating System: Darwin
Node Version:     v20.18.0
Nuxt Version:     3.14.1592
CLI Version:      3.15.0
Nitro Version:    2.10.4
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      default
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
I couldn't reproduce in StackBlitz, maybe it's related to the fact that I'm in .playground from a Nuxt layer using the v4-compat mode ?
Describe the bug
If on my index page, I add a link to a non-existant posts-id page, the index page will crash with an error 500.
<NuxtLink :to="{ name: 'posts-id', params: { id: 123 } }"> Post 123 </NuxtLink>
I think this should lead to a 404 when clicking the link, and not outright crash the page that has this link.

At first, I thought this might be related to<EMAIL_ADDRESS>which was released yesterday, but even with an override in my package.json, I still have the issue:
  "resolutions": {
    "vue-router": "4.4.0"
  },

Additional context
No response
Logs

Also crash on prod

I'll try using nuxi init, I wasn't able to reproduce using StackBlitz but I have barely anything in my current project (which can't be shared).

I was able to import a Github repro to StackBlitz: https://stackblitz.com/~/github.com/mrleblanc101/broken-nuxt-link-repro

This is the expected behavior.
https://router.vuejs.org/guide/migration/#Removal-of-router-match-and-changes-to-router-resolve
You can avoid it by using a template literal, just so you know.
<NuxtLink :to="/posts/${id}">path</NuxtLink>

I don't see anywhere in your link where it specify that it will create build time error instead of linking to a 404, also this seems like a terrible decision, why would they make such a change ?

Sorry, I shared the wrong link
https://router.vuejs.org/guide/migration/#Non-existent-named-routes

@wattanx Ah, my first test didn't work in StackBlitz because I had no pages folder, so Nuxt wasn't import vue-router 🤦♂
It make some sense that it cannot generate a valid URL since the name won't resolve to anything.
I guess I'm just so used to the old behavior, I would've preferred if it still generated an href to / but went to a 404, or maybe if it generated an href directly to the Nuxt/error page instead of crashing the whole app.
Thanks

@wattanx oh now I realize that the error page is a Nuxt concept and this is a change in Vue-router, so they wouldn't be able to do this.
I much prefer the name syntax, because it's easier for params, query and i18n. But sometimes I create menu that link to inexistant pages because I create the after. I wish there was an option to go back to the old behavior, I'm going to open an issue in the Vue-router repo then.


Tokenize only newly calculated attributes not the whole project

After calculating a new attribute the whole project is tokenized again.
This is not needed as the old attributes are unchanged and it would be sufficient to only tokenize the new attribute and add the token to the docbins and the record_tokenized table.
Issue in tokenizer:
https://github.com/code-kern-ai/refinery-tokenizer/issues/7

included in pr https://github.com/code-kern-ai/refinery-tokenizer/pull/17


add a flutter.yaml file for the widgets project

Add a flutter.yaml file for the widgets project to get icons to show up.

LGTM.


Null as key in groupingBy

Please, add ability for grouping by null in streams.
Current implementation of Java 8 streams doesn't support it, and I don't know why, because
implementation use HashMap:
return groupingBy(classifier, HashMap::new, downstream);
But HashMap can store null keys.

I don't like doing this as my groupingBy may switch automatically to ConcurrentHashMap for unordered parallel collection, which does not tolerate null keys. Allowing them in one case and disabling in another would be confusing.

@amaembo thanks a lot for explain


Hilbert cafe elaborate page

Hilbert cafe could use its own page on the app. A concept of this page was introduced on the "Bara spindelMÄN?" event. Drawing of this concept is below.

Wishes from the café:

Menu and price list for the staples in the café
Weekly sandwich menu
Link to form to sign up to be a ladybug, info needed: name, contact info and day/days they want to work. Only visible when the café are looking for people
Sign up for "cafépass" would fit on this new page as well:)
Link to a form to suggest new sandwiches
Link to form to "order" a sandwich for gluten intolerant people


receive lines and points as Instances

Tested with: https://latest.speckle.systems/projects/126cd4b7bb/models/6b62c61a22@c42b129063

@oguzhankoral @clairekuang moved this to Transform function, with serialization hack as a backup for displayValues


cellStyles: bgColor doesnt return colors

Hi
thanks for the library. really apreciate it!
however i have some issues with bgColor reading.
i can access the .s style node but it only holds an "indexed" property.
for various colors the index won't change.
any advice on this?
best
alex
Excel-Test.xlsx

test.html.zip

#587  Hi, You can look this about sheetDev‘s repay!

We offer this in the Pro compendium.  Since companies have paid for the features already, it would be unfair to them if we turned around and made it available as open source.  We have a longer comment in a gist.

I have the pro version, and is not returning the right bgColor, I always get #FFFFFF @SheetJSDev


Detail and Edit view queries make joins for all related models even if those rrelationships are not specified as fields

Checklist

[X] The bug is reproducible against the latest release or master.
[X] There are no similar issues or pull requests to fix it yet.

Describe the bug
My Stack:

FastAPI
SqlModel
SqlAdmin
PostgreSQL 12

If I have a SqlAdmin ModelView for a SqlModel model with many relationships defined, the query used to populate the details view and the edit view does a join on all relations even when the related fields are not included in the ModelView's column_details_list or form_columns.
This is an issue for me because one of my models has a many-to-many relationship with another table that can include 10's of thousands of records in the relationship. The model has other relations as well, but those have fewer records. When attempting to load the details or edit view for this model the request never completes because the join is so large and I need to restart the server.
I suspect this issue may be related to either SqlModel or SqlAlchemy internal implementation details/behavior. i.e. they are joining all relationships by default. However, I did see there was a fix released for SqlAdmin that fixed a similar issue for the list view here: https://github.com/aminalaee/sqladmin/pull/409
Steps to reproduce the bug
Please note that this minimal example will likely not reproduce the issue because it only occurs due to the high number of related records in my database. Brand is the model I'm trying to load the detail and edit view for. Asset is the related model with 10's of thousands of related records.
# models.py

class BrandAssetLink(SQLModel, table=True):
    __tablename__ = 'asset_asset_brands'

    id: Optional[int] = Field(default=None, primary_key=True)
    asset_id: str = Field(max_length=512)
    brand_id: int

class Brand(SQLModel, table=True):
    __tablename__ = 'brands'

    id: Optional[int] = Field(default=None, primary_key=True)
    name: str = Field(max_length=255)

    assets: List['Asset'] = Relationship(
        back_populates='brands',
        link_model=BrandAssetLink,
        sa_relationship_kwargs=dict(
            primaryjoin='Brand.id==BrandAssetLink.brand_id',
            secondaryjoin='Asset.page_url_id==BrandAssetLink.asset_id'
        )
    )

class Asset(SQLModel, table=True):
    __tablename__ = 'asset_asset'

    page_url_id: str = Field(max_length=512, primary_key=True)
    title: str = Field(max_length=1024)
    url: str = Field(max_length=4096)

    brands: List['Brand'] = Relationship(
        back_populates='assets',
        link_model=BrandAssetLink,
        sa_relationship_kwargs=dict(
            primaryjoin='Asset.page_url_id==BrandAssetLink.asset_id',
            secondaryjoin='Brand.id==BrandAssetLink.brand_id'
        )
    )

# admin.py

class BrandAdmin(ModelView, model=Brand):
    column_list = [
        Brand.id, Brand.name
    ]
    column_searchable_list = [Brand.name]
    column_sortable_list = [
        Brand.id, Brand.name
    ]
    column_default_sort = (Brand.id, False)
    column_details_list = [
        Brand.id,
        Brand.name
    ]
    form_columns = [
        Brand.name
    ]

Expected behavior
I would expect the detail and edit views to only perform joins for the relationships defined in the column_details_list and form_columns attributes.
Actual behavior
Detail and edit views perform joins for ALL related fields even when not specified in column_details_list and form_columns.
Debugging material
No response
Environment

Mac
application is running in a docker container: python:3.8-slim
Connected to external Postgres Db

Additional context
I also tried putting the related fields in the ModelView's form_ajax_refs attribute to see if that would defer the joins, but that didn't seem to change anything.

Hey @FFX01
You are correct about a similar fix that was done and that this issue.
This is because there's only one shared method get_model_by_pk that is causing this: https://github.com/aminalaee/sqladmin/blob/682b8fa59bac7de79cec23d9a4194a28b8f79a70/sqladmin/models.py#L853
The reason for that is that this method is called from different places and can't respect the relationships specified, I think a simple solution can be to separate this method for different purposes. Should be an easy fix, feel free to do a PR otherwise I will fix it soon.

@aminalaee Thanks for fixing this! Sorry I didn't respond right away. Work threw me onto a new project for a while.


Crash when taking falling damage (1.16.1 - 0.5.0-BETA)

After adding this mod, taking falling damage crashes the server:
https://pastebin.com/hLh9aq4w

Oh, I'm very sorry, I already found the issue and will be sending a fix right now. I'll reply here again as soon as it is available on curseforge.

Fixed in 0.5.1-BETA, you can download it here. I'm very sorry about this problem!

Thank you very much!  I'm looking forward to exploring this mod.
I can confirm that the fix is working perfectly on my end as well.

I'm glad it worked and hope you enjoy the mod!


[Feature Request] Function name stack

Hi,
I'd love to hear your thoughts about an optional function stack trace that simple tracks the names of a function and simply pops it when it finishes.
I think it's rather easy to add external functions functionPush (or fPush) / functionPop (or fPop) with fPush having the argument of a string (name of function).
Those names need to be stored in an array and should be added to the namespace* whenever a debug in that function is called.
To not break the current pattern, the functionname stack can be concatted with a simple -> so you still call you debug from the cli like DEBUG=test:run and have results like:
*test:run->funcA* Hello from funcA
Function a would look like this:
function funcA() {
  debug.fPush('funcA');

  debug('Hello from funcA');

  debug('fPop');
}

This allows a developer to see the live stacktrace if you want to.
The drawback is obvious though - you have to take care of the push and pop.
But the advantages might overweight.
If you like this idea, I'll add it and PR it to you.
Any thoughts?

Or simply added to the output when a debug is called. I don't think string operations left and right are a good way.

middleware should help with this: https://github.com/visionmedia/debug/issues/370


Bug in the funccion setOnStreamClosed when calling idToName

If within setOnStreamClosed need to check the idToName , this is completely different from the ID you use to create , in other works proper activation functions except this .

You'll need to provide explanation on how to reproduce this error.
To try this out, I modified the demo_audio_video.js file with the following changes (in bold)
function connect() {
easyrtc.setUsername("user" + new Date().getTime() % 1000);
easyrtc.enableAudio(document.getElementById("shareAudio").checked);
easyrtc.enableVideo(document.getElementById("shareVideo").checked);
easyrtc.enableDataChannels(true);
easyrtc.setRoomOccupantListener( convertListToButtons);
easyrtc.connect("easyrtc.audioVideo", loginSuccess, loginFailure);
}
easyrtc.setOnStreamClosed( function (easyrtcid) {
** var name = easyrtc.idToName(easyrtcid);
console.log("name is " + name);**
easyrtc.setVideoObjectSrc(document.getElementById('callerVideo'), "");
disable("hangupButton");
});
The name appeared when I closed the connection on the remote peer.

@seis6seis We cannot fix if we cannot repro, will leave open for now.


i18n(ru): translate guides/internationalization.mdx

Add a translation of ru/guides/internationalization.mdx page

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ru
guides/internationalization.mdx
Localization added, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Publish unpublish page hooks

Adds tests and docs to PR https://github.com/wagtail/wagtail/pull/4591
I don't know how to update the existing pr. I hope this new pr (including commits from 4591) is the way to go.

Do the tests still pass? Yes
Does the code comply with the style guide? Yes
For Python changes: Have you added tests to cover the new/fixed behaviour? Yes
For front-end changes: Did you test on all of Wagtail’s supported browsers? N/A
For new features: Has the documentation been updated accordingly? Yes

Thanks to @jonatasbaldin for adding the new hooks.

If you are ok, I will merge this in without the publish hooks and with that docs change.

I happy to apply your docs suggestion myself and will add the publish hooks too. It makes sense to keep all this together in one pr.
I also realised that the before_unpublish hook, when it returns a response, will prevent the original unpublish to be executed. Is that obvious? Maybe I have to add a line explaining that. Maybe:
When a response is returned, the original unpublish will not be called. Add 'page.unpublish()' to your hook if needed.
@lb- ^ Does that make sense?

No problems, makes sense.
In regards to the before hooks, I would assume this would be good for people wanting to add some kind of step (maybe an additional confirmation page) before the unpublish happens. Then on that page they would re-post to the same url - and maybe update the request Param / data with whatever additional check being passed.
I'll take another look once your update is in.
Also - have a read of Matt's comment linked above, we may need to docs that adding a page that is published immediately will NOT trigger the hook.

Also - have a read of Matt's comment linked above, we may need to docs that adding a page that is published immediately will NOT trigger the hook.

I'd much rather we fix this (i.e. add the hook to the create view too) rather than just documenting the behaviour - if the hook behaves differently between "create page + immediately publish" and "create page, save draft + publish" then I'd consider that a bug.

Agreed, thanks Matt.
Let me know if you need a hand Coen

... if the hook behaves differently between "create page + immediately publish" and "create page, save draft + publish" then I'd consider that a bug.

The hooks behave the same. But when a hook returns a response, that response will be served before shadowed code is executed.
Create https://github.com/wagtail/wagtail/pull/6000/files#diff-7ec76fd4042b11064109bfef8030e8f8R258-R327
Edit https://github.com/wagtail/wagtail/pull/6000/files#diff-7ec76fd4042b11064109bfef8030e8f8R427-R581

Merged in via a7f58821a7c899857abc745b1eedc71d93ba575a
Thanks @allcaps  & @jonatasbaldin

awesome ✨


fix(github): provide default ProbotOctokit

Since we don't expose ProbotOctokit, we need to properly default to it if it's not passed in now that GitHubAPI is exposed. Sorry for missing this in my initial PR.

@gr2m Sorry I missed this small issue in my earlier PR. Let me know if you see any issues with this fix.


Upgrade to support NestJS V9/10

V10 of NestJS has been release, please update to support

Hey of course! We would love this.
there is a pr to support pact js v10
https://github.com/pact-foundation/nestjs-pact/pull/17
if there are no changes in nest js v9/10 around this api used then it should just be raising the peer deps
Pr’s always welcome or any eyes on a review 🙌

Peer deps now allow up to v9 of nestjs
https://github.com/pact-foundation/nestjs-pact/blob/6456757cdc3a42f862639f61d5d2432205f84943/package.json#L81-L82

It looks like both of the above packages don't have a 10.x version and using v9 is ok.
Raise an issue if this isn't the case, otherwise will close this


Trained model .

@TropComplique  Thanks you very much for share code.
I don't have a GPU . Do you share trained model file which you  trained ?
Thanks you very much.

Hi.
I plan to release a trained model at the end of this week.

Sorry. I need more time.


[#1800] Fixed invisible links within service dialog.

#1800
===
Some links within the service dialogs were missing text and eating focus when using keyboard navigation, which was not accessible.
Before:

After:

Coverage remained the same at 65.765% when pulling 6f3c64176a274e3776e6c9f5f1fb7b4bfbef0561 on toanzian/acc-#1800 into daa8f6b80c727e5060228960ed5c718d2a90a3b7 on master.


Automated cherry pick of #8702

Cherry pick of #8702 on release-6.0.
/cc  @jwilander

/release-note-none


Google Assistant does not give all traits to groups exposed as lights

Home Assistant release (hass --version):
0.62.0
Python release (python3 --version):
Python 3.5.2
Component/platform:
google_assistant
Description of problem:
Trying to set the brightness or color of a group (configured to expose as a light) does not work.
Expected:
Assistant accepts commands to brightness/set colors to groups of lights.
Problem-relevant configuration.yaml entries and steps to reproduce:
google_assistant:
  entity_config:
    group.wall_lights:
      expose: true
      name: Wall lights
      type: light

Additional info:
I'm pretty sure the problem stems from this section of the component. If I request states, my lights look like
{
    "attributes": {
        "brightness": 255,
        "color_temp": 243,
        "friendly_name": "Wall Back",
        "max_mireds": 500,
        "min_mireds": 154,
        "rgb_color": [
            254,
            66,
            255
        ],
        "supported_features": 115,
        "xy_color": [
            0.379995422293431,
            0.16598764019226367
        ]
    },
    "entity_id": "light.wall_back",
    "last_changed": "2018-02-02T06:34:58.005799+00:00",
    "last_updated": "2018-02-02T06:34:58.005799+00:00",
    "state": "on"
}

and my group looks like
{
    "attributes": {
        "assumed_state": false,
        "entity_id": [
            "light.wall_back",
            "light.wall_side"
        ],
        "friendly_name": "Wall Lights",
        "order": 2
    },
    "entity_id": "group.wall_lights",
    "last_changed": "2018-02-02T06:34:58.003027+00:00",
    "last_updated": "2018-02-02T06:34:58.003027+00:00",
    "state": "on"
}

You can clearly see in the /api/google_assistant endpoint that these aren't being exposed with the brightness/color traits.
{
    "attributes": {},
    "id": "group.wall_lights",
    "name": {
        "name": "Wall lights"
    },
    "traits": [
        "action.devices.traits.OnOff"
    ],
    "type": "action.devices.types.LIGHT",
    "willReportState": false
}

Groups have no supported_features attribute which breaks google_assistant's trait calculation for lights. Frontend seems to handle this fine, but this is frustrating because I have to use HA groups given the wemo component doesn't read wemo's light groups.

Home Assistant's groups are meant to be a generic holder of several entities - so they also don't expose any light-specific options such as supported_features. Only the light.turn_on service somewhat confusingly supports groups - but the group itself doesn't.
See https://community.home-assistant.io/t/grouped-light-control/1034 for a possible fix and a related discussion.


test new template

What would you like to be added?

my feature is great

Why is this needed?
cause it is

/kind feature


How can I make the newly spawned experiment/helper Pod use specific RBAC configuration?

Hi there,
I was trying to migrate a VirtualMachine from one node to another and using litmus to test this process.
In my scenario, the VirtualMachine would launch a Pod as it's work Pod. Let's say Pod-1 is running on node-1.
Then I start migration and trigger chaos (with node-restart experiment). The chaoengine-pod and chaos-experiment-pod-1(with specific RBAC configuration) are created and running as I expected. See "chaos-experiment-pod-1 record".
I found there is an chaos-experiment-pod-2 newly spawned once the VM migration finished (Pod-1 on node-1 is completed and Pod-2 on node-2 is running). See "process record".
My questions are:
Q1. Where is the chaos-experiment-pod-2 come from? (It's not generated by the experiment Job).
Q2: Why does the chaos-experiment-pod-2 use the default ServiceAccount instead of my specified RBAC yaml file? See "chaos-experiment-pod-2 record". The default SA prohibits some specific resources be listed so the post Probe failed.
Litmus Version: 1.12.0
[root@cnvqe-05 ~]# kubectl exec -it experiment-disk-connect-failure-qewzds /bin/bash
bash-5.0$ kubectl get pod
Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:migration-scenario07:default" cannot list resource "pods" in API group "" in the namespace "migration-scenario07"
bash-5.0$ kubectl get vmi
Error from server (Forbidden): virtualmachineinstances.kubevirt.io is forbidden: User "system:serviceaccount:migration-scenario07:default" cannot list resource "virtualmachineinstances" in API group "kubevirt.io" in the namespace "migration-scenario07"

Compared with chaos-experiment-pod-1
[root@cnvqe-05 ~]# kubectl exec -it experiment-disk-connect-failure-u1bo44-s7fmm /bin/bash
bash-5.0$ kubectl get pod
NAME                                           READY   STATUS      RESTARTS   AGE
engine-disk-connect-failure-runner             1/1     Running     0          55s
experiment-disk-connect-failure-qewzds         1/1     Running     0          8s
experiment-disk-connect-failure-u1bo44-s7fmm   1/1     Running     0          52s
virt-launcher-vm1-2cdgr                        1/1     Running     0          19s
virt-launcher-vm1-hnc4m                        0/1     Completed   0          62s
bash-5.0$ kubectl get vmi
NAME   AGE    PHASE     IP            NODENAME
vm1    119s   Running   <IP_ADDRESS>   worker-0-0

Q3: How can I make the chaos-experiment-pod-2 use my specified RBAC file?
Hope someone can help me. Thank you!
process record
[root@cnvqe-05 ~]# oc get pod -o wide -w
NAME                                           READY   STATUS      RESTARTS   AGE     IP             NODE         NOMINATED NODE   READINESS GATES
virt-launcher-vm1-hnc4m   0/1     Pending             0          0s    <none>         <none>       <none>           <none>
virt-launcher-vm1-hnc4m   0/1     Pending             0          0s    <none>         worker-0-2   <none>           <none>
virt-launcher-vm1-hnc4m   0/1     ContainerCreating   0          0s    <none>         worker-0-2   <none>           <none>
virt-launcher-vm1-hnc4m   0/1     ContainerCreating   0          2s    <none>         worker-0-2   <none>           <none>
virt-launcher-vm1-hnc4m   1/1     Running             0          3s    <IP_ADDRESS>   worker-0-2   <none>           <none>
engine-disk-connect-failure-runner   0/1     Pending             0          0s    <none>         <none>       <none>           <none>
engine-disk-connect-failure-runner   0/1     Pending             0          0s    <none>         worker-0-2   <none>           <none>
engine-disk-connect-failure-runner   0/1     ContainerCreating   0          0s    <none>         worker-0-2   <none>           <none>
engine-disk-connect-failure-runner   0/1     ContainerCreating   0          2s    <none>         worker-0-2   <none>           <none>
experiment-disk-connect-failure-u1bo44-s7fmm   0/1     Pending             0          0s    <none>         <none>       <none>           <none>
experiment-disk-connect-failure-u1bo44-s7fmm   0/1     Pending             0          0s    <none>         worker-0-2   <none>           <none>
experiment-disk-connect-failure-u1bo44-s7fmm   0/1     ContainerCreating   0          0s    <none>         worker-0-2   <none>           <none>
engine-disk-connect-failure-runner             1/1     Running             0          4s    <IP_ADDRESS>   worker-0-2   <none>           <none>
experiment-disk-connect-failure-u1bo44-s7fmm   0/1     ContainerCreating   0          2s    <none>         worker-0-2   <none>           <none>
experiment-disk-connect-failure-u1bo44-s7fmm   1/1     Running             0          3s    <IP_ADDRESS>   worker-0-2   <none>           <none>
virt-launcher-vm1-2cdgr                        0/1     Pending             0          0s    <none>         <none>       <none>           <none>
virt-launcher-vm1-2cdgr                        0/1     Pending             0          0s    <none>         worker-0-0   <none>           <none>
virt-launcher-vm1-2cdgr                        0/1     ContainerCreating   0          0s    <none>         worker-0-0   <none>           <none>
virt-launcher-vm1-2cdgr                        0/1     ContainerCreating   0          10s   <none>         worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     Pending             0          0s    <none>         <none>       <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     Pending             0          0s    <none>         worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     ContainerCreating   0          0s    <none>         worker-0-0   <none>           <none>
virt-launcher-vm1-2cdgr                        1/1     Running             0          12s   <IP_ADDRESS>    worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     ContainerCreating   0          1s    <none>         worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         1/1     Running             0          6s    <IP_ADDRESS>    worker-0-0   <none>           <none>
virt-launcher-vm1-hnc4m                        0/1     Completed           0          60s   <IP_ADDRESS>   worker-0-2   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     Completed           0          2m6s   <IP_ADDRESS>    worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     Terminating         0          2m8s   <IP_ADDRESS>    worker-0-0   <none>           <none>
experiment-disk-connect-failure-qewzds         0/1     Terminating         0          2m8s   <IP_ADDRESS>    worker-0-0   <none>           <none>

chaos-experiment-pod-1 record
[root@cnvqe-05 ~]# oc get pod experiment-disk-connect-failure-rafvso-q7tk6 -o yaml
apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.v1.cni.cncf.io/network-status: |-
      [{
          "name": "",
          "interface": "eth0",
          "ips": [
              "<IP_ADDRESS>"
          ],
          "default": true,
          "dns": {}
      }]
    k8s.v1.cni.cncf.io/networks-status: |-
      [{
          "name": "",
          "interface": "eth0",
          "ips": [
              "<IP_ADDRESS>"
          ],
          "default": true,
          "dns": {}
      }]
    openshift.io/scc: restricted
  creationTimestamp: "2021-11-26T09:17:10Z"
  generateName: experiment-disk-connect-failure-rafvso-
  labels:
    chaosUID: a1706fa0-fac3-4440-9aa9-7a7002766f85
    controller-uid: 48d4f7d4-4c34-42b6-9dd8-35b31b545427
    job-name: experiment-disk-connect-failure-rafvso
    name: experiment-disk-connect-failure
  <--------snip--------->
  name: experiment-disk-connect-failure-rafvso-q7tk6
  namespace: migration-scenario07
  ownerReferences:
  - apiVersion: batch/v1
    blockOwnerDeletion: true
    controller: true
    kind: Job
    name: experiment-disk-connect-failure-rafvso
    uid: 48d4f7d4-4c34-42b6-9dd8-35b31b545427
  resourceVersion: "1262057"
  selfLink: /api/v1/namespaces/migration-scenario07/pods/experiment-disk-connect-failure-rafvso-q7tk6
  uid: 5e91fb89-ca9e-47c0-a02c-eb4ef2874f0b
spec:
  containers:
  - args:
    - -c
    - ./experiments -name node-restart
    command:
    - /bin/bash
    env:
    - name: LIB_IMAGE
      value: litmuschaos/go-runner:1.12.0
    - name: STATUS_CHECK_TIMEOUT
      value: "180"
    - name: EXPERIMENT_NAME
      value: experiment-disk-connect-failure
    - name: CHAOSENGINE
      value: engine-disk-connect-failure
    - name: APP_NAMESPACE
      value: migration-scenario07
    - name: REBOOT_COMMAND
      value: echo<PHONE_NUMBER>1111111111; sleep 120
    - name: TARGET_NODE
      value: worker-0-2
    - name: CHAOS_ENGINE_NAME
      value: engine-disk-connect-failure
    - name: CHAOS_EXPERIMENT_NAME
      value: experiment-disk-connect-failure
    - name: ANNOTATION_CHECK
      value: "false"
    - name: APP_LABEL
      value: kubevirt.io/vm=vm1
    - name: APP_KIND
    - name: AUXILIARY_APPINFO
    - name: LIB
      value: litmus
    - name: TARGET_NODE_IP
      value: <IP_ADDRESS>
    - name: CHAOS_NAMESPACE
      value: migration-scenario07
    - name: STATUS_CHECK_DELAY
      value: "2"
    - name: JOB_CLEANUP_POLICY
      value: retain
    - name: ANNOTATION_KEY
      value: litmuschaos.io/chaos
    - name: TOTAL_CHAOS_DURATION
      value: "240"
    - name: RAMP_TIME
      value: "10"
    - name: SSH_USER
      value: core
    - name: CHAOS_UID
      value: a1706fa0-fac3-4440-9aa9-7a7002766f85
    - name: POD_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.name
    image: litmuschaos/go-runner:1.12.0
    imagePullPolicy: IfNotPresent
    name: experiment-disk-connect-failure-rafvso
    resources: {}
    securityContext:
      capabilities:
        drop:
        - KILL
        - MKNOD
        - SETGID
        - SETUID
      runAsUser:<PHONE_NUMBER>
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: engine-disk-connect-failure-sa-token-qvxcz
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  imagePullSecrets:
  - name: engine-disk-connect-failure-sa-dockercfg-s8xp6
  nodeName: worker-0-2
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Never
  schedulerName: default-scheduler
  securityContext:
    fsGroup:<PHONE_NUMBER>
    seLinuxOptions:
      level: s0:c30,c15
  serviceAccount: engine-disk-connect-failure-sa
  serviceAccountName: engine-disk-connect-failure-sa
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: engine-disk-connect-failure-sa-token-qvxcz
    secret:
      defaultMode: 420
      secretName: engine-disk-connect-failure-sa-token-qvxcz
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:10Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:13Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:13Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:10Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: cri-o://a138ec5ba70508c617152b7d3dc1c33d5eccbc7d80e2976a9a6ada5c938372be
    image: docker.io/litmuschaos/go-runner:1.12.0
    imageID: docker.io/litmuschaos/go-runner@sha256:500a071208fe0e57a3fe8fecdc62dc78e11ff3285befc410052c7ebf5c4acc5b
    lastState: {}
    name: experiment-disk-connect-failure-rafvso
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2021-11-26T09:17:13Z"
  hostIP: <IP_ADDRESS>
  phase: Running
  podIP: 10.131.x.y
  podIPs:
  - ip: 10.131.x.y
  qosClass: BestEffort
  startTime: "2021-11-26T09:17:10Z"
[root@cnvqe-05 ~]#

chaos-experiment-pod-2 record
[root@cnvqe-05 ~]# oc get pod experiment-disk-connect-failure-kcxvnc -o yaml
apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.v1.cni.cncf.io/network-status: |-
      [{
          "name": "",
          "interface": "eth0",
          "ips": [
              "<IP_ADDRESS>"
          ],
          "default": true,
          "dns": {}
      }]
    k8s.v1.cni.cncf.io/networks-status: |-
      [{
          "name": "",
          "interface": "eth0",
          "ips": [
              "<IP_ADDRESS>"
          ],
          "default": true,
          "dns": {}
      }]
    openshift.io/scc: restricted
  creationTimestamp: "2021-11-26T09:17:54Z"
  labels:
    app: experiment-disk-connect-failure-helper
    app.kubernetes.io/part-of: litmus
    chaosUID: a1706fa0-fac3-4440-9aa9-7a7002766f85
    name: experiment-disk-connect-failure-kcxvnc
  <----------snip---------->
  name: experiment-disk-connect-failure-kcxvnc
  namespace: migration-scenario07
  resourceVersion: "1262714"
  selfLink: /api/v1/namespaces/migration-scenario07/pods/experiment-disk-connect-failure-kcxvnc
  uid: 58526b92-97be-49c8-aa4d-910b8072fcfd
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchFields:
          - key: metadata.name
            operator: NotIn
            values:
            - worker-0-2
  containers:
  - args:
    - -c
    - cp /mnt/ssh-privatekey /data/ssh-privatekey && chmod 400 /data/ssh-privatekey && ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" -i /data/ssh-privatekey<EMAIL_ADDRESS>echo<PHONE_NUMBER>1111111111; sleep 120
    command:
    - /bin/sh
    image: litmuschaos/go-runner:1.12.0
    imagePullPolicy: Always
    name: experiment-disk-connect-failure
    resources: {}
    securityContext:
      capabilities:
        drop:
        - KILL
        - MKNOD
        - SETGID
        - SETUID
      runAsUser:<PHONE_NUMBER>
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /mnt
      name: private-key-cm-kcxvnc
    - mountPath: /data
      name: empty-dir-kcxvnc
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-8l8qv
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  imagePullSecrets:
  - name: default-dockercfg-c7r7v
  nodeName: worker-0-0
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Never
  schedulerName: default-scheduler
  securityContext:
    fsGroup:<PHONE_NUMBER>
    seLinuxOptions:
      level: s0:c30,c15
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: private-key-cm-kcxvnc
    secret:
      defaultMode: 420
      secretName: id-rsa
  - emptyDir: {}
    name: empty-dir-kcxvnc
  - name: default-token-8l8qv
    secret:
      defaultMode: 420
      secretName: default-token-8l8qv
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:54Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:18:02Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:18:02Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2021-11-26T09:17:54Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: cri-o://447a46ea4fce3cae00a3866e53f3a1968aa1544c1a02cd39df3bfef9cb61b064
    image: docker.io/litmuschaos/go-runner:1.12.0
    imageID: docker.io/litmuschaos/go-runner@sha256:500a071208fe0e57a3fe8fecdc62dc78e11ff3285befc410052c7ebf5c4acc5b
    lastState: {}
    name: experiment-disk-connect-failure
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2021-11-26T09:18:01Z"
  hostIP: <IP_ADDRESS>
  phase: Running
  podIP: <IP_ADDRESS>
  podIPs:
  - ip: <IP_ADDRESS>
  qosClass: BestEffort
  startTime: "2021-11-26T09:17:54Z"
[root@cnvqe-05 ~]#

Hi @qwang1 , we can provide the name of service account in chaosServiceAccount field of ChaosEngine CR. It will start the experiment with the provided SA.


Implement New-RelativityResourcePoolResource

https://platform.relativity.com/Server2023/Content/BD_Infrastructure/ResourceServerResourcePoolRESTAPI.html#/operations/Relativity.Infrastructure.V1.ResourcePool.IResourcePoolManager.AddResourcesAsync

Need more info on this one. The documentation shows an API syntax that doesnt seem to work
/relativity-infrastructure/v1/workspaces/-1/resource-pools/{resourcePoolID}/query-associated
However this syntax does work, but where is does the {ServerType} come from?
/relativity-infrastructure/v1/workspaces/-1/resource-pools/{resourcePoolID}/{ServerType}/query-associated
Also, should we standardize what options are used in the Body?

renaming verb to be Add-RelativityResourcePoolResource
since this operation isnt creating a new object.

Unusual API mismatch here.
API Reference Syntax:
/Relativity.REST/API/Relativity-Infrastructure/v1/workspaces/-1/resource-pools/{resourcePoolID}/add
Actual Working Syntax:
/Relativity.Rest/API/Relativity.ResourcePools/workspace/-1/resource-pools/{resourcePoolID}/{ResourceType}/add

Needed to add Relativity.ResourcePools BusinessDomain to make this API call.


replace a wrong "z" by a "c" in horizontal grid section of manual

What changes does this PR introduce?

small bug fix (replace "z" by "c") in Section 2.11.4
fix line breaks so lines are below 80 characters, where usefu
fix figure caption of Fig2.8

Suggested addition to tag-index
not necessary

good catch
In fig 2.8b (vorticity cell) the text locates x_c as the southern edge but the figure draws it on the north. As per last sentence I think should be north in the text.
Also, annoying that a comma after a :math:  breaks line (as in caption line 2), probably could be hand-fixed with a \ (?) but I don't know a general way to deal with this.

In fig 2.8b (vorticity cell) the text locates x_c as the southern edge but the figure draws it on the north. As per last sentence I think should be north in the text.

@jrscott thanks, I didn't see that. Should be fixed now.

LGTM
Incidentally this section is be a bit awkward regarding the roman and italic single-char subscripts, as we have both 'c' and 'f' etc. but also 'u' and 'v'; the latter are variables (thus italic by proposed rule) whereas the former roman. Of course, they are all roman in the figure but all italic in the text :)
This file is not touched in PR#541 so should be ok to merge right away (otherwise the 80-char fix would have been problematic, had it been open in the other PR, which I'll try to wrap up soon)


How to achieve parallel simulation with multiple Calvin environments?

Because of pybullet, the easiest method is to run every environment in its own subprocess. For reinforcement learning,  Stable Baselines 3 provides a SubprocessVecEnv wrapper for that, read this guide.
When we did our experiments we evaluated multiple checkpoints simultaneously in subprocesses with this script.


Protractor API Documentation version is not updated

Bug report
Protractor API Documentation version is not updated. Protractor 6.0.0 is released but the API documentation version is still 5.4.1
http://www.protractortest.org/#/api

cc: @cnishina

I think we should keep two versions of API because a lot of people still use 5.4.1

Yes that's true. The docs are not updated. I'm on vacation.

Also due to the way this website works, it is difficult to keep two versions of the website. I also wanted to keep track of multiple API versions.

I'll update the docs as soon as 6.0.1 is released.

Another quick update. The latest on npmjs is pointed to 5.4.2 so this won't be too much of a problem. Sorry about this.


Specific settings for each domain

Hi all,
The questions will not be new but I'm wondering how I can get proxy settings for each specific docker container. For example if working with a angular app I need every 404 to point to the index.html. Do I edit the config of this container or do I spin op another docker container with nginx?

I guess #678 answers my question?


Bug fix: Handle not declared role inside a view

Add fixture : user with a none declared role inside post view

Add test: should raise a 403 when role is not assigned to a view

Change get_allowed_actions to return an empty list when role is not declared inside view

Codecov Report

Merging #3 into master will increase coverage by 1.71%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master       #3      +/-   ##
==========================================
+ Coverage   96.72%   98.43%   +1.71%
==========================================
  Files           2        2
  Lines          61       64       +3
==========================================
+ Hits           59       63       +4
+ Misses          2        1       -1

Impacted Files
Coverage Δ

rest_framework_role_filters/role_filters.py
100% <100%> (+3.22%)
:arrow_up:

Continue to review full report at Codecov.

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


does not seem to convert pytorch datasets correctly

Consider this example
import jax_dataloader.core as jdl
from torch.utils.data import DataLoader, TensorDataset
from torchvision.transforms import ToTensor
from torchvision.datasets import MNIST
train_ds = MNIST('/tmp/mnist/', download=True, transform=ToTensor())

train_loader = jdl.DataLoader(train_ds, 'pytorch', batch_size=5, shuffle=False, drop_last=False)
train_iter = iter(train_loader)
nbatches = len(train_iter)
for b in range(1): #nbatches):
    Xtr, Ytr = next(train_iter)
    print(b, Xtr.shape, Ytr.shape, type(Xtr), type(Ytr))
    print(type(Xtr[0]), Xtr[0].shape, Ytr[0].shape)

This returns
0 (5,) (5,) <class 'numpy.ndarray'> <class 'numpy.ndarray'>
<class 'torch.Tensor'> torch.Size([1, 28, 28]) ()

so the elements within the batch are still pytorch tensors, not numpy arrays.

Hi @murphyk
Thanks for the question and the feedback to the library.
The jdl.DataLoader takes jdl.Dataset as input (not a pytorch Dataset). I am working to integrate the use of both PyTorch and huggingface datasets into this library.

Oh, I see. So the dataset is jdl.Dataset but the backend dataloader can be jax, pytorch, or tf?
But if I want to use a pytorch dataset, I need to first convert it to numpy? What's the best way to do this?

Hi @murphyk
Thanks for your questions and suggestions. For pytorch dataset, here is what I would like to do:
import jax_dataloader.core as jdl
from torch.utils.data import DataLoader, TensorDataset
from torchvision.transforms import ToTensor
from torchvision.datasets import MNIST

class ToNumpy(object):
  def __call__(self, pic):
    return np.array(pic, dtype=float)

train_ds = = MNIST('/tmp/mnist/', download=True, transform=ToNumpy(), train=True)
train_dl = jdl.Dataloader(train_ds, 'pytorch', batch_size=5, shuffle=True) # Using 'pytorch' as the backend is a must for now

imgs, label = next(iter(train_dl))

Note that currently, the 'jax' data loader is not compatible with the PyTorch dataset. If you want to use pytorch dataset, you should specify 'pytorch' when using the jdl.Dataloader.
I am also adding support for the Huggingface datasets, which seems to work more naturally for jax. Documentations is coming up.


There is no error code in Response when success is false

I'm using VERSION = 'php_1.1.2'  of this library
I'm trying to debug why my recaptcha doesn't work,  and try to debug from the source and here is the response from the object.
array(3) {
["success"]=>
bool(false)
["challenge_ts"]=>
string(20) "2016-07-01T00:08:10Z"
["hostname"]=>
string(16) "my_host_name_here"
}
And when I try to use the request in postman, still get the same response, I'm new to it, and any help will be appreciated.  Currently I know it is not success, but there is no "error" code

I always get success : false response  ( with no error code ) even if the captcha matches on the page.  Is there something I did wrong here?  Any help is appreciated.

Same problem.
I receive "success: false" since the first verify attempt.
Did you find the reason?

Same here. I now treat "success: false" without error codes as success because too many form posts are being rejected because of this bug.

Error codes are optional, and only are sent if there is an input error. Success:false without an error code means that the response itself was bad for some reason (timeout, duplicate of previous submitted response, etc.)

I always get success : false response ( with no error code ) even if the captcha matches on the page. Is there something I did wrong here? Any help is appreciated.

I also got the same problem here.

I also encountered the same issue. Is there a fix here? or we should assume this is normal?

any update? I got the same issue!

I am debugging and testing, so i got this issue when i sent the same POST more than one time, as @jasonfedor said. To prevent an empty error to the user, i am sending a custom message always i get success => false.
But it would be very good if a specific error was returned as the method name says: getErrorCodes().

Same problem here , I´m doing a GET request via postman or soapui , i get success = true for a valid secret and response for the domain localhost , but when I change the domain I get always success =  false without a error code .

We are also encountering the same issue. About 10% of our submissions are getting a success: false with no error codes, making it very hard to identify the problem our users have.
We have tried to replicate the issue without any success.
As far as I've seen, if a recaptcha response code is being used the second time, the response will say success: false without error codes. If I manually try to verify a recaptcha code, but I type in "asdf" it will tell me:
{
  "success": false,
  "error-codes": [
    "invalid-input-response"
  ]
}

Is recaptcha just broken then? I keep getting these success: false responses, even when making the requests through postman.

I'm updating the v1.2 branch to include some additional error codes. Is there an example of this out in the wild or any additional configuration I could see to try and diagnose this?

I am getting the same error - {success: false, error: null}.
Any solution?


Magic Note App: Add title of the note

Is your feature request related to a problem? Please describe.
Some notes required title as well.
Describe the solution you'd like
Put Add Title above add note

Could you assign this issue to me? I would like to give it a try.


0.6.0

@adityamohan29  Can you please sign CLA. Thanks!

All these changes seem to be commits from other people.


Push doesn't work to default remote

Its expected that doing "Set as Default" on Remote, will select it for push.

GitLens Version:

VSCode Version:1.45.1
OS Version:win10

Steps to Reproduce:

Add local backup repository as Remote via RMB on Remotes in ActivityBar \ GitLens \ Repositories .
RMB \ Set as Default .
ActivityBar \ Source Control \ More Actions \ Push .

Will output "No configured push designation" .

The Set as Default command doesn't affect any Git configuration -- it is just a GitLens flag to mark a particular remote for certain GitLens operations, e.g. connecting to a rich remote provider, opening remote links, etc.

The target for Push is provided trough Gitlens , setting the Default as this target is nothing else a Gitlens configuration .


Add Getting Help section to README

Add Getting Help section to README
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-pDO66x4b9gEu
Commit ID: cd7c9ca6bd4285415bc93db892cd3742086d752f
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


feat(controller): adding CRUD base, error-handling, pipe decorator

Codecov Report

Merging #4 into master will decrease coverage by 14.02%.
The diff coverage is 33.84%.

@@             Coverage Diff             @@
##           master       #4       +/-   ##
===========================================
- Coverage   99.17%   85.14%   -14.03%
===========================================
  Files          15       21        +6
  Lines         241      303       +62
  Branches       40       54       +14
===========================================
+ Hits          239      258       +19
- Misses          2       45       +43

Impacted Files
Coverage Δ

src/error-handling/errors/bad-request-error.ts
0.00% <0.00%> (ø)

src/error-handling/errors/internal-server.error.ts
0.00% <0.00%> (ø)

src/error-handling/errors/http-error.ts
16.66% <16.66%> (ø)

src/decorators/methods.ts
85.36% <25.00%> (-14.64%)
:arrow_down:

src/crud/crud.ts
40.00% <40.00%> (ø)

src/error-handling/default-error-handler.ts
42.85% <42.85%> (ø)

src/decorators/controller.ts
95.45% <66.66%> (-4.55%)
:arrow_down:

src/app/app.ts
96.55% <100.00%> (+0.25%)
:arrow_up:

src/crud/index.ts
100.00% <100.00%> (ø)

src/decorators/injectable.ts
100.00% <100.00%> (ø)

... and 7 more

Continue to review full report at Codecov.

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


How to check if my app is calling APIs with minimal permissions

How-to guidance on using the ApiCenterMinimalPermissionsPlugin

PR open, pending editorial review


enable env variable setting for the streaming client, and the central

for https://github.com/titpetric/netdata/issues/42

LGTM, please just add appropriate docs into README to explain how to set up netdata for this.

sure thing. I think that I looked for the README in the wrong place and missed it. I added it to the README

Thank you!


Extract a function for parsing operator DIV

Extract the parsing out of a switch statement case to create a
standalone function which can be called by the micro op resolver.
This PR is part of the work to port operator DIV from lite to micro,
as tracked in #45431.

@googlebot I signed it!

@ddavis-2015  Can you please resolve conflicts? Thanks!


Cannot create new CBL database

Good morning,
I am not able to create a new db with this code:
window.cbl.getServerURL(function (url, err) {
                if (err)
                {
                    return done("error launching Couchbase Lite: " + err + " URL: " + url);
                }
                else
                {
                    console.log("Couchbase Lite running at " + url);
                    var db = coax([url, appDbName]);
                    try
                    {
                        config = {
                            site : {
                                syncUrl : REMOTE_SYNC_URL
                            },
                            db : db,
                            s : coax(url),
                            server : url
                        };
                        console.log("config: " + JSON.stringify(config))
                    }
                    catch( ex )
                    {
                        console.log(" config create ex: " + ex)
                    }

                }
            });

In the console the log is not showing the db object getting created. Please help i recently moved from couchbase lite phonegap plugin to this cordova plugin
james

Hi @jashachik
(notes: add lodash, Promise library like bluebird.js and URI.js if you haven't already, the cbl wrapper depends on them. I just committed a dist directory containing a baked javascript in case your are not using typescript.)
The native code is identical to the main couchbase lite phone gap repo. so if you are having issues with cbl itself, those issues will be here as well. I update the native code as it become available from couchbase.
If you want a more convenient way to interact with cbl from a javascript context then use this repo with the provided wrappers.
Use either the javascript file dist/cbl.js or the typescript file and use the api like so:
Using dist/cbl.js
var db = new cblDB('nameOfDB', 'optionalRemoteSyncUrl') db.initDB('optionalRemoteSyncUrl')
or for Typescript
import cblDB = require('path/to/typescript/cbl/file'); const db = new cblDB('nameOfDB', 'optionalRemoteSyncUrl') db.initDB('optionalRemoteSyncUrl')
This will handle the cordova plugin bridge code for you. Then you can interact with cbl very cleanly. like so:
db.get('docId',{param:'value'}).then(function(doc){.... do stuff with doc ..... })
More Info
I made some breaking changes from the vanilla couchbase lite plugin to encourage the use of the javascript wrapper. instead of clobbering window.cbl just cbl is clobbered. This implementation detail is intended to be hidden from the public API, but if you needed to get the cbl server url use cbl.getServerURL()
I don't like coax so I am not using it. The API functions construct the appropriate url, params, body etc and pass that to a vanilla XHR.
This fork is intended to be used with the provided wrapper. some assembly is required. in the case of javascript adding the dist/cbl.js into your project, or in the case of typescript adding the typescript file and the definition file into your project.
Hope that helps.


Create clustered installation option

Note
This doesn't include any UI work – it's not really applicable.
Summary
Right now, when attempting to install concrete5 in some clustered environments you'll run into problems. The first node installs fine, but when attempting to pass the database credentials for the fist node to the second node you'll be told the database already exists. It does – but you still don't have a concrete5 installation on that second server that points to the existing database.
Solution
We need to add something to the command line installer and to the install routine API that can handle clustered environments. For example, in the Zend Server clustered installer, there's a ZS_RUN_ONCE_NODE constant that is true when running an installation on the first cluster node, and false on subsequent nodes. We should be able to set a boolean in concrete5 in the second run that states basically does this:

Ignore any warnings about a database already existing
Skip all installation except writing the config file.
Add ability to specify session handler as part of install from the command line or within the installation routine. Perhaps this is a generic ability to set any configuration directive as part of install (so our clustered installs could include concrete.session.handler = 'database')

This way, on the first server everything installs as normal. On subsequent cluster nodes we don't do anything but write the database.php config file.

It seems to me we can fully install just by writing the database.php file properly, perhaps we add a --attach param that will detect an existing install and configure itself to connect to it properly if it does. @aembler do you have a good way for me to test this?

I like that. The --attach option.

I'm attaching the concrete5.zpk file for Zend Server. If you install Zend Server you should be able to deploy this file as an "app" (i.e. a website) in Zend Server, and it'll automatically install concrete5. However, if you install concrete5 using the clustered version of zend server, this will apparently fail on multiple nodes. This is the good way to test this: we should be modifying the post_stage.php script in the scripts/ folder here to support their ZS_RUN_ONCE_NODE constant. i'd think you install normally if ZS_RUN_ONCE_NODE is set to true, otherwise you'd use your attach option.
http://assets.concrete5.org/zend/concrete5.zpk
(Note: This has the extension .zpk, but it's just a zip file. Just unzip it to work with the files within. Then to pack it up to use in zend server you have to use zdpack.)

Awesome. @KorvinSzanto can you get me a version of the above .zpk which makes use of this new flag ? I'd like to be able to deliver it to Zend.

@KorvinSzanto Sorry to move the goalposts on this, but I'm appending something that we realized in Slack last week. In this clustered installation option can make it so that
If you're installing a concrete5 site with this attach option active, we ensure that we mirror the files/ directory with the same structure as the files/ directory on the web root?
For example, I run a clustered install. It installs fine, and installs my sample content, including the files/ directory. That means I have 15 rows in my Files table, and the FileVersions table now has my fvPrefix set to a bunch of different numbers. Those numbers match to how my files/ directory is built out. If I just write the config file in the second web server, it'll install fine and render fine, but none of those files exist on that second server. Instead, I need to install them into that servers files/ directory.
However, I can't just run importFiles() on those files, because then I'll have 30 rows in the Files table, and if I'm on server A half of the files will be gone, and on server B the other half will be gone. Instead I need to look at the existing Files as they appear in the database, and make sure that the file/ directory on server B puts those files in the appropriate location on server B.

@aembler I'm not sure I understand how you want this to work. What happens when the user uploads a new file to server A?

@KorvinSzanto We don't care about that.   Once you install it its up to you to either rsync it, or make the /files partition mounted on a NAS or something similar.

Maybe scope creep... but would it be any easier to simply implement a database storage location and allow it to be set up as the default storage location from a command line install? Normally I'd shy away from storing files in the database, but in this scenario it might be just as easy as implementing something to reverse engineer the file install, and it would allow concrete5 to continue to work without having to do file syncing (to a larger extent anyway). Just a suggestion for the box.

@aembler I just don't see how I can set up file mounting in concrete5, I feel like this is something the zend installer should take care of and not something we should need to manage.
The only realistic way I can think to do this is to run the files install steps and try to merge with the existing records, but that is a serious undertaking.

Let's not worry about it. Just skip that part. Just make sure the .zpk installs on multiple nodes sharing the database between them, and that database-backed sessions are used. That will get me something that at least installs that I can send to them. If they express shock that files aren't synced I'll make them give me some preferred way of doing that.


Fix API request for test references with query parameters

MR #39 introduced a regression when trying to get test references for a test with a given name.
This MR fixes that regression and adds some tests for that use case.

Pull Request Test Coverage Report for Build 714520272

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
11 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-1.2%) to 70.843%

Files with Coverage Reduction
New Missed Lines
%

dtf/api.py
1
93.29%

dtf/validators.py
1
76.47%

dtf/templatetags/dtf/custom_filters.py
9
52.99%

Totals

Change from base Build 714286619:
-1.2%

Covered Lines:
639

Relevant Lines:
902

💛  - Coveralls


addDisposer analog

Hi! Currently I translated out project from mst to keystone, and we actively using addDisposer. Does it possible to implement it in keystone?

Since nodes in mobx-keystone cannot become dead there's no direct equivalent. However you can use the hook that runs whenever a node is detached from a root store node (the function that you return from onAttachedToRootStore) (https://mobx-keystone.js.org/rootStores) or alternatively onChildAttachedTo (https://mobx-keystone.js.org/treeLikeStructure#onchildattachedtotarget---object-fn-child-object----void--void-options--deep-boolean-fireforcurrentchildren-boolean--rundetachdisposers-boolean--void) to kind of emulate this.

Yep, I already make such wrappers:
import {AnyModel, getRootStore, model, ModelClass} from 'mobx-keystone'
const $disposers = Symbol('disposers')

export type Disposer = () => void

export const coolModel: typeof model = name => clazz => {
    if ('onAttachedToRootStore' in clazz.prototype)
        throw new Error("Don't use onAttachedToRootStore!")
    clazz.prototype.onAttachedToRootStore = function onAttachedToRootStore(root: any) {
        this[$disposers] = [] as Disposer[]
        this.onAttach?.(root)
        return () => {
            this[$disposers]?.forEach((d: Disposer) => d())
            delete this[$disposers]
        }
    }
    return model(name)(clazz)
}

export function addDisposer(node: AnyModel, disposer: Disposer) {
    if (!($disposers in node))
        throw new Error('Model is not attached to root store!')
    // @ts-ignore
    node[$disposers].push(disposer)
}

I think that set of such wrappers can be published as package as tiny mst-compatibility layer, #156 related

This snippet works, but does disposer from onAttachedToRootStore is running after actual detaching? It's not good when child node need to use some root node methods.

Yes, it runs after being attached and after being detached.
Since it runs as a disposer and the hook takes the root store it gets attached to as a parameter you can still call root store methods on those. e.g.
onAttachedToRootStore(rootStore) {
 return () => {
    // already detached, call old root store method
    rootStore.whatever(this);
  };
}

Have you found a pattern that is not covered in this way?

Have you found a use case that is not covered with this pattern?

Nope, I adapt my code to store root reference too. So, basically, addDisposer can be easily implemented in user-land.


fix: tagged enum with flatten fields

Closes #1206
This is a quick solution to the problem; the coding style might not align with conventional standards, but I am ready to address any shortcomings.

Is there any progress on this? We need this PR to be merged.

@juhaku done


[HUDI-5230] Lazy init secondaryView in PriorityBasedFileSystemView

Change Logs
Lazy init secondaryView in PriorityBasedFileSystemView
Impact
We will get better performance when use PriorityBasedFileSystemView.
For flink, when tm request jm to get hudi meta failed will use secondary, if timeline server in jm successfully process request and tm get the meta info not successfully, the tm not need to init secondary, which will scan hdfs, bad for performance.
Risk level (write none, low medium or high below)
none
Documentation Update
none
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

Hi, can you explain what is the gains here ? The instantiation of secondary fs view is not costy, the subsequenct requests are, seems not necessary we make the instantiation lazy.

@danny0405 the init of secondary will scan hdfs to get instants and something else, if there are many write tasks, the cost is huge, the hdfs is only one, each task is try to scan the same hdfs. for performace, the init of secondaryView is not needed if the info is offered by jm.

Hi, can you explain what is the gains here ? The instantiation of secondary fs view is not costy, the subsequenct requests are, seems not necessary we make the instantiation lazy.

@danny0405 the init of secondary will scan hdfs to get instants and something else, if there are many write tasks, the cost is huge, the hdfs is only one, each task is try to scan the same hdfs. for performace, the init of secondaryView is not needed if the info is offered by jm.

I'm going to close this one as #10652 has the changes on the latest master.


Add metric to track timestamps of commits

This PR introduces a new metric kafka_consumer_group_timestamp_seconds, which is a gauge that contains the timestamp (scaled to seconds) of the latest commit for a group/topic/partition.
I'd like to add this because as is, we have no reliable way to determine when the latest commit is, which we would find useful. For active consumers, we can see when the kafka_consumer_group_commits metric increases, but for old consumers who do not have fresh commits, there is no such mechanism.
This can be useful to limit queries to show data that's been updated within a certain window, or to exclude alerts for old consumers that have been deprecated.

Mind taking a look at this @braedon? Happy to provide additional context or information if needed.

Thanks for the PR @jutley. I'm super busy at the moment (currently on a business trip), but taking at look at this is definitely on my TODO list!

Sorry for the massive delay in review this @jutley.
Made a few tweaks in https://github.com/braedon/prometheus-kafka-consumer-group-exporter/pull/27 - note the metric name change in particular. Will get it released shortly.

@jutley released in 0.5.0


SideNav appears darkened

Following up from issue #1028, the remaining issue is the SideNav remains darkened when I apply the following css to <nav>:
nav {
    position: relative;
    z-index: 1;
    overflow: visible;
}

Increasing the z-index on <nav> to 998+ allows for both the SideNav and the top navbar to not be darkened when the SideNav is out. However, the correct behavior is for the top navbar to be darkened while the SideNav is not darkened when the SideNav is pulled out.
What workaround is there for this issue?

You have to move the <ul id="slide-out"> out from within the fixed nav HTML structure

Great, thanks. This solution is working well, and without needing to include the overflow: visible. Unfortunately, the styling gets lost for the sidebar links, but I'll just have to go dig that up.

Add
  .side-nav li a {
    color: #444;
    display: block;
    font-size: 1rem;
    height: 64px;
    line-height: 64px;
    padding: 0 15px;
  }

Wonderful, thanks!


Material Icons?

Hi! Thanks for awesome plugin! :) I'm glad to use it with Vue.js.
I have a next question: what if I want use Material Icons instead of FontAwesome? How can I do this? :)

Just replace the FA classes with the Material Icon classes.


Using the gem, how can I run gulp img?

I created my website with jekyll new, tweaked _config.yml to have evertyhing showing, added a picture in _img, and ran bundle exec jekyll server.
However, the thumbnails are not generated:
[2018-12-30 15:30:58] ERROR `/assets/img/posts/xworld-map_placehold.jpg' not found.
[2018-12-30 15:30:59] ERROR<EMAIL_ADDRESS>not found.
[2018-12-30 15:30:59] ERROR `/assets/img/posts/xworld-map_placehold.jpg' not found.
[2018-12-30 15:31:00] ERROR<EMAIL_ADDRESS>not found.

Note: I obviously didn't clone the repo on purpose. Below is a snippet of my _config.yml
remote_theme: janczizikow/sleek
plugins:
  - jekyll-feed
  - jekyll-remote-theme
  - jekyll-seo-tag

My question is, using the gem, can I still run gulp img?

Hey @amaurymartiny unfortunately by just using the gem, you won't be able to use gulp commands. You could use add your own gulp setup that would generate images for you, but the gulp task would have to follow the folder & naming convention as used in the gem.


chore(docs): update README.md

Added Wiki references and updated information

Based on the fact that the 'missing information' is moved to the wiki and referenced from the README; are we all good to merge this in?

Squashed commits, ready for merge.


Deploy leveldbjni-all-1.8 to org.openlabtesting.leveldbjni:

1.Update levedb.patch to support aarch64 platform
2.Update the groupid to org.openlabtesting.leveldbjni

@huangtianhua Could you please share instructions how you built leveldbjni from scratch ? I've wasted about two hours and couldn't make it work. Currently I'm stuck with older automake versoin error. I've tried to change AM_AUTOMAKE_VERSION in ./leveldbjni/src/main/native-package/aclocal.m4 but I'm getting cryptic
error: Do not call AM_AUTOMAKE_VERSION, use AM_INIT_AUTOMAKE([1.16]).

Thanks!


Update productboard-cohort.md

Amplitude Developer Docs PR
Description
Describe your changes.
Deadline
When do these changes need to be live on the site?
Change type

[ ] Doc bug fix. Fixes #[insert issue number]. Amplitude contributors include Jira issue number.
[ ] Doc update.
[ ] New documentation.
[ ] Non-documentation related fix or update.

PR checklist:

[ ] My documentation follows the style guidelines of this project.
[ ] I previewed my documentation on a local server using mkdocs serve.
[ ] Running mkdocs serve didn't generate any failures.
[ ] I have performed a self-review of my own documentation.

@amplitude-dev-docs
@caseyamp

Improve our existing Productboard <> Amplitude cohort integration to include an additional mapping option so customers can choose whether to send either User IDs or emails to Productboard.

Let me know if I should merge it or if you'll merge it. Happy for you to do it.


AI Toolkit for IBM® Z® and IBM® LinuxONE documentation

AI Toolkit for IBM® Z® and IBM® LinuxONE documentation

Marked DCO as pass as there are contributions from a few folks on the team, not just me.


WSLD not working since latest WSL update

Hi,
wsld seems not to be working since 09.12.2022. Guess latest WSL update, no Windows Update was applied. Are there any other such issues: "wsld tries to connect WSLD-Host..."
Microsoft Windows [Version 10.0.22621.819]
WSL-Version: <IP_ADDRESS>
Kernelversion: <IP_ADDRESS>
WSLg-Version: 1.0.47
MSRDC-Version: 1.2.3575
Direct3D-Version: 1.606.4
DXCore-Version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows Version: 10.0.22621.819

Problem also solved by workaround:
https://github.com/nbdd0121/wsld/issues/21#issuecomment-1345530909


investigate https://mat.tm/joy/

We're already heavily invested with GopherJS, and I doubt Joy is more mature, but you never know...
CC @myitcv

Thanks for the cc. I saw the link somewhere earlier and I've subscribed to updates.
We could/should also add a tracker for the WASM issue in the Go repo?
https://github.com/golang/go/issues/18892
On the basis that's another means of writing Go code for the frontend (although much like the joy project, the implementation path is less clear than the status quo of GopherJS)

I think we want to stick with GopherJS. I don't want to write in a subset dialect of Go.

Agreed.
Comments below based on a quick skim of the available docs
There are some good guiding principles for Joy:

Code is written once, read many times
Less syntax is better than prettier syntax
Typed code is easier to update and maintain
Avoid large runtimes and unused code
Don’t break browser support without a good reason
Generate concise Javascript from idiomatic Go
Embrace standard libraries and standard tools

Points 1, 2, 3, 5 and 7 are very much Go's domain and principles that are, therefore, shared with GopherJS.
Points 4 and 6 are criticisms that can, to a point, be levelled at GopherJS; they are well known, well defined points of optimisation within the compiler (that are still open).
I have to admit, I'm a little confused about principle 7 however, given this statement:

Most existing Go code does not yet compile to Javascript. This is because most of the standard library still needs to be translated to Javascript.

Which seems to suggest this is being done by hand? Doesn't sound like the right approach to me.
So my conclusion as to the "best way forward" still remains:

GopherJS (which can, if someone had the time/money, be optimised)
The WASM work + some Javascript interop


Please build for Scala 2.12.0

Some deps aren't yet available for Scala 2.12.

Done: 0.15.0-M1
This will become a final version once its dependencies are final. Right now all have to wait for akka-http 10.0.0.