(Regression) Scrolling away open Tooltips in a ListView causes a crash

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
When scrolling away a Tooltip that has been triggered in a ListView, an application will crash.
This issue is a regression, it happens on latest beta, 3.13.0-0.1.pre and master, 3.13.0-3.0.pre.8 channels, but not on Flutter stable 3.10.6.
A reproduction sample app is provided further below.
Use the sample app, preferably as a desktop build, because on desktop moving the pointer over Tooltips triggers them directly when hovering over them in the ListView in the app. Scroll quickly with a mouse wheel or trackpad gesture over the Text items with Tooltips. Tooltips will be triggered and if opened Tooltips are scrolled away quickly, the app will crash.
Expected results
Expect to be able to scroll triggered Tooltips without crashing the app. Like shown below, recorded with Flutter stable 3.10.6.
https://github.com/flutter/flutter/assets/39990307/8ea228d8-3dd4-4345-8191-20ddce70bfa7
Actual results
When scrolling the app quickly on beta, 3.13.0-0.1.pre or master, 3.13.0-3.0.pre.8, with Tooltips triggered, the application crashes instantly.
https://github.com/flutter/flutter/assets/39990307/db167d49-5805-4a6a-ae06-9ea3a383fe9c
The Elusive Nature of this Issue
Finding the trigger for this issue was very elusive. I noticed it in a list view that displays samples of pretty much every Material UI widget and different versions of them. So something went wrong in a view with about +100 different UI widgets. When scrolling this list view back and forth quickly on the master or beta channel, the app would crash in what appeared to be a totally random manner.
The stack trace was impossible to figure out (for me at least, a sample from the reproduction app's crash is also provided) and only pointed to the main list view with all the widgets. I needed to move the view to a separate app and start stripping away pieces from it until it no longer crashed.
After moving the same widget showcase sample view to a stand-alone app, and removing all 3rd-party dependencies, the trigger for the issue was still elusive. Stripping down the list of most widgets did not seem to help, sometimes it worked for a while, but suddenly crashed at what seemed to be totally random when scrolling.
It was more by accident that I discovered that when I removed the widgets that contained Tooltip wrappers, the issue went away. The elusiveness was, caused by the fact that the list only contained a few widgets with Tooltips, and only occasionally while scrolling the list, did my mouse happen to hit one of them and trigger the Tooltip, and not always did I scroll fast enough to scroll it out of view when that happened, to trigger the crash.
After discovering the trigger, writing a minimal reproduction sample app that triggers it at once was of course trivial.
Cause of Regression
After determining the crash was caused by Tooltip, I also recalled the recent PR #127728 Migrate Tooltip to use OverlayPortal, that has a timing that fits and also changes not yet merged to the stable channel. Most likely the PR is the cause, or some of the other smaller additional changes done to tooltip.dart after the main migration to using OverlayPortal.
I have not investigated if it is a fundamental issue with the OverlayPortal, or just caused by the way Tooltip uses it. Potentially there could be other widgets using OverlayPortal that might have similar issues if they are open and scrolled away in a list. The issue might also be contained to Tooltip and could be related to auto close duration triggering removal of the tooltip overlay, after the Tooltip has already been scrolled out of view and no longer exists. I leave it to the capable hands of OverlayPortal and Tooltip modifications author @LongCatIsLooong to ponder this further.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() => runApp(const IssueApp());

class IssueApp extends StatelessWidget {
  const IssueApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'RenderTheater Crash',
      themeMode: ThemeMode.system,
      theme: ThemeData(useMaterial3: true),
      darkTheme: ThemeData(useMaterial3: true),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('RenderTheater Crash')),
      body: ListView(
        padding: const EdgeInsets.symmetric(horizontal: 16),
        children: List.generate(
          40,
          (index) => Tooltip(
            message: 'A text $index line with a ToolTip',
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Text('Text with tooltip number $index'),
            ),
          ),
        ),
      ),
    );
  }
}

Logs

Crash log
The following assertion was thrown during performLayout():
A _RenderTheater was mutated in RenderSliverList.performLayout.

The RenderObject was mutated when none of its ancestors is actively performing layout.
The RenderObject being mutated was: _RenderTheater#3354b NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: <none> (can use size)
  constraints: BoxConstraints(w=495.0, h=677.0)
  size: Size(495.0, 677.0)
  skipCount: 0
  textDirection: ltr
The RenderObject that was mutating the said _RenderTheater was: RenderSliverList#64366 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: paintOffset=Offset(16.0, 0.0) (can use size)
  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 526.0, remainingPaintExtent: 621.0, crossAxisExtent: 463.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 621.0, remainingCacheExtent: 1121.0, cacheOrigin: -250.0)
  geometry: SliverGeometry(scrollExtent: 2080.0, paintExtent: 621.0, maxPaintExtent: 2080.0, hasVisualOverflow: true, cacheExtent: 871.0)
  currently live children: 5 to 26
The relevant error-causing widget was:
  ListView ListView:file:///Users/rydmike/dev/code/issue_render_theater/lib/main.dart:30:13
When the exception was thrown, this was the stack:
#0      RenderObject._debugCanPerformMutations.<anonymous closure> (package:flutter/src/rendering/object.dart:1926:9)
#1      RenderObject._debugCanPerformMutations (package:flutter/src/rendering/object.dart:1987:6)
#2      RenderObject.markNeedsLayout (package:flutter/src/rendering/object.dart:2197:12)
#3      RenderBox.markNeedsLayout (package:flutter/src/rendering/box.dart:2372:11)
#4      _RenderTheater.markNeedsLayout (package:flutter/src/widgets/overlay.dart:1016:11)
#5      RenderObject.dropChild (package:flutter/src/rendering/object.dart:1775:5)
#6      _RenderTheater._dropDeferredLayoutBoxChild (package:flutter/src/widgets/overlay.dart:944:5)
#7      _OverlayEntryLocation._deactivate (package:flutter/src/widgets/overlay.dart:1713:14)
#8      _OverlayPortalElement.deactivate (package:flutter/src/widgets/overlay.dart:1910:55)
#9      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1970:13)
#10     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#11     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#12     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#13     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#14     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6421:14)
#15     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#16     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6421:14)
#17     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#18     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#19     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#20     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#21     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#22     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#23     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#24     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#25     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#26     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5350:14)
#27     _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#28     _InactiveElements.add (package:flutter/src/widgets/framework.dart:1984:7)
#29     Element.deactivateChild (package:flutter/src/widgets/framework.dart:4225:30)
#30     Element.updateChild (package:flutter/src/widgets/framework.dart:3631:9)
#31     SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:857:37)
#32     SliverMultiBoxAdaptorElement.removeChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:884:33)
#33     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2720:19)
#34     SliverMultiBoxAdaptorElement.removeChild (package:flutter/src/widgets/sliver.dart:880:12)
#35     RenderSliverMultiBoxAdaptor._destroyOrCacheChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:367:21)
#36     RenderSliverMultiBoxAdaptor.collectGarbage.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:513:9)
#37     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2602:59)
#38     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1057:15)
#39     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2602:14)
#40     RenderSliverMultiBoxAdaptor.collectGarbage (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:511:5)
#41     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:301:5)
#42     RenderObject.layout (package:flutter/src/rendering/object.dart:2491:7)
#43     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
#44     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361:11)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2491:7)
#46     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:534:13)
#47     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1512:12)
#48     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1421:20)
#49     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2330:7)
#50     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1011:18)
#51     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:494:19)
#52     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:926:13)
#53     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360:5)
#54     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15)
#55     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9)
#56     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1085:5)
#57     _invoke (dart:ui/hooks.dart:170:13)
#58     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401:5)
#59     _drawFrame (dart:ui/hooks.dart:140:31)
The following RenderObject was being processed when the exception was fired: RenderSliverList#64366 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  needs compositing
...  parentData: paintOffset=Offset(16.0, 0.0) (can use size)
...  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 526.0, remainingPaintExtent: 621.0, crossAxisExtent: 463.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 621.0, remainingCacheExtent: 1121.0, cacheOrigin: -250.0)
...  geometry: SliverGeometry(scrollExtent: 2080.0, paintExtent: 621.0, maxPaintExtent: 2080.0, hasVisualOverflow: true, cacheExtent: 871.0)
...    scrollExtent: 2080.0
...    paintExtent: 621.0
...    maxPaintExtent: 2080.0
...    hasVisualOverflow: true
...    cacheExtent: 871.0
...  currently live children: 5 to 26
RenderObject: RenderSliverList#64366 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: paintOffset=Offset(16.0, 0.0) (can use size)
  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 526.0, remainingPaintExtent: 621.0, crossAxisExtent: 463.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 621.0, remainingCacheExtent: 1121.0, cacheOrigin: -250.0)
  geometry: SliverGeometry(scrollExtent: 2080.0, paintExtent: 621.0, maxPaintExtent: 2080.0, hasVisualOverflow: true, cacheExtent: 871.0)
    scrollExtent: 2080.0
    paintExtent: 621.0
    maxPaintExtent: 2080.0
    hasVisualOverflow: true
    cacheExtent: 871.0

Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.13.0-3.0.pre.88, on macOS 13.4.1 22F82 darwin-arm64, locale en-US)
    • Flutter version 3.13.0-3.0.pre.88 on channel master at /master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f842ed9165 (4 hours ago), 2023-07-15 09:18:23 -0700
    • Engine revision 403866d161
    • Dart version 3.1.0 (build 3.1.0-312.0.dev)
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/rydmike/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.11.3

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

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] IntelliJ IDEA Community Edition (version 2023.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 74.0.4
    • Dart plugin version 231.9161.14

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.4.1 22F82 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

@LongCatIsLooong, I tested the reproduction sample with the FIX on latest master, no crashes anymore. Thank you!
This regression needs to be flagged to get added to beta channel before next stable is released, so it gets included in the next stable release. Getting next stable without this fix, would imo be a small disaster, well for my desktop apps anyway 😄
It is not yet in latest beta (Channel beta, 3.13.0-0.2.pre), did not expect it to be yet. No idea when next stable is scheduled to land, but based on normal schedule "soonish" so I thought I would mention this.
cc @HansMuller @goderbauer

Thanks, @rydmike. @LongCatIsLooong is going to file a cherry pick request for this.


use merry

uses the merry framework
structured the errors inside server/errors.js
fixed a bug where the ~session url wasn't exiting
validates environment variables before booting

Hope this makes sense. Thanks!

Codecov Report

Merging #19 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #19   +/-   ##
=======================================
  Coverage   87.34%   87.34%
=======================================
  Files           1        1
  Lines         166      166
=======================================
  Hits          145      145
  Misses         21       21

Continue to review full report at Codecov.

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


Removing detach and merge from the entity manager

and the related tests

@Ocramius Not sure what to do with the last test that fails Doctrine\Tests\ORM\Functional\Ticket\DDC3303Test::testEmbeddedObjectsAreAlsoInherited ?
Travis does weird stuff for some reasons.
Is this sort of what you expected ?

@mikeSimonson can't see failures, as the EntityManagerInterface is not fully covered by an implementation now.

@mikeSimonson embeddables were temporarily disabled by @guilhermeblanco on develop 😉

@lcobucci Thanks for the info, but still it's weird that the test passed before I removed the merge and detach functionality no ?

@lcobucci there's much more to be removed and decided than a blank removal of the EM methods.
UoW also contains a bunch of related methods to merge/detach, but the key decisions to be made are how do we handle the entity states now that there's no more detached state. If you look at UoW methods, there're lots of state detached handling there.
IMHO, whenever we have state detached we should either reintegrate the state as managed or consider it as new.
Once you have that sorted out, I can properly review the PR. =)

