add a field when submitting an expense to link that expense to a URL

Use cases:

submitting an expense for a PR contributed  (link the actual PR made)
submitting an expense for a meetup sponsorship (link to the thank you shout out on social media)
helps collectives to group expenses by project/category/event

I wonder what would be the right way to do that because the use case is different for each collective. Some will want to link it to a PR, others to a tweet, etc. It could also be linked to an expense category.
I'm worried of adding another field when not needed. Because it confuses people ("What am I supposed to enter here? What is a PR? What if I don't have one? If people don't know, they are afraid to press "submit").
Maybe we can have some customs settings for managing expenses at the collective level and host level (like expensePolicy).
E.g. in Collective.settings:
{
  "expenses": {
    "categories": [
      {
        "name": "Engineering",
        "description": "Invoices for engineering time",
        "metadata": [
          {
            "name": "pull-request",
            "type": "url",
            "multiple": true,
            "description": "Attach the link to a pull request"
          }
        ]
      },
      {
        "name": "Food",
        "description": "Food expenses, e.g. pizzas for meetup",
        "metadata": [
          {
            "name": "Picture",
            "description": "Please share a picture of the event",
            "type": "image",
            "multiple": true
          },
          {
            "name": "Social Media",
            "description": "Please share the URL of the tweet/facebook post",
            "type": "url"
          },
          {
            "name": "Event URL",
            "description": "Please share the URL of the event (on meetup/facebook/eventbrite or other)",
            "type": "url"
          }
        ]
      }
    ]
  }
}

We would store the response inExpense.data:
{
  "pull-request": ["https://github.com/opencollective/opencollective-api/pull/1316", "https://github.com/opencollective/opencollective-api/pull/1303"]
}

{
  "Social Media": "https://www.facebook.com/sysopspolska/photos/a.322474601528311.1073741830.318954778546960/378953452547092/",
  "event url": "https://www.meetup.com/SysOpsPolska/events/250062664/"
}

This will take some time to implement. It's not trivial. So it will have to be prioritized (and right now we are all quite busy on things). If we want to make it happen sooner, we could simply add a new URL field and make it clear in the description that it's optional.
I'd also love to take the opportunity to think about custom forms when becoming a member of a collective. It's a feature that has been asked a lot. People want to ask questions to new members to know more about them. Maybe that should be linked to a tier? Let's create another issue for that but it's quite related to this functionality.


Sweep: optimize this code

Sweep: organize it better so that it's easier to maintain. Bring it to the standard of the framework it is in.


Included Unit Test for Subscribe

Description of the PR

Inlcuded a unit test for Subscribe
Not included for error conditions as it will require mocking

PR Checklist

[x] All commits have a Developer Certificate of Origin (DCO) -- they are generated using -s flag to git commit.
[x] All new changes are covered by tests
[ ] If GraphQL schema is changed, make generate has been run
[ ] If collectsub protobuf has been changed, make proto has been run
[ ] All CI checks are passing (tests and formatting)
[ ] All dependent PRs have already been merged

I will include tests for the error cases in subsequent PRs.


setup netlify

Hey @danlopez00 can you work with Dan Kohn to get netlify and everything setup here, so the landscape can be previewed with people's PRs? it's too hard to dev right now

@caniszczyk in progress

complete. need to setup cname


Autopolyfiller?

Autopolyfiller is like Autoprefixer, but for JavaScript polyfills. It scans your code and applies only required polyfills. Live example.

I haven't really had much time to work on extra guides (with the large amount of work being done for v1.0.0) and won't for a while. @Grawl, If you find the time to create a PR for a guide on adding an autopolyfiller, I would greatly appreciate it.
Closing out.


Add tracking id for Google Analytics

Including in the header to follow the guidelines for async google analytics. It shouldn't block loading.

Seems the analytics is running a request now -
After:

Live site (without the changes) doesn't have the analytics request:


It is not possible to configure permission 'scan.read' with resource aquasec_permissions_sets

Hi all, I am configuring a new permission set via terraform and I tried to set the permission scan.read that relates to the following control on the UI:

I have found out about the scan.read permission via the data source aquasec_permissions_sets, so this permissions seems available in the API.
However when trying to create the following resource:
resource "aquasec_permissions_sets" "read_only" {
  name        = "read-only"
  description = "Permission Set with Read-Only permissions"
  author      = "terraform"
  ui_access   = true
  is_super    = false
  actions = [
    "image_assurance.read",
    "image_profiles.read",
    "network_policies.read",
    "runtime_policies.read",
    "acl_policies.read",
    "dashboard.read",
    "risk_explorer.read",
    "images.read",
    "risks.host_images.read",
    "functions.read",
    "enforcers.read",
    "containers.read",
    "services.read",
    "infrastructure.read",
    "risks.vulnerabilities.read",
    "risks.benchmark.read",
    "audits.read",
    "settings.read",
    "integrations.read",
    "registries_integrations.read",
    "scan.read",
    "gateways.read",
    "consoles.read",
    "web_hook.read",
    "incidents.read",
  ]
}

I get the following error after trying terraform apply (This error does not happen during terraform plan, just when trying to apply):
│ Error: Valid values for var: actions_list are ( dashboard.read, risks.vulnerabilities.read, risks.vulnerabilities.write, risks.host_images.read, risks.benchmark.read, risk_explorer.read, images.read, image_profiles.read, image_assurance.read, image_assurance.write, runtime_policies.read, runtime_policies.write, functions.read, gateways.read, secrets.read, audits.read, containers.read, enforcers.read, infrastructure.read, consoles.read, settings.read, network_policies.read, acl_policies.read,acl_policies.write, services.read, integrations.read, registries_integrations.read, web_hook.read, incidents.read )
By comparing the permissions from the error and the permissions I tried to configure scan.read is the offender. Why the provider does support scan.read if it is accepted by the API?
Thank you.
Terraform Version
Terraform v1.1.5
on darwin_arm64

provider registry.terraform.io/aquasecurity/aquasec v0.8.11

Affected Resource(s)

aquasec_permissions_sets

Hey @violiveira
Please try to use our latest provider version registry.terraform.io/aquasecurity/aquasec v0.8.12
Your issue should be solved there
Please update if we can close this issue

Yes, this issue is solved now.
Thank you for the quick response.


