Improved excess property checks in union types / new paradigm: use literal type infered from literal initializer

Suggestion

🔍 Search Terms

strict excess property checks in union types.
union type calculation
literal type inference from literal initializer

List of keywords you searched for before creating this issue. Write them down here so that others can find this suggestion more easily and help provide feedback.
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Consider the statement:
type T1 = {<some props>}
type T2 = {<some props>}
type T3 = {<some props>}
type TU=T1|T2|T3
SomeTypeDef<T> = ...
const t:SomeTypeDef<TU> = {a:1,b:2}

The last line is an assignment statement.  The processing taking place in the assignment has two distinct and separate parts:

The left hand side in isolation, which is the type function SomeTypeDef with the single input variable TU.
Determining the validity of the assignment of the r.h.s. literal initializer {<some props>} to the l.h.s type.  That computation takes place using Typescript's fixed assignment rules that cannot be changed.

Now suppose we define an additional type
type I = {a:1,b:2}

which you will notice is the type of the literal initializer on the r.h.s. of the assignment.  Now suppose we add that type as an additional variable to a type function on the l.h.s.:
const t:SomeTypeDefPlus<TU,I> = {a:1,b:2}

Now the l.h.s type function has additional information to work with .  Therefore whatever SomeTypeDef<TU> can express,  SomeTypeDefPlus<TU,I> can also express in the same length code.  However SomeTypeDefPlus<TU,I> may express more things than SomeTypeDef<TU>, and/or may be able to express the same things in shorter code.  In psuedo-psuedo code:
Expressability(SomeTypeDefPlus<TU,I>) >= Expressability(SomeTypeDef<TU>)

Unfortunately

writing the type type I = {<some props>}, AND
and writing the r.h.s literal initializer .... = {<some props>}

is twice as much writing - a code length penalty.
The proposal is to enable the type of the r.h.s. literal initializer to be inferred, e.g.,
const t:SomeTypeDefPlus<TU,I> = {a:1,b:2} as infer literal I

or any other syntax that would automatically set the value of I on the l.h.s.  to be type I = {a:1,b:2}
Is there really any need for a SomeTypeDefPlus<TU,I> functionality?  Yes. motivating function below explains that
it makes it easier to write a generalized function for strict excess property checking in type unions .
📃 Motivating Example
Typescript Playground
// c.f. https://github.com/microsoft/TypeScript/issues/42997
// craigphicks Feb 2021
//-----------------------
// TYPES
type T1 = {a:number,b:number}
type T2 = {a:number,c:number}
type T3 = {a:string,c?:number}
type T4 = {a:bigint, [key:string]:bigint}
type T5 = {a:string, d:T1|T2|T3|T4}
type T12 = T1|T2|T3|T4|T5
//-----------------------
// TYPES INFERRED FROM THE INITIALIZER
type I0 = {}
type I1 = {a:1,b:1}
type I2 = {a:1,c:1}
type I3 = {a:1,b:1,c:1}
type I4 = {a:1}
type I5 = {a:'2',c:1}
type I6 = {a:'2'}
type I7 = {a:1n, 42:1n}
type I8 = {a:'1', d:{a:1n, 42:1n}}
type I9 = {a:'1', d:{}}
//-----------------------
// THE CODE
type Select<T,I>= {[P in keyof I]: P extends keyof T ?
  (T[P] extends object ? ExclusifyUnionPlus<T[P],I[P]> : T[P]) : never}
type ExclusifyUnionPlus<T,I>= T extends any ? (I extends Select<T,I> ? T : never):never
//-----------------------
// case specific type aliases
type DI<I>=ExclusifyUnionPlus<T12,I>
// special types for se question https://stackoverflow.com/q/46370222/4376643
type sth = { value: number, data: string } | { value: number, note: string };
type DIsth<I>=ExclusifyUnionPlus<sth,I>
//-----------------------
// THE TESTS - ref=refuse, acc=accept
const sth0:DIsth<{ value: 7, data: 'test' }>={ value: 7, data: 'test' }; // should acc
const sth1:DIsth<{ value: 7, note: 'test' }>={ value: 7, note: 'test' }; // should acc
const sth2:DIsth<{ value: 7, data:'test', note: 'hello' }>={ value:7, data:'test',note:'hello' }; // should ref
type DI0=DI<I0> ; const d0:DI0={} // should ref
type DI1=DI<I1> ; const d1:DI1={a:1,b:1} // T1, should acc
type DI2=DI<I2> ; const d2:DI2={a:1,c:1} // T2, should acc
type DI3=DI<I3> ; const d3:DI3={a:1,b:1,c:1} // should ref
type DI4=DI<I4> ; const d4:DI4={a:1} // should ref
type DI5=DI<I5> ; const d5:DI5={a:'2',c:1}  // T3, should acc
type DI6=DI<I6> ; const d6:DI6={a:'2'}  // T3, should acc
type DI7=DI<I7> ; const d7:DI7={a:1n,42:1n}  // T4, should acc
type DI8=DI<I8> ; const d8:DI8={a:'1',d:{a:1n,42:1n}}  // T5, should acc
type DI9=DI<I9> ; const d9:DI9={a:'1',d:{}}  // should ref
//-------------------
// Comparison with type function NOT using type of intializer
// Code from SE  https://stackoverflow.com/a/46370791/4376643
type AllKeys<T> = T extends unknown ? keyof T : never;
type Id<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;
type _ExclusifyUnion<T, K extends PropertyKey> =
    T extends unknown ? Id<T & Partial<Record<Exclude<K, keyof T>, never>>> : never;
type ExclusifyUnion<T> = _ExclusifyUnion<T, AllKeys<T>>;
//-------------------
// case specific alias
type SU=ExclusifyUnion<T12>
// tests
const sd0:SU={} // should ref
const sd1:SU={a:1,b:1} // should acc
const sd2:SU={a:1,c:1} // should acc
const sd3:SU={a:1,b:1,c:1} // should ref
const sd4:SU={a:1} // should ref
const sd5:SU={a:'2',c:1}  // should acc
const sd6:SU={a:'2'}  // should acc
const sd7:SU={a:1n,42:1n}  // should acc
const sd8:SU={a:'1',d:{a:1n,42:1n}}  // should acc
const sd9:SU={a:'1',d:{}}  // should ref
// Apparently ExclusifyUnion doesn't handle addtional property speficier in T4
// Also does it handle deep objects?  Have posted message to ExclusifyUnion author, awaiting reply.

Two criteria by which to compare ExclusifyUnion and ExclusifyUnionPlus  -

Ease and clarity:
Total range of expression:

As for 'ease and clarity' , ExclusifyUnionPlus does seems easier to code and comprehend.
As for 'total range of expression', I am not sure. It would require a proof.
💻 Use Cases
The proposed syntax
const t:SomeTypeDefPlus<TU,I> = {a:1,b:2} as infer literal I

or something like it would simplify the leveraging existing functionality for the purposes of strictly detecting excess properties in literal assignments to union of Record types.  That includes deep Record types with deep member which are themselves unions of Record types.
It could also have other uses besides detecting excess properties.
Reference
This suggestion is based on an answer I posted on SE to a question about excess property checks.

This sounds a lot like #7481 - comments?

One takeaway from issue #7481 is that it proposes an is operator the would provide a strict-cast version of as:

some_literal is T
.  will be accepted if and only if
const x:T = some_literal
.  is accepted

Further down, it is suggested that is be combined const as in
const x = {a:1,b:[{c:1}]} as const is X

These are related to the use case I meant to propose, but even if is is implemented, it is not exactly what is needed.
The use case I am concerned with is an in-place strict-union operation to allow for deep excess property checking.  I am calling it an 'in-place deep strict-union operation' and not a 'strict-union type defintion` to make clear it is not a repeat of the request for 'exact types'.  I have read the comment on why exact types conflict with the existing definition of types, in particular

We have some basic tenets that exact types would invalidate. For example, it's assumed that a type T & U is always assignable to T, but this fails if T is an exact type. This is problematic because you might have some generic function that uses this T & U -> T principle, but invoke the function with T instantiated with an exact type.

and agree completely.
How this differs is that it requires no change to Typescript defintion of types.  In fact the in-place deep strict-union is already possible(*) using type functions such as distributed conditional type operations. (*Possible except for the fact that that an 'possibly infinite depth error' is falsely emitted, and the type function silently stops working when the number of data reaches a certain size .)
Let me demonstate:
type T1 = {a: string; c?: number};
type T2 = {[key: string]: bigint};
type T3 = {a: bigint; b: number};

// add tuple types
type Ttpl1 = [number, string];
type Ttpl2 = [T1 | T2 | T3];

type TU = T1 | T2 | T3 | Ttpl1 | Ttpl2;

const testData: SU<TU[], Iarr> = [
  [{a: '1', c: 1}], // accept  ✔
  [{a: 1n}], // accept  ✔
  [{a: 1n, b: 1n}], // accept  ✔
  [{a: 1n, c: 1n}], // accept  ✔
  [{a: 1n, b: 1}], // accept  ✔

  //  excess props of other types
  [{a: '1', b: 1n, c: 1}], // reject  ✔
  [{a: '1', c: 1, d: 1n}], // reject  ✔
  [{a: '1', d: 1n}], // reject  ✔
  [{a: 1n, b: 1, c: 1}], // reject  ✔
  [{a: 1n, b: 1, d: 1n}], // reject  ✔

  // insufficinet props
  [{a: 1}], // reject  ✔
];

Note1: definitions for SU and Iarr are missing in the above snippet.
Note2: SU<TU[], Iarr> issues an error "Type instantiation is excessively deep and possibly infinite.ts(2589)" but still processes the rest of the example code anyway.
In this typical use case an array of testData is populated with items
each of which the programmer desires to belong exactly to one of the union members of TU,
i.e. no excess properties at any finite depth.
The definition for Iarr is simply
type Iarr = [
  [{a: '1', c: 1}], // accept
  [{a: 1n}], // accept
  [{a: 1n, b: 1n}], // accept
  [{a: 1n, c: 1n}], // accept
  [{a: 1n, b: 1}], // accept

  //  excess props of other types
  [{a: '1', b: 1n, c: 1}],
  [{a: '1', c: 1, d: 1n}],
  [{a: '1', d: 1n}],
  [{a: 1n, b: 1, c: 1}],
  [{a: 1n, b: 1, d: 1n}],

  [{a: 1}]
];

The point of this present issue is to suggest that Iarr shouldn't need to be
manually entered again, because it was already entered after const testData.
Looking at issue #7481 inspires the following idea:
type TT1 = Readonly<{ a:string, c:string }>
type TT2 = Readonly<{ a:number, b:number }>
const testData2:SU<TT1|TT2, typeof testData2> = [
  {a: '1', c: '1'},
  {a: 1, b: 1},
] as const;

