Data race

Code:
package main

import "github.com/AsynkronIT/goring"

func main() {
	q := goring.New(10)

	go func() {
		for range []int{1, 1, 1, 1, 1, 1, 1, 1, 1, 1} {
			q.Push(1)
		}
	}()

	for range []int{1, 1, 1, 1, 1, 1, 1, 1, 1, 1} {
		q.Length()
	}
}

Output:
yauhen:/home/yauhen/ws/golang/src/playground/1484599026playground>go run -race queue_race_example.go
==================
WARNING: DATA RACE
Read at 0x00c42007a008 by goroutine 6:
  sync/atomic.LoadInt64()
      /home/yauhen/ws/golang/go/src/runtime/race_amd64.s:211 +0xb
  github.com/AsynkronIT/goring.(*Queue).Length()
      /home/yauhen/ws/golang/src/github.com/AsynkronIT/goring/queue.go:63 +0x3e
  main.main.func2()
      /home/yauhen/ws/golang/src/playground/1484599026playground/queue_race_example.go:16 +0x82

Previous write at 0x00c42007a008 by goroutine 5:
  github.com/AsynkronIT/goring.(*Queue).Push()
      /home/yauhen/ws/golang/src/github.com/AsynkronIT/goring/queue.go:57 +0x463
  main.main.func1()
      /home/yauhen/ws/golang/src/playground/1484599026playground/queue_race_example.go:10 +0xd6

Goroutine 6 (running) created at:
  main.main()
      /home/yauhen/ws/golang/src/playground/1484599026playground/queue_race_example.go:18 +0x1e5

Goroutine 5 (finished) created at:
  main.main()
      /home/yauhen/ws/golang/src/playground/1484599026playground/queue_race_example.go:12 +0x1c3
==================
Found 1 data race(s)
exit status 66

Are you on a 32 bit system? is that the issue that writes to the len is not atomic+

yauhen:/home/yauhen/ws/golang/src/playground/1484599026playground>uname -a
Linux yauhen.yauhen-hp 4.8.15-200.fc24.x86_64 #1 SMP Thu Dec 15 23:09:22 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
yauhen:/home/yauhen/ws/golang/src/playground/1484599026playground>

I think you are right about not atomic write on increment.


go/adbc/driver/snowflake: improve bulk ingestion speed

https://lists.apache.org/thread/9m33spjv3x9sd3r3wwnwhgm5m27k5wgq
Because we use giant sets of bind parameters, things are very slow. We should instead try PUT...COPY INTO.

Following up on #1322.
The Snowflake Connector that our ADBC driver uses claims to make optimizations when many values are bound to an INSERT statement. There are some limitations to when this optimization can be made, but it does appear that in this case the code is already going through the connector's optimized path. Given this still doesn't offer the throughput we would expect, it seems reasonable to handle this on the ADBC side while addressing some of the connector's existing limitations.
The primary limitations we'd want our solution to overcome:

Currently each batch becomes its own temp stage. We would want to upload multiple (or all) batches to a single stage and load from there.
The connector relies on conversion to golang types which must then be loaded into a CSV for the stage. We could likely do a lot better with arrow type mapping by using parquet directly from arrow as the stage format.

Open question: Does adbc_ingest need to optimize ingestion of small tables as well? Currently the connector uses a single INSERT query without staging any files for very small tables. Using COPY in all cases might not perform well in these scenarios. Perhaps we can start with COPY in all cases and add better handling for small tables in the future if there are actually issues in these cases.

@lidavidm I think this issue can be closed and included in the 0.10.0 milestone. The PR merged a few weeks ago but I forgot to update here. There are some follow-up tasks captured in other issues but they should not have a meaningful impact on the scope discussed here.

The 0.10.0 docs contain details + microbenchmark for expected performance using the new approach.


Workflow Cleanup

Proposed Changes
I would like to clean up the naming and organization of the automated workflows.
Justification
This update will give better naming to workflow jobs as well as the workflow names themselves.

Resolved by #13


raidemulator: Add support for watchCombatant

This one ended up being significantly more complicated than I was hoping.
This PR:

Adds an override for watchCombatant for raidemulator to use
Modifies the way PopupTextAnalysis tracks trigger promise resolution to not block waiting for a promise to resolve
Refactors the way RaidEmulatorOverlayApiHook handles getCombatants to let other classes call it
Adds a new class to override watchCombatant

Technically these 4 could be separate sequential PRs but considering how small 1/2/3 would be, I didn't think it was really worth splitting them up.
There's some sort of bug with resolved timestamp display, e.g. this trigger actually resolved at 1:05 into the pull:

So this isn't quite ready to merge yet (or that bug can be fixed in a later PR), I just wanted to get it open for feedback.
edit
Issue with resolved offset should be fixed now.

Okay. Something has gone really wrong with that attempt to rebase. Let me see if I can fix this...

Thank you for getting back to this!


Custom lags function

This is the "custom" version of the lags() function I created some time ago. I also added a regression test for it.

Thanks @NablaAnalytics.  I have a few stylistic comments, but otherwise this looks good.  Also, a heads up that this will probably need to be rebased after #74, which allows TimeSeries keys to have types other than String.  With that change, lags on a TimeSeries[K] will return a TimeSeries[(K, Int)] where the int is the lag order.  Curious to hear your thoughts on this and whether it presents any problems for you.

Makes sense to have a more generic approach to keys. I have no foreseeable issues with that on my side -- as it's only a more generic implementation of the specific case I was already using.

Although, come to think of it, it implies we'll need a new key generation logic for other types of keys when lagging them. What I mean by that is that right now it prepends "lag_" to the original key of the time series when adding a lag of it. But with the new change, let's say the key is a numeric type, it means we'll essentially have to discover the next free numeric value in the multivariate time series set and use that value for the new key of each generated lag (or maybe some other kind of logic).

Maybe the key generation function for lags will have to be passed as parameter by the caller, in the future?

But with the new change, let's say the key is a numeric type, it means we'll essentially have to discover the next free numeric value in the multivariate time series set and use that value for the new key of each generated lag (or maybe some other kind of logic).

Mind explaining this in a little more detail?  If our original time series has keys 4, 2, and 10, and we lag everything twice, my proposal is that we'd get a time series with keys (4, 0), (4, 1), (4, 2), (2, 0), (2, 1), (2, 2), (10, 0), (10, 1), (10, 2).  Where the 0 indicates that there's no lag.  Are you saying this is problematic because we'd like to preserve the original key for the not-lagged series?

I see. So what you're proposing is that if the keys are numeric, and we apply the lags function on that time series, the output time series' keys will instead be tuples where the first value was the original key value, and the second value is a number representing the lag?

That's right.  What do you think of this?