(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: failure
Commit: 4fd8e779bd9676a0645afd045fa3c2074b31160c
Commit Branch: dev
Commit Author: innerviewer

Auto-closing as build in this branch is successful now. Commit: 97949f4cc292cd5f9cee8117654c12595aac0cf5


[Discussion] Typing, tests, formatting, pre-commit

Hey guys,
(memphis-py==0.2.7)
I just finished deploying docker-compose demo, played with schema, produced and consumed messages.
I would like to contribute and learn project more. Are there any priorities or goals?
First thing i saw when I played with hello example was lacking of types. I see that sometimes bytearray is allowed something Union[bytearray, bytes] and etc, but
async def validate_msg(self, message):
        if self.connection.schema_updates_data[self.internal_station_name] != {}:
            schema_type = self.connection.schema_updates_data[self.internal_station_name]['type']
            if schema_type == "protobuf":
                message = self.validate_protobuf(message) # bytearray | Unknown
                return message
            elif schema_type == "json":
                message = self.validate_json_schema(message) # bytearray
                return message
            elif schema_type == "graphql":
                message = self.validate_graphql(message) # bytearray | bytes
                return message
        elif not isinstance(message, bytearray):
            raise MemphisSchemaError("Unsupported message type")
        else:
            return message

Also there is on line 802, but on line 29 we import from google.protobuf.message import Message (name conflict)
class Message:
    def __init__(self, message, connection, cg_name):
        self.message = message
        self.connection = connection
        self.cg_name = cg_name

Hi @msiwik-epruf, thanks for the willing jump in and start contribute this is awesome.
Regarding the first point - in case no schema is attached to the station only bytearray is allowed, but for the different schema data formats another types allowed. For example if you have a station with JSON schema attached you can send dict.
Regarding the second issue, this is indeed an issue and we will be glad. to see you fixing it and open a PR.
Regarding other things we would like to see on the Python side, are you familiar with Celery?

@idanasulinmemphis Hey,
Regarding the first point - in case no schema is attached to the station only bytearray is allowed, but for the different schema data formats another types allowed. For example if you have a station with JSON schema attached you can send dict.
Maybe here we can have some Union type to show which types are allowed and etc.
Regarding the second issue, this is indeed an issue and we will be glad. to see you fixing it and open a PR.
Ok
Regarding other things we would like to see on the Python side, are you familiar with Celery?
Yeah, but it depends on use case. Currently we use celery with multiple workers/ques for lot's of tasks

@msiwik-epruf so we actually want Memphis to be supported for the Celery package users, is it something you can work on?

+1 for type hints.
In a similar vein, I suggest that the library adopt the leading underscore convention for private or protected attributes in specific classes. For instance, attributes like headers.headers or message.message might be more intuitively named headers._headers or message._message. While it's ideal for everyone to thoroughly read the documentation before using the library, in practice, many developers experiment first and may be misled by their IDE's intellisense. By using a naming convention that more clearly indicates the attribute's intended visibility or scope, we can make the API more intuitive and reduce potential confusion.
I commented here instead of opening an issue as it felt in line with the discussion


No installation instruction for franka ros 2

Hello,
on your website https://frankaemika.github.io/docs/franka_ros2.html#installation
you link to your readme, which has no instruction on the installation.
Before there were instructions for local installation and via container.

Hi @LucasG2001 ,
good catch! Thanks! We forgot to push the last changes... no it should be there - can you please confirm?
Cheers,
Andreas

Yes it's on now, thank you!


How to extract JWT token data on resource server side?

I'm using JWT based auth server together with resource server (configured pretty much like in this example provided by @dsyer, two separate web app though).
On authorization server side I'm also enhancing the token by using JwtTokenEnhancer (adding some additional info about user etc.)
My question is, what is the recommended way to access that additional data on resource server side? It would be great if for example some filter would decode that data to SecurityContext. I tried to debug the code on auth server side and at least it looked like  additional info is also decoded to token (maybe you can confirm this :)), so it would be great to access that very same data on the "other" side too.

Hi, you have to set the verifierkey inside
    @Bean
    public JwtAccessTokenConverter tokenEnhancer() {

            jwtAccessTokenConverter.setVerifierKey(publicKey);

Event after reading all this I still couldn't figure out how to extract the additional info from the authentication object, without having to re-decode the token.
Finally I came up with the following solution: use a custom JWT token store that extracts the info during authentication, and use the Authentication details to store it. (which seemed to remain null anyway)
/**
 * Custom JWT token store that also reads the additional info and stores it as authentication details.
 */
public static class CustomJwtTokenStore extends JwtTokenStore {

    public CustomJwtTokenStore(JwtAccessTokenConverter jwtTokenEnhancer) {
        super(jwtTokenEnhancer);
    }

    @Override
    public OAuth2Authentication readAuthentication(OAuth2AccessToken token) {
        OAuth2Authentication oAuth2Authentication = super.readAuthentication(token);
        oAuth2Authentication.setDetails(token.getAdditionalInformation());
        return oAuth2Authentication;
    }
}

Then the resource server config:
@Configuration
@EnableResourceServer
public static class ResourceServer extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated();
    }

    @Override
    public void configure(ResourceServerSecurityConfigurer config) throws IOException {
        config.tokenServices(tokenServices());
    }

    @Bean
    public JwtAccessTokenConverter accessTokenConverter() throws IOException {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        Resource resource = new ClassPathResource("publickey.txt");
        String publicKey = IOUtils.toString(resource.getInputStream());
        converter.setVerifierKey(publicKey);
        return converter;
    }

    @Bean
    @Primary
    public DefaultTokenServices tokenServices() throws IOException {
        DefaultTokenServices defaultTokenServices = new DefaultTokenServices();
        defaultTokenServices.setTokenStore(tokenStore());
        return defaultTokenServices;
    }

    @Bean
    public TokenStore tokenStore() throws IOException {
        return new CustomJwtTokenStore(accessTokenConverter());
    }
}

Example to extract a "user_id" field:
@Override
public Optional<Authentication> getAuthentication() {
    return Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication());
}

@Override
public Optional<String> getCurrentUserId() {
    Optional<Authentication> authentication = getAuthentication();
    return authentication.map(a -> {
        OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) a.getDetails();
        return (String) ((Map) details.getDecodedDetails()).get("user_id");
    });
}

If someone knows a better way, I'd be interested to know!


Simple repository

This is a simple implementation of an in-memory repository for storing TOSCA files, artifacts, etc.
Adding persistence to file is straightforward.

May I ask why you haven't considered a NoSQL solution already available ?

Because when @fradandria asked for a repository two integration meetings ago, nobody replied anything. What already available solution do you suggest?

@andreaturli although I would agree on the technology you are proposing… Elastic search + (maybe) MongoDB. Here we are looking for something very simple to implement and integrate. Unfortunately we are aleady late...

@rosogon @fradandria  Writing and supporting our own key-value store instead of using any one of hundreds available is not going to save us any time.  Sure it gets it off the implementer's plate put it makes an untenable burden for the integrators and maintainers.
-1
for the following reasons:

Crazy idea to write our own KV store.
Also this does not have any tests.
And at runtime this does not provide persistence.

