Improve Interactive Widget

It would be nice to finally add interactive widgets without having to use the full blown kweb
I have managed to get it done in kfactory and I assume gdsfactory probably also wants that ;)
https://github.com/gdsfactory/kfactory/blob/more-docs/src/kfactory/widgets/interactive.py
the displaying (in case of kfactory, but should be easy for gdsfactory as well)
    def _ipython_display_(self) -> None:
        from IPython.display import Image, display  # type: ignore
        from .widgets.interactive import LayoutWidget

        lw = LayoutWidget(cell=self)
        display(lw.widget)  # type: ignore

for completeness the code for the widget:
try:
    from threading import Timer
    from time import time
    from typing import Any, Callable, Optional

    import klayout.db as db
    import klayout.lay as lay
    from ipyevents import Event  # type: ignore[import]
    from ipywidgets import (  # type: ignore[import]
        HTML,
        Accordion,
        AppLayout,
        Button,
        HBox,
        Image,
        Label,
        Layout,
        Tab,
        VBox,
    )

    from ..kcell import KCell, KLib

except ImportError as e:
    print(
        "You need install jupyter notebook plugin with `pip install gdsfactory[full]`"
    )
    raise e

from threading import Thread
from time import sleep

def throttle(wait: float) -> Callable[..., Callable[..., None]]:
    """Decorator that prevents a function from being called
    more than once every wait period."""

    def decorator(fn: Callable[..., None]) -> Callable[..., None]:
        time_of_last_call: float = 0
        scheduled, timer = False, None
        new_args, new_kwargs = None, None

        def throttled(*args: Any, **kwargs: Any) -> None:
            nonlocal new_args, new_kwargs, time_of_last_call, scheduled, timer

            def call_it() -> None:
                nonlocal new_args, new_kwargs, time_of_last_call, scheduled, timer
                time_of_last_call = time()
                fn(*new_args, **new_kwargs)  # type: ignore
                scheduled = False

            time_since_last_call = time() - time_of_last_call
            new_args, new_kwargs = args, kwargs
            if not scheduled:
                scheduled = True
                new_wait = max(0, wait - time_since_last_call)
                timer = Timer(new_wait, call_it)
                timer.start()

        return throttled

    return decorator

class LayoutWidget:
    def __init__(
        self,
        cell: KCell,
        layer_properties: Optional[str] = None,
        hide_unused_layers: bool = True,
        with_layer_selector: bool = True,
    ):
        global i
        layer_properties = str(layer_properties)
        self.hide_unused_layers = hide_unused_layers
        self.layer_properties = layer_properties

        self.layout_view = lay.LayoutView()
        # self.load_layout(filepath, layer_properties)
        self.layout_view.show_layout(cell.klib, True)
        self.layout_view.max_hier()
        self.layout_view.active_cellview().show_cell(cell)
        self.layout_view.resize(800, 600)
        png_data = self.layout_view.get_screenshot_pixels().to_png_data()

        # if self.hide_unused_layers:
        #     self.layout_view.remove_unused_layers()
        #     self.layout_view.reload_layout(self.layout_view.current_layer_list)

        self.image = Image(value=png_data, format="png")
        self.refresh()
        scroll_event = Event(source=self.image, watched_events=["wheel"])
        scroll_event.on_dom_event(self.on_scroll)
        # self.wheel_info = HTML("Waiting for a scroll...")
        # self.mouse_info = HTML("Waiting for a mouse event...")
        self.layout_view.on_image_updated_event = self.refresh  # type: ignore[attr-defined]
        mouse_event = Event(
            source=self.image, watched_events=["mousedown", "mouseup", "mousemove"]
        )
        mouse_event.on_dom_event(self.on_mouse_down)

        if with_layer_selector:
            layer_selector_tabs = self.layer_selector_tabs = self.build_layer_selector(
                max_height=self.layout_view.viewport_height()
            )
        else:
            layer_selector_tabs = None
        # self.layout_view.on_image_updated_event = lambda: self.refresh()

        self.widget = AppLayout(
            center=self.image,
            right_sidebar=layer_selector_tabs,
            left_sidebar=None,
            # footer=VBox([self.wheel_info, self.mouse_info]),
            align_items="top",
            justify_items="left",
        )

    def button_toggle(self, button: Button) -> None:
        button.style.button_color = (
            "transparent"
            if (button.style.button_color == button.default_color)
            else button.default_color
        )

        layer_iter = self.layout_view.begin_layers()

        while not layer_iter.at_end():
            props = layer_iter.current()
            name = (
                props.name
                if props.name
                else f"{props.source_layer}/{props.source_datatype}"
            )
            if name == button.layer_props.name:
                props.visible = not props.visible
                self.layout_view.set_layer_properties(layer_iter, props)
                self.layout_view.reload_layout(self.layout_view.current_layer_list)
                break
            layer_iter.next()
        self.refresh()

    def build_layer_toggle(self, prop_iter: lay.LayerPropertiesIterator) -> HBox:
        # from gdsfactory.utils.color_utils import ensure_six_digit_hex_color

        props = prop_iter.current()
        layer_color = f"#{props.eff_fill_color():06x}"
        # Would be nice to use LayoutView.icon_for_layer() rather than simple colored box
        button_layout = Layout(
            width="5px",
            height="20px",
            # border=f"solid 2px {layer_color}",
            display="block",
        )

        layer_checkbox = Button(
            style={"button_color": layer_color if props.visible else "transparent"},
            layout=button_layout,
        )
        layer_checkbox.default_color = layer_color
        layer_checkbox.layer_props = props

        if props.has_children():
            prop_iter = prop_iter.down_first_child()
            n_children = prop_iter.num_siblings()
            # print(f"{props.name} has {n_children} children!")
            children = []
            for _i in range(n_children):
                prop_iter = prop_iter.next()
                children.append(self.build_layer_toggle(prop_iter))
            layer_label = Accordion([VBox(children)], titles=(props.name,))
        else:
            if props.name:
                layer_label = Label(props.name)
            else:
                layer_label = Label(f"{props.source_layer}/{props.source_datatype}")
        layer_checkbox.label = layer_label

        layer_checkbox.on_click(self.button_toggle)
        return HBox([layer_checkbox, layer_label])

    def build_layer_selector(self, max_height: float) -> Tab:
        """Builds a widget for toggling layer displays.

        Args:
            max_height: Maximum height to set for the widget (likely the height of the pixel buffer).
        """

        all_boxes = []

        prop_iter = self.layout_view.begin_layers()
        while not prop_iter.at_end():
            layer_toggle = self.build_layer_toggle(prop_iter)
            all_boxes.append(layer_toggle)
            prop_iter.next()

        layers_layout = Layout(
            max_height=f"{max_height}px", overflow_y="auto", display="block"
        )
        layer_selector = VBox(all_boxes, layout=layers_layout)

        # For when tabs are implemented
        layer_selector_tabs = Tab([layer_selector])
        layer_selector_tabs.titles = ("Layers",)
        return layer_selector_tabs

    def load_layout(self, filepath: str, layer_properties: Optional[str]) -> None:
        """Loads a GDS layout.

        Args:
            filepath: path for the GDS layout.
            layer_properties: Optional path for the layer_properties klayout file (lyp).
        """
        self.layout_view.load_layout(filepath)
        self.layout_view.max_hier()
        if layer_properties:
            self.layout_view.load_layer_props(layer_properties)

    def refresh(self) -> None:
        # print(i)
        self.layout_view.timer()  # type: ignore[attr-defined]
        png_data = self.layout_view.get_screenshot_pixels().to_png_data()
        self.image.value = png_data
        self.layout_view.timer()  # type: ignore[attr-defined]

    def _get_modifier_buttons(self, event: Event) -> int:
        shift = event["shiftKey"]
        alt = event["altKey"]
        ctrl = event["ctrlKey"]
        # meta = event["metaKey"]

        mouse_buttons = event["buttons"]

        buttons = 0
        if shift:
            buttons |= lay.ButtonState.ShiftKey
        if alt:
            buttons |= lay.ButtonState.AltKey
        if ctrl:
            buttons |= lay.ButtonState.ControlKey

        if mouse_buttons == 1:
            buttons |= lay.ButtonState.LeftButton
        elif mouse_buttons == 2:
            buttons |= lay.ButtonState.RightButton
        elif mouse_buttons == 4:
            buttons |= lay.ButtonState.MidButton

        return buttons

    @throttle(0.05)
    def on_scroll(self, event: Event) -> None:
        self.layout_view.timer()  # type: ignore[attr-defined]
        delta = int(event["deltaY"])
        x = event["offsetX"]
        y = event["offsetY"]
        buttons = self._get_modifier_buttons(event)
        # TODO: this is what I *want* to respond with, but it doesn't work, so I am using zoom_in/zoom_out instead
        self.layout_view.send_wheel_event(-delta, False, db.DPoint(x, y), buttons)
        self.refresh()

    @throttle(0.05)
    def on_mouse_down(self, event: Event) -> None:
        self.layout_view.timer()  # type: ignore[attr-defined]
        x = event["offsetX"]
        y = event["offsetY"]
        moved_x = event["movementX"]
        moved_y = event["movementY"]
        buttons = self._get_modifier_buttons(event)
        # TODO: this part is also not working. why?
        if event == "mousedown":
            self.layout_view.send_mouse_press_event(db.DPoint(x, y), buttons)
        elif event == "mouseup":
            self.layout_view.send_mouse_release_event(db.DPoint(x, y), buttons)
        elif event == "mousemove":
            self.layout_view.send_mouse_move_event(db.DPoint(moved_x, moved_y), buttons)
        self.refresh()

Throttling helps so that not 500 redraws are queued, we could also use debouncing instead, that might be better even
https://ipywidgets.readthedocs.io/en/stable/examples/Widget Events.html?highlight=throttling#Throttling

@joamatab
@tvt173

Looks great 😊
Thank you Sebastian

it still bothers me a bit that we have to have two separate solutions for notebooks vs pure web based, but for now, the widgets do seem to be the more robust option within a notebook, so awesome you got this working! seems to be a major improvement. will give it a try later

