Bug: XOR may not be compatible with Omit

Versions

package
version

typescript
5.3.3

ts-essentials
9.4.0

Repro Code
/** Existing types from ts-essential */
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;

// Types to highlight issue
type BaseBus = {
  wheels: number;
  capacity: number;
  id: string;
}

type PublicBus = BaseBus & {
  town: string;
}

type SchoolBus = BaseBus & {
  school: string;
  driver: string;
}

type Bus = XOR<PublicBus, SchoolBus>;

type BusWithLicensePlate = Omit<Bus, 'id'> & { licensePlate: string }

function checkBusType(bus: BusWithLicensePlate){
  if(bus.school){
    // bus should recognised as type SchoolBus
    bus.town // and this should throw error 🥲
    bus.driver // and this should `driver: string` instead of `driver?: string | undefined`
  }
}

TypeScript Playground
https://www.typescriptlang.org/play/?#code/FAegVGAECiAeCWBnALvAdgc0sgngBwFNFIAzAJwHsBbbRAWiMQLVQEMAbSMEYXQyAOrxkACwoBXZAB4AKgBpIAVQB8kALyQA3pADaABUjoYsAMbtxAEwJSA1gRwUSkeZDsOnKgLoB+AFyQ0AgA3AjJIAF8Abl58AkgADQB5ACVZBRV1Z0gAHyVIAlhkZgtiCgAjACsCE2RIb0gACiFRCWkXDIAyJQBKHMbmsUkpRQUZVS6ZXv8ZPsVo0BBnWOJkCkgReAwRdk2RWqREcQIY-gAhViZT8WINTWBISAB3EQICdkR-NHEqMtDoh5MrDwrBMwhwn2+vzI-0MFn8KDI6Aw0XCwBOcT04jKOxMVxukHOl2ukC6dweq0eaHhyERmBRaL4cQAyiYxBR2HjMoSCJzSfdIIhWRR2dTacj+RZESEyKKkfT0QTiRokqlMdj4LjrgoWWyOddlPNGYrEAMADIa5hMPTsVhFTKJKjCKR4hQAcngFld4y0kBxloI1ttBFlmAiaJI4jQNXgFDQkFZ1RseJksQaZWu-jxZotaCtNqK3TJhhIaeuADpBbrC-yHiBFuniIhBuwLJAyNUKBg0EgCK2LthYpAdcK9Yga5AG2WKXG65BWGhW6IkALm4uRJRHvkyJQwoA+DcATrvjyeS+DSyCz+dr5dNiQtyAAAxP0pDGHvhlzRVYrccD6foT8Ao0kifSRlYJDoL2978qi4RAA
Expected Result
if(bus.school){
    // bus should recognised as type SchoolBus
    bus.town // and this should throw error 🥲
    bus.driver // and this should `driver: string`
  }

Actual Result
if(bus.school){
    // bus is not recognised as type SchoolBus
    bus.town // and this is allowed and has type of 'town?: string | undefined'
    bus.driver // and this has a type of 'driver?: string | undefined' when in fact it is always a string
  }

Has anyone else ran into this issue before? Let me know if this is just a "me" problem 😅😅. This could also be considered an enhancement to the XOR type rather than a bug.

@arnard76 The problem lies with how BusWithLicensePlate type is being constructed. The Omit utility type is actually NOT a homomorphic type, so it doesn't work as expected with union types.
So, BusWithLicensePlate type is NOT actually the following:
type BusWithLicensePlate =
  | (Omit<PublicBus, "id"> & { licensePlate: string })
  | (Omit<SchoolBus, "id"> & { licensePlate: string });

Instead it's the following type:
type BusWithLicensePlate = {
    wheels: number;
    capacity: number;
    school?: string | undefined;
    driver?: string | undefined;
    town?: string | undefined;
    licensePlate: string;
}

This happens because Omit processes the union as a whole rather than distributing over each member of the union.
To address this, instead of using Omit, you can either use StrictOmit from ts-essentials or you can define your own version of Omit that works well with unions, like the following:
type BetterOmit<T, K> = {
  [P in keyof T as Exclude<P, K>]: T[P]; }
}

Now, when you narrow bus using the check, if (bus.school):

bus.driver would correctly narrow down to be of type string

However, bus.town would not throw an error because that's not how XOR is designed. If you notice the type of BusWithLicensePlate:
type BusWithLicensePlate = {
    wheels: number;
    capacity: number;
    school?: never;
    driver?: never;
    town: string;
    licensePlate: string;
} | {
    wheels: number;
    capacity: number;
    school: string;
    driver: string;
    town?: never;
    licensePlate: string;
}

Notice that both the union members have all the keys, and:

The first member has school and driver keys as ?: never (although the tooltip shows ?: undefined, which is technically the same thing)
and the second member has town as ?: never.

Therefore, even if you narrow down to the second member, you'd still be able to access town, it's just that it's type would be undefined.

Link to playground.
Hope that made some sense, @Beraliv might have more to add.

Also, it's better to replace the check if (bus.school) with if (typeof bus.school === "string"), because the former misses the case where bus.school is an empty string. So, with the former check, the else branch would NOT be narrowed correctly.

else is NOT narrowed correctly with if (bus.school) check

else is narrowed correctly with if (typeof bus.school === "string")

Thank you for your reply @som-sm, I understand the issue now. This is not a bug with XOR and I will try the upgraded Omit  instead.
Also, I appreciate your note at the end because I didn't notice that mistake 💯💯🙃🙃

@arnard76 If you really want bus.town to error out, you can consider switching to a discriminated union instead of XOR.
You can refer to this playground.