I would honestly just don't deal with that, and instead let users decide
how to:

Hydrate from array data (custom hydrator)
Manage dirty state (if integrated entities need to be added to the ORM)
Load existing state on their own (they can assume existing records or
not, since they decided how to detach on their own)

On 31 Jan 2017 5:32 p.m., "Guilherme Blanco"<EMAIL_ADDRESS>wrote:

@lcobucci https://github.com/lcobucci there's much more to be removed
and decided than a blank removal of the EM methods.
UoW also contains a bunch of related methods to merge/detach, but the key
decisions to be made are how do we handle the entity states now that
there's no more detached state. If you look at UoW methods, there're lots
of state detached handling there.
IMHO, whenever we have state detached we should either reintegrate the
state as managed or consider it as new.
Once you have that sorted out, I can properly review the PR. =)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/doctrine2/pull/6265#issuecomment-276415026,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJakDqkucihhaFiq4kJ_ZkWZO7ueAyeks5rX2IogaJpZM4Lw7HR
.

Handled in https://github.com/doctrine/doctrine2/pull/1577


Add Cosinus school

School's web site domain is cosinus.pl and students has email addresses like<EMAIL_ADDRESS>

Also adding URL of a page on the official website with IT-related (2 year) course is offered by the school: https://www.cosinus.pl/szkola-policealna/informatyka

and a few links where you can see that the domain "mojcosinus.pl" is used for student emails:
https://www.cosinus.pl/office
https://www.cosinus.pl/Portals/0/Office 365_logowanie.pdf

@andrii-stasiuk Thank you for the update! Pull request merged.


Compatibility with Wiremock Junit Jupiter support

Hello,
The Wiremock team recently released a brand new support for Junit Jupiter. However it's pretty hard to use this lib with it because the new Wiremock extension doesn't expose the underlying WireMockServer instance.
Not sure what's the right move. We could just ask the Wiremock team to add a getter for the WireMockServer instance. What do you think ?

http://wiremock.org/docs/junit-jupiter/

#38


Widening and narrowing in load/store legality unspecified

I can't find any words saying what happens if the element width in memory does not match the element width set by VSETVL{I}.
The introduction of "5. Vector Instruction Formats" states: "Vector loads and stores move bit patterns between vector register elements and memory. Vector arithmetic instructions operate on values held in vector register elements."
The words "bit patterns" suggest that no interpretation of the bits is made, and thus widening (at least!) on load or store is not possible. There is no way to know whether values are integers or floating point or whether an integer should be zero or sign extended. Moving a 32 bit FP value to a 64 bit element or vice versa is just nonsensical.
This suggests that the statically encoded element width in the load or store must match the dynamically set VTYPE.
Table 11 in "7.3. Vector Load/Store Width Encoding" shows "Mem Bits" always matching "Data Reg bits" for "Vector {8..1024}b element" loads and stores, so this supports the view that they must always match.
However, "7.1. Vector Load/Store Instruction Encoding" states: "Vector memory unit-stride and constant-stride operations directly encode EEW of the data to be transferred statically in the instruction to reduce the number of vtype changes when accessing memory in a mixed-width routine."
I don't understand how this can be true, unless the element width set in VTYPE and the element width in the load/store can be different.
Which beings us back to there apparently being no words describing what happens if they differ.
I'm unable to find examples in the various code samples where the elements width in load/store does not match that in the preceding VSETVL.
In particular, they do match in "6.4. Example of stripmining and changes to SEW"
There is one interpretation that allows all the above statements to be simultaneously true:

if the memory element width is greater than the register element width then each memory element fills (or is filled from for stores) several consecutive elements in the register.

if the memory element width is smaller than the register element width then each register element fills (or is filled from for loads) several consecutive elements in memory.

Under this interpretation the number of bits transferred to/from memory is the same as the current vector length, but the number of vector elements can be different. The memory element width would then be irrelevant for unit stride loads and stores (and a waste of encoding space), but will produce different results for strided or indexed loads and stores.
If this is the desired interpretation then it really needs some words to describe it.
If the desired interpretation is that the memory element width must always match the register element width then the above quoted statement in 7.1 needs to be removed.
If the quoted statement in 7.1 is intended to stand then some words about how this works and one ore more examples are needed -- and Table 11 needs changing.

Suppose the current SEW is A, current LMUL is B, and you execute a vector memory access with statically encoded EEW of C.  Doing so is exactly equivalent to changing SEW to C, changing LMUL to B*C/A, then executing that same memory access.  (And then resetting SEW and LMUL back to A and B.)

OK, so VL stays the same, and the amount of data transferred changes in the ratio C/A. So it's useful for storing the results of a widening or narrowing operation without changing VTYPE.
This definitely needs specifying (because I believe it currently is not), and an example.

ok, so "The corresponding EMUL is calculated as EMUL = (EEW/SEW)*LMUL." does seem to cover this, but it's not really obvious.
Could do with words added to "5.2. Vector Operands" stating that loads and stores are affected as well as widening and narrowing arithmetic.

