ImportError: cannot import name '_oboe' from 'solarwinds_apm.extension'  on M2 MacBook Pro

Environment
2023 MacBook Pro
Apple M2 Max
Python 3.10.2
Steps to reproduce
requirements.txt
solarwinds-apm
flask

app.py
# Importing flask module in the project is mandatory
# An object of Flask class is our WSGI application.
from flask import Flask

# Flask constructor takes the name of
# current module (__name__) as argument.
app = Flask(__name__)

# The route() function of the Flask class is a decorator,
# which tells the application which URL should call
# the associated function.
@app.route('/')
# ‘/’ URL is bound with hello_world() function.
def hello_world():
    return 'Hello World'

# main driver function
if __name__ == '__main__':

    # run() method of Flask class runs the application
    # on the local development server.
    app.run()

Then
$ pip install -r requirements.txt
$ opentelemetry-bootstrap --action=install
$ opentelemetry-instrument python app.py

Expected behavior
Flask server starts up with otel instrumentation enabled
Actual behavior
Configuration of solarwinds_configurator failed
Traceback (most recent call last):
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py", line 105, in _load_configurators
    entry_point.load()().configure(auto_instrumentation_version=__version__)  # type: ignore
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2450, in load
    return self.resolve()
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/configurator.py", line 38, in <module>
    from solarwinds_apm.apm_config import SolarWindsApmConfig
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/apm_config.py", line 39, in <module>
    from solarwinds_apm.extension.oboe import Context
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/extension/oboe.py", line 10, in <module>
    from . import _oboe
ImportError: cannot import name '_oboe' from 'solarwinds_apm.extension' (/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/extension/__init__.py)
Failed to auto initialize opentelemetry
Traceback (most recent call last):
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py", line 121, in initialize
    _load_configurators()
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py", line 109, in _load_configurators
    raise exc
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py", line 105, in _load_configurators
    entry_point.load()().configure(auto_instrumentation_version=__version__)  # type: ignore
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2450, in load
    return self.resolve()
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/configurator.py", line 38, in <module>
    from solarwinds_apm.apm_config import SolarWindsApmConfig
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/apm_config.py", line 39, in <module>
    from solarwinds_apm.extension.oboe import Context
  File "/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/extension/oboe.py", line 10, in <module>
    from . import _oboe
ImportError: cannot import name '_oboe' from 'solarwinds_apm.extension' (/Users/mkoch/.pyenv/versions/3.10.2/lib/python3.10/site-packages/solarwinds_apm/extension/__init__.py)
 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://<IP_ADDRESS>:5000
Press CTRL+C to quit
^C%

Additional context
None

Hi @mkochco , thanks for reporting this.
We've released solarwinds-apm 0.12.0 which should stop those error traces.
At this time, the APM Python library is only supported on these distros of Linux: https://documentation.solarwinds.com/en/success_center/observability/content/system_requirements/apm_requirements.htm#link3 To run the instrumented Flask app on Mac, I recommend running in a Docker container using a Linux image.


Distro packages for cri-containerd

As we approach cri-containerd beta release, its time to review packaging. We would like to work with various Linux distribution maintainers to produce and maintain cri-containerd package.
The goal is for end users to be able to consume cri-containerd without having to learn and add custom repositories/sources. It will be useful to have packages for the following Linux distributions at a minimum:

[ ] Debian
[ ] Ubuntu
[ ] Fedora
[ ] Arch
[ ] Alpine
[ ] Gentoo

Any help from the Linux distro maintainer community is greatly appreciated!

Closing as a duplicate to https://github.com/containerd/containerd/issues/1508

Yes, this should be fine!


DescopeInterceptor for reactSDK

I am trying to catch 401 while fetching refresh token in react sdk I found DescopeInterceptor in angular sdk is there a way to catch 401/403 while refresh token

Hey @laxmipsarva
Have you looked on the onSessionChaned hook?
It is also called when the token is reset after 401 (when session expires)
Maybe something like the following
const sdk = useDescope()

useEffect(() = > {
  sdk.onSessionChange(session => {
    if (!session) { ... }
  })
}, [sdk])

Hey @laxmipsarva
Have you looked on the onSessionChaned hook?
It is also called when the token is reset after 401 (when session expires)
Maybe something like the following
const sdk = useDescope()

useEffect(() = > {
  sdk.onSessionChange(session => {
    if (!session) { ... }
  })
}, [sdk])

Thank you


More responsive UI with some rebuilds prevented

Reworked the container start up procedure to have avoid doing a deferred geometry generation call in some cases. Now, instead of depending on the auto-calling of deferred loading via export var property setget callbacks, we now avoid doing generation during getting ready.
Added a stress test file which can be used for speed checking of generation in the future, as well as updated unittests to reinforce pre-existing behavior of emitting the on_road_updated signal on RoadContainers even if no road segments are generated (such as having no children, or if clear_existing=false while all road segmetns already have initial meshes in place).
Also improved in-code documentation for export vars.
Breaking change:
The RoadManager.rebuild_all_containers function is no longer a deferred call but will rather block until all segments are built (use the new rebuild_all_containers_deferred function for the old behavior), and also has an argument clear_existing which is off by default now - which means pre-existing callers will move from a full rebuilding of road segments to only rebuilding dirtied/known missing road segments.

Merging this, and added a draft note about the breaking change in a draft release for now.


Add getStatusName

Description:
Add util function to convert enum Status to string name.
Why:
It can be used as error name in the respond code detail in the envoy jwt_authn filter

@qiwzhang @nareddyt PTAL

Use the statusString for rc_detail instead. This PR is no need anymore.


Compensate for scheduled play w/ tests

This is again to address #2691 and #2708, but this includes the tests for that. I also refactored the getCurrentTime() function so it matches the style of the play() function now, using the player's NodeStatus enums.

Looks like they pass now :) !


feat(FN-1862): refactor TFM mark report as completed

Introduction :pencil2:
We need to update the mark report as completed functionality to use the SQL database.
Resolution :heavy_check_mark:

Introduces a UtilisationDataMockEntityBuilder to libs/common
Adds more controller tests for put-utilisation-report-status.controller

Miscellaneous :heavy_plus_sign:

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 31.74%. Comparing base (197ce3a) to head (cdd1f40).

Additional details and impacted files
@@                        Coverage Diff                         @@
##           feat/FN-1859/upload-report-sql    #2883      +/-   ##
==================================================================
+ Coverage                           27.92%   31.74%   +3.82%
==================================================================
  Files                                1363      662     -701
  Lines                               30437    16123   -14314
  Branches                             4899     2325    -2574
==================================================================
- Hits                                 8500     5119    -3381
+ Misses                              19145     9838    -9307
+ Partials                             2792     1166    -1626

Flag
Coverage Δ

api-test
0.48% <ø> (ø)

ui-test
77.12% <ø> (+11.77%)
:arrow_up:

