Improve pbf parser performance

This should speedup pbf parsing by about 10%

#2191 reduced parsing duration for my test dataset from 74s to 50s. With the changes of this PR we're down to about 38s.

Fixes #2197

Do you know the underlying reason of the speed up?

Most of the commits aim to reduce object creation and collection resizes which are both costly operations if they're often repeated.
https://github.com/graphhopper/graphhopper/pull/2193/commits/0f376c6de76cfe2b6be1ff2541490410cbafb8d2 tries to avoid additional lookups in the tree by passing through internal IDs from previous lookups.
https://github.com/graphhopper/graphhopper/pull/2193/commits/16eb7166cd93a89491f1e55661aaba4991ac87e7 follows the OSM pbf spec as we only need to process one typ of object within a PrimitiveGroup.

Is there any reason we keep ReaderNode.getEle() ? It's an ugly hack within setTag and isn't really used for routing.

@karussell i removed the node skipping logic as it was quite an invasive change with little benefit. Also removed the elevation handling from the reader.

@karussell any remarks? I'd like to get this merged as my other parsing related PRs are based on this.

Could you please update this to latest master?

@easbar done :)

I did not look at the code yet, but I can confirm that this branch is faster and the numbers of nodes and edges stays the same. For germany-190101.osm.pbf I got:
#master:
com.graphhopper.reader.osm.OSMReader - time pass1:114s, pass2:198s, total:312s
#this branch:
com.graphhopper.reader.osm.OSMReader - time pass1:109s, pass2:178s, total:288s

Thanks for testing :smiley:
https://github.com/graphhopper/graphhopper/pull/2205 should yield even better result while improving the readability of the code

In general it is not clear which change is only a refactoring or a clean up and which is to improve performance - can you move the unrelated changes into a separate PR?

0f376c6 tries to avoid additional lookups in the tree by passing through internal IDs from previous lookups.

The OSMReader is already a complicated mess ;) so I would try to avoid making it worse. And the "graphIndex" would add to this. Is this required for the speed up? I would really like to clean up and/or refactor OSMReader to make it faster, but readability and maintainability should be a higher priority now that reading PBFs is acceptable fast (and usually only a small part when CH or LM is involved).

16eb716 follows the OSM pbf spec as we only need to process one typ of object within a PrimitiveGroup.

Is this required for the speed up?

#2205 should yield even better results while improving the readability of the code

What is the reason you drop support for XML in #2205? And if this is done it should be done in a separate PR. In general smaller PRs can be merged faster :)

In general it is not clear which change is only for refactoring (or clean up) and which is to improve performance - can you move the unrelated changes into a separate PR?

Sure

The OSMReader is already a complicated mess ;)

Agreed :sweat_smile:

so I would try to avoid making it worse. And the "graphIndex" would add to this. Is this required for the speed up?

See #2194 for more details. It was an attempt to reduce the number of lookups.

I would really like to clean up and/or refactor OSMReader to make it faster, but readability and maintainability should be a higher priority now that reading PBFs is acceptable fast (and usually only a small part when CH or LM is involved).

Fair point. I'm going to remove it.

16eb716 follows the OSM pbf spec as we only need to process one typ of object within a PrimitiveGroup.

Is this required for the speed up?

Just a minor bugfix. I will move it to a separate PR.

What is the reason you drop support for XML in #2205?

The current implementation has to deal with both formats which leaves little room for optimizations and makes the code less readable. e.g osm2pgsql requires all imported pbfs to be sorted by type and id now. If we follow their requirement it could help us to improve #2194
See also our discussion in https://github.com/graphhopper/graphhopper/issues/2130
Anybody who wants to import XML files can still convert them with tools like osmconvert or osmium.

And if this is done it should be done in a separate PR. In general smaller PRs can be merged faster :)

It's in fact already a separate branch but i haven't created PR.

I ran master vs this branch a few more times:
# master
2020-12-13 15:48:08.522 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:180s, pass2:280s, total:460s
2020-12-13 15:57:45.614 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:178s, pass2:283s, total:462s
2020-12-13 16:07:44.938 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:187s, pass2:296s, total:483s
2020-12-13 16:17:48.119 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:191s, pass2:292s, total:483s
2020-12-13 16:27:18.800 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:175s, pass2:279s, total:455s
2020-12-13 16:37:04.125 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:181s, pass2:287s, total:469s
2020-12-13 16:46:39.075 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:280s, total:459s
2020-12-13 16:56:11.371 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:276s, total:455s
2020-12-13 17:05:46.935 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:281s, total:461s
2020-12-13 17:15:35.966 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:189s, pass2:282s, total:471s
2020-12-13 17:25:14.669 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:281s, total:460s
2020-12-13 17:34:50.932 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:278s, total:458s
# speedup_pbf
2020-12-13 09:48:14.702 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:170s, pass2:264s, total:434s
2020-12-13 09:57:27.834 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:170s, pass2:268s, total:438s
2020-12-13 10:06:51.245 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:179s, pass2:268s, total:447s
2020-12-13 10:16:08.205 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:173s, pass2:268s, total:441s
2020-12-13 10:25:36.795 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:177s, pass2:273s, total:451s
2020-12-13 10:34:49.561 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:170s, pass2:267s, total:437s
2020-12-13 10:44:07.813 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:174s, pass2:268s, total:442s
2020-12-13 10:53:29.824 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:172s, pass2:272s, total:445s
2020-12-13 11:02:47.947 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:172s, pass2:269s, total:441s
2020-12-13 11:12:28.436 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:182s, pass2:281s, total:463s
2020-12-13 11:21:45.686 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:171s, pass2:270s, total:441s
2020-12-13 11:31:05.948 [main] INFO  com.graphhopper.reader.osm.OSMReader - time pass1:174s, pass2:270s, total:444s

The speedup seems like less than 10%? I was trying to check whether all the commits yield an improvement or if some are more crucial than others, but this wasn't very clear, because the differences were rather small.

The current implementation has to deal with both formats which leaves little room for optimizations and makes the code less readable. e.g osm2pgsql requires all imported pbfs to be sorted by type and id now. If we follow their requirement it could help us to improve #2194

I agree that having less different input (same for output) formats potentially leads to better maintainability and does not have many drawbacks especially when there are good tools to do the conversion. However, regarding pbf/xml OSM I wish we can keep xml support at least for tests, because binary pbf files are hard to track in git and harder to work with. Can we e.g. keep osmosis (its Java) as test dependency such that we can keep some small OSM xml files and convert them on the fly for tests (assuming our OSMReader only supports pbf in the future)? Or use osmium or some other tool and do the conversion as a pre-build step when running the tests.

binary pbf files are hard to track in git

Git and binary files doesn't mix well but at least our test cases are tiny and usually added once without any further updates to their content.

and harder to work with.

If someone really wants to track down a bug and needs to examine the pbf:
osmium cat -f osm map-bug432.osm.pbf

I'm not sure if it's worth the hassle to do the conversion step for each unittest run if these files are rarely modified or even looked at.

I'm not sure if it's worth the hassle to do the conversion step for each unittest run if these files are rarely modified or even looked at.

Why is it much hassle when the files are small? It should be quite fast? And like you say binary files do not work well with git, so in case we make an adjustment to one of these files it would be a hassle to convert them to xml and compare the different versions.

If we go for this it would be easier to convert the pbfs of my other branch back to XML as i've already fixed a few issues like sorting etc. We also need to make sure that timestamps of the generated pbfs are correct as some unittests check them but i don't really know the reason for that. Maybe we can remove those checks.

@karussell what's your take on this?

I also prefer keeping XML for tests as a PBF file would require yet another step to decipher the graph. And/or we create a possibility with ascii charts like suggested in #143 :)

Can we merge this PR? I'm going to refactor my other branch and switch to on-the-fly conversion for the test files.

Can we merge this PR? I'm going to refactor my other branch and switch to on-the-fly conversion for the test files.

I agree with @karussell here that it is still hard to see what changes are meant to be speed ups and which ones are mostly there to clean up the code. Also I fully agree that cleaning up should be the priority. I 'accidentally' got familiar with the OSM reading code because of another bug I am investigating (#1984 ) so I had a look at this PR again. I see the following issues:

Its still not clear if the changes to the pbf parser are meant to speed up the import or if this is a 'minor bugfix' as you said that you will move to another PR?

I was not able to measure a significant speed up (it was <10%) so I think we should only apply changes that make the code easier to understand.

Regarding the changes in this PR I see three main things that were changed:

lazy initialization of the properties HashMap in ReaderElement -> let's leave a comment that this might be a potential speed up, but not do it now.

elevation tag in ReaderNode: afaik this feature is not used, so yes I think we should remove it @karussell? If so this should go into a separate PR.

The changes in PbBlobDecoder seem to be a mix of clean ups (like removing commented out code) and other improvements. Can we maybe just do the clean ups first/here so it is easier to see what really changed and how the decoder got improved?

Btw another thing that looks like it can be removed is the inBounds feature. That should also allow cleaning up the code a bit more. @karussell?

Once we come to an agreement about what should be done we can probably also just cherry pick some of this PR's commits as they already nicely separate the different changes.

And/or we create a possibility with ascii charts like suggested in #143 :)

I think we should be able to easily use VCS friendly .osm.xml files for testing. On the other hand I do not see many benefits of testing with using OSM-like data except for testing the code that does the OSM import and some end-to-end tests. For everything else testing via the Java/GraphHopper API seems a lot more useful. Therefore I do not really see a use-case for these ascii charts ;)

Focusing on better readability first seems like a good idea. My biggest gripe with the existing XML files is that most of them violate the specification one way or another. Fixing all these issues in order to able to convert them on-the-fly is going to take a while.

My biggest gripe with the existing XML files is that most of them violate the specification one way or another. Fixing all these issues in order to able to convert them on-the-fly is going to take a while.

What kind of specifications are violated? Can we address these issues first without removing XML support yet?

Btw I see you put in a lot of work into this OSM parsing code. What is the overall goal of this? Is this mostly about speeding things up or removing the osmosis dependency? Do you also have functional improvements in mind?

What kind of specifications are violated?

I tried to do the conversion using Osmosis v0.6 XML Reader and OsmosisSerializer. It got various errors about missing timestamp and version tags.

Is this mostly about speeding things up or removing the osmosis dependency?

Speed and readability.

Osmosis 0.6? Isn't 0.48 the last release: https://github.com/openstreetmap/osmosis/releases/latest? You probably mean OSM API version 0.6 and this is in fact not supported by e.g. latest versions of Osmosis and JOSM. I had a similar problem when I tried opening one of the test xml files in JOSM (it required the version tag).
The last osmosis version that supported OSM v0.5 was 0.35 and it has a migrate command to convert from v0.5 to v0.6: https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.35#--migrate
As a first step can we convert the current test OSM files into a format that is compatible with OSM v0.6?

As a first step can we convert the current test OSM files into a format that is compatible with OSM v0.6?
--> #2223

That's exactly the problem i'm facing.