Hmm, well, I would be in favor of purely webbased. The problem is, you cannot ask juoyterhub/binder/colab for their url (some you can but it is not super easy). And the advantage here is that we aren't hooking into the async loop of the notebook, which seems shady to me at the very least (because we are starting a full webserver there).
I would suggest the following approach:
Look for an environment variable, e.g. KWEB_URL and then do it fully kweb based and otherwise use a widget. The widget is definitely not as snappy as a asgi webserver though.
I think binder we might be able to start a webserver as well in the container, independent of the jupyter and then proxy it?

I have enhanced it more. The widget can now support selection and ruler tools, mouse events work and I added a cell selector, so that cells in the gds can be shown as top cells, not only the one passed to the ipython display.

Hi Sebastian,
this looks amazing! it would be great if you could send a PR for this :)


[toggletip] replace static images with gifs

Summary
This issue is to track feedback for any gifs that will replace static images in our toggletip docs including:

here's v1.

is looking good! i think the only edit needed is the focus state is active until a user dismisses the toggletip

.

this is the pull request that is open for toggletip: https://github.com/carbon-design-system/carbon-website/pull/2619
this gif will replace the double image at the very beginning.


time.ParseDuration does not accept types above hour on Windows

I have a duration flag and when I use any larger type than hour, it will fail.
Looking at the
var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$")
it should support days, weeks and years. But it will fail. I tried even 30d0h but even that won't work.
I am running Windows 10x64 and Go 1.9.2

I'm not sure where you're getting the durationRE value from, but time.ParseDuration does not support anything unit larger than hours. This is documented:

There is no definition for units of Day or larger to avoid confusion across daylight savings time zone transitions.

Like @bontibon said, this is working as expected. I also don't know where you got that line from - it's never been in the Go tree.

@ivanjaros That isn't from the Go standard library. Open an issue with the 3rd-party library that you're using.

Aaah, I see. I just followed the Flag library for the duration variable and didn't notice there are multiple implementations of ParseDuration. In the core I see that only up to hour values are supported.


{Synapse} Update Synapse module GA

Related command

Description

Make synapse module GA. Synapse service is already GA.
Testing Guide

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Synapse


Where to get beta version?

Its not available on Google play store on chrome (internet) now, then where I'll get it's beta version.

Hi @mayursapkal ! indeed it's not available on store yet. I hope to be able to release a play store version before the end of the year. If you want to test the android beta version you can let me your email on this issue and I will send you instructions.


[Feature Request] File/link association

Hi, thank you for your remote app. It's a much improved version compared to mcastorina's version.
I have a request. Can you add file association to open different filetype/link with your android remote app?
I have some that come to mind:

Audio file/stream
Video file/stream
Torrent/magnet link
Zip file/link
HTML link (sometime the link is not obvious with file extension)

I have other apps open the video file url but your remote app doesn't have link/video file association so it's kind of a pain to find way to copy the link to internal dialog.
Thank you.

Hey! Sorry for taking time, I've implemented the requested feature, you can download the 1.0.3 version from here:

Please update backend first
If it's updated update the app also

The backend also available on NPM registry from now on, so I recommend to remove old package and reinstall the whole thing with using:
npm uninstall -g mpv-remote
npm install -g mpv-remote
mpv-remote # Follow instructions

I couldn't test webtorrent, because I can't get it work on my Windows machine, but it should work. The backend API uses loadfile method of MPV.
With Youtube app works fine for me.
Please test it, and let me know if it's working or not!
Have a nice day!

Thanks. That was quick.
Tried the 1.0.3. There are 2 issues:

The app is not associated with media file/link. It's only available in share menu.
Because the app only available in share menu, I have to use "Share & Open" app in playstore to open the link and share it to mpvremote app. This caused another issue. Seem like the url in the intent is not properly formatted as string. The server threw this error:
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote] { flag: 'append-play' }
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at Object.lstatSync (node:fs:1507:10)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at /usr/lib/node_modules/mpv-remote/remoteServer.js:465:10
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at Layer.handle [as handle_request] (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/layer.js:95:5)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at next (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/route.js:137:13)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at Route.dispatch (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/route.js:112:3)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at Layer.handle [as handle_request] (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/layer.js:95:5)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at /usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/index.js:281:22
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at Function.process_params (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/index.js:335:12)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at next (/usr/lib/node_modules/mpv-remote/node_modules/express/lib/router/index.js:275:10)
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]     at /usr/lib/node_modules/mpv-remote/node_modules/body-parser/lib/read.js:130:5 {
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote]   code: 'ERR_INVALID_ARG_TYPE'
Nov 17 23:06:30 mpv xinit[6666]: [mpvremote] }

I'll look into it. Thanks for the feedback.
Maybe I misunderstood something. You also want to stream video or audio  files from your phone?
I'm not sure that's implementable with ionic. Maybe with a native capacitor or cordova plugin.
Don't know if mpv loadfile can handle pure data stream (Don't have that much experience with MPV internals) .

Sorry, I was not being clear about my request.
I didn't mean to stream from phone. That doesn't make sense because it will need something like a local http server on the phone.
Let put out an example for my use case. I use an app (Aniyomi) that grab url from streaming site. It has it own native player but I can set it to use external player. Most of the links for its output is either m3u8 and mp4.  Seem like when it creates the intent for those, android specifies only the apps associate with those file type can be in "Open with" menu. I assume because the intent filter is "android.intent.action.SEND" and the mimetype is plaintext. In the media player app, they have more extensive intent filter and they are under "android.intent.action.VIEW", which trigger the open with menu
https://github.com/mstorsjo/vlc-android/blob/master/vlc-android/AndroidManifest.xml
https://github.com/mpv-android/mpv-android/blob/master/app/src/main/AndroidManifest.xml

Thanks for the explanation. :)
I'll start working on it.

Is this the behaviour you want?
https://www.youtube.com/watch?v=3XGeEmU7yc0
It still need some work. I've to reimplement Youtube intent handling and maybe also give webtorrent an other try (now have access to proper Linux machine) .
I can't guarantee releasing a new version this week.

Implemented, 1.0.4 version available for a while, I'm closing this issue. If it's not working for you, re-open the issue!


Add meta description

Adding meta description. Should improve Lighthouse score to four hundos, 🤞🏻 .

It did improve the Lighthouse score to four hundos, 🎆 .


Default Terminal doesnt work

OS/Web Information

Web Browser: Edge 90.0.818.66
Local OS: Windows 10 20H1
Local VSCode: 1.56.2
Remote OS: Ubuntu 20.04
Remote Architecture: amd64
code-server --version: 3.10.2 387b12ef4ca404ffd39d84834e1f0776e9e3c005

Steps to Reproduce
I have this in my settings.json
"terminal.integrated.fontWeight": "400",
"terminal.integrated.fontSize": 14,
"terminal.integrated.fontFamily": "Fira Code",
"terminal.integrated.letterSpacing": 1.5,
"terminal.integrated.defaultProfile.linux": "fish",
"terminal.integrated.profiles.linux": {
    "bash": {
        "path": "bash"
    },
    "fish": {
        "path": "fish"
    },
    "sh": {
        "path": "sh"
    }
}

I start/open Terminal
error

Expected
In my case the shell should be fish
Actual
I have bash as my shell
Logs

To be added
Screenshot

Notes
This issue can be reproduced in VS Code: No

Can you set the path to the absolute path, eg. /usr/bin/fish, and report back?

Thanks that works!


fix for new version openframeworks

Hi @arturoc
to restore this addons with the new version of openframeworks
these small changes were necessary!
Ciao

thanks!


Show selection caret like a telescope in Neo-tree search or filter mode

When the CursorLine is set to be transparent, the selection caret can visually display the current cursor position

I have no idea what the "best" way to do this is. I would think this would be reasonably simple using the neo-tree component system, basically all sources that want this functionality would need their components to start with a new "pointer"/"indicator" component which can check to see if its "active" and if so, set its text to some configurable "pointer" character.
I don't know that there is anything currently within neo-tree that would support that, but you could likely achieve this via your own component manipulation.
I don't hate the idea of it being part of Neo-tree though, but that would definitely need @cseickel's sign off. I could take a crack at a PR for it though

You could attack this by creating a new component called cursor. It would be the first component in the renderer for each type and it could have a high z-index so it floats over the indent. It would just need to figure out if the line number of the cursor is the same as the line number of the node within the tree.
The problem with that though, is that you need to re-render the tree on every movement, which seems silly. That's why cursorline exists. You should just use the built-in feature that was meant for this purpose.

@pysan3 given what @cseickel said, I am not touching this. At least not yet. I might consider if/once #995 gets merged into main Nui, but as of right now, doing this would be at best very inefficient.
I do still like the idea of it, but at the end of the day, vim already provides something that can be used for this with the hl-CursorLine highlight group.

Oops, sorry for that.


Purge database excuted before scenario

We should purge database before, not after each scenario. Do you have any idea how can we force user to define fixtures loading after database purging? I am afraid that my solution can cause bugs.

/** @before */
public function setUpDatabase()
{
  $this->purgeDatabase();
  $this->loadFixtures();
}

you can't reliably do that @pamil, as the entity managed is also setup in @before, and you can't prfioritize @before order. (entity managed needs to be setup before loading fixtures)
I have this:
    /**
     * @before
     */
    public function setUpEntityManager()
    {
        parent::setUpEntityManager();
        $this->loadFixturesFrom('system.yml');
    }

We reuse the same entity manager instance across all tests to speed it up, so it would be necessary only at the beginning. We can implement one method that is annotated with @before that calls other private ones in correct order.

So probably the best solution will be to have method setUpDatabase which will set up entity manager variable and then purge the database. If one wants to load data fixtures during setup he will need to extend this function.

Thanks Łukasz!


Rich/cas 219 setup CAST dev wallet with NFT tokens WIP

adds several new functions inside /shared/flow.go in order for the dev wallet to be loaded up with NFTs. This will enable the user to cast votes using the balance-of-nfts strategy.

closing this in favour of a simpler implementation on a new branch


remove MaskedViewIOS from 0.62 sidebar

