lv_port_pc_vscode/bin/main doesn't exist

I am getting this error when I try to debug on linux following the steps in the repo. I can't see 'bin' folder in the repo, is this folder going to be generated after the CMake, this is a totally new area for me so I am just starting.

@atheeralattar I did it by removing the RTOS in CMakeLists.txt from 0a8220a874da37a582327d7ffd1eeef3fab64c3f.

Returned back to bbb4c82 which is the previous commit from the one above, everything seems to work now, thanks!

@MootSeeker
I could reproduce the issue like this:
mkdir build
cd build
cmake ..
make -j

And got
/usr/bin/ld: CMakeFiles/main.dir/FreeRTOS/portable/MemMang/heap_4.c.o: in function `pvPortMalloc':
heap_4.c:(.text+0x22f): undefined reference to `vApplicationMallocFailedHook'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/main.dir/build.make:294: ../bin/main] Error 1
make[1]: *** [CMakeFiles/Makefile2:163: CMakeFiles/main.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Could you take a look at it?

@kisvegabor I will take a look at this. I would guess that the CMake file needs to be adjusted to avoid compiling the RTOS part if it is not used.

Thank you for the quick action!
@atheeralattar @mxsteini It worked on my end, could you also try it out?

@MootSeeker Works like a charms. Thanx for fixing.

Cool!


Spotify

Could you possible add the possibility to use Spotify?
Thank you

Hi @Illyze
You should see your Zipp speaker in Spotify Connect in your Spotify application
If you start playing using this app, you should be able to control the speaker using this integration, no?

Stale, closing


Fix broken blog social images

CSS lint tests are failing ...

CSS lint tests are failing ...

Yes, both CSS and JS lints tests are failing right now! Investing further right now but it doesn't have anything to do with this pr.


Polylinewalker is still drunk

I noticed a few days ago that , on the DEV branch, the polylinewalker stopped working smoothly.
Even after today's modification, it still has the "drunk" type of walking.

Any idea what's going on?

In the file config.json remove lines
{
"type": "FollowSpiral",
"config": {
"enabled": true,
"diameter": 4,
"step_size": 70
}
}
I use the method "Follow Path" working as it should

I removed followspiral and now polyline is working nicely. Aren't they supposed to work well together? It was the case last week.

@orchid666 no they are not of course...
they give conflicting directions....

One one task should use the PolylineWalker if you want consistent results..

Fixed: Told Polylinewalker to go home and sleep it off :)

Well kind of, it puked all over the couch.

@th3w4y maybe we should disable it in the config by default (instead of deleting it).

@mjmadsen I do believe we are very close to that moment...
There are still some issues when multiple tasks call step walker..
We have so many follow BaseTask and each call their StepWalwer as they please!

@orchid666 is this still a problem for you ?

@th3w4y you mean polyline + spiral?

@orchid666 i mean Polyline without spiral
(In my opinion Spiral should be deprecated!)

Polyline without spiral always worked for me.  Polyline with spiral used to work nicely then it stopped working so i wanted to bring that issue, but apparently it's something planned so i guess thats fine.

Currently using MoveToFort with polyline and it looks a lot less wobbly. Guess it sobered up a little.

@Gobberwart is only with spiral that would be messed up


Upgrade libs

Thanks for the PR! I've been planning to do this for a while now. I'll take this up.

any updates? :D

Closed in https://github.com/prashanthpai/sqlcache/commit/06744d26ca13162a948ec7a860cbe098a7d201b1


Error when using TabBarView+AutomaticKeepAliveClientMixin

Error when using TabBarView+AutomaticKeepAliveClientMixin.
flutter_chat_list 1.0.1
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
'package:flutter/src/foundation/node.dart': Failed assertion: line 112 pos 12: '_owner != null': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
 The issue fixed in flutter_chat_list: ^1.0.2, please update it.

下拉，拉取历史消息的时候，列表有回弹的问题。把FlutterListView的keepPosition改为false就正常。

正常情况，下拉触发加载的时候，头部loading会一直显示直到数据加载完成才会隐藏。但是现在快速下拉滑动，触发加载，头部loading停顿下立马就隐藏了，导致列表还回退了。

https://user-images.githubusercontent.com/29618907/168423977-7a80ff80-d855-46b3-ae7a-206205991e11.mp4

下面是把FlutterListView的keepPosition改为false的情况
https://user-images.githubusercontent.com/29618907/168424042-ceea9a76-08a7-4336-bf0f-e8175994afca.mp4

The keepPosition has own functinality. But it has little demerit in implement. KeepPosition have be rewrote. Please update it to last version.

连续向下滑动，不停加载页面。有概率出现错误：
======== Exception caught by foundation library ====================================================
The following assertion was thrown while dispatching notifications for ValueNotifier<bool>:
Build scheduled during frame.

While the widget tree was being built, laid out, and painted, a new frame was scheduled to rebuild the widget tree.

This might be because setState() was called from a layout or paint callback. If a change is needed to the widget tree, it should be applied as the tree is being built. Scheduling a change for the subsequent frame instead results in an interface that lags behind by one frame. If this was done to make your build dependent on a size measured at layout time, consider using a LayoutBuilder, CustomSingleChildLayout, or CustomMultiChildLayout. If, on the other hand, the one frame delay is the desired effect, for example because this is an animation, consider scheduling the frame in a post-frame callback using SchedulerBinding.addPostFrameCallback or using an AnimationController to trigger the animation.

When the exception was thrown, this was the stack:
#0      WidgetsBinding._handleBuildScheduled.<anonymous closure> (package:flutter/src/widgets/binding.dart:747:9)
#1      WidgetsBinding._handleBuildScheduled (package:flutter/src/widgets/binding.dart:770:6)
#2      BuildOwner.scheduleBuildFor (package:flutter/src/widgets/framework.dart:2485:24)
#3      Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:4443:12)
#4      State.setState (package:flutter/src/widgets/framework.dart:1141:15)
#5      LoadIndicatorState.enterLoading (package:pull_to_refresh/src/internals/indicator_wrap.dart:364:5)
#6      LoadIndicatorState._listenScrollEnd (package:pull_to_refresh/src/internals/indicator_wrap.dart:507:51)
#7      ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:308:24)
#8      ValueNotifier.value= (package:flutter/src/foundation/change_notifier.dart:412:5)
#9      ScrollPosition.beginActivity (package:flutter/src/widgets/scroll_position.dart:885:25)
#10     ScrollPositionWithSingleContext.beginActivity (package:flutter/src/widgets/scroll_position_with_single_context.dart:114:11)
#11     ScrollPositionWithSingleContext.goIdle (package:flutter/src/widgets/scroll_position_with_single_context.dart:129:5)
#12     ScrollPositionWithSingleContext.goBallistic (package:flutter/src/widgets/scroll_position_with_single_context.dart:148:7)
#13     ScrollDragController.cancel (package:flutter/src/widgets/scroll_activity.dart:417:14)
#14     ScrollableState._handleDragCancel (package:flutter/src/widgets/scrollable.dart:661:12)
#15     ScrollableState.setCanDrag (package:flutter/src/widgets/scrollable.dart:550:7)
#16     ScrollPositionWithSingleContext.applyNewDimensions (package:flutter/src/widgets/scroll_position_with_single_context.dart:105:13)
#17     ScrollPosition.applyContentDimensions (package:flutter/src/widgets/scroll_position.dart:553:7)
#18     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1493:20)
#19     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1731:7)
#20     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#21     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:497:19)
#22     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#23     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#24     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#25     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#26     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#30     _invoke (dart:ui/hooks.dart:151:10)
#31     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#32     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
The ValueNotifier<bool> sending notification was: ValueNotifier<bool>#47d1d(false)
====================================================================================================
I/InputTransport(21333): Fun_filterMotionEvent reportMoveEvent!
W/HiTouch_PressGestureDetector(21333): Touch pointer move a lot. The moving distance of X is:5.0, limit is:60The moving distance of Y is:122.0, limit is:60
W/HiTouch_PressGestureDetector(21333): Touch pointer move a lot. The moving distance of X is:11.0, limit is:60The moving distance of Y is:72.0, limit is:60
W/HiTouch_PressGestureDetector(21333): Touch pointer move a lot. The moving distance of X is:32.0, limit is:60The moving distance of Y is:105.0, limit is:60

======== Exception caught by widgets library =======================================================
The following assertion was thrown building RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#e5d83](state: RawGestureDetectorState#f6dc4(gestures: [vertical drag], behavior: opaque)):
A ScrollPositionWithSingleContext was used after being disposed.

Once you have called dispose() on a ScrollPositionWithSingleContext, it can no longer be used.
The relevant error-causing widget was:
  SmartRefresher SmartRefresher:file:///D:/flutter_develop/medicalcloud_support_dependencies/flutter_chat_list_test/lib/src/chat_list.dart:459:14