I'll close this issue here.
@otbutz let me explain :) Our first step should be to make OSMReader simpler - it is a mess :) !
See https://github.com/graphhopper/graphhopper/commits/osm_reader_rewrite for an experimental branch that also includes some minor ideas from here I think.
But even this rewrite is not yet possible as we first need to get the correct bigger picture. And so we e.g. need to think about how to handle the node tags (see my branch node_parser_extraction and also related road_access). btw: this should make node tags available in a custom model too.
And after this is done we can then try to make the (new) OSMReader faster again. Especially due to your contribution from #2191 I think performance is now less of a concern and we really need to focus on maintainability.

Our first step should be to make OSMReader simpler - it is a mess :) !

I wholeheartedly agree :wink:


[Bug]: Build broken with workspaces in package.json

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
App, Extension
Expected behavior
We've been running an app for a while, recently scaffolded a new checkout UI extension that added
  "workspaces": [
    "extensions/*"
  ]

To the app's root package.json this has broken our CI build because the cli's command shopify app build does not install dependencies before running the build when workspaces is defined.
Actual behavior
Either install the dependencies, or warn about skipping dependencies install because of workspaces being present.
Verbose output
not applicable

Reproduction steps

Install extension to existing app
Have a CI build pipeline that relies on the CLI's shopify app build to install dependencies
Broken build because of missing modules