unit-test
5.03% <ø> (-6.37%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


PL2 Core and Secondary Features

PL2 core features

Pattern generation
Pseudo-patterns
Pattern search
Ish. browser resizing controls
Pattern info
Annotations
HTML/Mustache code view

PL2 secondary features
Secondary features are features that already exist in PL1 or upcoming features that should be implemented as plugins in PL2. The goal is to keep the core lightweight and lean, but still provide the opportunity to extend PL to get it to do what you want it to do.

Pattern status
Page follow
Auto refresh
QR code link
Media query list
CSS/JS code view
Keyboard shortcuts

I also think strategically it's alright to launch with just the core feature set and spend the time bringing those secondary features to light via plugins over time. I'm going to go out on a limb to say most folks will be able to get by without those secondary features right out of the gate.
@dmolsen, definitely weigh in on this because I could be totally missing the mark.

I'm not a huge fan of going backwards on support but I understand we want to get something out at some point. I know you've deleted some stuff already (a few keyboard shortcuts and the QR code code) but please let me rip the rest of it out. I don't like having to go back into the repo to grab code I'll need to recreate these things. I'm going to have to cull out a fair bit.

I know you've deleted some stuff already (a few keyboard shortcuts and the QR code code) but please let me rip the rest of it out

Sounds good.

I don't like having to go back into the repo to grab code I'll need to recreate these things. I'm going to have to cull out a fair bit.

Yep, and hopefully ripping that stuff out will feel like spring cleaning hahaha. I think these secondary features are certainly helpful for some, but it would be great to have a nice clean core.

I understand where you're coming from and I need to make more robust hooks for plugins anyway but this isn't somehow saving me any trouble.


Update readme

Since this readme shows up on docker hub, we should at least explain what The Lounge is.

Wait for https://github.com/thelounge/lounge/pull/2003 to be merged before merging this, I feel like we're going to change some stuff there.


[FEA] Create live onboarding

We should teach the user the basic Bumblebee functionality through a live onboarding.
We could use de foo.csv file in /example/data/
Some basic function we can show are:

Load Data
Clean accents and special chars
Unnest
Nest
Filter
String clustering
Outliers
Save data to a file

@BrendaHali Any other feature do you think we need to show?

We could use intercom to handle this


DialPipe doesn't retry on ERROR_FILE_NOT_FOUND

I am seeing an error where DialPipe is returning ERROR_FILE_NOT_FOUND (2). If I retry a few times the function succeeds. I see DialPipe only retries if it received ERROR_PIPE_BUSY. However I took a look at the npipe library and it seems like it retries on either ERROR_PIPE_BUSY or ERROR_FILE_NOT_FOUND.
I have not tested npipe but I am using a work around of retrying DialPipe every 10ms if it returns this errno which seems to resolve my issue. I think DialPipe should do this internally the same way it handles ERROR_PIPE_BUSY, retrying until it exceeds the overall timeout. Although I am not familiar with windows APIs and it seems counter intuitive that "file not found" would be a temporary error.

@camr2 - This is by design. It doesn't make sense from a client perspective to retry waiting for a server connection to be started (IE: enter the listen/accept state). A client should really only be trying to connect to a path that is already created.

I believe the server has started listening, I used os.Stat which seems to think the file path exists, but even afterwards I get "file not found". I am integrating my client with a c application that is not using this library, so it is possible that app is not starting the server connection correctly. But I found it interesting that the npipe library retries on "file not found." This is happening on a particularly sluggish hyper-v VM.


Add Artefactual

Disclaimer: I work for Artefactual.

Hi @sevein, thanks for this :+1:
All good that you work for the company - this is encouraged as it ensures we have accurate data. Is UTC-8 - UTC-2 the hours you work, or the region you are able to hire in? I'll merge this now, you can add clarification later if you want

UTC-8 to UTC+2 is the region we are able to hire in.  I work at Artefactual too.

Cool, I'll add that clarification myself later, good to have commits from company employees themselves :)


Refactor the code in Ecto.Model.Callbacks

This is something of a throwaway PR, but I'm sure that if it gets rejected I'll still learn something :smile:.
Dealing with {local_function}, {local_function, args}, {module, function}, {module, function, args} is a mess and the way it was handled feels a little bit too magic-y to me. It took me a while to understand the (module, function, args) vs. the (function, args, []) pattern, where the latter can mean both a call to a local function with args as well as function (args) called on the function module :octopus:.
This PR makes the code a little more verbose (and not very DRY, but it wasn't very DRY before either - I guess we have to blame not being able to expand private macros at the module level at compile time!), but IMO easier to understand.
I haven't updated the docs for this change (resulting in lots of functions not documented) because I want to hear from you first; if you like the changes I'll update the docs :smiley:.
Thanks!

I think I can't push to this PR anymore since it's been closed, so I'll just answer to your concerns with words instead of code :smile:.
I inlined all the when clauses; as for the docs, the issue of having an additional function to document can be solved (see callbacks.ex in my fork) with the "optional argument" trick:
defmacro before_insert(function, args \\ [])

defmacro before_insert(function, args) when is_list(args),
  do: register_callback(:before_insert, function, args)

defmacro before_insert(module, function) when is_atom(function),
  do: register_callback(:before_insert, module, function, [])

defmacro before_insert(module, function, args),
  do: register_callback(:before_insert, module, function, args)

This way two functions have to be documented, like they're documented now.
PS As I stated in the PR, I didn't remove the docs and expect this to be merged that way :) I only removed them in order to clean up the code to be reviewed; I was going to add them back (and updated for the new "shape" of the functions) in case this turned out to be interesting.


Keep Shortcut Guide on screen when Windows key released

Description of the new feature / enhancement
It would be good if the shortcut guide remains on screen when you release the Windows key or at least have the option when holding down the windows key to either close when key is released or left on screen and closed when key pressed again.
Scenario when this would be used?
It would allow you to see the options without having to keep the key pressed while you read the screen, this will improve usage as you can just use a single tap to bring up the screen and another one to dismiss.
Supporting information
No response

If you use Win+? trigger, it will stay open.  Issue is having predictable behavior and we believe behavior is hold Win keyboard then trigger the item you want on the screen


Excess Old Pulls & Issues

Config
https://github.com/theme-next/hexo-theme-next/blob/master/.github/release-drafter.yml
# Configuration for Release Drafter - https://github.com/toolmantim/release-drafter

name-template: 'v$NEXT_MINOR_VERSION'
tag-template: 'v$NEXT_MINOR_VERSION'
categories:
  - title: '💥 Breaking Changes'
    label: '💥 Breaking Change'

  - title: '🌀 External Changes'
    label: '🌀 External Change'

  - title: '🌟 New Features'
    label: '🌟 New Feature'

  - title: '⭐ Features'
    label: '⭐ Feature'

  - title: '🛠 Improvements'
    label: '🛠 Improvement'

  - title: '🐞 Bug Fixes'
    label: '🐞 Bug Fix'

  - title: '📖 Documentation'
    label: '📖 Docs'

  - title: '🌍 Localization'
    label: '🌍 i18n'

change-template: '- $TITLE (#$NUMBER)'
no-changes-template: '- No changes'
template: |
  $CHANGES
  ***
  For full changes, see the [comparison between $PREVIOUS_TAG and v$NEXT_MINOR_VERSION](https://github.com/theme-next/hexo-theme-next/compare/$PREVIOUS_TAG...v$NEXT_MINOR_VERSION)

Problem

Issue #25 and Pull #22 was closed in 2018. As we can see, at least pulls under ≈800x numbers can be included, not ≈100x.
Possible solution
In previous month that bug wasn't appear as I remember. Also, emoji on labels wasn't used before, maybe some conflict here.

Hey @ivan-nginx, thanks for reporting this issue. I'm closing this issue in favor of #221, after testing the same problem is occurring here. In short, the reason #25 and #22 are showing up is because they're part of the associated pull requests of the commit, but they're PRs to a fork (you can't see that because the url to the PR is wrong) and we should filter them.


Cant use GUI to create reference to overlay memory blocks

Describe the bug
Can't use "Reference Manager" to create a reference to other memory block.
Using the script "ResolvelX86or....." works though so it seems to be a problem in the GUI only.
To Reproduce
Steps to reproduce the behavior:

Go to "Reference MAnager"
Click on 'Add reference' (the PLUS sign)
Try to create a reference to "syscall::0"
See error

Expected behavior
Expecting a reference to syscall::0 block where a function prototype has been created
Screenshots

While in 10.4 we have an extra window to specify the block name

Environment (please complete the following information):

Java Version: 17.0.9
Ghidra Version: 11.0
Ghidra Origin: Problem exists in release 11.0, 11.1
Last correct version: 10.4

Additional context
Bisecting gives
0f95d266c35e6121b1b72ed802ac616eaa58dee7 is the first bad commit

This seems to solve the problem for me.
This is probably not a correct patch in any way but proves that the filtering is failing while building the list of addresses.
Should give the original author a pretty good idea of how fix the problem :-)
--- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/AddressInput.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/AddressInput.java
@@ -212,7 +212,7 @@ public class AddressInput extends JPanel implements FocusableEditor {
int width = 0;
for (AddressSpace space : spaces) {
if (!predicate.test(space)) {

                          continue;

                          //continue;
                  }
                  String s = space.toString();
                  width = Math.max(width, fm.stringWidth(s));

Issue is acknowledged.  We will look into adding a user-managed list of OTHER overlay spaces which may be included with the AddressInput control for this dialog.


Simplify template error message once error causes are better-supported.

See #128 for the original motivation here. Just opening this ticket to simplify some of our error logging to keep things as tidy as possible.
Current:
  render() {
    const { template, properties, renderRoot, render } = XElement.#hosts.get(this);
    const result = template(properties, this);
    try {
      render(renderRoot, result);
    } catch (error) {
      const pathString = XElement.#toPathString(this);
      const message = `${error.message} — Invalid template for "${this.constructor.name}" at path "${pathString}"`;
      throw new Error(message, { cause: error });
    }
  }

Proposed:
  render() {
    const { template, properties, renderRoot, render } = XElement.#hosts.get(this);
    const result = template(properties, this);
    try {
      render(renderRoot, result);
    } catch (error) {
      const pathString = XElement.#toPathString(this);
      const message = `Invalid template for "${this.constructor.name}" at path "${pathString}"`;
      throw new Error(message, { cause: error });
    }
  }

☝ — See the difference? We ought to not have to literally repeat / embed the original error in our own messaging.

Note that this is currently supported in Firefox. Here’s a link to the Chrome bug.

This seems to work in all browsers now. BUT — we may want to consider that the cause there may or may not itself have an error associated. I.e., an error cause could be the original error, or it could be any compound object… I’m actually surprised / disappointed to learn this. It feels like a bad abstraction to me 🤷
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause

We’ve made the related changes here. Closing.


Choose filter when creating column

It would be nice if you can setup desired filter at startup instead of default one (maybe another constructor?)

yes, I will implement it soon :)


Switch oxide to binary

Toltec builds are crashing on device.

@matteodelabre FYI I had to switch to a binary release because the build output of the toolchain is crashing.

I think this indicates a problem either in the toolchain or in oxide, which I’d rather fix instead of working around.

When compiling oxide in debug mode, I get no crash, which makes it harder to see what’s going on. The crash I get on release mode (“terminate called without an active exception”) might indicate that you’re destructing a thread without joining it first.
Also, unrelated to the crash, but the systemd service file declares a conflict with itself instead of with draft.service. Maybe a copy-paste error?
[Unit]
Description=oxide system service
After=home.mount
StartLimitInterval=30
StartLimitBurst=5
Conflicts=remux.service tarnish.service xochitl.service

[Service]
ExecStart=/opt/bin/tarnish
Restart=on-failure
RestartSec=5
Environment="HOME=/home/root"
Environment="PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"

[Install]
WantedBy=multi-user.target

I’m able to reproduce the crash with debug symbols when compiling in release mode with forced debug symbols. Seems that the crash happens around here: https://github.com/Eeems/oxide/blob/master/applications/system-service/appsapi.cpp#L25

I’m able to reproduce the crash with debug symbols when compiling in release mode with forced debug symbols. Seems that the crash happens in the constructor of AppsAPI. But it could come from another thread, and I’m not able to switch threads with gdb.

Could you open an issue on oxide about this? I'm surprised that this doesn't happen with to rM toolchain.

I’m able to reproduce the crash with debug symbols when compiling in release mode with forced debug symbols. Seems that the crash happens in the constructor of AppsAPI. But it could come from another thread, and I’m not able to switch threads with gdb.

Could you open an issue on oxide about this? I'm surprised that this doesn't happen with to rM toolchain.

I’m surprised too. The gcc version in the reMarkable toolchain is 7.3.0, and the gcc in the toltec images is 8.3.0, which might explain the difference. I’ll open an issue.


[Bug]

It says "BetterDiscord seems to have crashed your discord client"
"BetterDiscord has automatically disabled itself temporarily. Try removing all your plugins then restarting discord"
Help?

Have you tried removing your plugins? Please in the future be sure to fill out the issue template properly so we have more information to go off.

Have you tried removing your plugins? Please in the future be sure to fill out the issue template properly so we have more information to go off.

there is a bug, when someone sends this site: https://tornadus.net/orange it converts into gif and when someone sees it, it completly crashes discord

Have you tried removing your plugins? Please in the future be sure to fill out the issue template properly so we have more information to go off.

there is a bug, when someone sends this site: https://tornadus.net/orange it converts into gif and when someone sees it, it completly crashes discord

Are you sure this is related to BD? Does it happen with BD uninjected?

Have you tried removing your plugins? Please in the future be sure to fill out the issue template properly so we have more information to go off.

there is a bug, when someone sends this site: https://tornadus.net/orange it converts into gif and when someone sees it, it completly crashes discord

Are you sure this is related to BD? Does it happen with BD uninjected?

yes, it gives the message from the original post "BetterDiscord seems to have crashed your discord client"

Try troubleshooting by doing this:

tried that already

Try troubleshooting by doing this:

thanks that helped, it works now


fix(prettier): use recommended rules to avoid eslint conflicts, revert #797

https://github.com/prettier/eslint-plugin-prettier#recommended-configuration
If you use the default prettier extension instead of the recommended plugin:prettier/recommended and use prettier together with eslint, it can cause issues, for example with the following code:

// have any variable a
[].forEach((b) => a = b)

if you run npm run lint:js -- --fix, you will get
error    Arrow function should not return assignment  no-return-assign
instead of the code being fixed to ;[].forEach((b) => (a = b)) as it's supposed to.
Prettier officially recommends this setup, so I believe it to be a better default & long-term choice for new Nuxt developers.

An example of a use-case:
https://github.com/quicktype/quicktype#generating-code-from-json-schema
generates code like typ.props.forEach((p: any) => map[p.json] = { key: p.js, typ: p.typ }); in function jsonToJSProps, increasing learning curve by forcing users to look for workarounds once they include a similar code generator to their project.

@clarkdo nah it's an unrelated issue.

(but I'd lie if I said that I didn't just mistakenly come to incorrect conclusions about eslint-plugin-vue including the eslint-plugin-prettier after accidentally installing it as a direct dependency instead of devDependency, and then having to debug all the combinations... 😅)

I just noticed that this PR reverts https://github.com/nuxt/create-nuxt-app/pull/797, where it's suggested that this is "generally not recommended by the Prettier official". However, even though it may not be recommended when using Prettier as a standalone tool, the eslint-config-prettier used by this plugin seems to be necessary as long as users also install eslint. Maybe we could disable it if the eslint isn't selected? In any case, the current behavior without the plugin is unstable.
prettier/eslint-config-prettier: "Turns off all rules that are unnecessary or might conflict with Prettier."

Updated version to 3.4.1 (though I can't find this version on https://github.com/prettier/eslint-plugin-prettier/releases/) and resolved conflicts. By the way, should we also resolve conflicts if they are caused only by snapshot tests?

I apologize for any disturbance caused by the PR I created.
If you want to fix this problem from the CLI, you can use prettier -w .  . Or set prettier as formatter in the editor settings.
VS Code example
{
    "editor.defaultFormatter": "esbenp.prettier-vscode", // insert this line
    "editor.formatOnSave": true, // optional
}

This is the quote from official prettier.

When searching for both Prettier and your linter on the Internet you’ll probably find more related projects. These are generally not recommended, but can be useful in certain circumstances.
 By running Prettier inside your linters, you didn’t have to set up any new infrastructure and you could re-use your editor integrations for the linters. But these days you can run prettier --check . and most editors have Prettier support.
The downsides of those plugins are:

You end up with a lot of red squiggly lines in your editor, which gets annoying. Prettier is supposed to make you forget about formatting – and not be in your face about it!
They are slower than running Prettier directly.
They’re yet one layer of indirection where things may break.

Nuxt.js does recommends VS Code as an editor, and VS Code supports Prettier.
Therefore, I think that re-installing eslint-plugin-prettier is a disadvantage for most people.
If you want to use the script in packages.json, I will create a PR with the script adjusted like this.
{
  "name": "eslint-prettier-test",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .",
    "prettier:js": "yarn prettier --ignore-path .gitignore **.js **.vue", // insert this line
    "lint": "yarn prettier:js -c; yarn lint:js", // change this line
    "lint:fix": "yarn prettier:js -w; yarn lint:js --fix" // insert this line
  },
  "dependencies": {
    "core-js": "^3.15.1",
    "nuxt": "^2.15.7"
  },
  "devDependencies": {
    "@babel/eslint-parser": "^7.14.7",
    "@nuxtjs/eslint-config": "^6.0.1",
    "@nuxtjs/eslint-module": "^3.0.2",
    "eslint": "^7.29.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-nuxt": "^2.0.0",
    "eslint-plugin-vue": "^7.12.1",
    "prettier": "^2.3.2"
  }
}

Thanks for the clarification, we now have the context behind the decision, as we've removed Prettier from Eslint which was previously able to apply it directly, even as part of its own --fix parameter usage. (I think it'd be worth explicitly communicating this opinionated decision to end users of the generator, as we're currently quite silent about these matters.)
It seems you're right and this issue of eslint conflict can be resolved by just running prettier as part of lintfix before eslint. I already have an open PR #829 where I suggest adding a lintfix script, so it may be a good idea to explicitly reorder the scripts. (Maybe this will also fix another consistency issue that I'm having where sometimes I have to run lintfix multiple times in a row. I haven't found any source of truth stating the "correct order", which I think would be worth documenting.)
Even though I'd prefer running only eslint on the generated code (like JSON schema parsers) without having to also run prettier (causing unnecessary code diff), it seems the same no-return-assign issue persists even if I don't include any prettier plugin in .eslintrc.js, so it's indeed not an issue of prettier. The correct usage seems to thus require adding && prettier --write generated.ts && eslint --fix generated.ts at the end of the code generator script`. But just to cover the remaining scenarios, this question remains: if prettier always fixes these eslint rules, why do we need to keep them enabled? Wouldn't it be better for eslint-config-prettier (which we already use) to exclude them directly?
A note about your suggested "editor.formatOnSave": true, just for reference: there were some reasons (but I don't remember exactly why) for replacing it with the other alternative. However, these settings don't work at all if you already use auto-saving (which I'd say is objectively a better default), so we're stuck with using the formatter directly, or using it as part of lintfix. My VSCode configuration (saved in project as .vscode/settings.json) includes the following, requiring an exception for [vue]:
  "editor.codeActionsOnSave": ["source.fixAll"],
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[vue]": {
    "editor.defaultFormatter": "octref.vetur"
  }

@scscgit that's why I posted a how-to on stackoverflow to provide a straightforward configuration for newcomers.

@kissu Yeah thanks, we'll see what the maintainers of create-nuxt-app will have to say after considering both pros and cons of using Prettier via ESLint. (There has been a very low activity here over last few months, as I still have several pending PRs.) I'm keeping this PR disabled for now, as I haven't tested the ESLint behavior & compatibility myself except the matter of ESLint conflicts, so there may be additional changes needed. I won't be working on this, so feel free to join in the PR if you have updates. We could even consider something like updating this PR to add an optional setting like "use standalone prettier".
I personally believe that, at this moment, it's better for the default setup to use standalone Prettier based on its official recommendation, as I haven't observed any critical issues on the latest version. The IDEs that you've mentioned are all covered by https://prettier.io/docs/en/editors.html so if there are any specific cases that aren't covered, it'd be nice to explicitly communicate them, probably even linking them as a GitHub issue for Prettier. It's quite likely that some combinations (Prettier or ESLint) will break again in the future, and it feels like Prettier will only provide up-to-date first-class support if we follow their official setup. I think we should track the specific issues (including difference in performance of the plugin choices, though sometimes a dedicated plugin provides additional benefits - after all, they continuously update it). Btw. your example includes both 'plugin:prettier/recommended' and 'prettier' rules, which seems redundant (and is also a reason why this needs to be better analyzed to avoid incorrect combinations), and the You'll also benefit from having Vue/Nuxt specific ESlint rules also has to be confirmed, as I believe the Nuxt-specific rule is preinstalled as plugin:nuxt/recommended. That said, if there are any objective benefits, it'd be great to include this in generator at least as an optional setup; or even better, we could look for ways how to set up project using only Prettier in such a way that developers can locally override it to be used via ESLint, without having to see any "pending Git changes". (And I don't see why not to put some optional/troubleshooting steps into generated README as part of the project.) I believe developers should always have a final say in what IDE setup they want to use (which includes not overriding their ESLint behavior), whereas the plugins should be a source of truth for enforcing code quality (before pushing any changes).
This choice will also impact my PR #829 where the prettier would probably disappear from lintfix, so I'd prefer to get it merged first, and then this PR could remove the entry if we decide to go this way (so it's clear that it was intentional).

In any case, my primary issue with create-nuxt-app right now is the lack of prettier inside lintfix script, along with the lintfix itself (and the same for lint, which currently doesn't allow enforcing code style via commitlint), but it works very well once I configured it (together with a correct combination of VSCode extensions, which took ages to research by trial and error).


angular 2

Does it work with angular 2 , and if so .
can you provide any tutorial on that ?
Thanks

Hi @amrayoub !
It works on any frontend framework you wanna use (Angular, Angular 2, Ember, React, VueJS, Aurelia, Elm, ...).
If you want to have your application and your endpoint on the same domain you need to configure Nginx to serve every requests to your index.html and whitelist /api/ (or whatever url you have for your endpoint) to go to your Adonis application.
It's better in my opinion to separate by a domain your api and your application (api.example.com, example.com). If you do that you will only need to configure Nginx to redirect every request going to example.com to your index.html file.

@amrayoub This question is like you to ask if CakePHP/Zend/Symfony/Laravel/Silex works with angular2. Right @RomainLanz ?

Yes.
Frontend stuff do not depend on the backend technologies/frameworks.


Relation to Zwave JS integration in HA

Zwave JS integration in HA allows you to add devices, setup automations, and so on. It has it's own configuration, and lock Zwave controller serial port exclusively.
Z-Wave JS UI has it's own configuration, and as far as I could understand, tries to lock serial port of Zwave controller too.
How do this 2 different things work together? Does Zwave JS UI addon replaces native Zwave JS integration? Does it work in combination?
All I want is to have a UI for my Zwave network. however, addon demands path to serial device, and fails to start because it can't lock it in.

Z-Wave JS UI has it's own implementation of Z-Wave JS, they are not meant to be run at the same time.
see: https://community.home-assistant.io/t/z-wave-js-vs-with-z-wave-js-ui/503243


Aritcle LIFF scaffold

This PR implements an article & reply LIFF (Previous proposal) that functionally supports:

Show the article by articleId in URL param
If no replies yet, show button for user to submit reply request
Lists all replies or show only the reply specified by replyId in URL param
Upvote & downvote article replies
setup userArticleLink so that users can be notified via Cofacts chatbot when new replies are available

implements setViewed mutation in LINE bot GraphQL to support this

sends GA events

Screenshots
Article without replies

Submitting reply requests

Article & specified reply

Article & all replies

Upvote & downvote

Pull Request Test Coverage Report for Build 1311

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 86.629%

Totals

Change from base Build 1305:
0.02%

Covered Lines:
937

Relevant Lines:
1067

💛  - Coveralls


Doesn't support multiple projects

I'd like to use the same settings for every project. Is that possible?
Currently it seems like I have to recreate the rules for each project I open.

There is no global settings yet, you can mark them as shared and copy the files from .idea, I could take a look to add a global layer in the future.


GH-3402: kafkaAdmin clusterId configuration is ignored if observability is enabled and bootstrap supplier is not set

fixes GH-3402 (https://github.com/spring-projects/spring-kafka/issues/3402)

Re-set clusterId after creating new KafkaAdmin

@varmenise Thank you for signing the Contributor License Agreement!

I ll fix this as I get some time, thanks for reviewing!

@varmenise ,
gentle reminder.
We have a couple days left before release on Monday.
Thanks

Merged via: https://github.com/spring-projects/spring-kafka/commit/f11c7caf081e25c8a513c888f22b9144b07a9404
Backporte to 3.2.x an 3.1.x.


feat: Add ConnectionInfo extractor

The logic of handlers and middleware often use information concerning the underlying connection.
We enable this by adding a ConnectionInfo structure to the framework.

Very rough first pass to present how things might work.

I think we got the skeleton in place now (pending a decision on making ConnectionInfo an enum over HttpXConnectiondInfo variants). Do you want to take a stab at the code generation part?

We also need to add an integration test (in pavex_cli/tests) where we have a component (e.g. a request handler) that tries to consume an instance of ConnectionInfo.
I don't think it's going to work out of the box since we don't have code to do the unwrapping of the Option we receive as input in run based on the fact that ConnectionInfo is/isn't used in a certain route.


GLEngine + 0xa1d7c crashed

Steps to Reproduce

launch flutter and crashed

Target Platform:
IOS
Target OS version/browser:
iOS 13.3
Devices:
language = zh;
machine = "iPhone11,8";
nt = wifi;
osVersion = "13.3";
stype = 2;
version = "1.1.0";
Logs
Operating system: iOS
                  13.3.0 17C54
CPU: arm64
     6 CPUs

Crash reason:  EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0xc
Process uptime: 962 seconds

Thread 22 (crashed)
 0  GLEngine + 0xa1d7c
     x0 = 0x00000001150d8000    x1 = 0x0000000000000000
     x2 = 0x0000000000000200    x3 = 0x0000000000000000
     x4 = 0x00000001d1dd1760    x5 = 0x000000028291b780
     x6 = 0x00000001150da218    x7 = 0x000000028291b7a8
     x8 = 0x000000000000000c    x9 = 0x0000000000000000
    x10 = 0x000000010a3d8050   x11 = 0x0000000000000000
    x12 = 0x000000010a3d8000   x13 = 0x00000001707fa600
    x14 = 0x00000001707fa5f8   x15 = 0x00000001707fa5f8
    x16 = 0x0000000000000020   x17 = 0x000000010a3d8000
    x18 = 0x0000000000000000   x19 = 0x00000001707fa640
    x20 = 0x00000001d1dd0ce0   x21 = 0x00000001aa1d29f4
    x22 = 0x0000000000000000   x23 = 0x0000000000000000
    x24 = 0x0000000000000000   x25 = 0x0000000000000001
    x26 = 0x0000000000000014   x27 = 0x0000000000000014
    x28 = 0x0000000000000000    fp = 0x00000001707fa7f0
     lr = 0x00000001aa1fd5f0    sp = 0x00000001707fa5e0
     pc = 0x00000001aa1d2d7c
    Found by: given as instruction pointer in context
 1  GLEngine + 0xcc5ec
     fp = 0x00000001707fa830    lr = 0x252cff81aa1d0510
     sp = 0x00000001707fa800    pc = 0x00000001aa1fd5f0
    Found by: previous frame's frame pointer
 2  0x252cff81aa1d050c
     fp = 0x00000001707fa860    lr = 0xd0706081aa1d0490
     sp = 0x00000001707fa840    pc = 0x252cff81aa1d0510
    Found by: previous frame's frame pointer
 3  0xd0706081aa1d048c
     fp = 0x00000001707fa8f0    lr = 0xcb541081aa192204
     sp = 0x00000001707fa870    pc = 0xd0706081aa1d0490
    Found by: previous frame's frame pointer
 4  0xcb541081aa192200
     fp = 0x00000001707fa900    lr = 0xa44c7b81aa2218f8
     sp = 0x00000001707fa900    pc = 0xcb541081aa192204
    Found by: previous frame's frame pointer
 5  0xa44c7b81aa2218f4
     fp = 0x00000001707fa950    lr = 0xd810ee8104cecf50
     sp = 0x00000001707fa910    pc = 0xa44c7b81aa2218f8
    Found by: previous frame's frame pointer
 6  0xd810ee8104cecf4c
     fp = 0x00000001707faa90    lr = 0x0000000104cf4b7c
     sp = 0x00000001707fa960    pc = 0xd810ee8104cecf50
    Found by: previous frame's frame pointer
 7  Flutter!GrGLGpuRTCommandBuffer::onDraw(GrPrimitiveProcessor const&, GrPipeline const&, GrPipeline::FixedDynamicState const*, GrPipeline::DynamicStateArrays const*, GrMesh const*, int, SkRect const&) [GrMesh.h : 240 + 0x8]
     fp = 0x00000001707faaf0    lr = 0x0000000104c64bac
     sp = 0x00000001707faaa0    pc = 0x0000000104cf4b7c
    Found by: previous frame's frame pointer
 8  Flutter!GrGpuRTCommandBuffer::draw(GrPrimitiveProcessor const&, GrPipeline const&, GrPipeline::FixedDynamicState const*, GrPipeline::DynamicStateArrays const*, GrMesh const*, int, SkRect const&) [GrGpuCommandBuffer.cpp : 89 + 0x28]
     fp = 0x00000001707fabf0    lr = 0x0000000104c67ab8
     sp = 0x00000001707fab00    pc = 0x0000000104c64bac
    Found by: previous frame's frame pointer
 9  Flutter!GrOpFlushState::executeDrawsAndUploadsForMeshDrawOp(GrOp const*, SkRect const&, GrProcessorSet&&, GrPipeline::InputFlags, GrUserStencilSettings const*) [GrOpFlushState.cpp : 59 + 0x8]
     fp = 0x00000001707fac60    lr = 0x0000000104c7a898
     sp = 0x00000001707fac00    pc = 0x0000000104c67ab8
    Found by: previous frame's frame pointer
10  Flutter!GrOp::execute(GrOpFlushState*, SkRect const&) [GrOp.h : 166 + 0x14]
     fp = 0x00000001707fad30    lr = 0x0000000104c7a5c0
     sp = 0x00000001707fac70    pc = 0x0000000104c7a898
    Found by: previous frame's frame pointer
11  Flutter!GrRenderTargetOpList::onExecute(GrOpFlushState*) [GrRenderTargetOpList.cpp : 530 + 0x8]
     fp = 0x00000001707fc8e0    lr = 0x0000000104c5dc2c
     sp = 0x00000001707fad40    pc = 0x0000000104c7a5c0
    Found by: previous frame's frame pointer
12  Flutter!GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrPrepareForExternalIORequests const&) [GrRenderTask.h : 33 + 0xc]
     fp = 0x00000001707fc960    lr = 0x0000000104c5e644
     sp = 0x00000001707fc8f0    pc = 0x0000000104c5dc2c
    Found by: previous frame's frame pointer
13  Flutter!GrDrawingManager::flushSurfaces(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&) [GrDrawingManager.cpp : 505 + 0x18]
     fp = 0x00000001707fc9e0    lr = 0x0000000104c793e0
     sp = 0x00000001707fc970    pc = 0x0000000104c5e644
    Found by: previous frame's frame pointer
14  Flutter!GrRenderTargetContext::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&) [GrDrawingManager.h : 88 + 0x10]
     fp = 0x00000001707fca10    lr = 0x0000000104d0b1e8
     sp = 0x00000001707fc9f0    pc = 0x0000000104c793e0
    Found by: previous frame's frame pointer
15  Flutter!SkGpuDevice::flush() [SkGpuDevice.cpp : 1636 + 0x8]
     fp = 0x00000001707fcaa0    lr = 0x0000000104e7adcc
     sp = 0x00000001707fca20    pc = 0x0000000104d0b1e8
    Found by: previous frame's frame pointer
16  Flutter!std::__1::__function::__func<flutter::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_1, std::__1::allocator<flutter::GPUSurfaceGL::AcquireFrame(SkISize const&)::$_1>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&) [SkCanvas.cpp : 609 + 0x8]
     fp = 0x00000001707fcad0    lr = 0x0000000104b1a244
     sp = 0x00000001707fcab0    pc = 0x0000000104e7adcc
    Found by: previous frame's frame pointer
17  Flutter!flutter::SurfaceFrame::Submit() [functional : 1923 + 0x10]
     fp = 0x00000001707fcb80    lr = 0x0000000104b09328
     sp = 0x00000001707fcae0    pc = 0x0000000104b1a244
    Found by: previous frame's frame pointer
18  Flutter!flutter::Rasterizer::DrawToSurface(flutter::LayerTree&) [rasterizer.cc : 260 + 0x0]
     fp = 0x00000001707fceb0    lr = 0x0000000104b0a198
     sp = 0x00000001707fcb90    pc = 0x0000000104b09328
    Found by: previous frame's frame pointer
19  Flutter!std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >)::$_0, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >)::$_0>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) [rasterizer.cc : 165 + 0x8]
     fp = 0x00000001707fcfc0    lr = 0x0000000104b09638
     sp = 0x00000001707fcec0    pc = 0x0000000104b0a198
    Found by: previous frame's frame pointer