Oh cool, I didn't know unions could be used like that. Thanks!Is the idea to use XOR when there is no discriminate property?
-------- Original message --------From: Som Shekhar Mukherjee @.> Date: 18/11/2024  22:00  (GMT+12:00) To: ts-essentials/ts-essentials @.> Cc: Arnav @.>, Mention @.> Subject: Re: [ts-essentials/ts-essentials] Bug: XOR may not be compatible with Omit (Issue #420)
@arnard76 If you really want bus.town to error out, you can consider switching to a discriminated union instead of XOR.
You can refer to this playground.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Yup, XOR is helpful in situations where you either can’t or don’t want to add a discriminant property.

Ok cool, that makes sense
-------- Original message --------From: Som Shekhar Mukherjee @.> Date: 18/11/2024  22:14  (GMT+12:00) To: ts-essentials/ts-essentials @.> Cc: Arnav @.>, Mention @.> Subject: Re: [ts-essentials/ts-essentials] Bug: XOR may not be compatible with Omit (Issue #420)
Yup, XOR is helpful in situations where you either can’t or don’t want to add a discriminant property.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>


The wasi-sdk-20.0 for mingw contains an extra .m suffix

wasi-sdk-20.0.m-mingw.tar.gz's contained directory is named wasi-sdk-20.0.m rather than wasi-sdk-20.0. Is the additional .m intentional? If so, that means the wasi-sdk retrieval and use between Linux and mingw now differ which would require conditional logic in our make files between platforms.

I think what is going on here is that the version.sh script is appending an m to the version because the Git directory is changed:
https://github.com/WebAssembly/wasi-sdk/blob/c891cd2036d5630e67826f70aec9c0ba117c67e9/version.sh#L4
I don't know why this is, though. When I've hurriedly noticed this before I thought that it had something to do with the Windows action runners for CI — some difference between the Windows environment and the rest? I We could just rename this artifact, which I'm happy to do, but this would continue to happen in future releases. Are you interested in looking into this?

@abrown , I can take a look at it, but I wouldn't be able to start until 2023-04-21. If that works, then I would be happy to dig in.

Yeah, that would be great! (cc: @yamt or @eloparco who had a similar comment about this recently, IIRC).


fix(dal): ignore edges to deleted components

if the tail or head component is deleted for an edge in the export, don't export that edge.

bors r+


Add ap method and a simple test

This is a rehash of an unfinished part of #114. The implementation and examples there only work if all of the streams are synchronous.
I would still like to add some tests to validate the functionality.
per https://github.com/fantasyland/fantasy-land#apply

Still needs appropriate tests.

First of all, thanks for picking this up. I have a few comments.

The implementation and examples there only work if all of the streams are synchronous.

It's definitely possible to implement even this version of ap without requiring that the streams be synchronous. You just need the stream of functions to be finite (and ideally small). Basically, save all of the functions in an array, then apply them to the values. That said, I don't think this version of ap is a good fit for streams (see next).
I know that #114 says ap should "apply each of a stream of functions to each of a stream of values.", but that definition has always bothered me, since it doesn't handle infinite streams in an elegant way. For example, x.ap(_([f, g]) is the same as x.ap(_([f])) if x is an infinite stream, and x.ap(y) essentially leaks memory if y is infinite. Furthermore, it introduces a "bunching" behavior that seems suboptimal.
It turns out there are more than one implementation that will satisfy the fantasy-land spec.

Apply all functions to all values (interleaving the functions).
Apply all functions to all values (interleaving the value). I think this is what you've implemented.
Apply the latest function to the latest value. This is what most.js does. Credits to them for the inspiration.

(1) is slightly better than (2), since the stream being interleaved needs to be saved, and the stream of functions is likely to be shorter, it slightly more optimal to interleave the functions. That said, they both have the same limitation of throwing away (some) timing data.
In contrast, (3) doesn't. To illustrate, consider the streams (the numbers in the first row are seconds since the start).

Value
1
2
3
4
5
6
7

a
1

2

3

b

g1

g2

The outputs of the implementations look like this

u.ap(v)
1
2
3
4
5
6
7

Impl 1

g1(1)

g2(1), g1(2), g2(2)
g1(3), g2(3)

Impl 2

g1(1)

g1(2)
g1(3), g2(1), g2(2), g2(3), g3(1), g3(2), g3(3)

Impl 3

g1(1)

g1(2)
g2(1)
g2(3)

Notice the bunchings at t=6 and t=7. Meanwhile, even though stream a emitted a value at t=5, implementations 1 and 2 didn't reflect that at all. In fact, if a were this different stream, the output of those implementations would not change while the output of implementation 3 would.

Value
1
2
3
4
5
6
7

a'
1

2

3

So I would say implementation 3 has going it for it the following things

It preserves the most timing data (no bunching).
It handles infinite streams gracefully (both a and b can be infinite) with O(1) memory.
The interpretation of applying a time-varying function to a time-varying value is extremely elegant. It's not hard to think of a case where you'd need something like this, especially in the context of say, a UI. On the other hand, it's less clear why you would want to compute the cross product of a list of functions and a list of values.
It matches another streams implementation.

Given the above, I would like to implement ap using implementation 3 unless you have a strong argument against it.

I'm still going over the differences in implementations, but I think I should note that using .parallel(Infinity) seems to have been a mistake on my part because it does lead to the loss of timing data and bunching as you pointed out. When I use this I typically implement it with .merge(), which has the results I expect.
I've seen the most.js implementation and I can certainly see the elegance of latestU(latestA), however I'm unfamiliar with a use case where that's desired. I'm going to chalk that up to my unfamiliarity with streams in UIs.
If ap is implemented with .merge() instead of .parallel(Infinity), the results with infinite streams u and a look like this for me (I stretched t out a bit for my own clarification):

Value
1
2
3
4
5
6
7
8
9
10

a
1

2

3

4

b

g1

g2

g3

u.ap(v)
1
2
3
4
5
6
7
8
9
10

merge

g1(1)

g1(2)

g1(3), g2(3)

g1(4), g2(4), g3(4)

parallel

g1(1)

g1(2)

g1(3)

g1(4), g2(3), g2(4), g3(4)

You can see that the bunching becomes less pronounced and the timing is (more) preserved. This feels to me more like a half-step between Impl 2 and Impl 3 where all functions are applied to the most recent values.
I will take a stab at implementing something more like 3 so I can get a better perspective on the differences in the use cases I am familiar with.
Also, thanks so much for your thoughtful and informative response above!

Just for reference, my typical use case for this is to represent closures across a set of possible permutations. A closure could be operations on a database and the permutations could be the possible input values and possible database connection configurations. In these cases u is typically synchronous and finite, but there are times when it is both asynchronous and infinite.
const asyncFiniteStreamOfDbConnections = h.of(db => connect(db))
  .ap(syncFiniteStreamOfDbConfigs)

const asyncInfiniteStreamOfDocuments = h('msg', eventEmitter)

// store each message in ALL of the provided dbs, not just the latest
h.of(db => document => db.store(document))
  .ap(asyncFiniteStreamOfDbConnections)
  .ap(asyncInfiniteStreamOfDocuments)

In these cases I expect ap to be usable as in liftA2(f, [1, 2], [3, 4]) where the calls are:

f(1, 3)
f(1, 4)
f(2, 3)
f(2, 4)

Here's a rough alternative implementation that maybe you could weigh in on for comparison. It appears to me to behave similarly to most.js:
const ap = a => u => h([
  a.map(a => ({ a })),
  u.map(u => ({ u })),
]).merge()
  .scan1((x, y) => Object.assign({}, x, y))
  .filter(({ a, u }) => a && u)
  .map(({ a, u }) => u(a))

The timing and results:

Value
1
2
3
4
5
6
7
8
9
10

a
1

2

3

4

b

g1

g2

g3

u.ap(v)
1
2
3
4
5
6
7
8
9
10

events

g1(1)

g1(2)

g2(2)
g2(3)

g2(4), g3(4)

Sorry for letting this sleep here for so long.
@vqvu I'd be interested in your opinion on this implementation using higher-level highland functionality as well as what tests would be necessary to really prove this out.

Thanks for picking this back up! LGTM on the implementation. And sorry for not following through on this. It looks like I was the one who dropped the ball.
Re: tests

I think we'll want to add a test that validates the Fantasy Land spec. Specifically, that
v.ap(u.ap(a.map(f => g => x => f(g(x))))) is equivalent to v.ap(u).ap(a)

I think the reflect timing of value and function arrival test should also validate the timing aspect of things. Use a fake clock, increment it slowly, and verify that the values are being emitted at the right time. There's an example in the ratelimit tests.

Other than that, your tests look fine to me.

Looks like a transitive dependency of ours no longer works with node 0.10, and that's why Travis is complaining. I've locked nodeunit to version 0.11.2 as a workaround.

Also, I'm unsure what to update in https://github.com/caolan/highland/blob/master/CHANGELOG.md
Does this go under a 2.x version, or a 3.00-beta.x heading? Will this change appear in both?

Does this go under a 2.x version, or a 3.00-beta.x heading? Will this change appear in both?

This will go under a new 3.0.0-beta.7 heading. It won't appear in 2.x unless someone backports it to the 2.x branch, and I'm trying to keep new transforms from being added in 2.x (bugfix-only for that branch).


Making About Us Section

Description
 Designing About Section in concerning folder . Images in about section should stack upon each other and on hover over specific image, it should come in front (its stack order becomes greater than the others on hover over it using z-index), refer to the wireframe or screenshot attached below for better clarification .Styling to be done using bootstrap classes. Lets stick to the wireframe for now. (suggestions are welcomed! 😄) You can add any creative modifications.
Concerning Folder
https://github.com/houseofgeeks/hg/tree/front-end/client/src/components/Home/AboutUs
Screenshots/testimonials

closing against #40


Added generate_gutenberg_json.py

Committing as-is, could use some clean up but works with the caveats mentioned in the script

Cool, we can improve it later if need be.


Update 0.2.4

Codecov Report
Base: 76.64% // Head: 75.55% // Decreases project coverage by -1.09% :warning:

Coverage data is based on head (66f91fb) compared to base (a8499fe).
Patch coverage: 52.08% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #197      +/-   ##
==========================================
- Coverage   76.64%   75.55%   -1.09%
==========================================
  Files          53       56       +3
  Lines        1858     1947      +89
  Branches      268      288      +20
==========================================
+ Hits         1424     1471      +47
- Misses        346      384      +38
- Partials       88       92       +4

Flag
Coverage Δ

unittests
75.55% <52.08%> (-1.09%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

miv/io/intan/data.py
0.00% <0.00%> (ø)

miv/statistics/spiketrain_statistics.py
64.36% <21.21%> (-21.57%)
:arrow_down:

miv/io/data.py
73.46% <45.00%> (-3.62%)
:arrow_down:

miv/visualization/waveform.py
80.85% <50.00%> (-5.52%)
:arrow_down:

miv/core/spikestamps.py
68.75% <57.14%> (-3.25%)
:arrow_down:

miv/signal/similarity/dtw.py
57.14% <57.14%> (ø)

miv/signal/similarity/simple.py
83.33% <83.33%> (ø)

miv/io/binary.py
83.33% <100.00%> (+0.85%)
:arrow_up:

miv/io/protocol.py
75.00% <100.00%> (+2.77%)
:arrow_up:

miv/signal/similarity/__init__.py
100.00% <100.00%> (ø)

... and 5 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


support OpenShift local cluster

There are two primary changes in this PR (which should DCO compliant and simplified):

Add two new environment variables to enable installation on an OpenShift Local cluster. PROMETHEUS_DOMAIN and KEPLER_PROMETHEUS_URL.  Usage convention is added to the README.md file.
Fix an installation bug that causes the current working directory to take on an unexpected value on error conditions.  Specifically with the original code cd ${SUSQL_DIR} && make manifests && make install && cd -  if either of the make commands fail, the the current working directly will stay in ${SUSQK_DIR} and not return to the starting point as intended with cd -. The simplest solution to ensure that the final cd is executed is to separate it out on a separate line as follows:

cd ${SUSQL_DIR} && make manifests && make install
cd -

Signed-off-by: Scott Trent<EMAIL_ADDRESS>

Esteemed reviewers, I sent a request to multiple reviewers, though I think a single review is sufficient.
I basically cleaned up the original request. Squashed, and submitting this time from a branch so that the request does not continue to grow, and made sure that the commit was signed this time.  The good news is that PR also starts to address issue #6. (Of course, there is a lot of work remaining for #6 though...)

Since I need to pretty much rewrite everything, I am going to cancel this PR. And then submit a series of more specific requests.


Provide a single function that extracts audit data from an executable

Right now we have the full extraction pipeline in examples, which is not super complicated but is nevertheless manual.
rust-audit-info shows how it's all tied together; we should just put that into a function and make that a crate.

Happy to work on this as I need it

So the example on the frontpage of https://docs.rs/auditable-extract/ is straightforward enough and is customizable enough that I just ended up copy-pasting it all over the place with some tweaks. But perhaps it can be made more user-friendly.
I think the function should accept a slice, and leave reading the file (or memory-mapping it, or whatever) to the caller. Enforcing a decompression limit would be nice, but optional - I guess you could provide that as an argument, Option<usize>. A unified error would be handy, I guess. That's about it?
The function should go into the auditable-serde crate, since auditable-extract is intentionally very minimal, and should be feature-gated (albeit enabled by default).
I think that's it?

Or maybe just make rust-audit-info into a library and binary crate at the same time, and expose its functions that already have all sorts of limits implemented. That sounds like a good idea.

Yeah maybe we can do public higher level API that hides this stuff via implementation detail that has feature flags that what gets included. Just need the name for that higher level wrapper crate
The higher level API crate would also have some pub API semver guarantees

maybe auditable-info as crate name ?

Yeah that works, and is available on crates.io :+1:


Checksums didn't match for datasets on Google Drive

Describe the bug
Datasets hosted on Google Drive do not seem to work right now.
Loading them fails with a checksum error.
Steps to reproduce the bug
from datasets import load_dataset
for dataset in ["head_qa", "yelp_review_full"]:
  try:
    load_dataset(dataset)
  except Exception as exception:
    print("Error", dataset, exception)

Here is a colab.
Expected results
The datasets should be loaded.
Actual results
Downloading and preparing dataset head_qa/es (download: 75.69 MiB, generated: 2.86 MiB, post-processed: Unknown size, total: 78.55 MiB) to /root/.cache/huggingface/datasets/head_qa/es/1.1.0/583ab408e8baf54aab378c93715fadc4d8aa51b393e27c3484a877e2ac0278e9...
Error head_qa Checksums didn't match for dataset source files:
['https://drive.google.com/u/0/uc?export=download&id=1a_95N5zQQoUCq8IBNVZgziHbeM-QxG2t']
Downloading and preparing dataset yelp_review_full/yelp_review_full (download: 187.06 MiB, generated: 496.94 MiB, post-processed: Unknown size, total: 684.00 MiB) to /root/.cache/huggingface/datasets/yelp_review_full/yelp_review_full/1.0.0/13c31a618ba62568ec8572a222a283dfc29a6517776a3ac5945fb508877dde43...
Error yelp_review_full Checksums didn't match for dataset source files:
['https://drive.google.com/uc?export=download&id=0Bz8a_Dbh9QhbZlU4dXhHTFhZQU0']

Environment info

datasets version: 1.18.3
Platform: Linux-5.4.144+-x86_64-with-Ubuntu-18.04-bionic
Python version: 3.7.12
PyArrow version: 6.0.1

Hi @muelletm, thanks for reporting.
This issue was already reported and its root cause is a change in the Google Drive service. See:

#3786

We have already fixed it. See:

#3787

Until our next datasets library release, you can get this fix by installing our library from the GitHub master branch:
pip install git+https://github.com/huggingface/datasets#egg=datasets

Then, if you had previously tried to load the data and got the checksum error, you should force the redownload of the data (before the fix, you just downloaded and cached the virus scan warning page, instead of the data file):
data = datasets.load_dataset("wiki_lingua", name=language, split="train[:2000]", download_mode="force_redownload")


Measure Turnover Rate

Turnover rate: market-wide lease transfer rate during taxation period
Market-wide: treat each token as fungible for the purposes of calculating a turnover rate

Duplicate of https://github.com/721labs/partial-common-ownership/issues/22


fix(backup): skip loading the backingFile when doing backup or when user requests exporting the volume without backingFile

@ChanYiLin has awesome analysis that sometime we are still loading backing file layer on sle-micro ARM64 when doing backup link. This is not correct because we should skip loading backing file when doing backup
The current implementation relies on the assumption that file description of backingFile is always 0 and uses it to skip loading the backingFile layer: link . However, this assumption is not always correct. For example, with RAW backing image, fd is not 0. See more details at link . For qcow backing image, that assumption is correct because qcow image has hard coded to have FD 0 here https://github.com/longhorn/longhorn-engine/blob/04c645097a4a93e46f0f0391222895ea06b25456/pkg/qcow/libqcow.go#L84-L87
This PR propose a this fix which always skip loading backingFile and doesn't rely on the assumption that backing file has fd as 0
longhorn/longhorn#9209

Doing more testing

Hi @PhanLe1010
Thanks for your quick fix!
Can we then remove the fd=0 check in the LoadDiffDiskLocationList() since now we use a parameters isThereBackingFile to skip the BackingImage. Thanks

Can you help with the testing @ChanYiLin ?

@PhanLe1010 sure no problem!

Thanks @ChanYiLin for building the image jackfantasy/longhorn-engine:9209
I did some manual test and it passed on sle-micro ARM64
I will rely on you for the rest of the work. Thank you

Test test_system_backup_and_restore_volume_with_backingimage 20 times PASSED
https://ci.longhorn.io/job/private/job/longhorn-tests-regression/7451/

Test test_basic.py RUNNING

sle-micro arm64

https://ci.longhorn.io/job/private/job/longhorn-tests-regression/7453/console

@mergify backport v1.7.x

@mergify backport v1.6.x v1.5.x


Update Thor CLI options to respect ENV variables for default values

With the introduction of bin/jobs in #308, I noticed that it ignores the SOLID_QUEUE_CONFIG environment variable (and the recently introduced SOLID_QUEUE_RECURRING_SCHEDULE), while rails solid_queue:start still respects both of them.
This PR is my attempt to fix it.
Please let me know if it is worth adding tests for the SolidQueue::Cli.
Also, I hope that the direction is correct, although the logic duplicates default_options from SolidQueue::Configuration.

Oops, thank you! I had broken this, then fixed it, then broken it again 🤦🏻♀


webgpu: tidy build script

Add compile time flags, include only the needed tint header.

@jasnell Since you have lots of JSG experience – defining -fno-rtti -fno-exceptions for dawn should be safe as long as dawn types are not exposed to JSG (or other interfaces using RTTI) directly, right?

defining -fno-rtti -fno-exceptions for dawn should be safe as long as dawn types are not exposed to JSG (or other interfaces using RTTI) directly, right?

Correct.

defining -fno-rtti -fno-exceptions for dawn should be safe as long as dawn types are not exposed to JSG (or other interfaces using RTTI) directly, right?

Correct.

Thanks for confirming! I was looking at enabling this in more places too, got to like 8MB of savings on the workerd debug binary. Verifying that it's safe is not always trivial so that's mostly experimental for now.

safe as long as dawn types are not exposed to JSG (or other interfaces using RTTI) directly, right?

I do pass around some jsg:Ref<DAWN TYPE>s. What does "exposed to JSG" mean in this context? :)

I would assume that's fine as long as those types are not exposed to the JS API (i.e. via EW_WEBGPU_ISOLATE_TYPES). If they are wrapped in a struct where RTTI is defined (e.g. GPUComputePassEncoder containing wgpu::ComputePassEncoder) that's also fine (?) If we're unsure, maybe we can limit these options to just the dawn_native_* targets, although I haven't looked at them TBH.


Update schema-ddl validation messages

Closing in favor of https://github.com/snowplow/iglu/pull/424


Provided id is not rendered on the input element

When using the datepicker I am passing an id and after diving into the code it should rendered in the underlying input component something that is not happening.
Here is a simple example that demonstrates that. The code is simple and I can't see why this happening.

I'm having a problem with this, too. This bug prevents me from associating a <label> with the datepicker for a11y.

Are you sure? I just tried to reproduce this, but it worked fine for me:
        <DatePicker
          selected={this.state.startDate}
          onChange={this.handleChange}
          id=1 />

Could you try to latest version (0.16.0), this should resolve your issue.

We could not successfully upgrade to 0.16.0, so this isn't a solution right now. Our project fails to find react-datepicker when we try to upgrade.

Please try 0.16.1. 0.16.0 contained some errors.

I just upgraded to 0.16.1 and I can see the id is populated correctly. Thanks a lot @martijnrusschen

Awesome!

Same here. Thanks, @martijnrusschen!


AVRO-2750: Add support for enum defaults in c#

Make sure you have checked all steps below.
Jira

[ ] My PR addresses the following Avro Jira issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"

https://issues.apache.org/jira/browse/AVRO-2750

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Modifies CodeGenTest to just exercise the codegen. Looked at the outputted code to verify that it sets the field to the default if its present
GenericTests.TestEnumDefault
SchemaTests.TestEnumDefault
SchemaTests.TestEnumDefaultSymbolDoesntExist

Commits

[ ] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain Javadoc that explain what it does

Could the EnumSchema.Ordinal() method be updated to honor the default as well?  I believe that the fixes above address Generic enums, but not Specific enums.
Also, does this qualify as a bug, since it means the current product does not implement the 1.9.2 spec?
From 1.9.2 spec:

if the writer's symbol is not present in the reader's enum and the reader has a default value, then that value is used, otherwise an error is signalled.

furthering @dabblefish 's comment, from the spec:

if both are enums:
if the writer's symbol is not present in the reader's enum and the reader has a default value, then that value is used, otherwise an error is signaled.

I think he's right that there's an issue here and to fix it EnumSchema.Ordinal could be updated to return the default value if there is one and it is provided a symbol that is unknown. Alternatively, ReadEnum in SpecificReader.ReadEnum and ReflectDefaultReader.ReadEnum could be updated to handle this case. I tend towards liking the latter because i think it's less likely to confuse

the EnumSchema is a strong and familiar abstraction, and the logic to handle the default value would be in the place where a reader of the code would be wondering about it. It would be repeated though. Anyway, that's just some commentary, and my preference could be wrong, i'm don't object to either.

It'd be good to add a test to cover this case.

@mkellogg Has there been anymore work done on this? I am finding a need for this, but realized this hasn't been addressed in this library yet

@mkellogg Has there been anymore work done on this? I am finding a need for this, but realized this hasn't been addressed in this library yet

Thanks for this little push. Just had to set aside the time to make some of the changes that @mhowlett suggested which was tough to come by.
I also implemented defaults for specific records as @dabblefish suggested.
I think this should be good to go now. Feedback welcome though, of course.

Thanks for jumping on this Matt!

Not to be a bother, but any chance we can get a review and maybe a merge on this @blachniet ?
We're itching for this change and it's going to take some time for this to flow down to the dependent libraries where we need this.

Sorry @mkellogg! I dropped off there for a bit. I posted one suggestion. Take a look and let me know what you think. Then let's get this in. Thank you so much for your contribution!!!

@blachniet No problem. I totally understand. Took me awhile to get back to this one too :) I made a commit with your suggested changes. Thanks for taking a look.

Rebased, squashed and merged to master in e42b44e. Cherry-picked to branch-1.10 in aeef3bf.
I didn't have write permissions for the source repository, so I couldn't push the rebase+squash there. That's why it's not showing up as merged here.
Thank you for your contribution (and patience 😄 ), @mkellogg!


add 2080ti, 2080 into hardware.ts

added FP16 (half) FLOPs for the GPUs listed in title.
sources:

https://www.techpowerup.com/gpu-specs/geforce-rtx-2080.c3224
https://www.techpowerup.com/gpu-specs/geforce-rtx-2080-ti.c3305
https://www.techpowerup.com/gpu-specs/geforce-rtx-2070.c3252 (as x-reference to know which number to use).

Thanks for updating @Vaibhavs10! Fixing the lint and merging!

Thanks a lot @thien 🙌 My first GPU was a 2080 Ti in 2018, I still use it :)


