Further improve options explainer

I really don't find the explanations on the different types of options helpful.
What is the difference between IConfigureNamedOptions and everything else?  Why in many scenarios do I have to implement both?
It's just not clicking for me.  Is there not some kind of chart or broader explanation that this page can offer to really nail down just what all the different options interfaces are doing and when you'd want to use them?

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

ID: 433988ea-fda9-aa83-f6ee-221a5521a422
Version Independent ID: 00449cdc-b8fc-a9ff-3f20-0ef0994db354
Content: Options pattern - .NET
Content Source: docs/core/extensions/options.md
Product: dotnet-fundamentals
GitHub Login: @IEvangelist
Microsoft Alias: dapine

Hi @atrauzzi - thank you for posting this issue. I really appreciate it. I'm looking at ways to improve this for you, is the primary concern differentiating between the following?

IConfigureOptions
IConfigureNamedOptions
IPostConfigureOptions

There's also *Cache, *Factory, *Initializer. Maybe more?
Basically there are a lot of interfaces that can sometimes seem redundant. They all need explanations in relation to both the default behaviour as well as one another.


Store Wishlist to server

What is the motivation for adding / enhancing this feature?

Currently, the wishlist is stored at only client's end only.  Implement logic such that if backend sync is enabled, it can be stored to the backend.
Storing a wishlist on the server may add a lot of value specifically when recommending products and customer specific promotions.
What are the acceptance criteria

[ ] Provision configuation file
[ ] AddToWishlist component should honor config.
[ ] Logic to make API calls to server

Can you complete this feature request by yourself?

[x] YES
[ ] NO

Which Release Cycle state this refers to? Info for developer.
Pick one option.

[x] This is a normal feature request. This should be available on https://test.storefrontcloud.io and then after tests this can be added to next Vue Storefront version. In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
[ ] (Pick this option only if you're sure) This is an important improvement request for current Release Candidate version on https://next.storefrontcloud.io and should be placed in next RC version. In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
[ ] (Pick this option only if you're sure) This is a critical improvement request for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version. In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

Additional information

This is a duplicate of #709

Thanks @pkarw for pointing that. I will try to check for an existing issue before making further issues.


When print "Generate a new Android Keystore?", can't not input 'y'

Build/Submit details page URL

Summary
For some reason, once you enter a command, you can no longer enter it.
When I go through my first build, I get a question "Generate a new Android Keystore?", which I can't accept.
yes command, printf and echo etc...
I've tried many methods, but I can't find a solution.
I need help.
Managed or bare?
managed
Environment
System:
OS: Windows 11 WSL
eas-cli/0.48.2 wsl-x64 node-v17.9.0
Expo Workflow: managed
Error output
Error: Input is required, but stdin is not readable.

Reproducible demo or steps to reproduce from a blank project
eas build --no-wait --profile development --platform android
yes y|eas build --no-wait --profile development --platform android
printf 'y' | eas build --no-wait --profile development --platform android

@wkozyra95


Test needs to be created for reversing the order for conversations

Probably this will entail a review of existing tests. 3 of them are failing but I have not clue what they are.

Note to self: tests are located at nylas-mail/packages/client-app/internal_packages/message-list/spec/message-list-spec.cjsx as indicated by @dweremeichik

So turns out there is another sort of tests included in nylas. They used jasmine for their testing kit. The test-client doesnt show much but the test-client-window does show errors and everything else. It also seems to run way more tests. There is also an xml export.
There are at least 10 errors produced by that testing kit that need to be evaluated. My guess is there is already open issues for these.

@dweremeichik do you want to just close this? Don't think anyone is ever going to make these tests; it's like, ultra-low priority lol

On the basis that there are a many more pressing tests that could be written, I agree. Closing, if you disagree @tsikerdekis let me know I'll reopen.


No detected Gamepads on Steamdeck

Since your switch to LibSDL4J in 0.19.0, Controllable doesn't detect the steamdeck buttons as a virtual controller. (ie the input device list is empty)
Reverting back to 0.18.1 fixes the issue, so I'm assuming the problem lies with the library change in 0.19.
cheers

Dang, I was really hoping LibSDL4J would be a good change since I get direct access to SDL2. Might have to revert back to GLFW for stability. Any chance you can send me your game logs? It's possible the natives didn't load.

Hey, sure. I hope these are the right ones.
https://mclo.gs/2j7gq4v

Nope, nothing that I am aware of. I currently have both installed in Prism Launcher. Just deactivated one, and activated the other between the two logs.

I can potentially try downgrading SDL to an older version since I am using a quite recent version of the library. Would you be willing to test it and send the logs back?

Yeah sure :)

Update has been published now


Does not rerender elements inside  tags unless order is changed

Is there any way to trigger a force rerender of the Sortable component? I want to add a dropdown to each Sortable that appears when clicking on an item. My menu will not show until I change the order of items in the list. I'm not sure why it's not rendering but it seems Sortable is blocking the render. I need the dropdown to be inside the list item for positioning.

Could you provide a simple example on Codepen? That can help find out the root cause. Thanks.

As you're using PureComponent with shallowCompare, it's not a good practice to modify the array content in this.state.filters, because React state should be read-only, and the shallowCompare in shouldComponentUpdate will treat this.state.filters and nextState.filters as the same Array reference.
https://github.com/turnerniles/react-virtualized-pivot/blob/master/src/components/Pivot/Pivot.jsx#L344-L362
addToFilters(filterValue) {
	const {
		currentFilter,
	} = this.state;

	let {
		filters
	} = this.state;

	if (!(currentFilter in filters)) filters[currentFilter] = [];
	filters[currentFilter].indexOf(filterValue) === -1 ?
		filters[currentFilter].push(filterValue) :
		filters[currentFilter].splice(filters[currentFilter].indexOf(filterValue), 1)

	this.setState({
		filters,
	})
}

Instead, I suggest you make a new Array reference to your this.state.filters, and then call setState() with a new array.
const newFilters = [ ...this.state.filters ];

// Update newFilters

this.setState({ filters: newFilters });

Hey cheton, super cool you went and looked at my code! I made the change you suggested. Ultimately though, even with the change I still have a different issue. When I click on additional dropdown menu I have inside ReactSortable, it loses it "z-index" and hides behind other elements. Ultimately I had to copy ReactSortable and then link to a custom Sortable.js file where I removed the 'will-change' css code in Sortable. This fixed both of my issues.
I've never used 'will-change' before. ReactSortable / Sortable seems performant without the 'will-change' css. At some point I will come back and try to figure out how to use the 'will-change' with my configuration but for now I will remove it. What are you thoughts? We can close the issue.

I found a past issue at https://github.com/RubaXa/Sortable/issues/857. It seems that it resolved some problems by adding the 'will-change' style: https://github.com/RubaXa/Sortable/commit/cb1e453fe497bd8da2b4bbcf14a6fb49c84a58bd, but I'm not sure what may cause side effects to your code. You can post the issue on Sortable.js if you found it could possibly be a bug.

Hi Cheton, good idea. I've posted the issue here https://github.com/RubaXa/Sortable/issues/1092 with a demo. You can close this issue as it is an issue with the underlying Sortable library. I tried a variety of fixes but no luck so far aside from removing the will-change code.


Fix flaky tests related to snapshot

According to our CI running every week, we have flaky tests in our CI
https://github.com/meilisearch/meilisearch/actions/runs/1829169574
This is due to snapshot

Hi, if this issue is not worked on I would like to help

Hello @Rafi993
This is really nice thank you. Any contribution is welcomed. Feel free to ask any questions or help :)

Thank you @curquiza

Hello @curquiza @Rafi993
is this bug fixed?

Sorry, I have busy for a while and have not fixed this issue. Please free to re-assign this issue.

Hey, seems like this issue is solved, according to this workflow here


[BUG] module Kaffy.Routes is not loaded and could not be found

Versions Used
Kaffy: 0.9.0
Phoenix: 1.5.7
Elixir: 1.11.2
What's actually happening?
When I run mix phx.server I get:
** (CompileError) lib/<my_site_name>_web/router.ex:4: module Kaffy.Routes is not loaded and could not be found

I believe I followed the install instructions to the letter.

The first 3 lines of my routes.ex

defmodule <MySiteName>Web.Router do
  use <MySiteName>Web, :router
  use Kaffy.Routes, scope: "/admin", pipe_through: []

In my config.exs file between the autogenerated Web.Endpoint & logger configs.

config :kaffy,
  otp_app: :scuba_site,
  ecto_repo: <MySiteName>.Repo,
  router: <MySiteName>Web.Router

In my endpoint.ex file after the autogenerated Plug.Static plug:

  plug Plug.Static,
    at: "/kaffy",
    from: :kaffy,
    gzip: false,
    only: ~w(assets)

I also ran mix deps.get and mix deps.compile separately with no errors. Not included in the Kaffy install instructions.

What should happen instead?
I would imagine following the "Minimal Install Instructions" would at least result in a functional app that runs with mix phx.server. Presumably the minimal instructions would also result in at least one admin page, but we're not there yet.
Screenshots

Sorry! Turns out it was a newbie mistake (imagine that); removing _build/ and deps/ and reinstalling worked great. I can only guess that something threw of deps.get. Amazing package 👍

Sorry! Turns out it was a newbie mistake (imagine that); removing _build/ and deps/ and reinstalling worked great. I can only guess that something threw of deps.get. Amazing package 👍

Hey @kmacdough, apologies for not replying sooner.
Glad it worked out for you 🙏🏼
Let me know if you face any more problems down the road.

Hey @kmacdough, apologies for not replying sooner.
Glad it worked out for you 🙏🏼
Let me know if you face any more problems down the road.


bump solana crates to 2.1

@OliverNChalk the precompile error tests now give different errors than before so the test fails. Wondering if the new errors mean anything to you?
---- ed25519_precompile_err stdout ----
thread 'ed25519_precompile_err' panicked at crates/litesvm/tests/precompiles.rs:51:5:
assertion `left == right` failed
  left: Some(InstructionError(0, Custom(2)))
 right: Some(InvalidAccountIndex)

New errors for precompiles seem to have been added:
/// Precompile errors
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PrecompileError {
    InvalidPublicKey,
    InvalidRecoveryId,
    InvalidSignature,
    InvalidDataOffsets,
    InvalidInstructionDataSize,
}

So can update expected to Some(InstructionError(0, Custom(2)))


MRG: Allow make_fixed_length_events to not have first_samp added

Taking over #3173 from @jhouck to get into 0.12.
Ready for review/merge from my end.

Coverage increased (+0.007%) to 90.83% when pulling 3ca1c2e0be88b3f6fa1382fabba409d983214c0e on Eric89GXL:fix-make into 5346d694acc187c5407cd2356db31eba9721f1f7 on mne-tools:master.

thx @Eric89GXL

Thanks @jhouck you did the bulk of it :)


Fix minor localization issues in Spanish:

Minor things I've seen while using the app and then reviewing some of the texts:

Use 'pack de inicio' instead of 'paquete de inicio'
Use 'Inténtalo' instead of 'Intenta'
Fix 'Por favor'
Do not use 'una' as article for 'posts'
Use 'Eliminado' instead of 'Removido'