When the exception was thrown, this was the stack:
#0      ChangeNotifier._debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:114:9)
#1      ChangeNotifier._debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:120:6)
#2      ChangeNotifier.removeListener (package:flutter/src/foundation/change_notifier.dart:233:12)
#3      IndicatorStateMixin._updateListener (package:pull_to_refresh/src/internals/indicator_wrap.dart:634:18)
#4      IndicatorStateMixin.didUpdateWidget (package:pull_to_refresh/src/internals/indicator_wrap.dart:671:5)
#5      StatefulElement.update (package:flutter/src/widgets/framework.dart:4943:57)
#6      Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#7      RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5787:32)
#8      MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6445:17)
#9      _ViewportElement.update (package:flutter/src/widgets/viewport.dart:228:11)
#10     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#11     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#12     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#13     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#14     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#15     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#16     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#17     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#18     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#19     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#20     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#21     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#22     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#23     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#24     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#26     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#27     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#28     ProxyElement.update (package:flutter/src/widgets/framework.dart:5108:5)
#29     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#30     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#31     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#33     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#34     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#35     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#36     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#37     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#38     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#40     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#41     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#42     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#43     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#44     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#45     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#46     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#47     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#48     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#49     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#50     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#52     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#53     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#54     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#55     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#56     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#57     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#58     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#59     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#60     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#61     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#62     ProxyElement.update (package:flutter/src/widgets/framework.dart:5108:5)
#63     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#64     _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:138:18)
#65     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2600:19)
#66     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:156:12)
#67     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1997:59)
#68     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#69     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1997:14)
#70     RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:230:7)
#71     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:319:5)
#72     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1731:7)
#73     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#74     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:497:19)
#75     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#76     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#77     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#78     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#79     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#83     _invoke (dart:ui/hooks.dart:151:10)
#84     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#85     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
====================================================================================================

======== Exception caught by foundation library ====================================================
The following _CastError was thrown while dispatching notifications for RefreshNotifier<LoadStatus>:
Null check operator used on a null value

When the exception was thrown, this was the stack:
#0      LoadIndicatorState._handleModeChange (package:pull_to_refresh/src/internals/indicator_wrap.dart:437:30)
#1      ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:308:24)
#2      RefreshNotifier.value= (package:pull_to_refresh/src/smart_refresher.dart:1059:5)
#3      RefreshController.loadComplete.<anonymous closure> (package:pull_to_refresh/src/smart_refresher.dart:789:19)
#4      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#5      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1089:9)
#6      SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#10     _invoke (dart:ui/hooks.dart:151:10)
#11     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#12     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
The RefreshNotifier<LoadStatus> sending notification was: RefreshNotifier<LoadStatus>#9c1fa(LoadStatus.idle)
====================================================================================================

使用最新的flutter_chat_list 1.0.5

Please update to flutter_chat_list: ^1.0.6.
Fixed random scrollposition error when refreshController.requestLoading was invoked. It caused by manually call refreshController.requestLoading(). The error will supress if we pass needMove: false.

flutter_chat_list 1.0.6
偶然报错：
I/flutter (29904): The following assertion was thrown building Container(padding:
I/flutter (29904): EdgeInsets(12.0, 5.0, 12.0, 5.0)):
I/flutter (29904): 'package:flutter/src/rendering/object.dart': Failed assertion:
I/flutter (29904): line 1627 pos 14:
I/flutter (29904): '_debugSubtreeRelayoutRootAlreadyMarkedNeedsLayout()': is not
I/flutter (29904): true.
I/flutter (29904):
I/flutter (29904): Either the assertion indicates an error in the framework itself,
I/flutter (29904): or we should provide substantially more information in this error
I/flutter (29904): message to help you determine and fix the underlying cause.
I/flutter (29904): In either case, please report this assertion by filing a bug on
I/flutter (29904): GitHub:
I/flutter (29904):   https://github.com/flutter/flutter/issues/new?template=2_bug.md
I/flutter (29904):
I/flutter (29904): The relevant error-causing widget was:
I/flutter (29904):   Container
I/flutter (29904):
I/flutter (29904):
I/flutter (29904): When the exception was thrown, this was the stack:
I/flutter (29904): #2      RenderObject.markNeedsLayout (package:flutter/src/rendering/

提示错误的位置是列表的item，一个StatefulWidget，里面主要结构如下
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
  },
  child: Container(//就是这个Container报错
    padding: const EdgeInsets.only(left: 12, top: 5, bottom: 5, right: 12),
    child: _content(context),
  ),
);

}

#41     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:111:11)
#42     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#44     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#46     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#49     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#50     ProxyElement.update (package:flutter/src/widgets/framework.dart:5108:5)
#51     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#52     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#53     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#54     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#55     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#56     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#57     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#58     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#59     ProxyElement.update (package:flutter/src/widgets/framework.dart:5108:5)
#60     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#62     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#63     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#64     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#65     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#66     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#67     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#68     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#69     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#70     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#71     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#72     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#73     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2659:19)
#74     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#75     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#76     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#77     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#78     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#82     _invoke (dart:ui/hooks.dart:151:10)
#83     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#84     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 5 frames from class _AssertionError and dart:async)

找到复现的方法了，替换demo里面的test_chat_list.dart
test_chat_list.zip
操作如下：
点击列表条目，弹出一个弹窗，关闭弹窗，手机横屏，点击底部的编辑框。
操作视频：
https://user-images.githubusercontent.com/29618907/171758241-aaf501f9-a80a-4d3a-a942-ac53243cd6a9.mp4

日志：
======== Exception caught by widgets library =======================================================
The following assertion was thrown building Container(margin: EdgeInsets(12.0, 5.0, 12.0, 5.0)):
'package:flutter/src/rendering/object.dart': Failed assertion: line 1627 pos 14: '_debugSubtreeRelayoutRootAlreadyMarkedNeedsLayout()': is not true.

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

The relevant error-causing widget was:
  Container Container:file:///D:/flutter/flutter_chat_list_test/example/lib/test_chat_list.dart:341:14
When the exception was thrown, this was the stack:
#2      RenderObject.markNeedsLayout (package:flutter/src/rendering/object.dart:1627:14)
#3      RenderBox.markNeedsLayout (package:flutter/src/rendering/box.dart:2373:11)
#4      RenderParagraph.text= (package:flutter/src/rendering/paragraph.dart:146:9)
#5      RichText.updateRenderObject (package:flutter/src/widgets/basic.dart:5588:9)
#6      RenderObjectElement._performRebuild (package:flutter/src/widgets/framework.dart:5668:12)
#7      RenderObjectElement.update (package:flutter/src/widgets/framework.dart:5647:5)
#8      MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:11)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#10     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#11     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#12     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#13     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#14     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#15     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#16     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#17     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#18     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6291:14)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#20     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#21     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11)
#22     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#23     StatefulElement.update (package:flutter/src/widgets/framework.dart:4960:5)
#24     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#26     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#27     StatelessElement.update (package:flutter/src/widgets/framework.dart:4834:5)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:3501:15)
#29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4780:16)
#30     Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#31     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2659:19)
#32     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#33     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#34     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#35     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#36     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#40     _invoke (dart:ui/hooks.dart:151:10)
#41     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#42     _drawFrame (dart:ui/hooks.dart:115:31)
(elided 5 frames from class _AssertionError and dart:async)
====================================================================================================

After I observe your video, There is no room space show chat list when the phone turn to horizontal. Would you please make sure it has more room space show chat list?
Thanks,

不是空间不够的原因。相同情况下，我只要把列表item里面的RichText替换成Text就不会出现这个问题
///新增
class TestItem extends StatelessWidget {
  final int index;
  TestItem(this.index,{Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () async{
        await showCupertinoDialog<bool>(
            context: context,
            builder: (context) {
              return WillPopScope(
                onWillPop: () async {
                  return true;
                },
                child: CupertinoAlertDialog(
                  title: Text('title'),
                  actions: [
                    CupertinoDialogAction(
                      onPressed: () {},
                      child: Text(
                        'btn1',
                      ),
                    ),
                    CupertinoDialogAction(
                      onPressed: () {},
                      child: Text(
                        'btn2',
                      ),
                    ),
                  ],
                ),
              );
            });
      },
      // child: Container(
      //   margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 5),
      //   child: RichText(
      //     text: TextSpan(children: [
      //       WidgetSpan(
      //         child: Text('345345345345', style: TextStyle(fontSize: 14)),
      //       ),
      //       // WidgetSpan(
      //       //   child:Text('uuuuuuuuuuuuuuuu',
      //       //       style: TextStyle(fontSize: 14)),
      //       // ),
      //     ]),
      //   ),
      // ),
      child: Container(
        margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 5),
        child: Text('345345345345', style: TextStyle(fontSize: 14)),
      ),
    );
  }
}

把showCupertinoDialog换成下面的showDialog也不会出现问题
showDialog(
          context: context,
          builder: (BuildContext context) => AlertDialog(
                title: Text(
                  '我是标题',
                  textAlign: TextAlign.center,
                ),
                content: Container(
                  child:  Text('内容'),
                ),
                actions: [
                  TextButton(
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                    child: Text('取消'),
                  ),
                  TextButton(
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                    child: Text('确定'),
                  ),
                ],
              ));

所以出现问题的关键：1、RichText    2、showCupertinoDialog
测试手机是华为nova6


Make Carousels

The carousels have not been made yet, as you can tell by this screenshot:

We should probably finish those..

For Top Collections, someone should implement front-end for collections first.. looks at myself

I'm pretty sure we have the back-end up to support the carousels, so this feature is waiting for someone to make it.


python3Packages.androidtv: 0.0.65 -> 0.0.66

Description of changes
Update to latest upstream release 0.0.66

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 166041 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.androidtv
python310Packages.androidtv
python39Packages.androidtv


simple string expansion

AC

does not need to append the list at this time
can render a list of key values into a string on a web browser
can be rendered with html tags or attributes

N.B.
eventually, we'll want to wrap values with keynames
ultimately, when there's no corresponding key:

