[iOS 17] Textfield last char selected

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
Use any TextField in iOS on iOS 17.
Expected results
Should be the same as preview iOS version.
Actual results
The TestField add a selected for the last char. See video on iOS 17 below.
Code sample
Code sample
// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  final String title;

  const MyHomePage({
    Key? key,
    required this.title,
  }) : super(key: key);

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

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: const TextField(),
    );
  }
}

dartpad

Screenshots or Video

Screenshots / Video demonstration
iOS 16.4:
https://github.com/flutter/flutter/assets/8250175/8ec9e09b-2551-4f3e-a408-c2576a238c82
iOS 17.0:
https://github.com/flutter/flutter/assets/8250175/35d9ab70-a1d0-46e1-abdf-c6cb811aa6a0

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.4 22F66 darwin-arm64, locale en-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.1)
[✓] VS Code (version 1.80.1)
[✓] Connected device (6 available)
[✓] Network resources

• No issues found!

Hi @Kiruel, Thanks for filing this issue. There is a currently open issue that describes this case. Kindly upvote, comment and follow up on the issue for updates. Closing this as a duplicate of https://github.com/flutter/flutter/issues/128406.
If you disagree, please write in the comments and I will reopen it.
Thank you!


Welcome screen - Buttons doesn't have margin between them

steps to reproduce:

login with google
click back button on "enter phone" screen

Verified as done.
Checked on the Dev env. v0.18.1-2
Devices:
Redmi Go // Android 8.1.0


Can you make your web version of Chunker open sourced?

What feature would you like seen in Chunker?
I really like that tool and want to use it.

The download found at https://github.com/HiveGamesOSS/Chunker/releases is the same UI as the web-interface just run locally, this project is an improved version of the web tool.


Separate correctness tests from type stability tests

Core

Add Test as a dependency to the main package
Put more code inside DifferentiationTest submodule

Extensions

Put correctness tests in the ForwardDiff extension
Put type stability tests in the JET extension
Make room for allocation tests and benchmarking in a Chairmarks extension

Codecov Report
Attention: Patch coverage is 93.41085% with 17 lines in your changes are missing coverage. Please review.

Project coverage is 92.06%. Comparing base (5b5c3c5) to head (1e19519).

Files
Patch %
Lines

src/DifferentiationTest/test_operators.jl
58.62%
12 Missing :warning:

...nInterfaceJETExt/DifferentiationInterfaceJETExt.jl
98.13%
2 Missing :warning:

src/zero.jl
0.00%
2 Missing :warning:

...tiationInterfaceForwardDiffExt/test_correctness.jl
98.83%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #52      +/-   ##
==========================================
- Coverage   92.33%   92.06%   -0.28%
==========================================
  Files          40       40
  Lines        1318     1273      -45
==========================================
- Hits         1217     1172      -45
  Misses        101      101

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


get_pressed() panic when at least one axis or axispair is set

Version
0.15.0
Operating system & version
Nixos, linux 6.6.52
What you did
The lightyear library uses ActionState::get_pressed() to display some info, which leads to a panic when at least one AxisPair or Axis input has a value set. (https://github.com/cBournhonesque/lightyear/issues/655)
What you expected to happen
I expect get_pressed to ignore all non pressable (axis, axispair) inputs rather than panic.
What actually happened
The following panic occurred:
thread 'Compute Task Pool (11)' panicked at /home/andreas/.cargo/registry/src/index.crates.io-6f17d22bba15001f/leafwing-input-manager-0.15.0/src/action_state/mod.rs:737:9:
assertion `left == right` failed
  left: DualAxis
 right: Button

(full stack trace can be seen in the issue linked above)
Additional information
The following test reproduces this:
#[test]
fn test() {
    use bevy::reflect::Reflect;
    use leafwing_input_manager::{Actionlike, InputControlKind};

    #[derive(Reflect, Clone, PartialEq, Eq, Hash, Debug)]
    enum PlayerInput {
        Run,
        Jump,
        Shoot,
        CameraPan,
    }

    impl Actionlike for PlayerInput {
        fn input_control_kind(&self) -> InputControlKind {
            match self {
                Self::Run => InputControlKind::DualAxis,
                Self::Jump => InputControlKind::Button,
                Self::Shoot => InputControlKind::Button,
                Self::CameraPan => InputControlKind::DualAxis,
            }
        }
    }

    let mut state = ActionState::<PlayerInput>::default();
    state.set_axis_pair(&PlayerInput::Run, Vec2::ZERO);
    assert_eq!(state.get_pressed().len(), 0);
}

This is definitely a regression in v0.15, fwiw.
Using the twin_stick_controller example as my test unit, I get the expected behavior of seeing my game pad axis sticks report events on both tag v0.14.0 , and on main (branch 36441c71a8f73e978b05f27b33e735ec14a07bf4 specifically). On v0.15, or when I reproduce similar code in my project (linked to v0.15 in my Cargo.toml), I get the same panic that @AndreasHGK is reporting.

Can you reproduce this on main? I believe this should be fixed now.

Yes, works on 36441c71a8f73e978b05f27b33e735ec14a07bf4, which is where main is currently pointing. Is the recommendation to use main until next release?

Yes, but I'm aiming to do a point release in the next couple of days :)


AssemblyTypeToSwagger not available on command line

How would you use .net dlls as input on the command line? Is this currently not possible?

The command exists but is not registered in the cmd line tool :-), will be added as "type2swagger". Ok? Next version today or tomorrow...