This PR removes MaskedViewIOS from 0.62 sidebar (it's a deprecated component and according to latest decisions deprecated pages should not be a part of the sidebar). I have also updated the repository name in deprecation notice and added deprecation mark to the page title.

Deploy preview for react-native processing.
Building with commit 792c44182c96e45bf9f0f663eb1f15310acac0e4
https://app.netlify.com/sites/react-native/deploys/5e88693b03eea300064ac3b2


[FLINK-12132]The example in yarn setup should specify a prefix for input and output files

Update the doc of yarn setup

What is the purpose of the change
*Due to the change in 0629e25, The example in yarn setup should specify a prefix for input and output files.
*
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Hi @biggeng, Thanks for your PR!
The fix looks good.
@flinkbot approve description consensus architecture quality
Will merge this.
Thanks, Fabian


Hotfix for dingo_pipe data_generation

I am not sure when this bug got introduced, but with the current and previous versions of bilby_pipe, we need to specify args.gaussian_noise and not self.gaussian_noise to be False. Otherwise, this will trigger an error in the data_generation. Namely, see the following line of the bilby source code which is called after running self.create_data https://github.com/lscsoft/bilby_pipe/blob/master/bilby_pipe/data_generation.py#L211.

Hm, I don't see the offending line in the current version of bilby_pipe, see create_data() here:
https://git.ligo.org/lscsoft/bilby_pipe/-/blob/master/bilby_pipe/data_generation.py#L211.
The github version of bilby_pipe that you linked is three years old. In our pyproject.toml we only support bilby_pipe>=1.3; are you running an old version?

Hm, I don't see the offending line in the current version of bilby_pipe, see create_data() here:
https://git.ligo.org/lscsoft/bilby_pipe/-/blob/master/bilby_pipe/data_generation.py#L211.
The github version of bilby_pipe that you linked is three years old. In our pyproject.toml we only support bilby_pipe>=1.3; are you running an old version?

You are right, in this case I don't think this PR makes sense. Closing it!


Split build scripts for CI

In order to sign and package our builds properly in CI we need to split the build phases up.  These changes add build-native, build-managed, and build-tests scripts, with build-packages soon to come.  Summary:

Variable handling moved to buildvars-setup scripts to avoid duplication.
Everything else is from the old scripts with some path cleanup changes.
Build.cmd/sh now calls into the split scripts.
Updated build pipeline definitions for new scripts.

Hi @crummel, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

@jkotas @SedarG @joshfree

LGTM otherwise

LGTM. thanks @crummel


layersControl - layer cannot be turned on/off if new layer added into overlays

Version: 4.0.0
My layersControl setup:
layersControl = {
        overlays: {
           'Main Layer': L.tileLayer.wms(...),
           'Second Layer': L.tileLayer.wms(...)
       }
}

If I add a new layer by using:
const newLayer = L.tileLayer.wms(....);
this.layerControls.overlays['New Layer'] = newLayer;

I can see the new layer on the map and the "New Layer" is seen in the layers control.
However, when I try to click the layers control, none of the layer can be turned on/off.
I didn't make use of the layerControlOptions, should I set something for that?
Thank you.

Can you provide your complete component code and template? Are you also using [leafletLayers] or providing [leafletOptions]?

I tried to reproduce this issue. I modified the "layers-demo" in the ngx-leaflet demo so that the GeoJson overlay is only added to the layers control after the user clicks a button.
The GeoJson layer was added to the control and the control worked as expected. I'm closing this unless you can provide more detail about the specific issue with some code or something that reproduces it.


Fix day_of_year

Looks like a simple fix - i.e. day_of_year(-1) should refer to day 365 (in a non-leap year), but as written it'll result in 364 (-1 + 365, on line 34). This should fix #277.

The first commit on this branch looks good at a glance: I can apply the bundler changes separately, and the last commit with the DST issue isn't valid.
I guess this problem has gone unnoticed until this year because 2016 is a leap year, and a specific test for "Dec 31" as "-1" was untested for regular years before... can we add a test to verify both leap years and non-leap years? The scenario "every fourth year on new year's eve" from #277 seems like a worthwhile scenario to specify here.

Merged in #381. Thanks!


CAPI-80: loadable validator

Ahm, apologies, but I'm not finished yet. )

Ah, what a waste of an approve.


ARM template - set the databaseRouting (MultiDB) - EventGrid

@guregini : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Merged into consolidated PR: https://github.com/MicrosoftDocs/dataexplorer-docs-pr/pull/2917


[Philemon]v1.4 import_export refactor & test

Coverage increased (+2.6%) to 81.719% when pulling 54741860af13d7cc265bc93ba1c1a91f8ecfa4e1 on philemontan:v1.3_export_test into 40113b9e8fc32bc7d9f350678b7c0286fad9c3ed on CS2103AUG2017-T11-B1:master.


[DX] Help developers choose the right branch

Simular to: http://symfony.com/doc/current/contributing/code/patches.html#choose-the-right-branch
Base on feedback here: https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1128 and

No point in this. This will only get outdated. The 1.5 branch would have been deleted if it weren't for the fact that github won't let us because there are pulls targeted at it.

@SpacePossum It's not up to me to reject this. You should leave this for @keradus to decide.

ah ok :+1: thanks!

Don't like putting version exactly... they will change after each minor releases...
current default branch for features, previous branch for bugfixes, master branch for BC breaks

:+1:

:+1:

Thank you @SpacePossum.


[Publisher] Layout shift in lifecycle publish

Description:
There is a layout shift effect and UX issue in the popup box which appears when trying to publish an API without a deployment
See more button should toggle expand/collapse not suddenly appear and disappear

Fixed with PR https://github.com/wso2/apim-apps/pull/216


Activate atom plugin for ocaml too.

Here is my photo after 2 hours of trying to understand why atom-reason loads in reason repo but does not in flow repo: ლ(ಠ益ಠლ)

@chenglou, do you know why this was needed, and why your diff was not sufficient?
Thanks for your pull request @pvolok !

Oh crap, so sorry. I tried on a hybrid repo but not on a pure ocaml one... I assume this is the fix?

@chenglou From http://flight-manual.atom.io/hacking-atom/sections/package-word-count/#packagejson:

activationHooks: an Array of Strings identifying hooks that trigger your package's activation. The loading of your package is delayed until one of these hooks are triggered.

Currently, the only activation hook is language-package-name:grammar-used (e.g., language-javascript:grammar-used)

Now atom-reason will be activated when either reason or ocaml file is open. So yes, assuming we want to delay atom-reason activation, this should be a fix.

Great. Sorry for the oversight.

thank you!


(node:23) Warning: Accessing non-existent property 'count' of module exports inside circular dependency

Warning around db object on bot startup.

Solved by the new database system in v1.5.0

Not a bug: it depends on node version.


Stays in "Starting Auto Tune" Mode for a long time & 100 output only

Situation below

SetPoint is set lower number so it's easily/quickly attainable (100f; using a heater to simulate)
Send temperature readings to start the process
Debug states that process has started, and set's output to 100
Output stays at 100, temperature skyrockets above setpoint to hot as the heater can attain
Changes to in progress after considerable time, debug show 1 or more peak temperatures being found (how many peaks does it need?)
Even if it was using a setpoint of 90 within the node config, it doesn't try to stay at 90
Setting output step to a value other than 100 (for instance 75%) turn it into a PWM duty during a 1 second on and a 1 second off, still goes above setpoint

Maybe I'm misunderstanding what setpoint should do or how autotuning works (though I've done it plenty of times with dedicated hardware)? I've only got it to finish once, and it took an hour, which doesn't seem right.
Below, the only reason the temp changes is because I'm manually moving the heater around to get the temp to fluctuate slightly.

Any help would be appreciated to understand if I'm doing something wrong or if there's a bug?

Sounds weird. Any more info on this? It should cycle around the setpoint for like 4 times to determine the pid arameters.
It should heat above setpoin then off to wait for it to cool off under setpoint and dot that like 4 times.

I am using a space heater (to simulate) and a ds18b20 probe. The probe only has so much resolution and I think that the fluctuations are maybe too great? I noticed that there's a 0.05 peak amplitude that it needs to be within. Perhaps setting this to 0.1 could fix this? What other information than what supplied would be needed?

I just thought if u had any new findings. I haven't had time to look any deeper in this. It's designed to be used with a brewing kettle. So you might be into something.

@enorfelt I'm still having issues no matter what I use, kettle, rims tube, etc. It just won't cycle properly whether I put the step to 1 or 100 or anywhere between.


[NEW ALGORITHM] Tim Sort

Issue will be closed if:

You mention more than one algorithm. You can create a separate issue for each algorithm once the current one is completed.
You propose an algorithm that is already present or has been mentioned in a previous issue.
You create a new issue without completing your previous issue.

Note: These actions will be taken seriously. Failure to follow the guidelines may result in the immediate closure of your issue.

Name:
[NEW ALGORITHM] Tim Sort
About:
Tim Sort is a hybrid sorting algorithm that combines Merge Sort and Insertion Sort, designed for efficient handling of real-world data with runs (naturally occurring sequences of ordered elements). It divides the array into small chunks called runs and applies Insertion Sort within each run for efficiency on smaller sequences. Then, it merges these runs using a modified Merge Sort.
Labels:
new algorithm, gssoc-ext, hacktoberfest, level1

Assignees:

[ ] Contributor in GSSoC-ext
[ ] Want to work on it

Hey could you assign me this issue I am done with the solution part.

Do not create multiple issues.


Adding support for translating dates

Hugo already provides date translation. Actually single.html already supported it, now I added it for post-entry.html
Perhaps wiki needs to be updated in Site Config to add  defaultContentLanguage parameter. Maybe also worth a mention in the Features?

LGTM when tested with my site.

@tomfran perhaps consider moving the wiki to the repo into a docs directory which would enable others to contribute. I don't think GH wiki allows any sort of PR-like workflow. Even better if it can be published as a hugo site with typo theme :)

Yes publishing it as a website would be nice indeed, I'll start with moving it so anyone can contribute :)


multiple fast clicks on a link load the page without pjax

Even in the heroku demo for the pjax plugin, the page will load manualy if you clicked multiple times with fast (before the pjax complete the process)
any solution for this?

