SVG rendering

I am just trying the following code:
include karax / prelude

proc createDom(): VNode =
  result = buildHtml(tdiv):
    svg(width = "100", height="100"):
      circle(cx="50", cy="50", r="40", stroke="green", stroke-width="4", fill="yellow")
      text "Doesn't Support SVG"

setRenderer createDom

but when I do:
karun -r svg_example.nim

I just get the message:
Doesn't Support SVG

When I inspect the generated DOM:

  <link type="text/css" rel="stylesheet" id="dark-mode-custom-link">
  <link type="text/css" rel="stylesheet" id="dark-mode-general-link">

    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1" name="viewport">
    <title>app</title>
    <link href="styles.css" rel="stylesheet" type="text/css">

  <svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow">
   </circle>Doesn't Support SVG
  </svg>

The issue seems to be that the svg tag doesn't contain the namespace: xmlns="http://www.w3.org/2000/svg".
But I don't know why that is happening. I think this line should do the job, doesn't it?

Just to confirm that app.js does not contain: createElementNS.
By the way I am using:

Archlinux
Nim v2.0
karax v1.3.1

It was an issue with my own installation


[SearchAnchor] ListTile with trailing widget throws _AssertionError when closing SearchAnchor

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
In the sample code from the SearchAnchor.2.dart add a trailing widget to the ListTile in the SearchAnchor suggestionsBuilder and it throws an _AssertionError when closing the search view.
Expected results
Expect to be able to have a trailing widget in a ListTile built by the suggestionsBuilder of the SearchAnchor.
Actual results
Throws the following error:

_AssertionError ('package:flutter/src/material/list_tile.dart': Failed assertion: line 1323 pos 7: 'tileWidth != trailingSize.width || tileWidth == 0.0': Trailing widget consumes entire tile width. Please use a sized widget, or consider replacing ListTile with a custom widget (see https://api.flutter.dev/flutter/material/ListTile-class.html#material.ListTile.4))

Code sample
Code sample
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

/// Flutter code sample for [SearchAnchor].

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

class SearchBarApp extends StatefulWidget {
  const SearchBarApp({super.key});

  @override
  State<SearchBarApp> createState() => _SearchBarAppState();
}

class _SearchBarAppState extends State<SearchBarApp> {
  final SearchController controller = SearchController();

  @override
  Widget build(BuildContext context) {
    final ThemeData themeData = ThemeData(useMaterial3: true);

    return MaterialApp(
      theme: themeData,
      home: Scaffold(
        appBar: AppBar(title: const Text('Search Anchor Sample')),
        body: Column(
          children: <Widget>[
            SearchAnchor(
                searchController: controller,
                builder: (BuildContext context, SearchController controller) {
                  return IconButton(
                    icon: const Icon(Icons.search),
                    onPressed: () {
                      controller.openView();
                    },
                  );
                },
                suggestionsBuilder:
                    (BuildContext context, SearchController controller) {
                  return List<ListTile>.generate(5, (int index) {
                    final String item = 'item $index';
                    return ListTile(
                      title: Text(item),
                      // Below is the one line changed from the example: search_anchor.2.dart
                      // https://github.com/flutter/flutter/blob/master/examples/api/lib/material/search_anchor/search_anchor.2.dart
                      trailing: const Icon(Icons.chevron_right),
                      onTap: () {
                        setState(() {
                          controller.closeView(item);
                        });
                      },
                    );
                  });
                }),
            Center(
              child: controller.text.isEmpty
                  ? const Text('No item selected')
                  : Text('Selected item: ${controller.value.text}'),
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video
No response
Logs
Logs
Failed assertion: line 1323 pos 7: 'tileWidth != trailingSize.width || tileWidth == 0.0'

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

The relevant error-causing widget was:
  ListTile
  ListTile:file:///Users/dalenjohnson/Developer/Projects/Flutter%20Empty/search_anchor_list_title_trailing_test/lib/main.dart:45:28

When the exception was thrown, this was the stack:
#2      _RenderListTile.performLayout (package:flutter/src/material/list_tile.dart:1323:7)
list_tile.dart:1323
#3      RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#4      RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#5      RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:238:12)
shifted_box.dart:238
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#7      RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#8      RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:238:12)
shifted_box.dart:238
#9      RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#10     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#13     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#14     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#15     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#16     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#17     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#19     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#20     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#22     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#23     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#24     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#25     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#27     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#28     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#29     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#30     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#31     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#32     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:213:28)
sliver_list.dart:213
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#34     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
sliver_padding.dart:139
#35     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361:11)
sliver_padding.dart:361
#36     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#37     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:534:13)
viewport.dart:534
#38     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1511:12)
viewport.dart:1511
#39     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1420:20)
viewport.dart:1420
#40     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#41     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#42     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#44     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#45     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#46     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#47     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#50     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#51     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#52     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#53     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#54     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#56     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#58     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#59     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#60     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#61     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#62     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#63     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
layout_helper.dart:52
#64     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:868:45)
flex.dart:868
#65     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:903:32)
flex.dart:903
#66     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#67     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#68     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#69     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#70     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#71     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#72     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#73     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#74     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#75     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:554:11)
custom_paint.dart:554
#76     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#77     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#78     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#79     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1449:11)
proxy_box.dart:1449
#80     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#81     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#82     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:297:14)
proxy_box.dart:297
#83     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#84     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#85     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)
proxy_box.dart:122
#86     RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)
object.dart:2395
#87     RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)
box.dart:2386
#88     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:438:14)
shifted_box.dart:438
#89     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2234:7)
object.dart:2234
#90     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1016:18)
object.dart:1016
#91     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:492:19)
binding.dart:492
#92     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:905:13)
binding.dart:905
#93     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)
binding.dart:358
#94     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)
binding.dart:1284
#95     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9)
binding.dart:1214
#96     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5)
binding.dart:1072
#97     _invoke (dart:ui/hooks.dart:142:13)
hooks.dart:142
#98     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)
platform_dispatcher.dart:359
#99     _drawFrame (dart:ui/hooks.dart:112:31)
hooks.dart:112
(elided 2 frames from class _AssertionError)
(elided:2

The following RenderObject was being processed when the exception was fired: _RenderListTile#bdbd6 relayoutBoundary=up12 NEEDS-PAINT:
  creator: _ListTile ← IconButtonTheme ← IconTheme ← Builder ← MediaQuery ← Padding ← SafeArea ←
    Builder ← Padding-[GlobalKey#6ade2] ← Ink ← Semantics ← Listener ← ⋯
  parentData: offset=Offset(16.0, 0.0) (can use size)
  constraints: BoxConstraints(w=21.6, 0.0<=h<=Infinity)
  size: Size(24.0, 136.0)
This RenderObject had the following descendants (showing up to depth 5):
    title: RenderParagraph#83259 relayoutBoundary=up13 NEEDS-PAINT
      text: TextSpan
    trailing: RenderSemanticsAnnotations#b31f9 relayoutBoundary=up13 NEEDS-PAINT
      child: RenderExcludeSemantics#0dcba relayoutBoundary=up14 NEEDS-PAINT
        child: RenderConstrainedBox#8b00f relayoutBoundary=up15 NEEDS-PAINT
          child: RenderPositionedBox#651a1 NEEDS-PAINT
            child: RenderParagraph#9243c relayoutBoundary=up1 NEEDS-PAINT
════════════════════════════════════════════════════════════════════════════════════════════════════

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.0, on macOS 13.3.1 22E772610a darwin-arm64, locale en-US)
    • Flutter version 3.10.0 on channel stable at /Users/dalenjohnson/Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/dalenjohnson/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 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

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

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

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

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

[✓] Connected device (3 available)
    • iPhone 14 Pro Max (mobile) • 9B35DE3E-8844-43EA-ABC2-D440C9A957EE • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 13.3.1 22E772610a darwin-arm64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 113.0.5672.92

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

• No issues found!

More Info:
This isn't just from the suggestionsBuilder as it also happens when you provide your own viewBuilder to the SearchAnchor. Also, wrapping the trailing widget in a SizedBox or Container widget with a defined width does not solve the issue.
SearchAnchor with viewBuilder Code
            SearchAnchor(
              searchController: controller,
              builder: (BuildContext context, SearchController controller) {
                return IconButton(
                  icon: const Icon(Icons.search),
                  onPressed: () {
                    controller.openView();
                  },
                );
              },
              suggestionsBuilder:
                  (BuildContext context, SearchController controller) {
                return [];
              },
              viewBuilder: (_) {
                final list = ['item 1', 'item 2', 'item 3'];
                return ListView.builder(
                  itemCount: list.length,
                  itemBuilder: (context, index) => ListTile(
                    title: Text(list[index]),
                    trailing: const Icon(Icons.chevron_right),
                    onTap: () {
                      setState(() {
                        controller.closeView(list[index]);
                      });
                    },
                  ),
                );
              },
            ),

Thanks for the report. Seeing the same behavior as reported. Steps to replicate the error is to tap on search button and then select any item from the list which leads to the error in console.  Verified on both latest versions and also tried using as suggested in the error message to Trailing widget consumes entire tile width. Please use a sized widget, or consider replacing ListTile with a custom widget, but getting the same error.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.10.0, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.10.0 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.11.0-5.0.pre.48, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.11.0-5.0.pre.48 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5e459380c1 (2 hours ago), 2023-05-11 22:53:01 -0400
    • Engine revision ef5c349f04
    • Dart version 3.1.0 (build 3.1.0-94.0.dev)
    • DevTools version 2.23.1
    • 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 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

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

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

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

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

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

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.


Implement Forum designs

Svetlana has now designed the Forum page. Please update the site accordingly.

[ ] refactor ui
[ ] refactor api


uploads with spaces in saved filenames breaks link formatting

if i drag "curious george.jpg" into SB and save it as such, the file is uploaded correctly, but the link refuses to format properly.
i believe this is because of the spaces in the filename, because if i rename the file and update the link, the image renders / link works.
I see a stacktrace that looks like this pop up when I try to click on a link to a filename with a space in it:
util.ts:5 Error: Cannot read properties of undefined (reading 'children')
Stack trace: TypeError: Cannot read properties of undefined (reading 'children')
    at te (eval at <anonymous> (worker.js:1:1313), <anonymous>:3:3593)
    at g (eval at <anonymous> (worker.js:1:1313), <anonymous>:3:3913)
    at async worker.js:1:1620
    at Z0.onMessage (sandbox.ts:121:15)
    at webworker_sandbox.ts:17:20
    at $l (util.ts:2:3)
    at Worker.<anonymous> (webworker_sandbox.ts:16:7)

Right, the SB (rather: Code Mirror) markdown parser doesn't allow spaces in the path name. Fixed to URI Encode the path for the inserted ![](...) or [](...) links when uploading a new attachment.


Why doesn't registrator respect the name given to services

I have noticed when i run services with docker, i provide them with names and yet when they register with consul, they have a different name
Why does registrator not respect the names of containers/services?

What version of docker are you running?
latest/1.12.1

What version of registrator are you running?
latest

Did you build a custom version of registrator? If so, what is that image? no

What is the exact command you are running registrator with?

docker run -d --restart=always \
    --name=registrator \
    --net=host \
    --volume=/var/run/docker.sock:/tmp/docker.sock \
    gliderlabs/registrator:latest \
      consul://localhost:8500

Which environment variables are you setting when running the containers?

@isavcic
There are many services running that i gave specific names too but registrator registers them with consul with a totally different name than i gave
one example is consul-agent, the name of the serviceis consul-agent but registrator had it as consul-53
docker run -d --restart=always \
--name consul-agent --net host \
-v /opt/consul:/consul/data \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/consul/:/consul/config/ \
-h "microservices-agent-$(hostname)" \
-p 53:53/udp -p 53:53 \
consul agent -retry-join=<IP_ADDRESS> -retry-join=<IP_ADDRESS> -retry-join=<IP_ADDRESS> \
-advertise <IP_ADDRESS> -datacenter us-pa-00

Try _ instead of -. That works in my case. The number 53 is the public port. If you use multiple ports, a service is registered for each port in Consul. I do not know what the advantage is, I do not like it.

@aboettger-tuhh
Use underscore _ to replace dash - where exactly?

--name consul_agent instead of --name consul-agent

@aboettger-tuhh
So that means the name on consul will be consul_agent right?
I mean its better than what it currently is at least but will be good to be able to name things with - as well

So that means the name on consul will be consul_agent right?
right :)


Some Maven-related improvements

Please have a look at the individual commit messages for the details.

Merging despite the unrelated ClearlyDefined timeouts.


[2.7] Requests to /v1/endpoints return 500 and cause the cluster to enter 'updating' state when monitoring is installed

backport of #43030

Duplicate of https://github.com/rancher/rancher/issues/44371


Sample web UI: request snippets to display cross-references properly [phab:D1949]

Created by schroederc at 2017-09-26 20:26:56:

fromberger accepted this revision at 2017-09-26 20:29:08

schroederc closed via commit 0636db85725249d83cff6d8bc0fb0b4d21078825 at 2017-09-26 20:29:31


set_kind("object") interfers with before_buildcmd_file resulting in undefined references

Xmake Version
2.9.4
Operating System Version and Architecture
Debian GNU/Linux trixie/sid, Windows 11 Home
Describe Bug
using a rule with before_buildcmd_file inside a target with set_kind("object") that has another target with set_kind("object") as dependency, as well as using the rule in the main target results in the generated object file not being linked.
I have confirmed that this affects (as used in my example) protobuf and capnproto, but did not test any other code generators
Expected Behavior
The object file should be added to the internal lists of object files in before_buildcmd_file, but instead before_buildcmd_file is executed after the object files have already been collected
Project Configuration
In the attached zip, the xmake.lua has a line add_deps("empty") -- Comment out this line. Commenting out this line results in successful compilation, not commenting out this line results in missing symbols
For demonstration purposes I have used the builtin protobuf module, but the same happens with capnproto. I have not tested it with completely custom rules
add_rules("mode.debug", "mode.release")
add_requires("protobuf-cpp")
set_languages("c++latest")

target("empty")
    set_kind("object")

target("a")
    set_kind("object")
    add_deps("empty") -- Comment out this line for successful compilation
    add_packages("protobuf-cpp")
    add_rules("protobuf.cpp")
    add_files("src/a.cpp")
    add_files("src/a.proto", {proto_rootdir = "src"})

target("b")
    set_kind("binary")
    add_deps("a")
    add_packages("protobuf-cpp")
    add_rules("protobuf.cpp")
    add_files("src/b.cpp")
    add_files("src/b.proto", {proto_rootdir = "src"})

Of course this happens also if empty has source files, but they aren't necessary for this issue to occur
Additional Information and Error Logs
xmake -vD does not contain anything related to this issue
I have tested it as well on a freshly installed windows 11 instance, but the appended zip should reproduce the error on all platforms
This may have connections to #2476, but seems different as this only appears with dependencies of kind "object".

try this patch again. https://github.com/xmake-io/xmake/pull/5437
xmake update -s github:xmake-io/xmake#protobuf

The patch fixes it for protobuf and after porting it my larger project using capnproto also works (using my other capnproto WIP changes I have not opened a PR for yet). Thank you!
But a quick search suggests that the identical pattern of table.insert(target:objectfiles(), objectfile) in *_buildcmd_file also appears in the rules for asn1c, qt/qrc, lex_yacc, qt/moc, ispc, capnproto, verilator, vala, cppfront and qt/qmltyperegistrar and most importantly the example in the docs. (this does not include the rules I don't understand).

The patch fixes it for protobuf and after porting it my larger project with capnproto also works (using my other capnproto WIP changes I have not opened a PR for yet). Thank you! But a quick search suggests that the identical pattern of in also appears in the rules for , , , , , , , , and and most importantly the example in the docs. (this does not include the rules I don't understand).table.insert(target:objectfiles(), objectfile)``*_buildcmd_file``asn1c``qt/qrc``lex_yacc``qt/moc``ispc``capnproto``verilator``vala``cppfront``qt/qmltyperegistrar

Yes, but each change requires more testing, so I don't consider to modify them all for now because I can't guarantee that they will work well.


Updating Billing Library of the Glassfy Android SDK

This issue is related to this capacitor-plugin-glassfy issue.
The current used Billing Library in your Android SDK does use the Version 4. This version is outdated and cannot be used in a couple of months. It would be nice if you could update the billing library in your SDK because this is a very serious issue.
The related line is here
This issue should also fix the other issue as you are using this sdk for your capacitor plugin

This issue is urgent! No Apps will be able to be deployed to Google Play after September 2023.
All Developers and companies which are using Glassfy will need some time to update their Apps. So please update the Billing library as soon as possible.

We just released the Android SDK 1.5.0 that Support Google Billing 5.0
The current version still require the product to be backward compatible in the Play Store but it is fully compliant with Google requirements.
No changes are required to apps using Glassfy: just link the new SDK.
In the coming weeks we will release a new update that fully support the base plan and the offering from the play store account.


spl-token-cli: transfer requires knowledge of sender token account address

The ATA model is designed such that users only need to know their main wallet address (system account). But in order to perform a transfer using the spl-token cli, they must determine their actual token account address: SENDER_TOKEN_ACCOUNT_ADDRESS
$ spl-token transfer -h
spl-token-transfer
Transfer tokens between accounts

USAGE:
    spl-token transfer [FLAGS] [OPTIONS] <SENDER_TOKEN_ACCOUNT_ADDRESS> <TOKEN_AMOUNT> <RECIPIENT_ADDRESS or RECIPIENT_TOKEN_ACCOUNT_ADDRESS>
    ...
ARGS:
    <SENDER_TOKEN_ACCOUNT_ADDRESS>                            The token account address of the sender
    <TOKEN_AMOUNT>                                            Amount to send, in tokens; accepts keyword ALL
    <RECIPIENT_ADDRESS or RECIPIENT_TOKEN_ACCOUNT_ADDRESS>
            If a token account address is provided, use it as the recipient. Otherwise assume the recipient address is a
            user wallet and transfer to the associated token account

For standard usage, spl-token transfer should probably take a mint address instead, and attempt to transfer from the owner's ATA for that mint. Transferring from a specific address could be enabled using named parameters.

@mvines wdyt?

This sgtm!  Are we aware of any exchange/wallet integrations that may have wrapped CLI for SPL Token support?

Yep, this sounds great.   I'll place a wager that nobody as wrapped the CLI yet, and if I lose that that bet then those that did wrap the CLI probably did it wrong and should fix the integration to be ATA compliant anyway

There are some other subcommands that could use sprucing up in this direction too.
Should take mint:

burn
close
balance / account-info
delegate / revoke

Mint is known, so doesn't need to be passed in:

wrap - currently using a throwaway keypair instead of ATA
unwrap

Should take main wallet address?

freeze/thaw - or maybe we want to require freeze authorities to determine the explicit token account to take these actions; either way, I'll kick this one down the road a bit

* freeze/thaw - or maybe we want to require freeze authorities to determine the explicit token account to take these actions; either way, I'll kick this one down the road a bit

I think we may want the same explicitness for burn and maybe delegate/revoke.  Mainly to prevent footguns.  Thoughts?

I think we may want the same explicitness for burn and maybe delegate/revoke. Mainly to prevent footguns. Thoughts?

Fair point. I think I agree. I'll percolate on how that feels from an interface perspective as I start to work on the others.

The specific issue described has been fixed.
For now, burn, delegate/revoke, and freeze/thaw still require specific token account addresses as footgun prevention. Let's open a new issue to discuss if we want to make these subcommands more "default ATA" in the guture.


Manual R 4.4, UCRT migrate

Hi! This is the friendly automated conda-forge-webservice.
I've started rerendering the recipe as instructed in #2.
If I find any needed changes to the recipe, I'll push them to this PR shortly. Thank you for waiting!
Here's a checklist to do before merging.

[x] Bump the build number if needed

Fixes #2

@conda-forge-admin please rerender


Can not reproduce the result reported

Hi, thanks for your amazing work!
I want to reproduce the result on swin-L you reported (i.e., 91.35%). However, whatever I used the command python main.py --train --model swin or using your pretrained weight provided directly, I cannot get the desired result. The training approach got 90.4% and your pretrained weight got 90.5%. Can you double-check the reproduction?

Hi Louie Shao,
For training, did you train for the full 30 epochs?
And for the pretrainined swin-L model you would want to use the command to evaluate it on the validation set:
python main.py --evaluate https://github.com/ehuynh1106/TinyImageNet-Transformers/releases/download/weights/swin_large_384.pth --model swin
or if you downloaded the model you can specify the path to the model instead of a URL.

Hi Louie Shao,
For training, did you train for the full 30 epochs?

Yes, I trained for 30 epochs, remaining all the settings the same.

And for the pretrainined swin-L model you would want to use this command to evaluate it on the validation set: python main.py --evaluate https://github.com/ehuynh1106/TinyImageNet-Transformers/releases/download/weights/swin_large_384.pth --model swin
or if you downloaded the model you can specify the path to the model instead of a URL.

I checked the download link, nothing wrong here.

I checked the download link, nothing wrong here.
But I only got, 2022-09-01 04:41:15,320 [INFO] Top 1 Validation Accuracy: 90.5 Top 5 Validation Accuracy: 97.86

For evaluating the pre-trained weights I provide, I cloned a new copy of the repo and evaluated the model and got the expected result. Is your batch size 32? When it comes to evaluating the only thing that can differ (besides the weights) is batch size. Batch size shouldn't affect the model because Swin uses LayerNorm, not BatchNorm, but maybe there is some unintended behavior there.

Yes, I trained for 30 epochs, remaining all the settings the same.

For training, the best model is not after the 30th epoch. It is around the 25th-27th epoch that the model reaches the 91.35% accuracy. That being said, the model should be able to get at least 91.0% accuracy.
I will re-run the training to check the results it will take me 1-2 days. The only thing I can think of in the meantime is to double check your training settings:

Hi Louie,
An update is that I can't reproduce the results.
My intuition says that something changed in the dependencies of this repo. When I first trained the models, I did so on timm version 0.6.1 and now that version is no longer available.
With the current versions specified in requirements.txt I only achieved 91.21%. I'm trying different versions of timm, so far the best result I've gotten is 91.31% (timm==0.5.4).

Final update: I can't reproduce the results either. I tried cloning the repo's first commit just in case I accidentally changed some of the training procedure but that didn't work either. All my attempts reach ~91.2% accuracy. Maybe it was an especially lucky seed, I'm not sure what is causing the difference. Sorry I was unable to resolve the issue.
That being said, the uploaded weights do achieve a 91.35% accuracy.


fix alignment issue on broken site button

Task/Issue URL: https://app.asana.com/0/414730916066338/1202540366718207/f
Description
Fixes button alignment issue on broken site report screen.
Steps to test this PR

go to broken site report screen
ensure button alignment is fixed

UI changes

Before
After

Approved

Task/Issue URL: https://app.asana.com/0/414730916066338/1202540366718207/f
Description
Fixes button alignment issue on broken site report screen.
Steps to test this PR

go to broken site report screen
ensure button alignment is fixed


Unable to find upnp device

I tried running go2tv on an arm64 Linux device
Compilation was successful, but no upnp devices could be found during program execution
Run go2tv - l using cli
The error is as follows:
Encountered error(s): checkflags error: checkTflag service loading error: loadSSDPservices: No available Media Renderers

I have the same problem, this is the only line printed when running go2tv -l before it exists.
In my case I expected an LG webOS TV to appear as media renderer.
I had some success with the GUI mode, however. I was able to start it twice, first time I couldn't seek, but on the second try it was very stable!
After that, I mostly cant see the TV in the "Select Device" list. Sometimes it appears for a few seconds, but then it disappears.
I'm running go2tv on Linux, specifically openSUSE Leap 15.4.
While I was writing this I kept the GUI open, and the TV has reappeared in the list, and now it stayed there for 10-20 seconds. After that it disappeared multi times but reappeared soon, but after a few such cycles its not visible again. The TV was still on, not in standby.

Hello,
So this seems to be more of network / device related issue. I also have a device on my network that behaves exactly the same way and I haven't yet identified why it happens.
I could try to workaround it and and extra checks during the device list refreshing in the GUI mode and give the perception that the device is always detected, but that would not work in the CLI mode where the device discovery is run adhoc and it's up to the device to properly broadcast its presence on a timely manner to the rest of the network.

Pushed this commit https://github.com/alexballas/go2tv/commit/122e2b480ec4a9c712c0e66a3294f86f6532e100 in the develop branch that should improve things in the GUI mode

@kero990
In my case it was a device issue. I am running nixos on my device where firewall is enabled by default. Disabling it fixed this issue for me.

UPNP/SSDP is notorious for causing problems with stateful firewalls (such as the default one in NixOS) because the IP address which responds to your query doesn't match the IP address to which you send a query. the discovery process has your device sending to the broadcast address, like <IP_ADDRESS>, and then you might get responses from <IP_ADDRESS>, <IP_ADDRESS>, etc: to your firewall that looks like unsolicited traffic.
but notably, despite the IP addresses not matching, the ports do match. if you issue the query from port 1901, the responses will always arrive back at port 1901. currently go2tv issues its SSDP queries from an unspecified (ephemeral) port. but if go2tv were instead to issue its queries from a known, fixed port, then you could whitelist that port in your firewall. for example:
diff --git a/devices/devices.go b/devices/devices.go
index cf97633..4072639 100644
--- a/devices/devices.go
+++ b/devices/devices.go
@@ -21,7 +21,7 @@ var (
 func LoadSSDPservices(delay int) (map[string]string, error) {
        // Reset device list every time we call this.
        urlList := make(map[string]string)
-       list, err := ssdp.Search(ssdp.All, delay, "")
+       list, err := ssdp.Search(ssdp.All, delay, "<IP_ADDRESS>:1901")
        if err != nil {
                return nil, fmt.Errorf("LoadSSDPservices search error: %w", err)
        }

then, for Nix users, go2tv will work with the firewall configured as such:
  # to discover local UPNP endpoints:
  networking.firewall.allowedUDPPorts = [ 1901 ];
  # to serve local files:
  networking.firewall.allowedTCPPorts = [ 3500 ];

this type of firewall issue seems pretty common: @alexballas how would you feel about exposing some option (CLI arg, environment variable, ...) to control the SSDP port bind so that we can work around the firewall issues w/o patching? a different solution which avoids exposing new options is to let the OS choose the port as it does now, but narrow the range from which it's allocated (e.g. 47000 - 47100). this seems to be what similar projects (e.g. catt) do, and the user just opens the full range of ports.
if either of these options sound OK i'd be happy to make a PR for it.

@uninsane Apologies for the delay; this month has been a bit slow for me in terms of development.
Thanks for the great feedback.
In general and as you might have seen from the app itself, I try to keep things as easy as possible for the users. Adding an extra option there in the CLI and the GUI settings tab would probably confuse the less techie people.
I like the idea of having a fixed range better.
We can then document it in the README file as a workaround for the stateful firewalls.

@alexballas i looked deeper into the solution i proposed. it's doable, but IMO not pretty. Linux offers no way to say "give me a socket bound to any port between 47000 and 47100". instead, go2tv would have to randomly pick a number between 47000-47100, try binding to it, and if we fail (because something else was using the random port we chose), try again -- in a loop until we succeed.
however, i'm using this solution, which fixes the issue by configuring the firewall to understand SSDP, no code changes necessary.

@uninsane I think it's fine. I do something similar here for the webserver port https://github.com/alexballas/go2tv/blob/devel/soapcalls/utils/iptools.go#L50-L65 I'm not a big fan of how implemented it with "goto" but get the idea.
In general I'm not against the change but if there is an indeed a solid workaround on the network / firewall side, I would leave it as is.

Pushed this commit 122e2b4 in the develop branch that should improve things in the GUI mode

These improvements are now part of the 1.16.0 release. Closing

I think there should be easier way of doing it, I have to disable my firewall again, just because I'm not techie enough to configure it in iptables (and I don't want to paste someone's commands without even understanding what they do). What's even the point of using "ephemeral" port? Using specified range would be just enough for easy noob configuration in firewall GUI.

Re-opening to review the static port proposal for the discovery part

If anyone is interested to test, the devel branch now has the following changes
// LoadSSDPservices returns a map with all the devices that support the
// AVTransport service.
func LoadSSDPservices(delay int) (map[string]string, error) {
	// Reset device list every time we call this.
	urlList := make(map[string]string)
-       list, err := ssdp.Search(ssdp.All, delay, "")
+       list, err := ssdp.Search(ssdp.All, delay, "<IP_ADDRESS>:1900")


How to specify dynamic fileName and partition values

When partitioning files in Azure Data Factory many people need a dynamic naming convention that will iterate over various files of different names, version them and add an extension like .csv.  The data flow expression language does not include dataset parameters to use from the expression builder.  The documentation is silent on this common use case.  How can one accomplish this when the source is a SQL server, multiple tables will be iterated over with a lookup activity and then they will be partitioned into sub-tables in the data lake sink?  For example Customer.csv table in the source will become Customer-1, Customer-2, Customer-3 in the sink.  Using Customer[n].csv is not viable because the name is not dynamic only the versioning is.

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

ID: b540c63f-66b3-d07d-b3a8-284de931176d
Version Independent ID: 4002e018-4320-c978-061d-080d89761c8e
Content: Incrementally copy multiple tables using Azure portal - Azure Data Factory
Content Source: articles/data-factory/tutorial-incremental-copy-multiple-tables-portal.md
Service: data-factory
GitHub Login: @dearandyxu
Microsoft Alias: yexu

Hello @afelthe
Could you please let us know the exact MS Document link to which you have referred? I need to add the metadata so that we triage this issue as soon as possible. Thanks for your understanding.

Hello.  The doc below discusses iterating through a SQL server and grabbing all the tables.  In the case of medium to large tables, partitioning needs to occur for the ADF pipeline to work.  However, there is no instruction on how to dynamically name the files that are output from partitioning.  So, I am seeking instructions on creating an expression and/or parameter that will give me a sink dataset that is the name of the file and iterate through the partitions.  Something like '@dataset().FileName[n].csv' although this does not work.  The [n] is enumerating the partitions from a single large CSV.
https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-multiple-tables-portal#create-linked-services

Sorry for the delay, @afelthe .  I have forwarded this feedback to the internal team for further review.
@kromerm Could you please have a look at this ask -- thank you.

Adding dynamic content to the Sink properties is on the roadmap. Will add to doc.

#please-close


Signup page: The chat button placeholder has margin-left, which seems odd

It's easier to show in a video I think, but there should not be that much space, I think:
https://user-images.githubusercontent.com/44294954/147493000-4c7eb637-4cc4-45c6-83c5-2e791dea4d44.mp4

Good catch, have seen this one as well but it hasn't annoyed me enough to file it because I kept telling myself I'd fix it later lol


graphbin_SPAdes.py path and ModuleNotFoundError: No module named 'igraph'

Hi, I recently heard about your tool and am hoping it can improve some of my binning results.
I cloned the version on github today (July 17 2020) and installed following the recommendations on the wiki.  I have encountered a couple of errors that may be easy to resolve but wanted to share.
1 - I think the path to the assembler-specific scripts may be missing a forward slash. i got the following Errno 2:
python ${path}/apps/GraphBin/graphbin.py --assembler spades --graph assembly_graph_with_scaffolds.gfa --paths contigs.paths --binned ../initial_contig_bins.csv --output ../../gb_bins/
python: can't open file '${path}/apps/GraphBinsrc/graphbin_SPAdes.py': [Errno 2] No such file or directory
Looking in the graphbin.py script, I added a forward slash in the SPAdes section so it points to: ${path}/apps/GraphBin/src/graphbin_SPAdes.py
which worked.
2 - then I got a missing module error:
python ${path}//apps/GraphBin/graphbin.py --assembler spades --graph assembly_graph_with_scaffolds.gfa --paths contigs.paths --binned ../initial_contig_bins.csv --output ../../gb_bins/
Traceback (most recent call last):
File "${path}//apps/GraphBin/src/graphbin_SPAdes.py", line 24, in
from igraph import *
ModuleNotFoundError: No module named 'igraph'
I'm working on a cluster and was able to install igraph locally and get GraphBin to run but wanted to share this in case others have these issues.

conda install python-igraph

@michaelwoodworth Thanks for your query. We have updated the code with the help of @alienzj that makes installation much easier for everybody including non-computer scientists.
With referencing to your cluster environment, one solution would be to install graphbin as user with pip3 install . --user. This is possible with our new release. However, if you still cannot install I have 2 workarounds that we use in our cluster NCI Australia.

Using conda environments.

This way you can install conda to a location on the cluster that you have permission and initialize in bash_rc. Go to Anaconda Website and download the installer. Then run sh ANACONDA_INSTALLER.sh. Afterwards, you can use conda command from your login node and install dependencies and run GraphBin code without having to run pip install.

Using Linux modules and a python path in your project space in the cluster.

However, using conda might not help you in a cluster due to inode limitations. So you can follow the following steps. Assuming you have Linux modules in your cluster.
module load python/3.7
pip install -v --no-binary :all: --prefix=/short/your/directory/name .

Most likely when you import the python module pip3 will be aliased to pip in the cluster. This command will install graphbin in path /short/your/directory/name. Then in your job script please add the following.
Please run module avail python to ensure you have a python 3+ version in the cluster to load.
Please let us know if there are more issues popping. We are happy to help always.
module load python/3.7
export PYTHONPATH=$PYTHONPATH:/short/your/directory/name/lib/python3.7/site-packages
export PATH=$PATH:/short/your/directory/name/bin

Then you'll have access to graphbin program. This could be the most desired option considering the nature of file systems in clusters and inode limitation. I hope this helps you with your research work! Cheers. 👍

Closing this issue after improving the code.


Quasar or REPL is adding .0 to integer values from MongoDB

Using Quasar 14.1.2, not the latest but relatively new.
MongoDB 3.2.9

Not sure if this is a REPL issue or Quasar issue, it may also affect other datasources.  Hopefully my problem is self explanatory.  See the following output from MongoDB shell:
host9772250243(mongod-3.2.9)[PRIMARY:rs] demo4> db.num.find()
{
  "_id": ObjectId("588f47f52d43fba47ec2ad4c"),
  "intnum": 123,
  "stringnum": "456"
}
{
  "_id": ObjectId("588f47ff2d43fba47ec2ad4d"),
  "intnum": 789,
  "stringnum": "999"
}
Fetched 2 record(s) in 1ms

Now see the output from Quasar:
💪 $ select * from num
MongoDB:
db.num.find().limit(11);

Query time: 0.3s
 intnum | stringnum |
--------|-----------|
  123.0 | 456       |
  789.0 | 999       |

Is this simply the way the REPL displays an integer value to distinguish itself from a String value?  Without the .0 at the end, it would appear as the same exact value, regardless of data type.

So, the REPL distinguishes numbers by right-aligning them – you can see that stringnum is left-aligned. Also, if you wanted to be sure about the types, you could use format = precise, then you would see JSON instead of a pretty-printed table.
I’m guessing the problem here is MongoDB. We add a .0 to integer-valued decimal numbers to distinguish them from actual integers. My guess is that those values are stored in the collection as decimal values, but the Mongo console doesn’t do anything to distinguish them from integers syntactically. We make the distinction explicit.
tl;dr: I think those numbers are stored as decimals in the collection, and we make that clear where the Mongo console doesn’t. To fix it, wrap the values like NumberInt(123) (or NumberLong) when inserting.

Since these numbers are stored as floating-point in Mongo, this is behaving as expected. See the previous comments for ways to get the desired behavior.


UI looks different on IE

Have you read the FAQ and checked for duplicate open issues?:
Yes
What version of Shaka Player are you using?:
master
Can you reproduce the issue with our latest release version?:
Yes
Can you reproduce the issue with the latest code from master?:
Yes
Are you using the demo app or your own custom app?:
Demo
If custom app, can you reproduce the issue using our demo app?:
What browser and OS are you using?:
IE11 on Windows 10
What are the manifest and license server URIs?:
Any asset (but tested with first Angel One (multicodec, multilingual)).
What did you do?
Show controls.  May need to run shakaDemo.localPlayer_.onBuffering_(true) to show buffering spinner.
What did you expect to happen?
Controls should look the same as other browsers.
What actually happened?

Seek bar and volume bar have a small height. (see also #1703)
Play/pause button is smaller than other browsers.
Buffer spinner appears outside pause circle and is impossible to see on black video.
Buffer spinner isn't animating the same (it just spins, doesn't change size).
Volume icon appears slightly clipped on the right side.
Volume bar is black (instead of white) when full screen.

The seek bar issue is covered in #1703.  The issues with the volume bar (clipped, disappears in fullscreen) are actually the same issue (range input styles are broken on IE).
The play/pause button resizing is broken on IE, but I think we should do away with it anyway.  The button size should be pure CSS in my opinion.
Since the resizing is broken on IE, this leads to the spinner being outside the button.  If you disable resizing of the button and spinner, you can see the same behavior on Chrome.  So we should just make the button's default size in CSS a tad bigger.
The CSS animation for the stroke on the SVG circle doesn't work on IE, and it sadly never will.  IE doesn't support animating that attribute.
Consolidated to-do list for this issue:

increase default play button sizing to encompass the spinner
fix IE-specific range input styling


Setting a terminal by workspace settings is broken! User settings are not sufficient!

VSCode Version: 1.9.0
OS Version: Windows 10

Steps to Reproduce:

Upgrade to VSCode 1.9.0
Open Terminal

VSCode complains that my custom terminal settings in the workspace configuration are wrong after the update. It does not respect these anymore.
I need per project/workspace configuration because i use remote ssh terminals to work on the dev server. The dev server is different in every workspace.
This was perfectly working:
    "terminal.integrated.shell.windows": "ssh.exe",
    "terminal.integrated.shellArgs.windows": [
<EMAIL_ADDRESS>        "-t",
        "cd /data/project; bash --login"
    ],

Please tell me how i can downgrade to the working version until this is fixed.

I could easily downgrade by uninstalling and installing the previous version via chocolately:
https://chocolatey.org/packages/VisualStudioCode/1.8.1

@kieferrm thoughts?

I agree, we need a way to specify these sort of settings per workspace. I work across different projects where while the bulk use PowerShell some others use SQL Command line and Bash etc

I've been reading the release notes and there seems to be language specific settings now (or maybe I'm just catching up). This might help in some circumstance but not in all cases like mentioned in other comments

Maybe we are being too strict, this use case does seem particularly useful. How about we take another approach to the problem while still protecting users from running malicious executables?
Consider the following scenario:

Download a git repo with terminal.integrated.shell.windows set to "foo" and terminal.integrated.shellArgs.windows set to "bar"
Open the git repo in VS Code
Press ctrl+`, at this moment the following things happen;

the terminal opens with the user setting for terminal.integrated.shell.windows
a message box appears explaining that the workspace sets terminal.integrated.shell.windows and asks if the user wants to allow it or ignore it
a message box appears explaining that the workspace sets terminal.integrated.shellArgs.windows and asks if the user wants to allow it or ignore it

For example:

The actions on the message box could be [Yes] and [Ignore] (or something more verbose). When [Yes] if selected, the option would be saved in local storage and not bug the user again. When [Ignore] is selected, the message box will go away from the rest of the session, displaying again the next time the workspace is loaded.
Something like this would prevent anything from running without an explicit opt in from the user.

I understand the concern with targeting malicious executables in git repo.  Hadn't thought about that before.
I do like the proposal, though.  As long as the action is remembered across sessions, that would seem to address most needs.  How about adding a [Remove] action as well that would remove the setting from the workspace settings ... might be useful for somebody who doesn't know where those settings are?

I think the shell name and shell executable path can be separate settings. And executable path settings will not be allowed in project/workspace settings. The names can be- "BASH", "CMD", "Powershell", "SQL", "Custom" etc. Then a project will be able to set the name of the intended shell but not the path.

The usable thing is the whole use case, not just a part of it:
Open SSH AND Open working directory
The settings as in 1.8.1 are flexible and this way good for every situation.
The proposed solution by @Tyriar is good, because flexibility is preserved.

@Tyriar your proposed solution makes sense that is applicable to all platforms.

This is what you should see in tomorrow's Insiders build:

Thank you!


Slack notification issue

Jenkins and plugins versions report

Environment

Paste the output here

What Operating System are you using (both controller, and any agents involved in the problem)?
Ubuntu 22
Reproduction steps
1- connect to jenkins plugin settings
2- Search for Global Slack notifier settings
Expected Results
There are missing fields of this plugin
Actual Results
no Global Slack notifier settings
Anything else?
no
Are you interested in contributing a fix?
no

I am trying to install slack notifications but its not installing please can you guys help?


Easier out of the box handling of repeated and nested structs.

Hi,
I was wondering, I want to use protocol buffers in C on desktop Linux, (for unrelated reasons we can't use full C++ unfortunately), and nanopb works pretty nice. However, the fact that we have a lot of message types in our projects, repeated fields, and some nested stuff (up to 3 level, so not crazy), makes the code unreasonably noisy, in terms of writing custom encoder and decoders for repeated fields and sub-messages.
It would be really awesome if there was a switch to nanopb generator, that provides default encoder and decoders for everything, and uses standard malloc/free/realloc if needed, and puts the pointers (and length for arrays) in the generated structs directly.
This would remove SO MUCH boilerplate, and I think would be great for prototyping too.
If the design can be made so it also supports arena style allocation, that would be great, but optional.

Well.. I hope I'm not totally confused, but this sounds a lot like of two existing features:

Static allocation: specify max_count, and the struct will have a statically allocated array of up to the maximum size.
Dynamic allocation: specify type = FT_POINTER and enable PB_ENABLE_MALLOC and memory will be allocated using pb_realloc(), which can be overridden to use some custom allocator method.

The documentation is here: https://jpa.kapsi.fi/nanopb/docs/concepts.html#data-types
and perhaps these test cases may help also:
https://github.com/nanopb/nanopb/blob/master/tests/common/person.proto
https://github.com/nanopb/nanopb/blob/master/tests/mem_release/mem_release.proto

Ooo. I knew of PB_ENABLE_MALLOC (I already use it).
I didn't know of type = FT_POINTER.
Checking now.

@PetteriAimonen This totally works!
I even found a shortcut:  nanopb_generator.py -s type:FT_POINTER my.proto, to do it automatically to all repeated fields, nested stuff, and strings.
Nice.
Last question.
If I have a message that i want to encode, who takes responsibility of pointers?
I.e. can I do safely something like this:
   Message m = {0};
   int value = 42;
   m.value = &42;

   encode(...);

   pb_release(Message_fields, &m);

   ?

Probably a bad idea?

Hmm. Maybe if I use proto2, instead of proto3, it would be easier...

pb_release() assumes that pointers can be released with pb_free(). But one can use custom pointers safely when encoding, just don't call pb_release() or set the custom pointers to NULL before doing so.
And yeah, the distinction between has_value and implicit presence is a proto2 vs. proto3 thing. Though proto3 now also has an experimental feature to have optional specifier (issue #591).
I don't quite see the point of making all fields FT_POINTER. Instead, I would keep them at default (static allocation), and use FT_POINTER only for such repeated fields where you don't know a reasonable maximum size.

@PetteriAimonen I have a proto file with about 200 fields. I wish I would like to make it easy, and not annotate every field.
Maybe there is already a way to do so for string and repeated only?

No, currently there isn't such a way.

@PetteriAimonen Thank you and for the help.


Keptn Self-Health Check: Make Compatibility Warnings visible in the Keptns Bridge

The Dynatrace SLI Service gives a great warning message since we moved to the new Metrics API v2. Here is an example:

The problem is that no user would ever see this message if you dont check out the logs of the Dynatrace SLI Service. I therefore recommend that we enhance the bridge to visualize ERRORs or WARNINGS that are produced by ANY Keptn Service. This could be a great "Keptn Health Check" overview. Otherwise users may never know which services are currently not running as expected
I could either envision this as a separate screen in the Keptns Bridge where we show current configuration and current error/warning logs across all services. Or - it could just be a warning banner in the top - similiar to what Dynatrace has in their UI in case there is a problem or an update available

This will be possible in the future with the new concept of shipyard/uniform.


It's about solidity or other programming language?

I know for web3 has a Solidity, RUST, Go, Move and other programming languages, but which language needs to learn for future experiences? And which language become a standart for web3 industry?


Proposal: Decentralised crowdfunding App

Description

A decentralised application where users could fund financial aids, content creators, and others from their kaia wallet without intermediaries

Bounty track

DeFi

Ok approved to proceed. Revert back here with your deployments and repos.

Done
https://github.com/CaptainPrinz/KaiaCrowfund

I think it's private. I only see 404 page

There i fixed it. There was a typo I  the link, You can try agajn


Mutable -> Immutable conversons.

Hi Apple,
I've just pitched this on Swift evolution as it seems like a worthwhile enhancement to the compiler for those of us who work with Unsafe pointers. It's a small change but I don't feel we've had reliable data on whether it affects compiler performance (though in my own testing with https://github.com/grpc/grpc-swift it didn't and a change this small really shouldn't as far as I understand type checking.)
Over to you.

Random driveby, but I'd really rather that we generalize this and make this be a library defined feature.  Would it be possible to generalize the recent CGFloat conversion feature into a library feature?

Hi Chris, how do you mean? Are you saying that since argument conversion is already in the compiler we could achieve what remains of what I was looking for with a few additional operators in the standard library something like EasyPointer? Perhaps I'm misunderstanding what you meant by "library feature".

The proposed patch is a targeted change to the type checker that special cases standard library types (unsafe pointer et al).  This is continuing a trend where specific types are special cased in the type checker (e.g. CGFloat, optional historically, etc).
This isn't a very sustainable path to go down, and it makes the language more inconsistent.  It would be better to introduce a language feature (e.g. a new attribute) that declares the types convertibility behavior, and have the type checker key on that.  That would allow the existing cases to continue to work (because they'd adopt the attribute) but would allow this to be a more generally accessible feature for all higher level libraries.

I see. Something like __conversion of old?

Yes, but presumably more narrowly scoped, aligning with the specific cases the type checker already supports.

I certainly wouldn't be unhappy to see __conversion() make a come-back in moderation, not least as a stand-in for boolValue. Could it be applied only in the fix-up phase like this patch which I'm assuming would avoid slowing down type checking.

I've close the associated PR with the tactical implementation of tis features I've decided to hold out for a more unified approach to implicit conversions on the longer run and we were unable to get reliable data on any possible compiler performance regression. You could still consider the PR a POC if there is interest to bring this proposal to review but I'll defer any further work until it has passed.

@johnno1962 You've been suggesting a different approach than this on the forums. Do you want to keep this PR open to revise later, or close it out and open up a new PR with the newer approach?

I'll close this now as I'm not really motivated to solve the narrow problem any more. While you're about I'll just mention I have three other open evolution proposals which it would be nice if they ever came to review we could have some closure.
Revised proposal for part one of SE0243 - Character Literals.
Collection conditionals SR-8743
Values for Custom Compilation Flags


Memory sanitizer error in python API

We need to add memory sanitizer check to our CI in order to detect memory issues in PRs.
However, when i compile our code with memory sanitizer and run python tests, i get the following errors:
➜  test git:(drop-col) ✗ python3 test_main.py
==28988==ERROR: Interceptors are not working. This may be because AddressSanitizer is loaded too late (e.g. via dlopen). Please launch the executable with:
DYLD_INSERT_LIBRARIES=/Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
"interceptors not installed" && 0
[1]    28988 abort      python3 test_main.py

Reproduce:
Added those flags to cmake:
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")

Then run:
cmake debug

https://github.com/google/sanitizers/issues/856
Using fsanitize flag and building binary causes ASAN to fail when running python tests.
The binary can't be built with the fsanitize flag, it has to be run with LD_PRELOAD pointing to the gcc / clang libasan .so

I have verified that the method mentioned by @anuchak works and configured CI with address sanitizer in #1182 1185

This issue can be closed, address sanitizer with build debug has been added successfully in the ci pipeline. There are some error in python tests due to which the step fails (I've raised a ticket for this #1189 and @acquamarin will take a look at it.


Uncaught Error: EINVAL: invalid argument, lstat '~/OneDrive - x'

[Enter steps to reproduce:]

Opened .html file

Atom: 1.21.1 ia32
Electron: 1.6.15
OS: Microsoft Windows 10 Pro Insider Preview
Thrown From: Atom Core
Stack Trace
Uncaught Error: EINVAL: invalid argument, lstat 'C:\Users\Gen Lee\OneDrive - x'
At fs.js:902

Error: EINVAL: invalid argument, lstat 'C:\Users\Gen Lee\OneDrive - x'
    at fs.lstatSync (fs.js:902:18)
    at Object.fs.lstatSync (ELECTRON_ASAR.js:244:16)
    at Proxy.realpathSync (fs.js:1542:21)
    at Proxy.fs.realpathSync (ELECTRON_ASAR.js:321:29)
    at ~/AppData/Local/atom/app-1.21.1/resources/app/node_modules/fuzzy-finder/lib/path-loader.js:21:27
    at Array.map (native)
    at Object.startTask (~/AppData/Local/atom/app-1.21.1/resources/app/node_modules/fuzzy-finder/lib/path-loader.js:19:52)
    at Object.startLoadPathsTask (~/AppData/Local/atom/app-1.21.1/resources/app/node_modules/fuzzy-finder/lib/main.js:119:45)
    at ~/AppData/Local/atom/app-1.21.1/resources/app/node_modules/fuzzy-finder/lib/main.js:33:30
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Commands

Non-Core Packages
gruvbox 1.0.5

Thanks for taking the time to contribute!
Based on the stack trace, I think this looks like a duplicate of https://github.com/atom/fuzzy-finder/issues/324 so you can subscribe there for updates if you'd like.  If you can share more details in the issue (e.g. is it reproducible, is it reproducible in safe mode), that would be helpful too.

Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


MPT-7B0-Instruct Demo Broken - Out of Memory Error

The web demo on Hugging Face isn't working. There seems to be an OOM error on loading the model.
Environment
Web demo on Hugging Face.
To reproduce
Got to https://huggingface.co/spaces/mosaicml/mpt-7b-instruct
Expected behavior
Demo should be running as usual.
Additional context

We are looking into it, thanks for raising!


Use presentation compiler for code assist

It'd be great to hook the Scala presentation compiler in the kernel, so completions, errors-as-you-type, hovers, etc. can be much more precise. The REPL has very limited completion capabilities.
This is something I could have a look at down the line, I'm just writing this down to check if this has been considered and discarded for some reason.

Hello Iulian!
(I put here the reference to the document: Scala presentation compiler)
That would be indeed interesting to hook up the current completion mechanism with this one! It hasn't yet been discussed, so thanks for bringing it to the table.
Questions I have:

since the notebook will most of the case be something remote, I guess that the errors-as-you-type will be hard since a lot (gut feeling) will be necessary for that?
it'll be used for the presentation (the hover, type info, better completions and so forth... I LOVED that) hence we'll still use the Spark loop and compiler for the task to bind new variables right? The thing is that the spark repl has done so much w.r.t closure serialization that we need⁽*⁾ to keep

For the rest, I repeat myself, I'd LOVED to have this kind of functionality in notebooks. And if you could have a look at that, I'll be very glad if I could give you some hands (if only ever you need it ^^)
⁽*⁾will be easy to

Hi Andy,
Glad you're interested in this!
You're right about "errors as you type". In Eclipse we use a "quiescence" period of 500ms before we ask the compiler to type-check, and I think that we should be able to pull the same trick here (this would be async, so error annotations will arrive eventually). The rest of code "intelligence" should be fairly straightforward.
I have another idea that would need a lot more thinking, but I think it would give us even more leverage. Here's the gist: instead of feeding the REPL object with chunks of code, have a more "global" approach: chunks are inserted into a "skeleton" object and evaluated top-down or incrementally. This way, some "TaksNotSerializableExceptions" we sometimes see (that are artefacts of the way the REPL encodes each chunk as a iw nested object) will go away. As I said, this is more long-term and high-risk, so I need to prototype it first (but it would follow the ideas we use in the Scala Worksheet implementation).

Agreed!
The second part sounds really promising, it should also ameliorate the performance of spark-repl I guess (like serializing only what's really necessary, without closing almost everything).
And indeed, although the repl is a very powerful tool, the iwC (in Spark) stuffs are quite boring, specially when you wanna work with implicits or Kryo (atm).
You're the best to propose a lean way to move forward, do you see a quick win (hover providing contextual information would be just awesome)?
So we create a dedicated entry for it and with reference it to this one? → Would like to keep this thread live for discussions around presentation

Yop @dragos, I was wondering if you would be available/okay for a quick hangout on this one?
I really like the idea and would like to have more details on what (and how) could be done :-D.

Sure! Next week would work better, I'm pretty tight until then.

On 13 apr. 2015, at 08:39, Andy Petrella<EMAIL_ADDRESS>wrote:
Yop @dragos, I was wondering if you would be available/okay for a quick hangout on this one?
I really like the idea and would like to have more details on what (and how) could be done :-D.
—
Reply to this email directly or view it on GitHub.

Okido :-D.
What about Thu 16? Are you in Swiss or SFO (or ???) ?

I'm in transit to Switzerland. Sorry, I meant the week of 20. Would that work?

okido, Tuesday 21th ? → andy.petrella @ gmail . com so we can arrange that easily

general info
After some discussion it appears that the usage of the presentation compiler (PC) will bring a lot of stability and enable new features wrt interaction with the code.
This PC works as a server back-ended by a requests queue which acts on a set of source files.
We can ask it for completions, errors, type checkers and so forth.
Note that it's single threaded, it'll be a problem when the session will be shared across viewers (see #148), but we'll can handle that on the server by created an actor for each session that will lineralize the incoming requests into a stream sent to the PC.
It would be also possible to answer with the scaladoc but then we'll need to include the sources as well. This is delayed at first.
first steps
There are two interesting features that could quickly be enabled. Here they are:

functions/classes parameters: hitting SHIFT+TAB sends requests to the server about the current function or class. The idea is to use the PC for that

error handling: the code is sent to the PC and if there is a problem, we flag the line (or the cell) as errors (with an icon) which reacts on hover by popping the error message

how to
Since the PC works on sources files, we need to simulate that since the notebook is a bunch of cells.
There are two obvious ways to achieve that:

create a source file somewhere that will keep all cells merged. So that, when a request comes from a cell we'll need to compute the correct line offset (based on the previous cells)
create as many source files as there are cells. In this case, we'll need to keep track of the relations... this can be hard

Another way to do that would be to workaround the problems by using the JSON representation of the notebook. In that case, each request will have first to save the notebook before issuing the request to the PC. It's tricky/hackish but could do the job as a very first step.
So the flow would be:

SHIFT-TAB is entered
the javascript client saves the notebook and register to the save success event
the javascript client sends the request to the server
the server forward the request to the PC
the PC receives the position in the cell and the cell (to check),

reads the JSON notebook representation,       (→could be done at save time)
updates a temp source file (?) representing it  (→could be done at save time)
and computes the offset based on previous cells
does its magic

Pointers
The SHIFT+TAB control is handled this way.
On the client side, the tooltip asks the server for some contextual information.
On the server side, the WS hanlder catches the request and forward it to the repl (the calculator wraps it).
So the calculator receives the session request from a single execution actor which will send the response back to the WS.
Based on the above, the ReplCalculator (2.10 here) takes the charge to process the request by delegating the responsibility to the Repl.
IMPORTANT: the actor ReplCalculator is deployed on the remote process running Spark. That is the one that really run a REPL.
Hence the presentation compiler should be started for this remote process, meaning that we'll have one PC per remote process/notebook.
@dragos this is where I guess you have a way better knowledge that I could have.
It would be very good already if you could find some time to see how the PC could be added there.
Then I can help for the integration if needed.
WDYT?

@andypetrella this are very useful pointers, and sorry for the long silence. I'll spend some time on this today and tomorrow, and I'll let you know how far I got.

No problemo, no pressure :-D
Thanks for anything you'll can do ^^

Hey Andy,
has anything happened in this direction already? You pointed me into this direction, and now that I made first contact with the PC I wonder if this could be pulled off, even if it's a humble first shot?
Did I understand you correctly, that you would use the existing completion approach/mechanism but instead of using the REPL use the PC?
Just for reference, another interesting link is
http://ensime.blogspot.fr/2010/08/building-ide-with-scala-presentation.html

Hey @cbvoxel, this would be super cool, because I know that @dragos is super busy at the moment.
The idea is to use indeed the PC for completion stuffs, first only even functions parameters and better completion (because the REPL alone sucks a bit at that).
I described in the issue some entrypoints and things to change, however there is one thing I need to say.
The REPL integration is not at best at the moment, there is a lot of duplication per spark version (and it's more or less needed to have one per version, but still code duplication) there is a ticket for that #205
So, in order to decouple those, what about first integrate these stuffs in spark 1.5, scala 2.10 only first?
Then we'll see what we'll need to do to deduplicate things?

Have a look at https://github.com/scala/scala/pull/4725  If this makes it into 2.11.8, we'll have much better completions out of the box.

@andypetrella, the Spark REPL in 2.11 is no longer a fork, it just overrides a couple of methods. Ideally Spark Notebook shouldn't need to fork either, and then REPL improvements in completion, like the one mentioned above, would come for free.

@dragos all great news!!!
So let's wait for spark to switch to scala 2.11.8 (2.11.6 atm).
On the other side, the 2.10 one, we still have to do something, because lot of people are still using it...
Do you thing you could support, I guess time to time, @cbvoxel for questions?

@andypetrella I have "injected" the PC into the REPLCalculator, so that it takes the pc and not the repl. It kind of works, which means that I get a lot of completions, but not all. For example, I am missing all the collection methods (map, filter, foreach, etc.) I wonder why they aren't there? Do I need to include a couple of imports? If yes, which ones?
Also to get parameter information of methods it would be helpful to get the parameter names. Instead all I get are generic names as x$1, and so on. Is there a way to improve that?
To have richer functionality one should probably add functionality on the js side. As I am definitly not a js guy, I am kinda stuck. One nice feature to have would be to get type info when pressing Ctrl and hovering over a symbol. How would I do this?

Have a look at https://github.com/dragos/spark-notebook/commit/2ffd9f63a07d68683faae161c1d0b7e854c60356, I added "Inspect", which is sort of hover (I think it's called by pressing TAB). Not sure if the code is yet in the compiler, see the PR I linked to on scala/scala. Hope this helps!

@cbvoxel @dragos great to read that this is moving forward (and fast :-D).
I'm okay to move forward bit by bit, I mean the best is to have a solution quick then applying patches to make it more and more awesome (in contrary of waiting for the perfection, if you know what I mean).
So don't mind the how to for now. It'll remain here for further steps.
Regarding your points, what about writing a notebook or some doc about (showing) what work and what doesn't work? We can also have an hangout, however, I'm gonna have one of my hectic'est week ever, so it's gonna be for the next week if you can wait for that. Then I'll can help you out in the JS too (if I can).
@dragos your fork looks good, is it normal it uses SparkPresentationCompilerCompleter ? I mean, where is this guy :-P?
Thanks a lot gentlemen for the work and help!

@andypetrella it should probably be now just PresentationCompilerCompleter, see scala/scala#4725 that was just merged.

@dragos aaaaah that's cool! Getting there, looks like


Update QUICHE from 60a22a631 to 2c1f10f46

https://github.com/google/quiche/compare/60a22a631..2c1f10f46
$ git log 60a22a631..2c1f10f46 --date=short --no-merges --format="%ad %al %s"

2024-02-13 martinduke Process incoming Unsubscribes.
2024-02-13 quiche-dev Fix issues required to build additional Quiche tests for Chrome
2024-02-12 renjietang Add 2 counters for number of successful multi-port probes.
2024-02-12 dschinazi Remove unused connect-udp-version
2024-02-09 quiche-dev Fix flaky //third_party/quic/core/batch_writer:quic_batch_writer_test
2024-02-09 quiche-dev Fix spelling
2024-02-09 rch Add a comment to kBBRv2 which explains that it's essentially BBRv3 and a TODO to rename it when the implementation is complete.
2024-02-08 danzh Change QuicConnection::cipher_id() to get underlying cipher id differently.
2024-02-08 rch Always disable the QPACK dyanmic table for Hyperloop connections.
2024-02-08 martinduke Handle MoQT Objects that arrive before SUBSCRIBE_OK.
2024-02-07 bnc No public description
2024-02-06 martinduke Deprecate gfe2_restart_flag_quic_receive_ecn3.
2024-02-05 martinduke No public description
2024-02-05 martinduke Update four-pass algorithm to reduce copying and conform to draft-ietf-quic-load-balancers-19.

Risk Level: Low
Testing: Existing tests pass
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/lgtm deps


STORM-3056: Add a test for quickly rebinding to a port

Adding test as per discussion on https://github.com/apache/storm/pull/2643#issuecomment-385003933

@HeartSaVioR @ghajos Please review.

@raghavgautam Thanks for the quick reaction!
Unfortunately the newly introduced test passes without #2643, so it does not test the original issue. Since  in this modification both the server and the client is closed gracefully the port won't stuck in TIME_WAIT state, no need to use SO_REUSEADDR to restart new instances. To test #2643 the server port should stuck in TIME_WAIT state and then a new server instance should be started successfully.
I still think that it is out of scope to test an operating system level TCP setting in a Storm test.
cc: @HeartSaVioR

@ghajos Can you tell me how you tested your patch ?

@ghajos Ping.

@raghavgautam Can you please address the merge conflicts?


[bug]: Not able to setup password on new install

Prerequisites

[X] I have searched for existing issues that already report this problem.

Server Hardware
Pi Model 4B 8GB
StartOS Version
<IP_ADDRESS>
Client OS
Linux
Client OS Version
Ubuntu 22.04
Browser
Firefox
Browser Version
115.0.02
Current Behavior
After saving new login info, I cannot set a new password for my new install. I tried eleven different password ranging in length from 6 to 64 with all different kinds of letters and numbers. Nothing world work.
Expected Behavior
Accept a new password that is 64 characters on less in lenght.
Steps to Reproduce
Setup new install and try to set a new password.
Anything else?
I searched for StartOS password requirements but I could not find anything.

Hi @techrivertree can you clarify? Are you saying you are unable to set up a fresh StartOS server? Or are tou trying to change your password for a previously set up device?
What error are you seeing?

@MattDHill New install.
Its the startOS login page. It prompts me to enter in a password (for the first time) but it wont accept any password that create, from super simple to super complex

I will try a reinstall.
I can enter in passwords, it just wont accept anything. The only requirement I know of is a character limit of 64 characters.

As Matt said - we would need more details - what EXACTLY is happening?   "Won't accept anything" doesn't give us anything to look at or help you with

Its working now.
The bug is with the first password you setup. I was able to use a super complex 192 character password. When you start your new custom login page, the password is too long (max 64 characters).
Fix: Either change the password requirements for the first password or fix the password requirements for new start page.

Okay, I'm going to change the title to reflect that this is a real bug.  Thanks for reporting

As @kn0wmad already said, the root cause is having the maxlength=64 during the setup-wizard but not having it in the login page. So if you copy paste a long password into the fields, they will be different when being checked. Tested this on my VM and as a workaround you can login using only the first 64 characters of your password.
Sent PR #2394 as a permanent fix.


1.0.0 patriot

Change Description

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

Looks like this belongs against the forked repo.


Not seems to work with github cli

The gh seems to use SecretService to store token but with dssd I always get no token found for xxxx even if login success.
From dbus-monitor I can see error message like
error time=1726791872.465235 sender=:1.56 -> destination=:1.1755 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=15
   string "Unknown method SearchItems"

Not sure if this is the root cause. I can spend some time to investigate but it would be nice if you are familiar with this issue

The error message suggests that it cannot find the SearchItems methods. Both org.freedesktop.Secret.Service and org.freedesktop.Secret.Collection have that method, but DSSD only implemented for the former. Perhaps gh was calling SearchItems on Collection. I will look into it.
Thanks for the report.

I have added that method and tested gh. It works for me now.

I confirm it works. Thank you so much for fast response!


Add R Squared Value in the return object

This would be an insanely useful feature for my current implementation.

This has been solved and pull request submitted: https://github.com/Tom-Alexander/regression-js/pull/28 Until it is accepted, you can just copy the code from there, it looks correct as far as I can tell.

This has been merged


ControllerRevision doc update

https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/controller-revision-v1/

Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.

Considering this is apps/v1 should this 'beta' note be updated/removed?

Here's where it's wrong:
https://github.com/kubernetes/kubernetes/blob/6e9845f766e4d34620835aaa1e5f864211471a50/staging/src/k8s.io/api/apps/v1/types.go#L897
Looks like that text was missed when the API was promoted to stable.

/remove-lifecycle rotten


Staled index.html even using revision

Library Affected:
workbox-webpack-plugin
Browser & Platform:
all browsers
Issue or Feature Request Description:
I have a SPA with the following code that Injects the manifest:
const revision = new Date().getTime().toString();

...

  env.plugins.append('WorkboxPlugin', new WorkboxPlugin.InjectManifest({
    swSrc: path.join(root, 'frontend/app/service-worker.js'),
    swDest: path.join(root, 'public/service-worker.js'),
    exclude: [/\.map$/, /asset-manifest\.json$/, /LICENSE/],
    additionalManifestEntries: [
      { url: '/index.html', revision },
      { url: 'https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;700&display=swap', revision },
    ],
    maximumFileSizeToCacheInBytes: 50 * 1024 * 1024,
  }));

As you can see, there is a revision and if I inspect the cache I can see it there:

On the SW side, I have this code too:
const indexNavigationRoute = new NavigationRoute(createHandlerBoundToURL('/index.html'), {
  denylist: [
    new RegExp('/service-worker.js'),
    new RegExp('.*/manifest.json'),
    new RegExp('/404.html'),
    new RegExp('/422.html'),
    new RegExp('/500.html'),
    new RegExp('/privacy'),
  ],
});

The issue is that the index.html file has the scripts for the JS chunks but even using the revision the browser is using a staled version.  Any idea how to fix this?

Hi there,
Workbox is moving to a new engineering team within Google. As part of this move, we're declaring a partial bug bankruptcy to allow the new team to start fresh. We realize this isn't optimal, but realistically, this is the only way we see it working. For transparency, here're the criteria we applied:

For PRs, we closed everything that doesn't target the current v7 branch.
For Issues, we closed everything that was created before 2024.

Thanks, and we hope for your understanding!
The Workbox team


Autocomplete mention

Adding API for autocompleting @mentions.
NOTE : not sure how to go about testing mongodb stuff aside from the way I did it.  Any suggestions are welcome.

@sscotth I've moved the database logic out of the controller and into the User model.  I have tests for both the User and /routes.  Please look over these and let me know if you see any glaring errors.  The use cases are straightforward, and I haven't added anything since the last time you looked at it.
You'll also notice I'm using Babel -- since we have a compiler for it, I figured, "Why not?"  Technically my static methods are not static because they return different things depending on the state of the database, but this is how class methods are defined in ES6.

I'm perfectly fine with an ES6 class, but a user model is being worked on by another team. This will conflict with that. If you want to refactor theirs after the fact, then that would be great. But use a separate pull request with that logic.

@sscotth Awesome - will do.  Thanks!

Still a few styling changes I'd like to see. Maybe more eslint rules can be added. I will mark them now

@sscotth

@sscotth I incorporated my things into the user/ folder with the suggested changes.

Merged, but added some cleanup: 77c445b1dc15ffb622f207bbcbf65b20ecfd0ed5


Add delay on Mac OS X in window state tests that minimize the window

Without this, the minimize animation doesn't complete and Mac OS X leaves the window in the tray.
Proposed Changes
Add useDelay = isMacOS for two window state tests.
Testing
Test: Ran WindowStateTests before and after. Before, the two windows would remain the minimized section of the dock. Afterwards, they don't.

Also increased the delay to 1sec. With the default value the minimize test can even fail.