Operating System
Ubuntu, Fedora, but applicable to others
Shopify CLI version (check your project's package.json if you're not sure)
3.57.0
Shell
No response
Node version (run node -v if you're not sure)
No response
What language and version are you using in your application?
No response

Hi @isaacroldan understood.
FYI, I am running my app as the template was originally with a separate frontend role/matter and I've since replaced CI as you mentioned.


feat: Added Tooltip component

Hi! I created a tooltip version.
Fixes Issue
Closes #354
Changes proposed
Added Tooltip component. The children element and the TooltipBox are in a wrapper div.
Added TooltipBox component. The tooltip box appears on hover effect. It can appears on left, right, top or bottom (by default). The maximum width of the tooltip box is 15rem. Currently it also appears when the user tap the selected element in mobile view.
Addes index.ts.
Screenshots

@rohitdasu Hi! In my latest commits, I made the following improvements:
I fixed the style of the TooltipBox

Added gray border to the TooltipBox.
Fixed the order of the CSS classes in the TooltipBox component.

I added tooltip for social links.


FileTransport writes undefined to file because formatters are stripping info[MESSAGE] from the info object

I'm still tracking down exactly how this is happening, but if you use the any of the built-in log formatters, info[MESSAGE] will be undefined. Because of this all log statements written to the log file will be undefined + eol since both these lines in both the File transport and the winston-daily-file-rotate expect info[MESSAGE] to exist.
The problem is most likely in the format function of Logform but I haven't found the exact spot yet.
Repro
<EMAIL_ADDRESS>const logger = winston.createLogger({
  level: level,
  levels: winston.config.syslog.levels,
  format: winston.format.combine(
    winston.format.timestamp()
  )
});

logger.add(new winston.transports.File({ filename: `${logPath}/combined.log` }));

[RESOLVED] - The problem is that the log was never finalized with a "finalizing format".
It may be good to either require that as a 2nd arg to format.combine or to make that more promenant in the docs. I missed it :/.
Thanks for all the hard work!

Thank you @baer! +1 for requiring it as a 2nd argument


Design Token section to display components are separate pages

Any idea how to display the components under design tokens are separate pages? I thought changing sectionDepth to 2 should be enough.
I'm using version 3.5.7.
//  ./config/docs.config.js
pagePerSection: true,
sections: [
...
{
      name: "Design Tokens",
      content: "../docs/tokens.md",
      sectionDepth: 2, // <-- changed from 1
      exampleMode: "hide",
      usageMode: "hide",
      components: () => [
        "../docs/components/tokens/Color.vue",
        "../docs/components/tokens/FontSize.vue",
        "../docs/components/tokens/Spacing.vue",
        "../docs/components/tokens/All.vue",
      ],
 }
]

@rinobatin These are hidden in css currently, remove the following lines to see the subsections in menu:
https://github.com/viljamis/vue-design-system/blob/master/docs/docs.styles.scss#L670-L673

Thank you!


requeue until Stopped for job style resources

Description of changes:

requeue until Stopped for job style resources

integ test changes for the same

Reduce terminal codes to only those which can be fixed by a change in spec. Reason being the latest runtime 0.13+ ignores metadata and status updates leaving customer with no way to get the controller reconcile if the terminal code is not related to spec field change. I will make this change for other resources in a separate PR
consolidate hook related code to one file and refractor to use common pkg to reduce code duplication

removed post sdk_create_post_set_output hook because runtime does a readone and paches the status post create

TODO:
During testing, I found that if there is an error during delete it is not reflected in the resource conditions. Will put a PR to codegen and create a new PR with those changes
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


[FEATURE] break the tile

Description
the objective is to burst or eliminate tiles from the game board to earn points, with the goal of reaching a score of 1000 to win.The game typically consists of a grid or board filled with different colored or patterned tiles.
Screenshots
No response
Additional information
No response

Hi @SimranLahrani842 , I have assigned this task to you. Kindly complete within 2 days. Good luck!


CSRF token mismatch

Might have missed something, but getting CSRF token mismatch after running a request to the API (after running the airlock/csrf-cookie, which seems to be returning everything fine)?
Added the monorepo here for help:
https://github.com/adicle/test-app
Just testing a really really simple SPA test with API but still having the issue.

Can't recreate.

After installing a fresh instance of Laravel, using the documented way to using Laravels own auth and then following the README.md of this we are still getting CSRF token mismatch?

To every request after /airlock/csrf-cookie you need to add a X-XSRF-TOKEN header with the value of the XSRF-TOKEN cookie.

I'm guessing, because Auth::routes(); is in your web.php it is protected by the CSRF token middleware because in the service provider it states to use the web middleware group.
I'm assuming you remove Auth::routes(); from web.php and add it to api.php because in the service provider these routes are protected by the api middleware group which should have the new EnsureFrontendRequestsAreStateful::class middleware. You then post to /api/login.

Remove window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; from bootstrap.php

@DCzajkowski That makes complete sense. I was running into an issue doing a local NuxtJS install and I can't get access to the XSRF-TOKEN. By default NuxtJS runs on localhost domain and my API is in a development environment that's api.app.test.
I kept getting a 419 for the CSRF token being invalidated. Is this due to the different top level domains? I have it working through Nuxt's Auth module with issuing an access token (https://github.com/laravel/airlock#issuing-api-tokens) but not with the SPA auth way (https://github.com/laravel/airlock#spa-authentication).
Thank you for your help!

@danpastori I think this package using the CSRF token is built towards building your SPA into Laravel itself then just using Laravel as an API, which is where I was slightly confused. As you said it still works fine with using access tokens but needs CSRF disabling for the API requests.

@danpastori Is the NuxtJS app server rendered? Maybe you need to attach an Origin header for API calls made from the backend. Is this the thing you are having problems with?

So here's my setup.
NuxtJS Install
I have a directory, let's call /frontend that is my NuxtJS install. In there, I have a basic SPA NuxtJS install (no server side rendering). I created a frontend /login route to log in the user by providing a form.
When fired up, this is a standard NuxtJS install on a dev machine with the URL of http://localhost:3000.
Laravel Install
I have another directory, /api that is my Laravel install. In that directory, I have a bare bones Laravel install with just UI auth installed and Laravel Airlock and configured per the docs (middleware, and config setup with localhost as a stateless domain`.
The Process
The user enters their email and password and I call the login() method which looks like this:
this.$axios.get('https://api/airlock/csrf-cookie').then(function( response ){
    this.$axios.post('https://api/login', {
        email: this.email,
        password: this.password
    });
}.bind(this));

I'm using the Nuxt Axios module and following: https://github.com/laravel/airlock#spa-authentication. Now here's where the issue comes in.
After I submit, the first request goes through just fine:

However, when I make the subsequent POST request to the /login route I get a CSRF token mismatch 419 response:

You can also see that the XSRF token is not being sent in the request headers and when I receive the initial response from the /csrf-cookie request the cookies aren't getting set.
Solutions I've Tried

Added {withCredentials: true} to the axios request.
Sending request through Postman to see if it was something with a config in the default Nuxt Axios Module.

What Worked

When I fired up my old SPA WITHIN the laravel install so the host was the same top level domain. Worked like a charm.
Issuing access tokens like: https://github.com/laravel/airlock#issuing-api-tokens. This is what I was doing with Passport and switching in Airlock, it still worked.

Questions

Is the CSRF token only valid IF the top level domains are the same? I understand that normally this is how it should work and kind of the point is to have the same top level domains. I was just confused with the stateless domains in the Airlock config file. This will be resolved on deployment to production.
If the CSRF token is supposed to match top level domains, I can work with my development environment and make that happen. However, is https://github.com/laravel/airlock#issuing-api-tokens a good option for scenarios where this might not be the case?

Thank you all for your help, I really appreciate the time and effort. Airlock is a beautiful package and can't wait to work with it more!

All sounds like incorrect CORS configuration.

Hi @taylorotwell ,
That could easily be the case, thank you for looking into this!
For CORS configuration and testing I've been using the Spatie/Cors package (https://github.com/spatie/laravel-cors). The only changes that I tweaked to their default profile was to allow_credentials and exposed and allowed the Set-Cookie headers.
For references my CORS config file is:
<?php

return [

    /*
     * A cors profile determines which origins, methods, headers are allowed for
     * a given requests. The `DefaultProfile` reads its configuration from this
     * config file.
     *
     * You can easily create your own cors profile.
     * More info: https://github.com/spatie/laravel-cors/#creating-your-own-cors-profile
     */
    'cors_profile' => Spatie\Cors\CorsProfile\DefaultProfile::class,

    /*
     * This configuration is used by `DefaultProfile`.
     */
    'default_profile' => [

        'allow_credentials' => true,

        'allow_origins' => [
            '*',
        ],

        'allow_methods' => [
            'POST',
            'GET',
            'OPTIONS',
            'PUT',
            'PATCH',
            'DELETE',
        ],

        'allow_headers' => [
            'Content-Type',
            'X-Auth-Token',
            'Origin',
            'Authorization',
            'Set-Cookie'
        ],

        'expose_headers' => [
            'Cache-Control',
            'Content-Language',
            'Content-Type',
            'Expires',
            'Last-Modified',
            'Pragma',
            'Set-Cookie'
        ],

        'forbidden_response' => [
            'message' => 'Forbidden (cors).',
            'status' => 403,
        ],

        /*
         * Preflight request will respond with value for the max age header.
         */
        'max_age' => 60 * 60 * 24,
    ],
];

When I call the initial /airlock/csrf-cookie , CORS works and the proper set-cookie header is returned, but I get a 419 on the POST request to /login.

As a side note to this topic I think it might be nice to have a guide or something in the README showing how to use this package in conjunction with the nuxt-auth package.
When I first started using Nuxt I was shocked that there isn’t a straight forward way to use Nuxt/nuxt-auth + Laravel/Passport. Before that, I had thought that was pretty much the point of using Passport.

I’ll definitely do a PR when I figure it out.  I’m so stoked to use airlock with NUXT!

You might be missing 'X-Requested-With' header in your CORS config.

Try this for debugging purposes:
this.$axios.get('https://api/airlock/csrf-cookie').then(() => {
    this.$axios.post('https://api/login', {
        email: this.email,
        password: this.password,
    }, {
        headers: {
            'X-XSRF-TOKEN': (() => {
                const name = 'XSRF-TOKEN'
                const cookies = '; ' + document.cookie
                const parts = cookies.split('; ' + name + '=')
                const value = parts.length == 2 ? parts.pop().split(';').shift() : null

                console.log('>>> XSRF-TOKEN', value)

                return value
            })(),
        },
    })
})

This should set the X-XSRF-TOKEN header explicitly using the value of XSRF-TOKEN coockie and console.log this value. Check the contents of the console. If the cookie value is null, there is your problem. Probably CORS misconfiguration. If it worked, then it seems like Axios is not attaching the header for some reason.

@danpastori I am having the same problem. It works perfectly with both (api and frontend) under localhost. But when I replace my api url to valet (airlock.test), i get the same errors.
I believe if API and Frontend are not in the same top domain, than we should use Airlock with access-token, but not with the stateful session. Am I correct?

Change the url in config/airlock.php

Change the url in config/airlock.php

Hi @lukesnowden, thanks for the reply. Tried this, but with no success. I guess it is not possible to share session cookies to different domains. We can get the xsrf-token and session response cookie, but it is not sent back in the next api call.  that's the reason of the token mismatch and even disabling xsrf, the user is not logged in the next call.

Same issue here. The GET /airlock/csrf-cookie was made seconds before and the cookie set by it's response matches the cookie send to the login call.

Hi All,
So I've been spending some time with the issue and I've gotten a little bit closer to solving it.
Updated CORS Library
First, I updated my CORS library to be the BarryVDH (which is now fruitcake/laravel-cors). I did this because it was mentioned by Taylor that it will be integrated in Laravel 7.0 (https://twitter.com/taylorotwell/status/1216198072319037440?s=20) and I figured, the best way to test would be to use the package.
Current CORS Config
The changes to the default config are as follows:
'paths' => [
    'airlock/csrf-cookie',
    'login',
    'api/*'
],

and
'allowed_origins' => ['http://localhost:3000'],

I explicitly set the allowed_origins to my local host and NOT the *. I read about this within the Axios GitHub (sorry I lost the link), but it mentioned that for any POST, we had to explicitly set the origin.
Airlock Config
I also set the airlock config to explicitly be my Nuxt domain as well:
'stateful' => [
    'http://localhost:3000',
],

Nuxt Login Call
Since I'm working within Nuxt, I wanted to limit the amount of variables and use their Auth package. The call I make for authentication is as follows:
this.$axios.get('https://API/airlock/csrf-cookie', {
    headers: {
        'X-Requested-With': 'XMLHttpRequest'
    },
    withCredentials: true
}).then(function( response ){
    this.$auth.loginWith('local', {
        data: {
            email: this.email,
            password: this.password
        },
        withCredentials: true,
        headers: {
            'X-Requested-With': 'XMLHttpRequest'
        },
    });
}.bind(this));

I ensure that the withCredentials is set to true so it passes the cookies correctly.
Now when I inspect my request, I see that under the cookies sent with the request, the XSRF-TOKEN is being sent along to the POST /login route. @robertotcestari I had the same issue where these weren't being sent, but the current config I have set up, sends the cookies.

This is great! However, I'm still getting a 419 response.
Current Questions
Diving into the VerifyCsrfToken.php middleware, it looks for the header X-CSRF-TOKEN or X-XSRF-TOKEN. Since these are not headers in my request (they are in the cookies), do I have to set up Axios to send as a header? If so, is there any instructions on how to send as a header vs a cookie?
Thanks a ton!

It works fine for me:
CORS configuration for testing:

Set axios withCredentails to true as a global default, not per request:
axios.defaults.withCredentials = true;

My "stateful" config... you do not need "http", etc:

@taylorotwell I'm not too sure the issue has to do with CORS. When playing with in locally (using Insomnia or Postman) it also gives invalid csrf token, while both programs don't do anything with CORS. Please see my screenshot in earlier comment.

@georgeboot did you try any of my instructions in the previous post?

@taylorotwell yes but no luck.
Even disabled the CORS package altogether, but that doesn't help either.

@taylorotwell Thank you for all of the help, I was able to get it working in one scenario with Nuxt!
Here's what made the difference:
CORS
A lot of this had to do with CORS, but also with the cookie domain. For CORS, the only change I made to the default fruitcake/laravel-cors package was to set 'supports_credentials' => true and to add the Airlock routes to the cors file:
/*
     * You can enable CORS for 1 or multiple paths.
     * Example: ['api/*']
     */
    'paths' => [
        'airlock/csrf-cookie',
        'login',
        'api/*'
    ],

Nuxt
By default NuxtJS runs on http://localhost:3000. According to a couple issues I read about, in order for a qualified domain, you need at least one . (https://stackoverflow.com/a/1188145). You also need your session domain set in session.php as @taylorotwell mentioned here: https://github.com/laravel/airlock/issues/11#issuecomment-574181474.
We have a testing infrastructure so I threw a Nuxt install under a subdomain and set that per suggestion () to be .TLD.test. This worked! We got an X-XSRF-TOKEN header passed and proper airlock authentication!
In my case, once I changed the TLD away from localhost, and adjusted the session.php it worked right away. Hope this helps someone!

So in the config/airlock.php file make sure that you have your frontend added like:
'stateful' => [
        'frontend_subdomain.tld.test',
 ],

That's how I have mine set up to get everything working.
Also, now thinking about it, ensure your session domain in config/session.php is structured like this:
`domain' => '.tld.test'
hat will make a valid cookie session for your domain. Let me know if that helps!

@danpastori Thanks for the help. Our back-end configuration was correct, and the issue was from the front-end side as we use Angular which has it's own Http Client service and not using Axios. But once we sent the needed headers with the correct names it worked just fine!

im having some trouble with this, im using localhost:8000 and  vue on laravel as spa, but in the web routes its working ok the session, but on api routes isnt working, it said "unauthenticated"

@JGamboa As mentioned in this thread, you'll need to put your frontend on a domain. The way I have it setup for apps using Airlock is the backend is api.tld.test and the frontend is app.tld.test for example, then follow the instructions on here to set it up.

@robmpreston  already done that i put it on mydomain.test, i have no problem with the web routes, only with the api routes, if i send the request to the web routes i get the user on my /user , but when i try on /api/user, i get the unauthenticated

Hello I'm also receive a 419 error.
Front-End: http://localhost:4200
Angular, using the proxy approach with the proxy.conf.json
When first loading my spa login, I make a request to http://localhost:4200/airlock/csrf-cookie (which forwards the request to http://api.example/airlock/csrf-cookie) and I successfully receive the XSRF-TOKEN.
When trying to login, my request header includes the XSRF-TOKEN and I receive the 419 error.
What's strange is that I am making an HTTP request to http://localhost:4200/api/login (which forwards the request to http://api.example/api/login) and is not protected by auth:airlock, but still I receive a 419.
Could this be, because I am on the http://localhost:4200 and not on a subdomain of api.example?
Also on Angular I have an interceptor that attaches the X-Request-With and Content-Type request headers. I also include the withCredentials so that the cookies are sent on the request
Back-End: http://api.example
Environment Variables - changed SESSION_DRIVER to cookie as stated by @danpastori
airlock.php - I configured where my spa will be making the stateful requests from (localhost:4200)
kernel.php - I configured Airlock's middleware, according to the docs
cors.php - I set the supports_credentials to true.
session.php - I set the domain as localhost:4200
Thanks in advance.

I just had a similar issue and had to add 'airlock/csrf-cookie' to the paths config option in cors.php.

I don't really know what's wrong but I'm having this issue on chrome only..
but on firefox Dev Edition.. everything works fine

@yob-yob If you updated Chrome recently that could be the reason, as this update included some changes to the way cookies are handled; you can read more here: https://blog.chromium.org/2020/02/samesite-cookie-changes-in-february.html
In order to have CSRF and Airlock work again, you just need to make sure that: session.same_site is set to null

Hello I'm also receive a 419 error.
Front-End: http://localhost:4200
Angular, using the proxy approach with the proxy.conf.json
When first loading my spa login, I make a request to http://localhost:4200/airlock/csrf-cookie (which forwards the request to http://api.example/airlock/csrf-cookie) and I successfully receive the XSRF-TOKEN.
When trying to login, my request header includes the XSRF-TOKEN and I receive the 419 error.
What's strange is that I am making an HTTP request to http://localhost:4200/api/login (which forwards the request to http://api.example/api/login) and is not protected by auth:airlock, but still I receive a 419.
Could this be, because I am on the http://localhost:4200 and not on a subdomain of api.example?
Also on Angular I have an interceptor that attaches the X-Request-With and Content-Type request headers. I also include the withCredentials so that the cookies are sent on the request
Back-End: http://api.example
Environment Variables - changed SESSION_DRIVER to cookie as stated by @danpastori
airlock.php - I configured where my spa will be making the stateful requests from (localhost:4200)
kernel.php - I configured Airlock's middleware, according to the docs
cors.php - I set the supports_credentials to true.
session.php - I set the domain as localhost:4200
Thanks in advance.

Try running both applications on localhost
Back-End: localhost:8000
Front: localhost:8080

Frontend(Vue):
axios.defaults.baseURL = 'http://localhost:8000'; //'http://back.airlock.local';
Backend(.env)
SESSION_DOMAIN=localhost #SESSION_DOMAIN=.airlock.local
AIRLOCK_STATEFUL_DOMAINS=localhost:8080 #AIRLOCK_STATEFUL_DOMAINS=front.airlock.local

@yob-yob If you updated Chrome recently that could be the reason, as this update included some changes to the way cookies are handled; you can read more here: https://blog.chromium.org/2020/02/samesite-cookie-changes-in-february.html
In order to have CSRF and Airlock work again, you just need to make sure that: session.same_site is set to null

Yeah, the problem occur only in Chrome, however settings same_site to null don't work for me  :(

@AndrewSavetchuk Can you post a screenshot from your Chrome console - cookies tab?

@mansouralex I've just figured out the issue. You were right.
I edited config/session.php but it didn't help.
The problem was with Airlock Middleware:
vendor/laravel/airlock/src/Http/Middleware/EnsureFrontendRequestsAreStateful.php

When I changed the 45th line to null it did the trick.
This is a temporary workaround for Airlock, I made a pull request with the reference to your comment.
I couldn't even think that the error was due to a new update in Chrome.
Thank you so much, Alex! 🙂

After some days searching solution, its did works with me.
import Cookies from 'js-cookie'
import axios from 'axios'

axios.defaults.withCredentials = true

axios.get('http://localhost:8000/airlock/csrf-cookie')
   .then(response => {
       Cookies.set("X-XSRF-TOKEN", Cookies.get("XSRF-TOKEN"))
       // Login...
       axios.post('http://localhost:8000/login', {
         email<EMAIL_ADDRESS>         password: '@admin123'
       }).then((data) => {
         console.log(data);
       })
    });

or
<?php
namespace App\Http\Middleware;
use Closure;

class TransformApiHeaders  {

    public function handle($request, Closure $next) {

        $cookie_name = 'XSRF-TOKEN';
        $token_cookie = $request->cookie($cookie_name);

        if ($token_cookie !== null) {
            $request->headers->add(["X-$cookie_name" => $token_cookie]);
        }

        return $next($request);
    }
}

in Kernel.php
protected $middleware = [
   TransformApiHeaders::class,
   // ...
];

@mansouralex You may want to have a look at EnsureFrontendRequestsAreStateful. First thing it does in handle is call configureSecureCookieSessions, which updates the configuration with
'session.http_only' => true,
'session.same_site' => 'lax',

Notice this happens regardless of what you set your session.same_site to.

Hey everyone,
I'm locking this issue because it either has gone off-topic, become a dumping ground for things which shouldn't be in an issue tracker or is just too old. Please try to discuss things further on one of the below channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC


Switched definition of  Abstraction and Encapsulation

I think that definition of Abstraction and Encapsulation is switched.
This
Abstraction  means hiding the unnecessary details from type consumers.
Encapsulation means that a group of related properties, methods, and other members are treated as a single unit or object.

should be this
Abstraction  means that a group of related properties, methods, and other members are treated as a single unit or object.
Encapsulation means hiding the unnecessary details from type consumers.

Similarly in the summary.

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

ID: ece1648c-e8a7-153d-a22b-350a619aa26d
Version Independent ID: a0c9221a-cc55-4c31-4f54-0e5fbdcbce25
Content: Object-Oriented Programming (C#)
Content Source: docs/csharp/tutorials/intro-to-csharp/object-oriented-programming.md
Product: dotnet-csharp
Technology: csharp-get-started
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

@Rashair is right

Thanks for bringing this to our attention @Rashair
I've added to my plans for this month, while I'm working on other issues in this area.
See #22671 for related tasks.

Summary was not fixed :/


OpTestOpenBMC.py: increase wait_bmc() timeout

Swift systems are taking more than 10 minutes between poweroff/poweron.
Increase the timeout to 15 minutes.
Signed-off-by: Klaus Heinrich Kiwi<EMAIL_ADDRESS>

Swift systems are taking more than 10 minutes between poweroff/poweron.
Increase the timeout to 15 minutes.

If it takes more than 10mins then something is really wrong! Have you figureout who is taking so much time? Host side -OR- BMC?
-Vasant

Swift systems are taking more than 10 minutes between poweroff/poweron.
Increase the timeout to 15 minutes.

If it takes more than 10mins then something is really wrong! Have you figureout who is taking so much time? Host side -OR- BMC?
-Vasant

New ZZ systems are just slow to boot.

Swift systems are taking more than 10 minutes between poweroff/poweron.
Increase the timeout to 15 minutes.

If it takes more than 10mins then something is really wrong! Have you figureout who is taking so much time? Host side -OR- BMC?

I admit that was a rushed fix I committed, it looked sufficiently harmless, but looks like we need to investigate more..
If we look at an instance where the issue at hand happens (https://hostboot-jenkins.swg-devops.com/job/Hostboot/job/OpenPower/job/HW/job/p9-test-param/3102/) you'll see in the console:
[  239.130316] mlx5_core 0001:15:00.0: mlx5_enter_error_state:128:(pid 1): end
[  241.208017] reboot: Power down
[<PHONE_NUMBER>88,5] OPAL: Shutdown request type 0x0...
2020-06-08 20:11:25,697:op-test.common.OpTestSystem:run_POWERING_OFF:INFO:System is in standby/Soft-off state
2020-06-08 20:21:29,653:op-test.common.OpTestOpenBMC:wait_bmc:WARNING:We timed out waiting for "/xyz/openbmc_project/state/host0", we waited 10 minutes for "xyz.openbmc_project.State.Host.HostState.Running"
2020-06-08 20:21:29,653:op-test.common.OpTestSystem:run_IPLing:WARNING:OpTestSystem UNABLE TO REACH PETITBOOT or we missed it - "Something happened with the HTTP Server.  Review the following for more details
Message="HTTP problem getting "/xyz/openbmc_project/state/host0", we waited 10 minutes for "xyz.openbmc_project.State.Host.HostState.Running""", increasing ipl_watermark for loop_max to 101, will re-IPL for another try
2020-06-08 20:21:30,883:op-test.common.OpTestSystem:run_POWERING_OFF:INFO:System is in standby/Soft-off state
^M~.

--== Welcome to Hostboot hostboot-site_local-hostboot-OP_v2.5-21-g71210df/hbicore.bin ==--

Which apparently indicates that the host never came back after 2020-06-08 20:11:25,697:op-test.common.OpTestSystem:run_POWERING_OFF:INFO:System is in standby/Soft-off state (there's no console output), and after 10 minutes it times out and re-tries the IPL (shutdown, power-on)
If we look at the BMC journalctl (https://hostboot-jenkins.swg-devops.com/job/Hostboot/job/OpenPower/job/HW/job/p9-test-param/3102/artifact/op-test/test-reports/hostboot_test_suite_report/test-run-hostboot/op-test-openbmc-journal.Mon_Jun__8_20%3A45%3A30_2020/view/) around the same time (BMC uses UTC, so 5 hours ahead) we can see the request to shutdown:
Jun 09 01:11:25 swift25 phosphor-chassis-state-manager[252]: Change to Chassis Requested Power State
Jun 09 01:11:25 swift25 phosphor-host-state-manager[424]: Host State transaction request

According to @geissonator, we're looking for Received signal that host is running in the journalctl that would indicate that we setting "/xyz/openbmc_project/state/host0" to "xyz.openbmc_project.State.Host.HostState.Running" (the information we're looking for).
However, that message apparently never comes back until we time-out and re-trigger the IPL (Jun 09 01:21:29 swift25 phosphor-chassis-state-manager[252]: Change to Chassis Requested Power State) for which we then see the host recycling and the 'host is running' message appearing almost immediately Jun 09 01:21:38 swift25 phosphor-host-state-manager[424]: Received signal that host is running
@geissonator as I mentioned in Slack, there seems to be a lot of failures, occ timeouts and all between the events above - perhaps op-test is right and the host never came up?
I'm pasting the relevant journalctl below:
Jun 09 01:11:25 swift25 phosphor-chassis-state-manager[252]: Change to Chassis Requested Power State
Jun 09 01:11:25 swift25 phosphor-host-state-manager[424]: Host State transaction request
Jun 09 01:11:26 swift25 systemd[1]: Starting Soft power off of the host...
Jun 09 01:11:26 swift25 systemd[1]: Starting OpenPOWER OCC Active Disable...
Jun 09 01:11:26 swift25 systemd[1]: Started Power is off to chassis0.
Jun 09 01:11:26 swift25 phosphor-host-state-manager[424]: Host State transaction request
Jun 09 01:11:27 swift25 phosphor-softpoweroff[23815]: Timeout on host attention, continue with power down
Jun 09 01:11:28 swift25 systemd[1]: xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service: Succeeded.
Jun 09 01:11:28 swift25 systemd[1]: Stopped Soft power off of the host.
Jun 09 01:11:28 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:28 swift25 systemd[1]: Stopped OpenPOWER OCC Active Disable.
Jun 09 01:11:28 swift25 systemd[1]: Stopped target Stop Host0.
Jun 09 01:11:28 swift25 systemd[1]: Starting Reset host reboot counter...
Jun 09 01:11:29 swift25 systemd[1]: Starting Updates symlinks for active PNOR version...
Jun 09 01:11:29 swift25 systemd[1]: Stopped target Power0 Host Off.
Jun 09 01:11:29 swift25 systemd[1]: Stopped target Chassis0 (Power Off).
Jun 09 01:11:29 swift25 systemd[1]: Starting mapper subtree-remove /xyz/openbmc_project/software:xyz.openbmc_project.Software.ActivationBlocksTransition...
Jun 09 01:11:29 swift25 systemd[1]: Starting Wait for Power0 to turn on...
Jun 09 01:11:29 swift25 systemd[1]: Started Phosphor GPIO checkstop monitor.
Jun 09 01:11:29 swift25 systemd[1]: Starting Witherspoon Fan Watchdog Reset...
Jun 09 01:11:29 swift25 systemd[1]: Starting Enable the clearing of the Volatile PNOR partitions in host0...
Jun 09 01:11:29 swift25 systemd[1]: Stopping Power is off to chassis0...
Jun 09 01:11:30 swift25 systemd[1]: Starting Assert power_on LED...
Jun 09 01:11:30 swift25 systemd[1]: Stopped target Power0 Off.
Jun 09 01:11:30 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:30 swift25 systemd[1]: Stopped Stop Power0.
Jun 09 01:11:30 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:30 swift25 systemd[1]: Stopped Assert power_on LED.
Jun 09 01:11:30 swift25 systemd[1]: Started Phosphor poweron watchdog.
Jun 09 01:11:30 swift25 systemd[1]: Starting Enable the AVS bus on VRMs...
Jun 09 01:11:30 swift25 phosphor-watchdog[23838]: Action Targets:
Jun 09 01:11:30 swift25 phosphor-watchdog[23838]:   xyz.openbmc_project.State.Watchdog.Action.PowerCycle -><EMAIL_ADDRESS>Jun 09 01:11:30 swift25 phosphor-watchdog[23838]:   xyz.openbmc_project.State.Watchdog.Action.HardReset -><EMAIL_ADDRESS>Jun 09 01:11:30 swift25 phosphor-watchdog[23838]:   xyz.openbmc_project.State.Watchdog.Action.PowerOff -><EMAIL_ADDRESS>Jun 09 01:11:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:31 swift25 systemd[1]: Stopped Power is off to chassis0.
Jun 09 01:11:31 swift25 systemd[1]: obmc-flash-bios-updatesymlinks.service: Succeeded.
Jun 09 01:11:31 swift25 systemd[1]: Started Updates symlinks for active PNOR version.
Jun 09 01:11:31 swift25 systemd[1]: Started mapper subtree-remove /xyz/openbmc_project/software:xyz.openbmc_project.Software.ActivationBlocksTransition.
Jun 09 01:11:31 swift25 systemd[1]: Started Witherspoon Fan Watchdog Reset.
Jun 09 01:11:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:31 swift25 systemd[1]: Started Enable the clearing of the Volatile PNOR partitions in host0.
Jun 09 01:11:31 swift25 systemd[1]: Started Assert power_on LED.
Jun 09 01:11:31 swift25 systemd[1]: Started Enable the AVS bus on VRMs.
Jun 09 01:11:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:31 swift25 phosphor-host-state-manager[424]: Received signal that host is off
Jun 09 01:11:31 swift25 phosphor-host-state-manager[424]: Change to Host State
Jun 09 01:11:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:31 swift25 systemd[1]: Started Reset host reboot counter.

Jun 09 01:11:31 swift25 systemd[1]: Starting Reload mboxd during power on...
Jun 09 01:11:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:31 swift25 systemd[1]: Stopped Wait for Power0 to turn off.
Jun 09 01:11:31 swift25 systemd[1]: Stopped target Power0 Off (Pre).
Jun 09 01:11:31 swift25 systemd[1]: Stopped target Host0 (Stopped).
Jun 09 01:11:31 swift25 systemd[1]: Stopped target Host0 (Stopping).
Jun 09 01:11:31 swift25 systemd[1]: Stopped target Stop Host0 (Pre).
Jun 09 01:11:32 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:11:32 swift25 systemd[1]: Started Clear the Volatile PNOR partitions in host0 if Enabled.
Jun 09 01:11:33 swift25 ipmid[385]: Command in process, no attention
Jun 09 01:11:33 swift25 mboxctl[23854]: Reset: Success
Jun 09 01:11:33 swift25 systemd[1]: Started Reload mboxd during power on.
Jun 09 01:11:33 swift25 systemd[1]: Reached target Power0 On (Pre).
Jun 09 01:11:33 swift25 systemd[1]: Started Power Supply Input History SYNC.
Jun 09 01:11:33 swift25 systemd[1]: Starting Start Power0...
Jun 09 01:11:33 swift25 systemd[1]: power-supply-sync.service: Succeeded.

Jun 09 01:11:34 swift25 systemd[1]: Starting Power Sequencer Power-on Monitor...
Jun 09 01:11:34 swift25 power_control.exe[145]: PowerControl: pgood: 1, setting reset BMC_CP0_RESET_N to 1
Jun 09 01:11:34 swift25 systemd[1]: Started Wait for Power0 to turn on.
Jun 09 01:11:34 swift25 systemd[1]: pseq-monitor-pgood.service: Succeeded.
Jun 09 01:11:34 swift25 systemd[1]: Started Power Sequencer Power-on Monitor.
Jun 09 01:11:34 swift25 systemd[1]: Reached target Power0 On.
Jun 09 01:11:34 swift25 systemd[1]: Reached target Power0 (On).
Jun 09 01:11:34 swift25 systemd[1]: Started Power Sequencer Runtime Monitor.
Jun 09 01:11:34 swift25 systemd[1]: Starting Scan FSI devices...
Jun 09 01:11:34 swift25 systemd[1]: Starting Perform power workarounds on VRMs after PGOOD is up...
Jun 09 01:11:34 swift25 systemd[1]: Started Perform power workarounds on VRMs after PGOOD is up.
Jun 09 01:11:35 swift25 kernel: occ-hwmon occ-hwmon.1: host is not ready
Jun 09 01:11:35 swift25 kernel: occ-hwmon occ-hwmon.2: host is not ready
Jun 09 01:11:35 swift25 systemd[1]: Started Scan FSI devices.
Jun 09 01:11:35 swift25 systemd[1]: Condition check resulted in OpenPOWER OCC Active Enable for host 0 being skipped.
Jun 09 01:11:35 swift25 systemd[1]: Starting Applies user CFAM register overrides from file...
Jun 09 01:11:36 swift25 systemd[1]: Started Applies user CFAM register overrides from file.
Jun 09 01:11:36 swift25 systemd[1]: Reached target Start Host0 (Pre).
Jun 09 01:11:36 swift25 systemd[1]: Starting Start host0 SBE...
Jun 09 01:11:36 swift25 openpower-proc-control[23878]: Running P9 procedure startHost
Jun 09 01:11:36 swift25 openpower-proc-control[23878]: Setting SBE seeprom side to 0
Jun 09 01:11:36 swift25 systemd[1]: Started Start host0 SBE.
Jun 09 01:11:36 swift25 systemd[1]: Reached target Host0 (Starting).
Jun 09 01:11:36 swift25 systemd[1]: Reached target Host0 (Started).
Jun 09 01:11:36 swift25 systemd[1]: Starting Start the Open Power Host Control NMI service...
Jun 09 01:11:36 swift25 systemd[1]: Starting Start Watchdog0...
Jun 09 01:11:37 swift25 phosphor-watchdog[23838]: watchdog: enabled and started
Jun 09 01:11:37 swift25 systemd[1]: Started Start the Open Power Host Control NMI service.
Jun 09 01:11:37 swift25 systemd[1]: Started Start Watchdog0.
Jun 09 01:11:48 swift25 ipmid[385]: No Object has implemented the interface
Jun 09 01:11:48 swift25 ipmid[385]: The operation failed internally.
Jun 09 01:11:48 swift25 ipmid[385]: Failed in set ACPI system property
Jun 09 01:11:48 swift25 power_control.exe[145]: BootProgress: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
Jun 09 01:11:52 swift25 ipmid[385]: Unable to find FRUID in generated list
Jun 09 01:11:52 swift25 ipmid[385]: Error updating inventory.
Jun 09 01:11:52 swift25 ipmid[385]: Unable to find FRUID in generated list
Jun 09 01:11:52 swift25 ipmid[385]: Error updating inventory.
Jun 09 01:11:52 swift25 ipmid[385]: Unable to find FRUID in generated list
Jun 09 01:11:52 swift25 ipmid[385]: Error updating inventory.
Jun 09 01:11:52 swift25 ipmid[385]: Unable to find FRUID in generated list
Jun 09 01:11:52 swift25 ipmid[385]: Error updating inventory.
Jun 09 01:11:52 swift25 ipmid[385]: Unable to find FRUID in generated list
Jun 09 01:11:52 swift25 ipmid[385]: Error updating inventory.

Jun 09 01:13:11 swift25 systemd[1]: Started Phosphor Hwmon Poller.
Jun 09 01:13:15 swift25 ipmid[385]: Command in process, no attention
Jun 09 01:13:15 swift25 ipmid[385]: No Object has implemented the interface
Jun 09 01:13:15 swift25 ipmid[385]: The operation failed internally.
Jun 09 01:13:15 swift25 ipmid[385]: Failed in set ACPI system property
Jun 09 01:13:32 swift25 phosphor-watchdog[23838]: watchdog: disabled
Jun 09 01:13:41 swift25 ipmid[385]: Unsupported parameter
Jun 09 01:13:41 swift25 ipmid[385]: getHostNetworkData failed for get_sys_boot_options.
Jun 09 01:13:41 swift25 ipmid[385]: Unsupported parameter
Jun 09 01:13:41 swift25 ipmid[385]: getHostNetworkData failed for get_sys_boot_options.
Jun 09 01:16:56 swift25 psu-monitor[391]: Failed to read sysfs file
Jun 09 01:16:56 swift25 psu-monitor[391]: Failed to read from the device. This can be used by any application that gets a failure reading from a device. It is up to the implementation on how to react to this error based on the use-case. Refer to the interface specification that references this for additional information.
Jun 09 01:16:57 swift25 psu-monitor[391]: Noncontiguous INPUT_HISTORY sequence ID found. Clearing old entries
Jun 09 01:21:29 swift25 phosphor-chassis-state-manager[252]: Change to Chassis Requested Power State
Jun 09 01:21:30 swift25 phosphor-host-state-manager[424]: Host State transaction request
Jun 09 01:21:31 swift25 systemd[1]: Starting Soft power off of the host...
Jun 09 01:21:31 swift25 systemd[1]: Stopping Phosphor poweron watchdog...
Jun 09 01:21:31 swift25 systemd[1]: Stopping Phosphor GPIO checkstop monitor...
Jun 09 01:21:31 swift25 systemd[1]: Stopping Start the Open Power Host Control NMI service...
Jun 09 01:21:31 swift25 systemd[1]: witherspoon-reset-fan-watchdog.service: Succeeded.
Jun 09 01:21:31 swift25 systemd[1]: Stopped Witherspoon Fan Watchdog Reset.
Jun 09 01:21:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:31 swift25 systemd[1]: Stopped Start Watchdog0.
Jun 09 01:21:31 swift25 phosphor-host-state-manager[424]: Host State transaction request
Jun 09 01:21:31 swift25 systemd[1]: Starting OpenPOWER OCC Active Disable...
Jun 09 01:21:31 swift25 systemd[1]: Starting Assert power_on LED...
Jun 09 01:21:31 swift25 phosphor-softpoweroff[23893]: Timer started waiting for host to shutdown
Jun 09 01:21:31 swift25 systemd[1]<EMAIL_ADDRESS>Main process exited, code=killed, status=15/TERM
Jun 09 01:21:31 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:31 swift25 systemd[1]: Stopped Phosphor GPIO checkstop monitor.
Jun 09 01:21:32 swift25 systemd[1]<EMAIL_ADDRESS>Main process exited, code=killed, status=15/TERM
Jun 09 01:21:32 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:32 swift25 systemd[1]: Stopped Phosphor poweron watchdog.
Jun 09 01:21:32 swift25 ipmid[385]: Unsupported parameter
Jun 09 01:21:32 swift25 ipmid[385]: getHostNetworkData failed for get_sys_boot_options.
Jun 09 01:21:32 swift25 systemd[1]: xyz.openbmc_project.Control.Host.NMI.service: Main process exited, code=killed, status=15/TERM
Jun 09 01:21:32 swift25 systemd[1]: xyz.openbmc_project.Control.Host.NMI.service: Succeeded.
Jun 09 01:21:32 swift25 systemd[1]: Stopped Start the Open Power Host Control NMI service.
Jun 09 01:21:32 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:32 swift25 systemd[1]: Started OpenPOWER OCC Active Disable.
Jun 09 01:21:32 swift25 systemd[1]: Started Assert power_on LED.
Jun 09 01:21:33 swift25 systemd[1]: xyz.openbmc_project.Hwmon<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:33 swift25 systemd[1]: xyz.openbmc_project.Hwmon@-devices-platform-gpio\x2dfsi-fsi0-slave<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:33 swift25 systemd[1]: Starting Reset host reboot counter...
Jun 09 01:21:33 swift25 systemd[1]: Started Phosphor poweron watchdog.
Jun 09 01:21:33 swift25 systemd[1]: Starting Updates symlinks for active PNOR version...
Jun 09 01:21:34 swift25 systemd[1]: Starting mapper subtree-remove /xyz/openbmc_project/software:xyz.openbmc_project.Software.ActivationBlocksTransition...
Jun 09 01:21:34 swift25 systemd[1]: Started Phosphor GPIO checkstop monitor.

Jun 09 01:21:34 swift25 systemd[1]: Starting Witherspoon Fan Watchdog Reset...
Jun 09 01:21:34 swift25 systemd[1]: Starting Enable the clearing of the Volatile PNOR partitions in host0...
Jun 09 01:21:34 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:34 swift25 systemd[1]: Stopped Assert power_on LED.
Jun 09 01:21:35 swift25 systemd[1]: xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service: Main process exited, code=killed, status=15/TERM
Jun 09 01:21:35 swift25 systemd[1]: xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service: Failed with result 'signal'.
Jun 09 01:21:35 swift25 systemd[1]: Stopped Soft power off of the host.
Jun 09 01:21:35 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:35 swift25 systemd[1]: Started Reset host reboot counter.
Jun 09 01:21:35 swift25 systemd[1]: obmc-flash-bios-updatesymlinks.service: Succeeded.
Jun 09 01:21:35 swift25 systemd[1]: Started Updates symlinks for active PNOR version.
Jun 09 01:21:35 swift25 systemd[1]: Started mapper subtree-remove /xyz/openbmc_project/software:xyz.openbmc_project.Software.ActivationBlocksTransition.
Jun 09 01:21:35 swift25 systemd[1]: Started Witherspoon Fan Watchdog Reset.
Jun 09 01:21:35 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:35 swift25 systemd[1]: Started Enable the clearing of the Volatile PNOR partitions in host0.
Jun 09 01:21:35 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.

Jun 09 01:21:36 swift25 systemd[1]: Started Power Supply Input History SYNC.
Jun 09 01:21:36 swift25 systemd[1]: Starting Power Sequencer Power-on Monitor...
Jun 09 01:21:36 swift25 systemd[1]: Started Phosphor Fan Control Initialization.
Jun 09 01:21:36 swift25 systemd[1]: Condition check resulted in OpenPOWER OCC Active Enable for host 0 being skipped.
Jun 09 01:21:36 swift25 systemd[1]: Started Phosphor Fan Monitor Initialization.
Jun 09 01:21:36 swift25 systemd[1]: Started Phosphor Fan Presence Tach Daemon.

Jun 09 01:21:37 swift25 systemd[1]: Started Clear the Volatile PNOR partitions in host0 if Enabled.
Jun 09 01:21:37 swift25 phosphor-fan-presence-tach[23928]: Unable to read fan tach sensor.
Jun 09 01:21:37 swift25 systemd[1]: power-supply-sync.service: Succeeded.
Jun 09 01:21:37 swift25 phosphor-fan-presence-tach[23928]: Unable to read fan tach sensor.
Jun 09 01:21:37 swift25 systemd[1]: pseq-monitor-pgood.service: Succeeded.
Jun 09 01:21:37 swift25 phosphor-fan-presence-tach[23928]: Unable to read fan tach sensor.
Jun 09 01:21:37 swift25 phosphor-fan-presence-tach[23928]: Unable to read fan tach sensor.
Jun 09 01:21:37 swift25 systemd[1]: Started Power Sequencer Power-on Monitor.
Jun 09 01:21:37 swift25 systemd[1]<EMAIL_ADDRESS>Main process exited, code=exited, status=1/FAILURE
Jun 09 01:21:37 swift25 systemd[1]<EMAIL_ADDRESS>Failed with result 'exit-code'.
Jun 09 01:21:37 swift25 systemd[1]<EMAIL_ADDRESS>Succeeded.
Jun 09 01:21:37 swift25 systemd[1]: Reached target Chassis0 (Power On).
Jun 09 01:21:38 swift25 systemd[1]: Starting Start the Open Power Host Control NMI service...
Jun 09 01:21:38 swift25 systemd[1]: Starting Start Watchdog0...
Jun 09 01:21:38 swift25 phosphor-chassis-state-manager[252]: Received signal that power ON is complete
Jun 09 01:21:38 swift25 phosphor-chassis-state-manager[252]: Change to Chassis Power State
Jun 09 01:21:38 swift25 systemd[1]: Started Start the Open Power Host Control NMI service.
Jun 09 01:21:38 swift25 phosphor-watchdog[23909]: watchdog: enabled and started
Jun 09 01:21:38 swift25 systemd[1]: Started Start Watchdog0.
Jun 09 01:21:38 swift25 systemd[1]: Reached target Start Host0 Minimum.
Jun 09 01:21:38 swift25 systemd[1]: Reached target Start Host0.
Jun 09 01:21:38 swift25 phosphor-host-state-manager[424]: Received signal that host is running
Jun 09 01:21:38 swift25 phosphor-host-state-manager[424]: Change to Host State


UI Component - Radio list

Is your feature request related to a problem? Please describe.
As a user, I want to see an easy to use list of items that clearly outline what option I have selected
Describe the solution you'd like
We should have a RadioList component (like a radio group, just styled differently) in the ui project.

[ ] RadioComponent should be exposed in ui package
[ ] Takes an array of options with name, label, and an optional subLabel (small text on the right)
[ ] Only one option can be selected
[ ] Has an onChange prop to allow for listening for changes

Additional context
Designs: https://www.figma.com/file/4iRXVSBcfJ7WQxYSZNc2FO/Components?node-id=40%3A0

I can start with this one.


Updates for Swift 4 and Xcode 9

Any update on integrating this pull request?

@vdeep sorry, it got stalled because it's using our old Travis setup, and no one has had time to port it over to CircleCI. Until we have a chance to merge it, you can point this PR in your Podfile, if you're using CocoaPods:
  pod 'RIGImageGallery', :git => 'git@github.com:Raizlabs/RIGImageGallery.git', :commit => 'f0dfe9ac5813091d58c6cf3c915989d33b53efe8'

It's important to point to a commit rather than to this branch, because once the branch is merged and deleted, CocoaPods won't know where to find it if you run pod install again.
Sorry for the inconvenience!


OPTY-717: Invest Limit abstract contract

Created AdapterInvestLimitBase.sol abstract contract to cover investment limitations on depositing.
PR Checklist

[ ] Tests
[ ] Documentation

@leodinh @deepcrazy I would suggest to provide your thought on this PR.

@leodinh @deepcrazy I would suggest to provide your thought on this PR.

OPTY-717

@mariogutval fix merge conflict

@mariogutval fix merge conflict

Done!


add canonical import paths

The import path was added to the go file that included the package
documentation if one existed.  Otherwise, I used what seemed to be the
primary file for the package.

hmm, can't seem to access this gerrithub page, it gives error "Attempted to access 'login' on a null value at /static//pullrequests.html[line 43, column 55]".  And I can't login to gerrithub because of the level of access it requests.

PR imported as https://review.gerrithub.io/266138


Fix conflicts

@Entomy I've fixed the conflicts. I'll go ahead and merge this if that's cool with you (your commits are here, though I'll have to close the other PR through this, hope that's ok).
Closes #6

Absolutely fine by me

Cheers!


Working IXF database to test the client

Hello,
I am interested in using the IXF Python client to get information on IXPs in the frame of the PhD thesis I am currently pursuing. Yet, the client as it stands doesn't connect to a database. Is there a working instance of the IXF database that can be used? Do you know of another method to get data on IXPs around the globe, especially the IP address ranges they use to match this data with observed traceroutes?
Thanks for your answer,
Antoine

Yep, working instance is at https://db.ix-f.net/api/
There's also PeeringDB

Hello,
Thanks for your answer.
I tried to change the code in client.py, I made the following changes

self.host = 'db.ix-f.net'
self.port = 443
self.path = '/api/'
self.user = None
self.password = None
self.timeout = None
self.validate_ssl = True

I get an error

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

I tried to change the URL for the REST API in the setup.py file but it doesn't find the destination
Can you help me?
Thanks in advance


Finish LICENSE attribution.

https://github.com/shapesecurity/superpack-js/blob/master/LICENSE#L190

This is just part of the Apache 2.0 license. See the lines above for context: https://github.com/shapesecurity/superpack-js/blob/68bfd3a3d1e5d3a63c4208c93166ca5cf528a093/LICENSE#L179-L184


Bug 1832143: bump(*): vendor update

openshift/library-go@a4b1c3e3: factory: add bare informer
openshift/library-go@b051b252: cloudprovider: add oVirt to list of recognized cloud providers

/lgtm


Java Resolver

Beta version published to Maven https://search.maven.org/artifact/com.azure/azure-iot-modelsrepository/1.0.0-beta.1/jar


Adding poll entity

first stage in resolving #27 and creating the final poll entity.

@Sendy459 please update the PR description according to:
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword
to be able to close issue #27 automatically when we merge this PR

@Sendy459 please rebase

LGTM, but you need to rebase

@Sendy459  the commit message has /n instead of new line.
Regarding the sign-off, you can add the standard sign-off using the -s flag: git commis -s .. git commit --amend -s ...`


Add support for Python 3.9 and 3.10

Includes PR https://github.com/etingof/pyasn1-modules/pull/143.
Python 3.10 was released last week.

Closing as this is now done in the new repo:
https://github.com/pyasn1/pyasn1/blob/main/.github/workflows/main.yml
Re: https://github.com/etingof/pyasn1-modules/issues/150


only add jar files as jar dependencies, fixes #148

Otherwise, startup will fail for openjdk because the classpath includes
an entry like this:
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/libatk-wrapper.so
and initializing the compiler symbol table will fail with this (silenced)
error message:
error while loading , Error accessing /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/libatk-wrapper.so

@jrudolph I had to semi-back-this-out in https://github.com/lihaoyi/Ammonite/commit/334a7d53f2e459967af37c5bf9f13d5b137071af and try another fix, because the standalone assembly doesn't have a .jar extension but is apparently a jar-like-thing =/ seems super fragile, but I guess it'll do for now...
I wonder if there's any non-extension way of identifying these jar things.

Yes, sorry, I should have checked the final artifact. If the script/executable jar itself is the problem, maybe it would help to handle the script special as it the one which has a non-standard name.

testing of the final artifact is now in CI https://github.com/lihaoyi/Ammonite/commit/8678be2717afe8e0d0a2968095999ad88a929ecd#diff-4fa8e6cae17231b4cad184442bd48f28R15


[Notion Block] Support Bookmark notion block

Support Bookmark notion block.
Here is reference: https://github.com/meursyphus/react-notion-custom/pull/9#pullrequestreview-2320838474
you should check guideline on https://github.com/meursyphus/react-notion-custom/blob/main/packages/react-notion-custom/CONTRIBUTING.md

@myjeong19


[web] repeated loading of Image.asset when 'Disable cache' is active in chrome devtools

Steps to Reproduce

Have an Image.asset('assets/images/foo.png') in the Scaffold
Have another animated Widget (e.g. CircularProgressIndicator())
flutter run -d web
Activate 'Disable cache' in Chrome Developer Tools
See that the Image.asset loads repeatedly and is not visible anymore

Target Platform: Web
Target OS version/browser: Linux/Chromium/Chrome (tested with 78/89)
Devices: Desktop
Logs
[  +24 ms] executing: [/home/dcsapak/flutter/] git -c
log.showSignature=false log -n 1 --pretty=format:%H
[  +39 ms] Exit code 0 from: git -c log.showSignature=false log -n
1 --pretty=format:%H
[        ] 18cd7a3601bcffb36fdf2f679f763b5e827c2e8e
[        ] executing: [/home/dcsapak/flutter/] git describe
--match v*.*.* --first-parent --long --tags
[   +8 ms] Exit code 0 from: git describe --match v*.*.*
--first-parent --long --tags
[        ] v1.12.13+hotfix.6-0-g18cd7a360
[   +6 ms] executing: [/home/dcsapak/flutter/] git rev-parse
--abbrev-ref --symbolic @{u}
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic
@{u}
[        ] origin/beta
[        ] executing: [/home/dcsapak/flutter/] git ls-remote
--get-url origin
[   +7 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +46 ms] executing: [/home/dcsapak/flutter/] git rev-parse
--abbrev-ref HEAD
[   +8 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +49 ms] Unable to locate an Android SDK.
[  +79 ms] Unable to locate an Android SDK.
[  +23 ms] Artifact Instance of 'AndroidMavenArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is
not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is
not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not
required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not
required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not
required, skipping update.
[ +133 ms] Generating
/home/dcsapak/redacted/android/app/src/main/java/io/flutter/plug
ins/GeneratedPluginRegistrant.java
[  +82 ms] Launching lib/main.dart on Web Server in debug mode...
[        ] Building application for the web...
[+9384 ms] Starting daemon...
[ +156 ms] Initializing inputs
[  +14 ms] Reading cached asset graph...
[ +191 ms] Reading cached asset graph completed, took 187ms

[ +188 ms] Checking for updates since last build...
[ +541 ms] Checking for updates since last build completed, took 541ms

[  +10 ms] Initializing inputs
[   +2 ms] Reading cached asset graph...
[        ] Reading cached asset graph completed, took 187ms
[        ] Checking for updates since last build...
[        ] Checking for updates since last build completed, took 541ms
[ +828 ms] About to build [web]...
[   +4 ms] Running build...
[ +279 ms] Running build completed, took 166ms

[        ] Caching finalized dependency graph...
[   +6 ms] Caching finalized dependency graph completed, took 149ms

[   +4 ms] Succeeded after 323ms with 0 outputs (0 actions)

[   +9 ms] Building application for the web... (completed in 11.6s)
[        ] lib/main.dart is being served at http://flutter-dev:8000/
[   +1 ms] Warning: Flutter's support for web development is not stable yet and hasn't
[        ] been thoroughly tested in production environments.
[        ] For more information see https://flutter.dev/web
[        ] 🔥  To hot restart changes while running, press "r". To hot restart (and refresh the browser), press "R".
[   +2 ms] For a more detailed help message, press "h". To quit, press "q".

Analyzing redacted...
No issues found! (ran in 5.9s)

[✓] Flutter (Channel beta, v1.12.13+hotfix.6, on Linux, locale en_US.UTF-8)
    • Flutter version 1.12.13+hotfix.6 at /home/dcsapak/flutter
    • Framework revision 18cd7a3601 (5 days ago), 2019-12-11 06:35:39 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.
      You may also want to add it to your PATH environment variable.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).

[✓] Connected device (2 available)
    • Chrome     • chrome     • web-javascript • Google Chrome 78.0.3904.108
    • Web Server • web-server • web-javascript • Flutter Tools

! Doctor found issues in 2 categories.

/cc @ferhatb

Are there any solutions to this problem?

Faced one more same problem.
In the Safari ( desktop and mobile ) if Image.network() is in ListVue.builder() and the downloaded images have Header no-cache, there is a constant redrawing even if the cache is not disabled in DevTools. In Chrome, this behaviour is not observed.

Faced one more same problem.
In the Safari ( desktop and mobile ) if Image.network() is in ListVue.builder() and the downloaded images have Header no-cache, there is a constant redrawing even if the cache is not disabled in DevTools. In Chrome, this behaviour is not observed.

I have the same problem on Safari

Does anyone have a solution to this issue?

A very similar thing is happening with HtmlElementViews. Maybe its the same issue? Images being implemented with HtmleElementView? #53253

@Sammius
You can use the http to get an image as a Uint8Array and then use Image.memory():
class PicInMemory extends StatefulWidget {
  final String url;

  PicInMemory(url);
  @override
  _PicInMemoryState createState() => _PicInMemoryState();
}

class _PicInMemoryState extends State<BitPic> {
  Uint8List pic;

  @override
  void initState() {
    networkImageToByte(widget.url)
        .then((image) {
      setState(() => pic = image);
    }, onError: (er)=>print(er));
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Container(
        width: 50,
        height: 50,
        child: pic == null ? Container() : Image.memory(pic));
  }
}

Future<Uint8List> networkImageToByte(String path) async {
  var response = await http.get(path);
  return response.bodyBytes;
}

Verified this using latest beta version and following code sample, the image doesn't load repeatedly.
47125.mov.zip

code sample

return MaterialApp(
        home: Scaffold(
          body: Center(
            child: Column(
              children: [
                Image.asset('assets/Flutter-Cover.png'),
                CircularProgressIndicator()
              ],
            )
          )
        )
    );

flutter doctor -v

[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.24.0-10.2.pre at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 022b333a08 (8 days ago), 2020-11-18 11:35:09 -0800
    • Engine revision 07c1eed46b
    • Dart version 2.12.0 (build 2.12.0-29.10.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (3 available)
    • iPhone SE (2nd generation) (mobile) • 6C85835D-FBFD-4AB3-8DE8-B4FAD35E5367
      • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)
    • Web Server (web)                    • web-server
      • web-javascript • Flutter Tools
    • Chrome (web)                        • chrome
      • web-javascript • Google Chrome 87.0.4280.67

• No issues found!

I am going ahead and closing this as fixed. If anyone disagrees or think this should be kept open, please write in comments and I'll reopen it.
Thanks.


Initiate EML Assembly Line ecology metadata management tutorial

First complete version

Hi @shiltemann @hexylena just added you as reviewers for this tutorial I want to use next week (sorry for the delay...) for a training (and I hope I can use it through Tiaas @bgruening ). the idea is to have a first version and then we will gather feedbacks and come back to it to update it

THNAK YOU so much @hexylena ! I hope I add the draft: true mention as appropriate so we can merge it now, and I started to ameliorate the content notably thnks to all your feedback!!!! THANK YOU so much! Hope all is ok on your side!

https://training.galaxyproject.org/training-material/topics/ecology/tutorials/MetaShARK_tutorial/tutorial.html
something is odd with the images, I am not sure why they didn't render.

THANK YOU !!!!
I just make another PR as it seems I forgot to rewrite links to png images in a GTN manner in a lot of images...
https://github.com/galaxyproject/training-material/pull/4769


model-settings comment not difined

i use laravel 5.6
model settings installation no problem. php artisan model-settings:model-settings-field this returns error There are no commands defined in the "model-settings" namespace.

Hello,
Make sure you installed the package correctly (adding the service provider) and indeed ran dump autoload.
composer dump-autoload


openocd: Update to version 0.11.0-1

Hello! I notice that the old url no longer update. This PR is about this git-repo which I found from OpenOCD homepage.
I'm not sure if "checkver" and "autoupdate" could work properly. Could someone check them? Sorry about that.

/verify

/unsubscribe
Manifest is fine. Will not be merge by me as these random unofficial distributions are not something I would like to see in official buckets


BLE Write Characteristics

I am using https://github.com/sandeepmistry/noble to get BLE(Bluetooth low energy) device details but encountered the following problem. I am able to Scan BLE devices. When i try to get all characteristics it is also working fine, Reading Characteristics is also working fine but when try writing characteristics for BLE devices getting "null" response. Can anyone help, am stuck with this from last week.

Above screenshot shows the error and following is my code which am using for write characteristics :
characteristic.write(new Buffer([111111111111111111]), false, function(error)
console.log('Write characteristic value.'+error);
can anybody help its urgent.

A null error parameter value in the write callback just tells you that there is no error.

yes @stephg there is no error and still "write characteristic value" is null. This is what i am asking that am not getting any error still my write characteristic value is null, there must be some write characteristics. Any help ?

@sahilsheoran please provide the code you are using and an HCI dump capture: sudo hcidump -t -x
To me everything looks good ...

@sandeepmistry Below is the code which i am using to get the write characteristics of BLE device but getting "null" value : var async = require('async');
var noble = require('../index');
var peripheralIdOrAddress = process.argv[2].toLowerCase();
noble.on('stateChange', function(state) {
if (state === 'poweredOn') {
noble.startScanning();
} else {
noble.stopScanning();
}
});
noble.on('discover', function(peripheral) {
if (peripheral.id === peripheralIdOrAddress || peripheral.address === peripheralIdOrAddress) {
noble.stopScanning();
console.log('peripheral with ID ' + peripheral.id + ' found');
var advertisement = peripheral.advertisement;

var localName = advertisement.localName;
var txPowerLevel = advertisement.txPowerLevel;
var manufacturerData = advertisement.manufacturerData;
var serviceData = advertisement.serviceData;
var serviceUuids = peripheral.serviceUuids;

if (localName) {
  console.log('  Local Name        = ' + localName);
}

if (txPowerLevel) {
  console.log('  TX Power Level    = ' + txPowerLevel);
}

if (manufacturerData) {
  console.log('  Manufacturer Data = ' + manufacturerData.toString('hex'));
}

if (serviceData) {
  console.log('  Service Data      = ' + serviceData);
}

if (serviceUuids) {
  console.log('  Service UUIDs     = ' + serviceUuids);
}

console.log();
writeCharacterstic(peripheral);

}
});
function writeCharacterstic(peripheral)
{
//WRIRE CHARCTERSTIC OF A PARTICULAR SERVICE
console.log('services and characteristics:');
peripheral.on('disconnect', function() {
process.exit(0);
});
peripheral.connect(function(error) {
peripheral.discoverServices(['discoveredService'], function(error, services) {
var immediateAlertService = services[0];
console.log('discovered service : Service');
immediateAlertService.discoverCharacteristics(['CHARCTERSTIC'], function(error, characteristics) {
var alertLevelCharacteristic = characteristics[0];
console.log('discovered characteristic : Characteristics');
console.log("characteristics :"+characteristics);
console.log("error :"+error);
// true if for write without response
alertLevelCharacteristic.write(new Buffer([111111111111111111]), false, function(error) { //[0x002d]
console.log('Write characteristic value.'+error);
});
});
});
});
}

$ node
> new Buffer([111111111111111111])
<Buffer c0>

The buffer you are writing is probably not what you want. Try new Buffer('111111111111111111', 'hex') ?

No, its still not working @sandeepmistry, as i tried to read after writing the buffer new Buffer('0x002c', 'hex') ? which you provided but still same response nothing able to write. Below are services and characteristics and i am trying to write for the service who has the "write characteristics" using the code which i given above with "new Buffer('0x002c', 'hex')" but still nothing i can get, Please check.......
services and characteristics:
Service UUID : 1801, Service Name : Generic Attribute
Service UUID : 1800, Service Name : Generic Access
Characteristic UUID: 2a00, Characteristic Name Device Name
properties  read,,,,,read
value       4d6963726f5241452d4d303331303030363631313100 | 'MicroRAE-M031000
66111 '
Characteristic UUID: 2a01, Characteristic Name Appearance
properties  read,,,,,read
value       0002 | ' ☻'
Service UUID : fc2479406e0811e480fc0002a5d5c51b
Characteristic UUID: f833d6c06e0b11e491360002a5d5c51b
properties  read, notify, indicate,,,,,read,notify,indicate
value<PHONE_NUMBER>000000000000000000000000000000 | '
'
Characteristic UUID: 3d1158406e0b11e4b24f0002a5d5c51b
properties  write,,,,,write
Characteristic UUID: 4142b9e0a07411e4b3920002a5d5c51b
properties  read, notify, indicate,,,,,read,notify,indicate
value<PHONE_NUMBER>000000000000000000000000000000 | '
'
Characteristic UUID: b7a8b060a04911e491980002a5d5c51b
properties  write,,,,,write
Service UUID : 180a, Service Name : Device Information
Characteristic UUID: 2a29, Characteristic Name Manufacturer Name String
properties  read,,,,,read
value<PHONE_NUMBER>7920486f6e657977656c6c000000000000 | 'RAE by Honeywell
'
Characteristic UUID: 2a24, Characteristic Name Model Number String
properties  read,,,,,read
value       50474d2d323630300000000000000000000000000000 | 'PGM-2600
'
Characteristic UUID: 2a25, Characteristic Name Serial Number String
properties  read,,,,,read
value       4d303331303030363631313100000000000000000000 | 'M03100066111
'
Characteristic UUID: 2a26, Characteristic Name Firmware Revision String
properties  read,,,,,read
value       312e303820000000 | '1.08    '
Characteristic UUID: 2a27, Characteristic Name Hardware Revision String
properties  read,,,,,read
value<PHONE_NUMBER>000000 | '        '
Characteristic UUID: 2a08, Characteristic Name Date Time
properties  read,,,,,read
$↔' value       e007061b0d241d | '`♠
Characteristic UUID: 2a28, Characteristic Name Software Revision String
properties  read,,,,,read
value<PHONE_NUMBER>000000 | '        '
Characteristic UUID: 2a23, Characteristic Name System ID
properties  read,,,,,read
value       123456ffff9abcde | '↕4V⌂⌂→<^'
Characteristic UUID: 2a50, Characteristic Name PnP ID
properties  read,,,,,read
value       ffffffffffffff | '⌂⌂⌂⌂⌂⌂⌂'
Service UUID : 180f, Service Name : Battery Service
Characteristic UUID: 2a19, Characteristic Name Battery Level
properties  read,,,,,read
value       5c | ''
Service UUID : 9e5d1e475c1343a0863582ad38a1386f
Characteristic UUID: e3dd50bff7a74e99838e570a086c666b
properties  write, notify, indicate,,,,,write,notify,indicate
Characteristic UUID: 92e86c7ad9614091b74f2409e72efe36
properties  write,,,,,write
Characteristic UUID: 347f76082e2d47eb913b75d4edc4de3b
properties  read,,,,,read
value       193a0100 | '↓:☺ '
Its very much urgent now, Help!!!

Hi, I got same error, Does your problem is fixed?

hey there. i know it's too late. Does your problem fixed? if not, please feel free to comment. :)


Not able to activate the bot typing indicators

Hi @charliewang95, @abhinab22mohanty, @sarojkpr, @xTEddie,
I've seen several parameters related to the typing indicators in the defaultProps but I'm not able to find the right one to activate this possibility for the bot. https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-widget/src/components/livechatwidget/common/defaultProps/dummyDefaultProps.ts
What are the settings I need to put to have the same behaviour you have in your screenshot below, 3 dots waving and text Bot is typing...? Do I need to activate or deactivate a specific middleware? Can you share me a working config to have the indicators please?
https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-widget/src/components/livechatwidget/__screenshots__/stateful-components-live-chat-widget-live-chat-widget-fixed-size-cancel-close-chat-chromium-snap.png
Thanks a lot for your help!
Best regard.

Omnichannel Bots (PVA/BYOB) today do not support typings. When bot is trying to respond no typing message is sent over. This is currently by design.
If needed please reach out to Omnichannel PMs for a feature request


feat: RC optimization pass

Description
Problem*
inc_rc and dec_rc instructions can bloat unconstrained code with unneeded rc changes on otherwise immutable arrays.
Summary*
Adds an optimization pass to remove inc_rc vN .. dec_rc vN pairs as long as there are not array_set instructions in the same function which may mutate an array of the same type.
Additional Context
I thought of tracking all inc and dec instructions in the function originally but eventually limited it to finding just those in the function's entry block and exit block respectively. The later is the only place we currently issue dec_rc instructions anyway. This restriction greatly simplifies the code since we do not have to merge intermediate results across several blocks, nor do we have to handle inc/dec in loops.
This pass applies to both acir and brillig functions since acir functions can still be called in an unconstrained context.
Documentation*
Check one:

[x] No documentation needed.
[ ] Documentation included in this PR.
[ ] [Exceptional Case] Documentation to be submitted in a separate PR.

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

This PR is ready to review, only some docs links are failing

Shouldn't possibly mutated also look for arrays sent as parameter to call functions? The nested call might return it aliased even though it's the same underlying array? :thinking:

@sirasistant In that case, I think the called function will inc and dec the reference count of that array internally still. I'll add a test case for it though

Ahh true, i missed the part where it did it by type and not by id! Will do a full review now :)

Looks like the debugger crashes when running the new test. I think I'll have to remove it and file an issue:
The application panicked (crashed).
Message:  expected type with sub-fields, found terminal type: MutableReference { typ: Array { length: Some(3), typ: Field } }
Location: compiler/noirc_frontend/src/monomorphization/debug.rs:199


The page shakes when you select option for the first time

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info

Package Name And Version<EMAIL_ADDRESS>Browser: chrome<IP_ADDRESS>
Reproduction Link: https://codesandbox.io/s/hsoor0

试下 animation=false ?

This bug is fixed at 2.46.1.


Cannot create project "Azure Kubernetes Service"

this is an error
Error while creating build definition: The pipeline is not valid. A task is missing. The pipeline references a task called 'a8515ec8-7254-4ffd-912c-86772e2b5962'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version , job 'Phase_1', step ''.) A task is missing. The pipeline references a task called 'a8515ec8-7254-4ffd-912c-86772e2b5962'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version , job 'Phase_1', step ''.)

@mdx-lab06 Kindly refer to #626
In ADO, go to your organization settings. Got To Policies (under Security) and enable Third-party application access via OAth


Rewrite "@space" responsiveParent/resposiveGrandparent

Really brittle now.  Maybe walk the tree backwards.
Check parent -> parent -> etc until we hit @responsive or root. Build a selector.

Shouldn't be neccessary to walk, since unnesting does most of the work


TypeScript 2.7 and 2.8 features

We need to update the readme to add the latest features from TS 2.7 and 2.8.
Help appreciated!

I am on it. Now that I had you here, I think there should be a section of the document for a what-is comparison. I mean, Typescript is a complete language, a strict super set of JavaScript, and does not need anything else aside the Typescript compiler. Other things too, but, that's consistent. And Flow is only a static type checker, it needs something to eliminate the typing of the code, this is probably Babel works. There are a few advantages, for one side, or other, but I do have to say that with Typescript you only need it, and with Flow you would need, Babel and all that.

Thanks!
As for your comment on what-is, I would say a better comparison would be of steps necessary to run TS vs Flow. They're both supersets of JavaScript, and they're both their own languages. It's just different marketing, plus TS requires you to change the file extension, and Flow doesn't.
I think more importantly, the valid difference is that:
TypeScript has both

a typechecker
its own emitter/compiler

While Flow only does the first, and needs either babel, flow-stip-types (or something else) to do the actual emitting.
But you can also setup TypeScript as a typechecker only, and similarly use babel for emitting. So in that respect, they're no different.

But Flow is not a language, it have its own syntax, but it's not a language. Typescript have language features, like Enums, Interfaces, to name a few.
You have a point regarding that you can compile a Typescript file using Babel 7, but I don't think I would really check for type errors, it just would remove the type code.
And, you can use the power of Typescript in plain Javascript, with a magic comment // @ts-check

I made the PR. I hope you like it. If you fell something is missing, I'll add it. Thanks you.

Update: I ask for a way to implement a $Diff like in Typescript using Conditional Typing:
class A {
  a: string;
  b: string;
}

class B {
  a: string;
  c: string;
}

type C = Pick<A, Exclude<keyof A, keyof B>>;

This work, but is not exact the behavior, as in Flow, this would throw because B have properties that A does not have. Here, the extra properties are just ignored.

Thanks @michaeljota. I'll have a look at it this week!

ReturnType, and other predefined conditional types were added https://github.com/Microsoft/TypeScript/pull/21847
They also added a feature for folks to make their own conditions types: https://github.com/Microsoft/TypeScript/pull/21496
:)

@michaeljota

But Flow is not a language, it have its own syntax, but it's not a language. Typescript have language features, like Enums, Interfaces, to name a few.

To my knowledge, the only two places where TypeScript adds a feature that is not just a type annotation are Enums and class members declared in the constructor. But that's essentially like having a special babel plugin for these two.
Every other TypeScript-specific syntax has to do with type checking only.
With just these two differences, I don't think its enough to segment TypeScript and Flowtype as different "things" (whether we call both a new language, or a new syntax for an old language).
The point of this repo is to show both differences and similarities. While I think it's important to point out these 2 special emit TypeScript features, overall, both projects are essentially: JavaScript with a syntactic extension for typechecking. One more noteworthy difference is that TypeScript includes its own emitter/transpiler, while Flow requires an external one (Babel or flow-strip-types).

You have a point regarding that you can compile a Typescript file using Babel 7, but I don't think I would really check for type errors, it just would remove the type code.

Sure, just as Babel doesn't check type errors when compiling Flowtype, it wouldn't check for type errors when compiling TypeScript.

And, you can use the power of Typescript in plain Javascript, with a magic comment // @ts-check

Indeed! This would be great to mention in the readme. The @ts-check mode is something that makes TypeScript closest to Flowtype's comment annotation syntax.

To my knowledge, the only two places where TypeScript adds a feature that is not just a type annotation are Enums and class members declared in the constructor. But that's essentially like having a special babel plugin for these two.
Every other TypeScript-specific syntax has to do with type checking only.

This is true in part, because Typescript have aligned itself with a more stricter super set of JavaScript plan, but they did include in the past several features that were not available in plain JavaScript, like modules, and private members.

With just these two differences, I don't think its enough to segment TypeScript and Flowtype as different "things" (whether we call both a new language, or a new syntax for an old language).

I think is about semantic here. Flow only purpose is to add type checking to JavaScript, you can use plain JavaScript, and remove the type info with flow-remove-types, and if you want to use additional properties, then you would need Babel and configure it will all the plugins you would need to. Typescript required anything, but itself.
Both of them have its advantage, with Flow and Babel you can use ES proposal in low stages, and with Typescript you would have to wait until the compiler adds them, probably until Stage 3. Typescript is simpler to setup, but still powerful.
Anyway, I'm writing this in a blog Typescript vs Flow.

Yeah, I agree, it's a discussion about semantics. All in all, I think it's important to understand the difference, but at the same time see how TypeScript is two tools in one (typechecker + transpiler).

with Flow and Babel you can use ES proposal in low stages

This is not actually correct, since Flow still needs to support parsing and typechecking for these proposals. The situation is really the same as with TypeScript, and in fact, some low stage proposals (like decorators) have better support in TypeScript than with Flow, which doesn't do any type checking for decorators.

I see. As I said, I haven't use Flow that much, so my knowledge about it is quite limited. I do have a few tears years with Typescript. :relieved:

Absolutely @bfricka. I'd be happy to accept PRs adding & describing these similarities & differences.


add permission for observatorium sa for crud of poddisruptionbudgets

https://github.com/open-cluster-management/backlog/issues/10847

Good catch 👍
/lgtm


Bash install script

This script does all the headless browser installing for you instead of having to run each command manually.
(If you remember, this was the part of the night where I was saying this was very "programmery")

Looks good to me.