The effects of pjax when a link has been clicked multiple times quickly are unpredictable. However, this is not how people commonly interact with web pages, so we think that it's fine to leave it that way. If the worst case scenario is that a normal page load will be performed, I think that's fine and not a problem with the pjax library, as long as most others page transitions are performed over ajax.


Ensure pull request branch name does not cause collisions

When a pull request is made by a user and they name their branch the same name as the target branch against which the pull request is being made, we run into a conflict, which causes the checkout to fail (see https://github.com/mezzio/mezzio-helpers/pull/7/checks?check_run_id=2393994090#step:3:9).
To resolve this scenario, if we detect a pull_request, we can give the local branch name a prefix, pull/.

Fixes #24


add mode for ignition file

if not exist, following warning and error occurs (CentOS 8.2, ansible 2.9.12)
TASK [openshift-4-cluster : Copy ignition ocp4-bootstrap]
[WARNING]: File '/var/lib/libvirt/images/ocp4-bootstrap.ign' created with default permissions '600'. The previous default was '666'. Specify 'mode' to avoid this warning.

TASK [openshift-4-cluster : Start VirtualMachine ocp4-bootstrap]

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor:
 qemu-kvm: -fw_cfg name=opt/com.coreos/config,file=/var/lib/libvirt/images/ocp4-bootstrap.ign: can't load /var/lib/libvirt/images/ocp4-bootstrap.ign
 p=71011 u=root n=ansible | fatal: [localhost]: FAILED! => {"changed": false, "msg": "internal error: qemu unexpectedly closed the monitor:
 qemu-kvm: -fw_cfg name=opt/com.coreos/config,file=/var/lib/libvirt/images/ocp4-bootstrap.ign: can't load /var/lib/libvirt/images/ocp4-bootstrap.ign"}

Description
Checklist/ToDo's

[ ] Added documentation?
[ ] Added release note entry? (  docs/release-notes.md )
[x] Tested?

Merged into devel.


Export "not supported" even though it is in matrix

Hi
When I try to run command:
mbed export -i vscode_gcc_arm -m DISCO_F769NI --profile ..\mbed-os\tools\profiles\debug.json
I get:
"project.py: error: DISCO_F769NI not supported by vscode_gcc_arm"
even though the supported boards matrix says it should be supported.
/Anders

I've just updated to 5.10.0, and it does not fail, please test or provide a version where it fails

Ok, so how do I know which mbed os version I am using?
I did remove my existing mbed-os and imported it again, using "mbed import", I would guess I now have the latest version, 5.10.0.
Still, I get the same fail though...

 610e35ddc - (HEAD -> mbed-os-5.10, upstream/mbed-os-5.10) Merge pull request #8163 from ARMmbed/release-candidate (8 days ago) <Anna Bridge>

mbed export -i vscode_gcc_arm -m DISCO_F769NI
Scan: mbed-os-example-blinky
Keeping existing launch.json
Keeping existing settings.json
Keeping existing tasks.json

mbed export -i vscode_gcc_arm -m DISCO_F769NI --profile debug
Scan: mbed-os-example-blinky
Keeping existing launch.json
Keeping existing settings.json
Keeping existing tasks.json

 mbed export -i vscode_gcc_arm -m DISCO_F769NI --profile mbed-os\tools\profiles\debug.json
Scan: mbed-os-example-blinky
Keeping existing launch.json
Keeping existing settings.json
Keeping existing tasks.json

Using mbed-cli 1.8.2 (I also tested 1.7.5)

You can go to mbed-os folder and use git log to check where is your HEAD (which commit it points to) or use mbed-cli to update for you

ARM Internal Ref: MBOTRIAGE-1719

Ok, so Iget the following information from git log:
commit f1587b50d7d1e36e3536a88dd92884029a1f4f10 (HEAD -> master, origin/master, origin/HEAD)
Merge: b1b639948 d32b454c5
Author: Nir Sonnenschein<EMAIL_ADDRESS>Date:   Fri Sep 28 13:23:55 2018 +0300

    Merge pull request #8262 from juhoeskeli/mbrblockdevice_align

    Align MBRBlockDevice writes to underlying BlockDevice write size

So, I guess by looking at when the latest activity occured I can conclude I have the latest version, 5.10?
But why doesn't the following commands show which version I am currently working on:
mbed ls
mbed-os (#f1587b50d7d1)

or
mbed releases
mbed-os (#f1587b50d7d1)
  * mbed-os-5.1.0
  * mbed-os-5.1.1
  * mbed-os-5.1.2
  * mbed-os-5.1.3
  * mbed-os-5.1.4
  * mbed-os-5.1.5
  * mbed-os-5.10.0
  * mbed-os-5.2.0
  * mbed-os-5.2.1
  * mbed-os-5.2.2
...

Still, I get the same fail though...

Can you post the output of the failing command, and the command you're attempting to run?
Could you also share what pip list outputs?

Here it is: (Currently I am using Mbed cli, even though the project is located in a Platform IO folder, hence the need for getting debugging in VS code to work)
(...)Projects\USB-serial-exempel>mbed export -i vscode_gcc_arm -m DISCO_F769NI --profile ..\mbed-os\tools\profiles\debug.json -v
[mbed] Working path "C:\Users\u2672860\Documents\PlatformIO\Projects\USB-serial-exempel" (program)
[mbed] Exec "c:\users\u2672860\.platformio\penv\scripts\python.exe -u C:\Users\u2672860\Documents\PlatformIO\Projects\mbed-os\tools\project.py -i vscode_gcc_arm -m DISCO_F769NI --source . --profile ..\mbed-os\tools\profiles\debug.json" in "C:\Users\u2672860\Documents\PlatformIO\Projects\USB-serial-exempel"
Scan: USB-serial-exempel
usage: project.py [-h] [-m MCU] [-i IDE] [-c] [-p PROGRAM] [-n PROGRAM] [-b]
                  [-L] [-S [{matrix,ides}]] [--update-packs] [-E]
                  [--build BUILD_DIR] [--source SOURCE_DIR] [-D MACROS]
                  [--profile PROFILE] [--app-config APP_CONFIG] [-z]
                  [--ignore IGNORE]
project.py: error: DISCO_F769NI not supported by vscode_gcc_arm
[mbed] ERROR: "c:\users\u2672860\.platformio\penv\scripts\python.exe" returned error.
       Code: 2
       Path: "C:\Users\u2672860\Documents\PlatformIO\Projects\USB-serial-exempel"
       Command: "c:\users\u2672860\.platformio\penv\scripts\python.exe -u C:\Users\u2672860\Documents\PlatformIO\Projects\mbed-os\tools\project.py -i vscode_gcc_arm -m DISCO_F769NI --source . --profile ..\mbed-os\tools\profiles\debug.json"
       Tip: You could retry the last command with "-v" flag for verbose output
---

Interesting. Will try and look at this tomorrow.
Inside of Arch Linux, all of the following commands worked fine for me:
git clone https://github.com/ARMmbed/mbed-os
cd mbed-os
mbed deploy

# Sanity check
mbed compile -t GCC_ARM -m DISCO_F769NI -v

# Actual tests
mbed export -i gcc_arm -m DISCO_F769NI -v
mbed export -i vscode_gcc_arm -m DISCO_F769NI -v
mbed export -i vscode_gcc_arm -m DISCO_F769NI --profile mbed-os/tools/profiles/debug.json -v

Some thoughts:

Why did you have to climb a directory to reference the profile?
If you're using an mbed-os directory  that isn't in the project root, have you tried symlinking the mbed-os source such that it's effectively in the project root?
Do you still have issues if you don't include the --profile parameter?

Thank you!
I finally got it working. Yes, I am using a global mbed-os folder. What solved it for me was simply to add "--source ..\mbed-os" to the export command. (Both with and without the --profile parameter works.)
I guess what confused me was the error "not supported by vscode_gcc_arm", to me it was not intuitive that the command couldn't find the correct path.
Thanks again for your dedicated help :)
/Anders


Render boxes as ASCII characters

First of all, thank you for your work! So I tried code-server and unsurprisingly it works and I can say it's usable, but this opens new possibility for using VSCode without GUI at all.

Now I think it would be better if Explorer, Terminal, menu and text box edges are rendered as pipe characters for less wasted space. But this probably means creating another renderer (and might break other sites), so you can put this on low priority among others. Also it would be great having right-click menu support, hideable address bar and navigation keybinds.  Maybe some optimization to the theme itself, rather than the browser, would be better. Maybe someone can create an optimized theme for this ASCII browser.

It's the built-in "Dark High Contrast" theme. Yeah I think so, Carbonyl is already good at rendering CSS so we just need an optimized theme.

But this probably means creating another renderer (and might break other sites)

Not really, it would be mostly similar to how image rendering is being done, detect the pixels and match with the most-alike glyph, and later adjust to layout similar to how text rendering is being done.
Definitely I would like to see this implemented :-)


Document how to install on Debian

Once a new version of Debian is released (probably in mid-2017), I'll update this to document how to install rust-mode in Debian stable as well.

thanks.


Devel

https://github.com/bcgov/tidyhydat/blob/devel/NEWS.md#tidyhydat-021

Also addresses several of the items in the checklist in #5


Skip Lighthouse audit of off-site page

My edit to the config file doesn't seem to have worked. What am I doing wrong here?

That did it. This is ready for your review, @krassowski.


Client Connected messages are fired on $sys topic even if the client connection was unsuccessful due to authentication

Environment

OS:
Erlang/OTP:
EMQ:
2.3.6

In my application i want to keep track of online and offline users/devices for that i came across this feature in emqttd - I am subscribing to the topic<EMAIL_ADDRESS>for capturing device connect event in my app and to<EMAIL_ADDRESS>for capturing disconnect event.
But the problem with this is that device connection event is fired even before authentication was unsuccessful and one disconnect message is published after that.
for example when i log my messages i get this continously-
<EMAIL_ADDRESS>{"clientid":"150da879-f3c5-43c8-8b15-da309d1ab4931526798565999","username":"testUser","ipaddress":"SOME_IP","clean_sess":true,"protocol":4,"connack":4,"ts":1526818432}
<EMAIL_ADDRESS>{"clientid":"150da879-f3c5-43c8-8b15-da309d1ab4931526798565999","username":"testUser","reason":"auth_failure","ts":1526818432}

And i keep getting this log continuously hence if i were to store device online status in my database and for some reason credentials is wrong it will keep hogging my database continuously with online = true and online = false queries continuously.
I think the right manner of publishing message should be only when a client gets connected successfully. Otherwise any random username can be used to connect to the broker and hog the system topic.

It is designed to this intentionally for tracking all the connection requests. Verify the value of 'connack' and only update your database if it equals 0.

Ohk.. Nice.. Thanks a lot..


unsup-robert-large train with batch_size=512 OOM

Hi
I tried unsup-robert-large train with batch_size=512, resulting in OOM on a single 3090 GPU
can you help me ?

Hi
I tried unsup-robert-large train with batch_size=512, resulting in OOM on a single 3090 GPU
can you help me ?

Please adjust the bz smaller, depending on the configuration of the graphics card, the amount of power to do

Thanks @ScottishFold007 for pointing this out. @1024er you should try to reduce the batch size or use multiple GPUs (we have example scripts for running our code on multiple GPUs).


angularjs added

@all-contributors please add sachith-1 for doc

@all-contributors please add @sachith-1  for doc


Update SurveyTime

Backstory
As written on https://surveytime.io/privacy-policy:

You may request that we delete the Personal Information that we collected about you. By asking us to delete your Personal Information we will have to close your account and you will no longer be able to use the Surveytime site and Features or our Services. Please note that your Surveytime account cannot be reinstated once it has been deleted.
If you want to delete your Surveytime account, please submit your requests by: (1) Emailing us at Surveytime Contact Email; (2) Tapping the "Delete your account" button in the Mobile App Settings screen and completing the process. We will process your request for removal within 10 business days, although we attempt to process it within 24 hours.

Data

name: SurveyTime
url: surveytime.io/privacy-policy
difficulty: medium
email<EMAIL_ADDRESS>email_subject: Account deletion request
email_body: Please delete the account linked to this email
domains: surveytime.io

Thanks for your contribution!

The procedure should be :

You have to mail them requesting deletion or tap the "Delete your account" button in the Mobile App Settings screen.

not

You have to mail them requesting deletion and then tap the "Delete your account" button in the Mobile App Settings screen.

The second one

Fixed it, thanks!


wip: http server wip

The tests necessarily hang because of the way hyper works. I need to
rethink how to test it...
[#125024041]

Got it fixed. Didn't realize a change I made in src/commands.rs ended up creating a merge conflict. That was difficult to figure out for some reason...

Coverage decreased (-3.5%) to 94.984% when pulling b908e495cba08069b0cec5593d221a1cc93e4e56 on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-2.8%) to 95.714% when pulling 13bcf85d96aff0b746c7a1ee7799646dea198e36 on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-2.7%) to 95.739% when pulling 115241dae9711d717432a4bc3098c879b45907c2 on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-1.9%) to 96.627% when pulling 8ef49ba0f7f738e3a490089f35d84c3552e6be61 on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-1.1%) to 97.381% when pulling fba87dc8601b08186dc0d1b6ef3520e9abad355d on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-1.1%) to 97.387% when pulling 05cbadc916ae9271c112edf60b000abcb44df0aa on 125024041-dev-http-server into 8c879e9861f38f37ffc8fe31218d9fb6a1b8b3de on master.