MDBX put is dramatically slower in debug builds compared to LMDB

I have the following simple piece of code, which fills the database with some test data:
#include "mdbx.h"

int main(int argc,char * argv[])
{
    int rc;
    MDBX_env *env;
    MDBX_dbi dbi;
    MDBX_val key, data;
    MDBX_txn *txn;
    int kval;
    char sval[1024] = {0}; // fine to fill with zeroes

    rc = mdbx_env_create(&env);
    rc = mdbx_env_set_mapsize(env, 10ULL * 1024 * 1024 * 1024); // 10 GiB
    rc = mdbx_env_open(env, "./testdb", 0, 0664);
    rc = mdbx_txn_begin(env, NULL, 0, &txn);
    rc = mdbx_dbi_open(txn, NULL, 0, &dbi);

    key.iov_len = sizeof(int);
    key.iov_base = &kval;
    data.iov_len = sizeof(sval);
    data.iov_base = sval;

    for (kval = 0; kval < 500'000; ++kval) {
        rc = mdbx_put(txn, dbi, &key, &data, 0);
    }
    rc = mdbx_txn_commit(txn);

    mdbx_dbi_close(env, dbi);
    mdbx_env_close(env);
    return 0;
}

It takes ~10 minutes to execute on my machine when compiled with the flags -m64 -std=gnu++17 -fno-omit-frame-pointer -ffast-math -fno-finite-math-only -pthread -march=core2 -mtune=corei7 -g (hereinafter "debug"). perf shows that MDBX spent majority of time in mdbx_dpl_search. The same code takes ~four seconds to execute when -O3 -flto=full (hereinafter "release") flags are added.
When I rewrite this code to use LMDB, it takes ~10 seconds to execute in debug build, and ~5 seconds to execute in release build. Could you please clarify why the difference is so huge here?