Hi @madkoding! I'm pinging you since I saw your changes on this pull request https://github.com/bluesky-social/social-app/pull/5842 I'm not sure who I should ping to review this. Is there any guide for language contribution? Is it necessary to create an issue for these minor changes?
Thanks!

Pinging @oledfish and @Kloen for input as the other reviewers on #5842 :)

@elenatorro One tip for the future from a fellow translator: It's not necessary to translate any strings where the line starts with #~. These are obsolete strings that are no longer used in the app, they just haven't been removed from the message catalog yet.
Some translators like to remove them to keep things tidy, but it's not necessary to do this as they'll just be ignored if they're left in.

@surfdude29 thanks for the tip! I had no idea about that, I can change it back 👍🏽

I personally agree with @ecreeth in "paquete" over "pack". I think it's best to only defer to loanwords when there's no good equivalent in Spanish.

@elenatorro, the changes look good but I cannot approve them for merging myself, a maintainer will have to do that

Hi elenatorro and others! I joined bluesky a while ago and I'd be happy to contribute to the localization efforts in Spanish. I'm a professional translator, although it's been a while since I have been involved in any software localization project, so I'm excited to learn the in and outs, git, etc from more experienced peers.
I can also contribute to strategic language planning (tone and voice, style guide, consistency, etc.), specially if the project moves to Crowdin (#2940).
I would love to connect and collaborate with the rest of the team localizing into Spanish!

Thanks @pfrazee! I was late to apply some suggestions left in this PR, but I they can be fixed in following PRs, happy to help if needed.


Add istio based api-gateway

This merges in the istio based API gateway work by nickaashoek

I feel like I've missed something. I'm only seeing riff/lib and vendor code changes.


Sign error in jax.custom_jvp and jax.custom_vjp docs

I'm having fun learning JAX but think I found a sign error in the math in these docs.
In the example, f(x, y) = sin(x) * y.
df/dx is cos(x) * y as expected. But df/dy should be sin(x), not -sin(x) as in the example code for both f_jvp and f_bwd.
I'm happy to create a pull request if that's the best practice here.

Yes, please make a PR if you can! This might be another instance of the bug in #3031.

Fixed by @jiawen in #3219 !


Multi-stage build for frontend and backend

I found out that one can use either image from the hub or pre-build frontend application locally to pack it to docker.
That means that you have to have yarn installed locally if you make changes to the frontend.
There is a similar problem with backend. Distribution can carry only binary (which will make it much more lightweight) instead of carrying the whole golang sdk.
I would suggest enabling frontend build with docker multi-stage build for frontend (and possibly for backend). I'm working on PR for that.

@obukhov Thank you so much! Amazing suggestion! We can also completely decouple frontend away from backend when you see fit.

https://matthiasnoback.nl/2017/04/docker-build-patterns/

#281


Tests in Xcode 12.4 run forever

Summary
Tests in Xcode 12.4 run forever
Steps to Reproduce
Run tests in Xcode 12.4
Expected Results
Actual Results
Regression & Version
Related Link

Is the test action in the scheme set to DEBUG?
ZIPFoundation is way slower (order of magnitudes) when running unoptimized builds. The main bottleneck is the CRC32 calculation.
The test suite does not run forever - it just takes very long to complete (because some test cases create quite large archives/entries).
Please check the Build Configuration of the Test action in the Scheme Editor.


Convert mlscript declarations to typescript types

[ x ] - type alias
[ x ] - class
[ x ] - method
[  ] - trait

Add traits as interfaces without tags as in this playground

Some more problems I found that need debugging:
:ts
class LL[T]: { head: T; tail: LL[T] -> int }
  method Append: T -> LL[T]
//│ Defined class LL
//│ Declared LL.Append: ((LL['T] with {tail: (LL['T] with {tail: 'a -> int}) -> int},) as 'a) -> 'T -> ((LL['T] with {tail: ((LL['T] with {tail: 'b -> int},) as 'a) -> int}) as 'b)
//│ // start ts
//│ export type b<a<T>, T> = [Omit<LL<T>, "tail"> & {tail: (arg: a<T>) => int}]
//│ export type a<T> = Omit<LL<T>, "tail"> & {tail: b<a<T>, T> => int}
//│ export declare class LL<T> {
//│     head: T
//│     tail: (arg: LL<T>) => int
//│     constructor(fields: {head: T, tail: (arg: LL<T>) => int})
//│     Append(arg: T): a<T>
//│ }
//│ // end ts

I don't know how we landed with the wild export type b<a<T>, T> = [Omit<LL<T>, "tail"> & {tail: (arg: a<T>) => int}] here.
class C[A]
//│ Defined class C

:ts
class LL[T]: { head: T; tail: C[LL[T]] }
  method Append: T -> LL[T]
//│ Defined class LL
//│ Declared LL.Append: (LL['T] with {tail: C['a .. 'b]}) -> 'T -> ((LL['T] with {tail: C[LL['T] with {tail: C['a .. 'b]} .. 'c]}) as 'c)
//│ // start ts
//│ export type a<c, b, T> = Omit<LL<T>, "tail"> & {tail: C<a<c, b, T>>}
//│ export declare class LL<T> {
//│     head: T
//│     tail: C<LL<T>>
//│     constructor(fields: {head: T, tail: C<LL<T>>})
//│     Append<c, b>(arg: T): a<c, b, T>
//│ }
//│ // end ts

The recursive variable is called 'c here. Why is the alias we end up with named a?
And Array does not seem supported yet.

After the recent changes the types for the above example have simplified to some extent. There are however two challenges still.
:NoJS
:ts
class LinkedList[T]: { head: T; tail: LinkedList[T] }
  method Append: T -> LinkedList[T]
//│ Defined class LinkedList
//│ Declared LinkedList.Append: ((LinkedList['T] with {tail: 'a}) as 'a) -> 'T -> ((LinkedList['T] with {tail: 'b}) as 'b)
//│ // start ts
//│ export type a<T> = Omit<LinkedList<T>, "tail"> & {tail: a<T>}
//│ export declare class LinkedList<T> {
//│     head: T
//│     tail: LinkedList<T>
//│     constructor(fields: {head: T, tail: LinkedList<T>})
//│     Append(arg: T): a<T>
//│ }
//│ // end ts

A recursive type is introduced here (LinkedList['T] with {tail: 'a}) as 'a) which does make sense since the linkedlist is recursive but it causes the whole thing to be declared as a type alias.
:NoJS
:ts
class Box[G]: { value: G }
class LinkedList[T]: { head: T; tail: Box[LinkedList[T]] }
  method Append: T -> LinkedList[T]
//│ Declared LinkedList.Append: ((LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a) -> 'T -> ((LinkedList['T] with {tail: Box[(LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a .. 'd] with {value: 'd}}) as 'd)
//│ /!!!\ Uncaught error: ....

Making a boxed tails, causes the Box to be inferred with type bounds, and since AppliedType arguments are considered invariants, the invariant type bound is failing to generate for ts.
The first issue is looking very tricky, because the recursive style representation is looking perfectly valid.

:NoJS
:ts
class Box[G]: { value: G }
class LinkedList[T]: { head: T; tail: Box[LinkedList[T]] }
  method Append: T -> LinkedList[T]
//│ Declared LinkedList.Append: ((LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a) -> 'T -> ((LinkedList['T] with {tail: Box[(LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a .. 'd] with {value: 'd}}) as 'd)
//│ /!!!\ Uncaught error: ....

There has been no change in this inferred type since our last discussion (you can see the ((LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a) -> 'T -> ((LinkedList['T] with {tail: Box[(LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a .. 'd] with {value: 'd}}) as 'd) part is exactly as before). So why does it now crash? It looks like last time we discussed it, you were instead generating wrong type arguments here. Did you fix the issue?

specifically this part, ['b .. 'c] with {value: 'a}}) as 'a.

I take it you mean "specifically this part, Box['b .. 'c]"?
Anyway, this still does not explain why you generate the wrong thing when the check is off! It's really bugging me. But I guess it's not that important, and the problem will probably come out in another place later on...

Ok I think I put my finger on the troubling thing: there is a confusion between recursive type variables. Look again at your type (before the check was added):
export type a<d, c, T> = Omit<LinkedList<T>, "tail"> & {tail: Omit<Box<a<d, c, T>>, "value"> & {value: a<d, c, T>}}
export declare class LinkedList<T> {
     Append<d, c>(arg: T): a<d, c, T>

There is a d type variable that's not used. In fact it should have been a recursive type. See, in the MLs representation, it appears as the outer recursive type:
//│ Declared LinkedList.Append: ((LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a) -> 'T -> ((LinkedList['T] with {tail: Box[(LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a .. 'd] with {value: 'd}}) as 'd)

But in your example there is only one recursive type, a. Hence the bug. Maybe it's been fixed already.

Then I'll wait for #99 to use the improved typing for a few more examples. Would it be a good idea to tackle traits in a separate PR? Since this PR is already pretty big and has been open for sometime?

Then I'll wait for #99 to use the improved typing for a few more examples.

But having simpler types is not going to fix the bug – it's just going to hide it...

ld it be a good idea to tackle traits in a separate PR?

How hard is it to add traits? Isn't it basically the same things as for classes? Why wait for a missing thing that's so straightforward to add?

But having simpler types is not going to fix the bug – it's just going to hide it...

Ok I understand I can turn off the invariant check for now and fix this recursive type variable bug. Although after the simplification this case might no longer be hit.

How hard is it to add traits? Isn't it basically the same things as for classes? Why wait for a missing thing that's so straightforward to add?

I didn't meant to wait for the PR, just that this could be done in a separate PR (on this branch) in parallel. It is an involved change because currently classes are assuming they can inherit from only one class. Traits can inherit from multiple traits and even classes can inherit from multiple traits, which will need some additional logic. I was concerned that the large diff might be hard to review, so we can do it as a separate PR on this branch. Let's try it out and we can drop the approach if it doesn't work.

I can turn off the invariant check for now and fix this recursive type variable bug

Yes, please. You can also try to reduce it to simpler examples so it's easier to debug.

currently classes are assuming they can inherit from only one class

Didn't we see last time that you can reuse @chengluyu's scope-based infrastructure to resolve these inheritance things?

I was concerned that the large diff might be hard to review, so we can do it as a separate PR on this branch.

No, it's okay. There is no sense in separating the same logical change into two PRs, one half-broken and the other that unbreaks it. That's certainly not going to be easier to review.

Ok I think I put my finger on the troubling thing: there is a confusion between recursive type variables. Look again at your type (before the check was added):
export type a<d, c, T> = Omit<LinkedList<T>, "tail"> & {tail: Omit<Box<a<d, c, T>>, "value"> & {value: a<d, c, T>}}
export declare class LinkedList<T> {
     Append<d, c>(arg: T): a<d, c, T>

There is a d type variable that's not used. In fact it should have been a recursive type. See, in the MLs representation, it appears as the outer recursive type:
//│ Declared LinkedList.Append: ((LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a) -> 'T -> ((LinkedList['T] with {tail: Box[(LinkedList['T] with {tail: Box['b .. 'c] with {value: 'a}}) as 'a .. 'd] with {value: 'd}}) as 'd)

But in your example there is only one recursive type, a. Hence the bug. Maybe it's been fixed already.

I've found two issues with this, and I couldn't find a simpler example because nested recursion shows up with two constructors.
Firstly the recursive type thing. In this case AppliedType has bounded variable as argument and because it's positive polarity only the upper bound gets considered. We might have to avoid/simplify such types during type simplification.
// | Converting type -
// |   Bounds(Recursive(α27,WithExtension(AppliedType(TypeName(LinkedList),List(α23)),Record(List((head,WithExtension(AppliedType(TypeName(Box),List(Bounds(α26,α25))),Record(List((val,α27))))))))),α28)
// | with type variables
// |   TreeMap(α25 -> d, α26 -> c, α27 -> b, α28 -> a<d, c, T>, α23 -> T)
// | and polarity
// |   Some(true)
// | Converting type -
// |   α28

Also somehow the ShowCtx.mk for naming type variables is naming them differently from the mlscript version. In mlscript d is the outer recursive type var but in ts it's a. It's probably not incorrect but may cause confusion later on.
//│ Declared LinkedList.Append: ((LinkedList['T] with {head: Box['b .. 'c] with {val: 'a}}) as 'a) -> ((LinkedList['T] with {head: Box[(LinkedList['T] with {head: Box['b .. 'c] with {val: 'a}}) as 'a .. 'd] with {val: 'd}}) as 'd)
//│ export type a<d, c, T> = Omit<LinkedList<T>, "head"> & {head: Omit<Box<a<d, c, T>>, "val"> & {val: a<d, c, T>}}
//│     readonly Append<d, c>: a<d, c, T>

Didn't we see last time that you can reuse @chengluyu's scope-based infrastructure to resolve these inheritance things?

Currently the scope infrastructure maintains the base class relationship. The typegen logic needs to walk the inheritance to find all the fields and their types. The fields and types are needed to create the constructor's signature.
This logic is currently working for a single base class since it can be found using resolveBaseClass, now it will have to support implementing from multiple traits, maybe something like get resolveClassTraits.

Which also reminds of the diamond problem, currently mlscript does support diamond inheritance. As in the example below.
:NoJS
trait A: { a: number }
trait B: { b: number } & A
trait C: { c: number } & A
trait D: B & C
class Box[T]: D & { val: T }
  method HiddenValue = this.a
//│ Defined trait A
//│ Defined trait B
//│ Defined trait C
//│ Defined trait D
//│ Defined class Box
//│ Defined Box.HiddenValue: (Box['T] & a & b & c & d) -> number
//│ // start ts
//│ export declare class Box<T> {
//│     val: T
//│     constructor(fields: {val: T})
//│     readonly HiddenValue: number
//│ }
//│ // end ts

This means that the hypothetical resolveClassTraits will return a set of traits, in that it will walk the whole inheritance tree and put everything into a set to avoid duplication. This will be different from resolveBaseClass which currently is incremental in that it only returns the base class one level up, not all the base classes in the hierarchy.

In mlscript d is the outer recursive type var but in ts it's a.

But there is a d in the TS version. What is this d, then? It's unused, which is likely indicative of a bug.

The d is from this Box['b .. 'c].
AppliedType(TypeName(Box),List(Bounds(α26,α25))
// | with type variables
// |   TreeMap(α25 -> d, α26 -> c, α27 -> b, α28 -> a<d, c, T>, α23 -> T)

The whole thing is behaving weirdly because of polarity on the applied type arguments, in this case it's positive and just resolving to the upper bound α25. It's a little bit more confusing because the arguments are named with different letters in both cases.

Okay, we've already spent too much time talking about this, let's move forward. Have you solve the much more blatant problems from https://github.com/hkust-taco/mlscript/pull/87#issuecomment-1067595476, anyway?

Yes I did take a look at https://github.com/hkust-taco/mlscript/pull/87#issuecomment-1067595476.

The recursive variable is called 'c here. Why is the alias we end up with named a? Seems very fishy.

We've found this problem above as well. It has something to do with how variables are being named differently when generating typescript even while using ShowCtx.mk.

I don't know how we landed with the wild export type b<a, T> = [Omit<LL, "tail"> & {tail: (arg: a) => int}] here.

This is happening because there's a recursive type nested inside another recursive type. Each of them gets aliased separately. That's currently the expected behaviour for recursive types typegen.
((LL['T] with {tail: ((LL['T] with {tail: 'b -> int},) as 'a) -> int}) as 'b)

That's currently the expected behaviour for recursive types typegen.

How can it be the expected behavior when it's not even valid TS syntax?

I've added the typegen for traits. Here are some of the issues I'm yet to resolve -

Handle mutable fields - Currently it allows fields with in type only if they are the same as out type, the out type is taken as the representation of the field. I'll add this behaviour to all places where fields are used. However readonly and non-readonly is mentioned only addMethodDeclaration, that check will be added there.

        if (fields.iterator
          .map(field => field._2.in.map(in => in === field._2.out).getOrElse(true))
          .exists(!_)) {
            throw CodeGenError("Cannot convert mutable record field with different in out types to typescript")
          }

Handle trait fields in class constructor properly
To improve performance, calling getType twice needs to be avoided in DiffTests.

:ts
class LL[T]: { head: T; tail: C[LL[T]] }
  method Append: T -> LL[T]
//│ Defined class LL
//│ Declared LL.Append: (LL['T] with {tail: C['a .. 'b]}) -> 'T -> ((LL['T] with {tail: C[LL['T] with {tail: C['a .. 'b]} .. 'c]}) as 'c)

I found what's going wrong in the typegen here. An already aliased type is still being considered as a type parameter, when it should not because it's already a type alias. Adding that check will fix this. The expected ts for this will be.
export type b<T> = [Omit<LL<T>, "tail"> & {tail: (arg: a<T>) => number}]
export type a<T> = Omit<LL<T>, "tail"> & {tail: (arg: b<T>) => number}
export declare class LL<T> {
    head: T
    tail: (arg: LL<T>) => number
    constructor(fields: {head: T, tail: (arg: LL<T>) => number})
    Append(arg: T): a<T>
}

There's also strange brackets in the definition of b. May be that the recursive know was tied above the function's tupled parameters type. It's not correct to just use whatever type you find as an argument type in case we don't find a syntactic tuple type.
There's actually something TS allows us to do in this case: just generate (arg: ...T) => instead of (arg: T) =>.

Handle trait fields in class constructor properly

Currently mlscript allows classes to override the field type of an implemented trait. As in this example
:ts
trait A: { x: int }
trait B: { y: string }
class C: { x: "1" } & A & B
//│ Defined trait A
//│ Defined trait B
//│ Defined class C
//│ // start ts
//│ export interface A {
//│     x: int
//│ }
//│ export interface B {
//│     y: string
//│ }
//│ export declare class C {
//│     x: "1"
//│     x: int
//│     y: string
//│     constructor(fields: {x: 0 | 1, x: int, y: string})
//│ }
//│ // end ts

I'm wondering how to support this because ts class explicitly requires declaring the trait field with the same type. Very tricky this one.

I'm wondering how to support this because ts class explicitly requires declaring the trait field with the same type.

I don't understand the problem. Here, you should generate:
export interface A {
    x: int
}
export interface B {
    y: string
}
export declare class C {
    x: 1
    y: string
    constructor(fields: {x: 1, y: string})
}

x is declared as a string in the class. Here's a neater example. Currently it's incorrect because it's considering both fields. The challenge is that correct ts can only declare one field, so choosing one type is tricky now.
:ts
trait A: { x: int }
class C: { x: "hello" } & A
//│ Defined trait A
//│ Defined class C
//│ // start ts
//│ export interface A {
//│     x: int
//│ }
//│ export declare class C {
//│     x: "hello"
//│     x: int
//│     constructor(fields: {x: "hello", x: int})
//│ }
//│ // end ts

Declaring several fields with the same name never makes sense. Not in MLscript, and not in TS. The semantics here is simply to take that intersection of all declared types of the fields. That's all. It's actually straightforward.

I don't know how we landed with the wild export type b<a, T> = [Omit<LL, "tail"> & {tail: (arg: a) => int}] here.

This is happening because [...]

I just realized you misquoted me. I assume that was unintentional? Way to add more confusion into an already confusing topic.
The type I actually mentioned in my message was this one:

I don't know how we landed with the wild export type b<a<T>, T> = [Omit<LL<T>, "tail"> & {tail: (arg: a<T>) => int}] here.

There's also strange brackets in the definition of b. May be that the recursive know was tied above the function's tupled parameters type. It's not correct to just use whatever type you find as an argument type in case we don't find a syntactic tuple type.
There's actually something TS allows us to do in this case: just generate (arg: ...T) => instead of (arg: T) =>.
EDIT to add an example that does type check in TS:
type Test = [{ foo?: Test }]
function varArgs(...arg: Test) {
  console.log(...arg);
}
varArgs({ foo: [{ }] })

:NoJS
:ts
class LL[T]: { head: T; tail: LL[T] -> int }
  method Append: T -> LL[T]

About the strange bracket types. It looks like the recursive return type body is being considered a tuple. Below is debug trace from typegen for this section ((LL['T] with {tail: ((LL['T] with {tail: 'b -> int},) as 'a) -> int}) as 'b)
Omit<LL<T>, "tail"> & {readonly tail: (arg: a<T>) => int}
// converted Tuple(List((None,Field(None,WithExtension(AppliedType(TypeName(LL),List(α12)),Record(List((tail,Field(None,Function(Tuple(List((None,Field(None,α17)))),TypeName(int)))))))))))
// to -
readonly [Omit<LL<T>, "tail"> & {readonly tail: (arg: a<T>) => int}]
// converted Recursive(α16,Tuple(List((None,Field(None,WithExtension(AppliedType(TypeName(LL),List(α12)),Record(List((tail,Field(None,Function(Tuple(List((None,Field(None,α17)))),TypeName(int))))))))))))

Yeah I know, that's because the "recursive knot" was tied above the tuple type, as I said. In that case you should do what I suggested above.

Finally understood and solved this odd bracket situation. It finally clicked after pretty printing the type, a function argument is always a tuple but it can also be a rec type var with the body of a tuple. So I add appropriate checks to conversion for recursive type variables.
Record(
  List(
    (
      tail,
      Field(
        None,
        Function(
          Recursive(
            α16,
            Tuple(List((None,Field(None,WithExtension(AppliedType(TypeName(LL),List(α12)),Record(List((tail,Field(None,Function(Tuple(List((None,Field(None,α17)))),TypeName(int)))))))))))
          ),
          TypeName(int)
        )
      )
    )
  )
)

P.S. We really should figure out a way to pretty print types.

Well I believe this covers everything :rocket: :confetti_ball:
I'll just switch AppliedTypes to invariants, add some fixmes and this ready to merge then? :checkered_flag:

P.S. We really should figure out a way to pretty print types.

Most debugging info about the type is already shown by its toString implementation.

The example I was thinking where a tuple argument to a function would hide behind an AppliedType does not work well. So I'm still not sure how to add this case to examples.
:ts
// FIXME
class Arg[T]: (T, T)
class Prog[T]
  method Run: Arg['a] -> number
//│ ╔══[ERROR] cannot inherit from a tuple type
//│ ║  l.181: 	class Arg[T]: (T, T)
//│ ╙──       	      ^^^^^^^^^^^^^^
//│ ╔══[ERROR] type identifier not found: Arg
//│ ║  l.183: 	  method Run: Arg['a] -> number
//│ ╙──       	              ^^^^^^^
//│ Defined class Prog
//│ Declared Prog.Run: Prog['T] -> error -> number
//│ // start ts
//│ export declare class Prog<T> {
//│     constructor(fields: {})
//│     Run(arg: error): number
//│ }
//│ // end ts

Adding to what I wrote earlier:

The reason you can't reproduce the issue is that the current type simplifier automatically expands all type aliases. But this will probably change in a future version.

Actually, another reason is that there is just currently no frontend syntax for expressing the thing. VarArg[T] -> number is parsed as the one-parameter function type (VarArg[T],) -> number. What you'd need is a syntax like (...VarArg[T]) -> number.


Getting errors while making

Hi,
I am getting the following error while I am making it,
papi-5.5.1/src/linux-memory.c:948: undefined reference to `_intel_fast_memset',not only this but a bunch like this.Any help is appreciable.

I would start here: http://icl.cs.utk.edu/papi/software/index.html. My code
on github was just there for a bugfix.
On Mon, Feb 27, 2017 at 8:30 PM, ram469<EMAIL_ADDRESS>wrote:

Hi,
I am getting the following error while I am making it,
papi-5.5.1/src/linux-memory.c:948: undefined reference to
`_intel_fast_memset',not only this but a bunch like this.Any help is
appreciable.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pyrovski/papi/issues/1, or mute the thread
https://github.com/notifications/unsubscribe-auth/AASzeZ1J3tOh79dQATtmjL26eQ_piPyKks5rg6LjgaJpZM4MN9OM
.

--
Peter Bailey
Mountain View, CA
Phone:<PHONE_NUMBER>

It's my honor to communicate with youThe papi cannot be used normally on the 12th intel core architecture of my host. Is this normal? (The official website document supports the 3-6th intel core)
Error reported is No default PMU found in  perf_ event

See https://icl.utk.edu/papi/.
On Fri, Dec 2, 2022, 11:51 PM daidai2121 @.***> wrote:

It's my honor to communicate with youThe papi cannot be used normally on
the 12th intel core architecture of my host. Is this normal? (The official
website document supports the 3-6th intel core)
Error reported is No default PMU found in perf_ event
—
Reply to this email directly, view it on GitHub
https://github.com/pyrovski/papi/issues/1#issuecomment-1336107316, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACLG6OZ3VTJO62RDEKK5BDWLL3ZDANCNFSM4DBX2OGA
.
You are receiving this because you commented.Message ID:
@.***>


Add ingress-settings option

TL;DR
I want to deploy a CloudFunction that only allow ingress connection from internal or GLB --ingress-settings internal-and-gclb . But we don't have ingress-settings option.
Design
It would be nice if we add ingress-settings option
https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--ingress-settings
Thank you!

@thaonguyenct thanks for the FR. This should be straightforward to add. Happy to review a PR if someone else gets to it first.

For others coming to this issue from a related error: the possible values accepted by ingress_settings are taken from the API reference, not the gcloud implementation or what you might see in the console. Valid values are:

ALLOW_ALL
ALLOW_INTERNAL_ONLY
ALLOW_INTERNAL_AND_GCLB


added post

merged your post! :) I have not deployed yet, but will soon, and I'll @mention you. Cheers!


Unify SSL options with Elasticsearch / http_client mixin

ca_file should be cacert, etc. etc. for consistency.

Will make these changes for 2.0, since it will be breaking.


ScreeGear: sourced pixel straight from video card or not?

Hi,
the project looks amazing, great job!
I just would like to know if ScreenGear gets the pixels from the OS video buffers or if sources them from the graphic card.
Some programs write directly to the video card and hence when I tried other (non necessarily Python) tools like vidgear I got just a black image, I hope I can overcome this with ScreenGear :-)
Thanks!
Axl
Question

Kindly describe the issue here.
Acknowledgment

[x] I have searched the issues for my issue and found nothing related or helpful.
[ ] I have read the FAQs.
[ ] I have read the Documentation.

Context

Your Environment

VidGear version:
Branch:
Python version:
PiP version:
Operating System and version:

Optional

Ok,
using this code
from mss.windows import MSS as mss
with mss() as sct:
    filename = sct.shot(mon=-1, output='fullscreen.png')
...

doesn't seem so.
So I guess there is no way, isn't it?
Axl

Thanks @abhiTronix .
I will my questions there.
Thx!

using this code
from mss.windows import MSS as mss
with mss() as sct:
filename = sct.shot(mon=-1, output='fullscreen.png')
...
doesn't seem so.
So I guess there is no way, isn't it?

@axlgit ScreenGear also uses pyscreenshot in addition to python-mss. So you may check that too.


WIP: Add FIPS-aligned AES specification

This is a work-in-progress attempt add adding an alternative model AESSpec.lean of the AES specification that's closely aligned to the FIPS specification. The existing model in AESArm.lean and AESCommon.lean is more aligned to the Arm ASL for AES instructions.
Status: So far I merely added various interpretations of AES state as (a) bitvector, (b) byte sequence, (c) 4x4 byte grid, and conversions between them.
This is my first attempt at doing anything with Lean, and I'm sure there's a lot to improve. I'm grateful about any comments 🙏

I don't have the bandwidth to push this at the moment. I'll close for now and reopen if things change.


Different font in different regions

It would be nice if you could select i.e. a different font for comments in comparison to code just for better reading. It's not a pressing matter but nice to have :)

Duplicate of #36512


Annotating types using python unions

Feature Request Type

[ ] Core functionality
[x] Alteration (enhancement/optimization) of existing feature(s)
[ ] New behavior

Description
It seems like python (typing) union types don't work with the lazy annotations documented here: https://strawberry.rocks/docs/types/lazy.
If i have two types that need to import from each other: Kennel and Pet(union of Cat and Dog) . I will get the following error if I try to do a lazy annotation on the union type.
# pets.schema
from .pet_stores.schema import PetStore

@strawberry.type
class Cat:
  pet_store: PetStore

@strawberry.type
class Dog:
  pet_store: PetStore

Pet = Union[Cat, Dog]

# pet_stores.schema
from .pets import Pet

if TYPE_CHECKING:
    from .pets.schema import Pet

@strawberry.type
class Kennel
  pet: Annotated["Pet", strawberry.lazy(".pets.schema")]

throws:
TypeError: PetStore fields cannot be resolved. Unexpected type 'typing.Union[api_graphql.dog.schema.Dog, api_graphql.cat.schema.Cat]'

As mentioned by @patrick91 you work around this issue by swapping typing's Union with strawberry.union.
# Pet = Union[Cat, Dog]
Pet = strawberry.union("Pet", (Cat, Dog))

Discord convo: https://discord.com/channels/689806334337482765/1036814233234579526/1036814233234579526

Unions have names in graphql, that's why strawberry.union exists. It allows us to specify the unions name (Pet in your example). Unfortunately there is no way to extract the unions name from Pet = Union[Cat, Dog], since Pet is a variable and it's name is not accessible to us :)
Feel free to reopen if I missed something :)

Thanks for the explanation @DoctorJohn! Would it be worth adding this to the documentation?

Good point @fireteam99, while checking the documentation I noticed that I actually missed something: We support union creation without strawberry.union by just using typing.Union. In this case the graphql union name is generated based on the types passed as union arguments. Considering this it should be possible for strawberry to support the code you posted.
Reopening the issue (sorry for closing it, didn't remember we had that feature when answering earlier).

No worries thanks for re-opening!


I get an error of "No Provider Found" when using @Host() in a child of a child looking for a viewProvider
What do I need to be doing to access a parent provider several children down?
@Component({
  selector:'app',
  template:'<view-parent><child0></child0></view-parent>'
}) export class ParentAsProvider{}

@Component({
  selector:'view-parent',
  template:'<child0></child0>',
  viewProviders:[ ParentAsProvider ]
}) export class ParentAsProvider{
  testVar = 1
}

@Component({
  selector:'child0',
  template:'<child1></child1>'
}) export class ParentAsProvider{
  constructor(@Host() public ParentAsProvider:ParentAsProvider){
    console.log( this.ParentAsProvider.testVar==1 )//success
  }
}

@Component({
  selector:'child1'
}) export class ParentAsProvider{
  constructor(@Host() public ParentAsProvider:ParentAsProvider){
    // Angular throws an error before it even gets here of "No Provider Found"
    console.log( this.ParentAsProvider.testVar==1 )
  }
}

Using Angular 4.4.6

Hi @AckerApple, this is the repository for AngularDart. It looks like you're using the TypeScript variant. You can file this issue here: https://github.com/angular/angular/issues.


No way to access the store from the main process?

Hi,
It seems to be impossible to access the store from main.dev.js
I want to make some cleanup tasks in app.on('before-quit') like killing child processes, that requires the access to the app state which seems to be impossible.
Is there a solution to that problem?
Isn't using electron-redux instead of just plain redux is more logical for the boilerplate?
Thanks!

https://github.com/chentsulin/electron-react-boilerplate/pull/1615


[JSpecify] Support @NullUnmarked.

This PR adds support for JSpecify 0.3.0's @NullUnmarked annotation in the following scopes:

Packages
Classes
Methods

We do not yet support the module scope, since we still retain JDK 8 compatibility in NullAway.
Most of this PR is comprised of test cases for @NullUnmarked and its interactions with @NullMarked and out existing annotated/unannotated code flags. Unfortunately, the matrix of possible interactions is far too large for the test suite to be exhaustive.

Pull Request Test Coverage Report for Build #938

0 of 0   changed or added relevant lines in 0 files are covered.
34 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.1%) to 92.602%

Files with Coverage Reduction
New Missed Lines
%

../nullaway/src/main/java/com/uber/nullaway/NullabilityUtil.java
6
92.93%

../nullaway/src/main/java/com/uber/nullaway/NullAway.java
28
95.57%

Totals

Change from base Build #937:
0.1%

Covered Lines:
4907

Relevant Lines:
5299

💛  - Coveralls

Also, a question I have from these docs is: does JSpecify account for fields being @NullMarked/@NullUnmarked? It says "class members or classes" rather than "methods or classes", and @NullUnmarked on fields could help the auto-annotator solve initialization problems, but I am not sure that a field is as clearly a "code scope" as a method or class would be...

Also, a question I have from these docs is: does JSpecify account for fields being @NullMarked/@NullUnmarked? It says "class members or classes" rather than "methods or classes", and @NullUnmarked on fields could help the auto-annotator solve initialization problems, but I am not sure that a field is as clearly a "code scope" as a method or class would be...

I think the answer for fields is no, based on this issue: https://github.com/jspecify/jspecify/issues/50

Added a test for the interactions between this and AcknowledgeRestrictiveAnnotations. It doesn't currently work for fields, but the fix might be a bit more general and partly orthogonal to @NullUnmarked itself. See https://github.com/uber/NullAway/issues/573#issuecomment-1238810396. I would prefer doing that as a (relatively immediate) follow up, so it can be reverted independently if needed 🙂


free draw color

the drawing color is always in black  in free draw. is this a known issue?

No, I didn't know.
We need to a) first update excalidraw package and b) then investigate it.
I hope to work on it some time later, but I would appreciate it if someone can tackle them.
same for #43.


add support for editable content type

Added support for editable content-type and also, added a minor refactoring to the Authorization, Content-Type, X-Bz-File-Name and X-Bz-Content-Sha1 headers.
Modified the method used for setting the aforementioned headers from Add to Set because those should be single-value headers - the backend doesn't support multiple values for those headers.
So for example, the Content-Type header is set default to b2/x-auto and if the client sets this field to another value within the metadata parameter, by using the Add method, both the default option and the client used option will be sent. Hence, the content type will be set to b2/x-auto,user/selected-content-type - which is not supported by the backend api.

Also tested with a file type that is not supported in backblaze's list of supported formats with the content-type set from client library and it works ok.
@kothar Maybe when you have time, you could have a look at this.
Thanks!

@kothar Are you going to close this one?


[WIP] ONNX export

This PR adds export function to export a Chain in ONNX format.
Currently supported functions:

[x] Linear
[x] Convolution2D
[x] MaxPooling2D
[x] AveragePooling2D
[x] BatchNormalization
[x] ReLU
[x] Softmax
[x] Reshape
[x] Add

TASK:

[ ] Support more functions
[ ] Write test

Recognized Problems:

Chainer doesn't have GlobalPooling layers (e.g., GlobalAveragePooling, GlobalMaxPooling, etc.) and all global pooling operations are performed with normal pooling functions with adoptive kernel sizes, so that simply converting those layers as Average/MaxPool layer of ONNX format with concrete number of kernel sizes, it cant' accept arbitrary sized inputs anymore.

This feature is moved to another pakcage. See onnx-chainer

@mitmul  So can I close this PR?

Yes, I close this PR.

I will update this PR to merge onnx-chainer into the main stream.

Sorry, I will create another PR to integrate onnx-chainer into the main stream.


Remote state for steps not updated

Currently, only the remote state for the main pipeline fields is updated/compared. The defined steps are not taken into account. As such, terraform apply won't show changes if the local state has let's say three steps and two of them were already deleted manually in  buildkite. I suspect this has something to do with the way we compare the remote state to the local state, as such I can only assume it's because the steps are a sub-resource that doesn't get picked up. @apparentlymart can you point me to where I need to make changes and/or an example of another provider that does something similar?

Hmm interesting... diffing is supposed to happen automatically, but this could be caused by the ReadPipeline function not correctly updating the steps, and indeed it seems like it's being completely ignored:
https://github.com/saymedia/terraform-buildkite/blob/master/buildkite/resource_pipeline.go#L237
Updating set attributes is more complex than updating primitives. I expect what will be needed here is to build a []interface{} containing map[string]interface{} members whose keys match the step block arguments, and then pass the entire structure as d.Set("step", stepData). This can take some fidgeting to get right, since the Set function is able to unpack data structures like this but can be a bit temperamental about exactly what types are used for the members.

Got it. That explains why simply adding the steps to the update function didn't work for me. Will try to fix it later - related: are there any good examples on how to test terraform providers I'm the wild? Currently I run it against a real buildkite org, but it would be great if something fiddly like the steps could be done as a fixture.

The "official" Terraform providers have automatic acceptance tests which apply real configurations against the real APIs and verify that they behave as expected, but we didn't do that here because it's not really possible to set aside a test account for Buildkite without paying extra for it. :/
If you were willing to run them against your "real" account then you could potentially follow a similar pattern as the providers built in to Terraform. For example, the rundeck_project one is a reasonably straightforward case:
https://github.com/hashicorp/terraform/blob/master/builtin/providers/rundeck/resource_project_test.go
There's some more info on this in the contributing guide:
https://github.com/hashicorp/terraform/blob/master/.github/CONTRIBUTING.md#writing-an-acceptance-test
I expect running them will look a bit different for a provider that doesn't live in the Terraform repository. Hopefully it will be sufficient to just run the following from the $GOPATH/src/github.com/hashicorp/terraform directory:
make testacc TEST=github.com/saymedia/terraform-buildkite/buildkite

This makefile target is just a thin wrapper around running go test with an environment variable set to confirm that we want to run potentially-expensive tests. In the case of buildkite there isn't a per-pipeline cost so it's not a huge deal, but this mechanism is oriented towards providers like AWS where there's often a per-hour charge for resources under test.

but we didn't do that here because it's not really possible to set aside a test account for Buildkite without paying extra for it.

@toolmantim, is that something you could provide free of charge for this open source project?

Funnily enough I sent the Buildkite folks a note about this earlier today since I didn't have a good way to test your PRs. :grinning:

We're happy to provide a free open-source account, if someone wants to create an org and email me at<EMAIL_ADDRESS>

@apparentlymart as the owner of this repo, I think that ^ would be you :)