@andreaturli : I had not seen you had edited your comment.
elasticsearch is close to our needs, but it looks it only handles json documents, and we also need to store binary files. Are you sure elasticsearch is suitable for us? Will you be in charge of preparing the bom to launch this (or other) KV store so the other developers can use it?

Apache Brooklyn supports many nosql already: cassandra, couchbase, couchdb, crate, elasticsearch, mongo, redis, riak just to name some. For a complete list please have a look at Apache Brooklyn catalog and filter for nosql.
Pick one of them with a good java and javascript clients, maybe so we'll have for free a good KV store already supported by Apache Brooklyn. wdyt? Sounds good?

@andreaturli @ahgittin @rosogon Actually this is the issue with elasticsearch! AFAIK elasticsearch requires transform files in base64 encode before to store them. elasticsearch doesn't even allow to search binary files. I see we should use elasticsearch for storing AAL and DAM and Mongo for binary… or just MongoDB in any case we need to integrate them providing some logic on top…

Thanks, @andreaturli .
Again:

Which of those already supported by Brooklyn do you suggest?
Could you integrate it into the platform?

I think that in this moment, to avoid extra noise, this PR should be closed.


Updated all Router.push and Link tags to use the correct syntax

What
Modified every use for Router.push and Link that was incorrectly used, to the correct syntax
Why
Every page was throwing a 404 while navigating. This was preventing the Link tags from working as expected

Add yourself to our Contributors list!


Configurable fast scroll key - ALT clashes with menu behaviour on Windows

Currently, using ALT+scrollwheel on Windows to scroll fast has the side effect of VSCode entering keyboard navigation of the main app dropdown menus.
This makes the feature impractical to use, for example:

hold alt, scrollwheel quickly to another part of the document
while alt is still held, scroll back to where you were typing and release
start typing 🤦♂
you've selected who-knows-what from the app menu tree and have written nothing

Shift would be a much better choice, pressing shift on its own has no unwanted side effects, CTRL is already taken for scaling.

@Slakinov If you are using the custom title bar style (default on Windows), you can try this setting window.customMenuBarAltFocus to stop alt from taking focus. However, if you are using the native title bar, there is no workaround available besides disabling the menu bar itself. Assigning to @alexdima  for configurability


Inject task factory

Do not merge until this merged and then rebase: https://github.com/newrelic/newrelic-gradle-verify-instrumentation/pull/24
The problem is ProjectTaskFactory is being instantiated inside the class to be tested, so it is difficult to test. Now, it is being injected. The first commit injects but removes excludedVersions from constructor (fixed with second commit).
The second commit is adding a setExcludedVersions method to ProjectTaskFactory. This mimics the pattern of setPassesFile.

Ok, made all the suggested changes.


Support Service Binding Spec in  ODO LINK

Motivation
Service Binding spec evolved over the last months offering file based bindings.
This type of bindings are now first class citizens in Quarkus, Spring or Node.js and should be supported by ODO.
Old Env based bindings are still enabled by default so this change is not introducing any breaking/side effects.
What was done
This PR adds the following improvements:

Updates Service Binding version to 0.5.0 (paving the way for supporting latest changes and features)
Adds 2 new flags to enable new features of SBO and alignment with binding specification

Flags:
      --bindAsFiles          If present will mount service binding as files in /bindings folder
      --bindingName			 Name of the service binding object

Bind as files is defaulting to false for backwards compatibility, but according to the binding spec this should be default to true - it can be added later once we get official documentation/support in all starter apps.
Complete spec can be found here:
https://github.com/k8s-service-bindings/spec
Verification

Use new flags

odo link --bindAsFiles=true --bindingName=db  postgresDB

Go to container and list bound files

ls /bindings/db

What type of PR is this?
/kind feature
What does does this PR do / why we need it:
General improvements to ODO link command making it work with latest service binding features
Which issue(s) this PR fixes:
https://github.com/openshift/odo/issues/4505
https://github.com/openshift/odo/issues/4533
https://github.com/openshift/odo/issues/4534

CC @kadel

any reason why bindfiles shouldn't be true by default ?
@kadel @elsony this one would be great to see in !

/ok-to-test

@dharmit looking into this now

[ssh:Fedora 32] ++ echo '<<< Need parameter set to minikube or minishift >>>'
[ssh:Fedora 32] ++ exit 1

Do I need to setup something

@wtrocki thanks for the PR! There's one problem with the functionality.
When I use bindAsFiles=true, odo push fails (we need to push after doing odo link.) Looking at the events in the pod, I'm seeing:
$ odo link --bindAsFiles --bindingName=etcd EtcdCluster/example

$ odo push
odo push
 ✓  Waiting for component to start [7ms]

Validation
 ✓  Validating the devfile [29675ns]

Creating Kubernetes resources for component node-todo
 ✗  Waiting for component to start [5m] [WARNING x7: Failed]
 ✗  Failed to start component with name node-todo. Error: Failed to create the component: error while waiting for deployment rollout: timeout while waiting for node-todo deployment roll out\nFor more information to help determine the cause of the error, re-run with '-v'.
See below for a list of failed events that occured more than 5 times during deployment:

 NAME                                         COUNT  REASON  MESSAGE

 node-todo-bfdf95cf-6rggw.166e97fc5450b232    7      Failed  Error: secret "etcd" not found

The problem is Error: secret "etcd" not found. odo is trying to add a envFrom to the pod spec. And it's using the secret etcd because when you do odo link, it stores link info in .odo/env/env.yaml:
$ cat .odo/env/env.yaml
ComponentSettings:
  Name: node-todo
  Project: default
  AppName: app
  Link:
  - Name: etcd    <-----
    ServiceKind: EtcdCluster
    ServiceName: example
  RunMode: run

odo tries to find a secret by the same name etcd as we used in odo link. But it can't find it since SBO created a secret with a different name (Note: earlier SBO used to create a Secret with same name as we passed in the spec for the ServiceBinding):
$ kubectl get secrets
NAME                                            TYPE                                  DATA   AGE
etcd-da28a7aa8fd5664bb3177e64c9e4f692b1bd6e1f   Opaque                                1      6m

Should SBO create a Secret when using --bindAsFiles? Maybe we need to change the spec that we're creating while doing odo link? (I'm not sure since I don't know how this feature works.)
Also, this is a problem only when using bindAsFiles. If we only provide bindingName=etcd or don't provide any arguments proposed in this PR, odo push works just fine. So I think it's the files thing that's not functioning as expected.
Also, other than this functionality issue, we will need a few more things to take this PR ahead:

Integration tests
Validation of the name provided to --bindingName.
Update odo link example in docs under docs/public/operator-hub

[ssh:Fedora 32] ++ echo '<<< Need parameter set to minikube or minishift >>>'
[ssh:Fedora 32] ++ exit 1

Do I need to setup something