Coverage decreased (-0.4%) to 98.106% when pulling 7eeec5b64984a8708fb2ab0412f5ddfec263658e on 125024041-dev-http-server into 1249cda01a0253347db0b361edb7e1ff610cdff6 on master.

The code coverage declines slightly. Hopefully I'll be able to coerce it into going back up the measly 0.4% it dropped. I'm merging this anyway.

Coverage decreased (-0.4%) to 98.106% when pulling 7eeec5b64984a8708fb2ab0412f5ddfec263658e on 125024041-dev-http-server into 1249cda01a0253347db0b361edb7e1ff610cdff6 on master.


Unhandled Exception if not granted internet access

Hello, I have a firewall that blocks all non-preapproved applications. It pops up a prompt for me to allow access, but once again, due to fundamental limitations in Windows NT's architecture, it's completely unable to suspend a connection to wait for my input, and it instead must be completely blocked.
This caused an unhandled exception. If I clicked continue the application would not respond at all, not even the close button worked. I had to close it from Task Manager.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Net.Sockets.SocketException (0x80004005): An attempt was made to access a socket in a way forbidden by its access permissions <IP_ADDRESS>:443
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
RobloxStudioModManager
    Assembly Version: <IP_ADDRESS>
    Win32 Version: <IP_ADDRESS>
    CodeBase: file:///C:/Users/LoganDark/Downloads/RobloxStudioModManager.exe
----------------------------------------
System
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_<IP_ADDRESS>__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_<IP_ADDRESS>__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_<IP_ADDRESS>__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Core
    Assembly Version: <IP_ADDRESS>
    Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_<IP_ADDRESS>__b77a5c561934e089/System.Core.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

i have same issue and it seems to be problem in amazon s3 servers because An attempt was made to access a socket in a way forbidden by its access permissions <IP_ADDRESS>:443

Just put a exception in the firewall for the application.
If the firewall is windows defender firewall, then go to Control Panel\System and Security\Windows Defender Firewall\Allowed apps and allow roblox studio mod manager.

i have same issue and it seems to be problem in amazon s3 servers because An attempt was made to access a socket in a way forbidden by its access permissions <IP_ADDRESS>:443
It is not amazon's fault

Just put a exception in the firewall for the application.

Thanks for the helpful advice, that's not why I opened the issue though lmao


Specify setting the .bot file property to "Copy Always"

In the "Update your local .bot file" section, it might help to add the following sentence:
"In Solution Explorer, ensure that the .bot file's property "Copy to Output Directory" is set to "Copy always"." The sample bot I tried, https://github.com/Microsoft/BotFramework-Samples/tree/master/SDKV4-Samples/dotnet_core/StateBot , had the setting "Do not copy". (Might be nice to get that sample fixed also.) "Do not copy" meant the .bot file was not included in the deployment to Azure. Azure "Test in Web Chat" then hung with the message "Waiting for bot to be ready". No error displayed. As a newbie, this took me days to solve. Thanks for listening. --Bruce

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

ID: 2cfa1653-6ab2-730b-5479-81a05b9bb18e
Version Independent ID: a7c8085e-3b7a-711e-308c-7061176c0a5c
Content: Deploy your bot - Bot Service
Content Source: articles/bot-builder-deploy-az-cli.md
Service: bot-service
GitHub Login: @ivorb
Microsoft Alias: v-ivorb

Hi @BruceHaley thanks for reporting! I opened an issue for samples to fix that - https://github.com/Microsoft/BotBuilder-Samples/issues/1284 - since it would be very confusing to figure out. We adjusted our guidance to be as you read to try to avoid that issue (previously, we had said to copy over the entire .bot file and change your bot to use that, but we faced the same issue you're hitting while doing so). I'll also add a tip to the article.


Sometime getting N:-5003:The order already exists in the database.

Hi,
The EMS gateway working fine but sometimes we getting below type of error
'approval_code' => 'N:-5003:The order already exists in the database.',
'fail_reason' => 'De bestelling bestaat al in de database.',
and also another issue is the IPN URL is not calling and all orders after successful payment stay as pending payment and now transaction data is showing in admin order section.
http://prntscr.com/p893ca
http://prntscr.com/p893hj
Thanks

Hi,
We have solved the N:-5003:The order already exists in the database. issue by updating our magento2 order increment id as it was conflciting with Magento1 order increment id but we still facing issue like all orders still showing as pending payment and I have checked the code and look like the IPN controller not calling so Order status not updating and showing as pending payment and also no invoice created and not any transaction information added in order
and in debug log only showing this message.
main.DEBUG: Request validation failed for action "EMS\Pay\Controller\Index\Ipn\Interceptor"

Hi,
I am closing this ticket and create another one for pending payment issue to avoid confusion.
Thanks


3rd Party Libs in Samples

Adding guidance on the proper usage of 3rd Party Libraries in our samples.

/check-enforcer override


Protect select() against interrupted system calls

if hit with a signal while blocking in select, select throws an exception, which freezes the thread, causing issues with systemd management

Thank you for contributing to openstack/pyghmi!
openstack/pyghmi uses Gerrit for code review.
If you have never contributed to OpenStack before make sure you have read the
getting started documentation:
http://docs.openstack.org/infra/manual/developers.html#getting-started
Otherwise please visit
http://docs.openstack.org/infra/manual/developers.html#development-workflow
and follow the instructions there to upload your change to Gerrit.


[tf.data] Add SkipInternal for flat_map and interleave

This is a PR from JIZHI Team & TaiJi AI platform in Tencent.
This is a follow up of #46358. I added the SkipInternal for flat_map and interleave so that user could utilize the speed up of TFRecordDataset with tf.data.TFRecordDataset.
Also, I hope we could discuss about how to deal with the SkipInternal for ParallelInterleaveDataset, as the output of it could be nondeterministic.
Thank you for your time on reviewing this PR :).
gently ping @aaudiber

@aaudiber
I've updated the code based on the reiview, could you take another look? Thank you~

The build errors seems to be related to mlir instead of this pr.

@zhuzilin The change seems to be creating flaky failures in AutoShardDatasetTest.testDatasetOfReaderDatasetsPipeline, ptal
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/data/experimental/kernel_tests/auto_shard_dataset_test.py", line 142, in testDatasetOfReaderDatasetsPipeline
    self.assertDatasetProduces(dataset, expected)
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/data/kernel_tests/test_base.py", line 225, in assertDatasetProduces
    self._compareOutputToExpected(result, expected_output, assert_items_equal)
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/data/kernel_tests/test_base.py", line 150, in _compareOutputToExpected
    self.assertValuesEqual(expected_value, result_value)
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/data/kernel_tests/test_base.py", line 91, in assertValuesEqual
    self.assertAllEqual(expected, actual)
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/framework/test_util.py", line 1246, in decorated
    return f(*args, **kwds)
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/tensorflow/python/framework/test_util.py", line 2871, in assertAllEqual
    np.testing.assert_array_equal(a, b, err_msg="\n".join(msgs))
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/py/numpy/testing/_private/utils.py", line 904, in assert_array_equal
    verbose=verbose, header='Arrays are not equal')
  File "/build/work/086335f9cfbc4a1e080b442a48a951e93a9d/google3/runfiles/google3/third_party/py/numpy/testing/_private/utils.py", line 827, in assert_array_compare
    raise AssertionError(msg)