I do personally now have a comped account to test with, though I got the impression that this would be available to others who wanted to work on this provider too, as long as it doesn't end up getting use for "real" work. :grinning:

Yes, I think so. I will create an org.
On 18 May 2017 8:50 am, "Martin Atkins"<EMAIL_ADDRESS>wrote:

I do personally now have a comped account to test with, though I got the
impression that this would be available to others who wanted to work on
this provider too, as long as it doesn't end up getting use for "real"
work. 😀
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/saymedia/terraform-buildkite/issues/9#issuecomment-302253081,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AALehg7Vgr9YhxKMbs80siur6XA52vBMks5r63mzgaJpZM4MtooP
.


Modified Bubble sort with improved time complexity using JAVA (GSSOC'21)

🚀 Feature
Have you read the Contributing Guidelines on Pull Requests?
Yes !
AIM :: To make the bubble sort more optimize and adaptive by improved time complexities using JAVA.
Motivation
As i found the optimized bubble sort in C language but not in JAVA , So i am willing to contribute it...
Pitch
Hi I am GSSoC'21 participant,
"I am looking to work on the Modified Bubble sort with improved time complexity issue #2686”
I will use JAVA, as this issue is already present in C language so i am willing to contribute using JAVA,
I will make the bubble sort more adaptive by using the flag variable
I will write the clean and optimized code , by keeping best case time and space complexity in mind and
with  brief commenting and algorithm.
So i would to like @bhav09 , @HarshCasper sir to please assign this issue to me , so that i can do PR ,
as i have already completed with coding :)
/assign