Sorry for the delayed response.

1. I think there is a misunderstanding about the purpose of "debug builds". Primary it is to debug library itself, but not an applications.

That's exactly what I was doing.
I found the bug in LMDB and wanted to check if it also could affect MDBX. Skimming quickly through the commit history, I didn't found related fixes in MDBX source code, so I decided to check it with the same test I used for LMDB. Of course I wanted to have default debug assertions enabled in case something goes wrong, but also I expected my test to finish in reasonable time. Otherwise, how to fight bugs affecting only large databases/transactions if it's not possible to work with them in debug builds?
In the end, the test passed without ASAN warnings on MDBX, so looks like everything is fine here :)

3.  Therefore, you should not complain about its performance especially if you do not use compiler optimization.

I'd like to state again that the problem described the issue persisted with -NDEBUG flag enabled, thus, it was specific not only to debug mode, but also to non-optimized builds. So moving from "debug (checked) build" to "non-optimized build with debug information enabled" didn't help.

Nonetheless, for practical reasons, libmdbx support several levels of checking. So I will consider to "move" some checks to a more strict level.

Thanks!


Update RepoZ screenshot

Due to major UI updates in RepoZ, I'd like to update the RepoZ screenshots in the GUI client list.

... and already deployed. Awesome, thanks 👍


add wyoming

Thank you for contributing!Preview these changesLink expires: Sat Sep 29 06:32:23 UTC 2018Note: it may take a moment for the branch to deploy. Check all pending travis builds have completed

Thank you for contributing!Preview these changesLink expires: Mon Oct 15 03:48:27 UTC 2018

Thank you for contributing!Preview these changesLink expires: Thu Oct 18 14:36:35 UTC 2018

Thank you for contributing!Preview these changesLink expires: Fri Oct 19 06:52:52 UTC 2018

Thank you for contributing!Preview these changesLink expires: Fri Oct 19 07:13:00 UTC 2018


The instance of OneViewClient doesn't detect that the session idle time has expired

When an instance of OneViewClient is created, a session is created to that instance. We assume that the session is considered valid until there is an explicit call to the method logout within the connection class (https://github.com/HewlettPackard/python-hpOneView/blob/master/hpOneView/connection.py#L500). However, after 24 hours (default value for the idle time) the session expired, OneViewClient didn't detect it, which resulted in the exception HPOneViewException with Authorization error.
Is there a way to verify if the session expired using hpOneView?

Hi @stenioaraujo
OneView doesn't offer a way to validate the token besides doing a request and getting Unauthorized.
However, you can do open a new login session before your token expires, so you won't get the Unauthorized error.

Hi @tmiotto!
So our best option here is to create a new client for each bunch of operations instead of reusing (with the possibility of seeing the unauthorized error) the same client. This way, we rely on the fact that this client's token will expire in a day and OneView will do its magic to purge the bad guys eventually...

We started being worried after seeing a couple of thousands of opened sessions in OneView after a day performing deployments... but maybe this is not the case and we should stop being cautious :)

Hi @ricardoas!
You can surely drive the requests this way.
As far as I've used OneView to handle the login sessions, I hadn't any problem, besides not stressing it out to the maximum, but I guess this is not your situation also.
If you are still worried about the multiple open sessions you can call the logout for each client after using them, so the token will become invalid and the session will be removed from OneView.


Getting the current system font

Hi, is there some way to use the plugin to retrieve the current system font? I'd like my app to use the same font from the system, but it keeps using the default Android font similar to Arial instead of the user's selected font.