20  Flutter!flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >) [functional : 1923 + 0xc]
     fp = 0x00000001707fcff0    lr = 0x0000000104b0f4d4
     sp = 0x00000001707fcfd0    pc = 0x0000000104b09638
    Found by: previous frame's frame pointer
21  Flutter!std::__1::__function::__func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >)::$_28, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >)::$_28>, void ()>::operator()() [shell.cc : 880 + 0x4]
     fp = 0x00000001707fd040    lr = 0x0000000104ac97b4
     sp = 0x00000001707fd000    pc = 0x0000000104b0f4d4
    Found by: previous frame's frame pointer
22  Flutter!fml::MessageLoopImpl::FlushTasks(fml::FlushType) [functional : 1923 + 0x8]
     fp = 0x00000001707fd060    lr = 0x0000000104acdce8
     sp = 0x00000001707fd050    pc = 0x0000000104ac97b4
    Found by: previous frame's frame pointer
23  Flutter!fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) [message_loop_impl.cc : 144 + 0x4]
     fp = 0x00000001707fd070    lr = 0x000000018f6d077c
     sp = 0x00000001707fd070    pc = 0x0000000104acdce8
    Found by: previous frame's frame pointer
24  CoreFoundation + 0xae778
     fp = 0x00000001707fe120    lr = 0x20313c818f6d04b4
     sp = 0x00000001707fd080    pc = 0x000000018f6d077c
    Found by: previous frame's frame pointer