AssertionError:
Arrays are not equal

not equal lhs = array(b'Record 0 of file 5', dtype='|S18')
not equal rhs = array(b'Record 0 of file 6', dtype='|S18')
Mismatch: 100%
 x: array(b'Record 0 of file 5', dtype='|S18')
 y: array(b'Record 0 of file 6', dtype='|S18')

@aaudiber Thank you for the information~ I've tried to run the auto shard test locally, and they passed... Do you have any thoughts on why the failure happens?

@aaudiber  Can you please assist on above comments from @zhuzilin. Thanks!

@zhuzilin I restructured the flat_map skip implementation and the error went away 👍

@aaudiber Great! Thanks a lot!


how to bind click event with pie graph (vue.js2 based on laravel)

Chart.js version:  1.4.1
Issue : how to can bind onclick event when client clicked piece of pie in graph
devEnv : vue.js based on laravel

   export default{
      data () {
        return{
          chartData : {
            labels    : ["면접미진행", "면접 진행중", "내정 1사","구직활동종료"], // labels
            datasets  : [{
              data           : [0,42,3,5],                //Recuriting Student Num
              backgroundColor: [
                '#ff6384','#36a2eb','#cc65fe', '#ffce56'  //
              ]
            }],
          },

          myoption: {
            onClick  : function () { console.log("test") }
          }
        }

@dayoenJang I think this question will get a better answer on stackoverflow.


WIP: avoid jiggle in warp Panel

There's a couple places in the app which "jiggle", which I'd like to fix.
One of them is the warp screen:

A couple tools at our disposal: monospaced fonts and format padding. But a couple of issues that might not make the current proposal a net win, as is:
Firstly, as far as I can tell, it's not possible to have different fonts within a line.
I'm looking for something like https://developer.apple.com/documentation/foundation/nsattributedstring, which allows you to specify different fonts for different sections of a string. Is there an existing way to achieve something like this in TUIFFKAEZG?
Otherwise, it doesn't look great to just use monospace font for the entire text:

Secondly, until https://github.com/RazrFalcon/resvg/issues/317 is addressed, trailing padding in text is effectively truncated, and does not affect layout. So if we want to reserve layout space, we must use leading padding, which doesn't always look great:

I'm inclined to just leave it as is and discard this PR for now, but wondered if you had any thoughts @dabreegster.

Oh another alternative would be to just to hack in a hardcoded width on the panel - it's just a bit fragile.

I'm not a fan of the monospaced font or right padding; it just doesn't seem to fit. (Maybe if we applied the same typography to more places, it would look more consistent.)

Oh another alternative would be to just to hack in a hardcoded width on the panel - it's just a bit fragile.

We could use exact_size_percent and maybe it would actually look OK, even if the box is unnecessarily large sometimes.

Firstly, as far as I can tell, it's not possible to have different fonts within a line.

https://github.com/dabreegster/abstreet/blob/b67701c414ee31777f7ceffd1b1ba0c40d7474c7/widgetry/src/text.rs#L416
There are lots of old hacks with text rendering. I think it could be time to try fixing them, or a rewrite from scratch, with the better understanding today (seeing the bboxes in the usvg bug was very helpful for understanding what's going on)
And for the record, "TUIFFKAEZG" took me a moment. :D

I'm not a fan of the monospaced font or right padding; it just doesn't seem to fit. (Maybe if we applied the same typography to more places, it would look more consistent.)

Yeah, I agree, the "after" is probably worse than the before. I think once have a way to do left alignment with right padding () and specify different fonts per line I'd revisit.
For now I've force pushed a much smaller change to just hardcode the width:

You suggested using a percent-based width, but since nothing inside the container is percent sized, it seems like that would make things needlessly more fragile — on wide screens it would be too wide, on narrow screens it would be too narrow.
If we wanted to "aggressively oversize" it seems like it would make as much or more sense to aggressively oversize a fixed width. I could be talked down though. =)
On a separate note, I do not understand what the "(+0 compared to before...)" snippet is trying to tell the user.

The fixed width LGTM. I forgot about forcing an exact width. That sort of thing used to be confusing before DPI, but now it all just works!

On a separate note, I do not understand what the "(+0 compared to before...)" snippet is trying to tell the user.

This is comparing the number of finished trips at the current time to the equivalent in the prebaked results, which are "before" your current edits. If you were testing edits called "fix signal timing" and things were going really poorly off-screen, you might see "-9001 compared to before "fix signal timing"", which would be a quick heuristic that you may want to stop and go see what's going on. Any ideas to improve this wording would be appreciated.


test: Cypress | Simplifying AddDsl method

Description

This PR fixes below from Cypress suite to better developer experience
Simplifies the AddDSL method
Added AssertQueryTableResponse() & used
SaveDataSource improved
ReconnectDSbyName() created

Type of change

Script fix (non-breaking change which fixes an issue)

Testing

How Has This Been Tested?

[X] Cypress CI runs

Checklist:
QA activity:

[X] Added Test Plan Approved label after Cypress tests were reviewed

All tests passed


Add a primary content

Add primary content (e.g. avatar, name, job, contacts, intro, etc.) to resume

https://github.com/Alyona-Pisotska/homepage/pull/11


“double_scalars” error

Whenever the cstwMPC code is run, "invalid value encountered in double_scalars" warning appears. Accordingly, the MPC of the unemployed and retired are reported as NaN. Oddly, this does not affect the average MPC calculation.

Looks like this is part of the broader discussion around when to suppress warnings, so I'll close this issue and we can take the discussion there.


"Cannot find name 'document'" message(program is legal)

This is the Share Project:
https://pxt.microbit.org/36243-93093-79930-75480

document is not an object we support. (This isn't browser javascript)
The micro:bit can output something to the user through LEDS, pin OUTs, or serial.


Feature suggestion: themes / custom colors

it would be nice if there would be several colorschemes to choose from or even customize it completely.

Colors are customizable already, please check ansiweatherrc.example which contains all available configuration variables.


[ML][Pipelines] Dynamic inputs: support output binding

Description
Support output binding in dynamic inputs, get annotation type from NodeOutput.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Option to not produce transformed files

Right now the basic functionality of PostCSS where no files are produced is not exposed in grunt-postcss.
I'd like to use this task in combination with stylelint as a linter. It would be useful to not have it unconditionally write to disk.
This would essentially allow users to configure grunt-postcss similar to AtomLinter/linter-stylelint.

Could you please explain why someone would use a grunt plugin like this? I would go with postcss itself for an editor plugin like in your example.

Our use case is continuous integration, asserting that there aren't automatically detectable issues with a patch's CSS and if there are some, blocking merge without having the CI cluster making local changes to commits. This would allow us to replace csslint in our CI pipeline.

Well, let's merge it then)

Thank you. :-)


Rename redash repo to dasher-web

Some files will require an update after the rename of the repository.
$ fgrep -i redash -r . --exclude-dir .git -l
./index.html
./browser/dasher/messageStore.js
./browser/index.html
./documents/Development.md
./documents/Repositories.svg
./documents/Loading.md
./documents/Specification/05ZoomBoxPalette/ZoomBoxPalette.md
./documents/Specification/01ZoomingUserInterface/ZoomingUserInterface.md
./documents/Specification/04ZoomingSolver/ZoomingSolver.md
./documents/Specification/notes.md
./documents/Specification/02BasicDefinitions/BasicDefinitions.md
./documents/Specification/03ZoomingRules/ZoomingRules.md
./documents/Specification/readme.md
./readme.md

Yep - and not major - but be aware Im pretty sure it will cause netlify to break - but thats not major

I just put up a PR for this - I don't have permission to rename the repo.


Make releases on github and pypi consistently

The releases on github are lagging behind as these need to be done manually. @samuelgarcia and me propose to only use to only use pypi for releases and plain tags on github so ensure there's no conflicting latest release versions in different places. This implies deleting the already existing releases on github. @apdavison What do you think about this?

We should delete the existing releases on github to avoid confusion.


Incorrect Wallet Names in Final Balance graph

Open Playground.
Compile any contract with payToPublicKey actions and compile
Open Simulation
Add multiple new wallets
******IMPORTANT - Delete the original 2 wallets. ******
Add new currencies to wallets
Perform multiple Tx between the wallets
Evaluate
Result is that the original Wallet names are showing in the Final Balance graph.

Gist ID 41ae45e747c956113a86c23fafed4fec

Definitely related to #820. I'll leave this ticked open and check it again once 820's closed.

I think this is, at least initially, a backend problem.
If I run this command:
curl 'https://localhost:8009/api/evaluate' -H 'Origin: https://localhost:8009' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9'  -H 'content-type: application/json' -H 'Accept: application/json' -H 'Referer: https://localhost:8009/' --data-binary $'{"wallets":[{"simulatorWalletWallet":{"getWallet":1},"simulatorWalletBalance":{"getValue":[[0,4]]}}],"sourceCode":"-- Contract endpoints that generate different kinds of errors for the log:\\n-- logAMessage produces a log message from a wallet\\n-- submitInvalidTxn submits an invalid txn which should result in a \\"Validation failed\\" message\\n-- throwWalletAPIError throws an error from a wallet (client)\\nimport qualified Data.Set                     as Set\\nimport           Data.Text                    (Text)\\n\\nimport           Ledger\\nimport qualified Ledger.Ada                   as Ada\\nimport           Ledger.Validation\\nimport           Wallet\\nimport           Playground.Contract\\n\\nlogAMessage :: MonadWallet m => m ()\\nlogAMessage = logMsg \\"wallet log\\"\\n\\nsubmitInvalidTxn :: MonadWallet m => m ()\\nsubmitInvalidTxn = do\\n    logMsg \\"Preparing to submit an invalid transaction\\"\\n    let tx = Tx\\n            { txInputs = Set.empty\\n            , txOutputs = []\\n            , txForge = Ada.adaValueOf 2\\n            , txFee = 0\\n            , txValidRange = defaultSlotRange\\n            }\\n    submitTxn tx\\n\\nthrowWalletAPIError :: MonadWallet m => Text -> m ()\\nthrowWalletAPIError = throwOtherError\\n\\n$(mkFunctions [\'logAMessage, \'submitInvalidTxn, \'throwWalletAPIError])\\n","program":[],"blockchain":[]}' --compressed --insecure | jq .fundsDistribution

I get:
[
  {
    "simulatorWalletBalance": {
      "getValue": [
        [
          0,
          4
        ]
      ]
    },
    "simulatorWalletWallet": {
      "getWallet": 1
    }
  }
]

...but if I just change the getWallet ID from 1 to 2:
curl 'https://localhost:8009/api/evaluate' -H 'Origin: https://localhost:8009' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9'  -H 'content-type: application/json' -H 'Accept: application/json' -H 'Referer: https://localhost:8009/' --data-binary $'{"wallets":[{"simulatorWalletWallet":{"getWallet":2},"simulatorWalletBalance":{"getValue":[[0,4]]}}],"sourceCode":"-- Contract endpoints that generate different kinds of errors for the log:\\n-- logAMessage produces a log message from a wallet\\n-- submitInvalidTxn submits an invalid txn which should result in a \\"Validation failed\\" message\\n-- throwWalletAPIError throws an error from a wallet (client)\\nimport qualified Data.Set                     as Set\\nimport           Data.Text                    (Text)\\n\\nimport           Ledger\\nimport qualified Ledger.Ada                   as Ada\\nimport           Ledger.Validation\\nimport           Wallet\\nimport           Playground.Contract\\n\\nlogAMessage :: MonadWallet m => m ()\\nlogAMessage = logMsg \\"wallet log\\"\\n\\nsubmitInvalidTxn :: MonadWallet m => m ()\\nsubmitInvalidTxn = do\\n    logMsg \\"Preparing to submit an invalid transaction\\"\\n    let tx = Tx\\n            { txInputs = Set.empty\\n            , txOutputs = []\\n            , txForge = Ada.adaValueOf 2\\n            , txFee = 0\\n            , txValidRange = defaultSlotRange\\n            }\\n    submitTxn tx\\n\\nthrowWalletAPIError :: MonadWallet m => Text -> m ()\\nthrowWalletAPIError = throwOtherError\\n\\n$(mkFunctions [\'logAMessage, \'submitInvalidTxn, \'throwWalletAPIError])\\n","program":[],"blockchain":[]}' --compressed --insecure | jq .fundsDistribution

I get:
[
  {
    "simulatorWalletBalance": {
      "getValue": []
    },
    "simulatorWalletWallet": {
      "getWallet": 1
    }
  }
]

ie. Wallet 1 exists, despite not being specified, and wallet 2 doesn't, despite supplying an initial balance.

I think bug #820 will have also affected this, but it wasn't the sole cause.
Once the backend's fixed I'll re-check.

Still happening, as in the following gist  307669e20fce1cb05f80e023de17df6c

Open new contract and compile.
Create new wallets and delete original wallets
Evaluate.


Make sure that all panics are recovered

Right now, main.go has a global panic guard that drops you to /bin/sh.
Ideally, most calls in main.go should be panic-guarded. For instance, access to nil pointers can happen when the input is incomplete and the editor tries to compile an incomplete AST. These panics should be guarded in future.

I will leave this unfixed for a while on purpose, since during developments panics will drive me to fix bugs more promptly. And we don't have comprehensive logging facilities yet.

@xiaq,Is this still an unresolved issue? AFAICT I have never seen an elvish panic that does not result in a rescue shell. And looking at the source code it looks like it is making a good faith attempt to deal with all Go panics. ITSM that you have resolved this issue.

Yes this can be closed.


ENH: Added example notebook for parameter space visualization with ExhaustiveOptimizerv4

@thewtex The ExhaustiveOptimizerv4 example relies on wrapping included in v5.2.rc02 but the latest Python pip distribution of ITK is v5.1.2. Is Binder able to build ITK or would this fail until the pip distribution is updated?

@tbirdso itk5.2rc2 is now available on PyPI. It can be installed locally with the --pre flag, e.g. pip install --upgrade --pre itk. We can add a version specification in the requirements.txt file for Binder, e.g. itk>=5.2rc2.

On testing this it seems that the Binder link points to files in a given commit or branch, which means the location would change if we add the Binder link in the same PR as the notebook it references. Should the Binder documentation reference be added in a separate PR once the example notebook is added to the master branch?

Rescinding my earlier comment, the Binder documentation link can point towards the ITKExamples master branch regardless of whether a given notebook has been merged in yet. I've tested the Binder link against the current exhaustive-notebook branch to verify functionality with this PR, then set the link to correctly point to master when the merge is completed.
Pending checks, this PR is ready for review and merge.

Fixup: Remove VTK dependency and specify notebook Binder link

Please squash the fixup commits into the previous commits with git rebase -i, i.e. Git interactive rebase. More information can be found here:
https://github.com/InsightSoftwareConsortium/ITK/blob/master/CONTRIBUTING.md#revise-a-topic

@tbirdso could this branch please be rebased on master to address the conflict?

@thewtex Updated with rebase onto master.


Integrating semantic versioning

Should be implemented after #1

Take a look at https://github.com/marketplace/actions/github-tag


Enable L7 DNS proxy for nodes

FQDN-based network policy is extremely useful for egress filtering, but is currently only supported in pods. This means that nodes must either rely on some other filtering mechanism, or resort to periodically updating L3/L4 CIDR policies. However, the code which collects DNS requests and combines them with policy to automatically produce L3/L4 filters is at endpoint level and is almost agnostic with respect to kind of endpoint (pod or node). This PR enables FQDN-based network policy for nodes by adding a bit of BPF code which, when instructed by network policy, redirects node's DNS requests to the same transparent proxy that is used for pods. No changes in iptables rules or routing are required.
FQDN-based network policy for nodes is likely to be a good addition to Cilium, as it would enable egress filtering by FQDNs for the whole cluster without relying on third-party solutions. Also, the same approach may possibly work for other L7 rules.
A sample policy I used for testing is
apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
  name: hostdns
specs:
- egress:
  - toCIDR:
    - <IP_ADDRESS>/32 # example DNS server IP (whatever is in cilium agent's /etc/resolv.conf)
    toPorts:
    - ports:
      - port: "53"
        protocol: ANY
      rules:
        dns:
        - matchPattern: '*'
  - toFQDNs: # works when host has L7 DNS policy
    - matchName: api.ipify.org
  nodeSelector: {}

Another question: How did you test the feature? It would be nice to get a new test for this in cilium-cli.

Another question: How did you test the feature? It would be nice to get a new test for this in cilium-cli.

I have actually been running the previous 'version' of this feature (#19892) - one that redirected packets with iptables rules rather than eBPF - in our cluster for a long time. The basic smoke test I've been using is to turn on audit mode, create a simple DNS L7 host policy like the one in the PR description, then get the host to make a request allowed by FQDN and one disallowed by FQDN and observe policy verdicts in the output of cilium monitor -t policy-verdict. Do you mean you want me to add a test like this to the suite invoked by cilium connectivity test?

Do you mean you want me to add a test like this to the suite invoked by cilium connectivity test?

Yes, that would be ideal.

/test

I added a test to cilium-cli, but I will have to re-fix #23330 in one of these two ways mentioned in that issue

Pass a custom /etc/resolv.conf to kubelet via --resolv-conf in the Kind / kubeadm config.
Override /etc/resolv.conf of Kind nodes after creating a cluster (no race condition, as CoreDNS pods won't be started, as a CNI is not ready).

because #24713 changes resolv.conf only in coredns pods, leaving host networking pods with default resolv.conf and making the host-firewall-egress-to-fqdns test I added fail when #23330 is a problem.

I added a test to cilium-cli, but I will have to re-fix #23330

So if I follow correctly, you add a new test in cilium-cli for the change in the current PR in https://github.com/cilium/cilium-cli/pull/2740, and this test also needs the fix in https://github.com/cilium/cilium/pull/34154 to work, is this correct? Very nice work, thanks a lot! :rocket:
Looking at the results from CI today (apologies for the delay), I see that we have two failures:

Cilium L4LB XDP shouldn't be an issue, I think it's been broken during a few days, and it should hopefully be resolved if you rebase your PR on the current main branch.
Datapath BPF Complexity, however, is a concern. This means that the BPF program for the host becomes too complex for the verifier with your changes, at least for some combinations of options we're testing. We'll need to address this to be able to merge. Not sure what's the best path here, maybe try removing some of the tracing points to see if it makes a difference (I didn't dug into the details of the log). Otherwise it's more tricky and we may have to re-arrange code or add a tail call? Cc @julianwiedmann

I will be off soon so I'll ask someone else from sig-datapath to review and follow-up.

So if I follow correctly, you add a new test in cilium-cli for the change in the current PR in cilium/cilium-cli#2740, and this test also needs the fix in #34154 to work, is this correct?

Yes.

Not sure what's the best path here [BPF verifier], maybe try removing some of the tracing points to see if it makes a difference (I didn't dug into the details of the log).

I'll try that, thanks. I looked at the logs, but could not make much sense out of it. BPF verifier quirks is not something one can pick up in a day or two. However verifier tests pass for newer kernels (e.g. 6.8.0 on my test VM), maybe the feature can be gated to newer kernels only as a last resort?

/test

/test

Not sure what's the best path here [BPF verifier], maybe try removing some of the tracing points to see if it makes a difference (I didn't dug into the details of the log).

The BPF complexity test was failing on cil-to-netdev function in older kernels under test (5.10 and 6.1) with "BPF program too large" error. I commented out calls to send_trace_notify(ctx, TRACE_TO_PROXY, ...) as suggested above and it helped, but it wouldn't do to remove these traces in real code. The thing that worked turned out to be swapping the order of return code checks:
diff --git a/bpf/bpf_host.c b/bpf/bpf_host.c
index e7bf9bd284..89d60ab0ba 100644
--- a/bpf/bpf_host.c
+++ b/bpf/bpf_host.c
@@ -1421,12 +1421,12 @@ int cil_to_netdev(struct __ctx_buff *ctx __maybe_unused)
                break;
        }