Hello @ananddasani,
Thank you for opening an issue. 🥳
To get assigned to this particular issue please use /assign
Check this guide before contributing.

/assign

/assign


Lambda -1 implementation:

The Lambda -1 interface can be set under the [simulation] section in the TOML file (e.g., lambda_minus_one = -34).

The starting condition can be either L or R in the 000 ensemble.

All 0- paths hitting the Lambda -1 interface will be accepted if they are valid (0- paths can be RML, RMR, LMR, LML).

For RETIS zero swap, the swap move will be rejected if the 0- path is RML or LML (with status 0-L).

You can also put the following pytests at the end of the test_zero_swaps function, in file infretis/test/tis/test_tis.py,
    # test the lambda_minus_one feature for retis_swap_zero
    if zero_swap_move.__name__ == "retis_swap_zero":
        pathdir = PosixPath(tmp_dir / "zero_swap_move")
        pathdir.mkdir()
        turtle.exe_dir = str(pathdir.resolve())
        intf_minus = (-1.05, -1.02, -0.99)
        picked[-1]["ens"]["interfaces"] = intf_minus
        picked[-1]["ens"]["start_cond"] = ["L", "R"]

        success, [new_path0, new_path1], status = zero_swap_move(
            picked, engines
        )

        # LMR path should be generated
        start, end, middle,  _ = new_path0.check_interfaces(intf_minus)
        assert start == "L"
        assert end == "R"
        assert middle == "M"