skip, or
fill in key value based on identifying a dictionary with a corresponding key, recursively (traverses graph constrained by performance requirements)


Investigate challenge of changing to React PPX 3

This could be a useful template
https://github.com/sync/hackerz


Greedily expand subset sizes

The assumption is that most of the options are sort of independent, so we'll find the best approximation via singletons. Moreover, if we find a suboptimal solution, then we'll be able to correct it later with bigger subsets.

This is actually done.


Calling for Google/Firebase Repos update volunteers

Hi guys, as I'm overloaded by the other GameWorkstore packages and my everyday job (protocolui, patterns, protocolaudio, fsm, asyncnetworkengine and new packages), I'm opening positions for volunteers to update google & firebase packages. Please candidate yourselves on this thread, I will enter in contact as soon I check your credentials to manage our repos,
The process of update the firebase packages takes just few minutes, but it needs constant vigilance on the google pages,
Cheers
John

Hello @HanzaRu I would be happy to help with this.

we are using a private npm register to serve it. Jetbrain space has free usage which is enough for there firebase packages.

Is there no update on this? I do similar as you, hosting the package as UPM. currently stuck with 11.2.0, I think I have to upgrade to the latest version because there is a comply issue with the com.google.android.gms.play-services-measurement-impl-21.3.0.aar

@andnoonesthere and anyone who wants to contribute on firebase updates, send me a email on<EMAIL_ADDRESS>so we can schedule a call


Move stale management to github action

Deleted the existing stale management action from probot and moved it to github actions.

Creating the changes internally to handle the copybara import issue.


2 shock terms in ontology

I suggest removing the SNOMEDCT term 'shock' from externalByHand.owl. (The ontology also has the HP term 'Shock' that has the same meaning.)
However, the SNOMEDCT term is in use in protein_array.owl.

I agree with removing and replacing with HP term in protein_array.owl.

The changes have been pushed. 'Shock' was removed from externalByHand.owl. The HP term will be imported in future releases, and replaces the SNOMEDCT term in protein_array.owl. Closing.


packages update

The main change in this pr is the substitution of the TestStatsExtended interface type with a class type. This has been done because in the class TestStats of the @wdio/reporter package has been introduced the private variable _stringifyDiffObjs that doesn't allow to initialize the TestStatsExtended in other way.

This looks good to me, wdyt @wswebcreation ?


Icon fails to load when waiting for nhost up

The terminal icon in the Dashboard fails to load when it's waiting for nhost up.
I think this can be solved by using an inline SVG file instead.

nvm, possibly a glitch on my side. Works with the new CLI version.


Applying Multiple CustomFilter

This is  a question.
Description
Where can I find this implementation Users filters for Roles and Active (both):

I've checked out the enso/core repo and I can only find the implementation for :
"filters": [{
        "label": "Role",
        "data": "users.role_id",
        "type": "select",
        "value": [],
        "route": "system.roles.options",
        "multiple": true
    }],

I'm more instersted how does one combine 2 filters together - how can I use multiple custom filters ? Like:
public function filterApplies(Obj $params): bool
    {
        return optional($params->get('user'))->filled('is_active') ?? false || optional($params->get('user'))->filled('is_locked') ?? false;
    }

    public function filter(Builder $query, Obj $params)
    {
        return $query->when(
            $params->get('user')->get('is_active'),
            fn($query) => $query->where('is_active', '=', 1),
            fn($query) => $query->where('is_active', '=', 0)
        )->when(
            $params->get('user')->get('is_locked'),
            fn($query) => $query->where('is_locked', '=', 1),
            fn($query) => $query->where('is_locked', '=', 0));
    }

Thank you,

You missed this
Most columns will be filterable automatically.
Only custom scenarios need the "filters" property in template.

You missed this
Most columns will be filterable automatically.
Only custom scenarios need the "filters" property in template.

Thanks for this, yes, I missed that part. But it seems that I still need to merge 2 custom filters because my is_active and is_locked is represented by a custom slot that displays a custom icon, therefore the json configuraiton is not actually pointing tot the db column, so default filters will not work in this situation.
I'm still tweaking and playing around with the "->when" conditions to combine 2 conditions. If you have any suggestions I'll be glad to hear them, if not, thanks for the help - ticket can be closed.

@robbykrlos shoot me an email when you have the time, I want to ask you something.

I still think there is an issue with the custom filters. I tried to debug a bit and found that if more then 1 custom filter is used, the last one is not "remembered". Here's my example:
I have 2 custom filters:
"filters": [
        {
            "label": "Is Maintenance",
            "data": "cluster.is_maintenance",
            "type": "boolean",
            "custom": true,
            "value": false
        },
        {
            "label": "Is Active",
            "data": "cluster.is_active",
            "type": "boolean",
            "custom": true,
            "value": false
        }
    ],

And trying to see what happens in my Table calss:
class ClusterTable implements Table, CustomFilter
{

...
public function filterApplies(Obj $params): bool
    {
//forced assumption that both custom filter are applied
        return true;
    }
...
public function filter(Builder $query, Obj $params)
    {
//forced assumption that both custom filter are applied
$query->where('is_maintenance', $params->get('cluster')->get('is_maintenance'))
            ->where('is_active', $params->get('cluster')->get('is_active'));

var_dump($params, $query->toSql());

var_dump output
object(LaravelEnso\Helpers\Services\Obj)#1633 (1) {
  ["items":protected]=>
  array(1) {
    ["cluster"]=>
    object(LaravelEnso\Helpers\Services\Obj)#1643 (1) {
      ["items":protected]=>
      array(1) {
        ["is_active"]=>
        bool(true)
      }
    }
  }
}

select ...
...
where ((`clusters`.`version` LIKE ?)) and `is_maintenance` is null and `is_active` = ? and `clusters`.`deleted_at` is null"

Here is how the UI looks

The version filter is one which is not custom and set as you mentioned above : You missed this
"meta": [
                "boolean",
                "filterable"
            ]

As you can see the is_maintenance custom filter value is not set in the query where clause, because it's not present in the $params collection, although the UI, and the tableData request contains the right details:

Some strangeness what I observer is that the filter method is called twice, because it outputs twice the $params and query sql, and both times the output is the same.  Initially I believed this is based on the number of custom Filters I add, but this is not related.
Unfortunately I do not have much time to look under the hood this time to clarify where the params value is lost for is_maintenance, so I'm reaching again to you in case you have some out of the box ideas.
Thanks.

Hi @robbykrlos
I checked it and I guess you are right.
pleas check https://github.com/laravel-enso/tables/pull/222
thank you


No minimap buttons. (Feature req.)

Description
The minimap needs all the buttons present, even if a few fade when not hovered over. These could even be placed in a row in the bottom third of the minimap when hovered as long as they don't clickthrough and ping the map. Extra ones that come from addons can sit on the ring, and the calendar should appear next to the clock when hovered. This should also be remedied alongside the missing class hall button.
Version Number
1.3.103-Release
Steps to Reproduce
Hover over the minimap.
Expected Behavior
Buttons presented to use.
Actual Behavior
No buttons shown.
Only DiabolicUI Enabled
The UI-changing Addons I have are: DiabolicUI, Goldpaw Core, Goldpaw Trader/Merchant, Adapt (Almost Default Animated Portraits), Bagnon, SexyMap, Masque, Engraved, rObjectiveTracker and Deadly Boss Mods.
Sexymap was disabled for this test.
Additional Information
N/A
Error Log
N/A
Screenshot
N/A

worldmap connected to the questlog anyway now
mousewheel zooms in and out
right-click opens the tracking menu
calendar can be opened by left-clicking the clock
12/24 hour and game/local time can be toggled by mid/right buttons on the clock now

Closing this issue as pretty much all that functionality is there already. And buttons from other addons can be accessed with MBB, as mentioned in the wiki. Will be adding a detailed Minimap section to the wiki as well! 👍


Optimize png image with zopflipng lossless compression

Summary
Recompress the PNG images losslessly via Google's zopflipng to reduce the application size without losing any visual quality!
The parameters used in this optimization were: zopflipng --iterations=600 --keepchunks=iCCP --lossy_transparent --splitting=3
1652 PNG images were optimized in total.
Related Pull Requests

https://github.com/mattermost/mattermost-mobile/pull/2682
https://github.com/mattermost/desktop/pull/981

Thanks @PeterDaveHello, discussing this PR with Asaad internally. Will report back here soon

Hey @esethna,
Do you have updates about this PR?

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: https://i-03f0b109411f43abf.test.spinmint.com
Test Admin Account: Username: sysadmin | Password: sysadmin
Test User Account: Username: user-1 | Password: user-1
Internal IP: <IP_ADDRESS>
Instance ID: i-03f0b109411f43abf

Thanks @PeterDaveHello, discussed with Asaad and tested to verify there was no visible signs of quality loss. Moving to dev review

Spinmint test server destroyed

@PeterDaveHello Would you be able to update this PR to the latest master and resolve the merge conflict?

Should be done!

Thanks!


Re-Download Cert?

Is is possible to re-download a cert before its renewal date is up?

Yes, you can choose "renew specific" from the main menu and pick which one you want to refresh..


Kapacitor "show " shows no data points consumed, but "stats ingress" and strace do