@wtrocki Please ignore all the failures for tests with PSI name in it. It's an issue on CI which we're trying to fix.

Integration tests

Test for odo link live under tests/integration/operatorhub/cmd_service_test.go.

I will look into push functionality.
Do you think I can abstract behaviour little bit so link and push will be more aligned?

Should SBO create a Secret when using --bindAsFiles?

It creates volume in the pod so users would be able to see all values and files.
My take is that when bindAsFiles is provided ODO push needs different handling to detect different way of binding. I will also add integration tests and docs

Do you think I can abstract behaviour little bit so link and push will be more aligned?

If user experience and/or overall flow is improving, changing the behaviour should be OK. WDYT @kadel?
But, what does "more aligned" mean here?

Should SBO create a Secret when using --bindAsFiles?

It creates volume in the pod so users would be able to see all values and files. Volume is created from secret so this should not differ.

Ah, OK. So a Secret is anytime mandatory. Thanks for explaining ! 👍🏾

My take is that when bindAsFiles is provided ODO push needs different handling to detect different way of binding.

Yes. I won't be surprised if you hit some bug or usability issue that's been around since some time but something that didn't get noticed.

But, what does "more aligned" mean here?

Ignore me here. Checked push implementation.
Adding some small changes will make this work

I have been thinking how to refactor this.
There have been many places where binding is used with assumptions that names are generated and env vars are checked. This needs to be extracted and values from bindings (exact name in CR) instead of computed names should be used. Started doing this but there is obviously a lot of work across different commands for this.

Progresss

[ ] Odo push support
[ ] Odo unlink support

:)

I put some thoughts into this. Maybe a form of simplification, we can remove name of the service binding as an option here (it will be actually less complex for end user) while still allowing users to bind things as files.
When custom name is removed both odo push and unlink will work without any changes, but actual binding will be created with file based links - which is what we looking.

I'm little bit confused because there are also other service bindings initializers that use kubernetes package instead of sbo: https://github.com/openshift/odo/blob/master/pkg/kclient/serviceCatalog.go#L193-L204
What is the story with this?

Created https://github.com/openshift/odo/pull/4549 to simplify merge as this kinda becomes little bit priority for me - I would love to have quick chat about the whole approach to custom binding names so we can eventually get both of those options done

@wtrocki This PR addresses the Secret name issue https://github.com/openshift/odo/pull/4554

Please rebase and update your PR to be against new default branch, main

We can close this PR
I will open a PR to address this soon.
/close


Allow network for ION to be set from config

Currently a type ION that implements Sidetree and is used in the resolver and elsewhere. It uses a const for the NETWORK so requires distinct types for testnet and mainnet that are determined at compile time. Instead it would be preferable to make the choice of network configurable at runtime.

[ ] Add "testnet" and "mainnet" features (default "testnet") for network choice at compile time


Location Settings : Location can not be deleted

i have a location that can not be deleted anymore(archive/unarchive works, transfer works too).

there is a definition in the documentation that it should not be possible to delete locations with session data but i don't think this one is related.

That looks about tight. You have data at that location.
The error message needs to be updated to reflect that better.

Thanks. We currently have some ! In the create and update actions to catch exceptions.
This mean the errors are not displaying right now. We'll be removing soon.

This was a problem with the backend messages.
We've now updated these which fixes the problem.
Please note, the fixes were implemented in a branch that may take a few days to merge.


on a new system pty is giving read EIO Use error and crashing the node process

The new system is Ubuntu running in chroot on Chrome OS so it could be a dependency issue. I am running code that has been in production on EC2 Ubuntu boxes for several months without problems.
That said from what I have ready this error isn't an error and just means the the process has closed its output stream. The problem seems to be the pty.js is interpreting this as an error and then crashing because the stream is closed.

I'm seeing the EIO error emitted at the close of each spawn, whether the command succeeded or not.
{ [Error: read EIO] code: 'EIO', errno: 'EIO', syscall: 'read' }

Having the error emitted at each close makes the error event less than useful; it's been the only error I've been able to generate.


List view crashing when scrolling

import 'package:flutter/material.dart';

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

/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      home: MyStatefulWidget(),
    );
  }
}

class MyStatefulWidget extends StatefulWidget {
  MyStatefulWidget({Key key}) : super(key: key);

  @override
  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Sample Code'),
      ),
      body: ListView(
        children: [
          Container(),//<-- Error occurs when scrolling
          for(int i=0; i<30; i++)
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text('Hello'),
          )
        ],
      ),
    );
  }
}

════════ Exception caught by rendering library ═════════════════════════════════
The method '-' was called on null.
Receiver: null
Tried calling: -(0.0)
The relevant error-causing widget was
    ListView
lib\main.dart:31
════════════════════════════════════════════════════════════════════════════════

HI
If I put an invisible widget or Container in the first of the ListView, an error occurs when scrolling.
My flutter version is 1.20.1

working fine in my case

This is the whole log because I have tried this example
The following assertion was thrown during performLayout():
'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=BUG.md

The relevant error-causing widget was
    ListView