you can see that the test passes by running pytest test_tis.py  in the terminal and in that file directory

I guess for now we disable lambda -1 if quantis is run @lukasbaldauf, so if you may in infretis/infretis/setup.py, add
    quantis = config["simulation"]["tis_set"].get("quantis", False)
    lambda_minus_one = config["simulation"].get("lambda_minus_one", False)

    if quantis and lambda_minus_one:
        raise TOMLConfigError("Cannot run quantis with lambda_minus_one!")

in the check_config function

to pass the github checks, in the base infretis folder try
black infretis
ruff check infretis
and look at the required fixes in the terminal

I guess for now we disable lambda -1 if quantis is run

Yes I think that’s okay, I feel they wouldn’t be used in combination too much, since it should be used speed up the [0-] paths.
Also, in the check_config, maybe we could add a check that if lambda_minus_one is set, it should be less than interface0.

Thanks guys for the comments. I added all the suggestions. Also, ran black and ruff and fixed the issues.

Thanks for fixing these things!
I hope I'm not too picky now, but I have 2 other teeny-tiny things. I would change it myself but I don't think I can push to your fork.

1: Try using .get() only once, as we had some issues with this earlier:
lambda_minus_one = self.config["simulation"].get(

I think we could set the keyword only once in setup_config in infretis/setup.py and then use something like
lambda_minus_one = self.config["simulation"]["lambda_minus_one"]

in the repex.py functions (without usining .get). That can avoid some errors.

2: Not really a problem: in the .toml, consider moving the lambda_minus_one keyword to the [simulation][simulation.tis_set] section.
Everything else looks neat!

No problem!
I had to define a property in repex.py so that I could use lambda_minus_one everywhere. Now, we use .get() once in setup_config and once in repex.py. It has also been moved to simulation.tis_set.
Let me know if there’s anything else you’d like to change.

It was already very nice before!
I think my suggestions were a bit unclear, so I modified it now with what I had in mind.
.Do you think this would work?

Everything looks fine. There was just a small issue with inconsistency in the default value for lambda_minus_one. In some places, it was None, and in others, it was False. I fixed it, and now it is set to False everywhere.

Yea sorry for that, it was me that mixed the False up in there. I caught one more default one.
One more thing, how do you go about analyzing the results? With the regular WHAM in inftools i get an error since the LL paths have a max op less than interface. Or is that maybe something yet to fix?

Yeah, exactly, I got that too when I was using the WHAM. I don’t have a solution for it right now, but I was talking with Titus about it last month, and I’ll try to fix it by the end of January. For now, we need to delete the 0-LML path from infretis.data.
By the way, I’ve written an order parameter for my case that uses MDAnalysis. It takes two groups from the TOML file and calculates the ZCOM distance between them as lambda. Do you think it would be easy to add that to the main branch? I was wondering if using MDAnalysis might be an issue. You’re probably aware of the problems with MDAnalysis because the TPR parser version changes with every GROMACS release, which then requires updates to MDAnalysis.

By the way, I’ve written an order parameter for my case that uses MDAnalysis. It takes two groups from the TOML file and calculates the ZCOM distance between them as lambda. Do you think it would be easy to add that to the main branch? I was wondering if using MDAnalysis might be an issue. You’re probably aware of the problems with MDAnalysis because the TPR parser version changes with every GROMACS release, which then requires updates to MDAnalysis.

I think maybe adding it to a new folder called "order parameters" in infentory as some sort of template would be better, so there would be less to maintain in this repo?
One single trivial test fails when running pytest test (all the written tests are ran). The variable lambda_minus_one is now always saved in restart.toml, while the corresponding test files in infretis/test/simulations/data/10steps_wf, 10steps_wf and 30steps_wf does not have them. So if you could add them, e.g.
--- a/test/simulations/data/10steps_wf/restart.toml
+++ b/test/simulations/data/10steps_wf/restart.toml
@@ -68,6 +68,7 @@ allowmaxlength = false
 zero_momentum = false
 n_jumps = 6
 quantis = false
+lambda_minus_one = false
 accept_all = false

Then I'll merge this PR.
(Personally I am not sure if this is the best way to test (and always have to add the new keywords in the test templates, but oh well)).


Unable to run ANS-startup example

Hi,
I am trying to run ANS on SLES 12 SP4 with dpdk-stable-18.11.1-rc1.  When  I try to run the ANS startup example using the command ./ans -c 0x4 -n 1 -- -p 0x1 --config="(0,0,2)"  the following is the result-
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:03:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 15ad:7b0 net_vmxnet3
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 15ad:7b0 net_vmxnet3
Start to Init port
port 0:
port name net_vmxnet3:
max_rx_queues 16: max_tx_queues:8
rx_offload_capa 0x281f: tx_offload_capa:0x802f
Creating queues: rx queue number=1 tx queue number=1...
MAC Address:00:0C:29:F8:19:59
Deault-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x0
lcore id:2, tx queue id:0, socket id:0
Conf-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x2e
Allocated mbuf pool on socket 0, mbuf number: 16384
Initializing rx queues on lcore 2 ...
Default-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0x0
Conf-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0xf
port id:0, rx queue id: 0, socket id:0
core mask: 4, sockets number:1, lcore number:1
start to init ans
USER8: LCORE[2] lcore mask 0x4
USER8: LCORE[2] lcore id 2 is enable
USER8: LCORE[2] lcore number 1
USER8: LCORE[2] lcore(2)'s sockets(0) hasn't mbuf pool
EAL: Error - exiting with code: 1
Cause: Init ans failed
How do I overcome this error?

Do you change ans_main.c code?
Print init_conf.pktmbuf_pool[i] value in ans_main.c and check if init_conf.pktmbuf_pool[0] is null.
for(i = 0 ; i < MAX_NB_SOCKETS; i++)
{
init_conf.pktmbuf_pool[i] = ans_pktmbuf_pool[i];
}

I modified the ans_main.c code to print the init_conf.pktmbuf_pool[i] used %u as the format specifier. Got the following output-
Allocated mbuf pool on socket 0, mbuf number: 16384
Initializing rx queues on lcore 2 ...
Default-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0x0
Conf-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0xf
port id:0, rx queue id: 0, socket id:0
core mask: 4, sockets number:1, lcore number:1
start to init ans
init_conf.pktmbuf_pool[0]= 4710144
init_conf.pktmbuf_pool[1]= 0
init_conf.pktmbuf_pool[2]= 0
init_conf.pktmbuf_pool[3]= 0
init_conf.pktmbuf_pool[4]= 0
init_conf.pktmbuf_pool[5]= 0
init_conf.pktmbuf_pool[6]= 0
init_conf.pktmbuf_pool[7]= 0
USER8: LCORE[2] lcore mask 0x4
USER8: LCORE[2] lcore id 2 is enable
USER8: LCORE[2] lcore number 1
USER8: LCORE[2] lcore(2)'s sockets(0) hasn't mbuf pool
EAL: Error - exiting with code: 1
Cause: Init ans failed
init_conf.pktmbuf_pool[0] is not NULL but subsequent elements of that array are zero.

init_conf.pktmbuf_pool[0] is not NULL,  why print such error? they are the same memory address.
USER8: LCORE[2] lcore(2)'s sockets(0) hasn't mbuf pool.
Please use dpdk-18.11 version.

I am using dpdk-stable-18.11.1 version itself.

Try dpdk-18.11 version, because ans libs are compiled based on dpdk-18.11 version.
By the way, How did you choose ans libs?

I ran ./install_deps.sh got the message "Generate librte_ans.a/librte_anssock.a/librte_anscli.a for sandybridge successfully."

Using dpdk-18.11 version still getting the same error.

Don't know the root cause. the memroy address is same, but print out different value.
You can try on on other linux system with bare metal.

Ok Thank you.

Any update?

Now, i am trying to run ANS on Ubuntu 18.04 on VM with dpdk-18.11.  When i run the ANS startup example using the command ./ans -c 0x4 -n 1 -- -p 0x1 --config="(0,0,2)" the getting the following output-
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:03:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 15ad:7b0 net_vmxnet3
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 15ad:7b0 net_vmxnet3
Start to Init port
port 0:
port name net_vmxnet3:
max_rx_queues 16: max_tx_queues:8
rx_offload_capa 0x281f: tx_offload_capa:0x802f
Creating queues: rx queue number=1 tx queue number=1...
MAC Address:00:0C:29:B0:14:A6
Deault-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x0
lcore id:2, tx queue id:0, socket id:0
Conf-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x2e
Allocated mbuf pool on socket 0, mbuf number: 16384
Initializing rx queues on lcore 2 ...
Default-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0x0
Conf-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0xf
port id:0, rx queue id: 0, socket id:0
core mask: 4, sockets number:1, lcore number:1
start to init ans
USER8: LCORE[2] lcore mask 0x4
USER8: LCORE[2] lcore id 2 is enable
USER8: LCORE[2] lcore number 1
USER1: rte_ip_frag_table_create: allocated of 25165952 bytes at socket 0
add veth0 device, kni id 0
USER8: LCORE[2] Interface veth0 if_capabilities: 0x802f
add IP a000002 on device veth0
show all IPs:
veth0: mtu 1500
link/ether 00:0c:29:b0:14:a6
inet addr: <IP_ADDRESS>/24
add static route
ANS IP routing table
<IP_ADDRESS>/24 via dev veth0 src <IP_ADDRESS>
<IP_ADDRESS>/24 via <IP_ADDRESS> dev veth0
Checking link status done
Port 0 Link Up - speed 10000 Mbps - full-duplex
USER8: main loop on lcore 2
USER8:  -- lcoreid=2 portid=0 rxqueueid=0
hz:<PHONE_NUMBER>
I am wondering if the output stops at hz:<PHONE_NUMBER> or should there be anything more. And also i am not able to figure out how to send data to dev veth0.
Thanks.

Now, i am trying to run ANS on Ubuntu 18.04 on VM with dpdk-18.11. When i run the ANS startup example using the command ./ans -c 0x4 -n 1 -- -p 0x1 --config="(0,0,2)" the getting the following output-
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:03:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 15ad:7b0 net_vmxnet3
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 15ad:7b0 net_vmxnet3
Start to Init port
port 0:
port name net_vmxnet3:
max_rx_queues 16: max_tx_queues:8
rx_offload_capa 0x281f: tx_offload_capa:0x802f
Creating queues: rx queue number=1 tx queue number=1...
MAC Address:00:0C:29:B0:14:A6
Deault-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x0
lcore id:2, tx queue id:0, socket id:0
Conf-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x2e
Allocated mbuf pool on socket 0, mbuf number: 16384
Initializing rx queues on lcore 2 ...
Default-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0x0
Conf-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0xf
port id:0, rx queue id: 0, socket id:0
core mask: 4, sockets number:1, lcore number:1
start to init ans
USER8: LCORE[2] lcore mask 0x4
USER8: LCORE[2] lcore id 2 is enable
USER8: LCORE[2] lcore number 1
USER1: rte_ip_frag_table_create: allocated of 25165952 bytes at socket 0
add veth0 device, kni id 0
USER8: LCORE[2] Interface veth0 if_capabilities: 0x802f
add IP a000002 on device veth0
show all IPs:
veth0: mtu 1500
link/ether 00:0c:29:b0:14:a6
inet addr: <IP_ADDRESS>/24
add static route
ANS IP routing table
<IP_ADDRESS>/24 via dev veth0 src <IP_ADDRESS>
<IP_ADDRESS>/24 via <IP_ADDRESS> dev veth0
Checking link status done
Port 0 Link Up - speed 10000 Mbps - full-duplex
USER8: main loop on lcore 2
USER8: -- lcoreid=2 portid=0 rxqueueid=0
hz:<PHONE_NUMBER>
I am wondering if the output stops at hz:<PHONE_NUMBER> or should there be anything more.
When i run dpdk-tcp-server, i get following output.
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_5006_8948613fe3af
EAL: Probing VFIO support...
EAL: VFIO support initialized
USER8: LCORE[-1] anssock any lcore id 0xffffffff
USER8: LCORE[0] anssock app id: 5006
USER8: LCORE[0] anssock app name: dpdk_tcp_server
USER8: LCORE[0] anssock app lcoreId: 0
USER8: LCORE[0] mp ops number 9, mp ops index: 0
dpdk tcp server is running
How can i send data to this dpdk-tcp-server?
Thanks.

Now, i am trying to run ANS on Ubuntu 18.04 on VM with dpdk-18.11. When i run the ANS startup example using the command ./ans -c 0x4 -n 1 -- -p 0x1 --config="(0,0,2)" the getting the following output-
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:03:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 15ad:7b0 net_vmxnet3
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 15ad:7b0 net_vmxnet3
Start to Init port
port 0:
port name net_vmxnet3:
max_rx_queues 16: max_tx_queues:8
rx_offload_capa 0x281f: tx_offload_capa:0x802f
Creating queues: rx queue number=1 tx queue number=1...
MAC Address:00:0C:29:B0:14:A6
Deault-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x0
lcore id:2, tx queue id:0, socket id:0
Conf-- tx pthresh:0, tx hthresh:0, tx wthresh:0, tx offloads:0x2e
Allocated mbuf pool on socket 0, mbuf number: 16384
Initializing rx queues on lcore 2 ...
Default-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0x0
Conf-- rx pthresh:0, rx hthresh:0, rx wthresh:0, rx offloads:0xf
port id:0, rx queue id: 0, socket id:0
core mask: 4, sockets number:1, lcore number:1
start to init ans
USER8: LCORE[2] lcore mask 0x4
USER8: LCORE[2] lcore id 2 is enable
USER8: LCORE[2] lcore number 1
USER1: rte_ip_frag_table_create: allocated of 25165952 bytes at socket 0
add veth0 device, kni id 0
USER8: LCORE[2] Interface veth0 if_capabilities: 0x802f
add IP a000002 on device veth0
show all IPs:
veth0: mtu 1500
link/ether 00:0c:29:b0:14:a6
inet addr: <IP_ADDRESS>/24
add static route
ANS IP routing table
<IP_ADDRESS>/24 via dev veth0 src <IP_ADDRESS>
<IP_ADDRESS>/24 via <IP_ADDRESS> dev veth0
Checking link status done
Port 0 Link Up - speed 10000 Mbps - full-duplex
USER8: main loop on lcore 2
USER8: -- lcoreid=2 portid=0 rxqueueid=0
hz:<PHONE_NUMBER>
I am wondering if the output stops at hz:<PHONE_NUMBER> or should there be anything more.
I have added ip address to veth0 using anscli.
The output of ip addr show is-
veth0: mtu 1500
link/ether 00:0c:29:b0:14:a6
inet addr: <IP_ADDRESS>/24
inet addr: <IP_ADDRESS>/23
I am not able to ping veth0 using <IP_ADDRESS> from other machine as well as within the VM. What should be done to correct this?
Thanks.

ans startup ok.
You can use "ip link show", "ip neigh show" to check it. or tcpdump on other mechine.

This is the output for ip link show and ip neigh show-
ans>ip neigh show
ANS IP neigh table
<IP_ADDRESS> dev veth0 lladdr 0:0:0:0:0:0 INCOMPLETE
ans> ip link show
veth0: port 0 state UP speed 10000Mbps full-duplex mtu 1500
link/ether 00:0c:29:b0:14:a6
IPV4 checksum offload enable
UDP checksum offload enable
TCP checksum offload enable
TCP TSO offload enable
Max allowed number of segments: 255
RX packets:9042 errors:0 dropped:0
TX packets:100 errors:0 dropped:0

Check your network by yourself.

Hi,
This is the output of ip neigh show on anscli-
ans> ip neigh show
ANS IP neigh table
<IP_ADDRESS> dev veth0 lladdr 2c:21:31:ee:76:00 REACHABLE
<IP_ADDRESS> dev veth0 lladdr 00:0c:29:f8:19:4f REACHABLE
<IP_ADDRESS> dev veth0 lladdr 00:0c:29:b0:14:9c REACHABLE
<IP_ADDRESS> dev veth0 lladdr 0:0:0:0:0:0 INCOMPLETE
It tells that IP <IP_ADDRESS> is reachable from veth0. I am running linux_tcp_server on <IP_ADDRESS> and i am running dpdk_tcp_client on <IP_ADDRESS>(veth0). But i am not able to connect to the server getting the following output-
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_9828_e2385d38774
EAL: Probing VFIO support...
EAL: VFIO support initialized
USER8: LCORE[-1] anssock any lcore id 0xffffffff
USER8: LCORE[0] anssock app id: 9828
USER8: LCORE[0] anssock app name: dpdk_tcp_client
USER8: LCORE[0] anssock app lcoreId: 0
USER8: LCORE[0] mp ops number 9, mp ops index: 0
fd(28) connect to remote server failed
fd(37) connect to remote server failed
fd(36) connect to remote server failed
fd(35) connect to remote server failed
fd(34) connect to remote server failed
fd(33) connect to remote server failed
fd(32) connect to remote server failed
fd(31) connect to remote server failed
fd(30) connect to remote server failed
fd(29) connect to remote server failed
all fd connect to server failed
Do you know what the problem could be?
Thanks.

Hi,
This is the output of ip neigh show on anscli-
ans> ip neigh show
ANS IP neigh table
xx.xx.xx.254 dev veth0 lladdr xx:xx:xx:xx:76:00 REACHABLE
xx.xx.xx.213 dev veth0 lladdr xx:xx:xx:xx:19:4f REACHABLE
xx.xx.xx.74 dev veth0 lladdr xx:xx:xx:xx:14:9c REACHABLE
xx.xx.xx.255 dev veth0 lladdr 0:0:0:0:0:0 INCOMPLETE
It tells that IP xx.xx.xx.213 is reachable from veth0. I am running linux_tcp_server on xx.xx.xx.213 and i am running dpdk_tcp_client on xx.xx.xx.76(veth0). But i am not able to connect to the server getting the following output-
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_9828_e2385d38774
EAL: Probing VFIO support...
EAL: VFIO support initialized
USER8: LCORE[-1] anssock any lcore id 0xffffffff
USER8: LCORE[0] anssock app id: 9828
USER8: LCORE[0] anssock app name: dpdk_tcp_client
USER8: LCORE[0] anssock app lcoreId: 0
USER8: LCORE[0] mp ops number 9, mp ops index: 0
fd(28) connect to remote server failed
fd(37) connect to remote server failed
fd(36) connect to remote server failed
fd(35) connect to remote server failed
fd(34) connect to remote server failed
fd(33) connect to remote server failed
fd(32) connect to remote server failed
fd(31) connect to remote server failed
fd(30) connect to remote server failed
fd(29) connect to remote server failed
all fd connect to server failed
Do you know what the problem could be?
Thanks.

According to " tx_offload_capa:0x802f ",  the net_vmxnet3 support checksum offload.
But according to the pcap file, all the checksum is wrong.
You can disable the checksum offload by modify ans_set_port_offload() in ans_main.c.


Improve regex pattern for Input formatters

In the current version, I use this format  (line 286)
this format work fine for:

type decimal numbers
negative and positive number
avoid more than 2 zeros in the front and allow multiple zeros after the decimal point

inputFormatters: [
  FilteringTextInputFormatter.allow(RegExp(r'^\d*\.?\-?\d*')),
],

but there is an issue occurred :
found issue:

negative sign after number: #23
the input can be like 5-5. this should be not allowed. the - sign should only be available in the front.

case that needs to cover:

[x] keyboard allowed: numbers 0-9, and some characters:  dot (.), plus sign ( + ), and negative sign (-)
[x] allow decimal numbers: 1.3, 2.4. etc
[ ] special for zero in the front:  0.3 and .3 are the same value.
[ ] avoid more than 2 zeros in the front: 000.3 ❌
[x] We can type a positive sign in the front: example: +23
[x] We can type a negative sign in the front: example: -54
[ ] Negative and positive sign only in the front:  related to PR: #23

example test:

number
result

23
✔

+23
✔

-23
✔

0.4
✔

.4
✔

00.4
❌

0.04
✔

0.405
✔

47-7
❌

45+43
❌

054
❌

5009
✔

0008
❌

-0.45
✔

will fix in next release.


Highlighting should match search results.

To replicate, search for e on https://www.webonary.work/test-warfel/?lang=en, choosing the language, Aweti.

Notice that all English e's are highlighted:

Nothing should be highlighted in another language than the search language.

The highlighting appears on all occurrences of the searched for letter even when "Match all words" is selected.
Here is an example from Bolinao. https://www.webonary.org/bolinao/


Bump surefire version

Bumps maven surefire plugin to a non milestone version. Matches quarkus' main.

@phillip-kruger


Concurrent Access of File Share from multiple pods

Hi Team,
I read the documentation about "Manually create and use a volume with Azure Files share in Azure Kubernetes Service (AKS)" at https://docs.microsoft.com/en-us/azure/aks/azure-files-volume
I don't clearly understand the meaning of this sentence:

If multiple pods need concurrent access to the same storage volume, you can use Azure Files to connect using the Server Message Block (SMB) protocol

Can you please clarify this? I want multiple pods to read the files in the Storage Account's file share concurrently. Is it possible to achieve using azure files?
Edited: Added doc info

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

ID: d634c63a-6194-86a6-b522-3310812c81e8
Version Independent ID: fa86da1e-9c86-88fe-170c-5e6aa9230b5f
Content: Create a static volume for multiple pods in Azure Kubernetes Service (AKS)
Content Source: articles/aks/azure-files-volume.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@sathyatvrcbe, Thanks for the feedback! We are taking a look into this and will get back to you soon.

@sathyatvrcbe yes what you are looking to achieve will work with file shares. You are able have multiple different pods all read out of the same file storage. As per reading the same file in that storage account, that should also be possible. Of course you would run into issues if you have all the pods trying to write to the same file but reading it should not be an issue.

I will close this but if you have further questions let me know and we can always reopen and continue the discussion.

Getting permission denied issue for some of the files/folders while deploying the application with azure file share static/dynamic. Without pv/pvc, the application is working fine. In mount option gid/uid specify as 1000. Is there any changes required in mountoptions, if permission needs to change within file share?


[Staging][2.9.0-SNAPSHOT] ecl 1.4.0 cannot create deployments

@kuisathaverat commented on Wed Feb 17 2021

I am trying to create a new deployment on the staging environment and I have found some issues, the payload seems to be wrong for the versions deployed.
Readiness Checklist

[X] I am running the latest version
[X] I checked the documentation and found no answer
[X] I checked to make sure that this issue has not already been filed
[X] I am reporting the issue to the correct repository (for multi-repository projects)

Expected Behavior

A deployment is created
Current Behavior

The deployment is not created and fails with the following error
The deployment creation returned with an error. Use the displayed request ID to recreate the deployment resources
Request ID: 2agzyd38vm1thksrn16dfjlawku9j7zjvzoffwaisk4p7lwrj5rrzp1mds8rwme8
api error: 1 error occurred:
	* deployments.unrecognized_topology_elements: Deployment plan definition includes topology element not supported by template [I/O Optimized]. Instance configuration: [Some(aws.data.highstorage.d3)], node types: [Some(ElasticsearchNodeType(Some(false),Some(true),Some(false),None))] (resources.elasticsearch[0])

Possible Solution

Steps to Reproduce

run  ecl deployment create --name "es-oblt-test-ecl" --version "7.11.0" --es-size 4g --host https://admin.staging.foundit.no

Context

Your Environment

Version used: ecl 1.4.0
Server type and version: Elastic cloud staging environment 2.9.0-SNAPSHOT

This was fixed in https://github.com/elastic/ecctl/pull/460 and will be released in the upcoming v1.3.0.


feat: adds settings on Tenant and deduplicate_token on Token

Description

adds settings on Tenant and deduplicate_token on Token

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

Rollback / Rollforward Procedure

[x] Roll Forward
[ ] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

:tada: This PR is included in version 1.48.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


feature/7-add-dynamic-adjacency-matrix

The more complex data structure that allows graphs to dynamically change their
edges after initialization.

OBE


not being linked properly on windows for end binary

https://github.com/Axect/Peroxide/issues/16 reports a problem where the linker could not find the corrrect library to link on Windows 10 for an official install

This should be fixed by allowing the enviroment variable NETCDF_DIR during build time (#90)


files: uploader's state should reflect the backend "files" structure

The file uploader holds a redux state with the current uploaded/ongoing files. This state should remain intact and the files representation from/to the backend should be handled centrally e.g de/serializer props.

Not needed


Update sort.py

Hoare partition has been added.

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

a new commit with the updated code which is bug free has been added.
fixes made:
1)partition wasn't returning the index
2)quicksort_hoare wasn't recursively called.