OS: CentOS Linux release 7.2.1511 (Core)
Kapacitor and InfluxDB Versions: 1.0.0
Built and installed from your source (no special/weird make options specified):
https://dl.influxdata.com/kapacitor/releases/kapacitor-1.0.0_linux_amd64.tar.gz
Issue:
kapacitor list tasks shows the task running and enabled:
ID                            Type      Status    Executing Databases and Retention Policies
core-iperf3-bandwidth         batch     enabled   true      ["pipe-apps"."pipe-apps"]

kapacitor stats ingress shows points received:
pipe-apps                     pipe-apps                     iperf3                        145

kapacitor show core-iperf3-bandwidth shows 0 batches collected:
ID: core-iperf3-bandwidth
Error:
Template:
Type: batch
Status: enabled
Executing: true
Created: 23 Jun 17 17:59 UTC
Modified: 23 Jun 17 19:16 UTC
LastEnabled: 23 Jun 17 19:16 UTC
Databases Retention Policies: ["pipe-apps"."pipe-apps"]
TICKscript:
// core-iper3-bandwidth

// Email parameters
var emailAddress = <obfuscated for github>

var msg_details = '''

 Kapacitor

      Notification Type:
      {{ if eq .Level "INFO" }}Info{{ else }}Alert{{ end }}

      iPerf3 Client Instance:
      {{ index .Tags "host"  }}

      AWS Region:
      {{ index .Tags "region"  }}

      Kapacitor Task Name:
      {{ .TaskName }}

      Check State:
      {{ .Level }}

      Event Time:
      {{ .Time }}

'''

// Parameters
var critBits = 104857600

var window = 60m

var frequency = 15m

var buckets = 30m

var renotify = 15m

// Dataframe
var data = batch
    |query('''
        SELECT mean(sent_bps)
        AS stat
        FROM "pipe-apps"."pipe-apps"."iperf3"
        WHERE "host" =~ /<obfuscated for github>.*/
    ''')
        .period(window)
        .every(frequency)
        .groupBy(time(buckets), 'host')

// Thresholds
var alert = data
    |alert()
        .id('{{ index .Tags "host"  }}')
        .message('Average network bandwidth for {{ .ID }} is {{ .Level }}: {{ index .Fields "stat" }}/Bits per sec')
        .details(msg_details)
        .stateChangesOnly(renotify)
        .crit(lambda: "stat" < critBits)

// Alert
alert
        .email(emailAddress)

DOT:
digraph core-iperf3-bandwidth {
graph [throughput="0.00 batches/s"];

query1 [avg_exec_time_ns="0" batches_queried="9" connect_errors="0" points_queried="26" query_errors="0" ];
query1 -> alert2 [processed="9"];

alert2 [alerts_triggered="0" avg_exec_time_ns="0" crits_triggered="0" infos_triggered="0" oks_triggered="0" warns_triggered="0" ];
}

Also, when I strace and filter on read() calls, I see the kapacitor process is reading the query results in question from our influxdb instance:
[pid 26143] <... read resumed> "POST /write?consistency=&db=<obfuscated for github>&precision=ns&rp=<obfuscated for github> HTTP/1.1\r\nHost: <obfuscated for github>\r\nUser-Agent: InfluxDBClient\r\nContent-Length: 966\r\nContent-Type: \r\nAccept-Encoding: gzip\r\n\r\niperf3,dirty_data=false,host=<obfuscated for github>,instance_id=<obfuscated for github>,receiving_server=<obfuscated for github>,region=us-east-1 received_bps=1039223000,sent_bps=1040483000<PHONE_NUMBER>000000000\niperf3,dirty_data=false,host=<obfuscated for github>,instance_id=<obfuscated for github>,receiving_server=<obfuscated for github>,region=us-east-1 received_bps=1055083000,sent_bps=1056186000<PHONE_NUMBER>000000000\niperf3,dirty_data=false,host=<obfuscated for github>,instance_id=<obfuscated for github>,receiving_server=<obfuscated for github>,region=us-east-1 received_bps=60238092,sent_bps=61656726<PHONE_NUMBER>000000000\niperf3,dirty_data=true,host=<obfuscated for github>,instance_id=<obfuscated for github>,receiving_server=<obfuscated for github>,region=us-east-1 received_bps=0,sent_bps=78082<PHONE_NUMBER>000000000\niperf3,dirty_data=true,host=<obfuscated for github>,instance_id=<obfuscated for github>,receiving_server=<obfuscated for github>,region=us-east-1 received_bps=0,sent_bps=78083<PHONE_NUMBER>000000000\n", 4096) = 1192

I just reviewed what I just posted and see batches_queried="9", points_queried="26" and alert2 [processed="9"] now, which were all goose eggs for hours on end before I attached to the kapacitor process w/ strace and then detached after a minute or two. Once i detached strace I started seeing incrementing values for batches_queried, etc..
This seems extraordinarily weird...
I had also previously restarted kapacitor several times previously to try and get things moving. It seems the only thing that got it moving was to attach to it w/ strace.

@phantasm66 Kapacitor has stream and batch tasks. Batch tasks query data from InfluxDB and stream tasks consume data that is directly written to Kapacitor via the API. The kapacitor stats ingress number only report data that is  written to Kapacitor vai the API, it does not count data that is return in query results.
As such the ingress stats are not relevant to the batch task processed numbers.
The frequency of the batch task is specified at 15m, so it will only query new data every 15m, so maybe that is the issue and just happened to coincide with debugging via strace?

I truncated my task list output above, to show just the one that I'm currently working with (the batch one). There are 6 other kap tasks running here (for days). Those other 6 are stream tasks. For several hours today, while i reviewed/debugged stuff.. I noticed that the stats ingress output did not show anything, even for the 6 stream tasks.
They all started to show up in ingress output (stream and batch tasks) after my strace detached.
Also, if the stats ingress output doesn't maintain counts of data points for batch tasks, then why would I see the data points for my batch task in that output... and incrementing according to the tasks intervals?
$> kapacitor stats ingress | grep iperf3
pipe-apps                     pipe-apps                     iperf3                        350

Points Received has been increasing on interval, since I opened this issue.


add flag "alwaysVisibileNextButton" for visible nextButton at last view…

We think is better for user continue action in same button

Thanks for your proposal. I cannot merge the code though. For the sake of consistency,             delegate?.walkthroughNextButtonPressed?() should behave like delegate?.walkthroughPrevButtonPressed?() hence, those functions should be called only when navigation through controllers is allowed (the current controller is not the last or the first controller)... or if a special case is proposed (as example, if the alwaysVisibleNextButton is true...).
I would call the variable nextButtonIsAlwaysVisible.


Fix null reference when table has blank() input.

Add null check for the row and update logic to not only check first row but check the first null row for column def.

✅ No public API change.

✅ No public API change.

✅ No public API change.


Hide typing indicator with animation

Would be nice to have the typing indicator hiding in the same way it's shown: with animation.
I will try to implement this feature - if that's possible - and make a PR. Do you have any idea of the direction I should take?

Hey @natanrolnik - hm... the collectionView should handle the animations regarding adding/removing cells/supplementary views.

That's strange, I'm not able to get the animation. I'll post a gif of the result I'm getting.

There we go. The quality of the GIF isn't good enough but you can get see that happening.

I agree with @natanrolnik, the typing indicator animation is a bit weird and bulky .. would be great if this could be animated as well ..

:+1:

+1

+1

+1

Hello everyone!
I'm sorry to inform the community that I'm officially deprecating this project. 😢 Please read my blog post for details:
http://www.jessesquires.com/blog/officially-deprecating-jsqmessagesviewcontroller/
Thus, I'm closing all issues and pull requests and making the necessary updates to formally deprecate the library. I'm sorry if this is unexpected or disappointing. Please know that this was an extremely difficult decision to make. I'd like to thank everyone here for contributing and making this project so great. It was a fun 4 years. 😊
Thanks for understanding,
— jsq


Cannot copy defect info under Defect Management

When try to copy a defect's info under Defect Management view, its info cannot be copied.
Instead, it shows "Nothing copied".
Under Release Management, it works fine.
It should be able to copy info under Defect Management, too.

This has been fixed.


imgpkg crashes with panic: runtime error: invalid memory address or nil pointer dereference

What steps did you take:
See: https://github.com/spring-projects-experimental/spring-boot-observer/blob/main/application-live-view-convention-service/01-setup-convention-controller-in-kind.sh#L21
What happened:
The process seems to start okay then crashes with a segmentation fault.
What did you expect:
To execute and 'materialize' the bundle contents on the file system.
Anything else you would like to add:
I'm really totally at a loss what the error means. Seems like a bug to me, but it ma just as well be something I am doing wrong. I have no idea. At the very least, if its something I'm doing wrong, it certainly would be nice if the error message provided a better explanation of what the problem might be.
Environment:

imgpkg version (use imgpkg --version):

$ imgpkg -v
imgpkg version 0.5.0

Docker registry used (e.g. Docker HUB):

harbor-repo.vmware.com

OS (e.g. from /etc/os-release):

Ubuntu 18.04.5 LTS

Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.

Hi @kdvolder  - Thanks for creating this bug
I am unable to access: https://github.com/spring-projects-experimental/spring-boot-observer/
So I am unable to see what command you are running.
However, I noticed that the version of imgpkg you are using is a few versions out of date.
Can you try updating to the latest (v0.17.0) and trying again?