When the exception was thrown, this was the stack
#2      new SliverGeometry
#3      RenderSliverList.performLayout
#4      RenderObject.layout
#5      RenderSliverEdgeInsetsPadding.performLayout
#6      RenderSliverPadding.performLayout
...
The following RenderObject was being processed when the exception was fired: RenderSliverList#87c46 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-COMPOSITING-BITS-UPDATE
RenderObject: RenderSliverList#87c46 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-COMPOSITING-BITS-UPDATE
    needs compositing
    parentData: paintOffset=Offset(0.0, 0.0) (can use size)
    constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.forward, scrollOffset: 131.4, remainingPaintExtent: 453.3, crossAxisExtent: 320.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 453.3, remainingCacheExtent: 834.7, cacheOrigin: -131.4)
    geometry: SliverGeometry(scrollExtent: 960.0, paintExtent: 453.3, maxPaintExtent: 960.0, hasVisualOverflow: true, cacheExtent: 703.3)
        scrollExtent: 960.0
        paintExtent: 453.3
        maxPaintExtent: 960.0
        hasVisualOverflow: true
        cacheExtent: 703.3
    currently live children: 0 to 30
    child with index 0: RenderIndexedSemantics#a1c2f relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=0; layoutOffset=None (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 0.0)
        index: 0
        child: RenderRepaintBoundary#b68b7 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 0.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderLimitedBox#23c10 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 0.0)
                maxWidth: 0.0
                maxHeight: 0.0
                child: RenderConstrainedBox#07370 NEEDS-PAINT
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=320.0, h=0.0)
                    size: Size(320.0, 0.0)
                    additionalConstraints: BoxConstraints(biggest)
    child with index 1: RenderIndexedSemantics#751f2 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=1; layoutOffset=0.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 1
        child: RenderRepaintBoundary#a681a relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#0cb59 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#2f290 relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 2: RenderIndexedSemantics#a739c relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=2; layoutOffset=32.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 2
        child: RenderRepaintBoundary#d0092 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#9fcab relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#fd605 relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 3: RenderIndexedSemantics#96fa7 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=3; layoutOffset=64.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 3
        child: RenderRepaintBoundary#3baeb relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#14746 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#59ecd relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 4: RenderIndexedSemantics#2b452 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=4; layoutOffset=96.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 4
        child: RenderRepaintBoundary#f71d2 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#62244 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#093ff relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 5: RenderIndexedSemantics#0ab22 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=5; layoutOffset=128.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 5
        child: RenderRepaintBoundary#73454 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#db76d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#fa172 relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 6: RenderIndexedSemantics#81236 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=6; layoutOffset=160.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 6
        child: RenderRepaintBoundary#56522 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#f53ed relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#d5d24 relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 7: RenderIndexedSemantics#6608b relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=7; layoutOffset=192.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 7
        child: RenderRepaintBoundary#5e276 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#d1d29 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#2c2cd relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 8: RenderIndexedSemantics#eba68 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: index=8; layoutOffset=224.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 8
        child: RenderRepaintBoundary#c6050 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            size: Size(320.0, 32.0)
            usefulness ratio: no metrics collected yet (never painted)
            child: RenderPadding#342a3 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#da4d3 relayoutBoundary=up6 NEEDS-PAINT
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 9: RenderIndexedSemantics#77c67 relayoutBoundary=up3
        needs compositing
        parentData: index=9; layoutOffset=256.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 9
        child: RenderRepaintBoundary#c3fb1 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#b4881 DETACHED
                engine layer: OffsetEngineLayer#e7aa6
                offset: Offset(0.0, 42.7)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#7edf1 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#45d4e relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 10: RenderIndexedSemantics#844b2 relayoutBoundary=up3
        needs compositing
        parentData: index=10; layoutOffset=288.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 10
        child: RenderRepaintBoundary#e1099 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#4b67e DETACHED
                engine layer: OffsetEngineLayer#8411a
                offset: Offset(0.0, 74.7)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#3911f relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#353ce relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 11: RenderIndexedSemantics#62569 relayoutBoundary=up3
        needs compositing
        parentData: index=11; layoutOffset=320.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 11
        child: RenderRepaintBoundary#aa4e4 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#94b10 DETACHED
                engine layer: OffsetEngineLayer#7fc17
                offset: Offset(0.0, 106.7)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#0031c relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#5ef75 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 12: RenderIndexedSemantics#6fa52 relayoutBoundary=up3
        needs compositing
        parentData: index=12; layoutOffset=352.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 12
        child: RenderRepaintBoundary#381d8 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#cc440 DETACHED
                engine layer: OffsetEngineLayer#c6e31
                offset: Offset(0.0, 138.7)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#1ff41 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#d4bb9 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 13: RenderIndexedSemantics#aa0fe relayoutBoundary=up3
        needs compositing
        parentData: index=13; layoutOffset=384.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 13
        child: RenderRepaintBoundary#faf04 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#cf64a DETACHED
                engine layer: OffsetEngineLayer#aa5d1
                offset: Offset(0.0, 170.7)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#d3ea2 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#34239 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 14: RenderIndexedSemantics#e5d43 relayoutBoundary=up3
        needs compositing
        parentData: index=14; layoutOffset=416.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 14
        child: RenderRepaintBoundary#16953 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#6f03b DETACHED
                engine layer: OffsetEngineLayer#1ea76
                offset: Offset(0.0, -17.3)
            size: Size(320.0, 32.0)
            metrics: 80.0% useful (1 bad vs 4 good)
            diagnosis: this is a useful repaint boundary and should be kept
            child: RenderPadding#c8abb relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#7a954 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 15: RenderIndexedSemantics#c0cf7 relayoutBoundary=up3
        needs compositing
        parentData: index=15; layoutOffset=448.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 15
        child: RenderRepaintBoundary#f2960 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#08233 DETACHED
                engine layer: OffsetEngineLayer#8a9d8
                offset: Offset(0.0, 14.7)
            size: Size(320.0, 32.0)
            metrics: 80.0% useful (1 bad vs 4 good)
            diagnosis: this is a useful repaint boundary and should be kept
            child: RenderPadding#42889 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#0a147 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 16: RenderIndexedSemantics#784d4 relayoutBoundary=up3
        needs compositing
        parentData: index=16; layoutOffset=480.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 16
        child: RenderRepaintBoundary#f8888 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#13c51
                engine layer: OffsetEngineLayer#f3b32
                offset: Offset(0.0, -26.7)
            size: Size(320.0, 32.0)
            metrics: 80.0% useful (1 bad vs 4 good)
            diagnosis: this is a useful repaint boundary and should be kept
            child: RenderPadding#258e5 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#b48a4 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 17: RenderIndexedSemantics#c4d84 relayoutBoundary=up3
        needs compositing
        parentData: index=17; layoutOffset=512.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 17
        child: RenderRepaintBoundary#76fb8 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#c603d
                engine layer: OffsetEngineLayer#fa1a4
                offset: Offset(0.0, 5.3)
            size: Size(320.0, 32.0)
            metrics: 80.0% useful (1 bad vs 4 good)
            diagnosis: this is a useful repaint boundary and should be kept
            child: RenderPadding#915dc relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#b2010 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 18: RenderIndexedSemantics#f4a15 relayoutBoundary=up3
        needs compositing
        parentData: index=18; layoutOffset=544.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 18
        child: RenderRepaintBoundary#ab443 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#f45c2
                engine layer: OffsetEngineLayer#728b2
                offset: Offset(0.0, 37.3)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#578e9 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#7f809 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 19: RenderIndexedSemantics#d9561 relayoutBoundary=up3
        needs compositing
        parentData: index=19; layoutOffset=576.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 19
        child: RenderRepaintBoundary#89e31 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#168e0
                engine layer: OffsetEngineLayer#db93d
                offset: Offset(0.0, 69.3)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#c63f7 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#98175 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 20: RenderIndexedSemantics#14420 relayoutBoundary=up3
        needs compositing
        parentData: index=20; layoutOffset=608.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 20
        child: RenderRepaintBoundary#86a52 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#91725
                engine layer: OffsetEngineLayer#7acf3
                offset: Offset(0.0, 101.3)
            size: Size(320.0, 32.0)
            metrics: 75.0% useful (1 bad vs 3 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#71dfb relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#d8b2a relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 21: RenderIndexedSemantics#9ed6a relayoutBoundary=up3
        needs compositing
        parentData: index=21; layoutOffset=640.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 21
        child: RenderRepaintBoundary#e28eb relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#e726f
                engine layer: OffsetEngineLayer#e5db7
                offset: Offset(0.0, 133.3)
            size: Size(320.0, 32.0)
            metrics: 66.7% useful (1 bad vs 2 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#b9d36 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#2be91 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 22: RenderIndexedSemantics#acd9f relayoutBoundary=up3
        needs compositing
        parentData: index=22; layoutOffset=672.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 22
        child: RenderRepaintBoundary#96317 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#2aea9
                engine layer: OffsetEngineLayer#83dc5
                offset: Offset(0.0, 165.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#7b7d6 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#ac2c0 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 23: RenderIndexedSemantics#1f07b relayoutBoundary=up3
        needs compositing
        parentData: index=23; layoutOffset=704.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 23
        child: RenderRepaintBoundary#16abb relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#aad83
                engine layer: OffsetEngineLayer#03796
                offset: Offset(0.0, 197.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#99212 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#bf766 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 24: RenderIndexedSemantics#b39ab relayoutBoundary=up3
        needs compositing
        parentData: index=24; layoutOffset=736.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 24
        child: RenderRepaintBoundary#28837 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#17275
                engine layer: OffsetEngineLayer#f5702
                offset: Offset(0.0, 229.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#92d99 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#40745 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 25: RenderIndexedSemantics#8722e relayoutBoundary=up3
        needs compositing
        parentData: index=25; layoutOffset=768.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 25
        child: RenderRepaintBoundary#de239 relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#7d5bd
                engine layer: OffsetEngineLayer#b16f2
                offset: Offset(0.0, 261.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#fed36 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#b9a00 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 26: RenderIndexedSemantics#852bf relayoutBoundary=up3
        needs compositing
        parentData: index=26; layoutOffset=800.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 26
        child: RenderRepaintBoundary#dab5e relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#df422
                engine layer: OffsetEngineLayer#63cfc
                offset: Offset(0.0, 293.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#d0dcc relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#71d6e relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 27: RenderIndexedSemantics#7bbac relayoutBoundary=up3
        needs compositing
        parentData: index=27; layoutOffset=832.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 27
        child: RenderRepaintBoundary#7272d relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#b2fd6
                engine layer: OffsetEngineLayer#cfa8c
                offset: Offset(0.0, 325.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#6291c relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#a67d7 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 28: RenderIndexedSemantics#a6bcf relayoutBoundary=up3
        needs compositing
        parentData: index=28; layoutOffset=864.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 28
        child: RenderRepaintBoundary#ea62e relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#88b60
                engine layer: OffsetEngineLayer#38cbf
                offset: Offset(0.0, 357.3)
            size: Size(320.0, 32.0)
            metrics: 50.0% useful (1 bad vs 1 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#666ad relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#beaf4 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 29: RenderIndexedSemantics#d27a2 relayoutBoundary=up3
        needs compositing
        parentData: index=29; layoutOffset=896.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 29
        child: RenderRepaintBoundary#2628f relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#0e45d
                engine layer: OffsetEngineLayer#5b9ac
                offset: Offset(0.0, 389.3)
            size: Size(320.0, 32.0)
            metrics: 0.0% useful (1 bad vs 0 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#9d82e relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#e1e0d relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
    child with index 30: RenderIndexedSemantics#b82c3 relayoutBoundary=up3
        needs compositing
        parentData: index=30; layoutOffset=928.0 (can use size)
        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
        semantic boundary
        size: Size(320.0, 32.0)
        index: 30
        child: RenderRepaintBoundary#6beea relayoutBoundary=up4
            needs compositing
            parentData: <none> (can use size)
            constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
            layer: OffsetLayer#60324
                engine layer: OffsetEngineLayer#617dd
                offset: Offset(0.0, 421.3)
            size: Size(320.0, 32.0)
            metrics: 0.0% useful (1 bad vs 0 good)
            diagnosis: insufficient data to draw conclusion (less than five repaints)
            child: RenderPadding#3b2c6 relayoutBoundary=up5
                parentData: <none> (can use size)
                constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
                size: Size(320.0, 32.0)
                padding: EdgeInsets.all(8.0)
                textDirection: ltr
                child: RenderParagraph#7e2e1 relayoutBoundary=up6
                    parentData: offset=Offset(8.0, 8.0) (can use size)
                    constraints: BoxConstraints(w=304.0, 0.0<=h<=Infinity)
                    size: Size(304.0, 16.0)
                    textAlign: start
                    textDirection: ltr
                    softWrap: wrapping at box width
                    overflow: clip
                    locale: en_US
                    maxLines: unlimited
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
The method '-' was called on null.
Receiver: null
Tried calling: -(131.35742187499994)
The relevant error-causing widget was
    ListView
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true.
The relevant error-causing widget was
    ListView
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
The method '-' was called on null.
Receiver: null
Tried calling: -(186.21075196730754)
The relevant error-causing widget was
    ListView
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
'package:flutter/src/rendering/sliver.dart': Failed assertion: line 556 pos 15: 'scrollOffsetCorrection != 0.0': is not true.
The relevant error-causing widget was
    ListView
════════════════════════════════════════════════════════════════════════════════
E/flutter (  556): [ERROR:flutter/lib/ui/ui_dart_state.cc(171)] Unhandled Exception: NoSuchMethodError: The method '-' was called on null.
E/flutter (  556): Receiver: null
E/flutter (  556): Tried calling: -(0.0)
E/flutter (  556): #0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:51:5)
E/flutter (  556): #1      RenderSliverMultiBoxAdaptor.childMainAxisPosition
E/flutter (  556): #2      RenderSliverHelpers.hitTestBoxChild
E/flutter (  556): #3      RenderSliverMultiBoxAdaptor.hitTestChildren
E/flutter (  556): #4      RenderSliver.hitTest
E/flutter (  556): #5      SliverHitTestResult.addWithAxisOffset
E/flutter (  556): #6      RenderSliverEdgeInsetsPadding.hitTestChildren
E/flutter (  556): #7      RenderSliver.hitTest
E/flutter (  556): #8      RenderViewportBase.hitTestChildren.<anonymous closure>
E/flutter (  556): #9      BoxHitTestResult.addWithRawTransform
E/flutter (  556): #10     BoxHitTestResult.addWithPaintTransform
E/flutter (  556): #11     RenderViewportBase.hitTestChildren
E/flutter (  556): #12     RenderBox.hitTest
E/flutter (  556): #13     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #14     RenderBox.hitTest
E/flutter (  556): #15     RenderIgnorePointer.hitTest
E/flutter (  556): #16     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #17     RenderBox.hitTest
E/flutter (  556): #18     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #19     RenderProxyBoxWithHitTestBehavior.hitTest
E/flutter (  556): #20     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #21     RenderBox.hitTest
E/flutter (  556): #22     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #23     RenderProxyBoxWithHitTestBehavior.hitTest
E/flutter (  556): #24     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #25     RenderBox.hitTest
E/flutter (  556): #26     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #27     RenderBox.hitTest
E/flutter (  556): #28     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #29     RenderCustomPaint.hitTestChildren
E/flutter (  556): #30     RenderBox.hitTest
E/flutter (  556): #31     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #32     RenderBox.hitTest
E/flutter (  556): #33     RenderBoxContainerDefaultsMixin.defaultHitTestChildren.<anonymous closure>
E/flutter (  556): #34     BoxHitTestResult.addWithPaintOffset
E/flutter (  556): #35     RenderBoxContainerDefaultsMixin.defaultHitTestChildren
E/flutter (  556): #36     RenderCustomMultiChildLayoutBox.hitTestChildren
E/flutter (  556): #37     RenderBox.hitTest
E/flutter (  556): #38     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #39     RenderBox.hitTest

════════ Exception caught by rendering library ═════════════════════════════════
The method '-' was called on null.
Receiver: null
Tried calling: -(0.0)
The relevant error-causing widget was
    ListView
════════════════════════════════════════════════════════════════════════════════
E/flutter (  556): #40     RenderProxyBoxMixin.hitTestChildren
E/flutter (  556): #41     RenderBox.hitTest (package:flutt

same issue here
is happening to me just after upgrade to 1.20.1

Closing since this was fixed in https://github.com/flutter/flutter/pull/62615 and is being reviewed for a cherrypick to 1.20. Please follow up on https://github.com/flutter/flutter/issues/62198 for updates on this.


Cluster-autoscaler for K8s v1.3

This is an umbrella bug for coding efforts required to finish cluster autoscaler for kubernetes 1.3.

cc: @piosz @fgrzadkowski

All work for 1.3 is complete.


Provide API guide for Puhuri Service Providers

We can merge it for now, additional sections will be added with a separate MR


fix e2e tests for nachhaltigkeit

something changed and the test is breaking - previous fix was not enough ...

now it's working ... where is the flakiness coming from?

recommanded articles are interfering


Importing regular (not bootstrapped) keys

I tried to use standard octez-client import secret key and it works but after that any injections just getting stuck waiting for inclusion. I use TezBox to test our remote signer implementation and it's not always convenient to use bootstrapped accounts list for that. At least because it require full public key and not just it's hash.

Interesting find. I will look into that.

Hi please try with latest images. 🙏🏻


Foreach loop & parameter list fix

Foreach with $null doesn't evaluate the body anymore
Parameter list with multiple default values work now
Before, a parameter list like this param($a=1,$b) as parsed like an array literal as in param($a=(1,$b)), which is obviously wrong. Array literals aren't allowed in parameter lists without braces to avoid ambiguities. Therefore I made parsing of the array literals context sensitive by introducing implicit symbols and a custom action.

These commits fix #368 and #367

Travis is currently failing with 2 mono versions because it can not set them up. There is some build environment update scheduled for today, so I will trigger the build again once the update is finished.


cmd/stringer: Optional flags toupper/tolower to convert names to upper/lower case

Added two flags to optionally convert the generated constant names to upper or lower case.
Not sure if this is within the scope of stringer or not. But I have encountered multiple occasions where this could be useful.

@googlebot I signed it!

I just realised/understood what -linecomment does. And changing the case can be achieved by using it. But I feel a flag would be a better way to do this.


Support react13 beta

@redonkulus @mridgway @edword
Wanted to use >=0.12.0 <=0.13.0, unfortunately npm v2.0 does not consider 0.13.0-beta.2 is in that range, even though npm v1.0 thinks it is ok.  Will need to bump upper limit once React 0.13.0 gets released.

CLA is valid!

Changes Unknown when pulling ece9eaef64d1100f9ca9e1ad40931a3e4f1b2e92 on supportReact13Beta into ** on master**.

:shipit:


Pinned GSL to 1.16 for compatability with bioconda.

Seeing if 1.16 doesn't need openblas as well.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [36, 46]

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [38, 48]

@conda-forge-admin, please lint

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Make chart idempotent.

Pull Request Checklist

[ ] Description: Fix problem that makes deployment fail when the chart is upgraded and storageClass is not configured, probably because you want to use default storageClass
[ ] Changelog: Done
[ ] Documentation: No documentation
[ ] Dependencies: No dependencies

Description
Fix this problem when helm upgrade --install is launched twice:
Error: UPGRADE FAILED: cannot patch "open-webui" with kind PersistentVolumeClaim: PersistentVolumeClaim "open-webui" is invalid: spec: Forbidden: spec is immutable after creation except resources.requests for bound claims
  core.PersistentVolumeClaimSpec{
  	... // 2 identical fields
  	Resources:        {Requests: {s"storage": {i: {...}, s: "2Gi", Format: "BinarySI"}}},
  	VolumeName:       "pvc-6316c4dc-cc28-44bc-96cc-8717f9015b9e",
- 	StorageClassName: &"microk8s-hostpath",
+ 	StorageClassName: nil,
  	VolumeMode:       &"Filesystem",
  	DataSource:       nil,
  	DataSourceRef:    nil,
  }

Changelog Entry
Fixed

pvc management is not idempotent

Changed

Force storageClass name only if is configured in values.yaml

Thanks!


Task lists (checkbox) feature rendered in GFMs by Github API

I know this is a known issue as mentioned in README.md and I'm aware that this issue is referenced here
However, the API seems to be working with the expected behavior (contacted support@github.com). Here's what I'm seeing:
$ curl https://api.github.com/markdown -X POST -d '{"mode":"gfm", "text":"- [ ] foo\n- [x] bar"}'

<input type="checkbox" class="task-list-item-checkbox" disabled> foo

<input type="checkbox" class="task-list-item-checkbox" checked disabled> bar

Notice that the task list input was converted to checkboxes in the output HTML.
So, where are we still stuck at?

Maybe they fixed it?
Could you try it without "mode":"gfm"? "GFM" is reserved for issues and comments. The problem from before is that checkboxes aren't rendered in "Readme" mode.

Here's what I saw.
Rendering with gfm works, like you've pointed out:
>>> print(requests.post('https://api.github.com/markdown', data=json.dumps({'mode': 'gfm', 'text': '- [ ] foo\n- [x] bar'})).text)

<input type="checkbox" class="task-list-item-checkbox" disabled> foo

<input type="checkbox" class="task-list-item-checkbox" checked disabled> bar

Rendering Readmes (i.e. not gfm) is what's broken:
>>> print(requests.post('https://api.github.com/markdown', data=json.dumps({'text': '- [ ] foo\n- [x] bar'})).text)

[ ] foo

[x] bar

This is the Markdown API bug.

Thanks for the update and for pinging Github about this, @tejasshah93.
Closing for now. We can continue the conversation in https://github.com/isaacs/github/issues/309.

@joeyespo yes indeed. Didn't look up earlier that "gfm" mode is only meant for user-content.
So basically, it works for the "gfm" mode but it's still broken for the default mode ("markdown") used for READMEs as you mentioned.
I've pinged the support regarding this too. Let's see what unfolds accordingly.
Thanks for the clarification.


HttpResponse: better error message when json is corrupt

Currently, if the json string received from a _get is corrupt and
can't be converted, the json package raises a cryptic message about
extra data, but doesn't provide the bad string.
Catch that exception and raise an error with more detail about what
went wrong and the full string that was being loaded.
This doesn't fix osbs-5424, but will hopefully make it easier to
determine what went wrong the next time someone sees a similar failure.
Signed-off-by: Mark Langsdorf<EMAIL_ADDRESS>

Updated draft release notes:

Report a better error message when JSON received in an HTTP response is corrupt


Potentially exploitable portal spawning

When two portals are built next to each other, they could potentially be exploited for spawining in resources

Going back and forth through one portal and respawning the other portal with arrow (for a little bit, it did not let me though the second one after breaking the overworld side, but shooting an arrow still spawned in more portals. the problem with going through was probably caused by something else though), generating a tower of amethyst, copper and gold ready to mine

Not sure what to suggest, maybe borrowing from nether portal spawning and seeking (if there is a portal close by, teleport to it instead of creating a new one)

I enhanced how portal position is calculated, now portal will search for tile entities instead of blocks and will do it in 3x3 chunk area, so portal will not duplicate itself anymore. Destination portal will be selected randomly, so it will be hard to exploit it for fast travel

Should be fixed in 0.3.0


Issue about ConnectInstaller

Dear Sir, hope you well , I have some questions,
when I check ConnectInstaller status through below code,  asperaInstaller.showDownload()  executed, but

"Step 1" show extention has been installed? but actually I didn't install extention
when I click Install Connect, nothing happened.
can I specify the version of Connect ? now it shows {3.9.1}

 const checkAsperaConnectStatus = () => {
        asperaUploadClient = new Connect({ connectMethod: 'http' });
        asperaInstaller = new ConnectInstaller({
            sdkLocation: '//d3gcli72yxqn2z.cloudfront.net/connect/v4'
        });

        asperaUploadClient.addEventListener(Connect.EVENT.STATUS, statusEventListener);
        asperaUploadClient.initSession();
    }

    const statusEventListener = function (eventType, data) {
        if (eventType === Connect.EVENT.STATUS && data === Connect.STATUS.INITIALIZING) {
            console.log('Aspera Connect Client is initializing');
            asperaInstaller.showLaunching();
        } else if (eventType === Connect.EVENT.STATUS && data === Connect.STATUS.FAILED) {
            console.log('Aspera Connect Client failed to load');
            asperaInstaller.showDownload();
        } else if (eventType === Connect.EVENT.STATUS && data === Connect.STATUS.OUTDATED) {
            console.log('Aspera Connect Client is Outdated');
            asperaInstaller.showUpdate();
        } else if (eventType === Connect.EVENT.STATUS && data === Connect.STATUS.RUNNING) {
            console.log('Aspera Connect Client is now Running');
            asperaInstaller.connected();
            asperaUploadClient.removeEventListener(Connect.EVENT.STATUS, statusEventListener);
        }
    };

Tracking the UI update for the HTTP strategy as described in (1) above in #18.

Hi @dwosk , I found what caused mu issue, after read https://github.com/IBM/aspera-connect-sdk-js/blob/main/MIGRATION.md ,  My library version is NPM source v5.0.0-pre.1 , but the code method is  v4 (reference the example codes)  ,  now i change code to below, it works fine.
asperaUploadClient = new Connect({});
         asperaInstaller = new ConnectInstaller({});

Ok great, glad the migration guide was able to clarify things. You can omit the empty objects when instantiating the classes to simplify things further:
asperaUploadClient = new Connect();
asperaInstaller = new ConnectInstaller();


Replace ApplicationMessageSkippedHandler with event in ManagedClient

Describe your question
In version 4 the handlers were replaced by async events. However, one handler has remained here. Was it meant that way? Otherwise, the handler is to be replaced by an event.
https://github.com/dotnet/MQTTnet/blob/626baa7bb5028199588090a6358e962fdae3c084/Source/MQTTnet.Extensions.ManagedClient/IManagedMqttClient.cs#L24
Which project is your question related to?

ManagedClient

Thanks for the feedback. This and other events are not yet migrated since 4.0 is still in development. Please checkout the MyGet feed with latest changes. I just migrated them so that an updated nuget will be available soon.


Blaze Components package explorer

We could make a site which would be a simple package explorer for Meteor packages which provide Blaze Components. There is an API.
It would be great if we could put into Meteor package metadata somehow a way to display an example of a component automatically in the list. So that it would be more like a gallery of components one can browse through. Buttons, tabs, dialogs, you name it.
Of course this app should be written using Blaze Components. :-)

:+1:

There's an open-source meteor package search powered by Algolia which has a free plan for community projects.
I made a quick fork  and prefixed the query with blaze component.
It works well, we could just manually omit packages from the results if they aren't blaze components.

This looks cool. How could we detect which packages are not Blaze Components?
So one idea is as I described in https://github.com/meteor/meteor/issues/4267, allowing people to add some custom metadata.
How could we show the preview of the component? What I imagine is that it should be a package explorer, but component explorer. So if a package provides multiple components, all components should be listed as a search result. So search results would be two columns. Left one would be preview. And the right one would be short instruction how to use it (which package to add, what is the name of component to include in the template/name of the component class/exported symbol).
How we could do such previews? Load all packages and render them? Put them into iframes and publish for each a simple Meteor app which just render a preview of a component?

Or maybe just ask component developers to provide a screenshot. :-) And a possible link to a demo site.

I made this simple site: http://components-explorer.meteor.com/ :-)

    'dependencies.peerlibrary:blaze-components':
      $exists: true

nice!

We should probably do such search recursively (so packages which depend on packages which depend on peerlibrary:blaze-components), but it is OK for now. :-)
Also, probably not all packages will provide components.
We should find a way now to describe which components are in the package. Maybe we could simply have a standard format one should use in README file before first and second heading which is then parsed by Meteor?

offthegrass:testing123

Skeptic! :-)

very cool. I'm wrapping all my components in packages anyway, but yes you're right.

Current code for explorer: https://github.com/peerlibrary/meteor-blaze-components-explorer