However, that emits the following errors:

'testData2' is referenced directly or indirectly in its own type annotation.ts(2502)
Block-scoped variable 'testData2' used before its declaration.ts(2448)

The "working" (excepting problems noted above) code for the strict-union function SU with the above example testData
is show in this Typescript playground and posted in full in the next comment.

type IdArray_next_aux<ELT, I extends [any, ...unknown[]]> = I extends [
  infer HI,
  ...infer RI
]
  ? [SU<ELT, HI>, ...IdArray_next<ELT, RI>]
  : ['I doesnt extends [infer HI, ...infer RI]'];

type IdArray_next<ELT, I> = I extends [] | never[] | [never] //I extends [any, ...unknown[]]
  ? []
  : I extends [any, ...unknown[]]
  ? IdArray_next_aux<ELT, I>
  : ['unexpected error 0'];

type IdArray<T, I> = T extends (infer ELT)[]
  ? I extends [any, ...unknown[]]
    ? IdArray_next<ELT, I>
    : ['I doesnt extends [any, ...unknown[]']
  : ['T doesnt extends (infer ELT)[]'];

type SU_tuple_next<T, I> = I extends [infer HI, ...infer RI]
  ? T extends [infer HT, ...infer RT]
    ? [SU<HT, HI>, ...SU_tuple_or_array<RT, RI>]
    : ['T doesnt extend [infer HT, ...infer RT]']
  : ['I  doesnt extend [infer HI, ...infer RI]'];

type SU_tuple_or_array<T, I> = T extends any
  ? IsArray<T> extends true
    ? IdArray<T, I> //['case IsArray<T> not implemented']
    : I extends []
    ? T extends []
      ? []
      : ['I is [] but T is not []']
    : T extends []
    ? ['I is not [] but T is []']
    : SU_tuple_next<T, I>
  : never;

type SU_object<U, I> = U extends any
  ? I extends U
    ? keyof I extends keyof U
      ? {
          [P in keyof I]: I[P] extends Record<string, any>
            ? SU<U[P], I[P]> //SU_object<U[P], I[P]>
            : I[P] extends U[P]
            ? I[P]
            : ['I[P] doesnt extend U[P]'];
        }
      : ['keyof I doesnt extend keyof U']
    : ['I doesnt extend U']
  : ['U doesnt extend any'];

// Add a slot in SU for Array
type IsArray<T> = T extends any[]
  ? number extends T['length']
    ? true
    : false
  : false;

type SU<U, I> = I extends any[]
  ? SU_tuple_or_array<U, I>
  : I extends Record<string, any>
  ? SU_object<U, I>
  : I extends U
  ? I
  : ['I does not extend U']; // return U

type T1 = {a: string; c?: number};
type T2 = {[key: string]: bigint};
type T3 = {a: bigint; b: number};

// add tuple types
type Ttpl1 = [number, string];
type Ttpl2 = [T1 | T2 | T3];

type TU = T1 | T2 | T3 | Ttpl1 | Ttpl2;

//Type instantiation is excessively deep and possibly infinite.ts(2589)
// But it works anyway, until it doesn't
const testData: SU<TU[], Iarr> = [
  [{a: '1', c: 1}], // accept  ✔
  [{a: 1n}], // accept  ✔
  [{a: 1n, b: 1n}], // accept  ✔
  [{a: 1n, c: 1n}], // accept  ✔
  [{a: 1n, b: 1}], // accept  ✔

  //  excess props of other types
  [{a: '1', b: 1n, c: 1}], // reject  ✔
  [{a: '1', c: 1, d: 1n}], // reject  ✔
  [{a: '1', d: 1n}], // reject  ✔
  [{a: 1n, b: 1, c: 1}], // reject  ✔
  [{a: 1n, b: 1, d: 1n}], // reject  ✔

  // insufficinet props
  [{a: 1}], // reject  ✔
];

type Iarr = [
  [{a: '1', c: 1}], // accept
  [{a: 1n}], // accept
  [{a: 1n, b: 1n}], // accept
  [{a: 1n, c: 1n}], // accept
  [{a: 1n, b: 1}], // accept

  //  excess props of other types
  [{a: '1', b: 1n, c: 1}],
  [{a: '1', c: 1, d: 1n}],
  [{a: '1', d: 1n}],
  [{a: 1n, b: 1, c: 1}],
  [{a: 1n, b: 1, d: 1n}],

  [{a: 1}]
];

I think that modifying the typescript distributed-types meta-language to be more robust is probably not a practical suggestion.
A better way would be to utilize the typescript API or other typescript utilities to create a program that allows customized behavior layered over typescript.  That is how linting works - decoupled.
Unlike linting, however,  deep excess property checking would require the symbols from compilation.  The typescript API provides such an interface.  That would enabled development decoupled from the main typescript release.  It would be the best way to progress.
Therefore I will close this issue, as the design of such decoupled downstream development is not material for an issue.
Incidentally, I have submitted another issue #44871, part of which requests clarification on the actual intended rules for excess type checking.  Because hard specification for such rules (even if they may change in the future) comprise an interface, and therefore are a requirement for decoupled downstream development, 44871 is an issue that I hope can be resolved.


[Bug] Full refresh not deleting materialized view with cascade

Is this a new bug in dbt-redshift?

[X] I believe this is a new bug in dbt-redshift
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
If execute dbt run --models mv1 --full-refresh, dbt try to drop mv with drop materialized view if exists "database"."schema"."mv1"; command
Expected Behavior
If execute dbt run --models mv1 --full-refresh, dbt try to drop mv with drop materialized view if exists "database"."schema"."mv1" cascade; command
Steps To Reproduce