Awesome! Sounds great!

I think I call it "types2swagger" because it supports multiple types... just type "nswag help" to list all commands and see the actual naming :) (as soon as its released)

Its live now, v2.45


Update Jetson Nano Mender environment in MMC patch

OE4T/meta-tegra#437 updated SRCREV for meta-tegra-uboot, and after that this patch didn't apply.
This one should work.
DISCLAIMER: I do not have a Nano to test this on.
Also, with OE4T/meta-tegra#438 we might see
a similar problem on the zeus-l4t-r32.3.1 branch. I am unfortunately not able to test this.
Signed-off-by: Arnstein Kleven<EMAIL_ADDRESS>

@dwalkes, can you have a look?

@arnstein thanks for contributing
@mirzak I haven't had a chance to test this yet but it looks very low risk to me.  If you'd like me to test I'll try to get to it this weekend.

The ENV offset is using the CONFIG_SPI_FLASH_SIZE here. Maybe this is overridden later on somewhere, but I think this might be worth to test.

Yea good point, I think it's set here:
https://github.com/mendersoftware/meta-mender-community/blob/a828ac133c1295c560d26cc50d20c2c83e742c0a/meta-mender-tegra/recipes-bsp/u-boot/patches/0012-Update-environment-defaults-for-tegra.patch#L40
but I'm not sure how we aren't ending up with a conflict.
The change in https://github.com/OE4T/u-boot-tegra/commit/e07c4410083f8c4439c5d00dc60a17488d07875b caused the patch conflict.
I'm not completely sure why we need to set any config environment at all in include/configs/p3450-porg.h, it seems like we'd just want to use include/config_defaults.h.

Also, with OE4T/meta-tegra#438 we might see a similar problem on the zeus-l4t-r32.3.1 branch

I think we should be fine there since the only change to the u-boot repo was https://github.com/OE4T/u-boot-tegra/commit/a8c48a2aadb115ef9eb01fa5ab496a24fce65a25 which won't conflict with anything in configs, also this particular patch is not on the zeus branch
I'm tempted to just sunset the warrior branch support for Nano since we only supported MMC flash based boot there and we completely overhauled support in zeus and don't support that anymore as of dunfell.  @Ecordonnier or @moqmar as original contributors to this branch do you have any use for it going forward?

Hi Dwalkes, I am not working with this hardware any more.

Thanks @Ecordonnier
@mirzak I'm not going to be able to get to this today but I think we should just keep this conversation history, not try to update the warrior branch, and close this merge request.  If someone really needs nano support on warrior it should be a solvable problem, but my first recommendation would be to move to dunfell or later branches since upgrades from warrior to later branches on nano isn't going to be easily supported.


Fixes UITextField linker setter override

In the linker override for iOS, the UITextField setter was not trickered (probably because a little too much use of copy/paste).

The build server is broken at the moment due to a upgrade on the server. Planning on fixing tomorrow.
So don't be shocked if the ci fails.

/AzurePipelines run


Add the software to research software directory

Task completed. Software has been added here: https://research-software-directory.org/software/bird-cloud-gnn


Protobufjs Codec and general EncConn support

Not ready for a PR but more of a discussion.  Wanted to match the protobuf support and EncodedConn similar to the Go API using the pbjs/pbts tooling from protobufjs.
So I mocked out an encoder.ts
import { Codec, Msg, NatsConnection, NatsError, Subscription } from 'nats.ws'
import { Reader, Writer } from 'protobufjs'

type suscribeCallback = (err: NatsError | null, msg: Msg) => void

export class EncoderConn<T> {
  constructor(readonly conn: NatsConnection, readonly enc: Codec<T>) {}

  // Publish publishes the data argument to the given subject. The data argument
  // will be encoded using the associated encoder.
  publish(subject: string, v: any) {
    const b = this.enc.encode(v)
    this.conn.publish(subject, b)
  }