That sounds like a good enhancement!
I've got a question in to Stack Overflow to see if it's technically feasible (the Android API for the default typeface (Typeface.DEFAULT) doesn't appear to return the typeface name, which is a bit annoying. But there might be some other way the plugin can pass that value back up to Cordova apps. I'll update this once I get some answers back.

OTOH, if you're having problems setting a font and having it "stick" in your Cordova app, you can take a look at what I'm doing -- such as it is -- in my app that uses the cordova-fonts plugin: adapt-it-mobile. Gory details:

in www/js/views/ProjectViews.js, the FontView class presents the list of fonts from the cordova-fonts plugin as an option list. Once the user selects a font name, it goes into the project settings.

in www/js/views/AdaptViews.js, the addStyleRules() method (around line 130) inserts the user's font selections into the last stylesheet of the window.document.styleSheets[] array, using the sheet.insertRule() method. So the CSS rule ends up looking something like this:
.myStyle { font: 10px "customFontName", helvetica, sans-serif; }

...where "customFontName" is the name of the font the user selected in ProjectViews.js. Then, when our editor page is displayed, the text is styled according to the appropriate font.

Thanks, I also checked out that but with no avail because I don't know how to write plugins.
Also, I was unable to apply any of the installed fonts to my app, the font-family attribute is totally ignored, even when I put correct (installed) font names in my CSS (hard-coded), such as:
body{
  font-family: 'Droid Sans Mono';
}

Any ideas why I can't use those fonts?

No idea. Unfortunately, there are a lot of places where the font stuff can break down (any style in the style chain, a refresh in a bad place, etc.) Have you used the Chrome developer tools to see where the font definition is coming from?
I'm using a Lenovo tablet on 4.4.2 to test the Android stuff -- setting the font via CSS does seem to work on that device, so I know it can work. I know, it's not much help -- just a data point. :-/

Okay, the latest version of the plugin (0.6.5) should now contain an API to get at the default font for the device. Example code:
if (navigator.Fonts) {
  console.log("Fonts object in navigator");
  navigator.Fonts.getDefaultFont(
    function (defaultFont) {
        if (defaultFont) {
            console.log("Default Font: " + defaultFont);
        }
    },
    function (error) {
        console.log("DefaultFont error: " + error);
    }
  );
} else {
  console.log("Plugin error: Fonts plugin not found (is it installed?)");
}

For most Android devices, this will return the font string "Roboto Regular".


[release-v1.2] :robot: CI was here...:fire:

DO NOT MERGE

/hold

INFRA
/test 49-e2e-aws-ocp-49

INFRA
/test 410-e2e-aws-ocp-410


Location-specific brand preset not applying correctly

Hello,
Given the following specification in the name-suggestion-index: https://github.com/osmlab/name-suggestion-index/blob/96674bb954ea29c4d3a862a05b5160366e73f16b/data/brands/shop/supermarket.json#L5980-L6006, I would expect Walmart Supercentres in Canada to be named "Walmart Supercentre". However iD wishes to upgrade these tags to "Walmart Supercenter". Sample screenshot of https://www.openstreetmap.org/edit?way=148808775 with name changed manually:

Do you have any ideas why the Canadian brand preset isn't working and how this could be fixed?

Hey @jarek , this is #8305 .  I have a work-in-progress pull request to bring the latest NSI data into iD ..

Ah I see! From git history I saw that the name-suggestion-index entry is at least 6 months old, I hadn't realized that the data in iD is older than that.


Improve job completion detection.

Right now job completion is tested by:

Checking for a work directory
if exists, check the queue to see if the job is still waiting
if not, check the list of failed jobs to see if the job failed
if not, assume the job completed succesfully

This is would normally always be true, however if we kill a job manually or force restart the blast container, this will report a job as completed even though no data was produced.
This issue is invalidated by #96 and #108.  If those issues are resolved, this issue can be closed without work.

Resolved by #121


Static methods pass self as first parameter

    public static GetInstance(): Class{
        if (Class.instance) {
            return Class.instance;
        }
        return new Class();
    }

function Class.GetInstance(self) <-- self should not be listed here
    if Class.instance then
        return Class.instance
    end
    return Class.new(true)
end

For keeping the Typescript to Lua translation consistent, I don't think this is a bug.
Class.staticMethod(); // Equivalent to `Class:staticMethod()` in Lua

Proof (Javascript you may be able to execute in browser):
class Class {
	static staticMethod() {
		console.log(this.x); // this == Class, this.x == 6
	}
}
Class.x = 6
Class.staticMethod(); // `Class:staticMethod()` in Lua

If keen to remove self visually, Class.GetInstance(self) could use a : instead of a . but implicitly it would still be there.
function Class:GetInstance() -- self is implicitly here because of the :
    if Class.instance then
        return Class.instance
    end
    return Class.new(true)
end

I agree this is intentional, another case for #250

Closing in favor of #250


set default shell to bash in shft workflow

Current Behavior

Currently the shft workflow doesn't have a default shell option at job level
Proposed Changes

set default shell to bash in publish crates workflow

Checks

[ ] All commits in this Pull Request are signed and Verified by Github.
[ ] All commits in this Pull Request follow the Ockam commit message convention.
[ ] I accept the Ockam Community Code of Conduct.
[ ] I have accepted the Ockam Contributor License Agreement by adding my Git/Github details in a row at the end of the CONTRIBUTORS.csv file in a separate pull request to the build-trust/ockam-contributors repository.

@metaclips seems like this PR is messed up , I will open a new PR following all the guidelines


Improve basic norwegian translation

What does this do?
Improve the Norwegian translation of the basic UI. Add nb_NO.json and nn_NO.json, since Norwegian is one spoken language, but with two written forms.
Related to #18, #20.
What type of change is this?

[ ] 🐛 Bug fix (non-breaking change addressing an issue)
[x] ✨ New feature or enhancement (non-breaking change which adds functionality)
[ ] 🧨 Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] 🚧 Maintenance or refinement of codebase structure (ex: dependency updates)
[ ] 📘 Documentation update

Additional Notes
Norwegian is bit of a complicated language. It is one language with two equal written forms, Bokmål and Nynorsk. no is often the default and uses in most cases "bokmål". nb_NO (bokmål) and nn_NO (nynorsk) would be the precise language codes to use. no is therefore more precisely nb_NO.
So, sorry @mathewjordan, Norwegian is one of the more annoying languages to translate... Kept no, as it might be needed for browser language detection later?

Sry, i get i bit confused on the language codes to use. I guess that the files could be renamed nb and nn since the browser will return an array of languages, and nb and nn seems better since my browser does not add nn-NO to the pref lang list.
I used _ and not -, and that should be corrected as well.

Language Code
Language Name
Preference Score

no
Norwegian
1

en
English
0.9

nb-NO
?
0.8

nb
?
0.7

en-US
English
0.6

nn
?
0.5

da
Danish
0.4

sv
Swedish
0.3

The University of Bergen Library host the Norwegian Language Collection, so i should be better at this...

Sry, i got a bit confused on the language codes to use. I guess that the files could be renamed nb and nn since the browser will return an array of languages, and nb and nn seems better since my browser does not add nn-NO to the pref lang list. I used _ and not -, and that should be corrected as well.
Language Code 	Language Name 	Preference Score
no 	Norwegian 	1
en 	English 	0.9
nb-NO 	? 	0.8
nb 	? 	0.7
en-US 	English 	0.6
nn 	? 	0.5
da 	Danish 	0.4
sv 	Swedish 	0.3
From: https://gtranslate.io/detect-browser-language
The University of Bergen Library host the Norwegian Language Collection, so i should be better at this...

Thank you for following up. I'll rename the files to two letter codes nb.json and nn.json if you agree.


@conda-forge-admin, please add bot automerge

@conda-forge-admin, please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/hs_restclient-feedstock#9.


Info request

Hello everybody, I'm new to Pico world, that project looks like the one for me but for a thing, I need to send midi messages on a guitar pedalboard that uses usb type c but only works as a device. Would I be able to interact with it just sending midi signals with this code? I don't need to translate from din pins on UART, but just be able to send CCs and PCs over usb but without setting up a midi software on Pc. As I know already all the messages I need to sent, would be possible to just setup a midi host over the native usb of the Pico?

@Alefrasca90 Welcome to the Pico world. I assume you are a C programmer. I encourage you to read the Getting Started Guide and follow the tutorial. Once you have the example code in the tutorial running, have a go at this. Once you have done that, I can say...
Yes, this code could be a good starting point for a project like that. You can copy this project to a new directory and hack it.
Find the routine poll_midi_uart()_rx around line 87 in the file midi2usbhost.c. Near Line 92 reads
uint8_t nread = midi_uart_poll_rx_buffer(midi_uart_instance, rx, sizeof(rx));