25  0x20313c818f6d04b0
     fp = 0x00000001707fe1b0    lr = 0x3e78bd818f6cfb28
     sp = 0x00000001707fe130    pc = 0x20313c818f6d04b4
    Found by: previous frame's frame pointer
26  0x3e78bd818f6cfb24
     fp = 0x00000001707feec0    lr = 0xd258e3818f6ca9d0
     sp = 0x00000001707fe1c0    pc = 0x3e78bd818f6cfb28
    Found by: previous frame's frame pointer
27  0xd258e3818f6ca9cc
     fp = 0x00000001707fef50    lr = 0x703b59818f6c9f40
     sp = 0x00000001707feed0    pc = 0xd258e3818f6ca9d0
    Found by: previous frame's frame pointer
28  0x703b59818f6c9f3c
     fp = 0x00000001707fef90    lr = 0x8549198104acdbc4
     sp = 0x00000001707fef60    pc = 0x703b59818f6c9f40
    Found by: previous frame's frame pointer
29  0x8549198104acdbc0
     fp = 0x00000001707fefc0    lr = 0x0000000104acd720
     sp = 0x00000001707fefa0    pc = 0x8549198104acdbc4
    Found by: previous frame's frame pointer
30  Flutter!std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*, void*) [message_loop_impl.cc : 84 + 0xc]
     fp = 0x00000001707fefe0    lr = 0x000000018f45d840
     sp = 0x00000001707fefd0    pc = 0x0000000104acd720
    Found by: previous frame's frame pointer