I think my main concern with that is -- okay, now we have something for string type, and we have something for numeric types. But what if the key is yet another type (although it's hard to imagine a use case for non-alphanumeric keys)? Wouldn't it be more generic and flexible if instead we let the caller pass a function that applies the transformation to the key?
Also maybe it's weird for some users that keys that were previously of a numeric type suddenly become a composite type such as a tuple? Maybe their calling code should be agnostic to whether the time series has been lagged or not (i.e. work on one type -- the numeric type, without having to require specific code that would work on tuples)?
What you're proposing is a quick & easy short-term solution -- I'm not sure if in the grand scheme of things it's the best option though.

So we could have a core function that takes as parameter a function that does the custom transformation -- and then we could implement wrapper functions for the 2 most common types of keys -- String and Numeric -- that do what you've proposed by calling that core function with the appropriate transformation function. This way we offer both the developer-friendliness of pre-existing recipes, and the flexibility of customizing your own if needed.

@ahmed-mahran looping you in here in case you have an opinion

Nothing about the proposed tuple approach (K goes to (K, Int)) is specific to numeric types.  My thought was that this would work do this for all types, whether numeric, string or something else.  An alternative is the approach that @ahmed-mahran proposed in his earlier patch, where, when calling the lags method the user is asked to supply a function (k: K, lag: Int) => U, which is used to determine the key in the result.  Do you think this would be preferable?  I'm not strongly opposed. My thought was that users could ultimately achieve this behavior by map ing the returned RDD and transforming the tuples.

Sorry I missed the conversation here
I share @NablaAnalytics's opinion; the caller most probably would expect the returned TimeSeries would use the same key type as the original TimeSeries. However, it is not always possible (or straightforward) to achieve that hence a generic solution like @sryza's is plausible.
Trying to achieve both goals (homogeneity and  generality), let's consider the possible key types:

String: it would be possible to provide a string generating function given a string and a lag order; say the method can concatenate the string with the lag order.
Numeric: finding a formula to generate another int key from the original key and the lag order might not be straightforward.
A more complex but an owned source type: the user can add lag attribute to the type and then provide a key generating function that sets the lag attribute.
Otherwise, it would be much challenging (extension, implicit conversions ...)

Here is my proposal:
How about returning TimeSeries[U]?
  def lags[U: ClassTag](maxLag: Int, includeOriginals: Boolean,
      laggedKey: (K, Int) => U = laggedPairKey[K]_)
    : TimeSeries[U] = {
.
.
.
object TimeSeries {
  def laggedStringKey(key: String, lagOrder: Int): String =
    if (lagOrder > 0) s"lag${lagOrder}($key)" else key

  def laggedPairKey[K](key: K, lagOrder: Int): (K, Int) = (key, lagOrder)

That way callers are free to provide whatever a key generating function hence achieving the generality goal. However, in order to achieve the homogeneity goal, using the lag API, the caller must be using a laggable key, and I think this should be highlighted in doc. A possible custom key could have a lag attribute and the caller would provide a function that sets that attribute.

... (although it's hard to imagine a use case for non-alphanumeric keys) ... @NablaAnalytics

You may check this comment https://github.com/cloudera/spark-timeseries/pull/70#issuecomment-148947056

@ahmed-mahran 's proposal is essentially what I had in mind.
One tiny concern: what if my key conversion logic is supposed to be that I just want to use the next available numeric value? How do I indicate that in the transformation function (since it doesn't have context information about the other keys)?
For example, let's say I want my keys to basically be indexes into the TimeSeries -- so I have variables 1, 2, 3 and 4. Now I lag variable 1, and I want the key of the lagged value of 1 to be 5, because it's the next available spot. It seems to me like it would be the most common/logical use case for numeric key types. Should we add the array of current keys to the parameters of the transformation function?

@NablaAnalytics I think that would be a less generic use case. However, the caller still has the possibility of implementing such logic; using closures, it is possible to reference other variables outside of the key generating function's scope. Inside the user defined key generating function, the user can access the list of keys, a singleton sequence, or whatever appropriate.

While retro-fitting the code to use TimeSeries[U], etc. I ran into the "Error:(24, 7) in class TimeSeries, multiple overloaded alternatives of method lags define default arguments.
class TimeSeries[K](val index: DateTimeIndex, val data: DenseMatrix[Double]," error. I'm not clear if there is a simple workaround, but what I did was rename the custom lags function to lagsPerColumn. Any concerns or better ideas?

lagsPerColumn seems like a good name to me

I retrofitted the lagsPerColumn function to use the type-generic approach as discussed.

LGTM.  Merging this.


Cannot start 2 recipes in parralel

If they use the same port, we assume the first one use the port because it is free but the second one may think the same if the build of image is long or starting the server is long.
We should use random ports in all cases

Another solution is to server.listen(0) to get a random port, close the server, and reuse the port immediately.


Archive MSBuild logs on job failure

The build logs are often most interesting when the build fails, so we should be capture them regardless of job failure.
Noticed this when trying to investigate the Ubuntu failure on #629.

LGTM


gggrid does not share labels

I am not sure I am doing it correctly
I would expect following code to produe grid with the shared x and y labels, but it does not.
plot1 = ggplot({"x": [1, 2, 3], "y": [4, 5, 6]}) + geom_point(aes("x", "y"))
plot2 = ggplot({"x": [2, 3, 4], "y": [6, 7, 8]}) + geom_point(aes("x", "y"))
plot3 = ggplot({"x": [1, 2, 3], "y": [4, 5, 6]}) + geom_point(aes("x", "y"))
plot4 = ggplot({"x": [2, 3, 4], "y": [6, 7, 8]}) + geom_point(aes("x", "y"))

grid = gggrid([plot1, plot2, plot3, plot4], ncol=2, sharex="all", sharey="all")

grid = grid + theme_classic()+ ggsize(600, 400)+theme(axis_title=element_text(size=20,face="bold"))
grid

Is this the intended behavior, if so is there way to share x and y labels? Note that, I tried with grid+labs() which raise an error.

sharex, sharey only align limits along respective axis. Any further adjustments if needed you will have to do for each plot in grid individually, using theme(), labs() etc.

Thanks for the clarification, I guess there is no way to add common xy labels like in the seaborn.


Object can't have two owners?

I have two different objects witch can own the same object.
response 1 for MyManagedObject
[
	{
		id: 3,
		cat: {
			id: 1 // id the same
		}
	}
...
]

response 2 for MyOtherManagedObject
[
	{
		id: 15,
		cat: {
			id: 1 // id the same
		}
	}
...
]

cat has "id" as primary key, so will my two NSManagedObjects have objects "cat" or no? Because i have strange issue now, i have many objects with cats inside, but one dog has nil cat, i think that somewhere was created cat with the same id so new one wasn't created and my object doesn't has cat, or reference on cat, am i right? Thank you.

JSON you posted is invalid, you can't have dictionary with same keys on the same level.
Anyway, multiple owners are of course supported if you are mapping into CoreData. If you have object in original JSON, you should have object after mapping operation.

Sorry for poor JSON, i have updated it, i forget to say that i map in to CoreData, may be i need to set some other properties for relationship?

I'm not sure, but you should get reference to the same object in CoreData, not nil.

well, if i remove primaryKey my cat creates, but as i understand it creates twice...

well the problem was in inverse relationship, i don't understand why, but after i removed inverse my object has two owners, i check memory references on both objects, they were the same.
P.S. You can close issue, if you have any assumptions, say it, thank you.

UDP: Hah! Problem was not in inverse relationship! Problem was that my inverse relationship was "to one", so i can have only one owner, i put back all my inverse relationships and made them "to many" and it's working! Thank you!

Oh, indeed) Probably when CoreData sees One-To-One Relationship, it replaces old one instead of creating relationship.


update hfuzz binary

Codecov Report

Merging #274 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #274   +/-   ##
=======================================
  Coverage   77.79%   77.79%
=======================================
  Files          26       26
  Lines        6516     6516
=======================================
  Hits         5069     5069
  Misses       1447     1447

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 0ee650f...1d7d3f3. Read the comment docs.


Bool vectors in one bit per bit

I've pushed a commit that switches from calling setByteArray# with notI 0 to 0xFF because it's unclear what guarantees GHC makes about whether or not the former is acceptable. Merging.


Add | operator

Adds a synonym for orElse, which is common in parsing libraries.

Codecov Report

Merging #130 (b763524) into main (7811045) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #130      +/-   ##
==========================================
- Coverage   94.73%   94.62%   -0.11%
==========================================
  Files           7        7
  Lines         873      875       +2
  Branches       82       78       -4
==========================================
+ Hits          827      828       +1
- Misses         46       47       +1

Impacted Files
Coverage Δ

core/shared/src/main/scala/cats/parse/Parser.scala
94.83% <100.00%> (-0.13%)
:arrow_down:

...ore/shared/src/main/scala/cats/parse/Rfc5234.scala
100.00% <100.00%> (ø)

core/shared/src/main/scala/cats/parse/SemVer.scala
91.66% <100.00%> (ø)

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 7811045...b763524. Read the comment docs.

@martijnhoekstra @regadas
Hey folks, take a look at this. My anxiety about having two orElse methods seemed to have some truth to it... It looks like on 2.12, you can't mix a Parser0 and a Parser with orElse (or |). It seems that it works if both arguments are the same type.
So, to me, that suggests we should add orElse0 for Parser0 (removing orElse on Parser0), and then make | the operator only work when both arguments are Parser.
What do you think?

That's really sad. Is it a bug in the overload resolution of 2.12 for abstract types, or does it happen with all types? I'll poke at it a bit this afternoon.

Yea, from a quick look this seems to be an issue with the dependent type in GenT. 2.12 seems to have issues with p2.A >: p1.A
    forAll(ParserGen.gen, ParserGen.gen0) { (p1, p2) =>
      val asd = p1.fa.orElse(p2.fa.asInstanceOf[Parser0[p1.A]])
      assertEquals(asd, p1.fa | p2.fa.asInstanceOf[Parser0[p1.A]])
    }

regular stuff works fine
Parser.string("a") | Parser.string0("b")

Given that this is 2.12 specific and "normal" use cases are fine, I'm wondering if this issue is worth the extra API juggling and | available only on Parser.

good catch @regadas -- this is really about those generators not the Parser0/Parser types. If I ascribe a type, it seems to work.
So, I think this should probably be okay to merge.

okay, this seems to pass and i guess was just a bug with the path dependent type.
Any objection to merge?


[v2.6] KDM Update for K8s September patch release

KDM Updates
TO BE RELEASED: Rancher v2.6.1

New Kubernetes Version
Min Rancher Version
Min RKE Version

1.21.5-rancher1-1
n/a
n/a

1.20.11-rancher1-1
2.5.6-rc0
1.2.0-rc0

1.19.15-rancher1-1
2.5.0-rc0
1.2.0-rc0

Rancher System Images & Add-ons
Note: Please update system images and add-ons in the template as needed.
TBD
Developer Changelog

Add templates for new K8s versions. If a template that hasn't been released yet already exists, update it in place.
Update the default K8s version, and add or update the version information (MinRancherVersion and MinRKEVersion) in k8s_version_info.go for new K8s versions if needed (Use table from above).
Confirm versions for system images, add-on templates are correct using versioning reference table from below (expand details to view the table). Update the table if new versions are introduced.
Confirm add-on template version constraints in template.go are correct using versioning reference table from below (expand details to view the table). Update the table if needed.

Versioning Reference

Expand for system images & add-on templates versioning table

Note: Truncated repository names with a * indicates there are multiple images with that prefix. All repository names that match a truncated prefix should be checked for the same version stated in the table.
For example: rancher/weave-* matches weaveworks/weave-kube and weaveworks/weave-npc, and they should both have the same version.
v1.21.5-rancher1-1

Repository
Tag

rancher/mirrored-coreos-etcd
v3.4.16-rancher1

rancher/hyperkube
v1.21.5-rancher1

rancher/rke-tools
v0.1.78

rancher/mirrored-k8s-dns-*
1.17.4

rancher/mirrored-cluster-proportional-autoscaler
1.8.3

rancher/mirrored-coreos-flannel
v0.14.0

rancher/flannel-cni
v0.3.0-rancher6

rancher/mirrored-calico-*
v3.19.1

weaveworks/weave-*
2.8.1

noiro/* (All ACI images)
<IP_ADDRESS>.1ae238a

rancher/mirrored-pause
3.4.1

rancher/nginx-ingress-controller
nginx-0.48.1-rancher1

rancher/mirrored-nginx-ingress-controller-defaultbackend
1.5-rancher1

rancher/mirrored-jettech-kube-webhook-certgen
v1.5.1

rancher/mirrored-metrics-server
v0.5.0

rancher/mirrored-coredns-coredns
1.8.4

rancher/mirrored-cluster-proportional-autoscaler
1.8.3

rancher/kubelet-pause
v0.1.6

rancher/mirrored-k8s-dns-node-cache
1.18.0

Add-on Name
Add-on Template Version Constraint

Calico
calicov319

Canal
canalv319

Flannel
flannelv0140

CoreDNS
coreDnsv183

KubeDNS
kubeDnsv116

MetricsServer
metricsServerv050

Weave
weavev120

Aci
aciv500

NginxIngress
nginxIngressv0481

Nodelocal
nodelocalv121

v1.20.11-rancher1-1

Repository
Tag

rancher/mirrored-coreos-etcd
v3.4.15-rancher1

rancher/hyperkube
v1.20.11-rancher1

rancher/rke-tools
v0.1.78

rancher/mirrored-k8s-dns-*
1.15.10

rancher/mirrored-cluster-proportional-autoscaler
1.8.1

rancher/coreos-flannel
v0.13.0-rancher1

rancher/flannel-cni
v0.3.0-rancher6

rancher/mirrored-calico-*
v3.17.2

rancher/mirrored-coreos-flannel
v0.13.0

rancher/mirrored-calico-pod2daemon-flexvol
v3.17.2

weaveworks/weave-kube
2.8.1

weaveworks/weave-npc
2.8.1

noiro/* (All ACI images)
<IP_ADDRESS>.1ae238a

rancher/mirrored-pause
3.2

rancher/nginx-ingress-controller
nginx-0.48.1-rancher1

rancher/mirrored-nginx-ingress-controller-defaultbackend
1.5-rancher1

rancher/mirrored-jettech-kube-webhook-certgen
v1.5.1

rancher/mirrored-metrics-server
v0.4.1

rancher/mirrored-coredns-coredns
1.8.0

rancher/mirrored-cluster-proportional-autoscaler
1.8.1

rancher/kubelet-pause
v0.1.6

rancher/mirrored-k8s-dns-node-cache
1.15.13

Add-on Name
Add-on Template Version Constraint

Calico
calicov3171

Canal
canalv3171

Flannel
flannelv116

CoreDNS
coreDnsv117

KubeDNS
kubeDnsv116

MetricsServer
metricsServerv120

Weave
weavev120

Aci
aciv500

NginxIngress
nginxIngressv0481

Nodelocal
nodelocalv115

v1.19.15-rancher1-1

Repository
Tag

rancher/mirrored-coreos-etcd
v3.4.15-rancher1

rancher/hyperkube
v1.19.15-rancher1

rancher/rke-tools
v0.1.78

rancher/rke-tools
v0.1.78

rancher/rke-tools
v0.1.78

rancher/rke-tools
v0.1.78

rancher/mirrored-k8s-dns-kube-dns
1.15.10

rancher/mirrored-k8s-dns-dnsmasq-nanny
1.15.10

rancher/mirrored-k8s-dns-sidecar
1.15.10

rancher/mirrored-cluster-proportional-autoscaler
1.8.1

rancher/mirrored-coreos-flannel
v0.13.0

rancher/flannel-cni
v0.3.0-rancher6

rancher/mirrored-calico-*
v3.16.5

rancher/coreos-flannel
v0.13.0-rancher1

rancher/mirrored-calico-pod2daemon-flexvol
v3.16.5

weaveworks/weave-*
2.7.0

noiro/* (All ACI images)
<IP_ADDRESS>.1ae238a

rancher/mirrored-pause
3.2

rancher/nginx-ingress-controller
nginx-0.48.1-rancher1

rancher/mirrored-nginx-ingress-controller-defaultbackend
1.5-rancher1

rancher/mirrored-jettech-kube-webhook-certgen
v1.5.1

rancher/mirrored-metrics-server
v0.3.6

rancher/mirrored-coredns-coredns
1.7.0

rancher/mirrored-cluster-proportional-autoscaler
1.8.1

rancher/kubelet-pause
v0.1.6

rancher/mirrored-k8s-dns-node-cache
1.15.13

Add-on Name
Add-on Template Version Constraint

Calico
calicov3165

Canal
canalv3165

Flannel
flannelv116

CoreDNS
coreDnsv117

KubeDNS
kubeDnsv116

MetricsServer
metricsServerv18

Weave
weavev116

Aci
aciv500

NginxIngress
nginxIngressV11512

Nodelocal
nodelocalv115

Verified on rancher v2.6.0
Fresh Install Checks

KDM pointing to dev-v2.6, cluster creation succeeds for for v1.19.15, v1.20.11 and v1.21.5 k8s versions with all network providers.
Validations of Network checks on all clusters look good.
Validation tests on Canal clusters look good.

Upgrade checks

On Rancher 2.6.0, KDM pointing to release-2.6, cluster creation succeeds for v1.19.14, v1.20.10 and v1.21.4 k8s versions with all network providers.
Pre-upgrade checks look good.
Pointed rke-metadata to dev-v2.6
Upgraded k8s version to new versions v1.19.15, v1.20.11 and v1.21.5
Post upgrade checks look good.

RKE check
Verified that default version is pointing to 1.21.5-rancher1-1
"RKEDefaultK8sVersions": {
"0.3": "v1.16.3-rancher1-1",
"default": "v1.21.5-rancher1-1"


Special Tokens

Create special tokens used by texar and forte

Codecov Report

Merging #2 (b810b44) into main (f0718f0) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage   84.73%   84.73%
=======================================
  Files           2        2
  Lines         190      190
=======================================
  Hits          161      161
  Misses         29       29

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 f0718f0...b810b44. Read the comment docs.


types should not be internal

Just like the above, types should not be internal, otherwise users can't customize their ProfileTypes.

Oh, we overlooked that. Thank you @smallnest for reporting the issue! Will be fixed ASAP.

Glad this issue exists! Tried to integrate the client, but can't even setup the profile types :)


How can i enable otg without touch?

My rp1's touch can't work, so i want to enable otg so that I can use the mouse to control it.  I found some phones can enable otg by add one line of code(# usb otg diskdev_mount usbotg /mnt/usbotg auto /devices/platform/mt_usb /devices/platform/musbfsh_hdrc) to /system/etc/vold.fstab,  dose this has same effect on rp1? How can i do this through diagnosis mode?

My RP1’s touchscreen sometimes fails to work too, but when I charge it, touchscreen always came back.

Feel free to build the image yourself. You need to modify the Android system image and it's not modifiable directly through diagnosis (it won't be persistant).


Add mods add <id> command

#41 was merged

There's a bug in the Mod struct, the user_id should be renamed to modID, not mod_id.
And also i found a bug in the API


Correct way to bring my data for object detection

Hi guys,
I hope you are doing great. Currently, flash support only voc/coco datasets for object detection
datamodule = ObjectDetectionData.from_coco(
    train_folder="data/coco128/images/train2017/",
    train_ann_file="data/coco128/annotations/instances_train2017.json",
    val_split=0.1,
    image_size=128,
)

What if I have my own dataset and I just want to bring it into? I only need to tell it you how to get an image and a label? Maybe I can subclass something and overwrite the correct methods or pass my own strategy. Is there a specific reason I am missing to not make the data pipeline extensible/composable? Thank you.
Cheers,
Francesco

Hi @FrancescoSaverioZuppichini Since we now have integration with IceVision, one option here is to create an icevision style parser and use it with the from_folders method. For example, in the instance segmentation example we use the pets data set from the icedata repo, which has it's own parser. Code for multiple custom object detection formats can be found in the icedata repo.
Regarding making this extensible / composable on the Flash side, that's definitely something we'd like to have. There is some ongoing work to make that cleaner / better in #821 please feel free to take a look at it and leave your thoughts :smiley:

@ethanwharris got it! This is identical to the issue for image classification. People cannot use their data! Are you sure there is not a way to create a DataModule that returns the correct data points in order to use flash in a real case scenario? Otherwise, I fear I'll have to write an adapter that formats my dataset into coco. It seems a little crazy to me that flash cannot be used in a custom real-case scenario, but probably I am missing something here.
It would be very easy to do so, just make a ObjectDetectionDataset that we can subclass with a function to return the image and a function to return the target, e.g. get_image, get_target, then we can easily create our DataModule. Let me know your thoughts :)


Mini Refactor to Adapt Some es2015 Language

Adapt some of es2015 features:

default parameters & exit with null default values being coerced to boolean by !.
Object.assign instead of .extend.
Whitespace to increase readability.

Sorry for taking a while to get back to this, there are some spacing issues I see (the linter from #21) should notify you. But very good, I'm excited to see if we can cut down on our payload size by initializing defaults hence removing redundant checks for existence.
Good job - fix the issues and the merge conflict and I'll accept. Thanks for the contribution.

@chrisrng , hey man, all good. Thanks for linking my additional of the es2015 language features without adding any value-added feature (yet).
My 2 cents are that if you add appropriate language features early in your code base to establish code safety & code pattern that you'd like to somewhat standardize so other developers would follow, if they'd like or agree with your pattern. It's also an opportunity to open up code debate topic, so that the developers can learn from each other.
So it's not total waist to time to do mini-refactoring whenever you have the time, or the muse, or you just get bored and want to code. :)

Closing this PR as it's been transferred to #24 .


[Setup] Only add bundler to the load path if we havent trampolined

@indirect this should fix the stack overflow bug!

@homu r+

:pushpin: Commit 64bc84e has been approved by indirect

:hourglass: Testing commit 64bc84e with merge 114d42b...

:sunny: Test successful - status


No show Color & Icon

This code works, but no show icons and color   ##title.
   let res = await this.$dialog.warning({
    title: 'Titulo',
    text: 'Cuerpo',
    persistent: true
  });
  if (res === undefined) {
    this.$dialog.notify.warning("Closed without select action");
  } else {
    this.$dialog.notify.info(`Your choice is ${res}`);
  }

Peraps something wrong in your vuetify and font installation. Please see example code. Information is too few for understand

This is my nuxt config of veutify plugin

Solved, missing add to the configuration
VIcon,
   VToolbar,
   VToolbarTitle,
Thank you so much


Doesn't use React?

Am I reading this right? I would have expected this to be written in composable, stateless and unidirectional React code???

Good point. I think that's a solid goal for a 2.0 release.

Just make sure the API is wildly different from 1.0.

I'm thinking message passing. Like, you send me a letter in the mail and then I pass it along to some people who will rewrite your commit history for you, in React, then pass it back to you.

May I recommend my continuous integration startup that uses TensorFlow to run deep analysis on commits?

I need me some unidirectional git blames

React is old, let's move forward with Elm and Datomic.

I heard CycleJS was the new new

Go via WebAssembly anyone?

@lwansbrough Nah, that's outdated. It should be:

Rust via WebAssembly

Should use ansible for deploy

Using React without a Flux architecture would result in scaling issues. Hence, I suggest we use Redux for sanity purpose. :shit:

@BilalBudhani Well the problem with Redux is that it wasn't developed by Facebook

+1

@lwansbrough Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks! :grin: :joy:


How to I query logs sent to log analytics

How to I query logs sent to log analytics? can you please add examples to the document.
I tried
ApplicationGatewayAccess
| limit  10
I got syntax error

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

ID: e5f080ad-843f-d7be-eba6-2837993d052b
Version Independent ID: b6f75acf-e3ed-f6c3-a29e-8f440eb0a9dd
Content: Monitor access logs, performance logs, back-end health, and metrics for Azure Application Gateway
Content Source: articles/application-gateway/application-gateway-diagnostics.md
Service: application-gateway
GitHub Login: @vhorne
Microsoft Alias: victorh

@tkumark , Thank you for your feedback. Will take a look and get back to you shortly.

Here is a sample query to get the Access Logs of Application Gateway:
AzureDiagnostics | where Category == "ApplicationGatewayAccessLog"

Let me know if you have any further questions.

@tkumark , Do you have any update in this issue?

Thanks this helps it would be better if it was documented in the article also

@tkumark , thank you for your feedback. The one which you asked for is documented here: https://docs.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-logs-stream-log-store#how-do-i-query-the-data-from-a-log-analytics-workspace


Binary reproducible manual using asciidoctor

As part of making NixOS image binary reproducible we've noticed that ninja manual is not binary reproducible since chapter titles get assigned auto-generated random id.
I'd suggest using asciidoctor.org that makes asciidoc documentation a breeze and fixes the issue by making auto-generated links derived from the title itself.
I've uploaded a demo of how manual would look without any tweaks using asciidoctor manual.asciidoc -o ninja.html.

If I understand it correctly: Fixed by #1529.


Undefined variable warning in with context of class level

Example:
import json

class A:
    with open('config/config.json') as f:
        CONFIG = json.load(f)

and it will provide:

If move the with statement up to package level or down to method level:
import json

with open('config/config.json') as f:
    CONFIG = json.load(f)

class A:
    pass

import json

class A:
    def a(self):
        with open('config/config.json') as f:
            return json.load(f)

it will be fine

Related issue: #775

The reason is that in class scope analyzer does not evaluate code as it does in global or function scopes. For performance reasons class is evaluated as

variable declarations
constructors
methods and properties

So with statement (or any other apart from annotated declarations and assignments) are not considered.
Is this a common case? I am a bit reluctant enabling full code evaluation in the class body. Any reason this fragment cannot be inside __init__?

Well, this config file is designed to load only once, then if it is in __init__ then it will load everytime the class gets initialized.
And this config is specialized to this class, if it is extracted to package layer then it will be visible to other parts or the package and polute the package namespace.
I don't know if this is a "good practice" but it suits the situation, so I hope the linter won't complained about it.
If there is performance issue, I hope there will be some flag to control whether this feature is enabled.
File-level comment (something like # python-server-enable: class-analyze at top of the file beneath the package docstring) would be good enough. Class level comment would be even better.
Don't know whether this suggestion suitable for this project, hope for more detail.

BTW: I can change the code to this style which is more 'standard-ish'

I would say that it is common practice to put some code in the class body. Adopting your code to fit a misbehaving linter doesn't feel right...
@MikhailArkhipov Is this really a measured performance issue? Intuitively, I would say this shouldn't make a significant difference.
If there is no code which is not in your current configuration (var declarations, constructors, methods) there shouldn't be a performance penalty and if you have some other code you actually want that to be properly evaluated.

I have noticed the same behaviour in one of my projects, and could reproduce it easily :

Has there been advancement on this issue ? I agree that this use case not extremely common, but it still is a bit annoying. Is there anything I can do to try and help ?


Design approach to exposing supervised field types in common ExtractedField type

For fields under DocumentResult, we'll want to expose both the field's text (directly from the form) and the strongly typed value (like DateTime, int, float, etc).  How can we do that without making the fields under ExtractedPage too complicated?
We might consider designing different, more advanced APIs for this.  We should work to deeply understand the customer scenario for this if we choose to do this.
Look for opportunity to use arch board guidance on custom serialization: https://github.com/Azure/azure-sdk/issues/997

[ ] For phone numbers

[ ] For floats

[ ] For ints

Additional comments from the FR APIView:
public class ExtractedReceipt {

| public IReadOnlyDictionary<string, ExtractedReceiptField> ExtractedFields { get; }
| public IReadOnlyList Items { get; }
| public string MerchantAddress { get; }
ctstone1 day agoCould we use generics for field values so that I can access the Value, Text, Confidence, and BoundingBox properties without using the dictionary ?

Won't do for preview 1.

Updated in new design.


schema checks at server start

The server should quit early if the Persistence Store database has a mismatched schema. Ideally, there'd be a check when the server initially connects to the database. Logging an error for a schema mismatch for the Visibility Store would also be valuable telemetry.
If this has already been implemented please go ahead and close. Otherwise if there's interest I'd be happy to take this on.

Server should quit early if the Persistence Store database has a mismatched schema.
This issue proposes that the Temporal server should exit early if it detects a schema mismatch with the Persistence Store database. Ideally, this check would occur when the server initially connects to the database. Additionally, logging an error for a schema mismatch for the Visibility Store would provide valuable telemetry.
This feature would improve server stability and prevent potential issues related to database schema mismatches.
Here's a breakdown of the proposal:
1. Early Exit on Schema Mismatch:

When the Temporal server starts, it should perform a schema validation check against the Persistence Store database.
If a mismatch is detected, the server should immediately exit, preventing any further processing and potential data corruption.

2. Logging Schema Mismatch Errors:

The server should log an error message whenever a schema mismatch is detected for both the Persistence Store and the Visibility Store.
These logs would provide valuable telemetry for identifying and resolving schema mismatch issues.

3. Implementation:

The implementation would likely involve adding a schema validation step during the database connection process. This could be achieved by querying the database for specific schema information and comparing it against the expected schema defined within the server.
Error logging would be achieved through the server's existing logging infrastructure.

4. Benefits:

Improved Server Stability: By exiting early on schema mismatch, the server prevents potential data corruption and ensures consistent behavior.
Early Problem Detection: Logging schema mismatch errors provides valuable telemetry for identifying and resolving schema issues promptly.
Simplified Debugging: Clear error messages and logs make it easier to troubleshoot schema related problems.

5. Existing Implementation:

It is unclear if this feature is currently implemented. The issue author suggests that if it has already been implemented, the issue should be closed. Otherwise, they are willing to contribute to the implementation.

6. References:

Temporal Server Configuration
Temporal Service
Persistence Store
Visibility Store

7. Next Steps:

If this feature is not yet implemented, the issue author should collaborate with the Temporal team to determine if it is feasible and desirable for the project.
The implementation should be tested thoroughly and documented appropriately.

This proposal aims to enhance the reliability and stability of the Temporal server by detecting and addressing schema mismatches with the Persistence Store and Visibility Store.

Thank you for the feature request! We appreciate you taking the time to share your idea with us.
While we don't currently have this feature, we think it would be valuable to ensure schema consistency and provide better telemetry.
For now, you can manually check the schema by using the temporal-sql-tool to query the database, and use the server logs to monitor for schema mismatches.
We will consider this for a future release.

Thank you for the feature request! It would be helpful to have the server quit early if there is a database schema mismatch.
One way to work around this limitation is to add a step to your deployment process that performs a schema validation check before starting the Temporal Server.  You can use a tool like temporal-sql-tool to compare your database schema with the expected schema provided in the Temporal repository.
We appreciate you bringing this to our attention and will consider adding schema validation functionality in future releases.

Thanks for reporting this issue! It's a great idea to have the server quit early if a schema mismatch is detected in the persistence store. Currently, Temporal doesn't have this feature, but you can manually check for schema mismatches by using temporal-sql-tool and comparing the current schema with the schemas found in the schema directory.


noVNC Audio Support in Browsers

Hello there,
First I'll like to thank you for such an awesome image. I'm doing some test runs using this image (jlesage/baseimage-gui:alpine-3.17-v4) for my container where I would like to play audio from my app (i.e., Audacity).
I'm wondering, what do I need to get the audio to work? I have installed the following packages:
RUN \
    add-pkg audacity ffmpeg font-dejavu \
    dbus-openrc pulseaudio pulseaudio-alsa alsa-plugins-pulse alsa-lib-dev

I see that you have added audify.js, pcm-player.js, script.js for noVNC, but have not been build & installed as ws & audify.
Any help on this will be appreciated.
Regards,
XxAcielxX

Currently, there is no support for audio playing through the web browser.  There only way that could work right now is playing audio through the host running the container.

I see that you have added audify.js, pcm-player.js, script.js for noVNC, but have not been build & installed as ws & audify.

Where do you see that ?

Ok so ws and audify is something that you added yourself (it's not part of the official image).
Do you have any pointer/documentation/recipe about what you try to achieve ?

I took this image https://github.com/novaspirit/Alpine_xfce4_noVNC by Don of Novaspirittech as my reference. If you test run this container, you'll see the the audio works flawlessly for browser(s) vnc.
Though I want to use JWM for the lightweight image for a single app usage.
It is like use pulseaudio to pipe the audio the tcp then pipe it again through the noVNC websocket.

Ok, this is one of the solutions used to send audio using a side-channel.
Note that I'm working in integrating a such solution into the baseimage.

That will be great, I'll wait for your update.
Do make it like we could enable audio support when required with an environment. Something like ENABLE_WEB_AUDIO=1, like people who need audio can use it and those who don't, doesn't get the required packages installed.

Currently, there is no support for audio playing through the web browser. There only way that could work right now is playing audio through the host running the container.

I see that you have added audify.js, pcm-player.js, script.js for noVNC, but have not been build & installed as ws & audify.

Where do you see that ?

How would I go about for gettings audio from the host machine? Any examples?

It depends on your application, but adding --device /dev/snd when creating the container might be sufficient.
It's also possible via pulse audio:
https://medium.com/@18bhavyasharma/enabling-sound-card-access-in-docker-containers-using-pulseaudio-d52ff1f5eee4

Been tinkering with it now. Both PulseAudio and PipeWire seems to be okay options. But seems very compersome to make a unified image that will work on Linux, MacOS and Windows since the prerequirements are too big.
Might look into making web audio work instead. Any pointers to get me started? If i'm able to make it work i'll make a PR.

Correct, audio on the host is not a solution.
I'm already working on adding support for audio through the web and this is a feature that should be available soon.  I just need to figure out why with some browsers the audio lag might increase over time.

Do you perhaps have a fork for this release already?
fre 16 feb. 2024 kl. 15:45 skrev Jocelyn Le Sage @.***>:

Correct, audio on the host is not a solution.
I'm already working on adding support for audio through the web and this
is a feature that should be available soon. I just need to figure out why
with some browsers the audio lag might increase over time.
—
Reply to this email directly, view it on GitHub
https://github.com/jlesage/docker-baseimage-gui/issues/83#issuecomment-1948516303,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACK6WJZ4QO375MTICIWB36TYT5WJ3AVCNFSM6AAAAAASYERGQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBYGUYTMMZQGM
.
You are receiving this because you commented.Message ID:
@.***>

Audio via web browser is now supported with the latest version of the baseimage.

Thank you. Much appreciated!

Much appreciated, thank you


Several important fixes for beta4

Fix socket error in autoupdate (Check if socket exists)
Add missing translation string for core permission
Fix KeyError in extract_default_password function in users/views.py
Improve Pagination. Fix users list for users without can_see_extra_data permissions.
Limit the number of users in ui-select field
Fix csv header names in users import help text.
Use config options (enable logo/title) on projector.
Nicer font style for main and sub items on agenda slide.
Fix JS error if this.groups is undefined for anonymous.

@normanjaeckel please merge asap, that i can prepare 2.0beta4 today! Thx.

@normanjaeckel I'll merge now that I can begin updating translations. If you have remarks I'll fix it later.

Ok.


[CI] Do not run full tests when using unpacked shards

Alternative to #321.  Not a great solution, but at least we can get some tests to actually run.
Close #321.

So the problem wasn't disk space after all :confused:

I wonder if it's just squashfs= false that's broken. But we only test it in 1.7?

Can someone try running that config locally to see if it passes?

Can someone try running that config locally to see if it passes?

Yesterday I ran the tests with
export BINARYBUILDER_FULL_SHARD_TEST=true
export BINARYBUILDER_RUNNER=unprivileged
export BINARYBUILDER_USE_SQUASHFS=false

and the full suite was successful for me.  I could see all the shards being downloaded one by one, no one failed to be installed.

I'll merge this PR after CI finishes.  I marked a failing test as broken (issue tracked by #347), there are some failing tests when using Clang, but as far as I understand they'll be fixed by #345 (and it's quite interesting this bug wasn't triggered by the compilers in the squashfs images :confused:).  After that PR, we should actually have green CI also for the no-squashfs runners.  Not running the full compiler suite isn't ideal, but it takes long time and we can't cache those shards, so another benefit of this PR is shorter CI time, too.

Ok, I further looked into #346: when using the full shard testsuite with julia v1.9 we get
  Unable to automatically download/install artifact 'GCCBootstrap-x86_64-linux-gnu.v9.1.0.x86_64-linux-musl.unpacked' from sources listed in '/home/runner/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/Artifacts.toml'.
  Sources attempted:
  - https://pkg.julialang.org/artifact/7e2927c9465a3b39a76029dd203cb225fc98fe1a
      Error: AssertionError: size == padded_size == 0
  - https://github.com/JuliaPackaging/Yggdrasil/releases/download/GCCBootstrap-v9.1.0+3/GCCBootstrap-x86_64-linux-gnu.v9.1.0.x86_64-linux-musl.unpacked.tar.gz
      Error: AssertionError: size == padded_size == 0

This error message typically indicates that there's indeed not enough space on disk to unpack the tarball (see https://github.com/JuliaIO/Tar.jl/pull/161), and the tests fail shortly after that point (there's another compiler shard being downloaded, maybe that one somehow manages to download before the failure).  However, if running only the offending testsuite, tests are successful, which suggests there isn't anything broken with the specific compiler shard being downloaded, and reinforces the hypothesis that the failure is only due to insufficient space on disk.
Thus, given the resources we're currently using I don't think we can do anything else apart from reducing the amount of compiler shards being downloaded when running the tests with the unpackaged images.


Skip API review package name approval for management plane packages

Package name approval check is enforced for management plane package also due to a recent bug that got introduced as part of recent script restructure to consolidate language specific script into common script.
This PR has changes to skip package name check for management plane libraries.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


May I know what license this repo is under?

Thank your for your issue!
I added LICENSE just now. This is MIT license.
https://github.com/tzmfreedom/rustforce/blob/main/LICENSE


Fix gradlew test not found issue

Description
Executing tests manually using ./gradlew test --tests=TestName throws test not found error.
This PR intends to fix the issue.
Error log:
$ ./gradlew test $GRADLE_TEST_ARGS --tests=AutocompleteTest
> Task :extractIncludeProto UP-TO-DATE
> Task :extractProto UP-TO-DATE
> Task :generateProto UP-TO-DATE
> Task :compileJava UP-TO-DATE
> Task :compileGroovy UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :extractIncludeTestProto UP-TO-DATE
> Task :extractTestProto UP-TO-DATE
> Task :generateTestProto NO-SOURCE
> Task :compileTestJava NO-SOURCE
> Task :compileTestGroovy UP-TO-DATE
> Task :processTestResources UP-TO-DATE
> Task :testClasses UP-TO-DATE
> Task :test FAILED
11 actionable tasks: 1 executed, 10 up-to-date

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> No tests found for given includes: [AutocompleteTest](--tests filter)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org/

BUILD FAILED in 878ms

Hi, @pratham-m
Thanks for your first contribution to stackrox!
Your change looks good to me, but I'd like to hear the opinion of my colleagues who work more closely with the testing framework.
cc: @gavin-stackrox

/ok-to-test

/retest-required

It looks like builds are not supported for external contributors and we'll need those to run the QA tests to ensure this change does not cause a regression. I'm looking for a resolution FYI @pratham-m.

Hi @pratham-m I've merged #4299, which was the copy of this PR in order to get CI to run. So this PR can be closed now.

Thanks @gavin-stackrox

Just for records -
the recently updated test framework (spock 1.x -> 2.x) #4135 might have caused the issue


Change cli libraries to github.com/ogier/pflag

The problem is in the help message generated by urfave/cli.
uniq2 does not have subcommand, however, urfave/cli print help subcommand in the help message.
I cannot customize the generated help message.
Therefore, I decide to change the cli libraries to github.com/ogier/pflag.

Done by #3.


Default pull mode seems different from V1, so getDigitalValue behaves differently

By default, V1 P0 reads 0 until connected to 3V, while V2 P0 reads 1 until connected to GND.
C++
#include "MicroBit.h"

MicroBit uBit;

int
main()
{
    uBit.init();

    while(1)
      uBit.display.printCharAsync( uBit.io.pin[0].getDigitalValue() ? '1' : '0');
}

MakeCode
basic.forever(function () {
    basic.showNumber(pins.digitalReadPin(DigitalPin.P0))
})

Thanks @martinwork
Yes, it looks like we're configured differently in the v2 target specification:
https://github.com/lancaster-university/codal-microbit-v2/blob/master/target.json#L26
Having that default pulldown in v1 was always a slightly contentious choice though (I remember much debate with the BBC)! This is an easy fix to align with v1, but tagging @jaustin here first just in case he's like to take this opportunity to make a breaking change or v2...
@jaustin? I presume would prefer to maintain consistency with v1 here?

I do want to maintain consistency, so my default response is definitely "yes align with V1".
I don't think I was part of the discussions first time around, though, is there something I'm missing that we're hiding or breaking with this default? Do you strongly want to make a case to change? I can't see why changing to some other default helps, and I think changing to NO_PULL gives us floating voltages and non-determinism.

right. The argument was between determinism for kids looking at voltages on pins. An input always reads as zero when nothing is connected to it was more intuitive to them.
The counter argument was that no-pull is more standard for engineers and accesssory makers.
I also think set to PullDown.

Also raised in micro:bit support #41704

This is causing confusion for users. If we are in agreement to maintain V1 compat, can this be implemented?

Hi @microbit-mark  - I thought this was applied ages ago:
https://github.com/lancaster-university/codal-microbit-v2/commit/ed5dc9857a098ffa6b0091a2edeceeb7465c2616
Are you still seeing recent reports?

It looks like NRF52Pin::getDigitalValue(void) assumes the pull mode bits in PIN_CNF have been set, and doesn't reset them from the pullMode member.

I guess changing it could have side effects in isTouched and getPulseUs.

Hmmm... if changing the default hasn't taken, then we need to trace through carefully.

If getDigitalValue() starts defaulting to PullDown, wherever getDigitalValue() occurs we need check it isn't assuming pullNone.
For what it's worth, all looks OK to me for getDigitalValue() to set the pull mode from pullMode (as in the DAL), except I'm not sure about NRF52SPI::config() and maybe NRF52Pin::getPulseUs().

Agree. It's just internal usage we need to be concerned about - outward usage would match v1. getPulse() was technically a v1 API too (we just pulled it down from MakeCode for v2), so historically should also have been using the default pull mode, right?

We had more reports of users hitting this difference in behaviour between v1 and v2. https://github.com/lancaster-university/codal-microbit-v2/issues/67 was originally opened from a support ticket.

@martinwork can you please confirm that as of the latest DAL this issue is still reproducable

@jaustin Still the same with freshly cloned microbit-v2-samples.

Fixed in v0.2.25

Retested... V1 and V2 behave the same.


Only read storage after origin check

A nit pick to https://github.com/paritytech/substrate/pull/11373

bot merge


bundled media should use any available iceParams from any other bundled media sections

fixes https://github.com/shinyoshiaki/werift-webrtc/issues/263

thanks!


[DB] Initial Table Ownership

Current Behavior
postgres versus meshery user
Desired Behavior
Ensure that initial database provisioning is executed under the desired user.
Or that ownership is subsequently changed.

Contributor Guides and Handbook

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation
Meshery documentation site and source
🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack
🧪 Meshery Test Plan Spreadsheet

Update: I haven't had a chance to test this yet. I am hoping to have this done by the end of this week.


[Recurring] Optimize k8s cluster resource usage

Note: As a recurring issue, this issue should always be open.
TODO(mattjmcnaughton) Determine how to track/organize recurring issues.
Issue
At a regular cadence, I want to ensure that my k8s cluster is making optimal usage of resources. In other words, I want to be paying as little as possible.
Impl
The first time I do this, I should create a check list. Possible ideas include...

Pods which can have their resource limits decreased (and as a result, decrease in the number of workers)
PVCs which can be decreased.
Convert EC2 instances from on-demand to spot or reserved.
Decrease EBS volumes mounted to nodes.
Merge services with individual ELBs onto shared ingress

Check out https://medium.com/kubecost/detect-overspending-by-measuring-idle-kubernetes-resources-d5d97eb205e0.


[ZEPPELIN-915] New registration mechanism applied to JDBCInterpreter

What is this PR for?
This PR applies the new interpreter registration mechanism to the JDBCInterpreter.
What type of PR is it?
Improvement
Todos

[x ] - Move interpreter registration properties from static block to interpreter-setting.json

What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-915
How should this be tested?

apply patch
rm -r interpreter/jdbc
mvn clean package -DskipTests -pl jdbc
bin/zeppelin-daemon.sh start
run some paragraph with simple sql queries

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

@ralphge Thanks for the contribution. I've tested and worked well. And CI failure is a temporary issue. Could you please re-trigger CI? It's OK to close and re-open this PR.

In addition to step for test, you should remove conf/interpreter.json before you start.

I re-triggered  the CI. The build was successful.

@ralphge thank you for stepping up and contributing this refactoring!
Looks great to me.

LGTM. Merging if there's no more discussion.

@ralphge Could you please tell me your jira id? I cannot find you on jira with your github id.
https://issues.apache.org/jira/browse/ZEPPELIN-915

It is ralphg only.


Extensible markdown notebook renderer api

Tracks adding an official API for extending markdown rendering in notebooks. Internally we've already implemented and shipped basic support for this, but this api is not suitable for public consumption
This is a follow up on #106701/#116393
Background
There are a range of different markdown flavors used across the various notebook ecosystems. Some notebooks support inline math formulas for example,  while others use specific markdown parsers with their own set of extensions/quirks
VS Code can not include all of the potential markdown features that a given notebook may want, so we instead plan to allow markdown rendering to be extended (and potentially replaced) by extensions. There are two main use cases we are interested in:

Augmentation: An extension wants to augment an existing markdown parsers with a simple new feature, such as :emoji: syntax support

Replacement: An notebook requires a fully custom renderer for markdown

Current state
With #106701, we added the ability to fully replace VS Code's built-in markdown rendering with a renderer provided by an extension. The new markdown rendering also happens entirely in the back layer webview of notebook (similar to output renderers).  At the moment, only built-in extensions can replace VS Code's markdown renderer
We are using this api to render notebook markdown with markdown-it provided by a built-in extension.
We also added an adhoc api that lets the markdown-it renderer load markdown-it plugins. We are using this to load katex and markdown-it-emoji support
Neither of these apis are ready for external consumption
Some open questions

Should we make this generic?
For example, instead of restricting this to markdown, are there notebooks out there that use plaintext or asciidoc for their inputs?
Should we have an "input renderer" API that matches how our "output renderer" api works

How do these features fit with kernels and the rest of notebook apis?
Should a kernel be able to specify which flavor of markdown it requires?
Does it make sense to let a separate extension add support for new markdown syntax like :emoji:, or should this always come from the notebook provider itself?

Does fully replacing our markdown rendering even make sense for anyone besides markdown it?
When a notebook ecosystem does use a specific markdown flavor, it is usually powered some non-js tool. This means we cannot load it in the webview, so at a minimum we'd have to provide some way to let the renderer call back to extension code so that it can run a native script. This sounds like a recipe for lots of delays with the rendering
I guess the main question is if markdown-it is flexible enough so that it could handle most of the (common) notebook use cases. If it is, we will not need to support fully replacing the markdown renderer

Sketch
Here's an approach I've prototyped for the api. This tries to support both replacement and augmentation of renderers, although we may ultimately decide that we only want to support extending a version of markdown-it that we ship (similar to what our built-in markdown extension supports)
Contribution point
For a renderer replacement:
"contributes": {
  "notebookMarkdownRenderer": [
    {
      "id": "markdownItRenderer", // Unique id of renderer
      "displayName": "Markdown it renderer", // Name shown to user in UI
      "entrypoint": "./notebook-out/index.js" // JS file loaded into the backlayer webview
    }
  ]
}

For a renderer that augments another one:
"contributes": {
  "notebookMarkdownRenderer": [
    {
      "id": "markdownItRenderer-emoji",
      "displayName": "Markdown it emoji renderer",
      "entrypoint": "./notebook-out/emoji.js",

      // The optional 'dependsOn' lets us know that this renderer should only be loaded if
      // 'markdownItRenderer' is being used
      "dependsOn": "markdownItRenderer"
    }
  ]
}

Entrypoints
First for an augmentation, in this case emoji:
// The entry point is a module with a `extendMarkdownIt` export

import type * as markdownIt from 'markdown-it';

const emoji = require('markdown-it-emoji');

// This function is involved by the markdown-it renderer once, before any markdown is rendered
//
// Here we are passed the markdown-it instance to augment
//
// This matches our markdown extension api: https://code.visualstudio.com/api/extension-guides/markdown-extension#adding-support-for-new-syntax-with-markdownit-plugins
export function extendMarkdownIt(md: markdownIt.MarkdownIt) {
    md.use(emoji);
}

Now for the markdown-it renderer itself, which fully replaces VS Code's markdown renderer:
// Again the entry point is a JS module

const MarkdownIt = require('markdown-it');

// Here we declare that the global notebook api exists
declare const acquireNotebookRendererApi: any;

// Our entry point module exports am `activate` method which is given
// a set of renderers that depend on it. This list is generated from the
// `depends-on` contribution property.
//
// In this example, `activate` would be passed the `emoji` module defined above
export async function activate(ctx: {
    dependencies: ReadonlyArray<{ entryPoint: any }>
}) {
    const markdownIt = new MarkdownIt({
        html: true
    });

    // Here we load all the extensions to markdown it
    for (const dep of ctx.dependencies) {
        try {
            dep.entryPoint?.extendsMarkdownIt?.(markdownIt);
        } catch (e) {
            console.error('Could not load markdown entryPoint', e);
        }
    }

    const notebook = acquireNotebookRendererApi('notebookCoreTestRenderer');

    // This is where we do the actual replacement of the markdown renderer currently
    //
    // Note: it would probably be better if this did not rely on a magical global event like this.
    // Could `activate` return the render method instead?
    notebook.onDidCreateMarkdown((markdownCtx: { element: HTMLElement, content: string }) => {
        // Render the markdown
        const rendered = markdownIt.render(markdownCtx.content);
        markdownCtx.element.innerHTML = rendered;
    });
}

Notable Problems

The above may be overly complicated. Specifically if we only need to support augmenting markdown-it, we don't have to standardize all the weird globals stuff going on in the entrypoint above

Still, it might be nice to define a proper api for replacing markdown renderers, even if we just use it internally. notebook.onDidCreateMarkdown is pretty ugly

It would be really nice if we could defer loading resources until we really need them (or at least not block notebook open because we are loading resources that are never used)
For example, if a notebook supports math but none of its cells use math, we should not load katex. We can quickly check if any of the cells may contain math equations just by seeing if they contain at least two dollar sign characters somewhere in the text

Should we make this generic?

This is an interesting thought. We have discussed if we should blur the line between code and markdown cells, e.g there is just cells with output and cells using the markdown language get a different cell editor

#121882 Implements the proposed API. Performance seems about the same
I also renamed the extension point from markdownRenderer to markupRenderers to prototype what a more generic api would look like

This will be very similar to "normal" output renderers. I like that direction and wonder if they can be the same at one point?

Just a quick note that we would find this API very useful, thanks for working on it :-)
We work with the Executable Books Project which builds the tool Jupyter Book. We're also maintaining a flavor of markdown called MyST Markdown, which has extensible syntax and features more suited for scientific communication.
We have a MyST Markdown renderer for VSCode, and plan to incorporate more MyST Markdown into Jupyter Notebooks. This API would let us do so in VSCode relatively easily via the markdown renderer above, which would be super cool 🎉

As requested @mjbvz
Please could we provide an API whereby the renderer can access Notebook Cell metadata when rendering Notebook markdown cells.

Will try this out and let you know, thanks


Moved link to "More packages from this author" under the package title

Merge after #1611
Fixes #1562
Moved the "more packages" link from (1) to (2)

Yes, this isn't the link to the repo and doesn't include the repo name 😅 but I still think it's going to be better overall #1560 is complete. I don't know how you've got on with it @finestructure, but in the time since we removed the repo link from under the package name I got used to using the "View on GitHub" link quite quickly, so I think this is probably a step forward.
I also think this is a much more logical place for a "more packages from this author" link. I remember wanting to put it here originally but I was unable to since the repo link was there.

Mmm, couldn't we just have a link
Quick / Nimble
below the package name? I feel it's too tempting to click on that and then end up on the package owner's page on Github which is probably not what people want in the vast majority of the cases. If we wanted to preserve that, we could make it two links
[Quick] / [Nimble]
I've adjust to clicking in the sidebar to get to the Github page but what I really miss is seeing the "owner / repo" spelled out. There are often packages with rather generic names and seeing the "url slug" in the familiar format is really helpful.
pointfreeco/swift-parsing
I know it's both there with this change but there's a lot of recognition in it being spelled out like you're used to.
Also, there are cases where package name and repo name are different. And because we're substituting in author names, we're "breaking" recognition. For example:

I think this would be more helpful/recognisable as
Navigator
flopshot/Navigator

I was so sure you'd like this! 😅
On the author name/author username issue, I feel quite strongly that we should use the owner's readable name here. It matches with the Package name (we don't use repository name, and that feels like the correct decision).
If you want the owner/repo displayed somewhere that's fine though, let me see where I can squeeze it in.

Complete brainfart on my end. I thought this was about the old package url link that we recently dropped 🤦
Completely agree on moving the author link over to the header! 👌


vswhere does not detect Visual Studio 2022 installations

Problem
vswhere.exe only returns information about Visual Studio 2019 and below.
Repro
I have two instances of VS 2022 installed on my machine:

And 1 instance of VS 2019:

However, vswhere only returns information about the VS 2019 installation:

This behavior repros with both 2.8.4 and 2.9.3-21bcdb639c.

@heaths I'm tracing an issue where vswhere doesn't detect Visual Studio Build Tools 2022
This is using the version bundled in azure-pipelines-agent v2.202.1
https://github.com/Microsoft/azure-pipelines-agent/releases

BuildTools 2022 are installed:

When running on another server with both Build Tools 2019 and 2022 I get this:

Adding the -prerelease parameter gives an error:

What is the proper way to have vswhere detect the VS Build Tools 2022?

Thanks for the prompt reply @heaths :). Unfortunately, for me it still fails to detect VS 2022 BuildTools with the latest vswhere.exe from the release page:

It also fails to detect it when there is only one BuildTools 2022 installed on the machine.

Yes, please open a new bug. But in your case, you specified -version [16.0,17.0) -latest. That version will only detect 16.x and will only show the latest. Seems it's working exactly as you specified.
See vswhere -help for documentation on the -version parameter.


mmol/L Ultra 2 and UltraMini meters store data in mg/dL (UPLOAD-547)

Addresses UPLOAD-547.

@krystophv One more approval needed now that I've removed the test suffix.


how to show latex formula in swiftUI

how to show latex formula in swiftUI

You can wrap the MTMathUILabel in a UIViewRepresentable.

Is there a way to make this work on a macOS app ?

Is there a way to make this work on a macOS app ?

Wrap it in a NSViewRepresentable.


Allow reusing access tokens when creating OmhAuthClient instance

Checklist

[x] I've checked the feature request list and there's no request created for this purpose
[x] I've tried discussing this first in the discussion section to find out if there's something similar implemented (Or checked it by myself)

Is your feature request related to a problem? Please describe.
With current API, it seems impossible to reuse the provider's access token across app sessions. This makes users need to login to the provider every time the app needs to call the service provider's APIs.
Describe the solution you'd like
It should be possible to specify an existing access token when constructing the auth client, so user doesn't need to login to the service provider every time. Underneath android-omh-auth can still call service provider to verify the access token, or request refresh if the token had been expired.
No need for android-omh-auth to consider where and how the access token is stored, although it is a nice-to-have.
Describe alternatives you've considered
N/A

@Nataliagros and @adamTrz PTAL. High priority.
CC - @prestonlau @itsme291

Hi @TranceLove
As far as I understand the issue, your goal is to be able to reuse the token between app sessions.
In the current android-omh-auth implementation it's supported:

via  GoogleSignIn.getLastSignedInAccount method for Google GMS Plugin
via AccessToken.getCurrentAccessToken method for Facebook
via EncryptedSharedPreferences for all other providers: Google Non-GMS, Dropbox and Microsoft

Below you can find two demos from Google-GMS and Dropbox that presents that access tokens stay the same between app launches:
https://github.com/user-attachments/assets/371ad630-7e3e-4162-9bcf-8743330db3fe
https://github.com/user-attachments/assets/af702d20-95fe-4c4a-9694-df01b31dead4
Additionally, I encourage to check out the sample app.

@TranceLove - I will close this issue but please feel free to reopen if the issue persists :)

Confirmed by @TranceLove. They managed to integrate it. Thanks @maciekBudzinski for the promptly answer.


WFLY-12072 Allow setting create-on-start / drop-on-exit on Infinispan JDBC tables

https://issues.jboss.org/browse/WFLY-12072

Retest this please.

@darranl Makes sense. I'll move that to a separate commit.

@darranl Done.

Needs model version bump, since this didn't make it into WF17.


driver.manage().window().maximize() doesn't work

Now works :/ I've been wrapped the function with fibers.

Why fibers?

I've used fibers for the previous lib. I'm migrating from webdriver from selenium

Do you mean selenium-wedriver?  You shouldn't need fibers with webdriver-sync at all.

Do you mean selenium-wedriver?

yes

You shouldn't need fibers with webdriver-sync at all.

I know, but the test framework was using fibers by default and didn't remember to remove them before using the sync.

Gotcha!  Nice.  What's making you switch to webdriver-sync?  Got tired of promises?

What's making you switch to webdriver-sync? Got tired of promises?

Of course, I never liked them. By the way your lib uses native node.js sync code, right? Isn't that blocking?
Related:
My server side code +2500 lines with async is moving to the fiber based approach. I can't think I even started with async. Is very noisy compared with fibers. 100 lines of async converted to 10 lines of fibers.

By the way your lib uses native node.js sync code, right? Isn't that blocking?

Correct.  It is blocking.  See the caveats section.

My server side code +2500 lines with async is moving to the fiber based approach. I can't think I even started with async. Is very noisy compared with fibers. 100 lines of async converted to 10 lines of fibers.

For some things sync makes much more sense to me than async.  Browser testing is one case where that is so.  For other things like webservers, async is awesome.

For some things sync makes much more sense to me than async. Browser testing is one case where that is so. For other things like webservers, async is awesome.

Fibers is not blocking but the syntax is sync. I have the best of both worlds. That's why I've asked you about considering to use fibers.

https://github.com/joeferner/node-java/issues/38

have you opened an issue on fibers too?

I haven't.


Remove deprecated .rvmrc in favor of .ruby-*

@czarneckid
.rvmrc is deprecated, according to the following deprecation message:
You are using '.rvmrc', it requires trusting, it is slower and it is not compatible with other ruby managers,
you can switch to '.ruby-version' using 'rvm rvmrc to ruby-version'
or ignore this warning with 'rvm rvmrc warning ignore /Users/jakeyesbeck/tassadar/.rvmrc',
'.rvmrc' will continue to be the default project file in RVM 1 and RVM 2,
to ignore the warning for all files run 'rvm rvmrc warning ignore all.rvmrcs'.

This uses .ruby-gemset and .ruby-version to tell rvm which gemset and version to use.

Works for me, thanks!


Remove prefers-color-scheme "no-preference".

The 'no-preference' value has been removed from the spec per resolution
in [1]. The appropriate web-platform-tests [2] have already been updated.
@mathiasbynens can you please review? Thanks.
[1] https://github.com/w3c/csswg-drafts/issues/3857#issuecomment-634779976
[2] https://github.com/web-platform-tests/wpt/pull/24024

Thanks!


[MTSRE-425] Refactoring ensureServiceMonitor w/adoption enablement for Service Monitors

Summary
The reconciliation phase ensuring that an addon's monitoring federation spec is properly defined in cluster was not "adopting" Service Monitors i.e. updating owner refs. Through fixing this issue a refactor seemed necessary and some other issues were identified/fixed:

Previous behavior would mark an addon as Pending if the Monitoring Namespace was not in it's active phase, but exit early potentially without error (if status update was success) and proceed with reconciliation. The result of this being that the Service Monitor would not be reconciled and the Addon would be moved back to Available if the reconciliation loop completed subsequent phases successfully.
ensureNamespaceWithLables was not properly applying labels for already owned addons whose labels had changed. Additionally the update was being made with the desired state object rather than the existing object retrieved from the API. This would potentially cause annotations or other fields to be lost. Despite fixing this the behavior was untangled and added directly to ensureMonitoringNamespace 1. Because it was likely a premature refactor 2. If for some reason the changes to ensureNamespaceWithLabels should be reverted than it's a simpler change.

/lgtm

/approve


Fixes regex backtracking bug detecting leading/trailing whitespace

This attempts to fix performance issues with large blocks of text in <code> blocks.
Attempting to convert HTML to markdown on large code blocks would trigger 100% CPU. I believe it's a regex backtracking issue with the following function:
function edgeWhitespace (string) {
  var m = string.match(/^(([ \t\r\n]*)(\s*))[\s\S]*?((\s*?)([ \t\r\n]*))$/);
    return {
      leading: m[1], // whole string for whitespace-only strings
      leadingAscii: m[2],
      leadingNonAscii: m[3],
      trailing: m[4], // empty for whitespace-only strings
      trailingNonAscii: m[5],
      trailingAscii: m[6]
    }
}

This PR refactors this function to avoid the non-greedy search for content in the middle.
I added a test to repro the issue, and prove the fix.

Ah, I love regexp performance :)... The main issue is the content selector. So the regexp can be sped up by simply forcing it to match content to start and end with non-whitespace character:
- var m = string.match(/^(([ \t\r\n]*)(\s*))[\s\S]*?((\s*?)([ \t\r\n]*))$/)
+ var m = string.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/)

Also maybe a little bit more readable would be do the matching separately (similar to the code in the PR):
function edgeWhitespace (string) {
    var leadMatch = string.match(/^(([ \t\r\n]*)(\s*))/);
    var textMatch = string.substring(leadMatch[0].length).match(/((?=\S)[\s\S]*\S)?/);
    var tailMatch = string.substring(leadMatch[0].length + textMatch[0].length).match(/((\s*?)([ \t\r\n]*))$/);
    return {
        leading: leadMatch[1], // whole string for whitespace-only strings
        leadingAscii: leadMatch[2],
        leadingNonAscii: leadMatch[3],
        trailing: tailMatch[1], // empty for whitespace-only strings
        trailingNonAscii: tailMatch[2],
        trailingAscii: tailMatch[3]
    };
}

Both these solutions seem to have the same performance as the code proposed by the PR.

Thank you guys for your contribution. I've created issue #429 to reference the problem.
I've also created a simplified and hopefully more readable version:
function edgeWhitespace (string) {
  var leadingMatch = string.match(/^([ \t\r\n]*)(\s*)/)
  var tailMatch = string.match(/\S(([^\S \t\r\n]*)([ \t\r\n]*))$/) || ['', '', '', '']

  return {
    leading: leadingMatch[0], // whole string for whitespace-only strings
    leadingAscii: leadingMatch[1],
    leadingNonAscii: leadingMatch[2],
    trailing: tailMatch[1], // empty for whitespace-only strings
    trailingNonAscii: tailMatch[2],
    trailingAscii: tailMatch[3]
  }
}

Remarks:

The non-greedy capture group catching the trimmed content (the biggest problem) is avoided using two regexp matchings.
The non-greedy capture group catching the trailing non-ASCII whitespace is rewritten as a greedy expression [^\S \t\r\n]*. This solution makes two regexp matchings sufficient.
I've also tried adding a whitespace-only string test and creating a substring for the latter match, but it didn't have any measurable performance effect. So not adding these micro-optimisations for now.

Feedback appreciated.

The non-greedy capture group catching the trailing non-ASCII whitespace is rewritten as a greedy expression [^\S \t\r\n]*. This solution makes two regexp matchings sufficient.

OK, this one has a bug. Will probably use a variant of @pavelhoral's single regexp version, as it will most likely perform better on typical inputs (the function is called for each node - paragraphs,  headings, list items, ...).

Awesome :) Just something to consider is the optimisation for whitespace inputs. We probably want to avoid running the trailing regex if the leading regex matches and the match is the same length as the input string. I don't believe there is value on progressing further and evaluating the trailing regex.

Released a fix of #429. Thank you for spotting the issue and all the thoughts on the fix.


The electron application doesn't seem to work.

I packaged an electron application following the instructions in README, but the application doesn't show  anything.

Hi,
Thank you so much for the feedback. The problem is caused by build. Electron app need to use a developer build of this demo. If you run npm run build -- --mode developer, it should work as expected.
I'll update the README to avoid any confusion in the future.


diacritical version of Wylie

There should probably be some way to convert the "scholar ewts" to Unicode, a few differences:

ṅa -> nga
ña -> nya
źa -> zha
śa -> sha
ḥa -> 'a (or H, depends)
ṃ (with dot below) -> M
m (with dot above) -> ~M
ā ī ū -> A I U
ṛ -> r-i
ṝ -> r-I
ḷ -> l-i
ḷ (with macron) -> l-I
- ->
handling strange case (rDo-rje)
using . instead of +
using ʹ or U+0060 instead of .
etc.

Paul Hackett has a converter to Unicode written in java I think but I don't see it anywhere online

There's a significant number of works with Cover Titles containing DWTS in the BDRC database. This one is an interesting example named Sṅags bcos beʼu bum phyogs bsgrigs /[sgrig pa po, Hum̐-chen daṅ Ñi-zla].. I'm not sure what the [ and ] are supposed to mean, but it exemplifies the use of diacritics on upper cased letters (Ñ) and some variants in the diacritics used (m̐). Note that a first pass could detect if common DWTS characters are present (ṅ, ñ, ś, etc.) and switch to DWTS mode if it's the case.


separate colors for keywords and brackets in JavaScript?

I'm trying to set the color of curly brackets to something else than what keywords like function use.
The only field that reacts to changes is this one:
Function { fg = pink2 }

which colors both the brackets and keywords.
Is there a separate setting for these in Lush for JavaScript? It doesn't do that in other languages like Rust.
Attempt

Desired

Lush can't actually define what/where groups are, only what colors they are if that makes sense. Nvim says for the javascript filetype,  function, { and } should be coloured by the Function highlight group, where as for the rust filetype it probably marks {, } as the Symbol group or something.
You'll have to look at what highlight groups are defined for Javascript, either in whatever plugin/core-plugin is defining those groups or maybe the treesitter grammar if you're using that.
You might be able to get some more specific help on the matrix chat or subreddit.

A typical syntax plugin defines all it's own groups according to the language itself, then it links all those groups to a predefined generic default set defined by VIM itself. This allows color schemes to take offect across most syntax plugins out of the box. It is not uncommon for there to be more fine grained matches in syntax plugins where more than one type of match is linked to the same general purpose group to fit it in standard color schemes.


Update thebrain9 cask to version <IP_ADDRESS>

Checklist

[x] The commit message includes the cask’s name and version.
[x] brew cask audit --download thebrain9 is error-free.
[x] brew cask style --fix thebrain9.rb left no offenses.

You are not adding a new cask. That section is not to fill.
Could you please tell us what is so unclear about that part of the instructions? You’re not the first person to fill it when they’re not supposed to, and I genuinely have no idea why.

...maybe because there is not an explicit instruction in case of a just a change version. At a certain point you are told to follow when you are adding a new cask.

there is not an explicit instruction in case of a just a change version

It’s the top of the checklist. The bottom tells you to fill it when adding a new cask (it’s even bolded). I still do not understand the confusion.
This is an honest question, I do not get while some people fill that section.


deleting of custom slot files before generating new ones

Coverage decreased (-0.9%) to 99.051% when pulling 675154d42898c7c821bbda84ff3318c668428e96 on remove-customSlots-from-dir into 425290af687f8ea9db0f4b4e11b2e720aa58c9c4 on master.

Coverage remained the same at 100.0% when pulling 092ddf89a7d46d738264e53b5b13a2cdadc11eae on remove-customSlots-from-dir into 425290af687f8ea9db0f4b4e11b2e720aa58c9c4 on master.


[DNM] Delta for Logging Performance

Do no merge. Delta view only.

Superseded by: https://github.com/AzureAD/microsoft-authentication-library-common-for-android/pull/632


Add travis for unit tests

So far integration tests are executed only.
Integration tests would require running OpenShift.
Fixes: https://github.com/kubevirt/web-ui/issues/4

The yarn test keeps hanging up. Unable to reproduce locally - works fine.
Maybe issue with the test itself, let's merge this and try on recent master #4 .

Tests keep hanging up in travis anyway. So reverting until resolved.


Make full featured Dockerfile

Add Maven and Java to Dockerfile, so user can only run Docker without building the project:
https://www.smashingmagazine.com/2022/07/using-nothing-but-docker-projects/

Not working


can not see any thing whitout cursor.

Describe the bug
It's ok when unity remote connected hololens, but i can not see any thing after deploy to hololen
To reproduce
Steps to reproduce the behavior:
1.Build scene InputManagerTest by unity Build;
2.visual studio open genereated .sln file;
3.deploy to hololens by USB;
4.open app in hololens but I can not see anything whitout cursor;
Screenshots

Your Setup (please complete the following information)
-Unity Version [e.g. 2018.3.12f1 ,2018.3.09f1 , 2018.4 ]
-HoloToolkit 2<IP_ADDRESS> - Refresh
Target Platform (please complete the following information)

HoloLens

HTK requires Unity 2017.4
Closing older HTK issue as we are no longer actively working on HTK.
Please upgrade to MRTK V2 for the latest fixes.

In your second screenshot, you should uncheck "WSA Holographic Remoting". That fixed this issue for a couple others.


Feature request: irregular shifts planning

Hi,
As Admin i can create shifts that repeat weekly. In my working context the required amount and type of shift per day changes regulary. I would llike to plan required (open) shifts for e.g. the next two weeks. To do so i could imagine to have to existing types of shifts as a word-cloud above the plan like this:

Where it is then possible to drag a given type to either open shifts or directly to a worker. Perhaps a click on the shift type would open a Menu where you can create a recuring shift like it is possible for Events in a Calendar (something like Monday to Friday for the next two weeks..).  This would enable to plan Shifts easily during a team meeting by just dragging shifts to peaple as they announce availability. Also the Admin could prepare open shifts for a given timeframe and the Team then could just grab their desired shifts.

Hi @tatrapikao,
if i've understand you correctly you want shift-types that have a variable amount per week (e.g. 7 shifts in week one and 12 in week two and 4 in week three)?
And a feature that a user can assign a unassigned shift to himself?

Hi @tatrapikao,
if i've understand you correctly you want shift-types that have a variable amount per week (e.g. 7 shifts in week one and 12 in week two and 4 in week three)? And a feature that a user can assign a unassigned shift to himself?

Hi @csoc-kevink.
Thats what i am suggesting - plus an UI element for the admin to allows to add the predefined Shift-types to the Plan via drag and drop to enable easy planning for the Shits-admin.

Hi @tatrapikao,
that sounds nice. We will look into the implementation in the future.
Drag&Drop is already available with the open shifts.


[Feature] Don't show bed leave messages after night has been skipped

What the title suggests. Bed leave messages would still pop up in chat, even after the night has been skipped. Doesn't happen always, but rather occasionally.

I'll do some testing with this on my server and see if I get the same behavior.

As a side note, clear-rain and clear-thunder don't seem to be working as well.

I haven't experienced either of these issues in the latest beta release.

I haven't experienced either of these issues in the latest beta release.
Oh, I should update to the beta and report back then.