Create mv1 materialized view.
Create mv2 materialized view on top of mv1.
Execute `dbt run --models mv1 --full-refresh.

Relevant log output
No response
Environment
- OS: ubuntu
- Python: 3.10
- dbt-core:  1.7.1
- dbt-redshift:  1.7.1

Additional Context
No response

Closing as I believe this is a dupe of #642. Please correct me if I'm wrong!


Unable to connect to node which is not at the base URL.

Which version of Elastic are you using?
[ ] elastic.v2 (for Elasticsearch 1.x)
[x] elastic.v3 (for Elasticsearch 2.x)
Please describe the expected behavior
I am able to connect to an elasticsearch node running at http://localhost/elastic/
Please describe the actual behavior
Currently, the path is stripped from the URL as part of canonicalize. This causes requests to go to http://localhost/ directly.
Any steps to reproduce the behavior?
Create an elasticsearch node and have it accessible via a URL with a path.

Looked into the official clients. They support this as well. Fixed in this commit, also backported to v2.
Thanks for being a contributor.


Animations only for the first toast

I don't get animations for any toasts after the fist one. Upon inspection it seems that the animation classes are not added.
The config:
{
        autoDismiss: true,
        extendedTimeOut: 3000,
        maxOpened: 2,
        newestOnTop: true,
        positionClass: 'toast-top-full-width',
        preventOpenDuplicates: false,
        tapToDismiss: true,
        templates: {
          toast: 'app/templates/toast.html'
        },
        timeOut: 5000
}

angular: 1.4.4

Can I have a reproduction in a plunker?

There's the plunker. The behavior seems not to be influenced by the options. It's default. With default style / animation it isn't that noticeable, but it becomes an issue when customized.

I see that, it only happens on 1.4.4. Will check.

@razvanz Seems like it is a bug and it will be fixed for 1.4.5

Great :+1:

Same here but on branch for angular 1.2.X

@aosi87 I would need to see that in a plunker.

1.4.5 is out so this should be fixed. If there is still a 1.2.x bug I would like a new issue with a repro.

Getting this issue with Angular v1.4.9

I need a repro and put it on a new issue.
Thanks.


wrong number of arguments (given 3, expected 0..1)

After updating ruby and rails on my app , I am getting wrong number of arguments error for ".near method". For ruby 2.0 and rails 4.0 it is working fine.
Below is my code
 Worker.near(self.coordinates.reverse, radius, {:unit => :miles, :order => :distance})
My gem file having:
ruby "2.3.1"
gem 'rails', '~> 4.2', '>= 4.2.6'
gem 'geocoder', '~> 1.3', '>= 1.3.1'
Any help would be appreciated.
Thanks.

Could you copy/paste the full error message please?

Please find the attached image for reference.

If I pass one param it is working 👍
Worker.near(:home_coordinates => self.coordinates.reverse)
How I can add extra params like radius, {:unit => :miles, :order => :distance}
Thanks.

Can you send the full backtrace, maybe copy/paste from the server log? I need more context.

Backtrace:
I, [2016-06-27T18:54:06.383041 #33633]  INFO -- : Completed 500 Internal Server Error in 173ms
I, [2016-06-27T18:54:06.383225 #33633]  INFO -- : Completed 500 Internal Server Error in 173ms
F, [2016-06-27T18:54:06.384694 #33633] FATAL -- :
ArgumentError (wrong number of arguments (given 3, expected 0..1)):
app/models/job.rb:633:in closest_workers'   app/controllers/dashboard_controller.rb:85:in job'
Code:
 Worker.near(self.coordinates.reverse, radius, {:unit => :miles, :order => :distance}).where(job_type_params).collect { |w|       if(w.coordinates.length > 0)         w[:distance] = Geocoder::Calculations.distance_between(self.coordinates.reverse, w.coordinates)         w[:home_distance] = Geocoder::Calculations.distance_between(self.coordinates.reverse, w.home_coordinates.reverse)         w unless w[:home_distance] > ((Rails.env.production?)? w.radius.to_f : radius)       end     }.compact.sort_by { |hsh| hsh[:distance] }

What does Worker.class return? And is it a model with a geocoded_by line?

Yes my model contains
include Geocoder::Model::Mongoid   reverse_geocoded_by :home_coordinates
Worker class returns all the workers .

This is working for me if I use ruby 2.0 and rails 4.0.
I have  updated my ruby to 2.3.1 and rails 4.2, in this case it is not working showing arguments error.

I think you're calling near on a worker, not on a geocoded class.

Common, this is working with Ruby 2.0 and Rails 4.0.


App not works on custom local domain with shared dependencies

The dev server is configured with host: '<IP_ADDRESS>', when I launch the server, I can access to the page on localhost but not on my custom local domain (it's just a blank page) configured in /etc/hosts.
It worked with federation 1.1.6 but not with 1.1.7.
Here is a example. You just have to configured a custom local domain in your /etc/hosts by example (<IP_ADDRESS>   dev.local) and access the app with the custom domain.
https://github.com/tduforet/federation-local-hostname

Hi @tduforet thanks
I close this one because it's duplicate of #194

Hello I tried with the last version and I still have the problem

Can you share with us your errors @tduforet please?
cc @nicotu01

@tduforet Can you try this fix #215 and double check if it's solving things for you?
The easiest way to do that is using pnpm patch

Hello @gioboa, I didn't use pnpm patch, but I set a npm link with the local dependency with the fix and It seems to be ok.
Thanks @nicotu01

Thanks @tduforet for your help 💪


Functions docs saying "Logs written to stdout or stderr will appear automatically in the Cloud Console." isn't quite true

Consider this example:
require "functions_framework"
FunctionsFramework.http do |request|
  s = JSON.load request.body.read
  ...
  "OK"
end

when replacing ... with the following variants of code, POSTing something multiline (like cat app.rb | json_xs -f string | curl -X POST -d@- https://...) to the deployed Function and checking the Logs:
require "pp"; pp s does not log anything
puts s does not log anything
p 0; puts s does not log anything
p 0; puts s; p 1 logs all three things
This looks like a bug to me and I see no simple way to log a single thing via stdout consistently.

--runtime ruby27
functions_framework (1.0.1)

Not sure, maybe I had to create the ticker in https://github.com/googleapis/google-cloud-ruby

I suspect stdout is just not getting flushed before Cloud Functions throttles the CPU. I'm going to move this to the functions framework repository (https://github.com/GoogleCloudPlatform/functions-framework-ruby) which is likely where a fix would live.


Updated Dependencies to Latest

Lgtm

Le 5 oct. 2023 à 22:46, TheBaconCat @.***> a écrit :
You can view, comment on, or merge this pull request online at:
https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126
Commit Summary
627efa4 https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126/commits/627efa401390a722f285f66a586b12339d8665ba Updated Dependencies to Latest
File Changes (2 files https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126/files)
M package.json https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519 (16)
M pnpm-lock.yaml https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126/files#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bb (258)
Patch Links:
https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126.patch
https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126.diff
—
Reply to this email directly, view it on GitHub https://github.com/LapsTimeOFF/DigiFlag_F1MV/pull/126, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJKANHHHDY6QC6ATYAIO3ETX54MDLAVCNFSM6AAAAAA5U3BWPSVHI2DSMVQWIX3LMV43ASLTON2WKOZRHEZDSMBSHE3TCMQ.
You are receiving this because you are subscribed to this thread.


What's meaning about  (aX aY)

aX = cov(x_,y_)
aY = 0.5/n * ( ∑(x_^2) + ∑(y_^2) + sqrt( (∑(x_^2) + ∑(y_^2))^2 + 4 * cov(x_,y_)^2 ) )
What's meaning about  (aX aY)
Look like The PCA  is not say the principal vector is (aX aY)

@Edouard Siegel

Hello sunjmmeishao,
I'm sorry I don't quite catch your meaning. Could you try and reformulate your question ?
Also, I have to say that I'm not the one behind the math of the PCA applied in this project, @PatrickNLT is. So I might not be able to help anyway.
Regards

Hello  Nooba,
It is nothing.I am a beginner,so have many question.
I change the principal vector:
// a (aX)
//   (aY)
to
if(sumXsquared > sumYsquared)
{
aX = 1.0;
aY = 0.0;
}
else{
aX = 0.0;
aY = 1.0;
}
Then the split partition is a rectangle.Beasuse I can not understand the principal vector is an oblique line.
thanks!

Hi @sunjmmeishao ,
Being able to split using an oblique line is an important feature of ADClusterMapView. It makes it a valuable alternative to traditional clustering libraries that often use a quad tree. If you want to learn more about the algorithm, you can have a look at the blog post describing the approach we used back then: https://applidium.com/en/news/too_many_pins_on_your_map/


Pagination : Cannot use {@render children(...)} if the parent component uses let: directives. Consider using a named snippet instead

Describe the bug
Cannot use {@render children(...)} if the parent component uses let: directives. Consider using a named snippet instead
Reproduction
Cannot use {@render children(...)} if the parent component uses let: directives. Consider using a named snippet instead
Logs
No response
System Info
Cannot use `{@render children(...)}` if the parent component uses `let:` directives. Consider using a named snippet instead

Severity
annoyance

@YashKorat17 I think the let: directive won't work. Consider using snippets instead.

It's occurs in pagination file.

 And for what it's worth, didn't run into an error using your shared snippet.

Make sure you are using bits-ui@next. Once you provide a reproduction I will reopen this issue.

I have the same issue, and I have "bits-ui": "^1.0.0-next.46",


Node.js 8 deprecation warning

Node.js 8 is being deprecated for cloud functions and Firebase issues a deprecation warning.
An update of Node.js would be necessary to use this cloud function after Feb/Mar 2021.
Node.js 8 has been deprecated.
Starting Feb 15, 2021, we'll no longer support new deploys or updates of Node.js 8 functions.
Starting Mar 15, 2021, we'll no longer support executions of existing Node.js 8 functions.

I've tried to update the node version to 10 but didn't have any success. Not a node developer so not sure how to debug or fix :(

I just upgrade to node v10, and put GCLOUD_PROJECT as runtime environment variable, it succeeded.
GCLOUD_PROJECT is just your project id in google cloud console

Where do we set that?

google cloud platform > cloud fuctions > (your function) > variables > runtime variable

just uploaded via google cloud console, not firebase cli


"+http://www.google.com/bot.html" is not detected as crawler

The following user agent strings seem to not be detected as a crawler:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.179 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

false alarm, my bad, the crawler detect works fine!


Add pnpm/audit

Ajout de la bibliothèque pnpm/audit au projet.

Please do not let your prettier execute (this is not part of our tools).

@DGouron Please think to share the issue you opened on pnpm here

Issue opened on pnpm/audit : here


hotfix: use terser-webpack-plugin

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Webpack requires<EMAIL_ADDRESS>thus<EMAIL_ADDRESS>may not resolve correctly. Also, the webpack team decided to go with terser-webpack-plugin (https://github.com/webpack/webpack/pull/8036).
Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests passed.

Codecov Report

Merging #3928 into dev will decrease coverage by 0.08%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev    #3928      +/-   ##
==========================================
- Coverage   97.56%   97.48%   -0.09%
==========================================
  Files          18       18
  Lines        1232     1232
  Branches      335      335
==========================================
- Hits         1202     1201       -1
- Misses         29       30       +1
  Partials        1        1

Impacted Files
Coverage Δ

lib/builder/webpack/client.js
96.87% <100%> (ø)
:arrow_up:

lib/core/nuxt.js
94.16% <0%> (-0.84%)
:arrow_down:

Continue to review full report at Codecov.

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


Icon not showing

Thanks for your great work - I've downloaded CSS and JS file via
https://raw.githubusercontent.com/coliff/bootstrap-show-password-toggle/master/css/show-password-toggle.css
but the icon is not rendered in the password field and only a gray rectangular is shown in Chrome browser.
Same is happening with min.css as well.
I do use the following bootstrap files:

https://getbootstrap.com/docs/4.0/examples/signin/signin.css
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css

Do I miss something?
Btw: https://coliff.github.io/bootstrap-show-password-toggle/tests/bootstrap4-sign-in/ does not render the icon in Chrome as well.
Thanks

heya. I've just re-tested and the icon is showing as expected. I think there must be some issue with your setup. Maybe a browser extension is interfering or something? Please see if any issues in your DevTools console. If issue persists post back a screenshot and mention which Operating system and exact Chrome version you're using. Have you tried in a different browser?
Btw - when testing locally make sure you use the latest Bootstrap 4.6 files - not 4.0 beta!
https://getbootstrap.com/docs/4.6/getting-started/introduction/#starter-template

Tested successfully on Chrome for MacOS and Windows 10

Thanks for the comment - I wasn't aware of the fact that the eye is only shown when characters are typed into the password field.
The problem was solved by changing the order of CSS-includes. Thanks for your feedback. Works like a charm now under MacOS/Chrome and FF.


Error with comments on single.php

Firstly, I've just started migrating from Bones to Plate, thanks for keeping it going and now making it your own, the updates you have done are much appreciated.
Secondly, I think I've discovered an issue with comments when viewing single.php. Testing with fresh 4.9.4 Wordpress and fresh Plate clone. Where the comments should be is:
Warning: call_user_func() expects parameter 1 to be a valid callback, function 'template_comments' not found or invalid function name in /Users/james 1/Dropbox/Websites/acaciabeauty/wp-includes/class-walker-comment.php on line 174
Screenshot - http://take.ms/8Go9cS
I've tried removing some of the comment related stuff in functions.php but thats not it.

Thanks for catching this. In comments.php on line 26 change this:
'callback'          => 'template_comments',

to
'callback'          => 'plate_comments'
That should fix it. Let me know if it doesn't.

I've pushed this change up.


mediapipe_model_maker can train on GPU？

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
windows
MediaPipe Tasks SDK version
No response
Task name (e.g. Image classification, Gesture recognition etc.)
Image classification
Programming Language and version (e.g. C++, Python, Java)
Python
Describe the actual behavior
want to use GPU
Describe the expected behaviour
want to use GPU
Standalone code/steps you may have used to try to get what you need
want to use GPU

Other info / Complete Logs
No response

Hi @lonngxiang,
Please grant us some time for internal discussions. We will provide updates once any relevant information becomes available.
Thank you!

Yes, you should be able to run Model Maker training on GPU.


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-29-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 4033

Questions ?
Please refer to the Backport tool documentation


attestation_core.c: Use psa_hash_compute instead of mbedtls functions.

Because of an if (0 & ...) the hash computation is never executed, but I have tested it in isolation.
Also delete the file sha256.c, which was already unused.

Any idea why this was in there in the first place? I would think the PSA Attestation code would be heavily biased towards the PSA Crypto API instead of the MbedTLS API.
I think @mathias-arm should be able to answer that.


Travis: notify GitHub all is well before allowed failures finish

This makes Travis notify GitHub all is well / not well before waiting for the allowed failures.

This would be awesome to have. Especially since jruby and rbx take a long time to fail since they are globbing the entire file system.

:+1: Nice! Didn't know at all about this Travis feature.


restoreStateFromSnapshot after PlayerContextProvider is created

Question: Should there be a way to call restoreStateFromSnapshot after the PlayerContextProvider is created?
At the moment, it's only used in the constructor, which totally makes sense, however if you would like to use localStorage to store the snapshots in a SSR app, you can get the snapshot after the component that renders PlayerContextProvider is mounted.
You could render PlayerContextProvider after the parent mounts, and thus you could pass the initialStateSnapshot, but I think the app would break if you have children that use playerContextFilter without having PlayerContextProvider in the tree.
What's your opinion?

Hm... maybe store the snapshot in the cookie instead of localStorage so it's accessible on the server side as well? Would that solve your use case?
It's definitely a use case we should solve, so if this doesn't seem good enough to you, I'd be happy to discuss alternatives.

Closed on accident, sorry!

I thought about storing in cookies, but I would also have store the playlist in the cookies (which can be bigger than the cassette snapshot). If I have playlist in localStorage, I think restoreStateFromSnapshot wouldn't set the activeTrackIndex, because at the time it's created, playlist is invalid.

Hm, I see. Do you have any ideas about a potential API? I can see why you want this.
But do you need the entire playlist for the initial render? If yes, I think maybe you should pass the whole playlist in the cookie. If you do not need the whole playlist, maybe you should only store the current track object in the cookie, and you can initialize the playlist with only one track on the server side. You can update with the full playlist later on the client side (on componentDidMount), and the PlayerContextProvider will keep you on the same track.

If I store the current track and cassette snapshot in cookies, I could create a playlist with n empty tracks before the activeTrackIndex and set the current track in that index for the first render, and then change the whole playlist to the one from localStorage after componentDidMount.

It's been awhile since I wrote it but if you look at this code https://github.com/benwiley4000/cassette/blob/next/packages/core/src/utils/snapshot.js#L84 I don't think you need to insert all the empty tracks in front. It should figure it out for you I think?

Arguably activeTrackIndex doesn't even need to be part of the snapshot but I guess I included it in case your playlist had multiple instances of the same track and you wanted to keep your spot

Not sure, unless I'm not seeing something you are aware of.
//  Example: activeTrackIndex = 7 (from snapshot)
/**
* This would try to get the source from props.playlist[activeTrackIndex].
* It would fail in this line: const { sources, url } = playlist[index]; I think, because playlist[index] is undefined.
*/
const currentSrc = getTrackSources(props.playlist, activeTrackIndex)[0].src;
if (activeTrackSrc === currentSrc) {
  restoredStateValues.activeTrackIndex = activeTrackIndex;
  useCurrentTime = true;
} else {
  // If we get here, it would probably work. This would try to find the index for the track, if playlist is just [activeTrackFromCookie], then newTrackIndex would be 0, and then after playlist changes to have the whole tracks, I think it would have be set to 7.
  const newTrackIndex = findTrackIndexByUrl(props.playlist, activeTrackSrc);
  if (newTrackIndex !== -1) {
    restoredStateValues.activeTrackIndex = newTrackIndex;
    useCurrentTime = true;
  }
}

If I remove activeTrackIndex then it would go to the else condition and work.

 That code needs to be fixed. Maybe it can be:
const currentSrc = props.playlist[activeTrackIndex] && getTrackSources(props.playlist, activeTrackIndex)[0].src;
if (currentSrc && activeTrackSrc === currentSrc) {

Yes, or returning blankSources  in getTrackSources if the playlist[index] is undefined.

I considered that, but I figured it might break something else, and also this is pretty much the only case where an undefined track should be possible I believe?

As far as I'm aware, so yes, your snippet should work.

Yep. If there are other cases they're probably bugs, so I'd rather catch them when error messages arise. :)
I can merge this fix and release a new version in a few minutes.

Does this seem like a good solution to your problem?

Yes, I think it's a particular case, so better to handle it in my codebase than having to change the API to support it.

The fix we discussed above is released in v2.0.0-alpha.9. Let me know if you have any further issues - and thanks as always for all your help! :smiley:


Fix I18n placeholder numbering and add error for mixed placeholders

I've investigated #698 and discovered a couple of additional issues because of it.
This PR fixed both the original issue as well as the additionally discovered ones.
Fixes #698
Issue #698 - Fix fixing of unordered placeholders.
If several of the same kind of unordered placeholders were found - %s -, the str_replace() would replace them all with the replacement value for the first, i.e. %1$s, resulting in something like 'my %1$s and my %1$s'.
preg_replace() allows for limiting the amount of replacements per match so offers the ability to replace each placeholder with their corresponding replacement.
This does however create some other complexities as a $ in a regex replacement value can be interpreted as a match replacement, so will need escaping to prevent potential replacement with a numbered match.
Example:
Placeholder found: '%01d'
Should become: '%1$01d'
But the $01 within the replacement value in preg_replace() will be interpreted as the first submatch - which doesn't exist, so would be replaced by '' resulting in '%1d'
So the dollar in the replacement value needs escaping before passing it on to preg_replace().
Using dollars in double quoted strings with placeholders
Along the same lines as the above, if the original string was double quoted, the $ would also need escaping in the result string to prevent it being interpreted as a PHP variable.
This was currently not done, which could lead to a replacement looking like "my %1$d pennies" and $d being interpreted as a PHP variable, resulting either in an undefined variable notice or an unintended replacement being made.
The check for double quoted strings I've build in now is quite simplistic, but should be sufficient in 95% of all cases.
Not all placeholders were being recognized.
The regexes used throughout the sniff (constants at the top of the file) did not account for all possible placeholders for sprintf().
This has been fixed as well.
Ref: http://php.net/manual/en/function.sprintf.php
Mixed ordered and unordered placeholders.
Up to now, a string with mixed ordered and unordered placeholders - %1$s for %d - would be disregarded by the check for placeholder ordering.
As these do not lend themselves to automatic fixing, I've chosen to add an error notice whenever a string with mixed placeholders is found.
Includes additional unit tests + adjusted .fixed file.

Has this fix made it in to a release?

0.11.0 will be released later this week (or early next week).


[license] Reword authors in contributing.md

@timothysc PTAL, based on discussion with Joe and Andy
Signed-off-by: Jessica Yao<EMAIL_ADDRESS>

I'm going to give this some settling time.

timeout expired, merging.


Add !pip to notebooks?

Hi There,
It would be nice to add !pip install hummingbird_ml to the notebooks so when you execute them in colab you dont need to add a line for this manually. I assum though that this is not ideal for CI so please disregard if too much trouble.

@ksaur WDYT?

I like this idea! We can definitely do this right away for the blog example notebook and the sklearn example notebook and add !pip install hummingbird-ml.
The only concern I have is that our new installer for  xgboost and lightGBM (that removes these libraries as dependencies unless specified) would need to be !pip install hummingbird-ml[extra] for the xgb and lgbm notebooks. (This "bleeding edge" installer change is not yet in the pypi packages, so we could consider waiting until after we push 0.0.3 next week.) However, any installation with pypi 0.0.2 now will simply install all optional packages (xgboost and lightGBM), and the [extra] syntax will just give a warning I believe, so I think that should be fine...but we should test it!
@jspisak are you interested in contributing this/PR? (Note that we don't yet have ci/cd set up for our notebooks... I'll raise an issue on that; thanks for reminding us!) In the meantime just test your changes on your machine and make sure that they run, and we'll run them as well before merging, if this is something you'd like to help out with!

Hey Guys - sure, glad to put up a PR. I'll work on this by EOW.  thanks!


python error when installing 5.0.3

When I attempt to install the latest version (5.0.3) I get the below error.  Current version runs just fine.
dnfdaemon client error occurred:
g-io-error-quark: GDBus.Error:org.freedesktop.DBus.Python.dnf.exceptions.Error: Traceback (most recent call last):
  File "/usr/lib64/python3.6/site-packages/dbus/service.py", line 707, in _message_cb
    retval = candidate_method(self, *args, **keywords)
  File "/usr/lib/python3.6/site-packages/dnfdaemon/server/__init__.py", line 83, in newFunc
    rc = func(*args, **kwargs)
  File "/usr/share/dnfdaemon/dnfdaemon-system", line 404, in Install
    value = self.install(cmds)
  File "/usr/lib/python3.6/site-packages/dnfdaemon/server/__init__.py", line 426, in install
    value = self.build_transaction()
  File "/usr/lib/python3.6/site-packages/dnfdaemon/server/__init__.py", line 536, in build_transaction
    value = json.dumps(self._build_transaction())
  File "/usr/lib/python3.6/site-packages/dnfdaemon/server/__init__.py", line 775, in _build_transaction
    rc, output = self._resolve_transaction()
  File "/usr/lib/python3.6/site-packages/dnfdaemon/server/__init__.py", line 829, in _resolve_transaction
    rc = self.base.resolve(allow_erasing=True)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 709, in resolve
    raise exc
dnf.exceptions.Error: Will not install a source rpm package (dbeaver-ce-5.0.3-stable.src).
 (36)

I'm not quite understand what exactly are you trying to do.
Is this some kind of python package manager?

dnf is the fedora package manager, which is written in python.
@JHGelpi you have probably downloaded a source package and you are trying to install it with dnf, according to the error. Try downloading the binary package instead (the one which does not end in .src.rpm but just  .rpm)

On Fri, Apr 20, 2018 at 5:52 PM Paolo Inaudi<EMAIL_ADDRESS>wrote:

dnf is the fedora package manager, which is written in python.
@JHGelpi https://github.com/JHGelpi you have probably downloaded a
source package and you are trying to install it with dnf, according to the
error. Try downloading the binary package instead (the one which does not
end in .src.rpm but just .rpm)

Ok I will give that a shot. Thanks.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dbeaver/dbeaver/issues/3340#issuecomment-383232368,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKzJQvgykqcAMxqkkvYp5xPeEtGYzPkLks5tqliVgaJpZM4TWf4i
.

--
Wes Gelpi
<EMAIL_ADDRESS>|<PHONE_NUMBER>
Let's find a cure for T1D | http://bit.ly/WGelpi_JDRF

That did it (now that I finally got around to it).  Thank you for the tip!


Escape strings and chars when serializing

I tried using uneval to build something terrible. Anyway, the data included newlines, apostrophes and quote marks, and I was passing those to uneval as both strings and chars. This turned out problematic.
This PR changes serialization of strings and chars to use their Debug formatting rather than the Display one, which makes sure characters that require escaping are escaped.

Good catch, thanks!

Published version 0.2.4.


Error applying IAM policy for service account

What happened?
I am trying to create a service account and assign roles, and it fails
Steps to reproduce
p, err := serviceaccount.NewAccount(ctx, "prom-frontend",
		&serviceaccount.AccountArgs{
			AccountId:   pulumi.String("prom-frontend"),
			DisplayName: pulumi.String("prom-frontend"),
			Project:     pulumi.String(c.Project),
		})
	if err != nil {
		return err
	}

	// create Project Iam policy binding for the service account to the role roles/storage.admin
	_, err = serviceaccount.NewIAMBinding(ctx, "foo-bar-iam-binding", &serviceaccount.IAMBindingArgs{
		Role: pulumi.String("roles/storage.admin"),
		Members: pulumi.StringArray{
			pulumi.String("serviceAccount:prom-frontend@experiments.iam.gserviceaccount.com"),
		},
		ServiceAccountId: p.Name,
	})
	if err != nil {
		return err
	}

Expected Behavior
Permissions assigned to the service account
Actual Behavior

Error applying IAM policy for service account<EMAIL_ADDRESS>Error setting IAM policy for service account<EMAIL_ADDRESS>googleapi: Error 400: Role roles/storage.admin is not supported for this resource., badRequest

Output of pulumi about

Error applying IAM policy for service account<EMAIL_ADDRESS>Error setting IAM policy for service account<EMAIL_ADDRESS>googleapi: Error 400: Role roles/storage.admin is not supported for this resource., badRequest

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @naveensrinivasan - this is an error coming from GCP, not Pulumi.
I think you're running into a service account management snag here.
Hopefully relevant Stackoverflow discussion.

@guineveresaenger  OK, How do we solve this issue? I would appreciate some guidance.Thanks

hi @naveensrinivasan, Guin, provided you a few links to help here. have you been able to check those out?

hi @naveensrinivasan, Guin, provided you a few links to help here. have you been able to check those out?

I did. But I still couldn't understand how I can create a service account and apply those permissions. Any help would be appreciated.
Thanks

@naveensrinivasan i believe Nick reached out to you on slack to get you setup with someone who can help out. let me know though if you didn't get his messages. hope you have a good weekend!

Hi @naveensrinivasan , great talking to you earlier! As requested, here's the code to create the service account. I'll open a separate issue for the import command issues you found and will send you the link.
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := serviceaccount.NewAccount(ctx, "prom-frontend", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("prom-frontend"),
			DisplayName: pulumi.String("prom-frontend service account"),
		})
		if err != nil {
			return err
		}

		return nil
	})
}

Hi @naveensrinivasan , great talking to you earlier! As requested, here's the code to create the service account. I'll open a separate issue for the import command issues you found and will send you the link.
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := serviceaccount.NewAccount(ctx, "prom-frontend", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("prom-frontend"),
			DisplayName: pulumi.String("prom-frontend service account"),
		})
		if err != nil {
			return err
		}

		return nil
	})
}

@caboog  Thanks, How do I attach a role to the service account?


Improvement 384 - New Wallet headers design

Tested

iPad 2017 (iOS 11.4)
Android (LG G6, Android 8)
macOS
Chrome Browser

It works as expected


Vault refactoring

Vault changes for next Vault deployment that are not collateral swaps or gas improvements.
This includes:

https://github.com/OriginProtocol/origin-dollar/issues/1442
https://github.com/OriginProtocol/origin-dollar/issues/1619
Renaming OSUD to OToken in the Vault Natspec which covers some of https://github.com/OriginProtocol/origin-dollar/issues/1533
Upgrade GitHub Actions to remove warnings
Adding getAssetConfig to VaultCore

We can merge this one as is.


Doesnt work in IE11

If i change it
    var pdfJsSrc = document.currentScript.src;
at it
var pdfJsSrc = (function() {
      var scripts = document.getElementsByTagName('script');
      return scripts[scripts.length - 1].src;
})();

All works fine in ie11
Both file pdf.js and pdf.worker.js

Add web/compatibility.js to your page to avoid the above. Also it was already fixed in newer version of PDF.js (https://github.com/mozilla/pdf.js/blob/master/src/pdf.js#L34). Closing as invalid.


pull request for e2e test at 11/23/2016 19:26:04

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


TeachingTip buttons are not following CornerRadius guidelines

Describe the bug

As part of the recent Fluent UI guidelines most controls on windows have CornerRadius values set so that they are rounded. Button is one of such control, although the buttons that are shown in the UI for Teaching tip are not following this.
Steps to reproduce the bug

Steps to reproduce the behavior:

Create a new UWP app
Add a teaching tip to the page and make it visible.

`<muxc:TeachingTip x:Name="SampleTeachingTip"
PreferredPlacement="Auto"
ActionButtonContent="Apply"
CloseButtonContent="Close"
Title="This is teaching tip"
Content="This is the content"
IsLightDismissEnabled="False">
</muxc:TeachingTip>`
Expected behavior

Buttons are rendered with rounded corners
Screenshots

Version Info

NuGet package version:

Microsoft.UI.Xaml 2.4.0-prerelease.200506001

Windows 10 version
Saw the problem?

Insider Build (19041.21)
Yes

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Mobile

Xbox

Surface Hub

IoT

Additional context

Looks like some of the buttons don't get rounded corners, especially in popups/dialogs.

Related to #1345

Do they not use the default control templates?

This issue is present in the latest version of the XAML controls gallery as well.

I took a look at the XAML: https://github.com/microsoft/microsoft-ui-xaml/blob/master/dev/TeachingTip/TeachingTip.xaml
I don't know the control at all, but it looks like the problem is here:
https://github.com/microsoft/microsoft-ui-xaml/blob/9b99426c9c2846468f1f420b595273b1631072ec/dev/TeachingTip/TeachingTip.xaml#L574
and
https://github.com/microsoft/microsoft-ui-xaml/blob/9b99426c9c2846468f1f420b595273b1631072ec/dev/TeachingTip/TeachingTip.xaml#L580
Both ActionButtonStyle and CloseButtonStyle are not defined in XAML from what I can see -- so don't know where to go to fix this. These may be copy/pasted from the ContentDialog. Someone with knowledge of the control will have to say how to update these two styles to respect the corner radius (or base on the latest button style with rounded corners).

Yes the problem are those two styles, which are probably "empty" (and might contain corner radius = 0 because of that).
A way we could fix this is adding the following line (in case of ActionButton, other buttons are similiar):
        <Setter Property="ActionButtonStyle" Value="{ThemeResource DefaultButtonStyle}" />

I am not sure though if there would be side effects if we do this.
Also what is a bit confusing, is that there are properties on the TeachingTip control for those, but yet we are binding the button styles using TemplateBinding. Shouldn't we use the template properties instead?

@chingucoding Good catch, I hadn't checked and these are dependency properties of the control so they can be re-styled without retemplating.
This means the code should be "Binding" instead of "TemplateBinding" -- this is a bug. Then the default value of the DP should be the standard DefaultButtonStyle. We shouldn't create new styles for these buttons. They are supposed to look like normal buttons in this case from what I see.

@ranjeshj Shouldn't we expose the ActionButtonStyle and CloseButtonStyle in the template settings? Currently there are these properties on the TeachingTip class, but they are not used at all. Shouldn't those do something?

@StephenLPeters as FYI.

@ranjeshj Shouldn't we expose the ActionButtonStyle and CloseButtonStyle in the template settings? Currently there are these properties on the TeachingTip class, but they are not used at all. Shouldn't those do something?

I would suggest every control that contains templated parts or sub controls - should expose any styles of templates to the control proper.

TemplateSettings are usually readonly. If the control has these style properties already, I would expect it to be wired up to the template. If we did not have these properties, one option could be use theme resources like we use for brushes.


⚠ GitLab Server has degraded performance

In 972544a, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11006 ms

Resolved: GitLab Server performance has improved in 61c9ec8.


zchunk: 1.2.2 -> 1.2.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/zchunk/versions.
meta.description for zchunk is: "File format designed for highly efficient deltas while maintaining good compression"
meta.homepage for zchunk is: "https://github.com/zchunk/zchunk"
meta.changelog for zchunk is: ""
Updates performed

Version update

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.3 with grep in /nix/store/2xp3095qpk269bip0zjmy8l873avpfk1-zchunk-1.2.3
found 1.2.3 in filename of file in /nix/store/2xp3095qpk269bip0zjmy8l873avpfk1-zchunk-1.2.3

Rebuild report (if merged into master) (click to expand)

10 total rebuild path(s)

10 package rebuild(s)

First fifty rebuilds by attrpath
createrepo_c
libdnf
librepo
libsolv
microdnf
micromamba
python310Packages.librepo
python39Packages.librepo
rpm-ostree
zchunk

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2xp3095qpk269bip0zjmy8l873avpfk1-zchunk-1.2.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A zchunk https://github.com/r-ryantm/nixpkgs/archive/577c31e3343c11a245065cd30c1f844c99f452ec.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2xp3095qpk269bip0zjmy8l873avpfk1-zchunk-1.2.3
ls -la /nix/store/2xp3095qpk269bip0zjmy8l873avpfk1-zchunk-1.2.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

10 packages built:

createrepo_c
libdnf
librepo
libsolv
microdnf
micromamba
python310Packages.librepo
python39Packages.librepo
rpm-ostree
zchunk

Maintainer pings
cc @AndersonTorres for testing.

The patch does not apply on darwin btw.


Crash Build on linux

Linux
swift-log-file: 0.1.0
swift: 5.3
<module-includes>:1:10: note: in file included from <module-includes>:1:
#include ".../.build/checkouts/XCGLogger/Sources/ObjcExceptionBridging/include/ObjcExceptionBridging.h"
         ^
...//.build/checkouts/XCGLogger/Sources/ObjcExceptionBridging/include/ObjcExceptionBridging.h:10:9: error: 'Foundation/Foundation.h' file not found
#import <Foundation/Foundation.h>
        ^
/...//.build/checkouts/XCGLogger/Sources/XCGLogger/Misc/HelperFunctions.swift:11:8: error: could not build C module 'ObjcExceptionBridging'
import ObjcExceptionBridging
       ^

Hey-- thanks for the issue. This is designed only for usage on iOS presently. Happy to have a PR to adapt for a Linux environment.


[docs] Update unstyled demos to not depend on @material-ui/core

[x] I have followed (at least) the PR section of the contributing guide.

Preview: https://deploy-preview-26869--material-ui.netlify.app/components/slider/#unstyled

@eps1lon I think that it depends on the perspective. There are multiple
possible views:

Stack is imported from the core, but we want stronger isolation in
anticipation of a stronger isolation of the structure of the documentation
between MD and the system. It should be removed or moved inside the system.
Stack reduces clutter in the source, allowing developers to focus on the
examples inside the demo. It's more descriptive/shorter than a Box with sx.
Stack is a new piece of the demo that developers have to learn. Either we
want them to learn it and it's seen as beneficial, or we consider we don't,
and it's extra mental overhead.

I would personally vote for the version of being true to reality (sorted
desc by % of confidence):

Stack is reducing the noise in the demo. Devs learning Stack is worth the
mental overhead. Isolation of the system from MD is better. Stack should be
in the system.

But it doesn't mean that it's the true version of reality.
On Tue, Jun 22, 2021 at 3:58 PM Sebastian Silbermann <
@.***> wrote:

@.**** commented on this pull request.
In docs/src/pages/components/badges/UnstyledBadge.tsx
https://github.com/mui-org/material-ui/pull/26869#discussion_r656249386:

@@ -74,13 +72,15 @@ function BadgeContent() {

export default function UnstyledBadge() {
return (

What changed now? I remember also trying to remove unrelated components
from demos and I think I was shut down.
To be clear: I'm very much in favor of removing unrelated components like
Stack or Box because they make the learning curve steeper.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/mui-org/material-ui/pull/26869#discussion_r656249386,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAYE3Q5FJKMYXRFBS3YCFLLTUCJJBANCNFSM47BIY4OQ
.

It's more descriptive/shorter than a Box with sx.

For you. I guarentee that 99% of developers are more familiar with CSS than what a "Stack" component does.

developers are more familiar with CSS than what a "Stack" component does.

@eps1lon How about we use Twitter to resolve the question?  We can improve our intuition by asking them from time to time, e.g. when we have two distinct version of reality. Do you want to frame the question so that it would match your expectations of non biases in the poll? Otherwise, I can propose something.

How about we use Twitter to resolve the question (what would yield the best DX in the demos)?

These are already people following us not new learners.

I'm not. I try to give people the right tools to build good UIs. The web is for the end-user not the developer.


Download hazelcast-enterprise-5.3.0-SNAPSHOT-tests.jar as well.

Actions download hazelcast-enterprise-5.3.0-SNAPSHOT-tests.jar as well to support TPC and Partition Aware Client features.

Windows test PASSed.


Port to pydantic 2

Upgrade pydantic to pydantic 2.4.2. Rewrite bits needing rewriting, with the assistance of the porting tool bump-pydantic.
Wrote new unit tests for the validators that I had to respell.
Whole test suite passes w/o any deprecation warnings:
pytest tests
================================================================================ test session starts ================================================================================
platform darwin -- Python 3.11.6, pytest-7.4.2, pluggy-1.3.0
rootdir: /Users/jlrobins/noteable/origami
configfile: pyproject.toml
plugins: anyio-4.0.0, asyncio-0.19.0, cov-4.1.0
asyncio: mode=Mode.AUTO
collected 32 items

tests/e2e/api/test_files.py ..                                                                                [  6%]
tests/e2e/api/test_projects.py ..                                                                                [ 12%]
tests/e2e/api/test_spaces.py ..                                                                                [ 18%]
tests/e2e/api/test_users.py .                                                                                [ 21%]
tests/e2e/rtu/test_execution.py ...                                                                                [ 31%]
tests/e2e/rtu/test_notebook.py .....                                                                                [ 46%]
tests/unit/test_sql_cells.py ..                                                                                [ 53%]
tests/unit/test_version.py .                                                                                [ 56%]
tests/unit/models/test_files.py .                                                                                [ 59%]
tests/unit/models/test_notebook.py ....                                                                                [ 71%]
tests/unit/models/test_project.py .                                                                                [ 75%]
tests/unit/models/test_rtu_base.py ......                                                                                [ 93%]
tests/unit/models/test_space.py .                                                                                [ 96%]
tests/unit/models/test_user.py .                                                                                [100%]

================================================================================ 32 passed in 43.14s ================================================================================

Code looks good, tests look good. What do you have in mind for medium-term maintenance while testing out all downstream apps that use Origami, and whether they can support the pydantic 2.x bump? Do we leave this as an open PR and for regular updates to Origami we merge into main then update this PR?


[PROCESS] ToIP in violation of the Sovrin Glossary CC BY-SA section 3. Attribution requirements

Need
ToIP is in violation of the Sovrin Glossary CC BY-SA section 3. Attribution requirements: https://creativecommons.org/licenses/by-sa/4.0/legalcode
Proposed Solution

Attach all the required elements of CC BY-SA section 3. Attribution to each Sovrin Glossary term and definition ingested into the ToIP Glossary, and
Ensure that all of the required elements of CC BY-SA section 3. Attribution are presented to each ToIP Glossary user wherever and whenever a Sovrin Glossary term and definition is either presented directly to a user or via a link to any Sovrin Glossary term and definition.

I don't think we are in violation, because we are not republishing anything yet. But I think we WOULD be in violation if we proceeded without addressing the issue. So I think the appropriate course would be to figure out how to handle attribution in our tooling.

@dhh1128  CC BY-SA applies at the point of acquisition/ingestion ...it doesn't matter that you do downstream as an internal ToIP process (e.g. Publishing).  Anywhere/anytime you have external CC BY-SA content ingested/stored in any repository - ToIP repositories, in this case.

...think of it like a "chain of copyright rights and licensing rights custody" issue.

The Sovrin Glossary doesn't appear to have a CC BY-SA notice. I don't see one in the live version of the doc (which appears to be the frozen V3 link as well), or in the Governance Framework docs that comprise its parent artifacts.
I am not disputing that a CC BY-SA license was the intention; that was my understanding, too. But the lack of a formal statement actually concerns me (makes my worry about this issue stronger than it was when I first read it), because it means we could be in greater violation than we realized. @talltree , perhaps we need to make sure the CC license is more easy to find?
We actually are attributing Sovrin in the only artifact we've created, which is raw data in the CTWG repo. (Today there is no "TOIP Glossary" that contains the Sovrin data. The Sovrin data we do is the result of an import experiment we did, and is very raw.) We attribute Sovrin's data by source name, which is not as good as a link but which does satisfy the attribution clause of the CC BY-SA license. But we don't satisfy other clauses of CC BY-SA, because we don't include a link to the license, to the disclaimers, and so forth -- so Michael is totally right we need to do better.
It's important to be precise about the scope of copyrightable material. A dictionary is copyrightable, and so are its individual definitions. But I don't believe the headwords (terms) themselves are copyrightable, and I'm certain that concepts are not. That is, you can copyright (and therefore license) a good definition for the concept "MRI machine" -- but you can't copyright the phrase "MRI machine" or the ideas that your definition of "MRI machine" points to. Intellectual property protections for those things use different mechanisms (e.g., trademarks, patents). See this discussion among professional librarians: https://librarycopyright.net/forum/view/390
The practical consequence to us is probably that in our internal data records, a term file is not copyrightable (since it decorates an uncopyrightable concept label with metadata). A concept file in its totality is not copyrightable, either. However, the definition field inside a concept record, plus any example usages that came from an external source, need to be cited correctly -- both in our corpus, and in any external manifestation of it (e.g., hovertext, a glossary). This is a good requirement for our tooling. I'm so glad Michael surfaced it.

@dhh1128 The copyright and licensing notice is in the same place in every document in the Sovrin Governance Framework V2 — in the footer at the end of the document (which for online papers is the standard place to put a copyright notice, no?). I know because I did the hard work (along with Sovrin Foundation superstar Matt Norton) to verify that we had the correct notice on every document.
I just confirmed the footer on the Sovrin Glossary V3 document and the SGF V3 Master Document both say:

© 2019 by Sovrin Foundation. This work is licensed under Creative Commons Attribution- ShareAlike 4.0 International License (http://creativecommons.org/licenses/by-sa/4.0/).

I do agree with you and Michael that with our CTWG tooling, we need a standard way to note the attribution for any content ingested under a CC by SA license — or other license that is compatible with our own CC by SA 4.0 license. And if submitted material is NOT compatible with our CC by SA 4.0 license, we cannot accept it, period.

The facts are the facts guys.  The Sovrin Glossary V3 is licensed under the CC BY-SA license.  See below.

And if submitted material is NOT compatible with our CC by SA 4.0 license, we cannot accept it, period.

The CC license that is used for the Sovrin Glossary, more specifically the CC BY-SA license, is more restrictive than the current choice of ToIP CC license (https://github.com/trustoverip/concepts-and-terminology-wg/blob/master/LICENSE) which CC BY (only).
Hence, the Sovrin Glossary CC BY-SA license is not compatible with the ToIP CC BY license and the Sovrin Glossary is not acceptable for acquisition and ingestion by ToIP (based on @talltree's logic).

@mwherman2000 See this screenshot from the Wikipedia page about Creative Commons licenses that explains that the new internationalized CC BY license and the older CC BY SA have the same features. Note that both require attribution.

I am not a lawyer, but my understanding is that content under a CC BY SA license can be redistributed under a CC BY license but without changing the underlying CC BA SA license.

Thank you for helping me find the statement. I looked for it at the beginning and in the footers on every page of the doc, but it did not occur to me to page down to the end. I'm glad that's cleared up. Breathing a sigh of relief.

@talltree : I went and read the wikipedia page, and I believe Michael is right. My reading is that CC BY-SA is more restrictive and therefore cannot have CC BY layered on top. The relevant sentence that convinced me was this one, in the table describing the share-alike provision:

Licensees may distribute derivative works only under a license identical to ("not more restrictive than") the license that governs the original work. (See also copyleft.) Without share-alike, derivative works might be sublicensed with compatible but more restrictive license clauses, e.g. CC BY to CC BY-NC.)

Of course, the license text itself, not the wikipedia page, would be normative -- and of course lawyers could/should weigh in to clarify that. But I think the tension does exist.
If my interpretation is right, then this has two consequences:

The github repo where this data appears needs to have a CC-BY-SA license on it -- or we need to delete the repo and rebuild one without the Sovrin data in it -- or we need to put a CC-BY-SA license just on the folder that contains the Sovrin definitions.

Assuming we get the repo issue ironed out, all glossaries that we build from the repo need to be sensitive to the license issue, such that, if a piece of CC BY-SA copyrighted material is included in a work built from the corpus, proper attribution is carried into the exported data and displayed in a reasonable fashion. This does NOT mean every glossary we build will have that characteristic; it only means glossaries that contain (by value, not by reference) definitions (not terms) written for the Sovrin Glossary.

Of course, there is another option as well. Copyright holders can choose to relicense their copyrighted material. We could approach the Sovrin Foundation about an alternative license.

RE: Of course, there is another option as well. Copyright holders can choose to relicense their copyrighted material. We could approach the Sovrin Foundation about an alternative license.
Your suggestion is disadvantageous to upstream copyright holders such as the SF because it, in effect, is robbing of the full downstream attribution that is due to them in the first place.
From: Daniel Hardman @.>
Sent: March 29, 2021 8:36 PM
To: trustoverip/concepts-and-terminology-wg @.>
Cc: Michael Herman (Trusted Digital Web) @.>; Mention @.>
Subject: Re: [trustoverip/concepts-and-terminology-wg] [PROCESS] ToIP in violation of the Sovrin Glossary CC BY-SA section 3. Attribution requirements (#47)
Of course, there is another option as well. Copyright holders can choose to relicense their copyrighted material. We could approach the Sovrin Foundation about an alternative license.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/trustoverip/concepts-and-terminology-wg/issues/47#issuecomment-809859605, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABORV2B4ONPMR3M4KTUIKM3TGE2HJANCNFSM4Z7VL6LA.

@dhh1128 Wikipedia is not an authority when it comes to understanding the differences between the different types of CC licenses.
Use this page instead: https://creativecommons.org/about/cclicenses/

Good points, Daniel. I am just one opinion but I suspect the Sovrin
Foundation and the ToIP Foundation would be united in wanting to solve this
licensing issue not only for themselves but for DIF and for everyone else
who wants to participate in a shared community terminology corpus the way
we are designing it.
My suggestion is threefold:

Let's go to Linux Foundation counsel and get their advice on how best
to structure the licensing we want to use for the CTWG corpus.
Let's take that advice to the Sovrin Foundation and see if they agree.
Let's then take it to all the other potentially interested
contributors/customers (e.g., DIF, LFPH, Hyperledger, W3C CCG, etc.) and
see if we can align.

Thoughts?
On Mon, Mar 29, 2021 at 7:35 PM Daniel Hardman @.***>
wrote:

Of course, there is another option as well. Copyright holders can choose
to relicense their copyrighted material. We could approach the Sovrin
Foundation about an alternative license.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/trustoverip/concepts-and-terminology-wg/issues/47#issuecomment-809859605,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZOITLIOT2USWPTXP7VEELTGE2HJANCNFSM4Z7VL6LA
.

Did we land anywhere on this issue?

BTW, Mr. Herman has gone pretty quiet recently. I don't know what he's up to. =D

Combining lentils and maple peas.  Harvest shouldn't last too long with our drought.
I did take a day to knock this out: https://www.youtube.com/watch?v=FFv4WZ0p3aY
"More news at 11...",
Michael

If ToIP is still using the original CC-BY version of the CC license, then ToIP is still in violation of the Sovrin Glossary CC-BY-SA license and all Sovrin Glossary terms and definitions need to be removed from the ToIP repositories.

Michael, with the terms wiki
https://wiki.trustoverip.org/display/HOME/Terms+Wikis architecture that
we are putting in place, each participating group (such as the Sovrin
Foundation if it chooses to participate) will maintain its own GitHub repo.
Secondly, each entry in a terms wiki will include its own licensing info,
which will be included in any glossary that includes that term. So "the
license will follow with the term".
This should address any IPR around any term in any participating term wiki.
=Drummond
On Fri, Aug 6, 2021 at 3:45 AM Michael Herman (Trusted Digital Web) <
@.***> wrote:

If ToIP is still using the original CC-BY version of the CC license, then
ToIP is still in violation of the Sovrin Glossary CC-BY-SA license and all
Sovrin Glossary terms and definitions need to be removed from the ToIP
repositories.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/trustoverip/concepts-and-terminology-wg/issues/47#issuecomment-894174473,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZOITNYCIZIBL6MVIA7OLLT3O4M5ANCNFSM4Z7VL6LA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

If ToIP currently has any version or subset of the Sovrin Glossary in any of its repositories (which I believe it does), then it is in violation of the Sovrin Glossary license terms.

For completeness, the second requirement is one stipulated for content to be received and accepted by ToIP, good old "Section 6" of the JDF Project Charter version 5.0.1:

Conditions for Contributions. A Steering Member, General Member, or Contributor may not make any Contribution unless that Steering Member, General Member or Contributor is the exclusive copyright owner of the Contribution or has sufficient copyright rights from the copyright owners to make the Contribution under the terms of this Project Charter and applicable
Working Group Charter. Working Group Charter. The Steering Member, General Member, or Contributor must disclose the identities of all known copyright owners in the Contribution.
[v.5.0.1 Project Charter Page 2 of 4]

So


fix: spelling incorrect

What is the purpose of the change
fix some spelling incorrect
Brief changelog
XXXXX
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

LGTM. I don't think this PR will fail CI, I'm trying to restart CI again to see how it works


Feedback on Automatic Seeding Feature

Automatic Seeding does not take care of any log backup taken on Primary database after seeding has initialized. The request if to make it flexible enough so it can take care of it automatically. For now we have to apply tose t-log backups manually in order to join database into AG.

@GauravRathod -- thank you again for your feedback.  Are you following a particular docs.microsoft.com article?


Adds docs for module resolution and resolve api

Separated concepts and api in this case. Referencing #12

Made the requested changes.
One concern is that the table for alias is overflowing horizontally. I believe its a really great piece of info that I picked from the old documentation. It was very useful to me personally when I ran into some problems with aliasing. Any advice on how to handle the overflow?

@gregvenech Any thoughts on table styling? How to handle big ones?

Yea this is a problem especially on mobile. I'll look into it.


I think it's time to upgrade to .NET 7 :)

with .NET 7...It's entirely native, with no IL or JIT, and provides fast startup time and a small, self-contained deployment.
I am interested to contribute, Please accept my request.

@ravichigurupalli
The.net 7 upgrade is underway in the dev branch and features are still being refined
There are problems with file storage and database migration. At present, only mysql is tested, and it is necessary to consider how to implement migration of multiple databases with the same release version.
It's all in the works looking forward to your sharing

got it. Thanks for the response.


Slide animations is not working properly

This is:

Bug
Feature request

Specifications

AOS version:  aos@next
OS: windows
Browser: chrome 86

Expected Behavior

I used data-aos="slide-up" but the transition needs to be smooth.
Actual Behavior

For eg:-  I added all slide animation on a div and saved it but while scrolling the div slides in with not so smooth transition
In other words, the div first stuck from the starting point of the animation and then comes back to its original position
Steps to Reproduce the Problem

0.use bootstrap
1.add div
2.then add data-aos="slide-up"
3.save it and see the animation on the browser
Detailed Description

## Possible Solution

I don't know how to fix this but perhaps there is some issue with the starting point of the animation or DOM or opacity while starting...

duplicate


Renew iccluster051 before 2024-02-24

Current reservation from 2024-01-10 to 2024-02-24.

Renewed until 2024-04-09.


align footer icons to center

Currently the footer icons are aligned to the right. Please align them to the center

assign me 😃

hey, i am new to open source. i have fixed the issue, and i am getting another issue when i am trying to create the pull req. the bot says i am trying to deploy a commit, which i'm not i'm just trying to get your approval by making a pull req. please check it, is it meant to do so
as i said i am new to github alltoghter so i don't know

hey, i am new to open source. i have fixed the issue, and i am getting another issue when i am trying to create the pull req. the bot says i am trying to deploy a commit, which i'm not i'm just trying to get your approval by making a pull req. please check it, is it meant to do so as i said i am new to github alltoghter so i don't know

don't worry about that. It's not deploying. The message means: the changes will be deployed when I merge it.

ok, thankyou for letting me know


Use papermill --report-mode for easier debugging on CI

Hm, this doesn't seem to do what I hoped (specify the cell contents when executing). 🤷♂


logic for which posts to send seems inverted somehow

So someone finally posted a python-trio question on SO this evening:
https://stackoverflow.com/questions/57742649/asks-async-https-client-ssleoferror-on-connect-attempt-to-server-with-self-s
and the bot noticed and sprang into action! It posted 29 links to the chat, none of which are the new question:
https://gitter.im/python-trio/general?at=5d6b21c929dba2421ce0bc11
The gitter timestamps are within 5 min of the question being posted.
This is kind of hilarious, but also very confusing. 🤣😕⁉
It's almost like the logic is:
IF there's a question posted that was posted in the last 10 min, THEN post all the questions that weren't posted in the last ten minutes
Maybe RSSReader.read(newer_than=...) does not work the way one would expect?

Oh I see... read_feed is actually our custom logic, so this is actually the first time it's been tested. (I thought it was part of feedparser, so I was super confused.) I even skimmed it before, and didn't notice anything wrong... But looking again with the bug in mind, it's not too hard to see that the idx == 0 comparison here doesn't make sense:
https://github.com/bots-for-humanity/trio-gitter-bot/blob/master/cron/rss_reader.py

And now it works!
https://gitter.im/python-trio/general?at=5d6d86d18066a340733b83dc


USHIFT-1085: feat: support prerun with minimal services

Added function to launch minimal MicroShift services when needed. For now the idea is to keep it as a local function for prerun until we need to expose it. I tried to keep it simple at the call site by not sending the channels back to the caller to handle.
This PR supports #1956
/assign @pmtk

/test ?

/test microshift-metal-tests

/lgtm


add opam cache to gh actions

This doesn't seem to improve much and the setup-ocaml action already seems to have some sort of caching. Nevertheless, it does 7 minutes of work on each run.

Merging since it improves, but really not satisfied with opam + gh actions


Fix typos in Chinese translation

Thanks for fixing repos.

@yi-bai I take that as a :+1: from you to merge?

Yes, please merge it.

Thank you both!


Artifact downloads in step config

It would be super cool if steps didn't have to manually download artifacts. That way, scripts could be run locally, and make assumptions that said artifact will exist on disk. Since if run locally, it should be safe to assume someone ran the steps in order.
Currently I am using a pre-command hook that looks like this:
DOWNLOADS="${ARTIFACT_DOWNLOADS:-}"
DOWNLOAD_PATH="${ARTIFACT_DOWNLOADS_PATH:-.}"

mkdir -p "${DOWNLOAD_PATH}"

IFS=":"

for path in ${DOWNLOADS[@]}; do
  buildkite-agent artifact download "${path}" "${DOWNLOAD_PATH}"
done

I'm no bash expert, I'm sure there are better ways. But this allows you to specifcy an ENV var in your pipeline config, that will automagically download all artifacts you specify.
The downside to this is artifact upload "paths" are lost, and all downloads will be in 1 space, as a flat structure. Which is pretty annoying, but I've not bother to find a better solution yet.
It'd be super cool if we didn't need this hackery though. I'd really love a way to specify in step config that i want a particular artifact from a previous step to auto-exist in my folder structure. I wonder if named artifacts are the way to go? E.g.
steps:
  -
    name: artifact-generator
    command: ./generate-some-artifacts
    artifact_uploads:
      foo: 'target/*'
      bar: 'other/bar.txt'
  -
    name: artifact-consumer
    command: ./use-some-artifacts
    artifact_downloads:
      - foo
      - bar

Obviously an issue here would be file clobbering. I say let that be a lesson to the user.

@tigris thanks for talking us through what you're after!

named artifacts

I've not actually thought of this before...and I actually think it's a really neat idea :) A while ago I was experimenting with some new features to the pipeline.yml file here: https://gist.github.com/keithpitt/bbe7851bc223741ff842be46d2cd14db (not that most of the features in here haven't even been created). But you'll see a new syntax for artifact uploading / downloading.
This pipeline is my attempt at taking our current deploy process and turning it into a BK pipeline - I think it has some potential! I really like your idea of named artifacts though, and I wonder how I can incorporate them!

I would love this too!

👋 We're just doing some spring cleaning, and decided to close this issue for now. I'm planning a whole bunch of artifact upgrades this year (including a new upload/download syntax in the pipeline.yml file, and these changes will hopefully be included in that).

For people coming across this, there's also https://github.com/buildkite-plugins/artifacts-buildkite-plugin:
steps:
  - plugins:
      artifacts#v1.2.0:
        download: "log/**/*.log"
        upload: [ "log/**/*.log", "debug/*.error" ]


Feat: Improve build process

Refactor build script, lays foundation for more improvements.

I don't know that that build.sh magic works but I trust you @KartikSoneji

LGTM, Ig we can merge it

I will need time to understand this; not sure if I understand Kartik's POV.
Although, we can go ahead if it looks good.


Im/sdss like galaxies

Closes #231

Here is an example of the more realistic galaxies I'm producing on SDSS, notice the wider variety of fluxes and morphologies:

This example uses the psf_at_points function to get the psf

I'm closing this PR soon to merge the SDSS galaxy generation at least (I think these galaxies look good). In the next PR try out BIVA


minimalcss is unable to extract css from many webarchive snapshots

I would like to use minimalcss to extract the used css from http://web.archive.org/ snapshots of a webpage (e.g http://web.archive.org/web/20110310061818/http://www.bloomberg.com/) and compare the results over time to find out how often the layout/appeareance of a webpage has changed in the past.
Unfortunately this is not so easy with minimalcss, because it stops working whenever a stylesheet cannot be fetched (404 error). 404s are a very common thing on web.archive.org, as many captures are incomplete. I could partially work around them using the skippable function, but it only lets me skip the request upfront  - i cannot react on response errors. My preferred behaviour would be to output the used css to stdout vs. logging the unretrievable stylesheet urls to stderr.
Another issue is the mandatory CSSO-Optimisation, which crashes on certain CSS property values.  I could mitigate some crashes by setting cssoOptions: {restructure: false}, but it would be nicer if i could disable the optimisation altogether.
I'm aware that my use case is somewhat uncommon for minimalcss, but maybe the library can be extended to make it possible?

I also noticed that minimalcss times out on certain web.archive snapshots:
const minimalcss = require("minimalcss");

minimalcss
  .minimize({
      urls: ['http://web.archive.org/web/20161001001006/https://www.theguardian.com/us'],
    ignoreJSErrors: true,
    withoutjavascript: true,
    ignoreCSSErrors: true,
    loadimages: false,
    enableServiceWorkers: true,
    timeout: 90000,
    cssoOptions: {restructure: false},
    skippable: request => {
        return request.url().indexOf('theguardian.com') === -1;
    }
})
  .then(result => {
    console.log(result.finalCss);
  })
  .catch(error => {
    console.error(`Failed the minimize CSS: ${error}`);
  });

results in the error
Failed the minimize CSS: TimeoutError: Navigation Timeout Exceeded: 90000ms exceeded
Tracked URLs that have not finished: http://web.archive.org/web/20161001001006/https://www.theguardian.com/us, http://web.archive.org/web/20161001001006/https://www.theguardian.com/us-news/series/politics-for-humans/rss

Maybe it makes sense to stop all pending requests at start_time + (timeout - 10%) and use the remaining time to calculate the used_css and return it?

Timeout can be a puppeteer bug. Related https://github.com/peterbe/minimalcss/issues/112

What @stereobooster said is true.
But I wonder, why do you have enableServiceWorkers: true in there?


Fix bug occurring when limiting the amount or changing order of textInputModes

[x] The code change has been made (leave empty if not applicable)
[x] The code change has been documented in the main README

not necessary with this change

[x] code change has been documented in the documentation site

not necessary with this change

[x] run pnpm prettier
[x] code change has been added in the changelog with changeset (you can leave it to me if you're unsure)

What was fixed

When you pass only two modes in the textInputModes prop (e.g. ['rbg', 'hex']) the mode would not switch correctly
Choosing a single mode in textInputModes prop would only work with ['hex']
Changing the order of textInputModes modes would lead to wrong display of input fields

I looked through the files and it looks great, thanks! I'll check that next week. Don't hesitate to ping me if I don't!

I looked at what you did and it works beautifully! I added the label like display (rgb / hsv / hex) without the hover effect. I cannot commit on the branch of this PR and made a new branch. You can view the différence here: https://github.com/Ennoriel/svelte-awesome-color-picker/commit/fd54d2b78339d9fa6c6d459624766f2bdd800b33. If that's ok for you, I'll merge the branch ;)

Sounds good! Thank you for the time that you have put in :)


Introduce libraries support instead of auto-import

The auto-import feature is not yet documented and not default because a lot of libraries package.json is not enough to actually use the library out of the box.
Since the web-bundler is here to makes things easy for developers and bring sensible default to remove the hassle of looking for everything, I am thinking it could be nice to have something like we do in Quinoa with framework support but with libraries.
Library support would consist of declaring a name, a version range and a javascript code block in the web-bundler. This would be used when quarkus.quinoa.library-support=true and the given library is used.

@melloware @maxandersen @phillip-kruger @edewit  any thoughts on this?

@gbourant that would make htmx 2.0 work out of the box with extension support

Here is an example of what we would need to generate:
https://github.com/ia3andy/one-two-three-quarkus/blob/main/dashboard/src/main/resources/web/app/app.js

Another option would be to have a documentation page containing how to use for libraries instead.. I am not sure what's the best here..

Another option would be to have a documentation page containing how to use for libraries instead.. I am not sure what's the best here..

I think that it would be useful to have some kind of "compatibility list" for some popular libraries (bootstrap, htmx, fontawesome, etc.). And this list could contain some basic info. E.g. if quarkus.web-bundler.dependencies.auto-import=all works out-of-the-box. It does not have to be part of the docs, a github wiki page would be enough IMO.

I don't know how to implement it for Web Bundler but i will say adding Framework support has made Quinoa so much more developer friendly out of the box!


Adding on chain registry usage

Problem:
Badger is moving away from storing addresses of different contracts with the code. Instead, on chain registry shall be used to obtain addresses
Done:

Add new class OnChainContractRegistries to fetch contract addresses from on chain badger registry https://github.com/Badger-Finance/badger-registry
Add registry contract solidity code so badger-utils will be able to access registry on chain
In network manager, support new networks, such as arbitrum and polygon
Lots of tests for any taste
Updated README with new on-chain registry usage

Note:

To use registry now, please use chain_registries.initialize() method to map onchain contract to brownie injected code
If you wanna use this library code somewhere else than on Eth mainnet, consider adding new network to your brownie configuration: https://eth-brownie.readthedocs.io/en/stable/network-management.html#adding-a-new-network

Codecov Report

Merging #3 (751c705) into master (ed26b35) will increase coverage by 0.56%.
The diff coverage is 94.11%.

@@            Coverage Diff             @@
##           master       #3      +/-   ##
==========================================
+ Coverage   84.22%   84.79%   +0.56%
==========================================
  Files          24       26       +2
  Lines         558      592      +34
==========================================
+ Hits          470      502      +32
- Misses         88       90       +2

Impacted Files
Coverage Δ

badger_utils/registry/on_chain_registries.py
86.66% <86.66%> (ø)

badger_utils/registry/base_registry.py
91.66% <91.66%> (ø)

badger_utils/constants.py
100.00% <100.00%> (ø)

badger_utils/network_manager.py
92.68% <100.00%> (+1.25%)
:arrow_up:

badger_utils/registry/__init__.py
100.00% <100.00%> (ø)

badger_utils/registry/registries.py
100.00% <100.00%> (+5.55%)
:arrow_up:

Continue to review full report at Codecov.

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


bugfix/crypto_org: Fix automated test failure on Crypto.org Chain App

📝 Description
Automated tests for Crypto.org Chain App now see failures on the crypto.org integration: https://github.com/LedgerHQ/ledger-live/commit/65e1f628865f969ab05a4f7898b6ef8c8bc1b2cf#commitcomment-99160026
▬ Crypto.orgChain 2.16.7 on nanoS 2.1.0
→ FROM Crypto.org 1 cross: 0.999925 CRO (0ops) (cro1zputcjqlxpkg7sa4aymwvv3qj8mcejk06recc7 on 44'/394'/0'/0/0) #0 js:2:crypto_org:cro1zputcjqlxpkg7sa4aymwvv3qj8mcejk06recc7: (! sum of ops 0 CRO) 0.999925 CRO spendable.

max spendable ~0.999875
★ using mutation 'move 50%'
→ TO Crypto.org 2: 2.99997 CRO (0ops) (cro10fpefw9ghxm0skumpspm86wc4fgrm769rtvssr on 44'/394'/1'/0/0) #1 js:2:crypto_org:cro10fpefw9ghxm0skumpspm86wc4fgrm769rtvssr:
✔ transaction
SEND  0.4999625 CRO
TO cro10fpefw9ghxm0skumpspm86wc4fgrm769rtvssr
STATUS (2.89ms)
  amount: 0.4999625 CRO
  estimated fees: 0.00005 CRO
  total spent: 0.5000125 CRO
errors:
errors:
✔ has been signed! (2643ms)
✔ broadcasted! (7.3s) optimistic operation:
  -0.5000125 CRO     OUT        923158B0B558C82B047F429A48A464C945D7C6474BCB46DA85D3EE59B4B7B7DB 2023-02-03T09:31
⚠ TEST waiting operation id to appear after broadcast
Error: could not find optimisticOperation js:2:crypto_org:cro1zputcjqlxpkg7sa4aymwvv3qj8mcejk06recc7:-923158B0B558C82B047F429A48A464C945D7C6474BCB46DA85D3EE59B4B7B7DB-OUT

The transaction messageTypes returns from the Indexing API changes into a full path:
MsgSend => /cosmos.bank.v1beta1.MsgSend
On the other hand, the original node endpoints are deprecated soon:

Network
Deprecated Endpoint
New Endpoint (In operation)

Mainnet
https://mainnet.crypto.org:26657
https://rpc.mainnet.crypto.org

Testnet Croeseid 4
https://testnet-croeseid-4.crypto.org:26657
https://rpc-testnet-croeseid-4.crypto.org

Upgrade the @crypto-org-chain/chain-jslib library to latest v1.1.2 to facilitate with the changes.

❓ Context
Impacted projects: LLC
Linked resource(s): https://ledgerhq.atlassian.net/browse/LIVE-5350
✅ Checklist

[x] Test coverage
[x] Atomic delivery
[x] No breaking changes

📸 Demo
From:

To:

🚀 Expectations to reach

Hello LedgerHQ team, may I know how to properly setup a PR request?