  // PublishRequest will perform a Publish() expecting a response on the
  // reply subject. Use Request() for automatically waiting for a response
  // inline.
  publishRequest(subject: string, reply: string, v: any) {
    const b = this.enc.encode(v)
    this.conn.publish(subject, b, {
      reply,
    })
  }

  subscribe(subject: string, callback: suscribeCallback): Subscription {
    return this.conn.subscribe(subject, {
      callback,
    })
  }

  queueSubscribe(
    subject: string,
    queue: string,
    callback: suscribeCallback,
  ): Subscription {
    return this.conn.subscribe(subject, {
      queue,
      callback,
    })
  }
}

export interface Encoder {
  encode(message: any, writer?: Writer): Writer
  decode(reader: Reader | Uint8Array, length?: number): any
}

export function PbjsCodec<T extends Encoder>(t: T): Codec<any> {
  return {
    encode(d: any): Uint8Array {
      debugger
      return t.encode(d).finish()
    },
    decode(a: Uint8Array): any {
      debugger
      return t.decode(a)
    },
  }
}

and tested with
import { connect } from 'nats.ws'

import { pb } from '../gen/pb'
import { EncoderConn, PbjsCodec } from './codec'

const { Book } = pb

export async function test() {
  const conn = await connect({
    servers: 'ws://localhost:9090',
    user: 'foo',
    pass: 'arstars',
  })
  const ec = new EncoderConn(conn, PbjsCodec(Book))

  const b = Book.create({
    isbn: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER),
  })
  ec.publish('foo', b)
}

So you get full static typing and small sizes on the wire.  Still have access to json by doing .toObject().  Just looking to see if this sparks any ideas from anyone else.

@delaneyj for the deno based clients, the correct thing is to create a new wrapper client. Currently exploring this for JetStream, and want to offer a similar pattern. This will allow all clients that use the same platform to have same functionality.


[Ballerina Shell] Add REPL implementation for Ballerina

Purpose
The Ballerina-shell tool is an interactive tool for learning the Ballerina programming language and prototyping Ballerina code. Ballerina-shell is a Read-Evaluate-Print Loop (REPL), which evaluates declarations, statements, and expressions as they are entered and immediately shows the results. Currently, the tool is run via the command line by using ballerina shell command. Using Ballerina-shell, one can enter program statements one at a time and immediately see the result.
Fixes #27796
Approach
Uses a wrapper-based technique used in similar projects such as RCRL. The current implementation will generate a ballerina source with the necessary code to evaluate a given expression by using a static memory class that is accessible via both the host application and the generated ballerina code. More implementation details are included in implementation README.
Samples
Following is a sample REPL session.
=$ int i = 200

=$ i + 1000
1200

=$ string|error s = "Hello"

=$ s
Hello

=$ s = error("Erro")

=$ s
Exception occurred: error("Erro")
| Unhandled Runtime Error.

=$ int t = "Error"
| incompatible types: expected 'int', found 'string'
|     int t = "Error";
|             ^
| Compilation aborted because of errors.

=$ s is error
true

Remarks

Assignments to global variables in closures or class methods will not work - Assignments done to global variables in closures will not be reflected after the execution. The changes will be visible only for the scope belonging to the snippet where the closure was defined.
Enum definition with explicit expression is not fully supported - Enum declarations with explicit expressions are not supported fully. Some functionalities may not work properly.
Support with external libraries not tested completely
Arrays with a fixed length will lose that information once defined - int[3] a = [1, 2, 3] and int a = [1, 2, 3] will behave in the same manner. As a result, some array bindings may not be possible.
Parser timeout issues - Currently, the parser phase is implemented with a timeout (default 100ms when running via CLI, but can be changed by an argument) to ensure a better response time for erroneous snippets. However, this might cause issues in some old hardware where the execution might be slower than expected (where even valid executions might exceed the timeout).
Using var with types that are not visible to the public - This is not currently possible. One has to explicitly define a type for these types of variable declarations (eg: any|error will work)
Cyclic dependencies of module-level types not possible - Obviously, because a REPL is run line by line, One may not use a type that would be defined later. As a result, cyclic dependencies are not possible in module level declarations.
Type guards for global variables do not work - Since all the variables are defined as global variables, type guards will not work for them. This will be fixed once this support is added to the ballerina compiler. However, type guards will work as intended for local variables.

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[x] Added necessary documentation

[x] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

I updated the PR.

I updated the PR.

@hasithaa @MaryamZi @manuranga @warunalakshitha @lochana-chathura
Folks, could you please review this PR and approve? We are going to merge this for alpha.

@hasithaa @MaryamZi @manuranga @warunalakshitha @lochana-chathura
Folks, could you please review this PR and approve? We are going to merge this for alpha.