a new commit with the updated code which is bug free has been added.
fixes made:
1)partition wasn't returning the index
2)quicksort_hoare wasn't recursively called.

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

do you mean using threads??

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

do you mean using threads??

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

do you mean using threads??

I mean to say, if there are any other partition methods as well for the Quicksort, then please add them too in the same PR, if you don't want to add them let me know, I will merge it.

Please add all the partitions at the same time. Don't push one by one. That just increases the complexity.

do you mean using threads??

I mean to say, if there are any other partition methods as well for the Quicksort, then please add them too in the same PR, if you don't want to add them let me know, I will merge it.

I mean to say, if there are any other partition methods as well for the Quicksort, then please add them too in the same PR, if you don't want to add them let me know, I will merge it.

There is multi-pivot partitioning. But the main ones are the hoare and lumoto which has been added.
If multi-pivot partitioning needs to be implemented I can. Assign the task to me and I'll get working on it.

I mean to say, if there are any other partition methods as well for the Quicksort, then please add them too in the same PR, if you don't want to add them let me know, I will merge it.

There is multi-pivot partitioning. But the main ones are the hoare and lumoto which has been added.
If multi-pivot partitioning needs to be implemented I can. Assign the task to me and I'll get working on it.

No it's alright if the main pivots are added. Merging it.