That line will fill the byte buffer rx[] with up to 48 bytes of MIDI message. Comment out or delete that line. What you need to do to send data is to use your own code to fill that rx buffer with your own Control Change, Program Change, etc. messages and set nread to the number of bytes of MIDI messages in the buffer. The if block that follows will write the message out as long as there is a device connected and the message contains at least one byte.
 You need to keep this so the USB MIDI receive buffer does not overflow. However, you do not have to do anything with the receive bytes. To discard the bytes, simply delete or comment out the if block that starts if (cable_num ==0) {.
Around line 115 you can delete or comment out midi_uart_instance = midi_uart_configure(MIDI_UART_NUM, MIDI_UART_TX_GPIO, MIDI_UART_RX_GPIO);
I hope that is helpful.

One more thing, that Rx array that contains up to 48 bytes, why can contains that amount and if I have to send multiple signals can I parse them one after the other inside Rx or is better to call the method more times? That's for understanding how to build my method, thanks.

@Alefrasca90 The longest USB bulk transfer in USB Full Speed mode is 64 bytes, so the buffer that composes USB packets is for transmission is 64 bytes long (CFG_TUH_MIDI_TX_BUFSIZE). All USB MIDI messages are exactly 4 bytes long even though the serial port MIDI stream messages can be 1, 2 or 3 bytes (or sysex, which can be any length and which in USB MIDI is broken down into a collection of 4-byte packets). You should look at the USB MIDI 1.0 Class Specification for details on how the data is packaged.
So you can send at most 64 bytes/4bytes/message =16 messages at once before you overflow the driver's transmitter FIFO. You need 16x3=48 bytes to store 16 3-byte messages, so the size is 48 bytes. In practice, the USB is much faster than the serial port UART, so the 48 bytes is enough.
The call to tuh_midi_stream_write() writes to the USB transmitter buffer. It returns the number of bytes successfully written. If it writes fewer bytes than you wanted to, you can write the rest of them the next time around the main loop. The sequence of calls that sends the data is tuh_midi_stream_write(), tuh_stream_flush() (in the main loop), and then tuh_task() (also in the main loop).
How many Control Change (3-byte) and Program Change (2-byte) messages are required to configure your guitar pedalboard? Do you need SysEx? If it is more than 16 messages at once, put them in a big buffer and change poll_midi_uart_rx() to pull bytes from your buffer instead of the uart receive buffer. Make sure your routine can recover if it could not send all 48 bytes, which can happen if more than 16 messages fits in 48 bytes (e.g., 24 channel pressure messages or program change messages fit in 48 bytes).
I hope this helps and didn't confuse you. When you are done, please publish your project on GitHub. Sounds cool.

You're very kind, I'm going to send a CC message per time every time I need to change some parameters so no problems at all, mine was just curiosity about the complicated (for me) usb protocol, thanks so much!


Plans to support column alignment?

I really like https://github.com/jazzband/tablib, but am missing some column alignment feature like in https://github.com/astanin/python-tabulate for normal text output. I just wonder if this is on some roadmap? I can do without, but it would be nice. ;)

Absolutely, tabulate support will be in the next release!
https://github.com/jazzband/tablib/commit/fa30ea858d0ac41f2f542e0c50d9f9a2e343deb2
Happy new year!


Fix missing assets

This PR will integrate assets that were previously loaded from nixos.org . The new website does not include the assets, so nixos-search looks weird without them.

frontend/assets/img/glyphicons-halflings.png is missing as well (bootstrap.min.css) needs it.


qt: Prevent the main window popup menu

https://github.com/bitcoin/bitcoin/issues/11168 is not fixed by https://github.com/bitcoin/bitcoin/pull/11169 completely, as users are allowed to right click on the menu bar:

This PR moves the context menu prohibition from QToolBar instance to its parent BitcoinGUI instance, which is derived from QMainWindow.

Concept ACK, but I don't understand why the toolbar inherits this prohibition and other widgets (where we want a context menu) don't...

I don't understand why the toolbar inherits this prohibition and other widgets (where we want a context menu) don't...

Probably, due to the fact that QMainWindow has its own layout which a QMenuBar belongs to.


Po/initiate one on one dm

Should be good to go, but there's something up with the dm const on line 220 of handlers.ts not matching the Handler def. Same thing is happening in master. Unrelated to this PR, though, so we should be good to merge.
Closes #86

yeah
On Tue, May 24, 2022 at 16:58:45, patosullivan @.***>
wrote:

right, so just import the supporting sur/, lib/ files and leave
%group-store & %contact-store out of the desk.bill
… <#>
On Tue, May 24, 2022 at 16:51:16, patosullivan @.> wrote: we do not
need group-store, and will not be using it, ty! Looks like contact-store is
reliant on lib/group.hoon which is reliant on lib/group-store.hoon. We need
to keep contact-store identical to the contact-store already on the network
in order to avoid causing issues in deployment, right? — Reply to this
email directly, view it on GitHub <#176 (comment)
https://github.com/tloncorp/homestead/pull/176#issuecomment-1136465023>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALFCFFQJIJAJZZK46ZQ3AKDVLVFNJANCNFSM5WQQMD5Q
https://github.com/notifications/unsubscribe-auth/ALFCFFQJIJAJZZK46ZQ3AKDVLVFNJANCNFSM5WQQMD5Q
. You are receiving this because you were mentioned.Message ID: @.>
Oh ok, so then it's fine as-is, correct?
—
Reply to this email directly, view it on GitHub
https://github.com/tloncorp/homestead/pull/176#issuecomment-1136469749,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALFCFFVT2Z2HNQMMSNU3A3DVLVGJLANCNFSM5WQQMD5Q
.
You are receiving this because you were mentioned.Message ID:
@.***>


'LongName' is not a valid named attribute argument.

When attempting to create an option attribute, if you add LongName="foo" to the named parameters, you get the following compile-time error:
'LongName' is not a valid named attribute argument. Named attribute arguments must be fields which are not readonly, static, or const, or read-write properties which are public and not static.
Worked around it by using the constructor version that takes LongName as a parameter, but I think this is a bug.
Also, the documentation indicates that if LongName is omitted, it will be inferred from the property name. This does not appear to be a true statement. When I omit LongName, the help text is generated with no names at all, just descriptions.

@ericnewton76 Are you sure that your sample works OK with exact cased parameter name?

@cosmo0 I am not sure that your unit test is correct - you are trying to use long name for parameter that defines short name only. From code it looks like long name is inferred only if neither short nor long name are provided explicitly.

First of all, I recommend to specify the version referenced in your posts; also if here is clear that we're talking about 2.0 pre-rel.
@nemec as long time user and one of first main contributors know both CommandLine code bases very well and he's right. No way, LongName is internal and @SpaghettiMonster you should use the constructor.
In 2.0 this thought for let users define in a simple way (with less typing) their command line attributes. As @ericnewton76 says, omitting all names -> generates a lowercased long name.
@cosmo0, I've not check you test but I'm pretty sure this work as expected... Can you check again with latest 2.0 codebase status? If not I'll be glad to accept a PR with test (or with test and fix).
Please let me know if this issue can be closed?
cc/ @nemec @ericnewton76  @cosmo0, @Litee, @mizipzor, @gimmemoore

Given this options type:
class FakeOptions {
  [Option(HelpText = "Define a string value here.")]
  public string StringValue { get; set; }
  // ...
}

and thos test theory:
[Theory]
[InlineData(new[] {"--stringvalue", "this-value"}, "this-value")]
[InlineData(new[] {"--stringvalue=this-other"}, "this-other")]
public void Omitting_names_assumes_identifier_as_long_name(string[] arguments, string expected) {
  var result = InstanceBuilder.Build(() => new FakeOptions(), arguments, StringComparer.Ordinal,
    CultureInfo.InvariantCulture);

  Assert.True(expected.Equals(result.Value.StringValue));
}

I think I can close the issue. If there's other to say, feel free to re-open or add comments.


[Bug] v2.7 props are unwrapped, the same doesn't hold true for v3.

Version
2.7.14
Reproduction link
stackblitz.com
Steps to reproduce
In v2.7, props are unwrapped.
The same doesn't hold true for v3.
What is expected?
Props aren't unwrapped.
What is actually happening?
Props are unwrapped.

v2和v3的渲染函数传参有区别

@tinyfind Can you elaborate? If you're saying

vs

Then that's demonstrating my point.

There are a couple of bugs coming since I accidentally took advantage of the old feature 🤣.


Upgrade dashboard

This PR upgrades the dashboard display.

Most of note change is  that email verification is now an onboarding quest as well.

Depends on #170 being merged into this first.


Use "lx" instead of "lux" in deconz

Description:
Other components use "lx". We should use the same for every component.
Checklist:

[x] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass

This should be changed in pydeconz.

Unless the owner of pydeconz thinks that using "lux" is wrong, I don't see it as a requirement, since pydeconz can be used for stuff other than Home Assistant. Using "lux" is not really a bug for pydeconz, but it is for HA.

@abmantis I double checked by searching for lx and lux, there seems to be many more instances of lux than lx, if anything with your ambition it would be good to move to lux for those 3 packages using it.
Regarding your question: I'd rather keep the component light and keep more in the library

@Kane610 you're right! I missed that. I'll close this PR and should open another to change "lx" to "lux". Thanks!


refactor: sub command => subcommand

Please describe the changes this PR makes and why it should be merged:
I personally don't have a strong preference, but this is to remain consistent with the discord.js repository, which treats "subcommand" as one word.
Status and versioning classification:

Code changes have been tested against the Discord API, or there are no code changes
I know how to update typings and have done so, or typings don't need updating
This PR includes breaking changes (methods removed or renamed, parameters moved or removed)

https://github.com/discordjs/builders/pull/18/commits/fb164244aa6ed84d6b6a776b6375d2d51a73ec86 should fix the failed checks; no idea why the file rename didn't commit before lol

Codecov Report

Merging #18 (fb16424) into main (34a1530) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #18   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          142       142
  Branches        20        20
=========================================
  Hits           142       142

Impacted Files
Coverage Δ

src/interactions/slashCommands/Assertions.ts
100.00% <ø> (ø)

...nteractions/slashCommands/mixins/CommandOptions.ts
100.00% <ø> (ø)

.../interactions/slashCommands/SlashCommandBuilder.ts
100.00% <100.00%> (ø)

...eractions/slashCommands/SlashCommandSubcommands.ts
100.00% <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 34a1530...fb16424. Read the comment docs.


stage1/init: handle relative /etc/localtime symlinks

Fixes issue reported by @crquan in https://github.com/coreos/rocket/pull/357

@vcaputo lgtm.


error when doing just all / just build-wallet / just build-examples

When doing just all I receive :
error: no such command: component
same with  just build-wallet / just build-examples
I am new to just and rust - component command of cargo is missing.
I did:
cargo search cargo-component
cargo install cargo-component
to fix the issue.
This is probably not project-related. So in case it is Rust related please close the issue.

This is setup related. I added the requirement for cargo-component in the docs too


Update index.json

samples: added Legal101

@ayushmanlakshkar please add a signoff to the commit with "git commit --amend -s --no-edit && git push -f"

Member

I've done that ,So should I make a new Pr?

@ayushmanlakshkar please add a signoff to the commit with "git commit --amend -s --no-edit && git push -f"

Done that now.


flow: 0.105.2 -> 0.106.0

Motivation for this change
Changelog: https://github.com/facebook/flow/releases/tag/v0.106.0
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg build flow


Test: scrolling behavior during notebook cell resizing

refs: https://github.com/microsoft/vscode/issues/194516

[] macOS
[] linux
[] windows

Complexity: 5

Description
There have been a few behavior changes when executing a cell with shift+enter around how scrolling behaves in relation to the next cell which should then be focused.
Pre-requisites - If you don't have python set up to run notebooks

ensure python is installed on your machine
open a workspace where you will be running tests for this TPI
Create: new jupyter notebook and run print(1) in a cell.
a. If the cell runs successfully, you're already set up, otherwise...
The kernel picker should open, select "Python Environments..." -> "Create Python Environment..." -> select venv or conda, and whichever version you'd like.

Testing

ensure notebook.scrolling.experimental.anchorToFocusedCell is not set
Create a notebook with several cells that generate output in a variety of ways (examples below), and has enough cells to take up multiple screen heights.
Execute the cells in the notebook with shift+enter which will select the next cell as they are executed.
Try exposing different behaviors by
a. shrinking the viewport
b. scrolling to put the executing cell in different positions on the screen
c. executing a cell that is followed by a very large cell
d. re-execute cells, with and without clearing the output first
Try a different setting for notebook.scrolling.revealNextCellOnExecute

Behaviors to expect:

Don't push a focused cell out of view (unless notebook.scrolling.revealNextCellOnExecuteis set to none)

Scrolling up will end this behavior

A cell with focus in the editor should always be anchored if cells above are resizing
If you execute a cell that already had output, it should not shrink the output size during execution.

Example Cells
Remove and add output (when run multiple times)
import time
time.sleep(3)
for i in range(29):
    print(i)

Stream in output
import time
for i in range(20):
    time.sleep(.5)
    print(i)

large outputs that are immediately replaced
for i in range(20):
    print(i)

Large cells (e.g. a bunch of extra empty newlines)

Invalid test plan item. See errors below and the test plan item spec for more information. This comment will go away when the issues are resolved.
Error: Test plan item should have assignments

Invalid test plan item. See errors below and the test plan item spec for more information. This comment will go away when the issues are resolved.
Error: Test plan item should have assignments

Invalid test plan item. See errors below and the test plan item spec for more information. This comment will go away when the issues are resolved.
Error: Test plan item should have assignments


[SPARK-33573][SHUFFLE][YARN] Shuffle server side metrics for Push-based shuffle

What changes were proposed in this pull request?
This is one of the patches for SPARK-33235: Push-based Shuffle Improvement Tasks.
Added a class PushMergeMetrics, to collect below metrics from shuffle server side for Push-based shuffle:

no opportunity responses
too late responses
pushed bytes written
deferred block bytes
number of deferred blocks
stale block push requests

Why are the changes needed?
This helps to understand the push based shuffle metrics from shuffle server side.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Added a method verifyMetrics to verify those metrics in existing unit tests.

cc @zhouyejoe @otterc @mridulm @xkrogen. Please take a look, thanks.

Can one of the admins verify this patch?

There were some test failures in YarnShuffleServiceSuite from some of the UTs adde by me in the NodeManager work preserving restart PR. Reran the PR test job to see whether it is consistent failing. @rmcyang  Are you able to reproduce the UT failures locally?

@zhouyejoe Hm not really,  running those UTs locally looks to me.
minyang@minyang-mn3 spark % build/mvn -Dtest=none -Pyarn -Phadoop-2.10 -Dscala-2.12 -Phive -Phive-2.3 -DwildcardSuites=org.apache.spark.network.yarn.YarnShuffleServiceWithLevelDBBackendSuite test -pl 'resource-managers/yarn'
Using `mvn` from path: /Users/minyang/project/OSS-linkedin/spark/build/apache-maven-3.8.6/bin/mvn
...
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO]
[INFO] --- scalatest-maven-plugin:2.1.0:test (test) @ spark-yarn_2.12 ---
[INFO] ScalaTest report directory: /Users/minyang/project/OSS-linkedin/spark/resource-managers/yarn/target/surefire-reports
Discovery starting.
Discovery completed in 670 milliseconds.
Run starting. Expected test count is: 17
YarnShuffleServiceWithLevelDBBackendSuite:
- executor and merged shuffle state kept across NM restart
- removed applications should not be in registered executor file and merged shuffle file
- shuffle service should be robust to corrupt registered executor file
- get correct recovery path
- moving recovery file from NM local dir to recovery path
- service throws error if cannot start
- Consistency in AppPathInfo between in-memory hashmap and the DB
- Finalized merged shuffle are written into DB and cleaned up after application stopped
- Dangling finalized merged partition info in DB will be removed during restart
- Dangling application path or shuffle information in DB will be removed during restart
- Cleanup for former attempts local path info should be triggered in applicationRemoved
- recovery db should not be created if NM recovery is not enabled
- SPARK-31646: metrics should be registered into Node Manager's metrics system
- SPARK-34828: metrics should be registered with configured name
- create default merged shuffle file manager instance
- create remote block push resolver instance
- invalid class name of merge manager will use noop instance
Run completed in 2 seconds, 944 milliseconds.
Total number of tests run: 17
Suites: completed 2, aborted 0
Tests: succeeded 17, failed 0, canceled 0, ignored 0, pending 0
All tests passed.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  24.019 s
[INFO] Finished at: 2022-08-30T02:58:38-07:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "hadoop-2.10" could not be activated because it does not exist.
[WARNING] The requested profile "hive" could not be activated because it does not exist.
[WARNING] The requested profile "hive-2.3" could not be activated because it does not exist.