-       if (IS_ERR(ret))
-               goto drop_err;
-
        if (ret == CTX_ACT_REDIRECT)
                return ret;

+       if (IS_ERR(ret))
+               goto drop_err;
+
 skip_host_firewall:
 #endif /* ENABLE_HOST_FIREWALL */

/test

Great work!
Do we know if these limitations are still in effect?
(Clustermesh and/or wireguard)?
In the context of ClusterMesh, the following combination of options is not supported:
Cilium operating in CRD mode (as opposed to KVstore mode),
Host Policies enabled,
tunneling enabled,
kube-proxy-replacement enabled, and
WireGuard enabled.
This combination results in a failure to connect to the clustermesh-apiserver. For details, refer to GitHub issue 31209.
Host Policies do not work on host WireGuard interfaces. For details, see GitHub issue 17636.


kubectl-cnpg: 1.24.0 -> 1.24.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/cloudnative-pg/cloudnative-pg/releases.
meta.description for kubectl-cnpg is: Plugin for kubectl to manage a CloudNativePG cluster in Kubernetes
meta.homepage for kubectl-cnpg is: https://cloudnative-pg.io/
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.24.1 with grep in /nix/store/vqdjr23jkvwgbazg908y4b2q49hrqr69-kubectl-cnpg-1.24.1
found 1.24.1 in filename of file in /nix/store/vqdjr23jkvwgbazg908y4b2q49hrqr69-kubectl-cnpg-1.24.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