Sidebar autoclose. Duplicate of #729

I'm experiencing a bug with autoclosing sidebar again after last update (to 2.3.3). Please, apply fix from issue #729 again.

Hello,
Unfortunately, this solution would make auto-generated links not part of the sidebar's treeview.
Thanks!

What about my previous rejected fix from here: https://github.com/almasaeed2010/AdminLTE/pull/730#event-442855483 ? Is it also ruin autogenerated links?

I'm closing it. Let's continue the discussion in #1094


Improve quality of LST: replace applicable markers with LST elements

Replace:

[ ] AnnotationUseSite:
The J tree expects J.Annotation(s), a final class. In K, there is an additional suffix after the use site annotation like @file : .... This change may require an update to J.Annotation since various classes require it.
[ ] IsNullable:
Nullable is a generally applicable concept across J and every implementation of J, and may be generally fixable. https://github.com/openrewrite/rewrite-kotlin/pull/489
[ ] IsNullSafe:
Possible solution: Add an IsNullSafe Expression pass-through to contain the applicable expression.
[x] Modifier: The modifier marker was supposed to be replaced in the PSI parser with the J.Modifier#keyword, and appears to still be in use.
[ ] TypeReferencePrefix
Possible solution: Add a TypeReference TypeTree tree to contain the applicable expression.