@kdsuneraavinash , could also do a verification by updating to the latest master? The ballerina command is renamed to bal and just want to make sure that has no impact here.

@kdsuneraavinash , could also do a verification by updating to the latest master? The ballerina command is renamed to bal and just want to make sure that has no impact here.

@Kishanthan updated

@Kishanthan updated

I was trying out locally. Is the following an issue?

=$ int a = 4;                                                                                took 357 ms

=$ a                                                                                took 0 ms
4

=$ int b = 0;                                                                                took 0 ms

=$ a + b;                                                                                took 221 ms
4

=$ int c = a + b;                                                                                took 324 ms

=$                                                                                took 196 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 167 ms

=$ b = 3;                                                                                took 0 ms

=$ c                                                                                took 180 ms
4

I was trying out locally. Is the following an issue?

=$ int a = 4;                                                                                took 357 ms

=$ a                                                                                took 0 ms
4

=$ int b = 0;                                                                                took 0 ms

=$ a + b;                                                                                took 221 ms
4

=$ int c = a + b;                                                                                took 324 ms

=$                                                                                took 196 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 167 ms

=$ b = 3;                                                                                took 0 ms

=$ c                                                                                took 180 ms
4

And this
=$ int a = 1;                                                                                took 0 ms

=$ int b = 3;                                                                                took 218 ms

=$ int c = a + b;                                                                                took 158 ms

=$                                                                                took 154 ms

=$                                                                                took 0 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 145 ms

=$                                                                                took 0 ms

=$                                                                                took 0 ms

=$ c =+ 1;                                                                                took 0 ms

=$ c                                                                                took 137 ms
1

And this
=$ int a = 1;                                                                                took 0 ms

=$ int b = 3;                                                                                took 218 ms

=$ int c = a + b;                                                                                took 158 ms

=$                                                                                took 154 ms

=$                                                                                took 0 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 145 ms

=$                                                                                took 0 ms

=$                                                                                took 0 ms

=$ c =+ 1;                                                                                took 0 ms

=$ c                                                                                took 137 ms
1

And this
=$ int a = 1;                                                                                took 0 ms

=$ int b = 3;                                                                                took 218 ms

=$ int c = a + b;                                                                                took 158 ms

=$                                                                                took 154 ms

=$                                                                                took 0 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 145 ms

=$                                                                                took 0 ms

=$                                                                                took 0 ms

=$ c =+ 1;                                                                                took 0 ms

=$ c                                                                                took 137 ms
1

This is correct.

And this
=$ int a = 1;                                                                                took 0 ms

=$ int b = 3;                                                                                took 218 ms

=$ int c = a + b;                                                                                took 158 ms

=$                                                                                took 154 ms

=$                                                                                took 0 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 145 ms

=$                                                                                took 0 ms

=$                                                                                took 0 ms

=$ c =+ 1;                                                                                took 0 ms

=$ c                                                                                took 137 ms
1

This is correct.

I was trying out locally. Is the following an issue?

=$ int a = 4;                                                                                took 357 ms

=$ a                                                                                took 0 ms
4

=$ int b = 0;                                                                                took 0 ms

=$ a + b;                                                                                took 221 ms
4

=$ int c = a + b;                                                                                took 324 ms

=$                                                                                took 196 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 167 ms

=$ b = 3;                                                                                took 0 ms

=$ c                                                                                took 180 ms
4

This is correct. c should still refer to the old value of b

I was trying out locally. Is the following an issue?

=$ int a = 4;                                                                                took 357 ms

=$ a                                                                                took 0 ms
4

=$ int b = 0;                                                                                took 0 ms

=$ a + b;                                                                                took 221 ms
4

=$ int c = a + b;                                                                                took 324 ms

=$                                                                                took 196 ms

=$ c                                                                                took 0 ms
4

=$                                                                                took 167 ms

=$ b = 3;                                                                                took 0 ms

=$ c                                                                                took 180 ms
4

This is correct. c should still refer to the old value of b

=$ /q                                                                                took 284 ms
| Tree parsing failed: invalid token '/'
| /q;
|  ^
| Parsing aborted because of errors.

We should hide internal errors. Shall we create an issue to improve these?

=$ /q                                                                                took 284 ms
| Tree parsing failed: invalid token '/'
| /q;
|  ^
| Parsing aborted because of errors.

We should hide internal errors. Shall we create an issue to improve these?

Sure, that is actually not an internal error, but a syntax error. I think the error messages should be improved to show it as such. I created an issue for this #28066

Sure, that is actually not an internal error, but a syntax error. I think the error messages should be improved to show it as such. I created an issue for this #28066


Complement tests are trying to set a profile (displayname) now

Needs more proxy

Complement tests just won't work for this project.