Can you fix the linter error @thejdeep ?
 src/main/java/org/apache/spark/network/shuffle/RemoteBlockPushResolver.java:[1281] (sizes) LineLength: Line is longer than 100 characters (found 104).

Merged to master.
Thanks for working on this @rmcyang !
Thanks for the reviews @zhouyejoe, @otterc :-)


Set "TreatWarningsAsErrors" before NuGet restore

Ensures our build stays clean of NuGet warnings

@ryanbrandenburg,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Refactor:  reduce code complexity, cleanup, deduplicate

SonarQube analysis reported 1 issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 XmlLoggingConfiguration.cs#L1438: Complete the task associated to this 'TODO' comment.


Defect: IphoneSE (responsive)  'Contact' section has incorrect text size, no background image & contact form with submit button is missing

Steps:

Navigate to https://main--vg-partsasist--hlxsites.hlx.page/ from index.docx by clicking preview
Validate the 'Contact' section  in responsive mode using 'IphoneSE'

Expected:

Actual:
'Contact' section has incorrect text size, no background image & contact form with submit button is missing

already fixed


MAINT: Use sparse.diags instead of spdiags internally.

Modifies sparse.eye() to use sparse.diags internally instead of sparse.spdiags. This modifies the behavior in the case where the diagonal offset(s) are greater than the maximum shape of the array. Previously, this would result in a sparse array with 0 stored elements and, in the case of the DIA format, negative values for the  diagonals:
# Current behavior
In [1]: import scipy as sp

In [2]: a = sp.sparse.eye(3, 3, -5)

In [3]: a
Out[3]:
<3x3 sparse matrix of type '<class 'numpy.float64'>'
        with -2 stored elements (1 diagonals) in DIAgonal format>

In [4]: a.toarray()
Out[4]:
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

With this PR, this scenario will instead raise a ValueError indicating that the resulting array would be empty due to the offsets being OOB:
# This PR
In [1]: import scipy as sp

In [2]: a = sp.sparse.eye(3, 3, -5)
Traceback (most recent call last)
   ...
ValueError: Offset -5 (index 0) out of bounds

Reference issue
Closes #18555
Additional information
This proposal is predicated on the assumption that users generally don't intend to create empty sparse arrays with eye()/identity(). However, if this extra input validation is not desired, then an alternative approach would be to call the dia_array constructor directly instead of using spdiags. This would maintain the current behavior while getting rid of the dis-recommended usage of spdiags internally.
Removing the internal usage of spdiags will reduce the amount of duplication necessary to add new sparse array creation functions (e.g. eye_array).

This is a behavior change (raising an exception instead returning an empty result), but I'm willing to claim that this is a bugfix and the old behavior was unintended.
We should make an entry in the release notes for this.


Added/Updated learning sources

Hey,
I've added some significant learning resources as discussed. Please review the changes in this pull request.
You can view the changes here: https://github.com/PATILYASHH/SorcererCoderNet .
Thanks!
Best,
Yash Patil

Thank you very much!


Sugar cane roots trade too expensive

Sugarcane roots cost 7 emeralds for 1 piece which is a bit ridiculous. The dude infuses skulls for the same price!

Already planned, but please make issue titles meaningful

Completed for next release


[EventRequest] Page 6510 “Item Tracking Lines” on procedure "RegisterChange"