The above repo linked repo is private not sure you'd have access. This is the bit of ths script that matters:
export DOCKER_REPO=harbor-repo.vmware.com/tanzu_sbo
export CONVENTION_CONTROLLER_VERSION=v0.4.0 # update when we cut the initial release
imgpkg copy --tar ~/Downloads/convention-controller-bundle-${CONVENTION_CONTROLLER_VERSION}.tar --to-repo ${DOCKER_REPO?:Required}/convention-controller-bundle || echo fails sometimes, ignore

Also the tar file being referenced is from this page: https://github.com/vmware-tanzu/convention-controller/releases
Specifically: https://github.com/vmware-tanzu/convention-controller/releases/download/v0.4.0/convention-controller-bundle-v0.4.0.tar
Also in a private repo but if you are in VMware you should be able to get access to it.

However, I noticed that the version of imgpkg you are using is a few versions out of date

REally? I though I just downloaded a fresh one. Let me check and see...

No more error with v0.17. So closing.

Thanks for the quick reply. As to how I ended up with old version. It seems I downloaded the latest, but also still had another older binary still in 'Downloads' folder and somehow that one got installed and used instead. It might be useful if the download files included the version in the file name. E.g. imgpkg-linux-amd64-v0.17 instead of ``imgpkg-linux-amd64`.
I think that would make mistakes installing an old version by accident less likely. Just a suggestion, not sure how easy it would be to do this, it is of course entirely up to you to decide if its worth doing this :-)

Thanks for that additional context @kdvolder
My main concern with renaming the binary to include the version would be breaking downstream consumers that may be relying on that filename.
Although, I think if we start seeing more issues around the problem you stated, we would consider it as a viable option :-)


Toast component improvements - onClose callback

Run the onClose callback immediately after it closes and not before
Run the onClose callback also when it closes automatically

If the merge conflicts are fixed can this be merged? @akhil-geekyants

Hi @joshhornby I solved the conflicts. Now, I've been waiting for some answer or the acceptance of my improvements.


Write Tests for AutomatonServer

We need tests for this as it is one of the trickier logics. Not great for beginners but good first issue for a senior dev.

What's an "AutomatonServer"?

It is the brains of the AutomatonSupervisor. It is a best practice to keep
Supervisor modules thin and focused on just the supervision fault tolerance
stuff. The brain keeps the state and manages the “workers” (for example in
the case of a worker pool) — in this case being the user-defined nodes.
It is located in file
https://github.com/upstarter/automata/blob/master/lib/automata/core/automaton_server.ex
On Mon, Feb 10, 2020 at 8:49 AM Dimitar Panayotov<EMAIL_ADDRESS>wrote:

What's an "AutomatonServer"?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/upstarter/automata/issues/8?email_source=notifications&email_token=AAAF5UWMZX2JN5ZK5WLLHQ3RCGASBA5CNFSM4KSRVUO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELJHRPI#issuecomment-584218813,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAF5UW2U6GLQDJ6G7RLAY3RCGASBANCNFSM4KSRVUOQ
.


De-couple connection pool from DatabaseClient instances

We've had too many customers come concerned about performance when they're not following our guidance to reuse DatabaseClient instances.
Let's make it harder for them to make this mistake.  There's no reason we can't separate out the HTTP connection pool so they can create and destroy DatabaseClient instances without destroying the HTTP connections.

This is a duplicate or #470


Unclear BytesMut::unsplit documentation

BytesMut::unsplit states the following:

If the two BytesMut objects were previously contiguous, i.e., if other was created by calling split_off on this BytesMut, then this is an O(1) operation

I don't think this is true. It looks like other must also not be mutated in a way that requires an allocation.
use bytes::{BufMut, BytesMut};

fn main() {
    let mut buf = BytesMut::new();

    buf.put_u64(1);
    buf.put_u64(1);
    buf.put_u64(1);
    buf.put_u64(1);

    //buf.reserve(1);
    let mut first = buf.split_off(buf.len() - 1);

    first.put_u64(1);

    buf.unsplit(first);
    println!("{:?}", buf);
}

I've compiled the above code and stepped through with gdb and bytes::bytes_mut::BytesMut::extend_from_slice is called within BytesMut::unsplit. This function is not called if I uncomment the call to BytesMut::reserve.
The documentation does not mention this as a condition for whether or not copying takes place and I assumed that appending to first (leading to a new allocation) would extend the shared buffer rather than move first into a new one.
I don't pretend to have a thorough or correct understanding of this library and I have a few questions.

Have I misunderstood something here?
Should the documentation be tweaked here to be clearer to others?
Is there are a good way to use this library while being explicit (instead of using a debugger?) for where copying should and shouldn't take place?

Ah yeah, well, modifying either half in a way that causes that half to reallocate will cause them to no longer be adjacent in memory.  Feel free to submit a doc PR that clarifies this.
In general, a BytesMut does not really know where in the buffer other BytesMut objects point, and it would not be able to change those other BytesMut values to point into a new shared buffer.


Migration to MySQL Database ?

Is there a way to migrate accounts to MySQL Database ? I mean, I created one and no problem here, but how can I migrate my old data to the database now ?
Thank's in advance !

Hi,
I once wrote a tiny plugin to do that. You can find the source code here
Open an issue there if you run into any issues as I am not quite sure how up to date the plugin is :innocent:


Documentation link is not working

Documentation type: [End-user documentation, wiki, code comments]
Documentation link
Improvements requested:
The link to the documentation isn't working.
Link (if available):
http://gh.lum.ai/odinson/

Thanks, @svempati21 , for opening this.  Here is the new URL for the docs: https://docs.lum.ai/odinson/

Thank you! Sorry, I think it still isn't working though.

Thanks for your patience, @svempati21 .  Can you please try https://docs.lum.ai/odinson/ again?

It's working now. Thank you so much!

It's working now. Thank you so much!

It seems like the link to the documentation (at https://docs.lum.ai/odinson/) isn't working now.

Hi, @svempati21 .  Sorry about that.  We changed it in the repo's side bar, but overlooked the README 😅
Here is the new link: https://lum.ai/odinson/docs/

Thank you!


Minimum change to test Python 3

see #2044.

Closing as no longer needed.  #2044 contained the solution.  Results will be bundled into #1903.


CSV Upload Pilot Sender Onboarding Confusion: Ordering Provider, Testing Facility and Ordering Facility

Problem statement
Ordering Provider, Testing Facility and Ordering Facility confusion for CSV pilot which is causing confusion and frustration on user side and requiring more manual iteration (e.g. meetings and emails on behalf of RS team)
CSV upload pilot users are emerging to be two major user types:
Independent Labs. Facilities that collect sample in one location (could be same or different state) and then the ordering facility is in a separate location; testing location and patient address tend to be in the same state. Example Elite Med Labs has testing location in Colorado and their samples are run in TX.
Provider (urgent care, primary care, or other patient care setting). Facilities that collect sample and order test in the same location. E.g. Newport Childrens (?); Youth Clinic
There is some patterns of confusion from these different sender types.  For the Lab we are seeing that they are confused about what to enter for the  Ordering Facility
We need to support new users of ReportStream to understand which field are relevant for them and what the field codes translate to for their specific facility.
What you need to know
Linke to Elite Med lab notes – they are sparse. Elite Med Labs_CSV Uploader Pilot_Feburary 16 2022 ongoing notes VLB .docx (sharepoint.com)
Victoria and @rhood23699 debriefed after the meeting with Elite on 2/23 – One of the issues is that the ordering facility is so far to the right they must scroll for a way to see it. While the solution for the labs that use this field might be to move it to the left so that when they are getting set up they see it sooner; this documentation is for all users and the provider user does not need this field – it auto populates from the ordering provider field so may confuse them if we were to move to the left  - since providers are generally less tech savvy we want to have documentation that caters to this to be more inclusive, however this issue existed for Elite and may for others.
Need to understand and brainstorm about problem more before thinking about “one” solution or brainstorm multiple solutions or a first step
Acceptance criteria

[ ] ...

To do

[ ] ...

@rhood23699 feel free to edit or add more detail if and how you may have experienced or see this issue from your position/perspective.

@victorialb-usds This is an interesting question, one that could be part of a "frequency asked question" section. @BerniXiongA6 will create a ticket on FAQs related to epic 4338.
For reference, the order of columns doesn't matter. If users want to switch column ordering, that's ok.


Can't populate multiple Autosuggest inputs at same time

I'm looking for advice on how to populate the values of two different Autosuggest input fields based on the selection of a Suggestion from only one of the input fields.
Best explained by looking at this GIF:https://gyazo.com/297abd6907b27b106858affa7c9956e3
The intended behavior is:

User types a value into either the "name" or "email" input
Autosuggest displays the list of suggestions
The user selects a suggestion
The input fields for BOTH "name" and "email" are then populated with the appropriate values

As you can see, everything is working fine to populate the value of the "name" field only, but I cannot figure out how to ALSO populate the "email" field.
My attempted solution was to:

store both the name and email values in a parent state
update that state inside getSuggestionValue
Pass the parent state down to the child component via props
Utilize componentWillReceiveProps to update the child state with the correct input values that are already being passed into

this.state = {
      name: props.nameInputValue,
      email: props.emailInputValue,
      suggestions: [
        {
          name: "testing",
          email<EMAIL_ADDRESS>        },

getSuggestionValue = suggestion => {
    if (this.props.type === "name") {
      console.log("Get Suggestion Value is firing");
      this.props.updateInputValues(suggestion.name, suggestion.email);
      return suggestion.name;
    } else if (this.props.type === "email") {
      this.props.updateInputValues(suggestion.name, suggestion.email);
      return suggestion.email;
    }
  };

  componentWillReceiveProps(nextProps) {
    console.log("component has props: ", this.props);
    console.log("component will receive new props: ", nextProps);
    this.setState({
      name: nextProps.name,
      email: nextProps.email,
    });
  }

When I attempt the above, I get an error from the Autosuggest component
Uncaught TypeError: Cannot read property 'trim' of undefined
    at Autosuggest.getQuery (Autosuggest.js:287)
    at Autosuggest.render (Autosuggest.js:507)
    at finishClassComponent (react-dom.development.js:10249)
    at updateClassComponent (react-dom.development.js:10226)
    at beginWork (react-dom.development.js:10605)
    at performUnitOfWork (react-dom.development.js:12573)
    at workLoop (react-dom.development.js:12682)
    at HTMLUnknownElement.callCallback (react-dom.development.js:1299)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:1338)
    at invokeGuardedCallback (react-dom.development.js:1195)
    at performWork (react-dom.development.js:12800)
    at batchedUpdates (react-dom.development.js:13244)
    at performFiberBatchedUpdates (react-dom.development.js:1646)
    at stackBatchedUpdates (react-dom.development.js:1637)
    at batchedUpdates (react-dom.development.js:1651)
    at Object.batchedUpdatesWithControlledComponents [as batchedUpdates] (react-dom.development.js:1664)
    at dispatchEvent (react-dom.development.js:1874)
getQuery @ Autosuggest.js:287
render @ Autosuggest.js:507
finishClassComponent @ react-dom.development.js:10249
updateClassComponent @ react-dom.development.js:10226
beginWork @ react-dom.development.js:10605
performUnitOfWork @ react-dom.development.js:12573
workLoop @ react-dom.development.js:12682
callCallback @ react-dom.development.js:1299
invokeGuardedCallbackDev @ react-dom.development.js:1338
invokeGuardedCallback @ react-dom.development.js:1195
performWork @ react-dom.development.js:12800
batchedUpdates @ react-dom.development.js:13244
performFiberBatchedUpdates @ react-dom.development.js:1646
stackBatchedUpdates @ react-dom.development.js:1637
batchedUpdates @ react-dom.development.js:1651
batchedUpdatesWithControlledComponents @ react-dom.development.js:1664
dispatchEvent @ react-dom.development.js:1874
index.js:2177 The above error occurred in the <Autosuggest> component:
    in Autosuggest (at AutoSuggest.js:123)
    in AutoSuggest (at ActionModal.js:53)
    in div (at ActionModal.js:47)
    in div (at ActionModal.js:46)
    in form (at ActionModal.js:40)
    in div (at ActionModal.js:39)
    in div (at ActionModal.js:38)
    in ActionModal (at Board.js:126)
    in CSSTransitionGroupChild (created by TransitionGroup)
    in span (created by TransitionGroup)
    in TransitionGroup (created by CSSTransitionGroup)
    in CSSTransitionGroup (at Board.js:120)
    in div (at Board.js:119)
    in Board (at App.js:191)
    in Route (at App.js:185)
    in Switch (at App.js:166)
    in div (at App.js:165)
    in Router (created by BrowserRouter)
    in BrowserRouter (at App.js:164)
    in div (at App.js:163)
    in App (created by Route)
    in Route (at index.js:12)
    in Switch (at index.js:11)
    in Router (created by BrowserRouter)
    in BrowserRouter (at index.js:10)

Consider adding an error boundary to your tree to customize error handling behavior.
You can learn more about error boundaries at https://fb.me/react-error-boundaries.

How about this?

@moroshko I love your example. It works perfectly fine and very beautifully. It was the example that I was looking for.
I have an additional question: Can it auto-populate dropdown combo box as well? For example, other than the nickname and email which your example demonstrated, if there was an additional field that was a select dropdown combo box for example those with  ,can a dropdown combo box be auto-populated too? Would it be possible for you to show an example of it?

Sorry, I don't understand what you are trying to achieve.
Could you share a screenshot maybe?

@moroshko thank you so much for this, it was super helpful and works great. Appreciate the time you took to do this.

@moroshko Is there a way to allow me to render multiple Autosuggests in a map()?
With the examples here, i could see that i should have different suggestions array. But, I cannot create per Autosuggest a new array as I render it in map(). Any suggestions?


ci: output log when install criu

ci test alway hang on installing criu things some times ago, add
log to make sure who blocked the ci, see #2298.
Signed-off-by: Ace-Tang<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
no need.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

interesting. the change is LGTM but I didn't see any output in the CI log. 🤔

my bad. Please remove the redirection.
criu::ubuntu::install_dependencies > /dev/null

Keep redirection, echo log before function, or log will too many, I did not consider this before.


Allow struct field names that are also primitives

Blink, like Zap doesn't allow structs to have fields that are also the name of a primitive. As far as I am aware, this makes field names like CFrame or Instance impossible inside of a struct:
struct Example {
    CFrame: CFrame<f32, f32>
}

Making this work directly probably comes with some technical challenges, but allowing for some syntax such as one of the following would likely be sufficient:

Fixed in d1781e4d7ad48f007118e663118cbea2f5cc25c8
Available in the latest release

I ended up settling on no extra syntax for it (no ""/[""]), the first snipped should correctly parse now.


how to use sharp and sharp-cli in a docker container environment

I want to use sharp and sharp-cli as an npm module called with npx.
What I've done is:
docker run -it --rm tailor/docker-libvips:node-10.9 /bin/bash
npx sharp-cli

and the error is:

internal/modules/cjs/loader.js:583
throw err;
^
Error: Cannot find module '/root/.npm/_npx/6/lib/node_modules/sharp-cli/node_modules/sharp/install/libvips'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, stat '/root/.npm/_npx/6/lib/node_modules/sharp-cli/node_modules/sharp/.node-gyp/10.9.0'
gyp ERR! System Linux 4.9.0-9-amd64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /root/.npm/_npx/6/lib/node_modules/sharp-cli/node_modules/sharp
gyp ERR! node -v v10.9.0
gyp ERR! node-gyp -v v3.7.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-12-14T00_09_09_733Z-debug.log
Install for sharp-cli@latest failed with code 1

npx seems to install sharp-cli, but then does not find it (Cannot find module '/root/.npm/_npx/6/lib/node_modules/sharp-cli/node_modules/sharp/install/libvips'). That's strange...
I also wonder why I should use a specific docker image (with libvips pre-installed) while the sharp documentation tells that libvips is automatically installed when sharp and sharp-cli are getting installed.

I notice you've cross-posted this at https://github.com/vseventer/sharp-cli/issues/30 and https://github.com/TailorBrands/docker-libvips/issues/4
This looks like a permissions problem; you're trying to use npx as root when it is designed for non-root users.
gyp ERR! stack Error: EACCES: permission denied, stat '/root/.npm/_npx/6/lib/node_modules/sharp-cli/node_modules/sharp/.node-gyp/10.9.0'

If you want to run npx sharp-cli inside a Docker container then I recommend you use a well-maintained and up-to-date image such as node:12, ensuring you use a non-root user.
$ docker run -it --rm -u node node:12 /bin/bash

/cc @vseventer

You're right, I cross-posted my question because my usecase is at the crossroads of several usecases: sharp-cli + npx + docker + gitlab CI, and I did not knew exactly where was the problem.
I tested your solution and it works well, so thank you for the tip. It makes me realize that the problem might come from GitLab CI.
My problem is that I'm using sharp-cli with GitLab CI, and I have no control over how the containers are launched.
I can't apply your tip to my CI/CD pipeline and I don't now how to optimize image automatically, using the GitLab CI pipeline. Any tip for this configuration?

It seems that docker container in GitLab CI are always started with the default user set in the Dockerfile (root user if none is defined). There is a feature request in GitLab CI tracker, but it is still open. Some workarounds are proposed in the comment of the issue, but none of them are really satisfying.
The problem of the node image is that it is declaring a node user, but it is not using it by default. That is a very strange thing, isn't it?
As GitLab CI does not allow to set the user for the moment, it is very complicated to use sharp and sharp-cli into GitLab CI...

Good to hear you worked out the source of your problem.
If you have to cross-post, please update issues to include links to the other issues/discussions so volunteers and maintainers don't waste everyone's time asking the same questions.


refactor: update values and logic for representative transformer designs

Pull Request doc
Purpose
Update the logic used to generate transformers and assign parameter values for the HIFLD grid. These parameters are generated by examining real data sets to identify representative values for different voltage combinations (thank you @danlivengood and @YifanLi86 for helping to identify these values).
What the code is doing

We add two new data files to contain values which are defined based on voltage pairs (transformer_params.csv) and high-side voltages (transformer_impedance_ratios.csv).
In load.py, we add a helper function to load these files and return a joined dataframe.
In transmission.py:

We refactor the create_transformers function so that it no longer returns just bus pairs, but also adds parameter values. The other big change is that we also take the lines dataframe, which already has capacities assigned, and uses this information to determine the highest-capacity line connected to each transformer. This capacity is used to estimate how many parallel transformers to add to be able to meet this capacity. This is a deviation from the previous logic, which generated a single transformer, keeping the impedance constant based on the previous hard-coded values, and modifying only the transformer capacity to meet the lines capacity, using an assumption about the thermal capacity of connected lines based on their voltage alone.
A lower-level helper function estimate_transformers is used to support the refactored create_transformers function. estimate_transformers returns a single Series for each voltage pair describing the parameters of each transformer and the number required, while create_transformers used this information to create N parallel transformers, each matching the given parameters.
Based on the new behavior of create_transformers, we make some changes to the existing add_impedance_and_rating function (renaming it to add_lines_impedances_ratings now that it only deals with transmission lines, not transformers) and to build_transmission, so that we have the right parameters in the order that we need them.

We remove the now-obsolete functions estimate_branch_impedance and estimate_branch_rating.
In test_transmission.py we update the values expected from the refactored functions, and remove the checks on the now-obsolete functions.

Testing
Unit testing.
Usage Example/Visuals
Usage of build_transmission is unchanged, only internal logic is refactored.
Time estimate
30-60 minutes. ~This is a draft PR for now, since it relies on #276, but all logic should be complete and ready for review.~ EDIT: #276 is merged, so this is ready to go.

#276 is merged, so this is now ready for a full review.

Do we need to create entries in the Attribution file for the two CSV files?

Do we need to create entries in the Attribution file for the two CSV files?

They are self-created values, made by examining a few different data sources, so I don't think so. @BainanXia had the same question about transmission lines: https://github.com/Breakthrough-Energy/PreREISE/pull/276#discussion_r843294526.

Thinking a bit more about the logic for determining how many transformers to add, I wonder if our current logic is adding too many. If we have a situation where there are a couple of higher-voltage lines and one lower-voltage line connected to a substation, adding enough transformer capacity to support the highest capacity line perhaps doesn't make sense, if this transformer capacity ends up being much higher than the lower-voltage line. This could also effectively reduce the impedance between the high-voltage side and the low-voltage side, which could lead to unrealistic low-voltage line congestion/violations.
If we trust the transmission line capacities that are being added, perhaps we only need enough transformer capacity to support the smaller of either: the highest-capacity high-voltage line, or the sum of line capacities on the lower-voltage side. Just speculating here, but I think it would be rare to end up with a situation where the total line capacity on the low-voltage side is so large that it requires transformers capable of handling more power than any one high-voltage line.

The last four commits implement the main idea discussed in https://github.com/Breakthrough-Energy/PreREISE/pull/286#issuecomment-1113472044. Briefly: instead of just looking at the capacity to support the highest-capacity-line (probably on the high-voltage side), we also look at the required capacity by all of the lines on the low-voltage side, and we add enough transformer capacity to meet the smaller of those two. There are a few select locations where this results in inadequate capacity where there's demand at the low-voltage bus, but that's difficult or impossible to solve a priori at grid-build time (since not all of these bottlenecks are on the radial part of the grid that #279 analyzes), so we add one more data file of assumptions for which substations need additional transformer capacity. These assumptions are identified pretty quickly in ERCOT with only an iteration or two of power flow solves, compared to the line upgrades which currently require many iterations and are therefore the main effort required to getting to a feasible grid (although maybe having more reasonable impedances between the higher- and lower-voltage parts of the grid will help mitigate this).
The numbers:

Transformers to support the highest-capacity line power: 28,977
Transformers once we limit to the sum of capacities on the low-voltage side: 18,740
Additional transformers added via explicit assumptions: 8
Other adjustments required to regain ERCOT feasibility using this new transformer logic:

1 additional transmission line
1 more line voltage assumption
5 more line design assumptions
2 more transformers automatically created due to new lines/voltage assumptions.

Probably I need to refresh my brain on the current logic of adding transformers: taking the example above, one substation is connected by 6 lines, 2x 66kV (82MW each) and 4x 230kV (552MW each). In this case, how many buses are there in this substation? Should it be 2 given there are 2 different voltage levels among the lines connected to it? If so, there should be only one transformer added, i.e. 66kV/230kV (forgot about the capacity calculation, did we choose the max(82, 552) before?)

Probably I need to refresh my brain on the current logic of adding transformers: taking the example above, one substation is connected by 6 lines, 2x 66kV (82MW each) and 4x 230kV (552MW each). In this case, how many buses are there in this substation? Should it be 2 given there are 2 different voltage levels among the lines connected to it? If so, there should be only one transformer added, i.e. 66kV/230kV (forgot about the capacity calculation, did we choose the max(82, 552) before?)

You are correct that there are 2 buses since there are 2 voltage levels.

Before this PR: every transformer's power rating is a multiple of 800 MW where the multiple is determined based on the thermal rating of the default tower/conductor design for the higher voltage.
At the start of this PR: we introduce representative transformer designs (x, r, rateA) for each voltage pair. We first determine the real power rating for each line using line geometries, then we pick the highest-capacity line connected to either end of the bus pair and add enough of the representative transformers to meet that level of power transfer.
Now: to determine the maximum amount of power that we need to support between bus pairs, instead of just looking at the highest-voltage capacity line, we look at the smaller of a) the highest capacity line or b) the sum of powers of all lower-voltage lines.

Another question not related to transformers, how do we figure out that new transmission line needs to be added during feasibility tweaking? In the adjustments required to regain ERCOT feasibility, I understand the last 3 bullets but a little surprise on the first one.

This line wasn't strictly necessary, but when looking at real maps I noticed that there should definitely be a line here, but wasn't. So it was manually noticing a data gap, rather than inferring a data gap or data mistake based on power flow results.

@danielolsen Very clear. Thanks for the detailed explanation. Now I remember everything:)

@danielolsen Very clear. Thanks for the detailed explanation. Now I remember everything:)

I had to go back and look at the before/after code to remind myself. I also realized that we hadn't deleted the old parameters which are now unused, so I just did that too.


Default value of replace in ExperimentData._set_service

Will be nicer if it's false instead of None.

Will be even nice if it's True, actually.


CUDA initialization failure while building

We are getting a CUDA initialization failure while trying to build the package. I am using a Jetson Nano production SOM and have installed all the required packages including CUDA using the SDK manager. I even tried uninstalling & reinstalling CUDA, flashing the SD card again, but the issue persists. We did not face this issue when we were testing out on the Nano Devkit though.
Any help will be highly appreciated.

Hi @senturank, do you see the CUDA toolkit under /usr/local/cuda ?  Can you build and run the deviceQuery sample?

Hi @dusty-nv ,
I do see the CUDA toolkit under /usr/local/cuda. But the Device query is showing errors.

I have also attached a screenshot of our nvcc version. Not able to figure our what I am doing wrong.

It seems that your CUDA driver / toolkit got it a bad state somehow, perhaps it was inadvertently upgraded.   I would backup your work and reflash the device.


[Identity] Add docstrings for WAM/MSA params

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

Closed in favor of https://github.com/Azure/azure-sdk-for-python/pull/32360


Make options keyword arguments

node-semver supports "includePrerelease flag on the options object to any functions that do range matching" to allow prerelease versions in range (required for checks when we care only about API compatibility like https://github.com/rails/webpacker/issues/2926).
There are already two options as positional arguments, loose and platform, it would be inconvenient to have all three options as positional ones. So I suggest doing a breaking change: make them keyword arguments and then add include_prerelease to existing range functions like this b50588c.
So I'm asking for approval of this approach.

ping @katzj

Thanks for this @pustomytnyk. I agree making these keyword arguments is a nicer interface, but I'm also reluctant to make a breaking change like this. I'll do a little more digging/thinking but one initial thought I have is: couldn't we stretch the idea of loose to include pre-releases as well?

couldn't we stretch the idea of loose to include pre-releases as well?

Well, that would be a breaking change too!

Well, that would be a breaking change too!

Point taken 😄
Would you be willing to split this into two PRs? The first would be converting to keyward args, and a second for adding the pre-release bits. I'm thinking we should move to 3.0.0, maybe you can add a note in the README about the changes introduced in that (upcoming) version?

Thanks @pustomytnyk, can you add a note about the breaking changes in the upcoming 3.0.0 release to the Readme?

@jsonperl feel free to commit more updates to README

Thanks @pustomytnyk, I'll release this as 3.0.0 and then we can do the pre-release update as 3.0.1.

I'm gonna take the opportunity to swap the default branch to main while I'm here.


[Question] - Exclude certain images from scanning

👋🏻 - Are their any examples available of how to use the namespace-label-selector and pod-label-selector parameters to this? I've tried a few variations but get nothing but errors. So clearly i'm not understanding something here.
Config
Attempt 1
args:
  targets: dtrack
  format: cyclonedx
  dtrack-base-url: my-cool-url
  dtrack-api-key: notanapikey
  kubernetes-cluster-id: cluster-name
  namespace-label-selector: 'notin kube-system'

time="2023-06-06T00:30:00Z" level=info msg="Execute background-service"
time="2023-06-06T00:30:00Z" level=error msg="failed to list namespaces with selector: notin kube-system, abort background-service" error="failed to list namespaces: unable to parse requirement: found 'kube-system', expected: in, notin, =, ==, !=, gt, lt"

Attempt 2
args:
  targets: dtrack
  format: cyclonedx
  dtrack-base-url: my-cool-url
  dtrack-api-key: notanapikey
  kubernetes-cluster-id: cluster-name
  namespace-label-selector: 'notin (kube-system)'

time="2023-06-05T19:30:00Z" level=info msg="Execute background-service"
time="2023-06-05T19:30:00Z" level=error msg="failed to list namespaces with selector: notin (kube-system), abort background-service" error="failed to list namespaces: unable to parse requirement: found '(', expected: in, notin, =, ==, !=, gt, lt"

Hi @cloudmatt,
the label-selectors for namespaces and pods are directly used for selections with the Kubernetes API (see https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).


[Bug] Device code flow doesn't work when we provide tenantID as common in the authority url

Which version of MSAL Go are you using?
v 0.3.0
Where is the issue?

Public client

[x] Device code flow
[ ] Username/Password (ROPC grant)
[ ] Authorization code flow

Confidential client

[ ] Authorization code flow
[ ] Client credentials:

[ ] client secret
[ ] client certificate

Token cache serialization

[ ] In-memory cache

Other (please describe)

Is this a new or an existing app?
We at the Ev2 team have a Go cli client. We moved from adal to msal 2 months ago and were using the AquireTokenInteractive() flow. The issue started showing up when we also integrated the AcquireTokenByDeviceCode()
-->
What version of Go are you using (go version)?
1.15.2
What operating system and processor architecture are you using (go env)?
Our cli is used in Windows, Linux and Mac. For my testing, I'm using windows.
Repro
Following is the relevant code excerpt.
If I use the following when creating public client app, AquireTokenInteractive() works and AquireTokenByDeviceCode() fails

authorityURL := "https://login.microsoftonline.com/common"

If I use the following, both AquireTokenInteractive() and AquireTokenByDeviceCode() work.

authorityURL := "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47"

Expected behavior
AquireTokenByDeviceCode()  authentication flow should work with generic tenantID common in the authorityUrl for public client.
Actual behavior
AquireTokenByDeviceCode() authentication flow fails when using generic tenantID common in the authorityUrl for public client, with following error (probably returned from AAD)
Error:
Error: http call(https://login.microsoftonline.com/common/oauth2/v2.0/devicecode)(POST) error: reply status code was 400:
{
    "error": "invalid_request",
    "error_description": "AADSTS50059: No tenant-identifying information found in either the request or implied by any provided credentials.\r\nTrace ID: 73c53c41-2853-4e8d-928d-baa978a74600\r\nCorrelation ID: 7b82ae7d-7b59-48c6-9ff6-af5d6bf3bd9d\r\nTimestamp: 2021-06-26 00:01:36Z",
    "error_codes": [
        50059
    ],
    "timestamp": "2021-06-26 00:01:36Z",
    "trace_id": "73c53c41-2853-4e8d-928d-baa978a74600",
    "correlation_id": "7b82ae7d-7b59-48c6-9ff6-af5d6bf3bd9d"
}

Possible solution
Before msal, we were using the azure-sdk-for-go auth package, which was based on Adal. We didn't have any issues in authentication when using tenantID == common  with that.
Additional context / logs / screenshots
The reason we want to use the generic tenantID is to be able to authenticate with Corp, AME, Sovereign clouds devops tenant, Sovereign clouds Prod tenants etc.

@abhidnya13 Yes, the base authority url will be different, I posted the one above just as an example for Public clouds, that's not the issue is though.
The authority url is of the format: https://base_url/tenantID, the issue I'm trying to bring up is the tenandID part of the authority url, when using device code flow, only works when we provide actual tenant guid and not the generic tenantID common, whereas for interactive auth flow, we face no such issues.
The ask here is for device code flow of msal/go to work with tenantID as common and not a particular guid.

If this is a multi-tenant application, common is supposed to work and I just tested that it works as expected.
If this is a single tenant application, you will have to specify the tenant id as there is only one tenant involved.
Your application can be multi-cloud but single tenant.
I am unable to reproduce this at the moment. Can you provide a repro ?

@abhidnya13 You are correct. The issue seems to be just for single tenant application. I tried with our multi tenant applications and the device code flow worked fine with tenantID as common

You will need to provide the tenantID if your app is a single tenant app.

After confirming with @himanshutyagi36 offline, this has been resolved.


Event selectors for subscriptions

 Issue by baj0
Sunday Oct 02, 2016 at 10:48 GMT
Originally opened as https://github.dev.global.tesco.org/baj0/mewbase/issues/13

It should be possible to choose the specific type of events accepted by a subscription. We should allow matching based on:

exact event type match
event type max using regex
match on structure of event using a BSON matcher object (like in queries). This can provide same matching semantics as when querying docs.

For both Queries and Event Streams we have implemented 'Named' filters in the Server and access to the Filter via the name in the API - removing he need for BSON matching objects in the API.
Closing under #119 and #121


UPdate user info when upgrading from Anonymous

If it's not possible to fiulter out anonymous users from the user create function. it would be good to have a function that at least updates the user object in Stripe when the user info in firebase auth is updated.

Solved via https://github.com/stripe/stripe-firebase-extensions/issues/94#issuecomment-723881364


Update vejoe-subgraph to store totalJoeStaked day data

Updated vejoe subgraph's VeJoeDayData entity to keep track of totalJoeStaked

Deployed in fuji and tested
https://thegraph.com/hosted-service/subgraph/traderjoe-xyz/vejoe-fuji

LGTM


Issue in page Getting Started with CarePet: A sample IoT App

I would like to report an issue in page https://scylladb.github.io/care-pet/master/getting_started#code-structure-and-implementation
Problem
Wrong formatting of a table

fixed


[build] Update to latest revisions of upstream layers

Merged to other branch as well:
449989a4f..310de57ff  build -> build-next


bash: letsencrypt-vesta: command not found

Hello, Firstly thanks for creating this. I followed the installation steps, but receive the following error when I run letsencrypt-vesta USERNAME DOMAIN bash: letsencrypt-vesta: command not found
Any ideas?

Three possibilities:

You didn't properly symlink the lets-encrypt vesta command in /usr/local/bin (do an "ls -la /usr/local/bin" to check).
/usr/local/bin isn't in your PATH environment variable.  I tested on a fresh install of CentOS, where it appears to be set by default, but other distros may vary.
For some reason the letsencrypt-vesta script didn't check out with execute permissions ("chmod 755 /usr/local/letsencrypt-vesta/letsencrypt-vesta" should fix that).

My guess is that #2 is most likely the case.  Good luck.

Three possibilities:

You didn't properly symlink the lets-encrypt vesta command in /usr/local/bin (do an "ls -la /usr/local/bin" to check).
/usr/local/bin isn't in your PATH environment variable.  I tested on a fresh install of CentOS, where it appears to be set by default, but other distros may vary.
For some reason the letsencrypt-vesta script didn't check out with execute permissions ("chmod 755 /usr/local/letsencrypt-vesta/letsencrypt-vesta" should fix that).

My guess is that #2 is most likely the case.  Good luck.

Sorry, turns out there was a typo in my instructions (someone else just submitted a pull request with the fix).  The correct command to do the symlink is:
ln -s /usr/local/letsencrypt-vesta/letsencrypt-vesta /usr/local/bin/letsencrypt-vesta

Sorry, turns out there was a typo in my instructions (someone else just submitted a pull request with the fix).  The correct command to do the symlink is:
ln -s /usr/local/letsencrypt-vesta/letsencrypt-vesta /usr/local/bin/letsencrypt-vesta

Indeed it works! Thanks!


Allow to override the default prometheus.service.j2 template

What is the purpose of this? What problem does it solve?

Nneed to replace the provided systemd unit file with our custom file

There are better ways to override the unit file using systemd. For example drop-in units can be used to override any part of the main unit template.

As @SuperQ suggested, systemd options can be overridden by using systemd-native features without unnecessary complicating ansible role. You can provide additional files on playbook level.


[feature request] md-toast

Feature Request
This feature would conform to the Material Design Toast specification (https://material.io/guidelines/components/snackbars-toasts.html#snackbars-toasts-usage)
It will help avoiding separate libraries being required for inconsistent messaging cross-platform when using Material Design

This is already developed and will be available on the very next version, as you can see it here: #21


Windows 8 and Ubuntu support?

Did you plan to support Windows 8 and Ubuntu?
Thanks

following js should run native print if available else call the cordova
if (window.print) {
    window.print();
} else {
     // implement cordova print here
}

@wahono77 The Windows platform has been added


Live reporting of meta-data from payu experiments

We would like to report the output of run_summary live from a running experiment.
For this we need

A DB configured to receive live updates (firewall configured to only allow uploads from ANU and NCI domains)
Infrastructure to launch and regularly poll a port-forwarding service running on an NCI persistent session
A port-forwarding service, that is contactable from within NCI so jobs running on compute nodes can report to the DB via an API
An API for reporting experiment meta-data scraped from a running payu experiment
A script to invoke run_summary and report a json meta-data blob via API. Script should save data to cache if service unavailable, and also check cache for un-delivered data, and also submit that.
Add script to payu configurations to run automatically at the end of a run. If it is too time-consuming it might have to be run as a separate PBS job. In that case it might not need to go via port-forwarding, as the copyq queue has internet access

I have done the following steps:

Created a test db on Mongo atlas to store run_summary data.
Created a atlas function that takes a experiment_uuid and PBS job data and stores it in the test db.
Expose the function though HTTP endpoint and authorise the function only with IP addresses from NCI.
Tested the API by creating a persistant-session on gadi, connecting this session though interactive job and making a curl request

curl --location --request POST 'https://ap-southeast-2.aws.data.mongodb-api.com/app/application-0-uarzy/endpoint/add_run_summary'
--header 'Authorization: Bearer <access_token>' --header 'Content-Type: application/json' -d @addRunSummaryRequestData.json

Thanks. Can you also add the persistent session command you used to tunnel the curl command?