Yeah, the goal was just to cut down on vtype changes.  I agree that it's currently specified sufficiently, so there's no urgent need to update the spec, but once it's ratified, more explanatory material might be appropriate.
There is an example program that depends on this facility (https://github.com/riscv/riscv-v-spec/blob/95e44cb1688ed59c18d5ddc15915aed4ef8df4ac/vector-examples.adoc#example-with-mixed-width-mask-and-compute) but without commentary it's also not entirely obvious.

I don't agree this example depends on this facility. If it does then it's completely non-obvious to me.
The vle8 is preceded by a matching width vsetvli e8,m1. The vmslt of course produces 1 bit results but that is a different issue.
The vle32 and vse32 are preceded by a matching width vsetvli e32,m4.
So there is no vtype sew to memory element width mismatch here.
I also don't agree that the spec should be made more clear only after ratification. If you hope to get meaningful feedback from "public" review (i.e. people not on the Working Group) then the spec needs to be as clear as possible. Not to mention to ensure people working on implementations get it right.

Oops, you’re right.
I’ll leave it to others to debate the matter of augmenting the spec with non-normative text explaining the use case.


[dice,ot_certs] add codegen for CWT DICE certificates

Implement some parts of codegen for the DICE in CWT format.
The code hasn't been refined yet, just upload for further discussion.

@timothytrippel here's the first draft of dice_cwt implementation for opentitantool.
It's a bit complicate to whare the same template with X509, so a _cwt version of hjson is defined with similar keywords.

I have rewritten most of the code to support some features and for better code structure.
The generated code is still under integration test, but I think it's better to upload the changes for review first.
Thanks!

@stevenchtsai please rebase this on the latest master branch and fix @pamaury 's comments and mark this "ready for review". Then I will review it.
CC: @tommychiu-github

Add more documentation and rewrite some parts of code to make it more clear.

By the generated .c & .h files, the CWT DICE can pass verification.
hwtrust --verbose dice-chain dice.bin
Proper(
    Chain {
        Root public key: "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDJ/ChN8wq5MokcByBnjRHC/Mjd5J\nH7kfpD4icOzchTCnGwusRivw4N/egP9Bm+yZae0LrspWkGe6mkJBrLEHvA==\n-----END PUBLIC KEY-----\n",
        DICE Certificate[0]: Payload {
            Issuer: "da517a972ab8b3772eb169507f593d66c7d1bc35a998ae1831c369ca75bc0f5e",
            Subject: "2cc11542a43c450dd06b930c2c9b9781758b16a5d6cc4bb4198798b0e1e67045",
            Mode: Normal,
            Code Hash: "1111111111111111111111111111111111111111111111111111111111111111",
            Config Hash: "7a7c35059d78b25665ac0a96ee30540484690e4f0b4d7c5bd9bf23217cb1edfb",
            Authority Hash: "c19a797fa1fd590cd2e5b42d1cf5f246e29b91684e2f87404b81dc345c7a56a0",
            Config Desc: ConfigDesc {
                component_name: None,
                component_instance_name: None,
                component_version: None,
                resettable: false,
                security_version: Some(
                    0,
                ),
                rkp_vm_marker: false,
                extensions: [],
            },
        },
        DICE Certificate[1]: Payload {
            Issuer: "2cc11542a43c450dd06b930c2c9b9781758b16a5d6cc4bb4198798b0e1e67045",
            Subject: "8a968a16f0f0901ec6e9de5c2239ed8e426987a996f761bf7cd46aabfa08d7db",
            Mode: Normal,
            Code Hash: "3333333333333333333333333333333333333333333333333333333333333333",
            Config Hash: "7a7c35059d78b25665ac0a96ee30540484690e4f0b4d7c5bd9bf23217cb1edfb",
            Authority Hash: "c19a797fa1fd590cd2e5b42d1cf5f246e29b91684e2f87404b81dc345c7a56a0",
            Config Desc: ConfigDesc {
                component_name: None,
                component_instance_name: None,
                component_version: None,
                resettable: false,
                security_version: Some(
                    0,
                ),
                rkp_vm_marker: false,
                extensions: [],
            },
        },
    },
)
Success

Thanks @stevenchtsai ; I dropped some comments. Check your CI failures and fix those too when you have a moment pls.

@timothytrippel I have updated the PR. Could you please check it again?
Also, I have no idea if the CI errors are related to this PR.
If they are, would you mind sharing some information to fix that?
Thanks!

I manually cherry-picked this onto the earlgrey_1.0.0 branch in #25084.


Authentication works but stuck on spinning loop

Similar to the issue I had with the current Ionic 2+ sample here, after authenticating(which is successful) nothing happens and the spinner goes into an infinite loop. Is there a way to redirect the user back to the homepage of the app after authentication is successful?

@kmaida I am facing same issue of spinning loop on ios devices and getting below error.
On android device browser window is close after authentication but below error is also comming.
Note: Below error is only getting first time Authentication.
"Uncaught Error: Response state does not match expected state
at Function. (vendor.js:83515)
at Function.Session.onRedirectUri (vendor.js:155066)
at vendor.js:83559
at t.invokeTask (polyfills.js:3)
at r.runTask (polyfills.js:3)
at e.invokeTask (polyfills.js:3)
at i.isUsingGlobalCallback.invoke (polyfills.js:3)
at n (polyfills.js:3)"
Please give your help/suggestion for the same.

@gabedeko @ankit-ilogix Did you follow all instructions in the repo README regarding configuring redirection with custom-url-scheme? https://github.com/kmaida/auth0-ionic3-samples/tree/master/01-Login
The repo contains this plugin to start with right now (it will be removed before the Quick Start is published), so you will need to remove it and re-install it with your own appropriate settings in order to get a clean configuration state.

@kmaida @gabedeko  Your suggestion was I tried but same issue I am facing with it.
After that I found issue in hosted page when I am create account before some days that time in password less default hosted page using "lock-passwordless-2.2.min.js" today I create new account in Auth0.  In new account's passwordless default hosted page containing   "js/lock/11.2/lock.min.js".
Now thats working fine with me thanks.

Hi @ankit-ilogix,
You should not need to create a new account. You can change the hosted login page type (from Passwordless to Lock) in the dropdown in its settings, like so:

In any case, glad this was resolved for you!

for now the response state issue is resolved but I am facinng new below issue.

For android after first time successfully login if I click on logout (window.localStorage.removeItem('profile');
window.localStorage.removeItem('access_token');
window.localStorage.removeItem('id_token');
window.localStorage.removeItem('expires_at');)  after that I click on login that time also logged in. It means logout not working for me only on android.

2 For IOS I am facing CORS issue . I have added also url on client settings but I dont know why that not working. First time browser is close and is redirect to login page when I click on further login page than it will open safari page with title "window" . after If I clear browser cooker than working fine.
@kmaida  Please give your help/ suggestion for the same thanks.

@ankit-ilogix @gabedeko Please hold off on this implementation. While this repo does and should work without any issues currently, we are in the process of rewriting the auth0-cordova library, which is the primary dependency for this quick start. We should have that completed by this weekend and then will have the fully re-written Ionic example and quick start written in the weeks following, either late February or early March. Thanks for your patience while we make these improvements!

@kmaida  Please alert me when Auth0 complete process of rewriting the auth0-cordova library.
thanks.

@kmaida On my end it's fairly urgent that I'm able to use the login system without issue but I am still experiencing the infinite loop but I'm pretty sure I've followed the steps accurately.

@ankit-ilogix CORS issue is currently thrown because of WKWebView in Ionic which is a browser context running at http://localhost:8080. Using POST /oauth/token is not allowed from browser context and therefore does not respond with CORS. I am currently working on updating the underlying plugin to use native http layer which bypasses this and will update it upstream. For now the best way to handle this is to use UIWebView until I fix the issue.

@gabedeko if you are using WKWebView  you'll run into the same.

@kmaida are Auth0 complete rewriting the auth0-cordova library OR not?

@ankit-ilogix I am not running the app from a desktop browser. I'm only running it from a mobile device.
@kmaida I'd also like to know when the rewrite will be complete.

@gauravatinsightmethods @gabedeko @ankit-ilogix The Ionic 3 Quick Start is now live: https://auth0.com/docs/quickstart/native/ionic3
This repo will now be archived. Please refer to the Quick Start for the new repo.


⚠ ClamAV has degraded performance

In 3cb8ae4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 423 ms

Resolved: ClamAV performance has improved in d77fb4d.


KAFKA-15541: Add oldest-iterator-open-since-ms metric

Part of KIP-989.
This new StateStore metric tracks the timestamp that the oldest surviving Iterator was created.
This timestamp should continue to climb, and closely track the current time, as old iterators are closed and new ones created. If the timestamp remains very low (i.e. old), that suggests an Iterator has leaked, which should enable users to isolate the affected store.
It will report no data when there are no currently open Iterators.

@mjsax This is the final PR to add the KIP-989 metrics. Although I'm considering opening two, much smaller PRs:

To add some additional tests to ensure we cover all the Iterator constructors
To eliminate some redundancy now all the metrics have landed. Notably, we can replace the AtomicInteger used by num-open-iterators with just counting the cardinality of the Set<MeteredIterator> that we maintain for oldest-iterator-open-since-ms.

@mjsax Not sure why the build is failing. :streams:compileJava works fine locally. Perhaps the build got confused, can we repeat it?

[2024-05-28T11:28:17.911Z] > Task :streams:compileJava
[2024-05-28T11:28:17.911Z] /home/jenkins/jenkins-agent/workspace/Kafka_kafka-pr_PR-16041/streams/src/main/java/org/apache/kafka/streams/state/internals/MeteredMultiVersionedKeyQueryIterator.java:54: warning: [this-escape] possible 'this' escape before subclass is fully initialized
[2024-05-28T11:28:17.911Z]         openIterators.add(this);
[2024-05-28T11:28:17.911Z]                           ^
[2024-05-28T11:28:17.911Z] error: warnings found and -Werror specified

I re-triggered, but don't expect it to go away... Maybe Java 21 has some sticter/smarter checks?

Thanks for the KIP @nicktelford -- this will be super useful in the future!


Are there any commercial cameras out there that support these Camera Manual Control capabilities?

I have tried to get this Microsoft "CameraManualControls" UWP sample app to work with my built-in Lenovo Thinkpad T490 integrated camera, and even an external USB Logitech C930e webcam.  I even tried a proprietary camera that another company is working on.  But none of these devices show that they support any of the VideoDeviceController capabilities (Exposure, White Balance, Focus, ISO, Zoom, etc.).  I have checked the code, and it complies with the Remark from this section to ensure that the preview has started before checking, but it doesn't seem to ever detect support.
Are there any cameras out there that do?

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

ID: 94963b1f-9bfd-d42c-62a8-8645436985ff
Version Independent ID: e7ab86cc-aec2-8468-1b24-9db6f86aff58
Content: MediaCapture.VideoDeviceController Property (Windows.Media.Capture) - Windows UWP applications
Content Source: winrt-api-build/xml/Windows.Media.Capture/MediaCapture.xml
Product: uwp
Technology: winrt-reference
GitHub Login: @drewbatgit
Microsoft Alias: drewbat

@drewbatgit , I'm still hoping to get an answer on this.  I just want one example of a camera that this works on, so that I can buy it and test it.  There is no information in this documentation that points to identifying possible hardware that supports these camera capabilities that Microsoft exposes.

@Tam66662 Sorry for the delay on this! I have reached out to the camera team and will let you know what I find out.

So, unfortunately it doesn't seem like there is a lot of support for these controls now Windows is no longer creating mobile devices. So far it's been suggested that Surface Laptop 3 supports some of the advanced controls – WhiteBalanceControl and ExposureControl. And some web cams may support the tap-to-focus functionality of the focus control.

@drewbatgit This is surprising to me considering this is a UWP camera sample app, which I thought had many more applicable usages than just for mobile devices.  But regardless, thank you for the response.  I consider this query of mine to be closed now.


How call TesterApp ?

Sample using parameters command line ?

What do you mean by that? you need some additional documentation?


Destructuring assignment support

Is your feature request related to a problem? Please describe.
The problem being solved is returning more that one result like in modern languages like in golang we have
    max, min = maxmin(a, b)

. . . or for error handling with
    message, err := greetings.Hello("")
    if err != nil {
        log.Fatal(err)
    }

Describe the solution you'd like
I would like to be able ot destructure a SAFEARRAY in TB like this
    Array(message, err) = greetings.Hello("World!")

. . . which may benefit from support on the other side like this
Function Hello(sText As String) As Variant
    Dim sError As String
    . . .
    Return "Hello " & sText, sError
End Function

. . . but this is a syntatic sugar for Return Array("Hello " & sText, "No Error") so not that necessary
The idea is for a new Array statement to be used on the LHS of assignment like we already have Mid statement overloading the same named function.
Describe alternatives you've considered
An alternative would be real tuples support outside of OLE Automation data-types.

All,
I'm going to vote a loud NO on this proposal (assuming that there's still time for this to matter).
I'll cite the following reasons:

It's definitely "un-BASICy"
according to comments above, it is both limited in terms of type safety, and a "less than ideal" approach compared to full support for tupples (which Wayne has already indicated is most likely to be a v2 item).
there are already more than adequate workaround for this in the existing language - UDTs and arrays were specifically mentioned earlier in the conversation.
i really dislike the idea of overloading Array for this - semantically, at least it would seem to me that ParamArray() would be a better fit for the proposed usage (to accept "n" multiple return values from a function) - that usage would at least be semantically consistent with what ParamArrays already do - only on the feeding into the function side. This would do much the same on the output from the function side, so there's at least some semantic symmetry there.

Better to await the tupple support in v2 than to "de-BASIC-ize" tB with this mediocre approach to the problem that isn't really that much of a problem given very workable alternatives already in hand.

@mburns08109 You already stated your moot “fears” no need to repeat them.
The proposal is fine, simple, elegant and quite clever I might add.
Will debunk your points one by one later if time permits.

This is now supported via the Array(var1, var2) = anArray syntax.  e.g. Array(, varA, ,varB) = Array(1,2,3,4) would set varA = 2 and varB = 4.

Does Array(Array(a,b),Array(c,d)) = Range("A1:B2") work? Also python does a neat trick with a trailing comma to indicate no additional elements a, b, = foo() meaning if foo does not return exactly 2 elements then an error is thrown, but maybe that can wait

Nested destructuring seems supported by php too: https://blog.frankdejonge.nl/array-destructuring-in-php/


Data race causes flaky test in "clone"

Describe the bug
When running clone tests in a repeated way, TestSignalKilledGoldenGate randomly fails. I believe this might be caused by data races in the clone package, as reported by go test -race ./clone:
% go test -race ./clone
==================
WARNING: DATA RACE
Write at 0x00c0000ba0f0 by goroutine 45:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:272 +0x3c0
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Previous write at 0x00c0000ba0f0 by goroutine 40:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:272 +0x3c0
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Goroutine 45 (running) created at:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0x5f4
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Goroutine 40 (finished) created at:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0x5f4
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8
==================
==================
WARNING: DATA RACE
Read at 0x00c000268218 by goroutine 68:
  runtime.growslice()
      /usr/local/go/src/runtime/slice.go:178 +0x0
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:272 +0x39c
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Previous write at 0x00c000268218 by goroutine 34:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:272 +0x3c0
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Goroutine 68 (running) created at:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0x5f4
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8

Goroutine 34 (finished) created at:
  github.com/TimothyStiles/poly/clone.recurseLigate()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0x5f4
  github.com/TimothyStiles/poly/clone.recurseLigate.func2()
      /Users/matias/go/src/github.com/TimothyStiles/poly/clone/clone.go:273 +0xd8
==================
--- FAIL: TestSignalKilledGoldenGate (0.02s)
    clone_test.go:169: Should be only 4 looping sequences. Got: 7
    testing.go:1319: race detected during execution of test
FAIL
FAIL	github.com/TimothyStiles/poly/clone	1.317s
FAIL

To Reproduce
Steps to reproduce the behavior:

To run tests in a repeated way: go test -count 10 -v ./clone/
Then run the race detector: go test -race ./clone on the main directory.

Expected behavior
Data race should be fixed.

This'll be in the ligation function btw, almost 100% sure.

Is the expectation for a single clone site in the test based on independent analysis of the fragments, or was it the value that passed? I ask because a naive approach to avoiding the race (creating a new slice for every recursion, then writing in the values) consistently fails as it returns 2 clones.
diff --git a/clone/clone.go b/clone/clone.go
index 4e25971..0d103a2 100644
--- a/clone/clone.go
+++ b/clone/clone.go
@@ -265,8 +265,10 @@ func recurseLigate(wg *sync.WaitGroup, constructs chan string, infiniteLoopingCo
                                }
                                wg.Add(1)
                                // If everything is clear, append fragment to usedFragments and recurse.
-                               usedFragments = append(usedFragments, newFragment)
-                               go recurseLigate(wg, constructs, infiniteLoopingConstructs, newSeed, fragmentList, usedFragments)
+                               usedFragmentsCopy := make([]Fragment, len(usedFragments)+1)
+                               copy(usedFragmentsCopy, usedFragments)
+                               usedFragmentsCopy = append(usedFragmentsCopy, newFragment)
+                               go recurseLigate(wg, constructs, infiniteLoopingConstructs, newSeed, fragmentList, usedFragmentsCopy)
                        }
                }
        }

^@Koeng101 do you know the answer to this?

I'm not sure I entirely understand the question - but if I'm getting it right: I passed in values for the tests that I know the output of. Is the naive version on a branch or something? I'd love to see it.
I'm also thinking this is something that needs to be fixed soon, since I'm using Ligate a lot more for my work, and the flaky-ness is causing me some problems. I'm thinking I might have to go for a full rewrite with this one...

My question is whether the test results are known to be accurate chemistry, namely whether it's impossible that there's two valid clones of the input fragments.
I have the diff for the change above.

My question is whether the test results are known to be accurate chemistry, namely whether it's impossible that there's two valid clones of the input fragments.
I have the diff for the change above.

