v4.0.x -> v4.1.1-rc change in overload selection

TypeScript Version:  4.1.0-dev.20201029, 4.1.1-rc
Search Terms: overload
Code
import { promisify } from "util";

// These are components of<EMAIL_ADDRESS>export interface convertableToString {
    toString(): string;
}
declare class Parser {
    parseString(str: convertableToString, cb?: Function): void;
}

const xmlParser = new Parser();
const parseString = xmlParser.parseString.bind(xmlParser);
const parseStringP = promisify(parseString); // <--- interested in overload selection from this line

parseStringP("abc");
//           ^--- error surfaces here

Expected behavior:
No error. This overload is selected from promisify:
(alias) promisify<convertableToString, unknown>(fn: (arg1: convertableToString, callback: (err: any, result: unknown) => void) => void): (arg1: convertableToString) => Promise<...> (+13 overloads)

Actual behavior:
Expected 0 arguments, but got 1. (2554) (on the argument to parseStringP). This overload is selected from promisify:
(alias) promisify<unknown>(fn: (callback: (err: any, result: unknown) => void) => void): () => Promise<unknown> (+13 overloads)

Notes:
Overloads from unpkg:
interface CustomPromisifyLegacy<TCustom extends Function> extends Function {
    __promisify__: TCustom;
}
interface CustomPromisifySymbol<TCustom extends Function> extends Function {
    [promisify.custom]: TCustom;
}
type CustomPromisify<TCustom extends Function> = CustomPromisifySymbol<TCustom> | CustomPromisifyLegacy<TCustom>;