31  libsystem_pthread.dylib + 0x183c
     fp = 0x0000000000000000    lr = 0x8f5888018f4659f4
     sp = 0x00000001707feff0    pc = 0x000000018f45d840
    Found by: previous frame's frame pointer
32  0x8f5888018f4659f0
     fp = 0x0000000000000000    lr = 0x0000000000000000
     sp = 0x00000001707feff0    pc = 0x8f5888018f4659f4
    Found by: previous frame's frame pointer

Thread 0
 0  libsystem_kernel.dylib + 0x25ccc
     x0 = 0x000000016f164aa8    x1 = 0x0000000100000100
     x2 = 0x0000000000000000    x3 = 0x0000000000000000
     x4 = 0x0000000000000000    x5 = 0x00000000000000a0
     x6 = 0x0000000000000000    x7 = 0x0000000000000000
     x8 = 0x000000016f1649a0    x9 = 0x0000000000000001
    x10 = 0x000000016f164af0   x11 = 0x0000000000000002
    x12 = 0x00000000000020a0   x13 = 0x0000000000000000
    x14 = 0x0000000000000000   x15 = 0x0000000000000000
    x16 = 0x0000000000000131   x17 = 0x0000000000000002
    x18 = 0x0000000000000000   x19 = 0x000000016f164ad8
    x20 = 0x000000016f164aa8   x21 = 0x0000000000000002
    x22 = 0x0000000000000000   x23 = 0x0000000000000000
    x24 = 0x0000000000000000   x25 = 0x0000000103ced920
    x26 = 0x0000000000000100   x27 = 0x000000028170ca50
    x28 = 0x000000028327b0c0    fp = 0x000000016f164a10
     lr = 0x000000018f46121c    sp = 0x000000016f1649a0
     pc = 0x000000018f53eccc
    Found by: given as instruction pointer in context
 1  libsystem_pthread.dylib + 0x5218
     fp = 0x000000016f164a20    lr = 0x164a9f018f593d04
     sp = 0x000000016f164a20    pc = 0x000000018f46121c
    Found by: previous frame's frame pointer
 2  0x164a9f018f593d00
     fp = 0x000000016f164a50    lr = 0x287b798104acd064
     sp = 0x000000016f164a30    pc = 0x164a9f018f593d04
    Found by: previous frame's frame pointer
 3  0x287b798104acd060
     fp = 0x000000016f164b80    lr = 0x0000000104b0b404
     sp = 0x000000016f164a60    pc = 0x287b798104acd064
    Found by: previous frame's frame pointer
 4  Flutter!flutter::Shell::OnPlatformViewCreated(std::__1::unique_ptr<flutter::Surface, std::__1::default_delete<flutter::Surface> >) [shell.cc : 597 + 0x4]
     fp = 0x000000016f164cc0    lr = 0x0000000104aaf84c
     sp = 0x000000016f164b90    pc = 0x0000000104b0b404
    Found by: previous frame's frame pointer
 5  Flutter!-[FlutterViewController surfaceUpdated:] [platform_view.cc : 76 + 0xc]
     fp = 0x000000016f164d00    lr = 0x0000000104aaf9c8
     sp = 0x000000016f164cd0    pc = 0x0000000104aaf84c
    Found by: previous frame's frame pointer
 6  Flutter!-[FlutterViewController viewWillAppear:] [FlutterViewController.mm : 457 + 0x10]
     fp = 0x000000016f164d70    lr = 0x0000000101716474
     sp = 0x000000016f164d10    pc = 0x0000000104aaf9c8