Please add a new publisher event OnRegisterChangeOnAfterFullDelete in Page 6510 on function "RegisterChange" and call it as shown in the image below

Please add the corresponding Integration Event In the bottom of the Page
LOCAL [IntegrationEvent] OnRegisterChangeOnAfterFullDelete(ReservEntry : Record "Reservation Entry")

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Implement a square root version of the Kalman Filter

Minimally this would just to be to create a SquareRootKalmanUpdater which executes the update function on a square root parameterisation of the covariance matrix. Such a recursion is more numerically stable than the usual Kalman version.
There are several versions of the how exactly to do $P = WW^T$, and the version I currently favour is from Andrews 1968. Which seems a touch outdated. If you have a preference, please detail below.
Would suggest that the class checks the format of the incoming covariance matrix and adjusts it if needed but returns the square root format. Or perhaps both?
Also, no plans to do 'SquareRootKalmanPredictor`, because that wouldn't be worthwhile as it doesn't solve a problem related to numerical instabilities.

Created branch SqrtKalmanFilter. Intent is to build around a SqrtGaussianState type which stores the the covariance matrix in lower-triangular form ($L$) where the 'full' covariance matrix, $P = LL^T$.
It's then not clear whether it's then better to create a separate updater (SqrtKalmanUpdater) derived from KalmanUpdater, or add a new method to KalmanUpdater. Suggestions?
KalmanPredictor can probably be modified fairly straightforwardly.

It's then not clear whether it's then better to create a separate updater (SqrtKalmanUpdater) derived from KalmanUpdater, or add a new method to KalmanUpdater. Suggestions?
KalmanPredictor can probably be modified fairly straightforwardly.

After listening to your discussion with Simon this morning, that we it may prove useful to have so slightly different versions of the square root algorithm. In this case, I think it would be better to go via the subclass route rather than add additional methods to Updater class.

Thanks @paulhorridge.
A couple of things if I may:

I'd originally imagined that the recursion would proceed by passing a mean and square-root matrix through the predict and update steps. Hence the need for a sqrtGaussianState class. If you're calculating the square root, updating and reconstituting the full covariance within the updater, then it won't be required. In fact we don't need a sqrtKalmanUpdater. We can just add code to the KalmanUpdater together with a flag that tells the object to use that method.
Do you have an test case where the square root form shows demonstrates its worth? I was going to spend a little time looking for ill-conditioned covariances, but if you already have examples please feel free to drop them in.

Cheers

Hi Jordi,

I didn't think there was a SqrtGaussianState class (or it wasn't there yet) at the time I coded up the filter. I expect the filter would perform better if the full covariance was not calculated but I haven't integrated it in yet.
I don't, sorry. If you are happy to find some great, otherwise I could try?

Cheers,
Paul.

From: jmbarr<EMAIL_ADDRESS>Sent: 01 May 2020 16:46:33
To: dstl/Stone-Soup
Cc: Horridge, Paul; Mention
Subject: Re: [dstl/Stone-Soup] Implement a square root version of the Kalman Filter (#171)
Thanks @paulhorridgehttps://github.com/paulhorridge.
A couple of things if I may:

I'd originally imagined that the recursion would proceed by passing a mean and square-root matrix through the predict and update steps. Hence the need for a sqrtGaussianState class. If you're calculating the square root, updating and reconstituting the full covariance within the updater, then it won't be required. In fact we don't need a sqrtKalmanUpdater. We can just add code to the KalmanUpdater together with a flag that tells the object to use that method.
Do you have an test case where the square root form shows demonstrates its worth? I was going to spend a little time looking for ill-conditioned covariances, but if you already have examples please feel free to drop them in.

Cheers
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dstl/Stone-Soup/issues/171#issuecomment-622441509, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AH6GNHDGWMYVIDJWSCXJLWDRPLVFTANCNFSM4LLJRY3A.

See #213 for an idea. The logic for implementing the square root version of the update is now in the KalmanUpdater.update() function (and so is available to the EKF and UKF).
There's a new test case which demonstrates a situation where the square root formulation succeeds as the vanilla version fails.

Ref #223. Happy weekend.

Closed with #223


Automatically manage=off for any windows that come from a specific app.

Is it possible to have sub-windows from a specific application (i.e plugin windows from a DAW) automatically set to floating?
Sorry if this has been asked before, I tried searching but I couldn't find any others.

You might want to look at this solution that pretty much does the same with Jetbrains IDEs

I have recently tried tackling this again. The solution above doesn't work for Ableton unfortunately as the window title depends on the project name, and there is no way to change that functionality from what I can tell.
I have been able to find a solution, however there is a noticeable delay when opening a window:
yabai -m rule --add app="^Live$" manage=on
yabai -m signal --add event=window_created app="^Live$" action 'yabai -m window $YABAI_WINDOW_ID --toggle float'

video of the delay happening: https://i.gyazo.com/faa48056350b1b9837b1bc8404a0b9f8.mp4
This works because window_created doesn't trigger when the application is launched in macOS as mentioned in #174 , however for the same reason, I can't do something like this which would fix the delay:
yabai -m rule --add app="^Live$" manage=off
yabai -m signal --add event=window_created app="${apps}" action='yabai -m query --windows --window $YABAI_WINDOW_ID | jq -er ".level == 0" && yabai -m window $YABAI_WINDOW_ID --toggle float'

I have tried using the application_launched event like this, but it doesn't work
yabai -m signal --add event=application_launched app="${apps}" action='yabai -m window "$(yabai -m query --windows | jq ".[] | select(.app="Live") | .id" )" --toggle float'

I am not very good at jq, so it might be that I am using it incorrectly, however I have a suspicion that the reason it doesn't work is because there is about a 30-45 second delay when opening Ableton till the window pops up.

For Ableton Live I use these rules:
yabai -m rule --add app="^Live$" title="^.*\[.*\]$" manage=on
yabai -m rule --add app="^Live$" title="^Unbenannt$" manage=on

It matches project names foo [bar] and empty projects Unbenannt in the window title. Plugins are not affected.

Thank you so much, I just tried it and it works!


Uncaught TypeError: Cannot read property 'settings' of undefined  jquery validation 1.13.0

Pretty simple, I comment out my validate call in document ready and the error goes away.
The error occurs when I click on certain for elements.  Even if this is not a validate bug, I am having a hard time debugging.
$(document).ready(function(){
...
// validate main form
$('#case_form').validate({
debug: true,
rules: {
phone: {
phoneUS: true,
required: true
},
model: {
required: false
},
serial_number: {
required: true
},
client_group_id: {
required: true
},
description: {
required: true
},
backup_data: {
required: true
},
first_name: {
required: true
},
last_name: {
required: true
},
email: {
required: true,
email: true
},
department: {
required: function() {
return departmentRequired();
}
},
assigned_to: {
required: function() {
return assigneeRequired();
}
},
operating_system_id: {
required: true
},
warranty: {
required: true
}
},
messages: {
phone: '555-555-5555',
serial_number: 'X',
client_group_id: 'X',
description: 'X',
backup_data: 'X',
first_name: 'X',
last_name: 'X',
email: 'X',
department: 'X',
assigned_to: 'X',
operating_system_id: 'X',
warranty: 'X'
},
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors === 1
? 'You missed 1 field.'
: 'You missed ' + errors + ' fields.';
displayMessage(message);
}
},
submitHandler: function(form) {
$('#main-bubble').spin({ lines: 12, length: 12, width: 4, radius: 12 });
$('#save_case_form').attr('disabled', 'disabled');
$('#save_case_form_and_return').attr('disabled', 'disabled');
        form.submit();
    }
});

...
});

I had a similar problem. I was trying to add a custom rule to a field via javascript, but it looks like the browser had unfinished tasks that were needed for the .rules() method to work properly.
To fix it i used the following snippet:
setTimeout(function() {
   //Do some calls
}, 0);

This stackoverflow post explains why this works.

@josencv thanks for chiming in, but commenting on closed issues without anything that reproduces the issue, its unlikely to make any difference.

Thanks its working fine @josencv...

I just meet this issue. I think it is because that form is created by js. So you need to reset the validate.
See the below code:
$('form').validate().resetForm();
$('form').validate();
It work to me.

I got same issue, and found out that, the class name of form same with other element, so i rename class of form and it work


XML Support

This adds XML support to abstract-data and therefore the method "toXmlString".

Closed for inactivity


[FIX] fix timestamp in env_with_compile_reports fixtures to not be ol… (#4438)

Pull request opened by the merge tool on behalf of #4438

Merged into branches iso5 in 49c51871b4aae21c0313f15e40ba6afeaec61d8a


fix wrong stim.json save

fix #98

@ceren I will merge this on the dev branch so make sure that you have your own "dev" branch to track and use it.

OK a couple of things are failing but it seems they are linting issue due to the new miss_hit linter.
Will merge that now and fix later (famous last words)


ODC-7558: Add all Projects list page

https://github.com/openshift-pipelines/console-plugin/assets/102503482/91b2c7db-41cb-4ebe-8a9b-407ccba9e591
@vikram-raj , can we add some spacing so that it look similar to other pages? and we are not considering Create a Project button besides "Select a Project" now?

Tested locally. Working fine.
/lgtm