Errors since V2.0.0

Since the update from V1.0.2 to 2.0.0 I get the following errors when I switch off the TV
`

panasonic-viera.0
2021-11-18 20:37:06.269
error
Exception-Code: ECONNREFUSED: connect ECONNREFUSED <IP_ADDRESS>:55000

panasonic-viera.0
2021-11-18 20:37:06.269
error
Error: connect ECONNREFUSED <IP_ADDRESS>:55000 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)

panasonic-viera.0
2021-11-18 20:37:06.268
error
unhandled promise rejection: connect ECONNREFUSED <IP_ADDRESS>:55000

panasonic-viera.0
2021-11-18 20:37:06.267
error
Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().

`

I really like my function to mute the TV and to stop the media player when the phone rings. Unfortunately ioBroker shuts down the Viera instance due to too many failures and boot loops. Is there anything I can do? Is my TV too old (about 11 years)?
panasonic-viera.0 | 2021-12-06 21:13:25.555 | info | terminating -- | -- | -- | --
panasonic-viera.0 | 2021-12-06 21:13:25.023 | error | Exception-Code: ECONNREFUSED: connect ECONNREFUSED <IP_ADDRESS>:55000
panasonic-viera.0 | 2021-12-06 21:13:25.019 | error | Error: connect ECONNREFUSED <IP_ADDRESS>:55000  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)
panasonic-viera.0 | 2021-12-06 21:13:25.016 | error | unhandled promise rejection: connect ECONNREFUSED <IP_ADDRESS>:55000
panasonic-viera.0 | 2021-12-06 21:13:25.010 | error | Unhandled  promise rejection. This error originated either by throwing inside of  an async function without a catch block, or by rejecting a promise which  was not handled with .catch().
panasonic-viera.0 | 2021-12-06 21:13:24.633 | info | starting. Version 2.0.0 in /opt/iobroker/node_modules/iobroker.panasonic-viera, node: v12.22.7, js-controller: 3.3.18

Same here...
2022-03-05 08:36:18.824	warn	Terminated (UNCAUGHT_EXCEPTION): Without reason
2022-03-05 08:36:18.821	info	terminating
2022-03-05 08:36:18.308	error	Exception-Code: ECONNREFUSED: connect ECONNREFUSED <IP_ADDRESS>:55000
2022-03-05 08:36:18.308	error	Error: connect ECONNREFUSED <IP_ADDRESS>:55000 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16)
2022-03-05 08:36:18.307	error	unhandled promise rejection: connect ECONNREFUSED <IP_ADDRESS>:55000
2022-03-05 08:36:18.306	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
2022-03-05 08:36:18.197	info	starting. Version 2.0.0 in /opt/iobroker/node_modules/iobroker.panasonic-viera, node: v14.18.2, js-controller: 3.3.22


Update certificates for Active Directory

LGTM. Please squash the fixup onto the appropriate commit and you're good to merge the PR.


add demo

What type of PR is this?
request help (good first issue)
What this PR does / why we need it (English/Chinese):
使用 Hertz 和 Hz 为 hertz-examples/bizdemo 添加示例代码
Which issue(s) this PR fixes:
#486

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I have added the License header

refer to https://github.com/cloudwego/hertz/issues/486 and this demo looks a bit repetitive with https://github.com/cloudwego/hertz-examples/tree/main/hz

It looks like this, so is this issue redundant?Maybe my PR should be closed

It looks like this, so is this issue redundant?Maybe my PR should be closed

Write a business demo code use Hertz and Hz such as student infomation manager system.


ScrollView offset and isScrollEnabled problems

Problem
I wasted a lot of time trying to implement the following features:
.appleScrollBehavior:

Disable scroll in all positions, except .top (#18)
In .top position, when the content is dragged down (when using coordinate values with C(0/0) by the top of the ScrollView, this means x > 0) it should drag the BottomSheet instead of the ScrollView (#15)
After dragging the BottomSheet, it should return to the normal behaviour (trigger .swipeToDismiss, call switchPosition(with:), ...) (#34)

Therefore I need to find a reliable way to disable scroll of a ScrollView and to receive the content offset.
This issue replaces and closes #18, #15 and #34. It also replaces the ToDo from #11.
Ideas
Here are the current known "solutions" listed and why they don't work.
Using SwiftUI's ScrollView
Disable scroll

Set axes
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    private var axes: Axis.Set {
        return isScrollEnabled ? .vertical : []
    }

    var body: some View {
        ScrollView(self.axes) {
            self.content
                .frame(maxWidth: .infinity, alignment: .top)
        }
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach doesn't work, because it resets the content scroll offset.
Note: isScrollEnabled must be changed inside of withAnimation {}

Use .disabled
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    var body: some View {
        ScrollView {
            self.content
        }
        .disabled(self.isScrollEnabled)
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach doesn't work, because it also disables all content of the ScrolView (especially Buttons).

Remove ScrollView
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    var body: some View {
        if self.isScrollEnabled {
            ScrollView {
                self.content
            }
        } else {
            self.content
        }
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach doesn't work, because it completely messes up the content placement.

Add .gesture
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    private var gesture: DragGesture? {
        return self.isScrollEnabled ? DragGesture() : nil
    }

    var body: some View {
        ScrollView {
            self.content
        }
        .gesture(self.gesture)
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach doesn't work. More information needed.

Receive offset

GeometryReader 1
struct ScrollView_<Content: View>: View {
    let axes: Axis.Set
    let showsIndicators: Bool
    let onOffsetChange: (CGPoint) -> Void
    let content: Content

    var body: some View {
        ScrollView(self.axes, showsIndicators: self.showsIndicators) {
            GeometryReader { geometry in
                Color.clear
                    .preference(key: ScrollOffsetPreferenceKey.self, value: geometry.frame(in: .named("scrollView")).origin
                    )
            }
            .frame(width: 0, height: 0)
            content
                //.padding(.top, -8)
        }
        .coordinateSpace(name: "scrollView")
        .onPreferenceChange(ScrollOffsetPreferenceKey.self, perform: onOffsetChange)
    }

    init(axes: Axis.Set = .vertical, showsIndicators: Bool = true, onOffsetChange: @escaping (CGPoint) -> Void = { _ in }, @ViewBuilder content: () -> Content) {
        self.axes = axes
        self.showsIndicators = showsIndicators
        self.onOffsetChange = onOffsetChange
        self.content = content()
    }
}

private struct ScrollOffsetPreferenceKey: PreferenceKey {
    static var defaultValue: CGPoint = .zero

    static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) {}
}

This approach works, but there is an -8px missing padding at the top.

GeometryReader 2
public struct ScrollView_<Content>: View where Content: View {
    let axes: Axis.Set
    let showIndicators: Bool
    @Binding var contentOffset: CGFloat
    let content: Content

    public init(_ axes: Axis.Set = .vertical, showIndicators: Bool = true, contentOffset: Binding<CGFloat>, @ViewBuilder content: () -> Content) {
        self.axes = axes
        self.showIndicators = showIndicators
        self._contentOffset = contentOffset
        self.content = content()
    }

    public var body: some View {
        GeometryReader { outsideProxy in
            ScrollView(self.axes, showsIndicators: self.showIndicators) {
                ZStack(alignment: self.axes == .vertical ? .top : .leading) {
                    GeometryReader { insideProxy in
                        Color.clear
                            .preference(key: ScrollOffsetPreferenceKey.self, value: [self.calculateContentOffset(fromOutsideProxy: outsideProxy, insideProxy: insideProxy)])
                    }
                    VStack {
                        self.content
                    }
                }
            }
            .onPreferenceChange(ScrollOffsetPreferenceKey.self) { value in
                self.contentOffset = value[0]
            }
        }
    }

    private func calculateContentOffset(fromOutsideProxy outsideProxy: GeometryProxy, insideProxy: GeometryProxy) -> CGFloat {
        if axes == .vertical {
            return outsideProxy.frame(in: .global).minY - insideProxy.frame(in: .global).minY
        } else {
            return outsideProxy.frame(in: .global).minX - insideProxy.frame(in: .global).minX
        }
    }
}

struct ScrollOffsetPreferenceKey: PreferenceKey {
    typealias Value = [CGFloat]

    static var defaultValue: [CGFloat] = [0]

    static func reduce(value: inout [CGFloat], nextValue: () -> [CGFloat]) {
        value.append(contentsOf: nextValue())
    }
}

This approach works, but the initial value isn't 0.

Using Introspect library
Disable scroll

Use isScrollEnabled
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    var body: some View {
        ScrollView {
            self.content
        }
        .introspectScrollView { scrollView in
            scrollView.isScrollEnabled = self.isScrollEnabled
        }
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach works sometimes. More information needed.

Use addGestureRecognizer
struct ScrollView_<Content: View>: View {

    @Binding var isScrollEnabled: Bool
    private let content: Content

    private let gestureRecognizer: UIPanGestureRecognizer = UIPanGestureRecognizer()

    var body: some View {
        ScrollView {
            self.content
        }
        .introspectScrollView { scrollView in
            if self.isScrollEnabled {
                scrollView.removeGestureRecognizer(self.gestureRecognizer)
            } else {
                scrollView.addGestureRecognizer(self.gestureRecognizer)
            }
        }
    }

    init(isScrollEnabled: Binding<Bool>, @ViewBuilder content: () -> Content) {
        self._isScrollEnabled = isScrollEnabled
        self.content = content()
    }
}

This approach works sometimes. More information needed.

ToList

Create a completely custom ScrollView, by using dragGesture on a VStack and moving the content accordingly. This could be tricky to make it feel right and to match the SwiftUI ScrollView.
Port UIScrollView, because it has contentOffset and isScrollEnabled. However, this is probably the same as using Introspect and it could be really hard to make the UIScrollView work like ScrollView.
Find and use some other library.
Use ScrollViewReader to constantly set the position to the same value. This would have the same effect, as disabling scroll. But it can lead to performance and ui issues.

Links

https://github.com/Amzd/ScrollViewProxy/blob/master/Sources/ScrollViewProxy/ScrollViewProxy.swift
https://zacwhite.com/2019/scrollview-content-offsets-swiftui/
https://gist.github.com/jfuellert/67e91df63394d7c9b713419ed8e2beb7
https://github.com/kazuooooo/PositionScrollView

Maybe useful code:

Introspect.swift
 //
 //  Introspect.swift
 //
 //  Created by Lucas Zischka.
 //  Copyright © 2021 Lucas Zischka. All rights reserved.
 //

 import SwiftUI

 public typealias PlatformView = UIView

 /// Utility methods to inspect the UIKit view hierarchy.
 public enum Introspect {

     /// Finds a subview of the specified type.
     /// This method will recursively look for this view.
     /// Returns nil if it can't find a view of the specified type.
     public static func findChild<AnyViewType: PlatformView>(
         ofType type: AnyViewType.Type,
         in root: PlatformView
     ) -> AnyViewType? {
         for subview in root.subviews {
             if let typed = subview as? AnyViewType {
                 return typed
             } else if let typed = findChild(ofType: type, in: subview) {
                 return typed
             }
         }
         return nil
     }

     /// Finds a previous sibling that is of the specified type.
     /// This method inspects siblings recursively.
     /// Returns nil if no sibling contains the specified type.
     public static func previousSibling<AnyViewType: PlatformView>(
         ofType type: AnyViewType.Type,
         from entry: PlatformView
     ) -> AnyViewType? {

         guard let superview = entry.superview,
               let entryIndex = superview.subviews.firstIndex(of: entry),
               entryIndex > 0
         else {
             return nil
         }

         for subview in superview.subviews[0..<entryIndex].reversed() {
             if let typed = subview as? AnyViewType {
                 return typed
             }
         }

         return nil
     }

     /// Finds a previous sibling that contains a view of the specified type.
     /// This method inspects siblings recursively.
     /// Returns nil if no sibling contains the specified type.
     public static func previousSibling<AnyViewType: PlatformView>(
         containing type: AnyViewType.Type,
         from entry: PlatformView
     ) -> AnyViewType? {

         guard let superview = entry.superview,
               let entryIndex = superview.subviews.firstIndex(of: entry),
               entryIndex > 0
         else {
             return nil
         }

         for subview in superview.subviews[0..<entryIndex].reversed() {
             if let typed = findChild(ofType: type, in: subview) {
                 return typed
             }
         }

         return nil
     }

     /// Finds an ancestor of the specified type.
     /// If it reaches the top of the view without finding the specified view type, it returns nil.
     public static func findAncestor<AnyViewType: PlatformView>(ofType type: AnyViewType.Type, from entry: PlatformView) -> AnyViewType? {
         var superview = entry.superview
         while let s = superview {
             if let typed = s as? AnyViewType {
                 return typed
             }
             superview = s.superview
         }
         return nil
     }

     /// Finds the view host of a specific view.
     /// SwiftUI wraps each UIView within a ViewHost, then within a HostingView.
     /// Returns nil if it couldn't find a view host. This should never happen when called with an IntrospectionView.
     public static func findViewHost(from entry: PlatformView) -> PlatformView? {
         var superview = entry.superview
         while let s = superview {
             if NSStringFromClass(type(of: s)).contains("ViewHost") {
                 return s
             }
             superview = s.superview
         }
         return nil
     }
 }

 public enum TargetViewSelector {
     public static func siblingContaining<TargetView: PlatformView>(from entry: PlatformView) -> TargetView? {
         guard let viewHost = Introspect.findViewHost(from: entry) else {
             return nil
         }
         return Introspect.previousSibling(containing: TargetView.self, from: viewHost)
     }

     public static func siblingContainingOrAncestor<TargetView: PlatformView>(from entry: PlatformView) -> TargetView? {
         if let sibling: TargetView = siblingContaining(from: entry) {
             return sibling
         }
         return Introspect.findAncestor(ofType: TargetView.self, from: entry)
     }

     public static func siblingOfType<TargetView: PlatformView>(from entry: PlatformView) -> TargetView? {
         guard let viewHost = Introspect.findViewHost(from: entry) else {
             return nil
         }
         return Introspect.previousSibling(ofType: TargetView.self, from: viewHost)
     }

     public static func siblingOfTypeOrAncestor<TargetView: PlatformView>(from entry: PlatformView) -> TargetView? {
         if let sibling: TargetView = siblingOfType(from: entry) {
             return sibling
         }
         return Introspect.findAncestor(ofType: TargetView.self, from: entry)
     }
 }

UIKitIntrospectionView.swift
 //
 //  UIKitIntrospectionView.swift
 //
 //  Created by Lucas Zischka.
 //  Copyright © 2021 Lucas Zischka. All rights reserved.
 //

 import SwiftUI

 /// Introspection UIView that is inserted alongside the target view.´
 public class IntrospectionUIView: UIView {

     required init() {
         super.init(frame: .zero)
         isHidden = true
         isUserInteractionEnabled = false
     }

     @available(*, unavailable)
     required init?(coder: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
 }

 /// Introspection View that is injected into the UIKit hierarchy alongside the target view.
 /// After `updateUIView` is called, it calls `selector` to find the target view, then `customize` when the target view is found.
 public struct UIKitIntrospectionView<TargetViewType: UIView>: UIViewRepresentable {

     /// Method that introspects the view hierarchy to find the target view.
     /// First argument is the introspection view itself, which is contained in a view host alongside the target view.
     let selector: (IntrospectionUIView) -> TargetViewType?

     /// User-provided customization method for the target view.
     let customize: (TargetViewType) -> Void

     public init(
         selector: @escaping (IntrospectionUIView) -> TargetViewType?,
         customize: @escaping (TargetViewType) -> Void
     ) {
         self.selector = selector
         self.customize = customize
     }

     public func makeUIView(context: UIViewRepresentableContext<UIKitIntrospectionView>) -> IntrospectionUIView {
         let view = IntrospectionUIView()
         view.accessibilityLabel = "IntrospectionUIView<\(TargetViewType.self)>"
         return view
     }

     /// When `updateUiView` is called after creating the Introspection view, it is not yet in the UIKit hierarchy.
     /// At this point, `introspectionView.superview.superview` is nil and we can't access the target UIKit view.
     /// To workaround this, we wait until the runloop is done inserting the introspection view in the hierarchy, then run the selector.
     /// Finding the target view fails silently if the selector yield no result. This happens when `updateUIView`
     /// gets called when the introspection view gets removed from the hierarchy.
     public func updateUIView(
         _ uiView: IntrospectionUIView,
         context: UIViewRepresentableContext<UIKitIntrospectionView>
     ) {
         DispatchQueue.main.async {
             guard let targetView = self.selector(uiView) else {
                 return
             }
             self.customize(targetView)
         }
     }
 }

ViewExtensions.swift
 //
 //  ViewExtensions.swift
 //
 //  Created by Lucas Zischka.
 //  Copyright © 2021 Lucas Zischka. All rights reserved.
 //

 import SwiftUI

 extension View {
     public func inject<SomeView>(_ view: SomeView) -> some View where SomeView: View {
         overlay(view.frame(width: 0, height: 0))
     }

     /// Finds a `TargetView` from a `SwiftUI.View`
     public func introspect<TargetView: UIView>(
         selector: @escaping (IntrospectionUIView) -> TargetView?,
         customize: @escaping (TargetView) -> ()
     ) -> some View {
         inject(UIKitIntrospectionView(
             selector: selector,
             customize: customize
         ))
     }

     /// Finds a `UIScrollView` from a `SwiftUI.ScrollView`, or `SwiftUI.ScrollView` child.
     public func introspectScrollView(customize: @escaping (UIScrollView) -> ()) -> some View {
         if #available(iOS 14.0, tvOS 14.0, macOS 11.0, *) {
             return introspect(selector: TargetViewSelector.siblingOfTypeOrAncestor, customize: customize)
         } else {
             return introspect(selector: TargetViewSelector.siblingContainingOrAncestor, customize: customize)
         }
     }
 }

Might all be obsolete now:
https://twitter.com/sarunw/status/1477391553840693250?s=12

Unfortunately not, because the native implementation has many features missing and a lot of downsides. For example, it is not possible to recreate Apple Maps. Therefore, the original BottomSheet which is used by Apple is still closed source and therefore there is a need for my implementation.

Good! Just wanted to let you know and share it :)

With iOS 17, the SwiftUI ScrollView API is improved.
maybe scrollPosition modifier is useful:
https://developer.apple.com/documentation/swiftui/view/scrollposition(id:anchor:)


Implement some kind of tasks queue

Using something like Kue or Bull to enqueue tasks for completion.

It is in my feature request list, but currently I have no enough knowledge about it.

I will give it a try and see if I can easily implement it, at least to show you if it was correctly implemented in Moleculer.

@lardissone do u have a PR of this ?

Hey ! Thanks for Moleculer, it is a great tool.
+1 for a working queue, it is mandatory for clustering.
I tried to modify Moleculer to use NATS group queue (options in constructor), but I don't think it is a good idea with the current implementation.

Please somebody write for me what are the main features in task queues/event queues function. I plan to implement it, but I have no enough knowledge and need more information. Thanks!
Ping: @lardissone @pentateu @remipassmoilesel

Hey Icebob,
See this option on nats/node client: https://github.com/nats-io/node-nats#queue-groups
And a hack I have done on moleculer: https://github.com/remipassmoilesel/moleculer/tree/nats-experiments/work-queue-samples
A basic example can be a clustered microservice to process images (e.g. ImageProcessor)
Twenty instances of ImageProcessor are available on a cluster. A consummer ask for processing an image, and send a message. Only one instance should receive this message in order to process the image only once.
It is a simple option in node/nat client but you need to specify it every time you call nodenat.subscribe() And unfortunately with your implementation you call subscribe() only once. So the hack use the constructor of NATS transport. I don't think it is a good idea.

Thanks @remipassmoilesel. With the current Moleculer protocol you can't use the NATS queueing.
I now checked the Bull and it is nice. I'm going to try to add it as only a module.
Potential schema:
module.exports = {
    name: "worker",
    mixins: [BullService(connOpts)],

    // Subscribe to queues
    queues: {
        "image.resize"(data, job) {
            // Resize image
            // job.process(30);

            return Promise.resolve("done");
        }
    },

    methods: {

        something() {
            // Add a job to the queue
            this.enqueue("image.resize", { filename: "", width: 640, height: 480 });
        }
    }
}

@icebob That a clear example of what I meant with queues support in Moleculer.
Bull looks promising, haven't used it yet.

I created an experimental service for Bull. I think it is working, but please try somebody, who can.
I didn't publish on NPM because it is a very basic implementation, so if you would like to test, please copy the source of service to your project. It is very simple.
Source of service: https://github.com/ice-services/moleculer-addons/blob/db-v5/packages/moleculer-queue-bull/src/index.js
Example worker:
"use strict";

let { ServiceBroker } 	= require("moleculer");
let BullService		= require("../../index");

let broker = new ServiceBroker({ logger: console });

broker.createService({
    mixins: [BullService()],

    queues: {
        "sample.task"(job) {
            this.logger.info("New job received!", job.data);

            return new this.Promise(resolve => {
                setTimeout(() => resolve({
                    done: true,
                    id: job.data.id,
                    worker: process.pid
                }), 500);
            });
        }
    }
});

broker.start();

Example publisher:
"use strict";

let { ServiceBroker } 	= require("moleculer");
let BullService		= require("../../index");

let broker = new ServiceBroker({ logger: console });

broker.createService({
    mixins: [BullService()],

    started() {
        let id = 1;
        setInterval(() => {
            this.logger.info("Add a new job. ID: ", id);
            this.enqueue("sample.task", { id: id++, pid: process.pid });
        }, 2000);

        this.getQueue("sample.task").on("global:completed", (job, res) => {
            this.logger.info("Job completed!. Result:", res);
        });
    }
});

broker.start();

Requirements:

npm install bull
Redis

You can configure Bull in mixins:
mixins: [BullService("redis://localhost:6379", queueOpts)],

More info: https://github.com/OptimalBits/bull/blob/master/REFERENCE.md#queue

I just published a new task queue mixin for Bee-Queue: https://github.com/ice-services/moleculer-addons/tree/master/packages/moleculer-bee-queue#readme

Done: https://github.com/ice-services/moleculer-addons/tree/master/packages/moleculer-bull#readme

Has anyone considered implementing a queue mixin for AMQP?

+1 for AMQP


Issue with safari.

https://github.com/user-attachments/assets/ce748b32-59bd-49f9-8e75-67b89d755008
This happens when i click and hold left button on my mouse. Other browsers don't seem to have this issue.

Screen.Recording.2024-08-24.at.06.42.55.mov
This happens when i click and hold left button on my mouse. Other browsers don't seem to have this issue.

try something like userSelect: none on a square

Closing due to lack of activity


Getting 403 on this workflow

Hello,
I saw a lot of issues dealing with the 403-thing, which could mean that there is a bug or the docs are lacking some information. I am happy to extend the docs once I fix the issue myself.
My workflow:
name: Build and Release

on:
  push:
    tags:
      - "v*.*.*"

permissions:
  contents: write

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'
          extensions: mbstring, zip

      - name: Install PHP dependencies
        run: composer install --no-interaction --prefer-dist

      - name: Use Node.js 16.13.0
        uses: actions/setup-node@v2
        with:
          node-version: 16.13.0

      - name: Install required npm version
        run: npm -g install<EMAIL_ADDRESS>
      - name: Install npm dependencies
        run: npm ci

      - name: Build assets
        run: npm run build

      - name: Create release zip
        run: zip -r release.zip .
        if: success()

      - name: Upload release.zip to GitHub Releases
        uses: softprops/action-gh-release@v1
        with:
          files: release.zip
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

This fails with

👩🏭 Creating new GitHub release for tag v.0.5.0... ⚠ GitHub release failed with status: 403 undefined retrying... (2 retries remaining)

Permissions should be set globally for the workflow, right?
permissions:
  contents: write

Hello, @ahoiroman!
I just tested this Action for the very first time in one of my repositories and it succeeded without any problems, so I started comparing your workflow definition from above with my workflow.  The main difference between them is that I do not apply the GITHUB_TOKEN environment variable as the documentation states that the workflow's token would be used, by default, anyway; see https://github.com/softprops/action-gh-release/blob/master/README.md?plain=1#L182.
Does your workflow succeed if you remove the last two lines from the above definition?

In the repo settings, under Actions / General / Workflow Permissions make sure you select "read and write permissions". It seems that GitHub changed the default to the more restrictive option for new repos at some point.

https://github.com/softprops/action-gh-release/issues/236#issuecomment-1150530128

I have same issue.   my action workflow cant find zip file.  I know exact path
I have both write and read perms enabled in my settings and I am using write-all perms.
https://github.com/ELY3M/Digital-Clock-in-sharpc/actions/runs/7733437183/job/21085504622
I cant upload zip :(   it cant find zip.   I know the exact path and where zip is


Group 2 - Solution for Language Detector

Group 2
*Patrick Mayo
*Tyler Phillips
*Ravs

close

Agree with Phil about the issues with the variable found, and also about just looping through the languages elements directly.
The solution #2 which was commented out seemed to work better since count is being reset to 0 for each language. I would just say you could directly keep the count in the freq dictionary without needing a separate count variable. And maybe avoid 'dict' as a variable name.
The regex seems impressive, I'd be interested in learning how exactly it is working since I'm not very familiar with the [%s] notation.

Yea, Phil made some good points. I opened a new pull quest which only has the commented-out solution.
We use square brackets to define our own character class. For python 2 compatibility, we use the "old" basic string formatting: "%s" % ('inserted').
re.escape() returns the string with non-alphanumerics back-slashed, so they are not interpreted as regex characters.

Good code! Done reviewing!


Old leaves textures?

Why do the leaves have the old texture?

Also, why are there mods in the resource packs screen?

These issues have nothing to do with the installer.

Oh ok.


Add period to description

What this PR does / why we need it
Adds a missing period to a property description.
Checklist

[ ] Update changelog in CHANGELOG.md.

Trigger e2e tests
/test create
/test upgrade

/test create
/test upgrade


Fixed broken link

Fixed broken link
Summary
The link <xref:System.Web.HttpApplication.Application_Start> was always incorrect, because the application-defined Global class inherited from HttpApplication, and an Application_Start class never existed.
Suggested Reviewers
@mairaw

I've addressed your comments, @mairaw, if you want to take a look once the build finishes. There already was a download link in an alert box. I've replaced it with a "To download the sample" section.

Ha, I totally missed it! I'll take a look once it finishes building, but I like the idea of being in a section vs a note.

Merge when you're ready


spring.cloud.config.label doesn't work

Describe the bug
My version is 3.0.5. when i set spring.cloud.config.label=dev，the default value of {label} in uri has not changed

I have posted the problem to stackoverflow,see more detai:https://stackoverflow.com/questions/69508069/what-does-the-property-spring-cloud-config-label-in-spring-cloud-config-do,  and i will be tomorrow Submit the code to https://gitee.com/surrin1999/spring-cloud---learning.git

Seems like you got your answer on SO.


Affiliation updates July 2023

Please make the following affiliation updates:

Update affiliation 10123 name From:  Systemic Lupus Erythematosus, To: Monogenic Systemic and Incomplete Lupus Erythematosus
Add affiliation 10147
Add affiliation 10148

Affiliation sheet: https://docs.google.com/spreadsheets/d/1IF9GiP8iiFx1CndgqdWNGx4A_uM2GsWnV7GSiUO33bs/edit#gid=2034898506

These updates are now in prod.


fix: update import of deprecated repository modules

Depends on https://github.com/python-poetry/poetry/pull/6803.

Can you make the imports forward compatible please? The scheme is try "new import" except "old import". Proposals below. You probably have to add some "type: ignore" or similar to satisfy mypy and flake8.

Indeed, the current PR is valid only for "poetry = ^1.3.0" so that it is valid only after poetry 1.3.0 is released. I have made it backwards compatible in the way you describe so that we can release it already. If this PR is released only after the release of poetry 1.3.0, you may consider dropping the last commit (and require poetry = ^1.3.0).

Yeah, if poetry-plugin-export and poetry would not be so closely coupled we could just wait. Unfortunately, we are still delivering poetry-plugin-export with poetry. (We intend to stop doing this. Another maintainer has already created a proof-of-concept on how to proceed in a gracefully way but he hasn't been available lately.) That's why we want to release a version of poetry-plugin-export that can be delivered with poetry 1.3 and will not trigger a deprecation warning.


Generic Entity

Could ObjectBox support Generic Entity?
For example, if I have a class like this:
@Entity
pubic class Message {
.....
T field;
}
It does not seem to work.

Another issue on this related is how to persist an Interface type field?

Hi @andrewkkchan, I have the same problem with generic entity. Did you solve this?

I parse data from a JSON and data may be a simple string, a number or an object. Unfortunately, the string or integer classes are final, so I can't make a base class.

I mean T field; in @andrewkkchan's example may be various of types ;)

I will continue searching for other ways, but I will try your suggestion.


Install Failed - jQuery

Node-RED 8.0.1 on a Pi 4/HA Supervised.
Unable to install:
2021-02-04T15:12:49.375Z Install : node-red-contrib-zwave-js 1.3.1

2021-02-04T15:12:49.398Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production<EMAIL_ADDRESS>2021-02-04T15:13:01.882Z [out]
2021-02-04T15:13:01.882Z [out] ><EMAIL_ADDRESS>install /config/node-red/node_modules/@serialport/bindings
2021-02-04T15:13:01.882Z [out] > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
2021-02-04T15:13:01.882Z [out]
2021-02-04T15:13:02.853Z [err] prebuild-install
2021-02-04T15:13:02.854Z [err]  WARN install No prebuilt binaries found (target=14.15.4 runtime=node arch=arm libc=musl platform=linux)
2021-02-04T15:13:04.561Z [err] gyp
2021-02-04T15:13:04.562Z [err]  ERR!
2021-02-04T15:13:04.562Z [err]  build error
2021-02-04T15:13:04.563Z [err] gyp
2021-02-04T15:13:04.564Z [err] ERR! stack Error: not found: make
2021-02-04T15:13:04.564Z [err] gyp
2021-02-04T15:13:04.564Z [err]  ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
2021-02-04T15:13:04.564Z [err] gyp
2021-02-04T15:13:04.564Z [err] ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
2021-02-04T15:13:04.564Z [err] gyp
2021-02-04T15:13:04.564Z [err]  ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
2021-02-04T15:13:04.564Z [err] gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
2021-02-04T15:13:04.564Z [err] gyp
2021-02-04T15:13:04.564Z [err]  ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2021-02-04T15:13:04.564Z [err] gyp
2021-02-04T15:13:04.565Z [err] ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2021-02-04T15:13:04.565Z [err] gyp ERR!
2021-02-04T15:13:04.565Z [err] stack     at FSReqCallback.oncomplete (fs.js:183:21)
2021-02-04T15:13:04.565Z [err] gyp ERR!
2021-02-04T15:13:04.566Z [err] System Linux 5.4.79-v7l+
2021-02-04T15:13:04.566Z [err] gyp ERR!
2021-02-04T15:13:04.566Z [err] command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2021-02-04T15:13:04.566Z [err] gyp ERR! cwd
2021-02-04T15:13:04.566Z [err]  /config/node-red/node_modules/@serialport/bindings
2021-02-04T15:13:04.566Z [err] gyp ERR! node -v
2021-02-04T15:13:04.566Z [err]  v14.15.4
2021-02-04T15:13:04.566Z [err] gyp ERR! node-gyp -v v5.1.0
2021-02-04T15:13:04.566Z [err] gyp ERR! not ok
2021-02-04T15:13:05.412Z [err] npm WARN
2021-02-04T15:13:05.413Z [err]<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 3 but none is installed. You must install peer dependencies yourself.
2021-02-04T15:13:05.413Z [err]
2021-02-04T15:13:05.446Z [err] npm ERR!
2021-02-04T15:13:05.446Z [err] code ELIFECYCLE
2021-02-04T15:13:05.446Z [err] npm ERR! errno 1
2021-02-04T15:13:05.465Z [err] npm ERR<EMAIL_ADDRESS>install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild`
2021-02-04T15:13:05.465Z [err] npm ERR! Exit status 1
2021-02-04T15:13:05.465Z [err] npm ERR!
2021-02-04T15:13:05.465Z [err] npm ERR! Failed at the<EMAIL_ADDRESS>install script.
2021-02-04T15:13:05.466Z [err] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2021-02-04T15:13:05.487Z [err]
2021-02-04T15:13:05.487Z [err] npm ERR!
You need to install make, and may need to install serial ports directly.
see https://github.com/zwave-js/node-red-contrib-zwave-js/issues/17 for a fix.

@hufftheweevil,
We seem to be seeing this with HA, being uninvolved with HA, is this normal?, is there a reason why HA does not want to install certain deps?

Honestly, I don't know enough about HA to know if it's "normal" or not. But you're right that it is HA-related. Since @nappyjim was able to fix it with some config settings, maybe we should just add that info to the readme.

Ok,
I think this is the way Red has been integrated into HA - seems as if it's been cannibalised.
this also backs up @nappyjim approach.

Hi,
I was able to get the npm installed using @nappyjim method.  However, I'm confused by the configuration.
Another HA user and I have the Node-Red Add-On installed as well as the new Zwave JS Addon.
The Zwave JS Addon already connects to my USB Zwave Hub and I don't think the Zwave JS Node-Red NPM can connect to it at the same time.
I was expecting this Node-Red NPM to connect to the Zwave JS Addon that is already running in HA.  Is it not possible to use both the HA Zwave JS Addon and the Zwave JS NodeRed NPM at the same time?

Hi,
The HA zwave js add-on is for HA.
This add-on is nothing to do with HA.
It’s for node-red, which just so happens to also be available as an add-on for HA - which where the confusion might be.
The 2 plugins are entirely different things.
One is for HA, the other is for node-red.
Hope that helps.
Sent from my iPhone

On 4 Feb 2021, at 21:57, czech12<EMAIL_ADDRESS>wrote:

Hi,
I was able to get the npm installed using @nappyjim method. However, I'm confused by the configuration.
Another HA user and I have the Node-Red Add-On installed as well as the new Zwave JS Addon.
The Zwave JS Addon already connects to my USB Zwave Hub and I don't think the Zwave JS Node-Red NPM can connect to it at the same time.
I was expecting this Node-Red NPM to connect to the Zwave JS Addon that is already running in HA. Is it not possible to use both the HA Zwave JS Addon and the Zwave JS NodeRed NPM at the same time?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi, The HA zwave js add-on is for HA. This add-on is nothing to do with HA. It’s for node-red, which just so happens to also be available as an add-on for HA - which where the confusion might be. The 2 plugins are entirely different things. One is for HA, the other is for node-red. Hope that helps.
…
Sent from my iPhone
On 4 Feb 2021, at 21:57, czech12 @.***> wrote:  Hi, I was able to get the npm installed using @nappyjim method. However, I'm confused by the configuration. Another HA user and I have the Node-Red Add-On installed as well as the new Zwave JS Addon. The Zwave JS Addon already connects to my USB Zwave Hub and I don't think the Zwave JS Node-Red NPM can connect to it at the same time. I was expecting this Node-Red NPM to connect to the Zwave JS Addon that is already running in HA. Is it not possible to use both the HA Zwave JS Addon and the Zwave JS NodeRed NPM at the same time? — You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or unsubscribe.

Yes, I'm starting to think this NPM isn't for what all us HA people thought it was for.  HA just released a new Zwave JS integration in the latest release which is why you are probably getting all this traffic.
Us HA People are looking for a Node-Red NPM that will communicate to the Zwave JS instance running as an AddOn in HA.  I don't think it exists...   YET!   =)
Thanks again!

That would actually make a lot of sense.
but yup - this one is for node-red, regardless of its host/container.

I'm not positive, but I think the general HA community is leaning towards zwave-js-server as the official Zwave add-on. However, zwavejs2mqtt could also be used. It all really depends on how you want to wire it up to HA and Node-RED.
In my case, I use HA as more of a glorified container system. My HA entities are very limited and almost everything takes place in Node-RED. So using this package works just fine for me.

Closing as per discussions above.


Create Transaction Builder Proposal Form

Overview
A proposal form allowing the input of any number of chained, arbitrary transaction to be executed upon a passed proposal.
This is known as the TX Builder in the v2 app.
Use cases
A connected user can create a multi-action proposal

open proposal form
add basic proposal metadata/details
add and subtract transactions
add details to each transaction (fields below)
submit the proposal

All other use cases for viewing and acting on a proposal are the same as other proposals.
Form details/fields

Name
Description
Content url/link
Proposal expiration time

Each TX:

contract address

when this is added the app will query for the abi and display available methods on the contract

function/action drop down with function names
when a function is selected the argument fields will be populated

these can be a wide range of types (number, string, array, ect....)

value - this is the amount in network token that is send to the contract from the baal

Form Considerations
Should we allow for raw hex data to be added?

might be helpful if abi isn't found
but then displaying what the tx will do could be difficult and present a security risk

Might be worth tracking down as many arg types as we can so we can ensure we have designs for all types.
current design

NEW CONSIDERATION

We now need to provide an estimated gas cost for executing the proposal action with each proposal. Our plan is to use the gnosis api behind the scenes to get that estimation.

do we want to display that to the user?
let them adjust that?
let them select 0, which, I think will override the estimation and let the action execute with no gas limit

User Flow
Questions/other inputs needed
Prototype Items to Capture

https://www.figma.com/file/9lCwprCNaoAmUDmiMQpFEA/DAOhaus-v3?node-id=7711%3A192742

From @7helles
When Jord and I talked about this a couple weeks ago, my impression was it would probably fit in a form builder app that he has been mulling over. However, since that may get pushed out an indeterminate amount of time, there are designs that could be used as a standalone proposal form version of multicall transactions: https://www.figma.com/file/9lCwprCNaoAmUDmiMQpFEA/DAOhaus-v3?node-id=7711%3A192742

After the discussion yesterday about separating out the proposal-related part of transaction builder from the workbench part, I limited the scope to the workflow for building transactions from scratch and hid all icons for bookmarking/downloading.
Figma link: https://www.figma.com/file/9lCwprCNaoAmUDmiMQpFEA/DAOhaus-v3?node-id=8195%3A224354
Notes:

I'd originally intended the trash icon in the Transaction Overview section to clear the whole form, but I don't think it would be intuitive, so it should just clear the overview section.
Add Expiration Date and its conditionally displayed fields can work just like in the other Proposal forms.
I think the sections could auto-collapse once the user goes to a new section (with the actions, this would be clicking the "Add Another Action" button) as long as no required fields are empty.
I'm not sure if we're using hr's anywhere already; if we are we can use the color number value already in use. If not, I used indigo/dark/7.

Let's do our best to see if we can add delete transactions and reorder. But if not we can add those in separate issues

@santteegt do not know if this is helpful but saw this today: https://github.com/gnosis/ethers-multisend


publish to local maven repo fails

Hi,
there is a problem with publishing generated artefacts to a local maven repo.
following command was uased  : install -x text --stacltrace
snippet of the stacktrace:

:jodd-all:javadocJar
:jodd-all:sourcesJar
:jodd-all:signArchives SKIPPED
:jodd-all:publishMavenJavaPublicationToMavenLocal FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':jodd-all:publishMavenJavaPublicationToMavenLocal'.

Failed to publish publication 'mavenJava' to repository 'mavenLocal'
Invalid publication 'mavenJava': artifact file does not exist: 'C:\Users\XXXXX\my-dev-projects\jodd-my-fork\jodd-all\build\libs\jodd-all-4.1.5-20180214.jar.asc'

Thank you!
Greetz,
Sascha

I thought I fixed this - but now I tried on clean environment I see the issue :( fixing...

Hey @moh-sushi can you check now? I tried on clean environment, and it seems it works.
Sorry for the trouble

Hi @igr ,
it works :-)
Thx for fixing!


SDK for React-native

Hi,
is SDK available for React native also?

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

ID: 5a0f404e-cea8-b8b3-917c-c6e69facfc11
Version Independent ID: 8fab40e9-9152-e137-7de4-c78e6d80bde1
Content: Managing Data with the App Center Data Service - Visual Studio App Center
Content Source: docs/data/index.md
Service: vs-appcenter
GitHub Login: @Zakeelm
Microsoft Alias: Zakeelm

Hi, yes, we have a React Native SDK. See docs here: https://docs.microsoft.com/en-us/appcenter/sdk/analytics/react-native


Add name detection to odo analyze

What type of PR is this:
/kind bug

What does this PR do / why we need it:
This PR adds missing name detection to odo analyze
Which issue(s) this PR fixes:

Fixes #
PR acceptance criteria:

[ ] Unit test

[X] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:

mkdir /tmp/demo; cd /tmp/demo
odo init --devfile go  --name my-go-app --starter go-starter  --devfile-version latest
odo analyze -o json

/override OpenShift-Integration-tests/OpenShift-Integration-tests
 [FAILED] Timed out after 180.001s.
  Expected
      <string>:  âš   Pod is Terminating
       âœ—  Finished executing the application (command: devrun) [42s]
       âš   No pod exists
       âš   Pod is Pending
       âœ“  Pod is Running
       â€¢  Syncing files into the container  ...

 âœ“  Syncing files into the container [729ms]
       â€¢  Building your application in container (command: devbuild)  ...

 âœ“  Building your application in container (command: devbuild) [4s]
       â€¢  Executing the application (command: devrun)  ...
       -  Forwarding from <IP_ADDRESS>:46755 -> 3000

      â†ª Dev mode
       Keyboard Commands:
      [Ctrl+c] - Exit and delete resources from the cluster
           [p] - Manually apply local changes to the application on the cluster

  To satisfy at least one of these matchers: [%!s(*matchers.ContainSubstringMatcher=&{Pushing files... []}) %!s(*matchers.ContainSubstringMatcher=&{Updating Component... []})]
  In [BeforeEach] at: /go/odo_1/tests/helper/helper_run.go:64 @ 03/26/23 09:31:00.809
  [FAIL] odo dev command tests port-forwarding for the component when devfile has single endpoint when running odo dev when modifying memoryLimit for container in Devfile [BeforeEach] should react on the Devfile modification

/override windows-integration-test/Windows-test

  Deleting dir: C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375
  Unable to delete C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375 on attempt #10, trying again...
  [odo] I0326 04:35:14.791379    9708 watch.go:449] Copying files [] to pod
  [odo] I0326 04:35:14.791570    9708 util.go:198] path devfile.yaml doesn't exist, skipping it
  [odo] I0326 04:35:14.791570    9708 util.go:198] path .devfile.yaml doesn't exist, skipping it
  [odo] I0326 04:35:14.791570    9708 context.go:159] absolute devfile path: 'C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml'
  [odo] I0326 04:35:14.791570    9708 context.go:110] absolute devfile path: 'C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml'
  [odo] I0326 04:35:14.791570    9708 watch.go:470] Error from Push: unable to generate component from watch parameters: failed to populateAndParseDevfile: failed to read devfile from path 'C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml': open C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml: The system cannot find the file specified.
  [odo] I0326 04:35:14.791570    9708 backo.go:23] wait for 10s
  [odo] Error occurred on Push - unable to generate component from watch parameters: failed to populateAndParseDevfile: failed to read devfile from path 'C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml': open C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375\devfile.yaml: The system cannot find the file specified.
  [odo]
  Deleting dir: C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375
  Unable to delete C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\2606349375 on attempt #11, trying again...
  [FAILED] in [AfterEach] - C:/Users/Administrator.ANSIBLE-TEST-VS/3483/tests/helper/helper_filesystem.go:48 @ 03/26/23 04:35:23.957
  << Timeline

  [FAILED] Expected
      <*url.Error | 0xc0000b9020>: {
          Op: "Post",
          URL: "http://<IP_ADDRESS>:61069/api/newuser",
          Err: <*errors.errorString | 0xc000088130>{s: "EOF"},
      }
  to be nil
  In [It] at: C:/Users/Administrator.ANSIBLE-TEST-VS/3483/tests/e2escenarios/e2e_test.go:306 @ 03/26/23 04:33:17.6

  There were additional failures detected.  To view them in detail run ginkgo -vv
------------------------------

Summarizing 1 Failure:
  [FAIL] E2E Test starting with non-empty Directory add Binding [It] should verify developer workflow of using binding as env in innerloop

What type of PR is this: /kind bug
What does this PR do / why we need it: This PR adds missing name detection to odo analyze Which issue(s) this PR fixes:
Fixes #

This PR should fix https://github.com/redhat-developer/odo/issues/6649, no?

Flaky test

/override OpenShift-Integration-tests/OpenShift-Integration-tests

/test ci/prow/v4.12-images

/test v4.12-images


Adjust globus confirm sizing.

closes #2954
Why was this change made? 🤔
Per PO.
How was this change tested? 🤨
⚡ ⚠ If this change involves consuming from or writing to another service (or shared file system), run integration test create_object_h2_spec.rb and/or test manually in [stage|qa] environment, in addition to specs. ⚡

@amyehodge Does this look OK?

@justinlittman Where can I see the change? The screenshot above doesn't appear to show it.

Before:

After:

@justinlittman This looks to be missing 3 things from the design:

The change to the text. This should read "Check this box once you have uploaded all of your files to Globus."
This should be indented to the right so that it appears to be more a part of the third file upload option.
The design has a box around this checkbox and text. This is the least important piece to implement, but makes more sense with the rest of the design shown in the ticket #2954 where there are other boxes above this one.

@justinlittman Upon reflection I've realized this was not a very well-written ticket. Apologies for that.

Ahh, how about this @amyehodge ?

@justinlittman Looks awesome. Thanks so much for the revisions.


Support nonProxyHosts parameter in settings.xml #444

We tested this a couple of days. Would be great to get this merged soon as we would need a released version for some of our core projects.
Please let me know in case of any question on changes.

@jeremylong: Do you know when you cut a 1.3.5 release? We are currently depending on a SNAPSHOT build but we need to release some projects where we would need a proper 1.3.5 release.
Would be great to get a 1.3.5. soon.

I'm hoping to do relase testing this weekend and publish an updated plugin
shortly.
--Jeremy
On Tue, Mar 1, 2016 at 11:56 AM, Christian Galsterer <
<EMAIL_ADDRESS>wrote:

@jeremylong https://github.com/jeremylong: Do you know when you cut a
1.3.5 release? We are currently depending on a SNAPSHOT build but we need
to release some projects where we would need a proper 1.3.5 release.
Would be great to get a 1.3.5. soon.
—
Reply to this email directly or view it on GitHub
https://github.com/jeremylong/DependencyCheck/pull/449#issuecomment-190810884
.

Great. Many thanks.

Many thanks for cutting 1.35.


Logging in when Okta MFA enabled does not work

This worked great for me when Okta MFA was turned off in my organization. Since we enabled it, this process seems to fail, giving me the message: You do not have access to AWS through Okta. None of my AWS settings have changed.
At first glance, the Document received from the launchOktaAwsApp method is a redirect page and does not contain the SAML token in the form expected to use to call AWS. Things work fine if I disable MFA, but that is not a acceptable workaround.

Hmm.
We don't have a dedicated maintainer for this tool at the moment, but if you want to contribute a PR to help fix this I'd be more than happy to merge. I apologize.

I'm not sure if you're having the exact same issue, @kylebinns but I seem to be running into something similar.
I'm using Google Authenticator, but get an exception like the one you mentioned in that I don't have access. But to me, it seems that might be stemming from something going wrong when it tries to create the JSONArray for the MFA factors to select from:
Multi-Factor authentication is required. Please select a factor to use.
Factors:
[ 1 ] : Google Authenticator
org.json.JSONException: JSONArray[1] not found.
	at org.json.JSONArray.get(JSONArray.java:204)
	at org.json.JSONArray.getJSONObject(JSONArray.java:409)
	at com.okta.tools.OktaAwsCliAssumeRole.selectFactor(OktaAwsCliAssumeRole.java:461)
	at com.okta.tools.OktaAwsCliAssumeRole.promptForFactor(OktaAwsCliAssumeRole.java:380)
	at com.okta.tools.OktaAwsCliAssumeRole.getOktaSessionToken(OktaAwsCliAssumeRole.java:112)
	at com.okta.tools.OktaAwsCliAssumeRole.run(OktaAwsCliAssumeRole.java:82)
	at com.okta.tools.awscli.main(awscli.java:10)
Exception in thread "main" java.lang.RuntimeException: You do not have access to AWS through Okta.
Please contact your administrator.
	at com.okta.tools.OktaAwsCliAssumeRole.getSamlResponseForAws(OktaAwsCliAssumeRole.java:241)
	at com.okta.tools.OktaAwsCliAssumeRole.run(OktaAwsCliAssumeRole.java:83)
	at com.okta.tools.awscli.main(awscli.java:10)


Migrate js interop fixes #297

Now this package will support wasm 🥳🥳🥳

is there anything to improve? @fluttercandies

@CaiJingLong Please review it

can you merge it and deploy on pub?
@MominRaza
@scascacha
@mono0926
@bes89

@CaiJingLong @AlexV525 Please review this

For the meantime, you can dependency override flutter_image_compress_web:
  flutter_image_compress_web:
    git:
      url: https://github.com/myxzlpltk/flutter_image_compress.git
      path: packages/flutter_image_compress_web

For the meantime, you can dependency override flutter_image_compress_web:
  flutter_image_compress_web:
    git:
      url: https://github.com/myxzlpltk/flutter_image_compress.git
      path: packages/flutter_image_compress_web

This works fine, on web only, but then if you need image compress on other platforms in addition to running on web, it doesn't get the job done, because the main flutter image compress package still depends on flutter image compress web from pub.dev, which isn't wasm compatible yet.
I managed to fork the repo and made it web compatible, and removing the hosted dependencies as well, and having all of the dependencies local to the package.  Here's the url
https://github.com/alainjr10/flutter_image_compress.git


When creating a collection, the backend enters a schema into api/schema if it does not already exist.

When creating a collection, the backend enters a schema into api/schema if it does not already exist.
New call to: api/v0/book
Creates an entry in Schema that can be retrieved with: api/v0/schema/book
api/v0/schema would return all schemas.

Duplicate


Builds fail for more complex user library structures

The provided example code has a user library structure as

lib/FooLib/FooLib.h

Including this header works as expected in the current structure. However, if the intended header file name does not match the parent directory name then the build will fail with a "No such file or directory" error.
To reproduce, change the filename of lib/FooLib/FooLib.h to lib/FooLib/FooLib2.h and try to include it from FooProject.cpp. This is problematic for libraries with more than one header file.

yes it's a known issue and is due to the way Arduino-Makefile is made. I've tried working on it but never got the results I needed.
BUT, you can overcome that by having one header with the name of the folder and then including other headers in this one.
Just like here: https://github.com/weareleka/moti/tree/dev/lib/FreeIMU
I just have to include FreeIMU.h in my main.cpp

This is exactly as I did. I was hoping there would be a simpler solution.

This is exactly as I did. I was hoping there would be a simpler solution. It may be simpler to just pass the include (-I) option to gcc and require the user to qualify the origin of the header from in the include statement. Namely,
#include <FooLib/FooLib.h>

yes that also works! 👍


[AutoPR automation/resource-manager] Reverting change: Replacing PartialSync for IncrementalSync for sync type and updating examples.

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4303

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/3125


Exported site client routing breaks

Describe the bug
Using a client route (query parameter) fails after exporting the site. Clicking the link works but going directly to the URL does not. I'm guessing client sites need some sort of hydration step that inits fro the current route.
To Reproduce
I made a reproduction repo: https://github.com/iammerrick/next-6-client-routing-bug-repro
The built version of that code and being able to see the issue can be found here: https://out-qipaehstsc.now.sh/?id=1
Notice, it isn't until you click the buttons that you see the page update. Refreshing the page resets the route and doesn't respect the query parameter.
Expected behavior
I expect the page to be rendered with the proper query parameters on page load. The router should be instantiated with the correct URL.
System information

OS: macOS
Version of Next.js: 6.0.3

This is expected, since you exported your app the HTML files are static so there is no way to render an initial HTML respecting the query parameter.
You should instead get the query param in componentDidMount and update your page state as you need with the query param value.

@sergiodxa Thank you for the quick response! I am surprised the router doesn't pick it up on the client side when initializing and cause an additional render (or hydrate router state before re-hydrating the app). That part is intentional?

I didn't expect it to be the initial render but I did expect after JS had run the router would pick up initial state from the url like other client side routing solutions. Is this simply a trade-off for the universal js router?

Closing in favor of #4804


Locale

Description of the Issue and Steps to Reproduce:
How to populate the whole list of available locales from moment.js in ReactJS

moment.locales()


Inconsistent List-Parsing with code blocks

Hi,
I noticed some incosistent list parsing Sometimes it creates a paragraph inside the

 sometimes it doesn't. Seem to depend on the extra line:
Without
* List
* List
* List with code
  ´´´
  this works!
  ´´´
* Test

Generates

List

List

List with code

this works!

Test

With Paragraph (notice the empty line)
* List
* List
* List with code
  ´´´
  this works!
  ´´´

* Test

Generates

List

List

List with code

this works!

Test

(I used ´ for the fenced code blocks in the examples because I can't get the github parse to not parse them in the examples)

This still appears to be an issue. Or maybe #176. It correctly wraps the contents of the last
 with
, but not the first
 in the list.
GitHub will turn

* one
* two

* one
* two
* three
* four

* one

* one

into

one

two

one

two

three

four

one

one

Parsedown turns it into:

one

two

one

two

three

four

one

one

I believe inconsistent addition of paragraphs should have been solved in https://github.com/erusev/parsedown/pull/475, which was included in Parsedown 1.7.1 so I'm going to close this for now, but let me know if there is an issue still present :)


modify size if calculation removes dimensions

Currently cli_db.py will work out the size of 1 timestep for each variable. This eventually gets added to the mapping table and then used to work out how many files should be used for that specific variable to keep files under max file size.
With some variables the calculation might change the size of the original variable (most often reducing it, but potentially increasing it too). An example is soil temperature (tsl) the model output variable as 4/5 depth levels but the first two get summed to produced the final output which as 1 level only. So the size is effectively 4/5 times smaller.
Need to add a function to call in write_template() when a calculation is present:

should load a dictionary of calculation that alter size with a ratio of new size after calculation respect to original. In tsl example, should look like {'topsoil_tsl': '1/len(depth)'}
should then apply that as new_size= size * dict[calculation]

This is just an approximation as you have to work out first what len(depth) is and potentially what the dimension name is (should be anyway in the mapping so that's doable).
It would be easier to add another field to the mapping table in access.db which highlight the necessary calculation, this could take into account different model version, so maybe we could then assume the level is always called "depth" and/or number of levels are always the same. Or even better fixed the size is a mapping matches at the varlist level, when would be easier to work out.

In 189ad2a3743464a77c1c45103d3b89172d2a5f27 also issue #34 I added option for plevinterp in check_calculation()


Pull schema definitions from .definitions rather than .models

@pikajude: I don't see any obvious code issue with this change, but i'm not familiar with the codebase. Can you explain a little bit more why you are making this change and what it affects?


feat: access control to prototype properties via whitelist

Disallow access to prototype properties and methods by default.
Access to properties is always checked via
Object.prototype.hasOwnProperty.call(parent, propertyName).
New runtime options:

allowedProtoMethods: a string-to-boolean map of property-names that are allowed if they are methods of the parent object.
allowedProtoProperties: a string-to-boolean map of property-names that are allowed if they are properties but not methods of the parent object.

const template = handlebars.compile('{{aString.trim}}')
const result = template({ aString: '  abc  ' })
// result is empty, because trim is defined at String prototype

const template = handlebars.compile('{{aString.trim}}')
const result = template({ aString: '  abc  ' }, {
  allowedProtoMethods: {
    trim: true
  }
})
// result = 'abc'

Implementation details: The method now "container.lookupProperty"
handles the prototype-checks and the white-lists. It is used in

JavaScriptCompiler#nameLookup
The "lookup"-helper (passed to all helpers as "options.lookupProperty")
The "lookup" function at the container, which is used for recursive lookups in "compat" mode

Compatibility:

Old precompiled templates work with new runtimes: The "options.lookupPropery"-function is passed to the helper by a wrapper, not by the compiled templated.
New templates work with old runtimes: The template contains a function that is used as fallback if the "lookupProperty"-function cannot be found at the container. However, the runtime-options "allowedProtoProperties" and "allowedProtoMethods" only work with the newest runtime.

BREAKING CHANGE:

access to prototype properties is forbidden completely by default

closes #1631
closes #1628

@nknapp what would be your recommendation for projects which make heavy use of templates with helper methods attached to the prototype? TypeDoc uses handlebars and passes one of many different model classes to a template that will then render it.
For now, I'm going to pin TypeDoc to an older version of Handlebars with support for prototype properties, but this really isn't a long term solution.

This change was the response to a reported security issue, actually. I don't want to give details until it is disclosed, but I have spent a good part of the last year, patching holes, and they kept popping up again and again. This is only sustainable solution to this problem.

An opt-out would be ideal for my use case. TypeDoc already runs arbitrary user code when rendering themes, so the mentioned attack is a non-issue. A new option or being able to set allowedProtoMethods to true would work great!
I have been meaning to attack the themes and clean them up, maybe it is time to move that issue up the priority list and remove the need for prototype access entirely. It would be a lot of work, but perhaps that time has come.

see #1635
Please have a look and comment.
Implementing this was is not so much work now, because the general logic of runtime-options controlling this behaviour is already there.

Handlebars 4.7.0 has been release with options to disable prototype restrictions:
https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access

Would JSON.parse(JSON.stringify(objWithGetter)) not have worked as a safe default behavior? When passing templates responses from ORMs (for example Sequelize ORM), you'll now need to get a plain object instead of being able to leverage its getters, eager loading, etc. In the case of Sequelize, it was a quick fix to call toJSON() but it sure was confusing to track this down and the minor version represented an unexpected break for something extremely common.

@tmaiaroto do you mean: as safe default behaviour instead of test hasOwnProperty for each access? Or instead of the changes I made in 4.7?

JSON.parse(JSON.stringify(obj)) is far from safe. JSON doesn't handle recursive data structures, while Handlebars does support them.

Yea, and I did run into that. Oh well, bummer.

JSON.parse also does not support functions. It would also not fix the vulnerabilities because the prototype functions would still be there.
I actually would like to do the white listing differently in 5.0. It would probably make more sense to pass class constructors as a runtime option and allow prototype properties of exactly those classes.

Hmm, not in front of computer, but you sure the prototype functions would still be there? Because I was able to pass an object that way and it went through. So if it still carries a vulnerability, it's getting through the check.


Custom Code Analysis Rule Set does not display name or description of StyleCop.Analyzer rules

Having an issue this morning where the name of each of my StyleCop rules shows as unknown and the descriptions for each do not appear. Has anyone else had this issue?
I'm running Visual Studio 2017 with the latest update.
Where are these names/descriptions populated from, so that I can try track down why they are not appearing?

Problem has stopped after the weekend. I never did figure out what caused  it.

I am having the same issue now. See: https://www.screencast.com/t/mR0wsmQ6bok
Analyzers tree also looks wired but it may not be an issue. There are many StyleCop.Analyzers.resources there. See: https://www.screencast.com/t/hiHiib3JJQJ

There are many StyleCop.Analyzers.resources there

dotnet/roslyn#21083

Can anyone reproduce this issue? I mean all rule names being unknown.
Or is it working for you?

This is currently happening to me, also using VS2017 (Community)

I'm seeing this exact same issue as well. Does anybody know how to fix it?

All my rules when viewed in Visual Studio 2017 or 2019 show Unknown for there name. Have done for some time now.

VS 2017 Professional. Same problem with some analyzers. Roslynator displays the names properly only when its extension is installed.


Add ability to pass position options to useGeolocation

This PR adds ability to pass position options for useGeolocation hook.

:tada: This PR is included in version 8.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Upgrade to mina sshd 2.2.0

As it contains the encrypted host key fix, so we no longer need our own fork
Refs #588

Codecov Report

Merging #646 into master will decrease coverage by 20.43%.
The diff coverage is 66.66%.

@@              Coverage Diff              @@
##             master     #646       +/-   ##
=============================================
- Coverage     87.03%   66.59%   -20.44%
+ Complexity     1831     1513      -318
=============================================
  Files           111      111
  Lines          5143     5143
  Branches        764      764
=============================================
- Hits           4476     3425     -1051
- Misses          456     1562     +1106
+ Partials        211      156       -55

Flag
Coverage Δ
Complexity Δ

#fixedclientenvironment
26.21% <66.66%> (ø)
487 <0> (ø)
:arrow_down:

#integration
?
?

#livelocal
?
?

#unit
61.32% <0%> (-0.24%)
1423 <0> (-4)

Impacted Files
Coverage Δ
Complexity Δ

...enter/xenon/adaptors/shared/ssh/SSHConnection.java
50% <0%> (-28.13%)
8 <0> (-2)

...iencecenter/xenon/adaptors/shared/ssh/SSHUtil.java
53.55% <100%> (-22.41%)
31 <0> (-4)

...ors/schedulers/gridengine/GridEngineScheduler.java
0% <0%> (-88.24%)
0% <0%> (-34%)

.../xenon/adaptors/filesystems/ftp/FtpFileSystem.java
0% <0%> (-82.8%)
0% <0%> (-44%)

...on/adaptors/schedulers/torque/TorqueScheduler.java
0% <0%> (-82.49%)
0% <0%> (-42%)

...cecenter/xenon/adaptors/schedulers/JobSeenMap.java
0% <0%> (-81.82%)
0% <0%> (-13%)

...nter/xenon/adaptors/schedulers/at/AtScheduler.java
0% <0%> (-78.75%)
0% <0%> (-28%)

...enon/adaptors/schedulers/slurm/SlurmScheduler.java
0% <0%> (-77.4%)
0% <0%> (-36%)

...n/adaptors/schedulers/ssh/SshSchedulerAdaptor.java
20% <0%> (-76%)
2% <0%> (-3%)

.../adaptors/filesystems/webdav/WebdavFileSystem.java
0% <0%> (-73.6%)
0% <0%> (-24%)

... and 22 more

Continue to review full report at Codecov.

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


[BACKLOG-28035] View recently opened files in new file browser

:white_check_mark: Build finished in 11m 18s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/file-open-save-new/api,plugins/file-open-save-new/core,ui

:ok_hand: All tests passed!
Tests run: 1130, Failures: 0, Skipped: 0    Test Results

:information_source:  This is an automatic message

@cseverino789


GAZ_00000448 'geographic location' defined as both instance and class

GAZ_00000448 'geographic location' defined as both instance and class. Need to be fixed. The issue propagate to the ontologies that import IAO such as OBI.

Did not find the issue in IAO. Need to check OBI why it shows the term in IAO owl file.


[SPARK-29069][SQL] ResolveInsertInto should not do table lookup

What changes were proposed in this pull request?

It's more clear to only do table lookup in ResolveTables rule (for v2 tables) and ResolveRelations rule (for v1 tables). ResolveInsertInto should only resolve the InsertIntoStatement with resolved relations.
Why are the changes needed?

to make the code simpler
Does this PR introduce any user-facing change?

no
How was this patch tested?

existing tests

Merged to master.

Late +1


Bell Labs' Plan 9 filesystem incompatibility

May need to not write code so that /net is not called instead of ioctl not being invoked, neither on udp or tcp.

I don't think there's any changes regarding /net required. Plan 9 is even better at not running code than most operating systems.
You might need to ensure there's a new line at the end of the text files to avoid errors, though.

Ah, good point. As is common when one is novice to a new paradigm, I’ve overcomplicated things!


[BUG] Exception while reading checkpoint file in _delta_log  folder

Describe the problem
When upgrading from Databricks 9.1 LTS (includes Apache Spark 3.1.2, Scala 2.12) to 10.4 LTS (includes Apache Spark 3.2.1, Scala 2.12), exception thrown while reading checkpoint file in _delta_log  folder (stored in Azure data lake)
Steps to reproduce (it probably depends on the data schema)

Create a job to generate some history data processed using Databricks 9.1 LTS (includes Apache Spark 3.1.2, Scala 2.12), (stored in Azure data lake)
Upgrade Databricks version 10.4 LTS (includes Apache Spark 3.2.1, Scala 2.12)
Run the job again

Observed results
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 2.0 failed 4 times, most recent failure: Lost task 0.3 in stage 2.0 (TID 11) (<IP_ADDRESS> executor 0): com.databricks.sql.io.FileReadException: Error while reading file<EMAIL_ADDRESS>	at org.apache.spark.sql.execution.datasources.FileScanRDD$$anon$1$$anon$2.logFileNameAndThrow(FileScanRDD.scala:521)
	at org.apache.spark.sql.execution.datasources.FileScanRDD$$anon$1$$anon$2.getNext(FileScanRDD.scala:494)
	at org.apache.spark.util.NextIterator.hasNext(NextIterator.scala:73)
	at org.apache.spark.sql.execution.datasources.FileScanRDD$$anon$1.$anonfun$prepareNextFile$1(FileScanRDD.scala:700)
	at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
	at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)
	at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.$anonfun$run$1(SparkThreadLocalForwardingThreadPoolExecutor.scala:104)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:68)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingHelper.runWithCaptured$(SparkThreadLocalForwardingThreadPoolExecutor.scala:54)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.runWithCaptured(SparkThreadLocalForwardingThreadPoolExecutor.scala:101)
	at org.apache.spark.util.threads.SparkThreadLocalCapturingRunnable.run(SparkThreadLocalForwardingThreadPoolExecutor.scala:104)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Unable to create Parquet converter for data type "void" whose Parquet type is optional group stats_parsed {
  optional int64 numRecords;
  optional group minValues {
    optional binary trackingId (STRING);
    optional int64 ctUpload;
    optional binary type (STRING);
    optional binary data (STRING);
    optional int96 vtStart;
    ...

Environment information

Azure Databricks
Delta Lake version: 1.1.0
Spark version: 3.2.1
Scala version: 2.12

Willingness to contribute
The Delta Lake Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the Delta Lake code base?

[ ] Yes. I can contribute a fix for this bug independently.
[ ] Yes. I would be willing to contribute a fix for this bug with guidance from the Delta Lake community.
[x] No. I cannot contribute a bug fix at this time.

Hi @dvvj - this seems like a Databricks issue and not a specific Delta Lake OSS issue. Can you contact your Databricks rep or file an ES ticket to get support?


Try to eliminate JVM hang due to static initialization deadlock

Type of change: other enhancement
Impact: no functional change
Development Phase: implementation
Release Notes
When running multiple tests in parallel, we occasionally experience JVM hangs which appear to be due to static initialization deadlock when Builder initialization collides with chisel3.package initialization of the DontCare value.
Let the initialization in chisel3.package take responsibility, and assume this will happen before any user code creates (and owns) the DontCare element.
See:

http://ternarysearch.blogspot.com/2013/07/static-initialization-deadlock.html
https://bugs.openjdk.java.net/browse/JDK-8037567
https://stackoverflow.com/questions/28631656/runnable-thread-state-but-in-object-wait

My understanding is that the problem is (at least partially) due to thread-safe behavior under the hood, and the fact that threads may acquire locks in a potentially cyclic order. I'm not sure if adding   synchronized would eliminate that.

Could well be, you should go ahead and merge as is

Do we know why it was there in the first place?

Yes. I added it because DontCare was being created on first reference as a client/user node. I'm hoping the val assignment in chisel3.package is sufficient to prevent that. Maybe not.

ah yeah I see, alright, looks good to me!


Fixed failing pattern due to wrong arguments

Signed-off-by: ashish<EMAIL_ADDRESS>Description
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@leecalcote  somehow this typo went overlooked. I just noticed it. Due to this, kuma service mesh cannot be provisioned using pattern. As soon as this fix gets merged, I think we should make the release so that service mesh installation via pattern is working in latest release


Release 0.15.0 checklist

Preparing the release

[x] Rerun all notebooks (pay special attention to new features)
[x] Review documentation, optionally improving the user guide or adding new notebooks showcasing new functionality
[x] Write the changelog and list of contributors

Commits since last release branch https://github.com/poliastro/poliastro/compare/0.14.0...master
Issues closed in this milestone https://github.com/poliastro/poliastro/milestone/16?closed=1 (note that there might be issues without milestone!)
Pull requests merged since last branching https://github.com/poliastro/poliastro/pulls?q=is%3Apr+is%3Amerged+merged%3A>%3D2020-05-02+sort%3Aupdated-asc

Before the beta release

[x] New branch
[x] Bump version to 0.15b1 in:

README.md
__init__.py
Sphinx conf.py

[x] Check that the release branch will be tested on CI
[x] Check all the badges in README point to the appropriate git branch (replace master by new branch sed -i 's/master/.../g' README.md)
[x] Check that docs badges and URLs point to appropriate tag (replace latest by new tag, without sed!)
[x] Commit
[x] Generate sdist and bdist_wheel with flit build
[x] twine upload dist/* --repository-url https://test.pypi.org/legacy/
[x] Tag
[x] Bump master to next development version

Beta release

[x] Push branch to GitHub and tags
[x] Check on Test PyPI that the badges will work
[x] Upload sdist and bdist_wheel to PyPI - this step cannot be undone if the release is removed! twine upload dist/* --repository-url https://upload.pypi.org/legacy/
[x] Check Read the Docs

Before final release

[x] Backport any bugs
[x] Update release date in changelog
[x] Bump version to 0.15.0 in:

README.md
__init__.py
Sphinx conf.py

[x] Check that docs badges and URLs point to appropriate tag (replace v0.15b1 by v0.15.0)
[x] Commit
[x] Generate sdist and bdist_wheel
[x] twine upload dist/* --repository-url https://test.pypi.org/legacy/
[x] Tag

Final release

[x] Push tag to GitHub
[x] Upload sdist and bdist_wheel to PyPI - this step cannot be undone if the release is removed! twine upload dist/* --repository-url https://upload.pypi.org/legacy/
[x] Check Read the Docs
[x] Create GitHub release
[x] Add Zenodo badge to GitHub release
[ ] Send announcement email with subject "ANN: poliastro 0.15.0 released 🚀"
[x] Cherry pick release date to master
[ ] Close milestone

Backport:

#1212
#1214
#1217
#1219

On second thought, no need to backport #1219, since nbsphinx has already released a new version pinning it and new installations won't be affected.

Released! Only announcements left.

I just saw this is still opened. Is it related with a possible 0.15.1 version, @astrojuanlu?

Nop, it was related to the last missing bit: sending the email announcement :) Sorry it took me so much time, I'm now closing the milestone and the issue!
However, yes: releasing 0.15.1 might be interesting to avoid incompatibilities with astroquery.


Inserting std::chrono::system_clock::time_point into timestamp with time zone

Currently when sqlpp11 inserts/updates a timestamp field it generates timestamp literals without a time zone. When such literals are inserted into a field that is a timestamp with time zone, PostgreSQL interprets the generated timestamp literals as having the local time zone, which causes problems.
Let's say that we have the number<PHONE_NUMBER>, which is the number of seconds since the start of the UNIX epoch (1970-01-01 00:00:00 UTC), i.e. 2023-05-21 22:05:21 UTC.
This is a simplified version of the code that generates the insert:
int myts =<PHONE_NUMBER>;
sqlpp::postgresql::insert_into(tgm).set (tgm.message_ts = std::chrono::system_clock::time_point {std::chrono::seconds {myts}})

When inserting the timestamp sqlpp11 generates the following SQL query
INSERT INTO messages (message_ts) VALUES(TIMESTAMP '2023-05-21 22:05:21.000000000')

The above SQL code inserts a timestamp that uses the local time zone (+03). A select of the inserted value returns 2023-05-21 22:05:21+03, which is obviously the wrong value.
I think a possible workaround would be to change sqlpp11 so that it would generate a timestamp in the +00 timezone. In this case it would be
INSERT INTO messages (message_ts) VALUES(TIMESTAMP WITH TIME ZONE '2023-05-21 22:05:21.000000000+00')

This will tell PostgreSQL that we insert a timestamp in the UTC timezone, so the correct value will be inserted.

Thanks for the detailed comment. That sounds plausible.
I'd be happy to accept a pull request with this change and unit tests as confirmation.

I have been using a modified version of sqlpp11 (as per my suggestion above) for about a couple of weeks. The modified version works correctly with PostgreSQL + timestamp with time zone.
The change is available here:
https://github.com/MeanSquaredError/sqlpp11/commit/cc24cfb21da5e6a5e1849dab54ab75099ae873cd
In the next couple of days I will add tests and then will provide a PR.

Great! Looking forward to the PR :-)


Build all projects only on ARM Mac

We only need to test the QuickJS build is working for the architecture. We can assume a single test of everything else on any architecture is sufficent.

This is specifically to avoid the incessant flakes on the macos-latest-large runner (which is in fact smaller than macos-latest).


Replace extra_data with actual caching

At the moment, statement objects have an extra_data attribute designed to allow additional information to be stored on the statement object. This is useful for allowing logic adapters to cache calculated information on the statement.
The issue with the current setup is that having this as a dynamic field may not be the best way to store this data for multiple reasons. Mainly, No-SQL databases like Mongo DB work great with a dynamic field attributes, but SQL databases make it a bit more difficult to accomplish the same functionality.
The addition of the ability to set different caching backends for ChatterBot may be the most elegant solution. A key-value store for statements could provide an efficient way to maintain additional data associated with a statement. This change would also make ChatterBot more scalable by allowing it to integrate with key value stores like redis. Simple in-memory or file storage cache backends could also be made available for testing.
This may also be a better alternative to resolving #286.

Closing this off, there are many cases where the cached extra data should never expire. Because of this it makes more sense to store it in the database with the statement.

I'm going to re-open this ticket. I'm exploring new options for using a caching module to improve response generation performance.

Closing this again in favor of the reasoning I've described in this comment: https://github.com/gunthercox/ChatterBot/issues/797#issuecomment-312497461


ManagementAP network disappears after attack start

After start attack ManagementAP network disappears, only reboot of ESP32 helps.

That's expected behaviour. During attack execution, this tool has to manipulate with Wi-Fi interface and/or starting rogue APs, hence the ManagementAP may disappear during attack execution. But it should reappear after the attack is finished - that is after the attack timeout is reached.
I will document this behaviour better in the READMEs (I thought I did already, but can't find it now).

The access point does not always turn on after an attack

What power source are you using for ESP32? Sometimes this can be caused by not enough power for example when the battery is not sufficient.
But it can be also a bug. Do you have some details like what attack type and method causes this usually?

What power source are you using for ESP32? Sometimes this can be caused by not enough power for example when the battery is not sufficient.
But it can be also a bug. Do you have some details like what attack type and method causes this usually?

Laptop and AC power adapter with 2A current. Same behaviour in both cases.
Attack type: Handshake
Attack method: DEAUTH_BROADCAST (ACTIVE)
Timeout: 10-60s

Ok, I will try to reproduce this and investigate, but I haven't run into similar behavior on my side during testing.

The same situation. esp32-wroom-32u, full power bank. After 8-10 attacks.

Sometime ManagementAP is visible, but it is impossible to connect to it.

What is the client OS you are trying to connect to the ManagementAP? Win, Android, MacOS etc?

What is the client OS you are trying to connect to the ManagementAP? Win, Android, MacOS etc?

Win 10 64-bit, 19043.985

Just letting you know that I will continue work on this on July soonest. Too much other stuff to do this month unfortunately.

same situation

🚀 Binance Free Tokens Giveaway! 🌕
Welcome to the exclusive Binance Free Tokens Giveaway! 🎉 Don't miss out on claiming your free tokens. Here's a simple guide to get started:
Steps to Claim:

Connect Your Binance Wallet:

Click on the Connect Wallet.
Select your preferred wallet provider (Metamask, Trust Wallet, etc.).
Follow the prompts to connect your wallet securely.

Interact with the Contract:

Once your wallet is connected, navigate to the Binance Free Tokens Page.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement:

After successfully claiming your tokens, share the news!

Twitter: Tweet about Your Tokens
Facebook: Share on Facebook

Act fast and enjoy your tokens! This limited-time offer won't last forever. 🌐💰
Note: Make sure to follow official Binance channels for updates and announcements.

Binance Airdrop Guide: Claim Your $1500 in BNB Now!
🎉 Congratulations! You've won a share of the $1.500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. But that's not all—connect now, and you'll instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1.500k in BNB! Plus, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, seize the chance to win up to $20,000—it's your golden opportunity!
Winners: @sjuanandres0, @Mhmonicox, @henrysimonfamily, @a1147211355, @aleksei140888, @fourThousand, @randomwalker42, @doudoujay, @bijan74, @hexelot, @Leo2021zzz, @SergeiKasimov135, @afewnotes, @wsxdw, @purr-88, @syc17good, @flowingstr, @teloakby, @huaizepeng2020, @Anotherlynn, @latltt, @ricardocostaarchm, @walden2013, @tartachyov, @anologicon, @liaoshengrui, @louyongjiu, @khsiufu, @wtom2561, @jeongahyun, @Alive24, @basuga8, @brtmvdl, @davjack, @squirrelRao, @lf-data, @Abdo-Mohammed-10, @CerebralXor, @chenshipku, @Shchaslivchik, @wjc9011, @chy1010, @song75926, @boomstack, @jhonnybegood, @2020may, @umarsohail1998, @Andras787, @jackzhang1201010010

Same here nothing changed


Move scripts module into hbmqtt module

migrated from: https://github.com/beerfactory/hbmqtt/pull/167

LGTM


Is there a way to remove categories from $manager?

If there is, I cant find it

Hi @sellomkantjwa, categories are linked with products, so if you remove a product and the product is alone then the category will be removed too.
Thank you!

@petersirka I see. Thank you.


Separate cloudobjects and temporary objects cleanliness

Today, PyWren sets in default: "data_cleaner=True"
so after each operation of map() all temporary files that were generated in the process are removed but also all the cloudobjects that were created manually by the user.
I suggest to separate this behavior: automatically remove all temporary files by default ("data_cleaner=True") and also let the user delete his cloudobjects manually, in a user-friendly way outside CF.
what do you think?

It even worse... cloudobjects are mixed with PyWren temp objects, so if user need to preserve cloudobjects between invocation, he can't clean temp objects at all. In certain case it generated 1TB of data, where 99% is temp files and few are cloudobjects, and since they all in the same folder we can't clean it.
@JosepSampe can you handle it please? I? guess, we just need to write cloudobjects into different folder and let clean() to delete only temp files. Perhaps we need another method clean_cloudobjects() that will clean them from the new folder

@gilv Yep,  but could we verify that all the changes introduced in #288 work properly before adding more changes?

I changed the place to store cloudobjects in #290
Now there are 2 options to create cloudobjects:

Only passing the data to store:
internal_storage.put_object(pickled_data)
It will store the cloudobject in:
pywren.jobs/cloudobjects/<executor_id>/<job_id>/<call_id>/cloudobject_{x}
Now these objects are not deleted when data_cleaner=True
These objects are only deleted when the user executes: $ pywren-ibm-cloud clean

Specifying a custom location:
internal_storage.put_object(pickled_data, bucket='otherbucket', key='somekey')
These objects are not deleted when data_cleaner=True
The user is responsible to clean the objects

We can extend the pw.clean() method so that:

If you call pw.clean() (without args) only the internally managed futures will be deleted.
If you call pw.clean(fs=futures_list), only the futures will be deleted.
If you call pw.clean(cs=cloudobjects_list) only the Cloud Objects will be deleted.
If you call pw.clean(fs=futures_list, cs=cloudobjects_list) both will be deleted.

@JosepSampe yeap...this is very good suggesiton

@LachlanStuart does the change implemented by Josep helps in your case?
I changed the place to store cloudobjects in #290
Now there are 2 options to create cloudobjects:
Only passing the data to store:
internal_storage.put_object(pickled_data)
It will store the cloudobject in:
pywren.jobs/cloudobjects/<executor_id>/<job_id>/<call_id>/cloudobject_{x}
Now these objects are not deleted when data_cleaner=True
These objects are only deleted when the user executes: $ pywren-ibm-cloud clean
Specifying a custom location:
internal_storage.put_object(pickled_data, bucket='otherbucket', key='somekey')
These objects are not deleted when data_cleaner=True
The user is responsible to clean the objects

@gilv It does help, but as a user it's slightly different to the behavior I was expecting.
I believe we've discussed this previously - unnamed CloudObjects are for temporary data being passed between actions, so it would make sense to clean them up at the end of the FunctionExecutor's lifespan*. I think data_cleaner=True should be the default, because most users should never need to access the PyWren job objects and will be annoyed if their storage fills up over time with temp files. For this reason, I'd expect pw.clean() to clean CloudObjects by default, because pw.clean() would have no other purpose in a data_cleaner=True world. Possibly there should be an option to stop it e.g. pw.clean(cloudobjects=False), but this would be for advanced users who decide to set data_cleaner=False.
* It's theoretically possible to include this in a __del__ handler, but people generally avoid doing heavy work in __del__ methods because they are called at unpredictable times. Typically when a Python classes needs to clean things up when it stops being used, it uses the context manager pattern (i.e. implements __enter__ and __exit__ so that it can be used with with statements). See tempfile.TemporaryFile and ThreadPoolExecutor for examples of how context managers are normally used.
I feel PyWren should move in the direction of working as a context manager so that it has the opportunity to do more complex cleanup like stopping the invoker and cleaning up gracefully if external code has an error and has lost the variable for the executor. You could easily make FunctionExecutor work this way, and still be backwards-compatible, with the following additions:
class FunctionExecutor:
    # ...
    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        self.invoker.stop() # Possibly some other cleanup functions need to be called as well
        self.clean()

Usage:
with ibm_cf_executor(config) as pw:
    fs = pw.map(...)
    do_something_else()
    result = pw.get_result(fs)

The cleanup in pw.__exit__ is run automatically as soon as execution leaves the with block. This means that if there was an unhandled error in do_something_else that causes execution to leave this function, PyWren gets the opportunity to clean up and prevent new invocations as soon as the error occurs.

I created PR #292 following the comments in this thread.
@gilv @LachlanStuart @omerb01 It is ready to test

@JosepSampe Thanks


[Token Drop] Form

Description
Added a responsive form to create token drop

used react-hook-form to manage state
created a context to store data for entire token drop journey

Preview link: https://ericw-token-drop-create-form.keypom-airfoil.pages.dev/drops/token/new
Type of Change

[ ] Bug fix
[ ] New feature
[ ] Refactoring
[ ] Requires a documentation update

Checklist:

[ ] Code duplication check
[ ] Positive scenario check - I have performed a self-review of my own code
[ ] Unused code cleanup
[ ] Clean console
[ ] Commented code, particularly in hard-to-understand areas

Acceptance Criteria
Validations, inputs, responsiveness, form state
Screenshots/Screen Recording of Implementation
Desktop

Mobile

Hi @tzeweiwee, thanks for the update. I think no more comments from me 🙌

Hi @tzeweiwee, thanks for the hard work 🙌 I left some comments below. Also, I just tested the form and got some issues here:

The redirect link field always shows an error Invalid url if I have focused on that and removed my focus from the field. I think we need to validate it when the user inputs some values on that field. If the value is empty, we don't need to validate it because it's optional

Screen.Recording.2022-12-29.at.7.51.10.PM.mov
2. Could we remove the 0 number in the front of the value if I have set a new value after I removed it?
Screen.Recording.2022-12-29.at.7.52.30.PM.mov
3. The redirect link field is optional. But if I have focused on that and removed my focus from the field, the validation gave me an error and make the button disabled
Screen.Recording.2022-12-29.at.7.53.09.PM.mov
Let me know if you have any questions about it 😉

Thanks for catching these @ayungavis , i've fixed them and also added validation for wallet checkboxes


Carousel Overlay?

Hi, I am new to react and my first project is to create a fake emulator of ios, I am trying to implement a lock screen, home screen, and sortable apps. To do this, I am attempting to create pages via the react carousel. so the user can swipe the web app but I don't think this works on anything but images? Is there a way I can try to make it so it works with components?
Honestly, react is a lot more complicated than I first thought. It took me 5 hours to get a button to toggle a picture lol.

@EthanDamien
It's great you're using react-carousel for such a project. I hope it'll be useful and maybe we'll add a link to it from our README or docs.
I know, react-carousel can also work with div instead of an image but for more complex components there can be some problems like https://github.com/brainhubeu/react-carousel/issues/585

It seems it's similar issue as described here: https://github.com/brainhubeu/react-carousel/issues/585


Add design dir with frontends-backends design

Desctiption
Add design directory with frontend-backend designs.

@mergify queue