flutter version

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.9.1+hotfix.2, on Mac OS X 10.15.1 19B88, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.1)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.35.0)
[✓] Connected device (1 available)

Hi @Natoto
Possibly related to #26366 which was fixed
Could you run
flutter channel stable
flutter upgrade
and check if you face with this problem with the latest version of Flutter SDK (v1.12.13+hotfix.5)?
Thank you

Hi @Natoto
Are you still experiencing this issue?
Thank you


How I can eval model after each epoch end?

How I can eval model after each epoch end? Thanks

Hi @SherlockHolmes221,
The evaluation code is implemented for a single GPU, without distributed data parallel. So, it wasn't included during training. However, all checkpoints after each epoch will be cached by default in the directory you specified. Each checkpoint is named as ckpt_steps_epochs. You can run evaluation on the checkpoints you are interested in.
Fred.

Thx


[BUG] OAK-FFC-4P-POE Firmware Crash with Custom Camera Tuning Blob

Describe the bug
Firmware crash on Oak-ffc-4p-poe and crash dump after enabling custom camera tuning blob.
Specific error: "Error creating output stream: Communication exception - possible device error/misconfiguration. Original message 'Couldn't read data from stream: 'detections_l' (X_LINK_ERROR)'"
A oak-ffc-4p-poe was setup with two ar0234 m12 cameras. Previously the setup was functioning fine and operating a pipeline. However we require low exposure times thus attempted to use the 500us camera tuning blob (https://docs.luxonis.com/projects/api/en/latest/tutorials/image_quality/#:~:text=Camera exposure limit)
Simply adding this line: pipeline.setCameraTuningBlobPath(camera_blob_path); to our pipeline setup caused a firmware crash and a crash dump to be produced.
crashDump_0_18443010111CCC0F00_f033fd9c7eb0b3578d12f90302e87759c78cfb36.json
Expected behavior
The addition of the camera tuning blob would limit max exposure time to 500us on the oak-ffc-4p-poe with two aro234 cameras connected.
Pipeline Graph
Pieline details as json here: https://drive.google.com/file/d/1n3JYvl-YDbfGb_6GX9v8m6vP6wpP6CnH/view?usp=sharing

Any update on this?

Those tuning blobs had some issues with certain sensors. Recommended now to use the branch ae_exp_limit (PR https://github.com/luxonis/depthai-python/pull/921 to be merged soon) where a configurable exposure limit can be set (and updated at runtime as well if desired). It will also use the proper image quality tuning for the specific sensor (AR0234 in this case).


Task objects created by app.task may not have the expected attributes

In one of our applications we have our own task decorator, which looks like this:
def task(f, lock=None, pass_context=False):
    f.lock = lock
    f.pass_context = pass_context
    registry[f.__qualname__] = f
    return f

and that we use like this:
@task(lock="mylock", pass_context=False)
def mytaskfunc(…):
    …

And we have a setup function that basically does this:
def setup_tasks():
    app = procrastinate.App(…)
    for name, task in registry.items():
        wrapped = task_wrapper(name, task)
        app.task(name=name, pass_context=True)(wrapped)

We expect that the procrastinate.tasks.Task objects created by app.task always have their pass_context set to True. But that's not the case: if the function object wrapped by app.task has pass_context set to False then the corresponding procrastinate.tasks.Task object will have pass_context set to False as well.
This is because Procrastinate uses functools.update_wrapper with its default updated value, making the wrapper function be updated with all the attributes of the wrapped function.
Using functools.update_wrapper(task, func, updated=()) should fix the problem.

I think I have understood the problem, but I'm not really sure.
The problem is that we're both defining a pass_context attribute on the task object for procrastinate and on the function for your project, and that one shadows the other. Right ?
You're referring to a task_wrapper that hasn't been defined, is it the function defined above as task ?
I think I'm ok to update the update_wrapper call if you think this will not cause other problems down the line.

Sorry for not responding earlier! Yes, your understanding is correct.


Collection of minor issues of the SI installer

What happened?
Now that --web-host flags are introduced, there's some subtle issues.

Subsequent runs after containers have been created the first time do not respect the --web-host flag
Using --web-host only affects the web. Does not affect SDF which is listening on all interfaces by default.

How can we reproduce this?
Deploy SI using the installer without specifying --web-host and then run si --web-host <IP_ADDRESS> start and notice it does not change
Operating system
Linux
Architecture
x86_64 / amd64
What browsers are you seeing the problem on?
Other (please specify)
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Additional context
I will add any other minor nits as I find them.

If you try to si delete while the stack is running it does not call stop and then delete, resulting in this error
System Initiative Launcher is in "local" mode

Launcher update found, please run `si update` to install it

Deleting container: local-jaeger-1 (f6b19193f10c5e3521934b23efb2dcfb40c43f38e256f78e2f1529054c55b91d)
Error:
   0: docker api: error 409 Conflict - You cannot remove a running container f6b19193f10c5e3521934b23efb2dcfb40c43f38e25
6f78e2f1529054c55b91d. Stop the container before attempting removal or force remove
   1: error 409 Conflict - You cannot remove a running container f6b19193f10c5e3521934b23efb2dcfb40c43f38e256f78e2f15290
54c55b91d. Stop the container before attempting removal or force remove

Location:
   bin/si/src/main.rs:112```

There's no indication as to when the service is actually available.
For my system on a fresh install, I get auth errors (Not found - which doesn't mean anything to me really) when hitting the local SI homepage (http://localhost:8080 equivalent) until ~9 minutes after I have started.
I believe this is all of the DB setup/migrations that happen on first start.

@keeb this is fantastic! I can get this fixed up :) thank you!!

The last issue to be tackled here is that when the cli args change for host ip and port, we need to stop and recreate the web container


Support for monorepos

It seems that not all vue files are found if you try to start it on a monorepo with some nesting.

Yes, currently it search for the default folders.
What is your setup? It should be easy to add support for extra folders.

/apps/some-app/src/**/*.vue

cc07883de52249301f3b04cf124d0a6d46011fde fixed


update registry version.

Codecov Report

Merging #1543 (94b3a37) into master (afedf8e) will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1543      +/-   ##
==========================================
+ Coverage   59.32%   59.37%   +0.05%
==========================================
  Files         346      346
  Lines       27628    27628
==========================================
+ Hits        16391    16405      +14
+ Misses       9406     9393      -13
+ Partials     1831     1830       -1

Impacted Files
Coverage Δ

pkg/stream/xprotocol/connpool_pingpong.go
37.28% <0.00%> (-13.00%)
:arrow_down:

pkg/module/http2/server.go
80.55% <0.00%> (-0.16%)
:arrow_down:

pkg/module/http2/frame.go
82.30% <0.00%> (+0.35%)
:arrow_up:

pkg/xds/v2/xdsconfig.go
25.96% <0.00%> (+1.10%)
:arrow_up:

pkg/filter/stream/jwtauthn/authenticator.go
77.01% <0.00%> (+2.29%)
:arrow_up:

pkg/xds/v2/cdssubscriber.go
26.08% <0.00%> (+8.69%)
:arrow_up:

pkg/xds/v2/adssubscriber.go
42.66% <0.00%> (+41.33%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #1543 (94b3a37) into master (afedf8e) will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1543      +/-   ##
==========================================
+ Coverage   59.32%   59.37%   +0.05%
==========================================
  Files         346      346
  Lines       27628    27628
==========================================
+ Hits        16391    16405      +14
+ Misses       9406     9393      -13
+ Partials     1831     1830       -1

Impacted Files
Coverage Δ

pkg/stream/xprotocol/connpool_pingpong.go
37.28% <0.00%> (-13.00%)
:arrow_down:

pkg/module/http2/server.go
80.55% <0.00%> (-0.16%)
:arrow_down:

pkg/module/http2/frame.go
82.30% <0.00%> (+0.35%)
:arrow_up:

pkg/xds/v2/xdsconfig.go
25.96% <0.00%> (+1.10%)
:arrow_up:

pkg/filter/stream/jwtauthn/authenticator.go
77.01% <0.00%> (+2.29%)
:arrow_up:

pkg/xds/v2/cdssubscriber.go
26.08% <0.00%> (+8.69%)
:arrow_up:

pkg/xds/v2/adssubscriber.go
42.66% <0.00%> (+41.33%)
:arrow_up:

Continue to review full report at Codecov.

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

代码只更新了一半，属于错误的更新，建议补全，或者代码回滚 @cadeeper @cch123 @champly

代码只更新了一半，属于错误的更新，建议补全，或者代码回滚 @cadeeper @cch123 @champly

https://github.com/mosn/mosn/pull/1546

https://github.com/mosn/mosn/pull/1546


Previous PR was a success, but conda-forge team recommends against it

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender


ListView content disappears when scrolling top. It should bounce instead

ListView content disappears when scrolling top. It should bounce instead
See screenshot and video below:

https://user-images.githubusercontent.com/193307/116890796-4c174a80-ac2e-11eb-8366-ff050d6262a5.mp4
Steps to Reproduce

Run flutter create bug.
Update main.dart files as follows:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    Widget titleSection = Container(
      padding: const EdgeInsets.all(32),
      child: Row(
        children: [
          Expanded(
            /*1*/
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                /*2*/
                Container(
                  padding: const EdgeInsets.only(bottom: 8),
                  child: Text(
                    'Oeschinen Lake Campground',
                    style: TextStyle(
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                ),
                Text(
                  'Kandersteg, Switzerland',
                  style: TextStyle(
                    color: Colors.grey[500],
                  ),
                ),
              ],
            ),
          ),
          /*3*/
          Icon(
            Icons.star,
            color: Colors.red[500],
          ),
          Text('41'),
        ],
      ),
    );

    Widget textSection = Container(
      padding: const EdgeInsets.all(32),
      child: Text(
        'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'Lake Oeschinen lies at the foot of the Blüemlisalp in the Bernese '
            'Alps. Situated 1,578 meters above sea level, it is one of the '
            'larger Alpine Lakes. A gondola ride from Kandersteg, followed by a '
            'half-hour walk through pastures and pine forest, leads you to the '
            'lake, which warms to 20 degrees Celsius in the summer. Activities '

            'enjoyed here include rowing, and riding the summer toboggan run.',
        style: TextStyle(fontSize: 18),
        softWrap: true,
      ),
    );

    Color color = Theme.of(context).primaryColor;

    Widget buttonSection = Container(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          _buildButtonColumn(color, Icons.call, 'CALL'),
          _buildButtonColumn(color, Icons.near_me, 'ROUTE'),
          _buildButtonColumn(color, Icons.share, 'SHARE'),
        ],
      ),
    );

    return MaterialApp(
        title: 'Welcome to Flutter',
        home: Scaffold(
            appBar: AppBar(
              title: Text('Flutter layout demo'),
            ),
            body: ListView(
              children: [
                // Image.asset(
                //   'images/lake.jpg',
                //   width: 600,
                //   height: 240,
                //   fit: BoxFit.cover,
                // ),
                // titleSection,
                // buttonSection,
                textSection,
              ],
            )
        )
    );
  }

  Column _buildButtonColumn(Color color, IconData icon, String label) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Icon(icon, color: color),
        Container(
          margin: const EdgeInsets.only(top: 8),
          child: Text(
            label,
            style: TextStyle(
              fontSize: 12,
              fontWeight: FontWeight.w400,
              color: color,
            ),
          ),
        ),
      ],
    );
  }
}

Run the app with fluttern run --release or flutter run on iOS device
Scroll to the bottom, then start quickly scrolling top with multiple short gestures

Expected results: ListView should nicely bounce vertically like the default UIScrollView in iOS
Actual results: Content of ListView completely disappears for a moment

Logs

[✓] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-x64, locale en-RU)
    • Flutter version 2.0.4 at /Users/nt/flutter
    • Framework revision b1395592de (5 weeks ago), 2021-04-01 14:25:01 -0700
    • Engine revision 2dce47073a
    • Dart version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/nt/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/nt/Library/Android/sdk
    • 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-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.45.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • Nikita’s iPhone (mobile) • 00008030-000A1D8111D9802E • ios            • iOS 14.4.2
    • Chrome (web)             • chrome                    • web-javascript • Google Chrome 90.0.4430.93

• No issues found!

By content disappearance do you mean the whole text is not being displayed?

By content disappearance do you mean the whole text is not being displayed?

Yes, the whole text (or any content in the ListView, could be images too) goes below the bottom of the screen.

Looks like the top list view content inset parameter gets messed up when scrolling up quickly

I see the same behavior upon scrolling quickly, which disappears the text for a second or so.
https://user-images.githubusercontent.com/67046386/116968883-f9dc3500-acd2-11eb-88ed-c3396823867e.MP4

 flutter doctor -v

[✓] Flutter (Channel stable, 2.0.6, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.0.6 at /Users/dhs/documents/fluttersdk/flutter
    • Framework revision 1d9032c7e1 (4 days ago), 2021-04-29 17:37:58 -0700
    • Engine revision 05e680e202
    • Dart version 2.12.3

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

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

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

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 90.0.4430.93

! Doctor found issues in 1 category.

I see the same behavior upon scrolling quickly, which disappears the text for a second or so.

Yes, it's all about tap timing. If you do short taps you can break any lists. I think this issue is pretty important because scrolling behavior defines UX on iOS :)

/cc @Piinks

This looks like a duplicate of https://github.com/flutter/flutter/issues/75399
The animation to scroll back to the top is going so fast, the text isn't built fast enough to keep up with it.
I am going to close this to defer to the linked issue and focus work to resolve it in one place. Thanks for filing another reproduction for us to test against!
If you feel this issue is different, please let us know and we can take another look.


I cannot compile.

Alright so its just missing almost everything and i have everything i need downloaded.
It wants stuff that isnt in the code.
WHY.
Fix this.

Please follow BUILDING.md in regards to how to build. I've just noted the versions required, in order to reduce confusion.


Update auth, dynamodb, s3, sqs to 2.17.144

Updates

software.amazon.awssdk:auth
software.amazon.awssdk:dynamodb
software.amazon.awssdk:s3
software.amazon.awssdk:sqs

from 2.17.66 to 2.17.144.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #855.


rafthttp: use http.Request.WithContext instead of Cancel

#6953

@xiang90 @heyitsanthony PTAL. Don't think the jenkins-proxy-ci is failing due to this change. Have already tested e2e, rafthttptest and integration in my local machine.
Thanks!

Ignore proxy-ci for now.

@sinsharat looks like a new failure. I tried to reproduce with go test -run=RejectInsecure -v -tags cluster_proxy from your brach but it seems OK...

@xiang90 @heyitsanthony all changes done. PTAL.
Thanks!

@xiang90 @heyitsanthony All fixed. PTAL.
Thanks!

looks great. there are a few minor issues. we need to continue to clean up other pkgs if there is any. Thanks @sinsharat!

@xiang90 do you want other packages to be corrected in the same PR?

@sinsharat No. We can do them in other prs :P

@xiang90 Let me know if anything else required to be done here.
Thank you!

LGTM

@sinsharat Actually can you squash two commits into one?

@xiang90 its squashed into one.
Thanks!

Thank you!


[BUG] Clicking logout adds invalid redirect url to the query string

Describe the bug
When clicking logout button I noticed that some strange redirect url is added to the query string.
It looks like that:
http://localhost:3000/login?to=%2Flogin

It causes issues because when using redirectTo in authProvider login method, the redirectTo parameter is ignored. Instead it uses /login from url.
Steps To Reproduce

Add custom redirection in login method of authProvider.

return {
  success: true,
  redirectTo: "/xxx",
};

Click "logout"

Look at the url.
Login again.
You are NOT redirected to /xxx.

Expected behavior
User should be redirected to /xxx.
Screenshot
No response
Desktop
No response
Mobile
No response
Additional Context
No response

Hello @Mikilll94, if you are using useLogout hook, could you try removing v3LegacyAuthProviderCompatible if it exists?

@BatuhanW I don't have any v3LegacyAuthProviderCompatible in my code. I removed them during migration.

Hey @Mikilll94 ,
Thank you for contacting us. Can you provide us with a CodeSandbox or StackBlitz so that we can reproduce the issue?


CallbackBlueprint error appers in versions 0.024

when importing
from dash_extensions.callback import CallbackGrouper
error
class CallbackCache(CallbackBlueprint):
NameError: name 'CallbackBlueprint' is not defined

It seems that i made a mistake in the (0.0.24). Do you need the keyboard component? Otherwise, i guess you could just downgrade to 0.0.23 for now. I expect to release a new build this week.

I have now pushed version (0.0.26) with the new syntax.


[bug] Updating chart js 4.4.1 introduced some plugin errors with a donut chart.

I am not sure if this is an issue with this plugin or https://github.com/reactchartjs/react-chartjs-2. Or a combination of both. But the 4.4.1 update to chart js broke me. Rolling back to 4.4.0 makes everything happy again. Looks like some types are missing. Any help would be appreciated.
Package versions
"chart.js": "^4.4.1",
"chartjs-plugin-annotation": "^3.0.1",
"react-chartjs-2": "^5.2.0",
Example Code:
const options = {
     scales: {
         x: {
             grid: {
                 display: false,
             },
             display: false,
         },
         y: {
             grid: {
                 display: false,
             },
             display: false,
         },
     },
     plugins: {
         legend: {
             position: "bottom" as const,
             align: "start" as const,
             maxWidth: 1,
             display: true,
             labels: {
                 usePointStyle: false,
                 padding: 10,
             },
             textDirection: "ltr",
         },
         annotation: {
             annotations: {
                 label1: {
                     type: "label" as const,
                     xValue: 2,
                     yValue: 0.5,
                     content: "",
                     color: widget.darkerblue,
                     font: {
                         size: 30,
                         weight: "bold",
                         family: "Lato, Arial, sans-serif",
                     },
                 },
             },
         },
     },
     responsive: true,
     maintainAspectRatio: false,
 };

export default function Donut() {
  return <Doughnut data={data} options={options} />;
}

Error Text 1:
TS2322: Type 'PreventiveMaintenanceBarChartOptions' is not assignable to type '_DeepPartialObject<CoreChartOptions<"doughnut"> & ElementChartOptions<"doughnut"> & PluginChartOptions<"doughnut"> & DatasetChartOptions<"doughnut"> & ScaleChartOptions<...> & DoughnutControllerChartOptions>'.
  The types of 'plugins.annotation.annotations' are incompatible between these types.
    Type '{ [key: string]: { type: "label"; xValue: number; yValue: number; color: string; content: string; font: { size: number; weight: string; }; }; }' is not assignable to type '_DeepPartialArray<AnnotationOptions<keyof AnnotationTypeRegistry>> | _DeepPartialObject<Record<string, AnnotationOptions<keyof AnnotationTypeRegistry>>> | undefined'.
      Type '{ [key: string]: { type: "label"; xValue: number; yValue: number; color: string; content: string; font: { size: number; weight: string; }; }; }' is missing the following properties from type '(_DeepPartialObject<{ type: "line"; } & LineAnnotationOptions> | _DeepPartialObject<{ type: "label"; } & LabelAnnotationOptions> | _DeepPartialObject<...> | _DeepPartialObject<...> | _DeepPartialObject<...> | _DeepPartialObject<...>)[]': length, pop, push, concat, and 35 more.
    219 |                             ref={chartRef}
    220 |                             data={doughnutChartData}
  > 221 |                             options={doughnutChartOptions}

Error Text 2:
TS2322: Type 'Plugin<keyof ChartTypeRegistry, AnyObject>' is not assignable to type 'Plugin<"doughnut", AnyObject>'.
  Types of property 'install' are incompatible.
    Type '((chart: Chart<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown>, args: EmptyObject, options: AnyObject) => void) | undefined' is not assignable to type '((chart: Chart<"doughnut", number[], unknown>, args: EmptyObject, options: AnyObject) => void) | undefined'.
      Type '(chart: Chart<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown>, args: EmptyObject, options: AnyObject) => void' is not assignable to type '(chart: Chart<"doughnut", number[], unknown>, args: EmptyObject, options: AnyObject) => void'.
        Types of parameters 'chart' and 'chart' are incompatible.
          Type 'Chart<"doughnut", number[], unknown>' is not assignable to type 'Chart<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown>'.
            Types of property 'config' are incompatible.
              Type 'ChartConfiguration<"doughnut", number[], unknown> | ChartConfigurationCustomTypesPerDataset<"doughnut", number[], unknown>' is not assignable to type 'ChartConfiguration<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown> | ChartConfigurationCustomTypesPerDataset<...>'.
                Type 'ChartConfiguration<"doughnut", number[], unknown>' is not assignable to type 'ChartConfiguration<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown> | ChartConfigurationCustomTypesPerDataset<...>'.
                  Type 'ChartConfiguration<"doughnut", number[], unknown>' is not assignable to type 'ChartConfiguration<keyof ChartTypeRegistry, (number | [number, number] | Point | BubbleDataPoint | null)[], unknown>'.
                    Types of property 'options' are incompatible.
                      Type '_DeepPartialObject<CoreChartOptions<"doughnut"> & ElementChartOptions<"doughnut"> & PluginChartOptions<"doughnut"> & DatasetChartOptions<"doughnut"> & ScaleChartOptions<...> & DoughnutControllerChartOptions> | undefined' is not assignable to type '_DeepPartialObject<CoreChartOptions<keyof ChartTypeRegistry> & ElementChartOptions<keyof ChartTypeRegistry> & PluginChartOptions<...> & DatasetChartOptions<...> & ScaleChartOptions<...>> | undefined'.
                        Type '_DeepPartialObject<CoreChartOptions<"doughnut"> & ElementChartOptions<"doughnut"> & PluginChartOptions<"doughnut"> & DatasetChartOptions<"doughnut"> & ScaleChartOptions<...> & DoughnutControllerChartOptions>' is not assignable to type '_DeepPartialObject<CoreChartOptions<keyof ChartTypeRegistry> & ElementChartOptions<keyof ChartTypeRegistry> & PluginChartOptions<...> & DatasetChartOptions<...> & ScaleChartOptions<...>>'.
                          Types of property 'animation' are incompatible.
                            Type 'false | _DeepPartialObject<false & DoughnutAnimationOptions> | _DeepPartialObject<AnimationSpec<"doughnut"> & { onProgress?: ((this: Chart<...>, event: AnimationEvent) => void) | undefined; onComplete?: ((this: Chart<...>, event: AnimationEvent) => void) | undefined; } & false> | _DeepPartialObject<...> | undefined' is not assignable to type 'false | _DeepPartialObject<AnimationSpec<keyof ChartTypeRegistry> & { onProgress?: ((this: Chart<keyof ChartTypeRegistry, (number | ... 3 more ... | null)[], unknown>, event: AnimationEvent) => void) | undefined; onComplete?: ((this: Chart<...>, event: AnimationEvent) => void) | undefined; }> | undefined'.
                              Type '_DeepPartialObject<false & DoughnutAnimationOptions>' is not assignable to type 'false | _DeepPartialObject<AnimationSpec<keyof ChartTypeRegistry> & { onProgress?: ((this: Chart<keyof ChartTypeRegistry, (number | ... 3 more ... | null)[], unknown>, event: AnimationEvent) => void) | undefined; onComplete?: ((this: Chart<...>, event: AnimationEvent) => void) | undefined; }> | undefined'.
    221 |                             data={doughnutChartData}
    222 |                             options={doughnutChartOptions}
  > 223 |                             plugins={[ChartAnnotation]}
        |                                       ^^^^^^^^^^^^^^^
    224 |                         />
    225 |                         <Box height={"5px"} />
    226 |                         <Typography

@throwaway34059 thank you for your feedback. I have some doubts that the plugin could work with the same configuration in The previous version of chartjs.
The annotation plugin must be registered (see doc) and cannot be used as an inline plugin (as you reported in the exception).
In fact, the exception about the missing install should occur because the plugin is defined as inline plugin (even if it seems not reported in the code but only in the exception)
plugins={[ChartAnnotation]}

instead of registered it (https://www.chartjs.org/chartjs-plugin-annotation/latest/guide/integration.html#bundlers-webpack-rollup-etc):
import { Chart } from 'chart.js';
import annotationPlugin from 'chartjs-plugin-annotation';

Chart.register(annotationPlugin);

Furthermore that the plugin is not working on doughnut/pie charts. The trick is to define the axes as well but if this check will be apply in chartjs and the axes will not maintain in those chart types, the plugin will not work.
If you can provide an example to reproduce the issue could be great!

I'll check and see. I don't know why it broke in such a minor version change.


@conda-forge-admin, please add user @pikacic

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @pikacic in conda-forge/lb-nightly-configuration-feedstock#5.


[Event Request] Codeunit 5760 "Whse.-Post Receipt" function InsertWhseItemEntryRelation

Dear ALAppExtensions Team,
We would like to request the following event publisher in codeunit 5760 "Whse.-Post Receipt" function InsertWhseItemEntryRelation
 if TempWhseSplitSpecification.Find('-') then
        repeat
            WhseItemEntryRelation.InitFromTrackingSpec(TempWhseSplitSpecification);
            WhseItemEntryRelation.SetSource(
              DATABASE::"Posted Whse. Receipt Line", 0, PostedWhseRcptHeader."No.", PostedWhseRcptLine."Line No.");
            // DINNL <<
            DINOnBeforeWhseItemEntryRelationInsertFromTempWhseSplitSpecification(WhseItemEntryRelation,
                     TempWhseSplitSpecification);
            // DINNL >>
            WhseItemEntryRelation.Insert();
        until TempWhseSplitSpecification.Next() = 0;

       local procedure DINOnBeforeWhseItemEntryRelationInsertFromTempWhseSplitSpecification(var WhseItemEntryRelation: Record "Whse. Item Entry Relation"; TempWhseSplitSpecification: Record "Tracking Specification" temporary)

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


HHH-12565 Allow to use TYPE function on leaf subtypes of table per class hierarchies

https://hibernate.atlassian.net/browse/HHH-12565

Applied by command line to fix checkstyle.  Thanks!