It is possible to have many, many valid clones based on input fragments. I think I might want to change this, because it can be a little confusing and combinatorially explodes very quickly.
In particular you might have a cloning reaction where you are switching out different protein sequences (let's say, to change the color of GFP). You'd clone the same promoter+rbs+terminator, but might have a lot of variations of the CDS.

@Koeng101 if I had to guess, there might be some missing or additional infinite constructs coming back depending on what happened during the race since those slices are share some of the same underlying data.
With that being said, it might be advantageous to remove the concurrency from clone to solve the issue. I opened up a draft with some measurements here: https://github.com/TimothyStiles/poly/pull/393. Removing the concurrency makes GoldenGate consistent and maybe a good step towards the clone refactor and improving performance.


installing react-localization

When installing react-localization, i get an error:
npm --v 7.9.0
node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>|| ^15.6.0" from<EMAIL_ADDRESS>npm ERR! node_modules/react-localization
npm ERR! react-localization@"*" from the root project
npm ERR!

It should be fixed with latest update.


Update of EasyEngine removes ownCloud and Roundcube.

I've just executed the sudo ee update command to get the all new php7 support.
Unfortunately this removed the packages owncloud & roundcube from my server!
If I try to install the owncloud package again the dependency resolution is broken; just claiming I can't do it at all:
The following packages have unmet dependencies:
 owncloud-server : Depends: php5-cgi but it is not going to be installed

Executing apt-get -f installdoesn't fix the error either. Please help, our entire customer backed ownCloud service is broken now!

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

ee -v

EasyEngine v3.5.2
Copyright (c) 2015 rtCamp Solutions Pvt. Ltd.

ee info

NGINX (1.8.0):

user                             www-data
worker_processes                 auto
worker_connections               4096
keepalive_timeout                30
fastcgi_read_timeout             300
client_max_body_size             1g
allow                            <IP_ADDRESS> <IP_ADDRESS>

PHP (5.6.18-9):

user
expose_php                       Off
memory_limit                     512M
post_max_size                    1G
upload_max_filesize              1G
max_execution_time               300

Information about www.conf
ping.path                        /ping
pm.status_path                   /status
process_manager                  ondemand
pm.max_requests                  500
pm.max_children                  100
pm.start_servers                 20
pm.min_spare_servers             10
pm.max_spare_servers             30
request_terminate_timeout        300
xdebug.profiler_enable_trigger   off
listen                           <IP_ADDRESS>:9000

Information about debug.conf
ping.path                        /ping
pm.status_path                   /status
process_manager                  ondemand
pm.max_requests                  500
pm.max_children                  100
pm.start_servers                 20
pm.min_spare_servers             10
pm.max_spare_servers             30
request_terminate_timeout        300
xdebug.profiler_enable_trigger   on
listen                           <IP_ADDRESS>:9001

MySQL (10.0.21-MariaDB) on localhost:

port                             3306
wait_timeout                     1800
interactive_timeout              60
max_used_connections             95
datadir                          /var/lib/mysql/
socket                           /var/run/mysqld/mysqld.sock

wp --allow-root --info

PHP binary: /usr/bin/php5.6
PHP version:    5.6.18-9+deb.sury.org~trusty+1
php.ini used:   /etc/php/5.6/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.21.1

Did you check if the new version (3.5.3) fixed your issue?

Unfortunately no success, even after the update. This is what I get:
root@Hosting:/var/www# apt-get install owncloud
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 owncloud : Depends: owncloud-server (= 8.2.2-1.1) but it is not going to be installed
            Recommends: owncloud-config-apache (= 8.2.2-1.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

root@Hosting:/var/www# apt-get install owncloud-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 owncloud-server : Depends: php5-cgi but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

root@Hosting:/var/www# apt-get install php5-cgi
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 php5-cgi : Depends: php5-common (= 5.5.9+dfsg-1ubuntu4.14) but 5.6.18+dfsg-1+deb.sury.org~trusty+1 is to be installed
E: Unable to correct problems, you have held broken packages.

Hii @marbetschar
We are not able to reproduce your issue.  Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  owncloud
0 upgraded, 1 newly installed, 0 to remove and 89 not upgraded.
Need to get 35.5 kB of archives.
After this operation, 191 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe owncloud all 6.0.1+dfsg-1ubuntu1.2 [35.5 kB]
Fetched 35.5 kB in 0s (73.2 kB/s)
Preconfiguring packages ...
Selecting previously unselected package owncloud.
(Reading database ... 67259 files and directories currently installed.)
Preparing to unpack .../owncloud_6.0.1+dfsg-1ubuntu1.2_all.deb ...
Unpacking owncloud (6.0.1+dfsg-1ubuntu1.2) ...
Setting up owncloud (6.0.1+dfsg-1ubuntu1.2) ...

php5-cgi : Depends: php5-common this php version has been depreciated in latest version of easyengine.
Also can you try changing the repository you are using for OwnCloud.

Hi @iam404
Thanks for the feedback. Yes, it seems to be related to the deprecation of the php version. I had php5.6 installed together with Easy Engine and ownCloud on the system. php5.6 seems to be still a dependency of ownCloud.
Then I've updated Easy Engine to the first release supporting php7. During this update ownCloud was deinstalled - maybe due to the deprecation of php5.6 from Easy Engine...?
FWIW: Roundcube was deinstalled during this Easy Engine update process too. Now I can't get it installed either - seems to be the same reason.
And now I'm a bit lost in space, since I can't get apt to install ownCloud again for some reason.
I've forced the ownCloud install now by using dpkg --ignore-depends - but the system seems to be corrupted somehow now.
I'm using the following repo url for ownCloud - which other may I try?`
deb http://download.owncloud.org/download/repositories/stable/xUbuntu_14.04/ /

Can you please elaborate the following line of my previously posted logs:
php5-cgi : Depends: php5-common (= 5.5.9+dfsg-1ubuntu4.14) but 5.6.18+dfsg-1+deb.sury.org~trusty+1 is to be installed
Why is apt forced to install a php version which does not met the dependencies? Maybe sorting this out would resolve the whole issue?

Any news on this one? Roundcube & ownCloud are still not working :(

Still not working

We are cleaning up issue tracker and closing this issue because we won't be able to contribute to this discussion further.
Please use http://community.rtcamp.com/c/easyengine for future support questions.


Type checker for navTree (Outline)

Search Terms

navtree
primitive type, string, number, boolean
method, function, property, arrow

Suggestion
Color coded icons in Outline view for different types.

Use Cases
This change is for convenience and better experience.
It also possibly implements https://github.com/Microsoft/TypeScript/issues/25062 - to differentiate between properties and function properties (arrows).

Examples
Example in the image above.

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

The feature is currently syntactic only. that means no type information is used.
The reason some of these features are syntactic only is getting all types is a potentially a very expensive process, specially if you do this after every edit.
The file can be arbitrarily big, the types of the declarations are not always explicitly defined, but are inferred from expressions, and computing the type of every property/variable/parameter would not scale.

Would it also be a problem for explicitly typed properties only?

first they could be type references to other types. second, we should be consistent, and not treat some properties different from others.


unit test for cutout

#12

I simplified a bit the file by suppressing unnecessary lines and using the field_size argument in the extract_cutouts function. If that is ok for you we can merge

I simplified a bit the file by suppressing unnecessary lines and using the field_size argument in the extract_cutouts function. Also I don't know if it is necessary to have 3 bands ? Why 3 and not just 2 (if the idea is to test a multi-band image)?

No particular reason, I just put 3 randomly

I would use the assert functions in numpy.testing to test the equality between entire arrays here instead of just 3 random values.

Done!


When user tries to access current staff page unauthenticated show login dialog

instead of showing a blank page...

we did it!


Customizing base localization functionality

Note: The following is only relevant for app developers (app level), not for component developers (library level)!
To make Localize (and hence Sholace) more flexible and a bit more enterprise-ready it is an absolute must-have to make base localization functions customizable. Many developers know it: If you work on a big multi-country project for a global enterprise there's is often at least one :wink: country division that wants some non-standard behavior for some I18n aspects. Or an enterprise wants a unified country-independent behavior for a certain aspect of I18n in their internal apps.
An everyday customization requirement is for example to modify how Localizer will handle unavailable translations. I personally use to have (for good reasons) slightly different "unavailable translation" strategies on DEV, TEST and PROD system or in certain stages of the development lifecycle. Normally things like that are solved in a different abstraction level (for example when using some kind of dependency injection), but Shoelace will not have any i18n abstraction levels, so it might be an option to add the customization capability in Localizer itself.
To be clear, this is currently only about the three functions formatNumber, formatDate and translate. More functions will follow in future, but I guess there will never be more than maybe two handfuls of base functions that must be customizable.
I personally don't care how exactly this will be implemented. The only really important requirement is that such fundamental I18n functions are indeed customizable.
An example (but this is just an example, implement everything completely different if you want):
There could be a function initI18n that can only be invoked one single time (after start of the app) and it has to be called BEFORE any localization function will be called (otherwise an error will be thrown). This is to make sure that the relevant localization functions stay pure (in mathematical sense - translate is an exception) and will not change their behavior after initially set.

  Click me to see code

initI18n({
  // ... more parameters may follow in future ...

  // this is the important part (self = customized behavior, base = base behavior).
  // Details are not that imporant here, as this is only an example
  customize: (self, base)  => ({
    translate(locale, key, ...args) {
       ...
    },

    formatDate(lang, date, options?) {
      // this might not be customized very often (in my working life, I had such a customization
      // requirement only once)
      ...
    }
  })

A corresponding implementation will not be a big challenge but it will produce some additional code (I gave it a try: Needed 140 lines of code for a initial never tested version .. for comparison: index.ts has currently only 101 lines). Maybe an additional package @shoelace-style/localizer/customize or whatever could be an option.
If - for whatever reasons - this task needs more thinking time and will not be implemented soon, a temporary workaround could be to make those Localize functions monkey patchable - not as official "feature", also not documented, but at least for R&D at own risk.

Something like the following could do the trick to make things monkey patchable

export { i18n as __internal__ }

export function formatDate(lang: string, date: Date | string, options?: Intl.DateTimeFormatOptions) {
  return i18n.formatDate(lang, date, options);
}

export function formatNumber(lang: string, number: number | string, options?: Intl.NumberFormatOptions) {
  return i18n.formatNumber(lang, number, options);
}

function translate<K extends keyof Translation>(lang: string, key: K, ...args: FunctionParams<Translation[K]>) {
  return i18n.translate(lang, key, ...args);
}

const i18n = {
  formatDate(lang: string, date: Date | string, options?: Intl.DateTimeFormatOptions) {
    date = new Date(date);
    return new Intl.DateTimeFormat(lang, options).format(date);
  },

  formatNumber(lang: string, number: number | string, options?: Intl.NumberFormatOptions) {
    number = Number(number);
    return isNaN(number) ? '' : new Intl.NumberFormat(lang, options).format(number);
  },

  translate<K extends keyof Translation>(lang: string, key: K, ...args: FunctionParams<Translation[K]>) {
    ...
  }
}

To make Localize (and hence Sholace) more flexible and a bit more enterprise-ready it is an absolute must-have to make base localization functions customizable.

I think there's a misunderstanding about the scope of the library. It's not intended to be used at a high level or for robust translations. While it can be consumed and extended by third-party components, it doesn't have to be and it probably doesn't make sense to do so in most cases.
To reiterate, the idea is to provide a thin localization shim that remains internal to a component library and relies only on standard platform features. The end user only needs to do two things:

Import the desired translation(s)
Set the lang attribute

this is currently only about the three functions formatNumber, formatDate and translate

It's only about one, since formatDate and formatNumber wrap the Intl API. You really can't have a missing or invalid term in those because the browse will throw an error.

An everyday customization requirement is for example to modify how Localizer will handle unavailable translations.

Are you talking about unavailable translations or unavailable terms? I'm assuming the latter, as its up to the consumer to import the translations their app will support. The fallback will still allow things to work if someone uses an unsupported value for lang.
Currently, if a term or its fallback can't be found, the translation key is output and a console error is thrown. Your testing strategy should include all supported languages. I would suggest attaching a spy to console.error to listen for missing terms. (If you want to test without a fallback, only load the target translation.)
Will that suffice for your use case?
For component devs, it's already more complicated than I'd like it to be in terms of setup. I don't see any advantage in adding an initialization step that a majority of users may not care about. If anything, it should be optional.

If - for whatever reasons - this task needs more thinking time and will not be implemented soon, a temporary workaround could be to make those Localize functions monkey patchable - not as official "feature", also not documented

There's already an example in the readme about wrapping the translate() function for strong typings. I'm not sure how you'd tap into it for missing terms, though. That function can't throw an error because it will block rendering (hence the console.error warning instead). I think it's fairly common for the translation key to be output, which is the current behavior.
I'm not sure what else you're looking for here.

Frankly, I'm really not sure why this very unusual dogmatic approach of hard-coding stuff without the ability to customize is so extreeeemely important to you.
Localize is currently basically saying, that there's only one useful strategy for each localization concern, one strategy only - if someone wants different strategies then Localize says: "This is neither wanted nor needed. I do not care about your requirements.  The hard-coded strategies in Localize are the only reasonable and useful`".
Why do we even discuss about whether hard-coded strategies are a good thing or should avoided?
If someone doesn't want that on live system, why does Localizehave to force her?

I think it's fairly common for the translation key to be output, which is the current behavior.

Allowing only "the common behavior" is dogmatic.
If someone wants only ONE error log entry per missing translation instead of the hard-coded strategy in Localize to error log each single occurrence, why do Localize want to prevent this or force her to monkey patch console.error or do other crazy stuff?
If someone does not want to use Intl directly but maybe want to use her own fancy i18n library which itself is based on Intl but happens to be perfectly customizable with a high flexibility of altering the standard behavior if needed. Why does Localize not allow that? What's so important about the currently two Intl function calls in Localize that overriding this hard-coded Intl calls is absolutely forbidden and therefore not possible?
In almost all cases I consider this an error case. Currently I am not able to handle this as an error. Why?
I'm planning to use SL for admin panels. At least for my personal admin panels I want to use the ISO date format independent of the locale. Is that currently possible without any hacks? I don't think so, am I wrong?
Quite soon there will be further requirements for Localize likegetFirstDayOfWeek, getCalendarDay, etc. and even parseNumber and parseDate. How do you plan to handle them? An answer like "Not in the scope of this library" will not be very helpful ... with some way of customization you'll easily find "good enough" solutions for that, but I have no idea how these requirements will be satisfied with a few dozen lines of code without allowing customization.

I don't see any advantage in adding an initialization step that a majority of users may not care about. If anything, it should be optional.

Of course, it will be optional.

[...] for strong typings

Not everybody uses TypeScript.
I'm not asking for a different architectural paradigms here any longer. The only thing I am asking for is: Please allow one single function init18n or whatever name you like in a separate package @shoelace-style/localize/customize or a different file @shoelace-style/localize/dist/customize.js or whatever, I don't mind, and allow the base functions formatDate, formatNumber, translate (a few others will follow in future) to be overridden. Things will become so much more flexible. Again: Since when are hard-coded, non-exchangeable dogmatic strategies considered good solutions?

Frankly, I'm really not sure why this very unusual dogmatic approach of hard-coding stuff without the ability to customize is so extreeeemely important to you.

I try not to be dismissive, but there's a point where it becomes mentally taxing to endure constant hypotheticals and what-if scenarios that are either unlikely or out of the project's scope. Rather than ignore issues, I always try to respond with what I was thinking and what I believe is right for the project. Maybe I should stop doing that.
Many of the issues you've posted are over-engineering what is currently a very simple concept. What I'd like to see before jumping in and doing all of that work — which quite possibly will only ever benefit you — is a collection of feedback from various users who have experimented with the library and ran into real world problems. Those are things that are worth solving. Prematurely optimizing things because you might need them is not.
This solves my immediate need.

Quite soon there will be further requirements for Localize like getFirstDayOfWeek, getCalendarDay, etc. and even parseNumber and parseDate. How do you plan to handle them? An answer like "Not in the scope of this library" will not be very helpful

I don't have a need for them and don't foresee any of those being a requirement. If you do, consider forking the library and adding them yourself or writing your own from scratch. Better yet, use a proper i18n solution. This isn't intended to be that.
As I've stated before, this experimental library has a very limited scope and has been presented for feedback. It has not been implemented in Shoelace or anywhere else that I'm aware of. Yes, you could expand this concept. Yes, you could make everything in it customizable. Is it worth the effort to me right now? No. But code can change.
Note that I would be much more apt to entertain a clean PR (as long as it's inline with the library's scope) than a multitude of issues demanding features.

To make Localize (and hence Sholace) more flexible and a bit more enterprise-ready it is an absolute must-have to make base localization functions customizable. Many developers know it: If you work on a big multi-country project for a global enterprise there's is often at least one 😉 country division that wants some non-standard behavior for some I18n aspects.

This is conjecture. If they have that need, they should use a proper i18n library. My goal is to localize component internals, not to provide a full i18n solution.
All I really want to know from users at this point is, does the concept of using lang and creating/importing translation files work well for other component library authors? From there, we'll evolve it and address issues that are actually issues.

That said, it probably does make sense to customize the behavior of terms that are missing from translations. My last response included an uncertainty:

I'm not sure how you'd tap into it for missing terms, though. That function can't throw an error because it will block rendering (hence the console.error warning instead).

I didn't say I was opposed to it. I'm just not sure the best way to do it at this point and I don't feel that users should have to call an init function to use the library. I'll think on it.

Okay, thanks for your response and help and all that discussion, which helped me (and hopefully others) a lot to get a better view on the topic (for example your comments in #1 were 100% convincing and really helpful).
I will close this issue now, as it is obvious that I've already stressed you at a level that is unacceptable.
I'm deeply sorry for that, that was never my intention, I just wanted to share ideas and use cases of my working life to help making things more flexible.
Maybe I may ask you to make sure for Sholace that the Localize library or its successors  always stays exchangeable on build/bundler level if anyone needs to customize it for her app (I guess, you would have done this anyway).

[click me] Please find here a last tiny suggestion :wink:

Maybe it makes sense to replace https://github.com/shoelace-style/localize/blob/a32cf4229f9f8892e2de5634b2606d7b2fb45ec1/src/index.ts#L59-L64
} else if (fallback && fallback[key]) {
  term = fallback[key];
} else {
  console.error(`Cannot find "${key}" to translate.`);
  return key;
}

with this
} else {
  console.error(`Cannot find "${key}" to translate.`);

  if (fallback && fallback[key]) {
    term = fallback[key];
  } else {
    return key;
  }
}

So, like said: Thank you very much for sharing your ideas and opinions. I will close this issue then....


nemu-config: Add machine_type to config file

nemu needs to be configured with:
machine_type = "virt" by default.
In addition, this commit removes
machine_accelerators="virt" which was added instead
of machine_type in a previous commit.
Fixes: #1707.
Signed-off-by: Salvador Fuentes<EMAIL_ADDRESS>

/test


Hack Session 525 ✼ Remotely

25.05.2022
Wrap-up of our Gōng-fu I/O Weekly · Hack Session #525 ✼ Remotely ✼ meetup.
Projects
• ‹Bouboucle› generative art with Javascript — @andreaskundig and @david-hodgetts
• Connecting Neo4j Aura and ObservableHQ — @olange and @rudifa
See also

#524 Previous session
#526 Next session

ObservableHQ › @olange › Neo4j › Connecting Neo4j Aura to Observable uses Secrets() function to access database connection details, which restricts this Notebook from being shared/published
ObservableHQ › @olange › Neo4j › Visualising Neo4j Aura query results idem


Sum type error when working with inheritance

Consider the following model:
abstract DeviceNode
	cost -> integer

abstract Motor : DeviceNode
abstract Switch : DeviceNode

B : DeviceNode
	[cost = 1]
C : Motor
	[cost = 1]
D : Switch
	[cost = 1]

If I were to query to the total cost of the motors and switches like:
totalCost -> integer
[totalCost = sum (Motor.cost, Switch.cost)]

A type error would produced by choco:
Exception in thread "main" org.clafer.ast.analysis.TypeException: Cannot sum(int)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.visit(TypeAnalyzer.java:445)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.visit(TypeAnalyzer.java:146)
	at org.clafer.ast.AstSum.accept(AstSum.java:23)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.typeCheck(TypeAnalyzer.java:158)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.visit(TypeAnalyzer.java:384)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.visit(TypeAnalyzer.java:146)
	at org.clafer.ast.AstSetTest.accept(AstSetTest.java:35)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.typeCheck(TypeAnalyzer.java:158)
	at org.clafer.ast.analysis.TypeAnalyzer$TypeVisitor.access$000(TypeAnalyzer.java:146)
	at org.clafer.ast.analysis.TypeAnalyzer.analyze(TypeAnalyzer.java:117)
	at org.clafer.ast.analysis.Analysis.analyze(Analysis.java:130)
	at org.clafer.ast.compiler.AstCompiler.<init>(AstCompiler.java:158)
	at org.clafer.ast.compiler.AstCompiler.<init>(AstCompiler.java:154)
	at org.clafer.ast.compiler.AstCompiler.compile(AstCompiler.java:176)
	at org.clafer.ast.compiler.AstCompiler.compile(AstCompiler.java:172)
	at org.clafer.compiler.ClaferCompiler.compile(ClaferCompiler.java:292)
	at org.clafer.cli.REPL.runREPL(REPL.java:114)
	at org.clafer.cli.Main.main(Main.java:123)

I believe "[totalCost = sum (Motor.cost, Switch.cost)]" will translate down to "sum (Motor.cost.ref ++ Switch.cost.ref)" (please verify).
Note that the union operator removes duplicates. Is this what you intended?
Anyways, I believe the constraint you are looking for is "[totalCost = sum (Motor.cost) + sum(Switch.cost)]".

Good point about the removing duplicates I wouldn't have thought about that. But still why would there be a type error when the type of Motor.cost.ref and Switch.cost.ref are both sets of integers. Wouldn't the result just be a set of integers?

The sum operator is a bit weird because it is the only operator that uses "bag" semantics.
What it does is the following (latexish syntax):
sum C is equivalent to: Sigma_{c in C} c.dref
Hence if C is a set of integers, then it cannot "dref" the elements. I can overload it to work on a set of integers as well, would that help?
The downside is that it won't catch the "bugs" you are seeing here.

Ah I see now. I don't think overriding is necessary, I think that what you have is correct. But maybe the Clafer compiler should catch this type error to guide users?

Well, it is not an error unfortunately. The user might want to eliminate duplicates in some cases. In multi-concepts work, we will have separate operators for working with multi-sets and multi-relations. In this case, you should write
[totalCost = sum Motor.cost + sum Switch.cost]


Fix unable to get TGVMax results, adding connection to account

I fixed the issue with TGVMax card.
Bug before
https://github.com/tducret/trainline-python/issues/16
What I did
I added the log in with a business trainline account (which is free : https://www.trainline.fr/business), before search.
It doesn't make outdated the old requests with this package, but to be able to have TGVMax results, we have to make these commands :
#Login and password of your business trainline account
trainline_sess = Trainline('YOUREMAILACCOUNT','YOURPASSWORD')

# Birthdate, firstname and lastname must the same as the passenger created in your business trainline account, for
# who you have associated the TGVMax card (you can find it there : https://www.trainline.fr/organization/members)
TGVMaxPassenger = Passenger(birthdate="BIRTHDATESPASSENGER",
firstname='FIRSTNAMESPASSENGER',
lastname='LASTNAMESPASSENGER',
trainline_session=trainline_sess)
results = search(
passengers=[TGVMaxPassenger],
departure_station='Lyon',
arrival_station='Paris',
from_date="11/11/2020 12:00",
to_date="12/11/2020 20:00")

You can add other passengers, even if they haven't TGVMax card, but they must also be added with these parameters : Passenger(birthdate="BIRTHDATESPASSENGER", firstname='FIRSTNAMESPASSENGER', lastname='LASTNAMESPASSENGER', trainline_session=trainline_sess), and also be created in your business trainline account.

@tducret, what do you think of this PR? Any ETA for a merge?

Thank you @tducret .
Is it possible to update the package on pypi too, to have new updates easily ?
Thank's by advance,

I'd want to but the travis build is stuck in the queue... > https://travis-ci.org/github/tducret/trainline-python/builds/738371000
I even updated the tests that were obsolete for this release.

Well, that's strange. I uploaded it on pypi manually (v0.1.2).
Could you please upgrade and give it a try @TitCaz ?


REPL features

[ ] Fix bugs with pressing arrow keys on some platforms being bugged
[ ] Add autocomplete
[ ] Add auto brace
[ ] Add a global scope

Not necessarily a "bug" per se, more just a consequence of an unimplemented feature. Autocomplete will come with Readline when the arrow keys are sorted, as will history.


[opam] Remove assert false in favor of error message.

This situation can happen when reorganizing Dune / opam packages and
it is helpful to have a proper error message.
Signed-off-by: Emilio Jesus Gallego Arias<EMAIL_ADDRESS>

Thanks!

Thanks!


Set the beam calibration state using the X-engines - Proposal 1

This PR updates the way xengine_beamformer_control.py to use the X-engines "cal_gains#" state variables to set the beam calibration state.  This is one of two proposals.
This Method
The PR uses an "or" of the single polarization X-engine beams to set the beam state.  This is easy in that the only thing that changes is the calibration state determination.
Pros:

It's simple.
It requires no changes to the calibration gain setting code.

Cons:

It only checks that each input is set somewhere in the single polarization X-engine beams.  Things could be double set but that could be handled with an "exclusive or".
It only really works with the current beam polarization scheme where one beam pol. consists of only one pol. from the stands.

I think I like this simple idea better.


microsoft.Extensions.* probably the wrong place for this package

Library name and version
Microsoft.Extensions.Azure 1.1.1
Query/Question
With reference to https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio#update-package-references
This package should not belong in the Microsoft.Extensions.* namespace as it does not upgrade with the .Net version, or the version should be upgraded to correspond to the .Net version that its targeting.
Microsoft.Extensions.* has a great architecture in that the series fits well with the development of .Net. so if you're developing with .net^.2, you know you need v6.2.xxxx of all the microsoft.Extensions.* libraries.  This package does not fit is with that sequence.  Could it either:

be made to fit in with this series
be put in another namespace? (Azure.Extensions., or Microsoft.Azure. seem to be good options)
The migration documentation be updated to reflect the exceptions (There are a couple of others, but this one bugs me more)

Option 3 is my least favoured option.
Sorry - its not really a question, more a bug, or design change request. For reference Migrating following the instructions is mostly very smooth, with the exception of this little bit of grid in the flow.
Environment
Migrating a number of projects from .net 5 to .net 6
Mostly Dockerised ASP.net web APIs, Azure pipelines,

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Extensions:0.5941816,Functions:0.048598874,Azure.Core:0.032728378'

Thank you for your feedback.  Tagging and routing to the team members best able to assist.

As a GA library, any changes to the package name would constitute a breaking change to applications.   This is not something that we will be considering as a result.   Closing this out.


Update dependencies, change popup mode to redirect

Fixes https://github.com/auth0/auth0-angular2/issues/8

@chenkie fixed. Thanks.

Some of these version bumps won't work with angular2 beta 1 as they won't satisfy peer dependencies. I'm going to update the webpack version from the Angular 2 Webpack Starter. In the latest version of the starter, the some of these dependencies disappear.


python3 enhancements: dhcp6.py

Coverage decreased (-0.02%) to 67.43% when pulling 7f8a8b0a163bda6e540d94c1853bce42d32b0506 on qin-nz:patch-1 into 5a1da545bfcec765c546c81f98c9506a146a6cc8 on osrg:master.

Coverage decreased (-0.02%) to 67.43% when pulling 7f8a8b0a163bda6e540d94c1853bce42d32b0506 on qin-nz:patch-1 into 5a1da545bfcec765c546c81f98c9506a146a6cc8 on osrg:master.

https://sourceforge.net/p/ryu/mailman/message/35840116/


swapped out resizing package and fixed issues with fullscreen resizing

I am going to merge this PR and put new PT stories in for cleanup items mentioned here.


fix: sentry issues

Description
Changes proposed in this pull request:

remove commented className in Link component
fix handling non-fetched data in the ResourceRef widget

/retest

/retest


Cant visualize XViz generated data

Hello,
I get the following errors with a fresh install from today.

I installed XViz using get started tutorial:
download-kitti-data.sh
run-kitti-example.sh
After that i installed streetscrape.gl using get started tutorial
I copied the generated "2011_09_26_drive_0005_sync" files (0-frame.json and xxx-frame.glb) from xviz/data/generated to streetscape.gl\examples\get-started\ and changed the  examples/get-started/...file.js to:
export default new XVIZFileLoader({
  timingsFilePath:
    './2011_09_26_drive_0005_sync/0-frame.json',
  getFilePath: index =>
    `./2011_09_26_drive_0005_sync/${index + 1}-frame.glb`,
  worker: true,
  maxConcurrency: 4
});

Whats wrong? :)
Best regards
Matthias

I just did a clean reinstall and it is working. Can you document the commands you used to install the dependencies?

Hi,
I realized that the problem might be that I generated the glb files on a linux machine and then copied them over to windows. On Windows then i get the error documented above. If i use the original glb files from the website (avs.auto) everything works fine.
I'll ask in the xviz project how to generate the files on windows.
Best regards
Matthias

@MatthiasThDs  You should not have to copy the files over if you are using the instruction for the quick start.  The script ./scripts/run-kitti-example.sh should run the conversion and then start the XVIZ server.
Then in streetscape.gl you do have to run yarn start-streaming-local. Running yarn start` won't connect to the local server i believe which is why you probably copied them over.  I will make this clearer in the docs.
Also curious on the linux <-> windows and if that was a problem or not

First, you have to signup in https://www.mapbox.com/
Then go https://account.mapbox.com/access-tokens/ and create a token.
Copy and add it in the constants.js file or directly pass to LogViewer like below.
<LogViewer {other_props} mapboxApiAccessToken="generated_token" />
Hope this will help you.
Thank you

In contstants.js file where to add the access token?

With out the mapbox,

First, you have to signup in https://www.mapbox.com/
Then go https://account.mapbox.com/access-tokens/ and create a token.
Copy and add it in the constants.js file or directly pass to LogViewer like below.
<LogViewer {other_props} mapboxApiAccessToken="generated_token" />
Hope this will help you.
Thank you

In contstants.js file where to add the access token?

First, you have to signup in https://www.mapbox.com/
Then go https://account.mapbox.com/access-tokens/ and create a token.
Copy and add it in the constants.js file or directly pass to LogViewer like below.
<LogViewer {other_props} mapboxApiAccessToken="generated_token" />
Hope this will help you.
Thank you

Even if Mapbox isnt available , streetscape should visualize the lidar points and the bounding boxes right?
I am not able to see them. But I am able to see acceleration, velocity, wheel values changing when streaming.

WIthout map box token streetscape won't show map and lidar data.
You can find constants.js file in /streetscape/examples/get-started/src/

WIthout map box token streetscape won't show map and lidar data.
You can find constants.js file in /streetscape/examples/get-started/src/

Thanks.
Does Kitti dataset  providing the geo coordinates to mapbox?
I am running the kitti converter to convert kitti data into XVIZ format and using it display in streetscape.
For mapbox token I just set the environment variable instead of adding it in constants.js file, will it work?

Tried providing token in constants.js, no luck yet.

First, you have to signup in https://www.mapbox.com/
Then go https://account.mapbox.com/access-tokens/ and create a token.
Copy and add it in the constants.js file or directly pass to LogViewer like below.
<LogViewer {other_props} mapboxApiAccessToken="generated_token" />
Hope this will help you.
Thank you

Even if Mapbox isnt available , streetscape should visualize the lidar points and the bounding boxes right?
I am not able to see them. But I am able to see acceleration, velocity, wheel values changing when streaming.

While creating the token, what all scopes need to select in secret?

Hi,
I realized that the problem might be that I generated the glb files on a linux machine and then copied them over to windows. On Windows then i get the error documented above. If i use the original glb files from the website (avs.auto) everything works fine.
I'll ask in the xviz project how to generate the files on windows.
Best regards
Matthias

Hi,
I realized that the problem might be that I generated the glb files on a linux machine and then copied them over to windows. On Windows then i get the error documented above. If i use the original glb files from the website (avs.auto) everything works fine.
I'll ask in the xviz project how to generate the files on windows.
Best regards
Matthias

i have the same question. it can not find local file . this is my config

and the bower show:

How to do ？

Anyone got the solution?

Anyone got the solution?

I placed the "data" folder inside the public folder and I tried in the below way, It's working.
import { resolve } from 'path';
const DATA_DIR = resolve(__dirname, "./data");
export default new XVIZFileLoader({
timingsFilePath: ${DATA_DIR}/0-frame.json,
getFilePath: index =>${DATA_DIR}/${index + 1}-frame.glb,
worker: true,
maxConcurrency: 4
});

I am also getting the same mapbox token issue.
Can someone tell how we have to pass the token. I have followed the steps mentioned above and generated the token from mapbox website, But i am not understanding how to pass this token into constant.js mentioned above.
can someone help me


WIP replace container-interop with psr-container.

unfortunately i think we won't be able to make this change until issue 184 on zend-servicemanager is resolved, which is probably waiting on v4 of that package.

closing due to inactivity


Remove redux and ldk, refactor using liquidjs-lib and electrum websocket endpoint

This PR removes redux, redux-saga,  webext-redux and ldk packages from Marina.

replace redux based storage by repositories interfaces in src/infrastructure. The repositories classes are using Browser.storage to store and access data from local browser extension storage. Repositories can be used everywhere (including React components).
src/infrastructure/storage provides react hooks based on Browser.storage.onChanged event listener. It lets to reproduce the behavior of redux useSelector hook.
most of src/content and  src/inject are unchanged. They are just using Repository interfaces instead of redux state.
Account is now a class able to generate scripts, create confidential addresses and sync the wallet (its a kind of "watch only wallet").
SignerService is a class letting to sign psetv2 using marina Repository interfaces.
BlinderService is a class letting to blind psetv2 using marina Repository interfaces.
background-script.ts is reponsible to update the wallet state using several async services (Subscriber, Updater and TaxiUpdater) listening to Browser.storage.onChanged events

TODO:

[x] Fix wallet/send flow (psetv2 coin selection bug at choose-fee step).
[x] Taxi topup support in send flow.
[x] Custom script Account -> related to #427
[x] Implement connect/send popup.

@bordalix @tiero please review

I am looking at using React-Query (https://tanstack.com/query/latest) to manage Esplora data, but afaik it returns either data or error. If I use ws.batchRequest to get transactions and one of them fails the whole operation fails. Would it be possible to return successful data, if any, along with promise rejection error inside ElectrumWS onMessage ?
That way I could still display successful requests.

I noticed that we have txID, txid, txHash from LiquidJS. Would be nice to harmonize that.

UPDATE
Latest commits add full support of Ionio accounts. Some small breaking changes in marina-provider has been introduced. The docs.vulpem.com update describes them and adds an example related to Ionio account.
It should be enough to test and discuss new APIs @tiero @bordalix
I keep this PR as draft, some required WIP:

[ ]  Add tests of the application layer (Account, SignerService and BlinderService).
[ ] SignerService & BlinderService should be able to sign/blind psetv0.
[ ] Let the user download a restoration file with Ionio account data in settings/accounts.
[ ] Let the user upload restoration files in onboarding/restore.

marina-0.4.14.zip
The latest version adds Ionio accounts restoration (download a file in settings/accounts and upload it in onboarding/wallet-restore form) + Liquid Taxi support.

I would put in the placeholder an example of what we need. ie. https://blockstream.info and wss://vulpem.com

I would add also the base derivation path for each account listed here

If possible I would put the Updating... in the navbar during the restoration/fetching of history

Reason why these assets have no balance? not even 0

Also can we scale the font so we can at least fit the text?

Best to write Unconfirmed here, maybe as tag using the red or yellow background

The sending flow has some glitches:

for some reason was giving to a perfect valid address as not valid. To make it work you need to copy paste second time.
I dont understand why is taking do much time when selecting l-btc as asset to pay for fees: is needed all of this to do what exactly? coin-selection?

https://www.loom.com/share/ab92c4fd7a8e44e6a310f131df51df31

nit: overlay background does not cover all extension

L-BTC balance (on the assets list) should be '0' and not absent as is now:

Date area needs to have less width or else value of the tx is wrapped:

I'm getting blinding errors on mempool and blockstream when seeing a contract creation tx:
https://liquid.network/testnet/tx/0e82f8fca8f968bff3b78c64d7c0f6bb18f94f3d331861c486a770c300143746#blinded=84897,144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49,d6fd0b0dda248b46903ed123a6c0bf7dbb55082f671033289bd3a472434a9bc7,fd1f57f5dfe08560e74c05abd97e3b5635c5831867ace8ed65b920cf2d3cbcf9,21680168,144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49,bfeb9a4d8e1de578bb014e264a21c93715cc6dc4233bc3c948dc2cfcd881e48b,1c923c8f54bd7237274b1a0ae9aead67affb0c4f33c748394e41f8725765ba5c,1100000000,0d86b2f6a8c3b02a8c7c8836b83a081e68b7e2b4bcdfc58981fc5486f59f7518,0000000000000000000000000000000000000000000000000000000000000000,0000000000000000000000000000000000000000000000000000000000000000

Create contract
Export marina-ionio-restoration.json
In marina, restore account
Restore with same mnemonic and json file from 2
Contracts has status "unknown" (I will check why)
When I try to close the contract, I get this error:

Can you please try to "Restore account" from a wallet already initialized? For some reason I always get invalid password that way @louisinger

Shall we add a button into either Accounts or in Deep Restore to be able to import the restoration file if needed?

When L-BTC is part of tx and used as fee input to cover the fee output, it should not be shown in the L-BTC history?

When I try to send all LBTC to myself I get a min relay fee not met, 0 < 134
https://user-images.githubusercontent.com/9318412/225405661-475dbab3-9029-4ef5-8156-6c9a88f86291.mov
Also, Retry button does nothing.

Log out NEVER works on first click:
https://user-images.githubusercontent.com/9318412/225659918-5084e209-7755-4f6d-be6e-38155e8644cd.mov


Added first item to new section "Roles in SRE"

Hi @danrl,
Thanks for contribution!  To introduce a new category, we need an adequate amount of articles to fit in there. Since there are many related articles in the Culture section, you could either find more articles that fit the Roles in SRE category and add them all there, or you could add your new entry to the Culture section.

Thanks for the feedback @dastergon. Moved the link to Culture as suggested.


hubble: Add support for SockLB tracing

This PR adds a Hubble parser for TraceSockNotify events. Those
events are emitted whenever SockLB is performed, see cilium/cilium#20492
for details about the datapath tracing.
This parser is similar to the L3/L4 event parser. But because the events
are traced on the socket level, we do not know the source endpoint id,
source endpoint IP address or source TCP/UDP port of the event. We only
know the source cgroup ID. From the cgroup, we can derive which local
pod emitted the event (via GetPodMetadataForContainer). From the pod
IP we can then perform an IP-based lookup in either the local endpoint
list or the IPCache to determine the source endpoint metadata (endpoint
id, numeric identity, labels, etc). The lookup for destination IP is
almost identical to the threefour parser, with the exception that we do
not have any datapath identity available for fallback.
The resulting flow looks similar to regular FlowType_L3_L4, with a
couple of key differences:

The cgroup id of the container is available
Information if the event is pre or post translation point is
available
The socket cookie is available
The TCP/UDP source port is not known
TCP flags are not known
Ethernet headers are not known

Unfortunately, sock events can also be performed by non-pod entities
(e.g. the host cgroup). In that case, we cannot perform a mapping to any
local endpoint and therefore the source IP and endpoint data are left
empty. The cgroup id may also not be available on older kernels or
systems with the systemd cgroup driver (though this will likely be fixed
in a follow-up PR). This fact that the source IP may be empty/unknown is
also key difference to the flows which have been produced by Hubble so
far.

Here's an example of a pod performing a DNS request and response. The first three events are the DNS request: We first see two the SockLB events (pre and post translation, meaning before and after service backend selection):

And here are the events for the response: We see the response packet arriving at the endpoint, but before it is delivered over the socket, reverse NAT being applied, i.e. the pod IP is once again translated to the service IP (which is where the userspace sent the packet to):

/test

Can we print cgroup id like metadata in the verbose json output? Will you be adding json summary in a follow-up?

This already done. The JSON schema is derived from the protobuf schema, which is updated in this PR to contain the cgroup id. Once the schema is synced to the Hubble CLI (which we can only do once this PR is merged), hubble observe -o jsonpb will print it too.

Thanks for the feedback @aditighag and @kaworu - I think I addressed or commented on all of it.

/test

Good point. I originally though to omit it (since I expect the newly added option only to be relevant to devs), but it might be still worth adding it nonetheless, since extraConfig is rarely known. Will add a commit adding the Helm value.

/test

k8s-1.24-kernel-4.19 hit known flake https://github.com/cilium/cilium/issues/21979
CI Multicluster seems to have hit a variant of https://github.com/cilium/cilium/issues/21655 (in any case, it's a datapath flake which this PR does not touch).

/test

Removed api code owner, as it has been superseeded by sig-hubble-api and is thus not required anymore (if it was required, I could not have removed the review request).
Marking ready to merge.


Allow reordering of for cycling between them.

Users should be able to change the order that bookmark bars get switched so that they cycle in a certain order when pressing the hotkey. What you could do is add an icon like this to the right of the rename button to indicate that users can drag the bookmark buttons to reorder them.

Sure, I thought about that but never took the time to actually implement it.
As a workaround for the moment, you can simply reorder the bookmarks folders within the browser's bookmark manager. They are located under the _BookmarksSwitcher folder :)