kubectl-cnpg

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vqdjr23jkvwgbazg908y4b2q49hrqr69-kubectl-cnpg-1.24.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kubectl-cnpg https://github.com/r-ryantm/nixpkgs/archive/2c7dcb08142717a936d9eb03e78a726df3631608.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2c7dcb08142717a936d9eb03e78a726df3631608#kubectl-cnpg

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vqdjr23jkvwgbazg908y4b2q49hrqr69-kubectl-cnpg-1.24.1
ls -la /nix/store/vqdjr23jkvwgbazg908y4b2q49hrqr69-kubectl-cnpg-1.24.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

kubectl-cnpg

Maintainer pings
cc @devusb for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 349712

aarch64-darwin

:white_check_mark: 1 package built:

kubectl-cnpg


Python module "carla" not registered by interpreter

Hey it's me again. First of all thanks for the quick answer right before Christmas.
Right now I'm trying to get the python module from this flake to work. I tried both 0.9.14 and 0.9.15 by running e.g. this in the repo-root to get the example python devshell:
nix develop .#carla-py-0_9_15

I am able to get into the shell as expected.
Logs:
nix develop .#carla-py-0_9_15
Executing setuptoolsShellHook
Finished executing setuptoolsShellHook

However when I enter the interpreter with python I cannot use the "carla" module:
python

Python 3.11.6 (main, Oct  2 2023, 13:45:54) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import carla
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'carla'

It looks like somehow the packaging of the module changed which stops python from recognizing it. When running help("modules") inside the interpreter, "carla" is nowhere to be seen in the list of present modules. I also tried using the module in the dev shell of my own project, but I got the same error.

Hmm, I see. It worked with d7f9ae23350e7705f37c776ebf92963ed663c43a (with nix develop .#carla-py), but in main, it fails. I'll look into that later.

It was my mistake again. The flake contains packages named carla-py-VERSION and a devShell named carla-py. When I was adding multiple package versions to the flake, I mistakenly added VERSION suffix also to the devShell example in the README, which was wrong.
In the future, I'll probably rename the devShell and allow having multiple versions of it as well. For now, just use nix develop .#carla-py. It is hardcoded to use CARLA 0.9.15.


[SEDONA-117] RS_AppendNormalizedDifference Implemented and Raster Notebook Updated

Is this PR related to a proposed Issue?
Yes. SEDONA-117
What changes were proposed in this PR?

Implements a new SQL expression for GeoTiff images. Expression name: RS_AppendNormalizedDifference. This transformation calculates the normalized difference index between two bands and appends the index as a new band in the array of all bands.
Updates the raster notebook in the binder to include the improvements made for version 1.2.1.

How was this patch tested?
Unit tests were added for the new transformation operation.
Did this PR include necessary documentation updates?
Yes. Documentation was updated.

@kanchanchy A quick question: Is df.coalesce(1) required in order to write GeoTiffs?
If we don't use coalesce(1), what will happen? and what is the disk layout of this GeoTiff DataFrame?

@jiayuasu No, coalesce(1) is not mandatory. If it is not provided, writing will be distributed and images will be written in different subfolders in the given destination path.

In the unit tests, I have shown it both with and without coalesce(1). I also showed both versions in the documentation.

Same image will not be distributed into multiple sub-folders. If there are 3 images in total, there might be 3 subfolders with each subfolder having 1 image.

@jiayuasu The pull request is updated with the above discussed changes.


[March Release] Adding Event Hubs Info

Summary
The focus of these changes is to add information for the Event Hubs packages that were released for the March milestone.
Last Upstream Rebase
Tuesday, March 9, 1:15pm (EST)

It looks like our automation already pulled in the eventhubs changes in to https://github.com/Azure/azure-sdk/pull/2502 so please have a look over it and if it matches what you want great there is nothing to do. If it needs some tweaks you can go ahead and push a commit to that PR with those tweaks.

It looks like our automation already pulled in the eventhubs changes in to #2502 so please have a look over it and if it matches what you want great there is nothing to do. If it needs some tweaks you can go ahead and push a commit to that PR with those tweaks.

oh!  my bad.  I'm guilty of assuming the PR that you linked was the script;  I didn't click through to see you were sharing generated doc.  Thanks, @weshaggard, and apologies for the confusion.

Closing this out;  changes have been suggested on #2502.


fix: increase timeout for informer on loki.source.podlogs

PR Description
Which issue(s) this PR fixes
Fixes #1852
Notes to the Reviewer
Similar issue was seen (#233) where the fix was to increase the timeout on the informer. I have validated this works on a busy K8s cluster and resolves the issue of the component not starting.
PR Checklist

[x] CHANGELOG.md updated
[ ] Documentation added
[ ] Tests updated
[ ] Config converters updated

 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.


 :-) (Also, I have a Prometheus-K8s and an Alertmanager-K8s charms running in the same controller, and those have no liveness issues.)

No longer reproducible.


bug in climbing and descending stairs

Hello, in this project, using pre-trained weights works fine for climbing stairs, but when descending stairs, the model tends to step on the edge at the second-to-last step, leading to a fall. How can this issue be resolved? Thank you for your reply.
https://github.com/rohanpsingh/LearningHumanoidWalking/assets/151833074/9ea62c7a-ae6b-4fde-b9a5-6ba7d5868151
https://github.com/rohanpsingh/LearningHumanoidWalking/assets/151833074/b99c8e0f-82ec-455c-a1d4-b49dfa320021

Hi, have you face the problem that the robot can not climb a single step, just stepping inplace?

https://github.com/rohanpsingh/LearningHumanoidWalking/assets/45726315/0d39e9b9-94e1-4f6b-9dc3-3bd7a2f87956

My previous issue was about passing directly through the stairs instead of walking on them.

My previous issue was about passing directly through the stairs instead of walking on them.

This issue I encountered before, may be you can check your mujoco version, the version should be 2.2.x

Maybe we can communicate more deeply about this project. Feel free to contact me through<EMAIL_ADDRESS>

I see you are in Shanghai, are you Chinese?

I see you are in Shanghai, are you Chinese?

yeah, a master student at shanghaitech university

I am currently in Changning District, Shanghai too

My previous issue was about passing directly through the stairs instead of walking on them.

This issue I encountered before, may be you can check your mujoco version, the version should be 2.2.x

请问您程序里mujoco和dm-control的具体版本是多少呢？我这边运行的话，楼梯显示不出来


Added Instagram Clone to Advanced app ideas

Hey Florin,
I recently started doing an Instagram clone on my YouTube channel and thought that it is a great learning experience.
I thought that it would be great for your app ideas repo.
Let me know your thoughts :)

Thank you @TylerPottsDev !!


Add a shared test case to validate the MRW pattern

Follow-up of https://github.com/Azure/azure-sdk-for-net/pull/41133, we need enable this test for all RPs

Done


Properly disposing Android objects and classes

Goal
Properly disposing Android objects and classes on Native_Android class. Not disposing it made the code more prone to crash due the memory being partially held or not fully cleaned
Testing
Part of the changes are live on Tennis Clash but IEmbraceProvider.RecordPushNotification isn't properly tested yet

Hi @dpfnascimento! I'll be reviewing this over the next day or so to see if we can get it into the next release. Thank you so much!


Credentials are not cleared on signOut()

Hi Team,
It appears that clearCachedTokensScopes() does not work as intended, because it references this.username and that parameter is undefined. When instantiating CognitoAuth, this.username is set to this.getLastUser() (and this is the only place it is set automatically*). However, by that time the last user is not yet set because cacheTokensScopes() is called only after parseCognitoWebResponse(). As a result, the user session is not cleared at all (except for, ironically, the value of LastAuthUser), and other people logging in on the same device can potentially steal the user tokens. Also, this pollutes localStorage over time as the old tokens are not removed in a multi-user environment.
I suggest we should call this.getCurrentUser() instead of this.username in clearCachedTokensScopes() to ensure that the current user is referenced correctly. Alternatively (even better), we should update this.username after cacheTokensScopes().
*Currently, to work around that without patching CognitoAuth, we must explicitly call auth.setUser(auth.getCurrentUser()) in our onSuccess() callback, which is a bit silly.
Thank you

@yuntuowang's comment implies this has been fixed, but the issue is still open??

Alas I cannot verify this as we moved to Firebase. If others can confirm, I'll close it.