Update:

[ ] Elvis:
This marker exists in both Groovy and Kotlin, and will likely be reused elsewhere. We should probably add this to rewrite-java and use the reuse the marker.

Elvis marker is not used anymore in Kotlin and has been changed a K.Binary, so we can deprecate it directly here.

I checked IsNullSafe marker again, there are 3 usage scenarios

J.FieldAccess, example: test   ?. property, the space before ?. is handled by leftPadded
J.MethodInvocation, example:

              val filter = null   ?. let { _ ->
                  { false
                  }
              }

the space before ?. is handled by suffix of the select (RightPadded)

J.TypeCast, example val map = mapOf(Pair("one", 1))   as? Map<*, *>, the space before  ?. is handled by the prefix of J.TypeCast.clazz

so I think the prefix in this marker is not necessary, we can remove it or deprecate it and keep the marker there.
@knutwannheden @traceyyoshima  what do you think?

Let's also try to be careful to not break LST deserialization as we do these refactorings. In moderne-ast-write we can set up regression tests, so that we know if we need to customize deserialization or not.


Better E-mail address handling

This pull request fixes the issue #29.
I have introduced the to_emails method which treats Mail::AddressContainer and Mail::Address properly.

Love it!  @h6ah4i Thanks for the feature improvement and excellent spec coverage.


Fix image not centered in Item View on Mobile in IE11 #2994

Now image is centered. But in IE width of Item element more than width of window.

Create new pull request in next brach https://github.com/Semantic-Org/Semantic-UI/pull/3818


Add obsoletion message when config has Performance/Rails cops in it

Ran into this today when helping someone update rubocop. Performance cops were still in their config but no longer existing, and we did not have an obsoletion for it.
This adds a new type of cop obsoletions, where cops are extracted to another gem. It checks that the gem is not installed before outputting the error message (using the same bundle parsing as #9168, which will rebase away when that is merged) to ensure that configs are not marked as obsolete if rubocop-performance is active.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Probably you can add the Rails cops there as well. They were also extracted at some point from the main gem.

@bbatsov updated to include Rails too now.

Test failures appear to be unrelated.

This config should probably be extracted to rubocop-rails and removed from here.

Yeah, definitely.

Great work!


Return an es6-promise from Request.(query|exec) when no callback is specified.

It would be nice if a Request.query|exec  etc would return a promise.  i-promise would require downstream projects to include an ES6 Promise compatible implementation (or be > 0.11.x with --harmony where Promise is native)
var Promise = require('i-promise');
...
Request.prototype.query = function foo(args, callback) {
  var req = this;
  if (!callback) {
    return new Promise(function(resolve, reject){
      internalQuery(conn, req, args, function(err, recordset) {
        if (err) return reject(fail);
        return resolve(recordset);
      });
    });
  }
}

or a Bluebird promise, if using 0.10

I have just finished this feature. Because it's a breaking change into the API, it will be part of the next major release. Could you please test the implementation?
By default, this module depends on native promise (if available) or promise lib, but this can be easily changed with sql.Promise = require('myownpromisepackage').


Add possibility not to use asyncio.iscoroutinefunction in middlewares, but still support sync def

Not to overuse:
if asyncio.iscoroutinefunction(callback):
  return await callback(msg)
else:
  return callback(msg)

Indeed it's confusing
I'm thinking to deprecate sync functions


Set State Block

Set State Block (& others from what I can tell) won't D&D onto buttons.

only meatn for block views, not for VE, at the moment


Vue 2 is no longer being continued and i added something new

Vue 2 is no longer being continued, therefore info from evan you will immediately switch to vue 3 and currently nuxt 3 is popular and will be improved again, if time is free again I will update it, please have a look and please join it because it will be useful for vue and nuxt developers, if you don't like please comment, thank you
and I'm sorry that the prettierd that I use changes the format of the file. kwkwkkw

there are conflicts :/

where, when I made it, I didn't find it

![image](https://user-imag@bobbyrahmanda13 githubusercontent.com/92417638/227766808-0c927661-cd46-457c-b13e-9fd9b35d3bc6.png)
@bobbyrahmanda13

how to fix this ?


Chrome/Webkit: Sound not playing until click

I have a Pixi game built into an Angular 7 application, using pixi-sound.
I have a strange issue where after issuing a play() command, as so:
sound.play({
    'complete': () => {
        console.log('Complete');
    }
});

.. the sound doesn't play, and the 'complete' callback does not fire, until I CLICK the webpage. This only seems to happen in Chrome (Blink) and WebKit.  It works just fine in FireFox.
After that initial click, everything works fine and subsequent calls to play() work perfectly.

I too am seeing this under React.

I found that setting this fixes it - PIXI.sound.useLegacy = true;
It must be called before loading any sound files. I tried to get around this by focusing the canvas, but it only worked a couple times and wasn't reliable.

This is a limitation of webaudio and the media policies of these browsers. You have to design around it. Please don’t use legacy audio instead as this is much higher latency. Would suggest you create some interactive element to start whatever experience you’re creating.

This hack seems to actually work:
<iframe
  title="audioload"
  src="/assets/game/audio/silence.mp3"
  allow="autoplay"
  id="audio"
  style={{ display: 'none' }}
/>

Silence.mp3

I get why they did it, annoying auto play videos. But I think they overlooked html5 games in this, as I wouldn't be able to do things like intro logos or elements of play before any clicks in the app domain would occur. After all, this is sort of the whole point of Pixi. And in my design, I don't want to annoy users with a clickable element required on load as it would interrupt application flow. But hey, what can you do (other than the above).

set PIXI.sound.useLegacy = true throw Excpetion in Chrome console 'Uncaught (in promise) DOMException'
pixi.js v5.03
pixi-sound.js v3.02

Does anyone have an update for this?  I'm experiencing this as well.  It really messes up the splash/load screen of an html5 game when sounds won't play until the app is clicked on.  I've tried to .focus() everything under the sun with no success.

@meanbeanmachine It's unfixable without patching the browsers

Hi @meanbeanmachine , it seems that you are developping a hybrid app. If that is the case I think you can :
on iOS (swift):
// auto play audio or video
if #available(iOS 10.0, *) {
    webview.configuration.mediaTypesRequiringUserActionForPlayback = []
} else {
    // Fallback on earlier versions
    webview.configuration.mediaPlaybackRequiresUserAction = false
}

on Android (kotlin):
webView.settings.webview.configuration = false

Good luck and happy coding!

It is a restriction in the browser's end:

Chrome's autoplay policies are simple:

Muted autoplay is always allowed.
Autoplay with sound is allowed if:

The user has interacted with the domain (click, tap, etc.).
On desktop, the user's Media Engagement Index threshold has been crossed, meaning the user has previously played video with sound.
The user has added the site to their home screen on mobile or installed the PWA on desktop.

Top frames can delegate autoplay permission to their iframes to allow autoplay with sound.

Going to close this, as it's a browser limitation.


Issues with conda environment

I installed the most recent version of pyspextool following the instructions on README, in particular creating a conda environment.
PROBLEM 1: If I'm in my regular zsh environment, python/ipython/jupyter cannot find pyspextool despite the folder being in the sys.path:
(base) adam@onaeao ~ % ipython
Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 10:07:17) [Clang 14.0.6 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.25.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import pyspextool
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 1
----> 1 import pyspextool

ModuleNotFoundError: No module named 'pyspextool'

In [2]: import sys

In [3]: sys.path
Out[3]:
[ ...
 '/Users/adam/python_codes/pyspextool',
...]

PROBLEM 2: if I move to the conda environment I've set up, my system cannot find ipython/jupyter (but can find python - but a different version
(base) adam@onaeao ~ % conda activate pyspextool_3.11
(pyspextool_3.11) adam@onaeao ~ % ipython
zsh: command not found: ipython
(pyspextool_3.11) adam@onaeao ~ % jupyter notebook
zsh: command not found: jupyter
(pyspextool_3.11) adam@onaeao ~ % python
Python 3.11.9 | packaged by conda-forge | (main, Apr 19 2024, 18:34:54) [Clang 16.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspextool
Matplotlib is building the font cache; this may take a moment.
>>> pyspextool.
pyspextool.combine            pyspextool.pyspextool_setup(
pyspextool.config             pyspextool.pyspextoolerror
pyspextool.extract            pyspextool.setup_utils
pyspextool.fit                pyspextool.telluric
pyspextool.io                 pyspextool.utils
pyspextool.plot

Does this mean I need to reinstall all of the other packages that are already installed in my base setup? These clearly needs fixing/more instructions.
If I run pip install -e ./ without making the conda environment, everything seems to run fine, but of course this might mean that some packages are in different versions.

2 options:

make jupyter notebook (but not ipython) an optional dependency in environment.yaml
remind user they will need to install ipython, jupyter notebook, etc. in new environment

I've implemented option 2 in #167.


[Bug] SHOW REPLICA/MASTER STATUS error(#598)

[Bug] SHOW REPLICA/MASTER STATUS [error(#598)

Codecov Report
Base: 35.50% // Head: 36.08% // Increases project coverage by +0.58% :tada:

Coverage data is based on head (2677f54) compared to base (9254ad9).
Patch coverage: 50.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #599      +/-   ##
==========================================
+ Coverage   35.50%   36.08%   +0.58%
==========================================
  Files         188      188
  Lines       21490    21636     +146
==========================================
+ Hits         7630     7808     +178
+ Misses      12977    12948      -29
+ Partials      883      880       -3

Impacted Files
Coverage Δ

pkg/runtime/ast/ast.go
77.44% <50.00%> (+4.77%)
:arrow_up:

pkg/dataset/priority_queue.go
77.61% <0.00%> (+1.49%)
:arrow_up:

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.