function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;
function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>;
function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>;
function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;
function promisify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise<TResult>;
function promisify<T1, T2>(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise<void>;
// removed overloads with 3, 4 & 5 template parameters for brevity
function promisify(fn: Function): Function;

Playground Links:
4.1.0-beta ✔
4.1.0-dev.20201028 ✔
4.1.0-dev.20201029 ❌
4.1.1-rc :x:
4.2.0-dev.20201112 ❌
Related Issues:
https://github.com/microsoft/TypeScript/issues/41099 - Similar looking but the version introducing the regression doesn't align.
https://github.com/microsoft/TypeScript/issues/41359#issuecomment-721383363 - Previously reported in this Issue

@DanielRosenwasser This is the late-breaking 4.1 compatibility break I mentioned earlier.  It didn't really hamper the upgrade because it was easy to circumvent.

@ryancavanaugh maybe let's discuss about this briefly before the release. It sounds like it's not a blocker, but I can't make sense of the change here and it affects the inference of Node.js's promisify.

@ahejlsberg too - unclear if https://github.com/microsoft/TypeScript/issues/41099 is related.

@ahejlsberg I believe this regression came from https://github.com/microsoft/TypeScript/pull/41308

Okay, here is the minimal repro:
declare function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>;
declare function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>;

declare function parseString(str: any, cb?: Function): void;

const parseStringP = promisify(parseString);

let x = parseStringP("abc");

This works in TypeScript 4.0, but not in 4.1 or after that PR. If you swap the overloads, then things work again.

I tried swapping each of the corresponding void/non-void callback operators, let's see if it can just be a DefinitelyTyped fix: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49640

I took a look. Short story, the current behavior is correct and the previous behavior wasn't. But it is incredibly subtle. It comes down to relating the types

source (str: convertableToString, cb?: Function | undefined) => void and
target (cb: (err: any, result: unknown) => void) => void

during overload resolution. First subtlety is that convertableToString is effectively equivalent to {} because every object has a toString(): string method. So, the cb and str parameters end up being compatible, and since target only supplies one parameter there is no need to relate the cb? parameter to anything. Overload resolution therefore succeeds and picks an overload that subsequently causes an error.
I didn't succeed before because we'd relate type Function | undefined to any for the second parameter instead not relating at all. The intent here was to have it always succeed (because anything is assignable to any). However, the first pass of overload resolution uses the subtype relation, and in that relation any is a top type and not assignable to Function | undefined. So, overload resolution would (erroneously) skip the overload.
Like I said, subtle!
The real issue is that the overloads aren't selective enough and/or listed in the wrong order.

I don't think there's an obvious way to reorder promisify in a way that doesn't introduce a new break. Here's a few test cases included:
declare function parseString(str: any, cb?: (...args: any) => any): void;

const parseStringP = promisify(parseString);

let x = parseStringP("abc");

const arg1UnknownError: (arg: string) => Promise<number> = promisify((arg: string, cb: (err: unknown, result: number) => void): void => { });
const arg1AnyError: (arg: string) => Promise<number> = promisify((arg: string, cb: (err: any, result: number) => void): void => { });

const arg0: () => Promise<number> = promisify((cb: (err: Error | null, result: number) => void): void => { });
const arg0NoResult: () => Promise<any> = promisify((cb: (err: Error | null) => void): void => { });
const arg1: (arg: string) => Promise<number> = promisify((arg: string, cb: (err: Error | null, result: number) => void): void => { });
const arg1UnknownError2: (arg: string) => Promise<number> = promisify((arg: string, cb: (err: Error | null, result: number) => void): void => { });
const arg1NoResult: (arg: string) => Promise<any> = promisify((arg: string, cb: (err: Error | null) => void): void => { });
const cbOptionalError: () => Promise<void | {}> = promisify((cb: (err?: Error | null) => void): void => { cb(); }); // tslint:disable-line void-return

declare function promisify<TResult>(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise<TResult>;
declare function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
declare function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>;
declare function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;
declare function promisify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise<TResult>;
declare function promisify<T1, T2>(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise<void>;

I could imagine trying a migration to rest parameter types, but I'd rather not do that for this change.

@tchetwin @robpalme you mentioned that this was something you managed to get around - do you remember what you specifically did?

@tchetwin @robpalme you mentioned that this was something you managed to get around - do you remember what you specifically did?

By as ... casting the argument to promisify to force selection of the correct overload.
This occurred in precisely one place and it happened to be in the shared build tooling itself rather than the application population.

I could imagine trying a migration to rest parameter types, but I'd rather not do that for this change.

How do you like this?
/**
 * Returns the last item's type in a tuple
 */
export type Last<T extends unknown[]> = T extends []
	? never
	: T extends [...infer _, infer R] ? R
	: T extends [...infer _, (infer R)?] ? (R | undefined)
	: never;

/** Returns the type of the last argument of a function */
export type LastArgument<T extends (...args: any[]) => any> = Last<Parameters<T>>;

/** Returns the "return" type of a callback-style API */
export type CallbackAPIReturnType<
	T extends (...args: any[]) => any,
	TCb extends (...args: any[]) => any = LastArgument<T>,
	TCbArgs = Parameters<Exclude<TCb, undefined>>,
	> =
	TCbArgs extends [(Error | null | undefined)?] ? void :
	TCbArgs extends [Error | null | undefined, infer U] ? U :
	TCbArgs extends any[] ? TCbArgs[1] :
	never;

/**
 * Returns a promisified function signature for the given callback-style function.
 */
export type Promisify<T extends (...args: any[]) => any,
	TReturn = CallbackAPIReturnType<T>,
	TArgs extends any[] = Lead<Parameters<T>>,
	> = (...args: TArgs) => Promise<TReturn>;

/**
 * Returns all but the last item's type in a tuple/array
 */
export type Lead<T extends unknown[]> = T extends []
	? []
	: T extends [...infer L, any?] ? L
	: [];

declare function promisify<T extends (...args: any[]) => any>(fn: T): Promisify<T>;

results for your test cases:
declare function parseString(str: any, cb?: (...args: any[]) => any): void;

const parseStringP = promisify(parseString);
let x = parseStringP("abc");
// has type  (str: any) => Promise<any>

// expected: (arg: string) => Promise<number>
// actual:   (arg: string) => Promise<number> ✔
const arg1UnknownError = promisify((arg: string, cb: (err: unknown, result: number) => void): void => { });

// expected: (arg: string) => Promise<number>
// actual:   (arg: string) => Promise<number> ✔
const arg1AnyError = promisify((arg: string, cb: (err: any, result: number) => void): void => { });

// expected: () => Promise<number>
// actual:   () => Promise<number> ✔
const arg0 = promisify((cb: (err: Error | null, result: number) => void): void => { });

// expected: () => Promise<any>
// actual:   () => Promise<void> --> I'd argue this is correct
const arg0NoResult = promisify((cb: (err: Error | null) => void): void => { });

// expected: (arg: string) => Promise<number>
// actual:   (arg: string) => Promise<number> ✔
const arg1 = promisify((arg: string, cb: (err: Error | null, result: number) => void): void => { });

// expected: (arg: string) => Promise<number>
// actual:   (arg: string) => Promise<number> ✔
const arg1UnknownError2 = promisify((arg: string, cb: (err: Error | null, result: number) => void): void => { });

// expected: (arg: string) => Promise<any>
// actual:   (arg: string) => Promise<void> --> I'd argue this is correct
const arg1NoResult = promisify((arg: string, cb: (err: Error | null) => void): void => { });

// expected: () => Promise<void | {}>
// actual:   () => Promise<void> --> where should the {} come from?
const cbOptionalError = promisify((cb: (err?: Error | null) => void): void => { cb(); }); // tslint:disable-line void-return

Well those seem way better. I don't know how I feel about those helper types, but if you wanted to put up your own PR to @types/node that might be a worthwhile way to gauge any other breaks.

is there a way to switch back to the old behavior via a compilerOptions flag or something? TypeScript 4.1.2 is now shown on npm as a stable release, and this is a breaking change in my application.

It is a stable release, and we make breaks across minor versions. 4.1.2 is the first stable minor version for 4.1.x.
I don't know whether we realistically can make a roll-back change. What kind of things did you hit in the upgrade?

It is a stable release, and we make breaks across minor versions. 4.1.2 is the first stable minor version for 4.1.x.
I don't know whether we realistically can add a flag. What kind of things did you hit in the upgrade?

This app had a number of places where it was creating a new Promise() via the constructor and resolving it with resolve(). I had to change the promise constructors to new Promise<void>. The app was being built with noImplicitAny:false and noImplicitReturns:false . What made life a little more difficult is that VSCode's TypeScript language service (in the current stable release) wasn't letting me select 4.1.x for pre-build checking, so I had to go back to a find + replace + fix, transpile, wait and cross fingers-type workflow. After doing this work to update a pretty big monorepo, it's fine now, I think.

Sorry to hear that - that's actually a separate known break, relating to the issue of how resolve is typed.

VSCode's TypeScript language service (in the current stable release) wasn't letting me select 4.1.x for pre-build checking

Hmm - you should be able to select a workspace version of TypeScript. I suspect if that doesn't work, the issues there might relate to the monorepo setup.
Again, sorry that this hit you in a surprising way.

s

Thanks, I didn't realize about the change to resolve typings.
To check the VSCode issue, I brought up another (non-mono) repo and installed typescript@latest. Still no good, even after closing + reopening VSCode, and restarting the TypeScript language service. I'm on VSCode 1.51.1 on Windows 10. Now that I know where the risks are, I'm not too worried about this.

if you wanted to put up your own PR to @types/node that might be a worthwhile way to gauge any other breaks

PR is up at https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49699, but I'll need some help. The directory structure of @types/node is complicated to say the least :)

Can confirm in 4.1.2 where I have to explicitly write like new Promise<void>(res=>res()) instead of just new Promise(res=>res()) where former version of typescript infers a Promise<unknown>.

VSCode's TypeScript language service (in the current stable release) wasn't letting me select 4.1.x for pre-build checking,

But you can change the typescript version VSCode use. Just click the ts version in bottom right corner and vscode will write your option in ./.vscode/sth.

@yw662, as per Daniel above:

that actually sounds more like a separate known break, relating to the issue of how resolve is typed.

The need to introduce an explicit void type parameter for Promise constructors resolving with no arguments is unrelated to this Issue thread.

Well those seem way better. I don't know how I feel about those helper types, but if you wanted to put up your own PR to @types/node that might be a worthwhile way to gauge any other breaks.

PR is up at https://github.com/DefinitelyTyped/DefinitelyTyped/pull/49699 and seems to be working. What needs to be done to gauge the impact of this? @DanielRosenwasser

See https://github.com/microsoft/TypeScript/issues/41607#issuecomment-736807393 for an explanation of what changed in overload resolution.


Please upgrade 'history' lib to 4.7.2

your current version of the history lib is buggy, causing tests to fail.
read here:
https://github.com/ReactTraining/history/issues/513
please upgrade to 4.7.2 to fix it.

history is a dependency of the project, but uses a version string that will download the latest version for you. If you npm install react-router, you will get the 4.7.2 release. We don't have to do anything here.


docs: Type operator

Closes https://github.com/lenra-io/query-parser/issues/28
Description of the changes

Checklist

[x] I didn't over-scope my PR
[x] My PR title matches the commit convention
[x] I did not include breaking changes
[x] I made my own code-review before requesting one

I included unit tests that cover my changes

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

I added/updated the documentation about my changes

[ ] 📜 README.md
[ ] 📕 docs/*.md
[x] 📓 docs.lenra.io
[ ] 🙅 no documentation needed

Technical highlight/advice

:tada: This PR is included in version 1.0.0-beta.14 :tada:
The release is available on:

GitHub release
v1.0.0-beta.14

Your semantic-release bot :package::rocket:


Adding 177 video number

After merging, update the YT Description with latest data:
Embark on a squishy adventure as I attempt to create a soft body physics simulation for a character with toxiclibs.js and p5.js! Code: https://thecodingtrain.com/challenges/177-soft-body-character

🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-coding-challenge-177-soft-body-character

p5.js Web Editor Sketches:
🕹 Soft Body Character: https://editor.p5js.org/codingtrain/sketches/2PInK4yQ2
🕹 Soft Body Character Enhanced: https://editor.p5js.org/codingtrain/sketches/6hhdl9omt
🕹 Soft Body Dancing Skeleton: https://editor.p5js.org/codingtrain/sketches/dg1wrHrpg
🕹 Soft Body Letters: https://editor.p5js.org/codingtrain/sketches/8MyUnoi13
🕹 Blank Canvas: https://editor.p5js.org/codingtrain/sketches/ccwlnhtji

🎥 Previous video: https://youtu.be/h5ZNcAPXxew?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
🎥 All videos: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH

References:
🔗 Nature of Code: https://nature-of-code-2nd-edition.netlify.app/
🔗 ToxicLibs.js: http://haptic-data.com/toxiclibsjs/
🔗 ToxicLibs Java Reference: https://shiffman.github.io/toxiclibs-javadocs/
🔗 Advanced Character Physics: http://www.cs.cmu.edu/afs/cs/academic/class/15462-s13/www/lec_slides/Jakobsen.pdf
🔗 Thi.ng: https://thi.ng/

Videos:
🚂 Toxiclibs Verlet Physics playlist: https://www.youtube.com/watch?v=E67e0RX-7Ew&list=PLRqwX-V7Uu6aiaU4s30tXvUmwGMlb9UUS
🚂 Matter.js playlist: https://www.youtube.com/watch?v=urR596FsU68&list=PLRqwX-V7Uu6bLh3T_4wtrmVHOrOEM1ig_
🎥 Physics of JellyCar: https://youtu.be/3OmkehAJoyo
🎥 The Making of Nokia and Friends: https://www.youtube.com/watch?v=g20QOQP6kSU

Related Coding Challenges:
🚂 20 3D Cloth with Toxiclibs: https://youtu.be/jrk_lOg_pVA
🚂 63 Texturing Cloth Simulation: https://youtu.be/JunJzIe0hEo

Timestamps:
0:00 Introduction
2:51 Physics libraries
5:30 Elements in ToxicLibs
5:47 Start coding
7:04 Object destructuring
8:10 Add gravity
9:00 Adding elements to the world
10:35 Updating the physics world
11:40 Adding a spring
15:23 Refactor code
18:07 Inheritance
18:57 Super class
23:31 Spring length
25:44 Create a closed-filled shape to draw the character
26:49 Suggestions for variations
27:07 Other types of springs
27:36 Update about the Nature of Code book!
28:56 Outro

Editing by Mathieu Blanchette
Animations by Jason Heglund
Music from Epidemic Sound

🚂 Website: https://thecodingtrain.com/
👾 Share Your Creation! https://thecodingtrain.com/guides/passenger-showcase-guide
🚩 Suggest Topics: https://github.com/CodingTrain/Suggestion-Box
💡 GitHub: https://github.com/CodingTrain
💬 Discord: https://thecodingtrain.com/discord
💖 Membership: http://youtube.com/thecodingtrain/join
🛒 Store: https://standard.tv/codingtrain
🖋 Twitter: https://twitter.com/thecodingtrain
📸 Instagram: https://www.instagram.com/the.coding.train/

🎥 Coding Challenges: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
🎥 Intro to Programming: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA

🔗 p5.js: https://p5js.org
🔗 p5.js Web Editor: https://editor.p5js.org/
🔗 Processing: https://processing.org

📄 Code of Conduct: https://github.com/CodingTrain/Code-of-Conduct

This description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecodingtrain.com/issues/new

#softbody #toxiclibs #verletphysics #p5js #javascript

Thank you @dipamsen!


[bug] The official DAPP example failed to link the wallet

Link to minimal reproducible example
https://react-dapp-v2-with-web3js.vercel.app/
Summary
Why does the official DAPP example fail to respond after scanning the code with the mobile wallet? How do I win if the link is not successful.
List of related npm package versions
"@walletconnect/universal-provider": "2.1.4",
"@walletconnect/utils": "2.1.4",
"@web3modal/standalone": "^2.0.0-beta.10",
"web3": "^1.7.0"

I also have this issue, the code didn't work.

still having the issue!


kafka: update the grafana dashboard

updated dashboard for KUDO Kafka. Includes few fixes and new graphs related to the derivative rates per second

nice humblebrag about the scale. 😜  this looks great!

@gerred this is a test cluster 🤣
no humblebrag here about 3.5B messages here, not yet 😛


numba_issue3

Hey @jstac , I attached a link of the lecture parallelization to clarify the multithreading in the lecture numba.

Yep, looks good to me.

Thanks @sayaikegawa and @jstac , it looks okay.

Nice work, thanks @sayaikegawa.
(No need to review this one, @Harveyt47 and @shlff , I'll go ahead and merge.)


Setup All contributors

Setup all contributors on this repo

@all-contributors
add @andrewthetechie for code, doc, and tests

@all-contributors add @CodingDavid8 for code and bug


Unable to Build this Project

I am having the issue with the https download from my windows 10 boxes and also need to get the fix that was put in with the last release.
I can get these if I can build the project locally, but I am getting the following error when I attempt to build.
Please help...
rmarchionne@CVG-000211M-173 MINGW64 /c/Development/git/Selenium-Grid-Extras (master)
$ mvn clean install -U
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] SeleniumGridExtras
[INFO] Selenium Grid Extras
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building SeleniumGridExtras 1.12.15-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master/org/apache/ant/ant/maven-metadata.xml
Downloading: http://repo1.maven.org/maven2/org/apache/ant/ant/maven-metadata.xml
Downloading: https://repo.maven.apache.org/maven2/org/apache/ant/ant/maven-metadata.xml
Downloaded: http://repo1.maven.org/maven2/org/apache/ant/ant/maven-metadata.xml (886 B at 2.0 kB/s)
Downloaded: https://repo.maven.apache.org/maven2/org/apache/ant/ant/maven-metadata.xml (886 B at 1.5 kB/s)
[WARNING] Could not transfer metadata org.apache.ant:ant/maven-metadata.xml from/to xuggle repo (https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master): sun.secur
ity.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested
target
Downloading: http://repo1.maven.org/maven2/xuggle/xuggle-xuggler/5.4/xuggle-xuggler-5.4.pom
Downloading: https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master/xuggle/xuggle-xuggler/5.4/xuggle-xuggler-5.4.pom
Downloading: https://repo.maven.apache.org/maven2/xuggle/xuggle-xuggler/5.4/xuggle-xuggler-5.4.pom
Downloading: http://repo1.maven.org/maven2/xuggle/xuggle-xuggler/5.2/xuggle-xuggler-5.2.pom
Downloading: https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master/xuggle/xuggle-xuggler/5.2/xuggle-xuggler-5.2.pom
Downloading: https://repo.maven.apache.org/maven2/xuggle/xuggle-xuggler/5.2/xuggle-xuggler-5.2.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] SeleniumGridExtras ................................. FAILURE [  2.346 s]
[INFO] Selenium Grid Extras ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.468 s
[INFO] Finished at: 2017-09-12T10:12:34-04:00
[INFO] Final Memory: 13M/210M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project SeleniumGridExtras: Could not resolve dependencies for project com.groupon.selenium-grid-extras:SeleniumGridExtras:jar:1.12.15-SNAPS
HOT: Failed to collect dependencies at xuggle:xuggle-xuggler:jar:5.4: Failed to read artifact descriptor for xuggle:xuggle-xuggler:jar:5.4: Could not transfer artifact xuggle
:xuggle-xuggler:pom:5.4 from/to xuggle repo (https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master): sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

Shawn McCarthy ??? Any help? This is your repo... Thanks really in need of some help with just building in Maven,,

@glacier6327 Do you still get this error with the latest from master ? I'll try and dig into it today.

@smccarthy  Yes sir... seem to be an issue with xuggle... which looks like is also you repo...  Really could use some help..
Failed to execute goal on project SeleniumGridExtras: Could not resolve dependencies for project com.groupon.selenium-grid-extras:SeleniumGridExtras:jar:1.12.16-SNAPS
HOT: Failed to collect dependencies at xuggle:xuggle-xuggler:jar:5.4: Failed to read artifact descriptor for xuggle:xuggle-xuggler:jar:5.4: Could not transfer artifact xuggle
:xuggle-xuggler:pom:5.4 from/to xuggle repo (https://raw.github.com/smccarthy/xuggle-xuggler-dependency/master): sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

@glacier6327 It looks like a problem with the https for you... I have seen similar issues with people not being about to get chromedriver with selenium-grid-extras. Can you remove the s from the https and try it?
Here is the line you need to change :
https://github.com/groupon/Selenium-Grid-Extras/blob/master/SeleniumGridExtras/pom.xml#L17

That does not seem to have any impact... unfortuanely. I even tried the Maven commands to ignore SSL errors, but I still see them.. frustrating...
Could not resolve dependencies for project com.groupon.selenium-grid-extras:SeleniumGridExtras:jar:1.12.16-SNAPS
HOT: Failed to collect dependencies at xuggle:xuggle-xuggler:jar:5.4: Failed to read artifact descriptor for xuggle:xuggle-xuggler:jar:5.4: Could not transfer artifact xuggle
:xuggle-xuggler:pom:5.4 from/to xuggle repo (http://raw.github.com/smccarthy/xuggle-xuggler-dependency/master): sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]


Fix Issue where maxing out Chrome Sync Storage

Should fix #20

There may be an issue with this change. I'm noticing my collapsed groups will uncollapse with no user interaction. Will need to investigate. Likely will need to make some modifications here to make sure the clearing of the group ids is once.

I believe this will do the trick
https://stackoverflow.com/a/61328933/4965713

Good idea for a cleanup! One thing im worried about is will this cause a clearing if the user creates a new window of chrome? If so it will lead to somewhat jarring reordering of tabs (if that is the case of course). I'd be happy to test but it might take me a day or two before I can build and test.

@jdhayford yes, that's how my original implementation was working. By using the chromchrome.runtime.onStartup listener I believe that is not a problem anymore.
Yes, please check out when you can and let me know if there are any issues!


Settings Sync documentation still uses "Preferences Sync"

Testing #103613
Settings Sync documentation still uses "Preferences Sync":

I am planning to update docs and release notes this week.


Automated Package Upgrade

:tada: This PR is included in version 25.3.487 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Changes for external coupling of must-run interconnectors

See https://github.com/quintel/etsource/pull/3155. I made the following changes:

Added FLH external coupling inputs to front-end

Notifying @kaskranenburgQ and @louispt1. There are a couple of to-do's still left before we can merge:

[ ] Depending on the discussion about the capacity profile in https://github.com/quintel/etsource/pull/3155, we may need to update locales
[ ] When uploading the must-run curve through the front-end, it says that an error occurred, after refreshing however, the curves are actually uploaded
[ ] After adding the FLH external coupling inputs, the disabled availability and costs inputs are no longer hidden

Given the limited time available from @louispt1, we're not going to address the second and third issue now. We should add them to https://github.com/quintel/etmodel/issues/4345.

At the moment, the capacity slider is also hidden when the external coupling is set to active. This is because the capacity sliders are in the same interface_group (called 'capacity') as the interconnectivity sliders.
There are at least 2 ways to solve this:

Splitting the interface groups
Adding an external coupling slider that sets the capacity (@mabijkerk we discussed this option already, could solve this as well)

After adding the FLH external coupling inputs, the disabled availability and costs inputs are no longer hidden

After reloading the page a couple of times, this can occur and vanish again as well. Seems to be a bug in the front-end.

Good feedback @kaskranenburgQ. About the interface groups: let's await what the client prefers and see if we can redesign the frontend afterwards. Any remaining bugs we can add to the existing issue and dev should pick them up when they have time.

As stated in https://github.com/quintel/etsource/pull/3155#issuecomment-2511921536, we can close this PR because the FLH inputs are removed. We can then open a new PR to tackle the issue with the interface group and we still need to add the front-end issues to https://github.com/quintel/etmodel/issues/4345.


[AVM Module Issue]: Add resource_group_name as optional for network_interfaces

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
(Optional) Module Version
No response
(Optional) Correlation Id
No response
Description
Allow the ability to specify a resource group name if the network interface and ip configuration should be created in a separate resource group from the virtual machine.
This functionality exists for data_disk_managed_disks.

@bmcsorley-bh - This feature was implemented in release v0.13.0.  Please re-open this if you determine anything is missing or additional functionality is required.


help wanted: Adding foundational testings

Looking for some help to setup tests that look like: https://github.com/jxnl/instructor/tree/main/tests/openai
A bonus would be to add circle ci

[ ] UserExtract Tests
[ ] List[Properties] tests

importantly just testing that patch works: https://github.com/jxnl/instructor/blob/main/tests/openai/test_patch.py
would be very high impact

ChatGPT suggests
import { OpenAI } from "openai";
import { instructor } from "../../src";
import { z } from "zod";

describe("Client Chat Completions", () => {
  const models = ["gpt-3.5-turbo-1106", "gpt-4-1106-preview"];
  const modes = [
    instructor.Mode.FUNCTIONS,
    instructor.Mode.JSON,
    instructor.Mode.TOOLS,
  ];

  // Create a Cartesian product of models and modes
  const testCases = models.flatMap(model => modes.map(mode => ({ model, mode })));

  test.each(testCases)("should return correct name and age for model %s and mode %s", async ({ model, mode }) => {
    const client = instructor.patch({
      client: new OpenAI(),
      mode: mode,
    });

    const response = await client.chat.completions.create({
      messages: [{ role: "user", content: "Jason Liu is 30 years old" }],
      model: model,
      // @ts-ignore
      response_model: z.object({
        age: z.number(),
        name: z.string().refine(name => name === name.toUpperCase(), {
          message: "name should have uppercase",
        }),
      }),
      max_retries: 3,
    });

    expect(response).toBeDefined();
    expect(response.age).toBe(30);
    expect(response.name).toBe("JASON LIU");
  });
});

@jxnl I see core tests have been added - are you interested in getting to 100% coverage? Happy to put up a PR

@jxnl I see core tests have been added - are you interested in getting to 100% coverage? Happy to put up a PR

would be nice to have some improved coverage and some new badges/ci to show for it!


target es5

targets es5 instead of es6 for AWS Lambda support
fixes https://github.com/calebmer/postgraphql/issues/301

nvm looks like TS support for async / await generators isn't quite there yet...

oh shoot, excellent!! yeah im totally a ts noob, still learning about it, glad to see this one go through tho!

Is this still required with Lambda now supporting 6.10? http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html


Got an AssertionError when run the train_SAM_box.py

Hello, I encountered an error when attempting to fine-tune SonarSAM using box prompts. I followed your guidelines precisely while running the program. What could be the potential issues？

I ran the code with cuda 11.8, pytorch 2.0.1 and torchvision 0.15.2

It seems that the inconsistent data distribution which is a result of distributed training. Is there a recommended solution to address this issue?


Replica limit

I apologize if this is an ignorant question ahead of time.
Out of curiosity, during the replica creation loop: "key = hashValueHash(....)", why do you multiply by 4, this limits the number of replicas to 4 using MD5 and 16 using SHA512. From what I understand of your code, it is more performant to use replicas given the bitwise nature of the shift than new vnodes, which require rehashing a value.
Using a value of 1 would extend the replica count to 16 an 64 respectively I believe?
Again, pardon the ignorance. My testing shows early indications of this being true, I just do not know the ramifications further down this path...
Enjoy the vacation.

And if the replicas is 5,  j will reach 4 , then
key = hashValueHash(x[3 + j * 4], x[2 + j * 4], x[1 + j * 4], x[j * 4]);

key  always is 0.

That is what I'm saying,
If you use [x + j] rather than [x + j * 4], you allow j to reach 16 using an md5 digest and 64 using a sha512 digest without the key being 0;
And from what I understand in the code, it is less cpu intensive to use the bitwise shift operator to create replicas than creating a new digest.
This would increase the number of cache slots dramatically, which would cut down on key redistribution time while not increasing the continuum time.
Testing on my side looked pretty good.

And to clarify my comments:
we use the var x which is a result of self.digest  x = self.digest(server.host +'-'+ i);
self.digest returns a buffer of varying lengths depending on the digest used. In the case of MD5 it has a length of 16.
we then create the var key by using 4 indexes of var x. Currently using [# + j * 4] this would limit our total replicas to 4 ( 16 / 4 ). If we used [# + j] the replica limit would only be limited by the # of indexes in the buffer (as you shift from using the first 4 index to using 3 undefined values and the very last index to create the maximum replica.


Allow translation of View Link and Action labels

hi @DerGenaue is this ready to review?

I think we had some issues with our local testing;
I'll get back to you the next days


Make things work for MPS.

Not much really, just had to get the device and use it instead of CUDA.

The assignment is needed for all backends. This was a bug I fixed, otherwise it moves the device and discards the result instead of using it.

I will adjust this PR soon. ;)


Layers loader

Create a (non-blocking) loader to show layers load status, with bars on the top or something similar.
OpenLayers exposes load status for WMS layers (how it is done on inLoco 1), Leaflet probably has something similar.

When adding onLoading and onLoad to layers, it blinks and triggers this event dozens of times when performing quick actions that reflect on layers array, such as showing/hiding descriptions. We need to find a better way to do that, if really needed.
Paired with @rlage and @barbier


Stuck at Block 10000H

Hi there
Not sure how to debug this it just stops at block 10000H.
I had a look at database tables  and they are empty too
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Creating initial db schema
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Entering fresh mode: no indices
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: fresh-bulk
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Entering fresh mode: minimum indices
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: bulk
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Entering normal mode: all indices
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: normal
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Entering fresh mode: minimum indices
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: bulk
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Entering fresh mode: no indices
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: fresh-bulk
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::db::pg] Adjusting schema to mode: fresh-bulk
[2022-02-17T18:34:52Z INFO  bitcoin_indexer] Node chain-head at 146362H
[2022-02-17T18:34:52Z INFO  bitcoin_indexer::node::prefetcher] Starting block fetcher starting at genesis block

Block 0H: ceac4f4dc5aa01eb7fe5b36410cd7a1cb0f89856c76401a69d1b30fb8bc0e3bf
Block 1000H: 19c1b92ac5ac4457ca873a7d1e40a675913d7cbe102f208b72407984721c44ba
Block 2000H: 4dd81876e67fe947c2088ef002bb1dd3d9f64add4339af736b9948d9fa7ebd1f
Block 3000H: 4315a14679fe131c94404784fc5f7012e9ab951cbc0e464bb105a4f0e555ce39
Block 4000H: ee39880e4fbc5b1f4a0f4310a8410d491e3c5833c03c5d7027217da4328efcd3
Block 5000H: 955c292a31ef8e472736f983e9205c38510fdc8f96a4641f1cf0832e3971c77e
Block 6000H: 8fc3873307839882d2f5ac58b6849ee66c58286cb518baf646528de3116e70d4
Block 7000H: d38dee425335979c5047dd761692502459cc1e12736ec7ff2d53b718569f984e
Block 8000H: 370780d486dfe5354fc8937e48dd46c3172dc30dd43f7e1f915524e47ec6856b
Block 9000H: 9182dccdc36aaf4aaa8ade8e25a9ffe955216572ce07414a42157699014a2dfc
Block 10000H: 404abb998428aa89a7bb75baa8a1a6f463e8f28b9e909616ad1c71143b0f3df6

Sorry wrong chain , would this work with altcoins ?


[WIP][Storage] fix rollup warnings

rollup reports warnings for browser test bundle:
(!) Missing global variable name
Use output.globals to specify browser global variable names corresponding to external modules
fs-extra (guessing 'fs')
created dist-test/index.browser.js in 3.7s
This address it by apply the suggestion.

Closing in favor of the other fix.


[Doc]  admin-api-topics contains wrong paragraph for concepts-messaging

Search before asking

[X] I searched in the issues and found nothing similar.

What issue do you find in Pulsar docs?
The admin-api-topics page contains information on how to administrate topics using the admin API.
Towards the end there is a section that explains using the Client APIs Producer to write to a partitioned-topic.
https://pulsar.apache.org/docs/next/admin-api-topics/#publish-to-partitioned-topics
This section is in parts a duplicate of https://pulsar.apache.org/docs/next/concepts-messaging/#partitioned-topics but also contains some more information that does not belong on the Admin API page.
What is your suggestion?
This section is in parts a duplicate of https://pulsar.apache.org/docs/next/concepts-messaging/#partitioned-topics but also contains some more information. I believe this section should be removed from the admin API page and maybe parts of it should be merged into the concepts-messaging page.
Any reference?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Good catch! Thanks. I am working on it.


Funkypad submission

Ready to make a PR? Great! Make sure your directory structure looks like this:

├── CAD \
│   ├── case.stl \
│   └── plate.dxf \
├── firmware \
│   └── rp2040.bin \
└── PCB \
    ├── macropad.pro \
    └── macropad.sch

(The file names do not matter, just the folders)

I hope you like my submission!

going to add rp2040 binary soon, just compiling the qmk firmware rn

Nice work! Could you please add your KiCad source files to the PR as well so that I can review them?

i didnt use KiCad to design it, i used EasyEDA
i could try to convert it to KiCad, but im not sure how

That's fine, but there's a chance your PCB won't work since we're not checking it - just double check it if you're unsure. Otherwise, consider this approved! You can order your hackpad here: https://forms.hackclub.com/hackpad


Convert dictionary values to list for Python3 support

In Python3 dict.values does not return list, thus not supporting operations such as "+" and "pop()".

We are fixing this issue in the next version of the Python plugin.  Thanks!


Got pyarrow error when loading a dataset while adding special tokens into the tokenizer

I added five more special tokens into the GPT2 tokenizer. But after that, when I try to pre-process the data using my previous code, I got an error shown below:
Traceback (most recent call last):
File "/home/xuyan/anaconda3/envs/convqa/lib/python3.7/site-packages/datasets/arrow_dataset.py", line 1687, in _map_single
writer.write(example)
File "/home/xuyan/anaconda3/envs/convqa/lib/python3.7/site-packages/datasets/arrow_writer.py", line 296, in write
self.write_on_file()
File "/home/xuyan/anaconda3/envs/convqa/lib/python3.7/site-packages/datasets/arrow_writer.py", line 270, in write_on_file
pa_array = pa.array(typed_sequence)
File "pyarrow/array.pxi", line 222, in pyarrow.lib.array
File "pyarrow/array.pxi", line 110, in pyarrow.lib.handle_arrow_array_protocol
File "/home/xuyan/anaconda3/envs/convqa/lib/python3.7/site-packages/datasets/arrow_writer.py", line 108, in arrow_array
out = out.cast(pa.list(self.optimized_int_type))
File "pyarrow/array.pxi", line 810, in pyarrow.lib.Array.cast
File "/home/xuyan/anaconda3/envs/convqa/lib/python3.7/site-packages/pyarrow/compute.py", line 281, in cast
return call_function("cast", [arr], options)
File "pyarrow/_compute.pyx", line 465, in pyarrow._compute.call_function
File "pyarrow/_compute.pyx", line 294, in pyarrow._compute.Function.call
File "pyarrow/error.pxi", line 122, in pyarrow.lib.pyarrow_internal_check_status
File "pyarrow/error.pxi", line 84, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Integer value 50259 not in range: -128 to 127
Do you have any idea about it?

Hi,
the output of the tokenizers is treated specially in the lib to optimize the dataset size (see the code here). It looks like that one of the values in a dictionary returned by the tokenizer is out of the assumed range.
Can you please provide a minimal reproducible example for more help?

Hi @yana-xuyan, thanks for reporting.
As clearly @mariosasko explained, datasets performs some optimizations in order to reduce the size of the dataset cache files. And one of them is storing the field special_tokens_mask as int8, which means that this field can only contain integers between -128 to 127. As your message error states, one of the values of this field is 50259, and therefore it cannot be stored as an int8.
If you give us a concrete example, we could implement a way to disable this optimization and allow using any integer value.

I'm facing same issue @mariosasko @albertvillanova
ArrowInvalid: Integer value 50260 not in range: -128 to 127

To reproduce:
SPECIAL_TOKENS = ['<bos>','<eos>','<speaker1>','<speaker2>','<pad>']
ATTR_TO_SPECIAL_TOKEN = {
    'bos_token': '<bos>',
    'eos_token': '<eos>',
    'pad_token': '<pad>',
    'additional_special_tokens': ['<speaker1>', '<speaker2>']
    }

tokenizer = AutoTokenizer.from_pretrained("gpt2", use_fast=False)
num_added_tokens =tokenizer.add_special_tokens(ATTR_TO_SPECIAL_TOKEN)
vocab_size = len(self.tokenizer.encoder) + num_added_tokens
vocab =tokenizer.get_vocab()

pad_index = tokenizer.pad_token_id
eos_index = tokenizer.eos_token_id
bos_index = tokenizer.bos_token_id
speaker1_index = vocab["<speaker1>"]
speaker2_index = vocab["<speaker2>"]

tokenizer.decode(['50260'])
'<speaker1>'

@mariosasko
I am hitting this bug in the Bert tokenizer too.  I see that @albertvillanova labeled this as a bug back in April.  Has there been a fix released yet?
What I did for now is to just disable the optimization in the HF library.  @yana-xuyan and @thomas-happify, is that what you did and did that work for you?

Hi @gregg-ADP,
This is still a bug.
As @albertvillanova has suggested, maybe it's indeed worth adding a variable to config.py to have a way to disable this behavior.
In the meantime, this forced optimization can be disabled by specifying features (of the returned examples) in the map call:
from datasets import *
... # dataset init
ds.map(process_example, features=Features({"special_tokens_mask": Sequence(Value("int32")), ... rest of the features})

cc @lhoestq so he is also aware of this issue

Thanks for the quick reply @mariosasko.  What I did was to changed the optimizer to use int32 instead of int8.
What you're suggesting specifies the type for each feature explicitly without changing the HF code. This is definitely a better option.  However, we are hitting a new error later:
  File "/Users/ccccc/PycharmProjects/aaaa-ml/venv-source/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
TypeError: forward() got an unexpected keyword argument 'pos'

Where 'pos' is the name of a new feature we added.  Do you agree that your way of fixing the optimizer issue will not fix our new issue?  If not, I will continue with this optimizer fix until we resolve our other issue.

Hi @gwc4github,
the fix was merged a few minutes ago, and it doesn't require any changes on the user side (e.g. no need for specifying features). If you find time, feel free to install datasets from master with:
pip install git+https://github.com/huggingface/datasets.git

and let us know if it works for your use case!


Include a template parameter

Hi.
It is possible to add a parameter to use in case you want to create the scaffold with your own template instead of the odoo template? (i.e with your personalized manifest file, directories, etc.).
It should be used with -t option of the scaffold command if this parameter is set or something like that.

Hi @pablomartinezgil .
This feature is planned for a future release! :grin:


image_encoding_impeller.cc(103)] Failed to get color type from pixel format when FLTEnableWideGamut is enabled

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Enable FLTEnableImpeller
Enable FLTEnableWideGamut
flutter run (it must be a physical device, I'm using a iPhone 13 Pro)

Expected results
Convert an ui.Image object to ByteData format, specifically in PNG format.
Actual results
Exception image_encoding_impeller.cc(103)] Failed to get color type from pixel format.
Code sample
Code sample
import 'dart:typed_data';
import 'dart:ui' as ui;

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // TRY THIS: Try running your application with "flutter run". You'll see
        // the application has a blue toolbar. Then, without quitting the app,
        // try changing the seedColor in the colorScheme below to Colors.green
        // and then invoke "hot reload" (save your changes or press the "hot
        // reload" button in a Flutter-supported IDE, or press "r" if you used
        // the command line to start the app).
        //
        // Notice that the counter didn't reset back to zero; the application
        // state is not lost during the reload. To reset the state, use hot
        // restart instead.
        //
        // This works for code too, not just values: Most code changes can be
        // tested with just a hot reload.
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final imageUrl =
      'https://ucarecdn.com/31c9277b-a7b2-4450-b19d-b5455ffaf548/-/crop/826x826/131,0/-/stretch/off/-/resize/x200/-/blur/0/-/sharp/5/-/quality/smart_retina/-/format/webp/';

  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  void initState() {
    super.initState();
    Future.delayed(Duration.zero, () async {
      try {
        var result = generateIconMarker(imageUrl);
        print('Result: $result');
      } catch (e) {
        print('Error: $e');
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // TRY THIS: Try changing the color here to a specific color (to
        // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
        // change color while the other colors stay the same.
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          //
          // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
          // action in the IDE, or press "p" in the console), to see the
          // wireframe for each widget.
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

Future<ByteData> generateIconMarker(String imageUrl) async {
  final response = await http.get(Uri.parse(imageUrl));

  // Check if the request was successful
  if (response.statusCode == 200) {
    // Convert the response body to bytes
    final Uint8List markerImageData = response.bodyBytes;

    // Set up painter
    final ui.PictureRecorder recorder = ui.PictureRecorder();
    final Size markerSize = Size(120, 120);
    final double canvasSize = markerSize.height + 3; // stroke width
    final Canvas canvas = Canvas(
      recorder,
      Rect.fromLTWH(0, 0, canvasSize, canvasSize),
    );

    // Draw oval
    final Paint ovalPaint = Paint()..color = Colors.white;
    final Path ovalPath = Path()
      ..addOval(Rect.fromLTWH(
        (canvasSize - markerSize.width) / 2,
        1, // titlePainter.height,
        markerSize.width,
        markerSize.height,
      ));
    canvas.drawPath(ovalPath, ovalPaint);

    final Paint outlinePaint = Paint()
      ..color = Colors.green
      ..style = PaintingStyle.stroke
      ..strokeWidth = 3;
    canvas.drawPath(ovalPath, outlinePaint);

    // Add image to painter
    final ui.Codec codec = await ui.instantiateImageCodec(markerImageData);
    final ui.FrameInfo frameInfo = await codec.getNextFrame();
    final ui.Image markerImage = frameInfo.image;

    // Create an oval path for the image and clip to it
    final double imageWidth = markerSize.width * 0.8;
    final double imageHeight = markerSize.height * 0.8;

    // final double remainingHeight = canvasSize - titlePainter.height;
    // final double imageY =
    //     (canvasSize - remainingHeight) / 2 + titlePainter.height;
    final double remainingHeight = canvasSize;
    final double imageY = (canvasSize - remainingHeight) / 2;

    final Rect imageRect = Rect.fromLTWH(
      (canvasSize - imageWidth) / 2,
      imageY + (markerSize.height - imageHeight) / 2,
      imageWidth,
      imageHeight,
    );
    final RRect imageRRect = RRect.fromRectAndRadius(
      imageRect,
      Radius.circular(imageWidth / 2),
    );
    final Path imageOvalPath = Path()..addRRect(imageRRect);
    canvas.clipPath(imageOvalPath);
    paintImage(
      canvas: canvas,
      rect: imageRect,
      image: markerImage,
      fit: BoxFit.contain,
      alignment: Alignment.center,
    );

    // Convert painter to image and create bitmap descriptor
    final ui.Picture picture = recorder.endRecording();
    final ui.Image image = await picture.toImage(
      canvasSize.toInt(),
      (canvasSize + 0).toInt(), // titlePainter.height.toInt(),
    );
    final ByteData? byteData =
        await image.toByteData(format: ui.ImageByteFormat.png);

    if (byteData != null) {
      return byteData;
    } else {
      throw Exception('Failed to convert image to ByteData');
    }
  } else {
    throw Exception('Failed to download image');
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs

[ +167 ms] [100%] InstallComplete
[ +614 ms] [100%] Installed package build/ios/iphoneos/Runner.app
[  +75 ms] ------ Debug phase ------
[        ] Starting debug of 00008110-00164CC12100401E (D63AP, iPhone 13 Pro, iphoneos, arm64e, 16.4.1, 20E252) a.k.a. 'Miguel’s iPhone' connected through USB...
[ +397 ms] [  0%] Looking up developer disk image
[  +21 ms] [ 95%] Developer disk image mounted successfully
[  +20 ms] Symbol Path: /Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols
[ +279 ms] [100%] Connecting to remote debug server
[        ] -------------------------
[ +142 ms] (lldb) command source -s 0 '/tmp/6A68CDAD-5F08-41EF-A28F-5D216825B73D/fruitstrap-lldb-prep-cmds-00008110_00164CC12100401E'
[        ] Executing commands in '/tmp/6A68CDAD-5F08-41EF-A28F-5D216825B73D/fruitstrap-lldb-prep-cmds-00008110_00164CC12100401E'.
[        ] (lldb)     platform select remote-'ios' --sysroot '/Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols'
[        ]   Platform: remote-ios
[        ]  Connected: no
[        ]    Sysroot: /Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols
[        ]   SDK Path: "/Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols"
[        ] (lldb)     target create "/Users/ingmferrer/Development/f310/build/ios/iphoneos/Runner.app"
[+1420 ms] Current executable set to '/Users/ingmferrer/Development/f310/build/ios/iphoneos/Runner.app' (arm64).
[        ] (lldb)     script fruitstrap_device_app="/private/var/containers/Bundle/Application/B43165FE-12DB-4C2E-A5E1-F3D30FB64B57/Runner.app"
[  +96 ms] (lldb)     script fruitstrap_connect_url="connect://<IP_ADDRESS>:56667"
[        ] (lldb)     script fruitstrap_output_path=""
[        ] (lldb)     script fruitstrap_error_path=""
[        ] (lldb)     target modules search-paths add /usr "/Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols/usr" /System "/Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols/System" "/private/var/containers/Bundle/Application/B43165FE-12DB-4C2E-A5E1-F3D30FB64B57" "/Users/ingmferrer/Development/f310/build/ios/iphoneos" "/var/containers/Bundle/Application/B43165FE-12DB-4C2E-A5E1-F3D30FB64B57" "/Users/ingmferrer/Development/f310/build/ios/iphoneos" /Developer "/Users/ingmferrer/Library/Developer/Xcode/iOS DeviceSupport/16.4.1 (20E252) arm64e/Symbols/Developer"
[  +14 ms] (lldb)     command script import "/tmp/6A68CDAD-5F08-41EF-A28F-5D216825B73D/fruitstrap_00008110_00164CC12100401E.py"
[   +2 ms] (lldb)     command script add -f fruitstrap_00008110_00164CC12100401E.connect_command connect
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_00008110_00164CC12100401E.run_command run
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_00008110_00164CC12100401E.autoexit_command autoexit
[        ] (lldb)     command script add -s asynchronous -f fruitstrap_00008110_00164CC12100401E.safequit_command safequit
[        ] (lldb)     connect
[  +18 ms] (lldb)     run
[ +103 ms] success
[        ] Application launched on the device. Waiting for Dart VM Service url.
[+4276 ms] (lldb) warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance.
[+25725 ms] The Dart VM Service was not discovered after 30 seconds. This is taking much longer than expected...
[   +1 ms] process interrupt
[+12121 ms] (lldb) Process 2577 stopped
[        ] * thread #1, stop reason = signal SIGSTOP
[        ]     frame #0: 0x00000001edc65164 dyld`_dyld_debugger_notification
[        ] dyld`:
[        ] ->  0x1edc65164 <+0>: ret
[        ] dyld`dyld4::Atlas::Bitmap::Bitmap:
[        ]     0x1edc65168 <+0>: pacibsp
[   +1 ms]     0x1edc6516c <+4>: sub    sp, sp, #0x50
[        ]     0x1edc65170 <+8>: stp    x24, x23, [sp, #0x10]
[        ] Target 0: (Runner) stopped.
[        ] thread backtrace all
[   +4 ms] process continue
[   +7 ms] * thread #1, stop reason = signal SIGSTOP
[        ]   * frame #0: 0x00000001edc65164 dyld`_dyld_debugger_notification
[        ]     frame #1: 0x00000001edc58c6c dyld`lldb_image_notifier + 192
[        ]     frame #2: 0x00000001edc3b520 dyld`dyld4::RuntimeState::notifyDebuggerLoad(std::__1::span<dyld4::Loader const*,<PHONE_NUMBER>3709551615ul> const&) + 504
[        ]     frame #3: 0x00000001edc32874 dyld`dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 1412
[        ]     frame #4: 0x00000001edc30cdc dyld`start + 1948
[   +1 ms] (lldb) Process 2577 resuming
[ +595 ms] (lldb) 2023-05-11 19:13:23.981327-0500 Runner[2577:488795] [VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(35)] Using the Impeller rendering backend.
[  +67 ms] VM Service URL on device: http://<IP_ADDRESS>:61872/6Nt-Ew6iR8M=/
[   +3 ms] Attempting to forward device port 61872 to host port 56735
[        ] executing: /Users/ingmferrer/Development/flutter/bin/cache/artifacts/usbmuxd/iproxy 56735:61872 --udid 00008110-00164CC12100401E --debug
[+1011 ms] Forwarded port ForwardedPort HOST:56735 to DEVICE:61872
[   +1 ms] Forwarded host port 56735 to device port 61872 for VM Service
[   +8 ms] Caching compiled dill
[  +51 ms] Connecting to service protocol: http://<IP_ADDRESS>:56735/6Nt-Ew6iR8M=/
[ +104 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at http://<IP_ADDRESS>:56735/6Nt-Ew6iR8M=/.
[  +44 ms] DDS is listening at http://<IP_ADDRESS>:56738/XHRmkaEXbZU=/.
[  +26 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:56735/6Nt-Ew6iR8M=/
[  +10 ms] DevFS: Creating new filesystem on the device (null)
[  +10 ms] DevFS: Created new filesystem on the device (file:///private/var/mobile/Containers/Data/Application/75136F48-8011-4F51-9B5C-72AC9FC0A6C7/tmp/f310QSAlf7/f310/)
[        ] Updating assets
[  +51 ms] Compiling dart to kernel with 0 updated files
[        ] Processing bundle.
[        ] <- recompile package:f310/main.dart 628e3491-b673-4de8-a4c5-485009317366
[        ] <- 628e3491-b673-4de8-a4c5-485009317366
[        ] Bundle processing done.
[  +35 ms] Updating files.
[        ] DevFS: Sync finished
[        ] Synced 0.0MB.
[        ] <- accept
[   +3 ms] Connected to _flutterView/0x11600c220.
Connecting to VM Service at ws://<IP_ADDRESS>:56738/XHRmkaEXbZU=/ws
[ +735 ms] flutter: Result: Instance of 'Future<ByteData>'
[ +346 ms] [VERBOSE-2:image_encoding_impeller.cc(103)] Failed to get color type from pixel format.
[+6265 ms] DevFS: Deleting filesystem on the device (file:///private/var/mobile/Containers/Data/Application/75136F48-8011-4F51-9B5C-72AC9FC0A6C7/tmp/f310QSAlf7/f310/)
[   +9 ms] DevFS: Deleted filesystem on the device (file:///private/var/mobile/Containers/Data/Application/75136F48-8011-4F51-9B5C-72AC9FC0A6C7/tmp/f310QSAlf7/f310/)
[   +1 ms] Application finished.
Exited

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.0, on macOS 13.3.1 22E772610a darwin-arm64, locale en-CO)
    • Flutter version 3.10.0 on channel stable at /Users/ingmferrer/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/ingmferrer/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.0

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • Miguel’s iPhone (mobile) • 00008110-00164CC12100401E            • ios          • iOS 16.4.1 20E252
    • iPhone 14 Pro (mobile)   • 03AD2CAF-131E-4623-B6F7-E919C781D55D • ios          • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)          • macos                                • darwin-arm64 • macOS 13.3.1 22E772610a darwin-arm64
    ! Error: Miguel’s Apple Watch needs to connect to determine its availability. Check the connection between the device and its companion iPhone, and the connection between the iPhone and Xcode. Both devices may also need to be
      restarted and unlocked. (code 1)

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.```

I can reproduce the issue using the code sample provided above.
Launching lib/main.dart on Nexus in debug mode...
Updating project for Xcode compatibility.
Upgrading project.pbxproj
Upgrading Runner.xcscheme
Automatically signing iOS for device deployment using specified development team in Xcode project: X8NNQ9CYL2
Running Xcode build...
Xcode build done.                                           31.4s
Installing and launching...
(lldb) 2023-05-12 08:55:33.838925+0000 Runner[2730:255971] [VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(35)] Using the Impeller rendering backend.
Debug service listening on ws://<IP_ADDRESS>:49203/vPwGOXaKxlw=/ws
Syncing files to device Nexus...
flutter: Result: Instance of 'Future<ByteData>'
[VERBOSE-2:image_encoding_impeller.cc(103)] Failed to get color type from pixel format.
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Null check operator used on a null value
#0      _Image.toByteData.<anonymous closure>.<anonymous closure> (dart:ui/painting.dart:1959:25)

flutter doctor -v
[✓] Flutter (Channel stable, 3.10.0, on macOS 13.3.1 22E772610a darwin-arm64, locale en-GB)
    • Flutter version 3.10.0 on channel stable at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (3 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9971841/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9971841/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 73.1.1
    • Dart plugin version 231.8770.15

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8109.175/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8770.65/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • Nexus (mobile)  • 00008020-001875E83A38002E • ios            • iOS 16.4.1 20E252
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.3.1 22E772610a darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.11.0-5.0.pre.48, on macOS 13.3.1 22E772610a darwin-arm64, locale en-GB)
    • Flutter version 3.11.0-5.0.pre.48 on channel master at /Users/nexus/dev/sdks/flutters
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5e459380c1 (6 hours ago), 2023-05-11 22:53:01 -0400
    • Engine revision ef5c349f04
    • Dart version 3.1.0 (build 3.1.0-94.0.dev)
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9971841/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode-14.3.0.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9971841/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9862592/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 73.1.1
    • Dart plugin version 231.8770.15

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8109.175/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2023.1.1)
    • IntelliJ at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/231.8770.65/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • Nexus (mobile)  • 00008020-001875E83A38002E • ios            • iOS 16.4.1 20E252
    • macOS (desktop) • macos                     • darwin-arm64   • macOS 13.3.1 22E772610a darwin-arm64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

cc @gaaclarke

The problem is when trying to convert the drawing to an image.  The texture representing the image is in the BGRA10_XR pixel format, but Skia doesn't support reading from that format.  I had only added support for BGR10_XR.  This wasn't supposed to be a problem since when we load wide gamut images we use RGBA_F16.  However I believe our offscreen buffers are in the BGRA10_XR format and they are finding their way back to the encoder.
So we have 2 options:

Switch the pixel format for our offscreen buffers to be RGBA_F16
Add support for BGRA10_XR to Skia

The first option is the easiest to implement, but actually probably won't work since there are cases where we blit from the offscreen buffers to the surface, which requires them to have the same pixel format (as evidenced by the bugs that arose from the opaque surface optimization that got reverted).

Option 3:
3) Switch the offscreen buffer format to RGBA_F16 and the surface to RGBA_F16.
I don't know if there is official documentation on this but I have the suspicion that BGRA10_XR is better optimized.

I confirmed that the following patch fixes the error.  I'm not sure if we want to do it though:
--- a/shell/platform/darwin/ios/framework/Source/FlutterView.mm
+++ b/shell/platform/darwin/ios/framework/Source/FlutterView.mm
@@ -107,7 +107,7 @@
       CGColorSpaceRef srgb = CGColorSpaceCreateWithName(kCGColorSpaceExtendedSRGB);
       layer.colorspace = srgb;
       CFRelease(srgb);
-      layer.pixelFormat = MTLPixelFormatBGRA10_XR;
+      layer.pixelFormat = MTLPixelFormatRGBA16Float;
     }
   }

I did quick and dirty measurement on an iphone se 2022 the difference between bgra10_xr and f16 and there wasn't an difference according to the frame debugger.
All of our tests are written to assume bgra10_xr or bgr10_xr and dart doesn't have direct support for half floats, so the change won't just be one line if we go down that route.

hey, @gaaclarke I'm getting this same error again, I'll try to reproduce it but it looks like it's not solved with the latest flutter version.

@ingmferrer issues are closed when they are fixed on main, not when they've been released.  I used your code to create a test that is passing, please review it if you think you are doing something different: https://github.com/flutter/flutter/pull/126715


Adding a Shadereffect to the VLC MediaElement

Generic information

Vlc.DotNet version : Current one
Vlc.DotNet project used : WPF
libvlc version : x86/x64 2.2.6 - from official FTP
.net version : 4.6.1
Project language : C#
Project build architecture : AnyCPU (prefer 32bits)
Operating system : Windows 10 Pro x64

Summary
I would like to add a pixelshader effect to the media element.
Is there any way of doing something like this:
MyPlayer.MediaPlayer.Effect = new MySuperEffect();
Cheers

[x] I confirm that my issue doesn't happen in VLC itself.

Hi,
I don't know if this is currently possible.
Do you want something dynamic? If the answer is no, then you probably can pass a flag at initialization, as you would have done with the vlc command line.

Hi,
I don´t know what you actually mean with "something dynamic".
Sorry, I am quiet a newbie to vlc/vlc.dotnet.
So, let´s say I have a classic "DeepColor" effect:
public class DeepColorEffect : ShaderEffect
{
        public static DependencyProperty InputProperty =
            RegisterPixelShaderSamplerProperty("Input", typeof(DeepColorEffect), 0);

        public DeepColorEffect()
        {
            var u = new Uri(@"" + GlobalVars.ExecutePath + "Effects/DeeperColor.ps");
            PixelShader = new PixelShader {UriSource = u};
            UpdateShaderValue(InputProperty);
        }
}

Is there a way to add this effect to the vlc media element like:
MyPlayer.MediaPlayer.Effect = new DeepColorEffect();
If it´s possible it would be really nice if you could provide a small code snippet to get me going.
Thanks for your time

Oh, I think I misunderstood your request. Are you trying to use https://msdn.microsoft.com/fr-fr/library/system.windows.media.effects.shadereffect(v=vs.110).aspx ?
If yes, unfortunately, It is not possible with the current version of Vlc.DotNet, because the Wpf component is not a "native Wpf component" but rather is using the WinForms component under the hood. That causes many issues, because a window is rendered on top of the Wpf controls and can't be styled "The Wpf Way"

Sadly, yes that´s what I wanted to use. And I guess there are no plans on creating a proper Wpf control because it would be pretty hard to do?

We do have a plan to rewrite an VideoLan-supported .net wrapper around libvlc. It is currently an early stage and yet doesn't work. There is no WPF control either yet.
We are planning to create a Wpf control that is based on DirectX, but that would require using the winRT builds of LibVlc. I still don't know yet how that would work.
As for making that breaking change in this library, I don't think I will have time to do that on my own.
If you are looking at a more "Wpf-ish" control, I know about https://github.com/higankanshi/Meta.Vlc, I don't know about perfs, but at least it's WPF.
Other options include "creating your own filter plugin in C/C++ and build it with your own VLC". The amount of work is really bigger, but perfs and cusomizations will probably be at their best.

I´ve already tried Meta.Vlc and don´t really like it. Of cause it´s a Wpf control, but it comes with many other problems - and it seems like the developer stopped working on it.
My C/C++ skills are... well pretty limited I would say so writing my own plugin is not an option.
Anyways thanks for taking your time
I think we can close this one now.

Ok, keep an eye on what's going on on this repository and mfkl's work 😉


pull request for e2e test at 12/02/2016 03:15:11

: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.


Failure to apply node_group via Bolt

When using Puppet Bolt to apply a node_group to a PE master, the module is looking in the wrong place for the classifier.yaml. The error is Failed to apply catalog: Could not find file /tmp/d20181217-32970-1e9axsa/conf/classifier.yaml
The following code was applied with Bolt:
node_group { 'Workshop':
  ensure               => 'present',
  classes              => {
    'role::workshop' => {},
  },
  environment          => 'production',
  override_environment => 'false',
  parent               => 'All Nodes',
  rule                 => ['or',
    ['=', 'name', 'master.inf.puppet.vm']
  ],
}

The above code was saved as workshop_nodegroups.pp and applied with Bolt like this:
bolt apply ./workshop_nodegroups.pp --nodes <pe_master> [connection settings]

@kreeuwijk how did you solve this?


Call wasienv from hand coded WebAssembly?

Hi all,
As a learning exercise, I wondered if I could call wasienv from hand coded WebAssembly? This would be without using clang presumably?
Thanks!

I found this approach works fine: https://blog.jeremylikness.com/blog/explore-wasi-from-your-browser/ section "Your First WASI Module".

I found this approach works fine: https://blog.jeremylikness.com/blog/explore-wasi-from-your-browser/ section "Your First WASI Module".


feat: implement basic error handling

Implements basic error handling.
We can come up with more sophisticated error classes/types after.

Looks like this

Looks like this

Hmm I would say let's do it like this:
finetuner.client.exception.FinetunerServerError: INTERNAL SERVER ERROR (500) - details

@gmastrapas

Hmm I would say let's do it like this:
finetuner.client.exception.FinetunerServerError: INTERNAL SERVER ERROR (500) - details

Internal Server Error is the message (i.e. details) here.
If we change the way you suggested, we'll get something like this:

finetuner.client.exception.FinetunerServerError: INTERNAL SERVER ERROR (500) - Internal Server Error

@gmastrapas

Hmm I would say let's do it like this:
finetuner.client.exception.FinetunerServerError: INTERNAL SERVER ERROR (500) - details

Internal Server Error is the message (i.e. details) here.
If we change the way you suggested, we'll get something like this:

finetuner.client.exception.FinetunerServerError: INTERNAL SERVER ERROR (500) - Internal Server Error

Inside the body there must be a detail field

@gmastrapas good point!
This is the new one


[New game]: Crossword Puzzle

🎮 Game Request
Game logic and basic description
A simple Crossword Puzzle that we all know and love!
Point down the features
Game points

Simple Design(Easy to Understand)
Interactive
Fun

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @5h0ov !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @5h0ov ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Build icon showing up strange in light mode

Bug description

Looks like it's no longer light colour?
I think it's from the status icon update changes we did?
cc @deboer-tim
Operating system
mac M1
Version
next (development version)
Steps to reproduce
No response
Relevant log output
No response
Additional context
No response

It is this issue: https://github.com/containers/podman-desktop/issues/7728 (since we copied code). We can do the same fix, but StatusIcon is now in the API - more work to map statuses but might be better long-term solution.

This is fixed in the latest version of the library - but was also fixed indirectly via https://github.com/containers/podman-desktop/pull/8061. Nothing to do here, so closing.


favicon.png changes to js file

In my index.html file I have this:
<link rel="shortcut icon" href="favicon.png" />
after being compiled with this plugin on, it turns to this:
<link rel="shortcut icon" href="/favicon.d82d2c87.js">
It just turns a png to a js file no matter if the file size. Can this be fixed? This plugin is part of my full stack parcel-based boilerplate.

fixed in 1.2.5

ok, extensions work now but the favicon.png file is filled with undefined instead: https://i.imgur.com/9enTCkD.png


Keywords for filtering harvested data

A substantial dataset from existing repositories such as BonaRes and Zenodo has been compiled, encompassing a broad spectrum of soil research information. The demo already features a basic search function that includes country-based filtering. To enhance user experience further and help users efficiently locate relevant data through the SW, we need to implement an advanced search function—such as pop-ups or tickboxes—that allows for keyword-based filtering.
To support this development, within our tasks in WP2-WP3, we have conducted a thorough literature review, screening around 170 research papers (mainly WOS and Scopus based) to identify relevant keywords associated with data reuse in various fields (agriculture, environment, soil). The list of these keywords is attached.
SWdata_catalogue_filtering_Cenk.docx
@pvgenuchten @roblokers   Is such information relevant at this stage? Shall we discuss it further to improve/specify? The document comprises only the outputs. I can share the details of the study in a respective deliverable.

Definitely useful and good to follow up . Also good to take the JRC taxonomy for soil degradation into account as specified in EUSO and documented here: https://github.com/soilwise-he/SoilWise-documentation/blob/main/tech/docs/technical_components/metadata_augmentation.md

we're collecting activities related to vocabularies in https://github.com/soilwise-he/soilwise-ontology/blob/main/docs/terminology.md. I will add this initiative there?

these facets are now used in the latest prototype


Monthly Calendar Grid Visible Behind Modal

In Monthly Calendar View only, the Calendar Grid is completely visible behind a modal (here I am using react-modal).  Note that the other items in the view respond appropriately to the modal overlay

you probably need to increase the z-index of the modal.  not really familiar with react-modal

I have adjusted the zIndex, the rgba, the opacity, and the positioning.  I will send a new screen shot to demonstrate.  It is a problem only with the monthly calendar grid.

there really isn't anything I can do here unfortunately. you'll have to figure out style for the modal that works. from the screenshot tho it's clear the modal is below the calendar event layer.

Okay.  Got it. It was the zIndex of the overlay that needed to be adjusted rather than the zIndex of the modal content. Not sure why it was an issue only for this part of the calendar.

Thanks

:thumbsup:

when the modal open date also shows above the modal please suggest any solution.
React-big-calender

You can use a <dialog> element for your modal, ensuring it's always on top-layer. If you portal your modal to the document.body then it may also automatically manage the z-index. Or you just manually set your z-index to something higher than these other bits.


[BUG] Incorrect export of types and interfaces

Problem
At the moment we're having reusable SFCs with <script setup lang="ts"> with wrongly exported types and/or interfaces. Interfaces and/or types exported from .vue and imported to .ts files lead to errors while running check:types script - tsc and vue-tsc.
Here's an example:
><EMAIL_ADDRESS>check:types /component-library
> tsc --noEmit & vue-tsc --noEmit

src/components/organisms/UiPhoneNumber/UiPhoneNumber.stories.ts:2:15 - error TS2614: Module '"*.vue"' has no exported member 'UiPhoneNumberProps'. Did you mean to use 'import UiPhoneNumberProps from "*.vue"' instead?

2 import type { UiPhoneNumberProps } from<EMAIL_ADDRESS>                ~~~~~~~~~~~~~~~~~~

Found 1 error in src/components/organisms/UiPhoneNumber/UiPhoneNumber.stories.ts:2

Solution
We have several ways to fix this. Regarding many sources we could either:

create another file in each of the component's directories and export component-related types from those files; these files could be named like:

types.ts [preferred]
or ComponentNameTypes.ts
or componentNameTypes.ts

add another, parallel script tag aside current one, but without setup and only export from within those tags

@AlanLes this BUG is still valid?

@pspaczek looks like it should be closed / declined as @akszydelko confirmed that removing the tsc and keeping only the vue-tsc solves the bugs :)

Yes, I confirm that removing tsc and keeping only vue-tsc resolves these bugs. IMO we can implement this change as a solution to this bug 😃 @pspaczek WDYT ?


Add support for executing Substrait plans

The existing FlightSQLExecutor executes a sql string. We should add support for executing a serialized Substrait plan. In the longer term , it should be easier to support more advanced pushdown for engines which support consuming Substrait.

I plan to take a look at https://github.com/apache/arrow-datafusion/issues/9299 upstream to get some more familiarity with how Datafusion serializes plans to substrait and what limitations it may have currently.


Feature/ldap mod replace

I would like to add my contribution to zend-ldap by adding an updateAttributes () method.

Hey @glimac. Thanks for your PR.
As I'm currently on holiday I will not be able to review the PR completely. But from a first glance I'Ve seen that there are no tests. Would you mind fixing that?

Hi @heiglandreas, thank you for your appreciation and performed the tests for this functionality.


GetDisplayUrl (and PathBase) showing rewritten URL instead of Request URL

When using IIS to perform a URL rewrite, is PathBase or GetDisplayUrl supposed to reflect the original Request, or the rewritten one?
I am using IIS URL rewrite to remove a segment of the path (i.e. remove '/shared/'), so instead of the user seeing "https://test.gms.ca/test01/api/shared/test", I want them to see "https://test.gms.ca/test01/api/test".
I have the rule setup in IIS and all seems well.  The request is rewritten with an inbound rule and the controllers are responding.  However, within the controller, I am using GetDisplayUrl thinking that would give me the original request, not the actual one where the application is hosted within IIS.
I have a test controller returning the request headers and some values off the HttpRequest object from within the controller.  As you can see, PathBase is always showing the actual hosted path and GetDisplayUrl is merely reflecting that portion.  I thought GetDisplayUrl is a method to get the same URL that the user is seeing.  Am I misunderstanding what GetDisplayUrl is for?
I was thinking maybe I had to also use the ASP.NET Core Rewrite middleware to rewrite the url, but I'm not 100% sure I am doing it right.  This is what I have:
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
        {
            var options = new RewriteOptions()
                .AddRewrite(@"(\d+)/api/shared/(\d+)", "$1/api/$2", false);

            app.UseRewriter(options);

            app.ConfigureCommonSettings(env, loggerFactory, Configuration, serviceProvider);
        }

@Tratcher / @mikaelm12 - any idea where this bug should go? HttpAbstractions or BasicMiddleware?

By design.
https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Extensions/UriHelper.cs
Display refers to the escaping state, as compared to GetEncodedUrl.
@mikalem12, does rewrite stash the original values anywhere?

cc @mikaelm12 w/ proper spelling 😄

does rewrite stash the original values anywhere?

No. There are server variables for that but we don't support them atm
They are

HTTP_X_ORIGINAL_URL – this server variable contains the original URL in decoded format;
UNENCODED_URL – this server variable contains the original URL exactly as it was requested by a Web client, with all original encoding preserved

There was a discussion on it a while ago here https://github.com/aspnet/BasicMiddleware/issues/151

Is using the Rewrite middleware an option to override the PathBase value?
Perhaps I'm going about this the wrong way.  I have 4 separate API projects, 1 that consists of general functions, the other 3 separated by their domain concerns.  I want the URL for the common functions to appear at the top of the url and the domain specific ones to be lower, as in:
Given a Clients, Address and Countries controller in the general library (called common), I want those URLs to be:
https://api.domain.com/clients/12345
https://api.domain.com/addresses/12
https://api.domain.com/countries/12
And then I have several controllers related to administration tasks (called admin).  I want those URLs to be:
https://api.domain.com/admin/policies/123456
https://api.domain.com/admin/applications/123456
https://api.domain.com/admin/quotes/123456
I tried hosting my projects in IIS with a structure that matched this hierarchy:
api.domain.com
common.dll
/admin/admin.dll
but I couldn't get this to work and assumed it was because the top level project (common.dll) was intercepting all requests including ones with admin in their URL and then trying to find a controller called "admin", which doesn't exist in that project, and returning a 404.  The admin project (admin.dll) in a sub folder under common would then never see the request.
To work around this, I thought I would attempt to use URL rewrite, so that the projects would be hosted in side-by-side on IIS:
api.domain.dom
/common/common.dll
/admin/admin.dll
essentially I have the top level projects in a subfolder called common and then use URL rewrite to remove /common/ from the URL, but this is causing some other issues, such as when my code relies on GetDisplayUrl to build a URL for the response, it is not reflecting the rewritten URL, and I am also using Swashbuckle to create a Swagger UI, which also seems to reflect the actual hosted URL and not the rewritten one.

This issue was moved to aspnet/HttpAbstractions#855


Glowing Text Animation

Fixes Issue🛠
Closes #78
Description👨💻
Added Glowing Text Animation
Type of change📄

[X] New feature (non-breaking change which adds functionality)

Checklist✅

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have added demonstration in the form of GIF/video file
[X] I am an Open Source Contributor

Screenshots/GIF📷

@Rakesh9100 The glowing text animation is added.

@Rakesh9100 Please check whether the mentioned issues are solved or not

Do move back line no. 61 to line 60 in text-animations.html file @GhoshAditi

@Rakesh9100  Is it okay now?

Merged!! 🎉 @GhoshAditi

nice one @GhoshAditi


Verify challenge resource matches request domain

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-security-keyvault-administration

Closing in favor of #31040.


Fix on generic trial

I think the logic in on_generic_trial? was wrong. This PR fixes that
cc: @excid3

LOL, yeah that was backwards. Thanks for catching that!


Ask: Step By Step Video for the new method

Hi,
With the new method to install the bot, i'm completely lost. Can someone do a video step by step to install it?
(before someone ask, i don't know where the GIT command [git clone https://github.com/SexualRhinoceros/MusicBot.git MusicBot -b master] place the folder)

PEBKAC. The guides should be easy to follow if you read them and follow them step by step.


Add Modeler

Show Modeler instead of Viewer
Persist changes in Modeler to file on disk

Saving the changes to the file that you opened will be great.. even if at the beginning you can only move the shapes around.
Later the properties.


Too much padding in the API docs

This one is largely for @sarahschwartz but there is too much padding in the generated API docs for the TS SDK, I'd consider revising and look at the appropriate amount that other docs references use, even the original ts-sdk docs were better here.

[!NOTE]

Incoming from https://github.com/FuelLabs/fuels-ts/discussions/1545

@SilentCicero Are you referring to:

The Docs Hub Portal

https://docs.fuel.network/docs/fuels-ts/

TS SDK Docs:

https://fuellabs.github.io/fuels-ts/

Do you have any page in particular to be used as a reference?
That could be helpful.

This should be solved now.

Thanks. 🙌


Rewrite rules modified to convert(to and from) algebricks function

looks good, only a few minor changes.

Please rebase to master, since your other changes have been merged.