emergency mode with too many hard disks / slow SAS controller

Description
I have zpools spanning 24 disks in that node. As soon as I connect these disks, boot always ends up in emergency mode because some device mapper discovery (?) takes a long time. I then see sysroot.mount: Mounting timeout. Terminating. and from there all things stop into Emergency Mode.
Before that I see many lines like this (presumably one per disk or so):
systemd-udevd[556]: 0:0:22:0: Worker [779] processing SEQNUM=3014 is taking a long time
I have another node with half that many disks, which also spends quite some time looking at all the disks but gets done before a sysroot.mount timeout happens, then imports its zpools and all gets fine at the end.
All I need is a longer timeout, I guess. Presumably on the order of 5min, before it considers emergency mode.
Impact
Can not get that node online with its data on the zpools.
Reproduction
installed 3975.2.0 successfully from USB stick using flatcar-install -d /dev/sda -i ignition.json method
reboot and ignition completes successfully if /dev/sda is the only disk connected, node comes up, joins, all fine ...
( a few disks, like 5 or 10 is probably fine too? - can not try as it would degrade the zpools)
Additional information
I am migrating the cluster from CentOS, which appears to have no problem with the slowness of the many disk devices (can't tell about earlier Flatcar versions).
Flatcar release booted without disks disconnected:
n04 ~ # cat /etc/os-release
NAME="Flatcar Container Linux by Kinvolk"
ID=flatcar
ID_LIKE=coreos
VERSION=3975.2.0
VERSION_ID=3975.2.0
BUILD_ID=2024-08-05-2103
SYSEXT_LEVEL=1.0
PRETTY_NAME="Flatcar Container Linux by Kinvolk 3975.2.0 (Oklo)"
ANSI_COLOR="38;5;75"
HOME_URL="https://flatcar.org/"
BUG_REPORT_URL="https://issues.flatcar.org"
FLATCAR_BOARD="amd64-usr"
CPE_NAME="cpe:2.3:o:flatcar-linux:flatcar_linux:3975.2.0:*:*:*:*:*:*:*"

Can you share full journalctl -b0 and dmesg output from the emergency mode? Do you have any idea how this could be reproduced in a synthetic environment? What is the topology in terms of disks and controllers?
sysroot.mount runs from the initrd, and zfs/zpool probing happens after switch-root. We might be probing more than CentOS from our initrd, hard to tell right now.

Can you share full journalctl -b0 and dmesg output from the emergency mode?

dmesg.txt
journalctl-b0.txt

Do you have any idea how this could be reproduced in a synthetic environment? What is the topology in terms of disks and controllers?

thats hard, i suppose.
Node is a Dell R730xd with all 24 disks in the front filled. Flatcar resides on a 25th disk in the back. All are SSDs of consumer grade though, except for the Flatcar one which is enterprise grade (= full SAS interface, I believe).
Inside is a Broadcom / Avago / LSI SAS3008 PCI-Express Fusion-MPT SAS-3 (rev 02) controller run by the mpt3sas kernel module, connecting all the front disks. Neither BIOS nor iDrac show errors from that controller, its just slow ... BIOS phase takes 5..10min with all disks.
Then is some Intel Corporation C610/X99 series chipset 6-Port SATA Controller operated by sd_mod, connecting the flatcar disk in the back.
Looking at the zpool disks, they have 2 partitions each, like so (thats from another node):
# fdisk -l /dev/sdu
Disk /dev/sdu: 1.82 TiB,<PHONE_NUMBER>016 bytes,<PHONE_NUMBER> sectors
Disk model: WDC  WDS200T2B0A
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AE8B2BAE-3A6B-5A4F-9CA1-FA4B164FFDB9

Device          Start        End    Sectors  Size Type
/dev/sdu1        2048<PHONE_NUMBER><PHONE_NUMBER>  1.8T Solaris /usr & Apple ZFS
/dev/sdu9<PHONE_NUMBER><PHONE_NUMBER>      16384    8M Solaris reserved 1

which means I have 2 * 24 + 9 = 57 partitions in the system.

sysroot.mount runs from the initrd, and zfs/zpool probing happens after switch-root. We might be probing more than CentOS from our initrd, hard to tell right now.

observing the console I see that nothing with zfs/zpool gets to happen yet. Two more unit Jobs stick out however: dev-mapper-user.device/start and verity-setup.service/start. Both run without timelimit and dont finish as far as I waited.
Before emergency shell kicks in, I spot some other device-mapper thing doing a lot work.
In the emergency shell looking at /dev/disk/by-id/ shows multiple (!) links to each of these disks and partitions ... ata-..., dm-name-..., dm-uuid-..., wwn-... ...  but it does not look complete. Need to count to be sure. Suspicion is that device mapper does not finish creating all of these. Its >250 links all together, at least.

Can you try and see if one of these two kernel command line arguments helps mitigate this:
systemd.default_timeout_start_sec=300

or
systemd.default_device_timeout_sec=300

if they do, you can persist them in /oem/grub.cfg (1):
set linux_append="systemd.(...)"

all right, these timeouts make it work!  Thats a quickfix at least. Many thanks!
It made 133 links. The jobs popping out on the console are dev-disk-by\x2dpartuuid..., dev-disk-by\x2dpartlab..., dev-disk-by\x2dlabel... and dev-mapper-usr.device
thereafter zpool imports fine


Regression in merge: SkipPatternProvider doesn't handle all circular dependencies

Describe the bug
In https://github.com/spring-cloud/spring-cloud-sleuth/pull/1722 a change was made to broaden the Exceptions caught in SkipPatternConfiguration due to the possibility of circular dependencies. It seems that when 2.2.x was merged into 3.x.x that this change was dropped. ie. The exception type caught was reverted to BeanCurrentlyInCreationException rather than BeanCreationException.
In our case the exception that bubbles up is a (and has a cause-chain) of UnsatisfiedDependencyException, with a root cause of BeanCurrentlyInCreationException.
Having SkipPatternConfiguration catch BeanCreationException is necessary to handle this case where the dependency cycle is realised (ie. throwing BeanCurrentlyInCreationException) multiple jumps away.

Closed in favor of this PR https://github.com/spring-cloud/spring-cloud-sleuth/pull/1985


Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Installation issue.
Brief description of your issue
Installer failed with exit code:<PHONE_NUMBER>
Steps to reproduce
winget upgrade
Actual behavior
failed with exit code
Expected behavior
upgrade bluestacks with winget
Environment
winget --info
Windows Package Manager v1.3.2691
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.521
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.18.2691.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Screenshots and Logs

Name         Id                   Version    Available    Source
BlueStacks 5 BlueStack.BlueStacks <IP_ADDRESS>2 5.9.300.1014 winget
1 upgrades available.
(1/1) Found BlueStacks [BlueStack.BlueStacks] Version 5.9.300.1014
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Starting package install...
Installer failed with exit code:<PHONE_NUMBER>

It installed just fine in my tests. Would you mind uploading the BlueStacks installer log? It should be located in C:\ProgramData\BlueStacks_nxt\Logs and have the file name Installer_5.9.300.1014.log.

Glad to hear you got it working! Upon an initial review of the log, I didn't see any reason for it to fail. Regardless, I think it would be safe to close this issue now as the issue has been resolved. Cheers!

I had this same issue. Running the official .exe gave me the error FAILED_TO_CREATE_VMCONFIG. I followed the instructions from this Reddit post, deleted the Nouget 32-bit instance, and the winget upgrade ran perfectly after.


“NativeModules”is not work

NativeModules  can not find     RCT_EXPORT_METHOD

Closing because lack of information @hellobinbin, please follow the issue guidelines when you create an issue


Is there an example for deploying a WebJob (and each of the other types named in the description) available?

This task has many options. Which options are relevant for a WebJob (or set of webjobs)?
The same question can be asked about the other app types named in the description (Azure App Services on Windows, Web App on Linux with built-in images or Docker containers, ASP.NET, .NET Core, PHP, Python or Node.js based Web applications, Function Apps on Windows or Linux with Docker Containers, Mobile Apps, API applications, Web Jobs).
Without this kind of example using this task is a time vampire.

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

ID: 29c94df7-9de9-ea1a-8b77-d1e6023694dc
Version Independent ID: a525989e-2e0a-0399-556e-9011ee95da4e
Content: Azure App Service Deploy task - Azure Pipelines
Content Source: docs/pipelines/tasks/deploy/azure-rm-web-app-deployment.md
Product: devops
GitHub Login: @erickson-doug
Microsoft Alias: dastahel

Same question, the lack of a webjob examples seems to indicate it isn't possible without a lot of custom scripting.

@pictoric - I have webjobs that are not part of any webapp. The way we found to deploy these using the app service task is to create a virtual application on the app service, and then direct the app service task to use that virtual app.
The virtual app path's (in the configuration page of the app service) target path should match the app data location for the type of webjob (triggered or continuous).
MSFT seems to be under the impression that webjobs are generally part of some web app, and in that situation the app service deployment task will deploy the webjobs without as much reconfiguration.

@StingyJack Are you using webdeploy or zipdeploy?    I actually solved this a different way:

publish artifact which is a zip file containing the published build (build pipeline)
Deploy script downloads artifact and unzips it into a path like pipeline-artifacts\App_Data\jobs\continuous\mywebjobname
Rezips the files so it maintains the structure and then zip publish this to the web app

I could have done the zip in the build step but the deployment is really independent of the actual artifact.
I may try your way if that can eliminate a few of my steps which makes it easier to maintain.

Neither; I have an inline powershell script in the build pipeline that copies the project output for each webjob into its own artifact staging folder.
The release pipeline just copies each of those artifact folders to the virtual application specified in each of the the app service deployment tasks.
The zip deploy seems harder to troubleshoot for missing files or config issues. Maybe it's not, idk. I do want to avoid the ridiculous nesting in the webdeploy zips, and this seemed pretty straightforward for everyone else to follow.

If your deploying webjobs you need to use WebDeploy and windows and it works out of the box.

@TroyArrandale this issue is for how to use the release pipeline task to achieve the result in a mostly automated fashion. I've not been interested in publishing things into test or prod environments directly from someones PC for a long time

@StingyJack  it works from a release pipeline is you use a Web App Deployment like below.  You need to use WebDeploy property for the web job to be set up correctly and it needs to be from an Agent on a windows OS.
steps:

task: AzureRmWebAppDeployment@3
displayName: 'Deploy Web Jobs.'
inputs:
azureSubscription: '$(Subscription)'
WebAppName: '$(AppServiceName)'
Package: '$(System.DefaultWorkingDirectory)***.zip'
TakeAppOfflineFlag: true
UseWebDeploy: true
AdditionalArguments: '-retryAttempts:10 -retryInterval:6000'
RenameFilesFlag: true

@TroyArrandale I would believe that works, but I'd need to have a webdeploy zip. I won't have one of those unless I configured the release branch build to make one.
@RoopeshNair - I asked for better instructions like 10 months ago. What happened?

This task was auto-generated from the Deployment Center in the Azure portal.  https://github.com/Microsoft/azure-pipelines-tasks/issues/4127 describes a chronic issue with deploying node / React apps.  This task should "just work" if npm is really going to be a supported technology.
The build archive from building our app packaged 38K Files.
Either the packaging should be updated to just deploy the packages and the deployment task should run npm install -or- the installer should be able to deploy the built package.  Either one would be acceptable.

I too would find these instructions really helpful - it's all very well saying it can be used for WebJobs, but how? Currently having to do this from scratch with a really hacky solution

@ttjackott - Are you deploying the webjobs as part of a web site/app, or are they independent? If its the latter, then the basic steps are as follows...
Make sure a build pipeline is creating an artifact that has all of the files that are needed for the webjob to operate correctly either alone in a published artifact, or in a folder if there are many programs in the artifact. This is what a copy step can look like

And this would be the corresponding artifact publishing step....

When thats done, run that build def and make sure the artifact you want is visible on the summary page and has all the files it needs.
Then, on the target app service's configuration page create a virtual application for your webjob that has paths that look like this...

In the release pipeline, make sure that artifact that the build def created is referenced.  Then add an app service deploy task and fill out the target system connection info, and then make sure to set the virtual application value to the virtual path that was just created in the app service configuration page, and then use the ellipses button for package or folder to browse to the artifact and then the Some_Webjob folder and select it.

That is it, really. (I would also strongly recommend using that app service configuration page as the place where you define the appSettings/connectionstrings/etc properties that your webjob will need and foregoing any XDT or variable substitution if you can.)

We've moved this issue to our internal tracking system as we transition to a new feedback system.


Generate trace gif?

I was looking for a way to generate a hilbert curve for a wallpaper, and I was stunned by the trace gif in the readme. I compiled the project and I can't seem to figure out how to generate one of those gifs, do you know how I could do so?

This is the script I used to generate the the main gifs!
https://github.com/Wunkolo/qHilbert/blob/master/scripts/Hilbert.py
If you mean the red ones, that uses a modification where I just map the Hilbert curve index to the intensity in the red channel and offset it(with a modulo I believe)
https://github.com/Wunkolo/qHilbert/commits/master/scripts/Hilbert.py
I think one of these revisions are the one you are looking for. It's been quite some time 😅

For sure! I wrote some code here that does a similar technique to that gif that you may reference from as well!
https://www.shadertoy.com/view/XtGBDW


Added changes for bastion_fips_reboot related module

Signed-off-by: Aditi Jadhav<EMAIL_ADDRESS>Added below changes for bastion_fips_reboot related module

Commented sensitive=true in modules variables.tf
Added depends on in bastion_fips_reboot
Updated shutdown command in fips.tf for bastion_fips_reboot

Verified the deployment for RHEL86 and RHEL9.
Updated logs in issue https://github.ibm.com/redstack-power/octopus/issues/240

Hi @prb112 Could you please review the changes.


Desktop-only notice

Notify mobile users that the Screen Capture API is only available on desktops.

Fixed in 4bcdfbaedf983afd761854ba5286ae06b3e08d02


chore: Prepare release branch for new release

Summary
This cherry-picks #214 and #215 into the 2.1.x release branch.
Tests
The Compat Suite runs on the latest version of the testapp, which is built from the master branch and already has changes to support the 3.0 release. Therefore, this particular release branch compile with that testapp version and we can't run the compat suite tests on it.
Instead, I've checked out a different branch of the testapp and ran the compat suite tests locally against this PR.

Looks like compat failed.


usingnamespace removal

The Zig compiler maintainers intend to maybe remove usingnamespace  Remove usingnamespace #20663  the Zig language, as such I propose we discuss how we should deal with it. So far I've been working on a branch that extracts everything into it's own file, where declarations are then imported back manually where needed. I suspect not everything will be able to fit that model, but this will simplify working on the main file.

I heavily use usingnamespace for Mixins. It's very convenient and also readable in my opinion.
I doesn't like the suggested alternative for Mixins very much because its lacks readability and one would have to change a lot on the caller site as well as on the receiver side. This would lied to more boilerplate code as well.
If  usingnamespace  gets removed I hope at least there will be a good alternative for Mixins. Since Mixins are a well known concept I suggest just that:
pub fn CounterMixin(comptime T: type) type {
    return struct {
        pub fn incrementCounter(x: *T) void {
            x._counter += 1;
        }
        pub fn resetCounter(x: *T) void {
            x._counter = 0;
        }
    };
}

pub const Foo = struct {
    _counter: u32 = 0,
    pub mixin CounterMixin(Foo);
};

I don't like the suggested alternative for Mixins very much because its lacks readability and one would have to change a lot on the caller site as well as on the receiver side. This would lied to more boilerplate code as well.

We're moving towards atomizing the implementations where the front ends essentially import what they use. Then the entry point has a single switch they breaks over the child type to the output struct. This works because const declarations can be both used like class and instance level functions:
const std = @import("std");

pub fn eq_impl(comptime T: type) type {
    return struct {
        pub fn call(self: T, other: T) bool {
            return self.data == other.data;
        }
    };
}

const Bar = struct {
    data: i32 = 42,
    const eq = eq_impl(Bar).call;
};

pub fn main() !void {

    const x: Bar = .{ .data = 42 };
    const y: Bar = .{ .data = 42 };

    if (x.eq(y)) // instance level
        std.log.info("It worked", .{});

    if (Bar.eq(x, y)) // type level
        std.log.info("It worked", .{});

    return;
}

Here you can see eq can be arbitrarily specialized and written only once. We'll them compose our way back up to how we were before. A bit more verbose but not bad in total.

Yes, this is more readable. On the other hand, still, when you have Mixins with several functions, you need to declare constants for every function of the Mixin in every use of the Mixin. But surely better as the original alternative, thank you for the example.

Hi @AndreasHefti, while the pattern and fundamental design we were using need to evolve, we will, of course, do our best to provide a solution that pleases everyone. Nothing is set in stone. This morning, @andrewCodeDev and I were discussing how to address this issue, and we have decided to proceed with the aforementioned pattern. Naturally, only hands-on experience will reveal how it performs at the scale of our small library. We would be grateful for any feedback or suggestions of course.

In fact, I opened a thread for this on Ziggit: https://ziggit.dev/t/mxin-alternative-using-const-declarations/6091


Error When Enabling Addon

Report: Error
Traceback (most recent call last):
File "File Location", line 324, in enable
mod =import(module_name)
ImportError: No module named 'BoolTool 0'

Hi, so this is kind of confusing(and if you haven't figured out what to do yet, follow this.), sigh.  Ok, to get started, what you have wrong is that you are using version 0.1 instead of 0.2, and version 0.1 is no longer compatible with blender.  So, if you are on Windows OS make sure you have Win-rar, and if you are on OS X then use the unarchiver(this has been proven useful in MANY situations).  Then, unarchive the 0.2 rar, and if you were to go into blender and try to open it, guess what happens, the directory is taken, (if it's not, and you can enable it than you are done right here, but otherwise) so, go to the directory that it says, in my case(OS X) it is Users/(My User)/Library/Application Support/Blender/2.77/scripts/addons/BoolTool.  Just delete BoolTool.  Finally, go into blender and enable the addon!  You're Done!  :D


Problem with link that loads the page equal behavior of pure HTML.

The problem or bug
For hours I have been trying to resolve the link that is loading the page (behavior "HTML pure") to change the screen.
The link component is customized, what changes is adding a interval to have a perfect effect when switching the screen. This component works perfectly if I put it on the menu and not inside the page.
The site works perfect, the code seems to me totally correct, no errors on the console or something like that.
I do not know what's wrong, does anyone have any knowledge about it?
Sorry for my English (I do not know everyone could understand) lol
Steps to reproduce
Clicking button ' + ' in screen Portfolios
This button come component LinkLoader
Expected Behavior
That this button executes onClick and change screen without load page.
Behavior default and normal.
Actual Behavior
After click, executes href and load the page with new url, behavior "HTML pure".
If I put this Link inside menu, work perfect.
index.js
import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter as Router, Route } from 'react-router-dom'

import Home from './scenes/home'
import Portfolios from './scenes/portfolios'
import Bar from './scenes/portfolios/bar'

import Menu from './components/menu'
import Loader from './components/loader'
import './styles/index.css'

ReactDOM.render(
    <Router history={null}>

            <Menu />
            <Route exact path='/' component={ Home } />
            <Route exact path='/portfolios' component={ Portfolios } />
            <Route exact path='/portfolios/bar' component={ Bar } />
            <Loader />

    </Router>,
    document.getElementById('root')
);

Porfolios
import React, { Component } from 'react'
import PortfolioItem from '../../components/portfolioItem'

const stylesProfitImg = {
    // code CSS image
}

class Portfolios extends Component {

    componentDidMount() {
       // code animation
    }

    render() {
        return (

                <PortfolioItem
                    title="Bar"
                    desc="Lorem ipsum bar bar bar bla bla"
                    link="bar"
                >

                </PortfolioItem>

        )
    }

}

export default Portfolios;

PortfolioItem
import React, { Component, PropTypes } from 'react'
import LinkLoader from '../linkLoader'

export default class PortfolioItem extends Component {

    render() {

        const path = '/portfolios/' + this.props.link

        return (

                        <LinkLoader to={ path }>

{ this.props.title }

                        </LinkLoader>

                            { this.props.desc }

                    <LinkLoader className="button" to={ path }>+</LinkLoader>

                { this.props.children }

        )
    }

}

PortfolioItem.propTypes = {
    title: PropTypes.string.isRequired,
    desc: PropTypes.string.isRequired,
    link: PropTypes.string.isRequired,
    color: PropTypes.string
}

LinkLoader
import React, { Component, PropTypes } from 'react'
import { Link, NavLink } from 'react-router-dom'

const isModifiedEvent = (event) =>
    !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey)

class LinkLoader extends Component {

    constructor() {
        super();
        this.handleClick = (event) => {
            if (
                !event.defaultPrevented && // onClick prevented default
                event.button === 0 && // ignore right clicks
                !this.props.target && // let browser handle "target=_blank" etc.
                !isModifiedEvent(event) // ignore clicks with modifier keys
            ) {
                event.preventDefault()

                // Start loader
                window.initLoad();

                const { history } = this.context.router
                const { replace, to } = this.props

                setTimeout(() => {
                    if (replace) {
                        history.replace(to)
                    } else {
                        history.push(to)
                    }
                    return false;
                }, 500)
            }
        }
    }

    render() {

        let link = null;
        const { nav, ...rest } = this.props
        nav
            ? link = <NavLink {...rest} onClick={this.handleClick} />
            : link = <Link {...rest} onClick={this.handleClick} />

        return (

                { link }

        )

    }
}

LinkLoader.contextTypes = {
    router: PropTypes.object,
    nav: PropTypes.bool
}

export default LinkLoader

Version
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router-dom": "^4.0.0",

So you want to pre-load some stuff before the Link actually carries out the navigation? Well, you're setTimeout doesn't guarantee things have happened before it issues the request. I would change that to be some sort of callback that gets hit once the load is finished.
And, since you're doing the navigation already anyway, don't render a Link component, just a simple a tag. That might be interfering.

Sorry, I found the solution, the problem was a plugin that removed the element and mounted again, which resulted the event router loss of the element.


Cache some properties

Cache some small properties that are rather slow to calculate but doesn't change that often.
Questions that needs to be resolved:

[ ] Can these properties change during the lifetime of the class? If so the cache needs to be reset when that happens.

[ ] Related to #3514
[ ] Tests added
[ ] Passes pre-commit run --all-files
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

Notes

Mixin classes makes it difficult to cache properties. For example ndim in NdimSizeLenMixin cannot be easily be replaced with cache_readonly.

Thanks for kicking this off @Illviljan .
My concern with this is that adding the _cache nullifies the benefits of slots. @keewis do you have any thoughts?
It also sounds like the speed-ups I was seeing might not be real. Probably we should have an ASV so there's a benchmark we're all looking at.

The case I'm optimizing is dataset interpolation with many variables. Although it's not the bottleneck there I halved the shape time from ~180ms to ~92ms with this change.

Resurrecting this, as discussed on the dev call.
Could we replace the pandas decorator with the one from the standard library? That may require adding __dict__ as a slot.
Then as long as the benchmarks still look good, there was consensus that we should merge.


Expose paused state for alert

I want to make a line at the bottom of the alert that will show when it disappears.

The problem is that in my notivue config I have enabled pauseOnHover: true, pauseOnTabChange: true, but I can't find out when the current alert is active or paused. Therefore, I propose to add some property like isPaused to the alert object (obviously, it should be ref)

Hi @MellKam, sorry for getting back now but I'm a bit busy these days.
I understand that a boolean indicating whether the stream is paused or not might be useful for stuff like animating a progress bar. But there's a reason why I never included it in the API and why I might never do that.
As you know, notifications are paused by different events such as mouse hovering, tapping, keyboard-navigation, window focus/blur, etc.  Ideally once you have access to the value of store.timeouts.isStreamPaused you would animate a progress bar inside your notification like this:
<div
   :class="['Progress', { isPaused: isStreamPaused }]"
   :style="{ '--item-duration': item.duration + 'ms' }"
/>

.Progress {
   position: absolute;
   bottom: 0;
   left: 0;
   width: 100%;
   height: 3px;
   background-color: var(--nv-accent);
   transform-origin: left;
   animation: ProgressKF var(--item-duration) linear forwards;

   &.isPaused {
      animation-play-state: paused;
   }
}

@keyframes ProgressKF {
   0% {
      transform: scaleX(1);
   }

   100% {
      transform: scaleX(0);
   }
}

This works great in my local playground for any event except for when switching tabs: in this case the class isPaused is not toggled on the DOM element even if the value of isStreamPaused it is. This has to do with how the browser works and there isn't much I can do here unless finding hacks or alternative ways.
In order to release this or any other feature, such feature has to be rock solid and work everytime and in any scenario. This one just won't.

Released in v2.3.0


[SPARK-44433][3.5][PYTHON][CONNECT][SS][FOLLOWUP] Terminate listener process with removeListener and improvements

Master Branch PR: https://github.com/apache/spark/pull/42283
What changes were proposed in this pull request?

This is a followup to #42116. It addresses the following issues:

When removeListener is called upon one listener, before the python process is left running, now it also get stopped.
When multiple removeListener is called on the same listener, in non-connect mode, subsequent calls will be noop. But before this PR, in connect it actually throws an error, which doesn't align with existing behavior, this PR addresses it.
Set the socket timeout to be None (\infty) for foreachBatch_worker and listener_worker, because there could be a long time between each microbatch. If not setting this, the socket will timeout and won't be able to process new data.

scala> Streaming query listener worker is starting with url sc://localhost:15002/;user_id=wei.liu and sessionId 886191f0-2b64-4c44-b067-de511f04b42d.
Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/wei.liu/oss-spark/python/lib/pyspark.zip/pyspark/sql/connect/streaming/worker/listener_worker.py", line 95, in <module>
  File "/home/wei.liu/oss-spark/python/lib/pyspark.zip/pyspark/sql/connect/streaming/worker/listener_worker.py", line 82, in main
  File "/home/wei.liu/oss-spark/python/lib/pyspark.zip/pyspark/serializers.py", line 557, in loads
  File "/home/wei.liu/oss-spark/python/lib/pyspark.zip/pyspark/serializers.py", line 594, in read_int
  File "/usr/lib/python3.9/socket.py", line 704, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

Why are the changes needed?

Necessary improvements
Does this PR introduce any user-facing change?

No
How was this patch tested?

Manual test + unit test

Thanks! merging to 3.5.


FloorFilter - Remove automatically setting the viewpoint

If there is exactly one site in a floor aware map, then the Floor Filter automatically sets the viewpoint to that site after the map loads. We would like this to be removed or give us the ability to disable this functionality.

Hi @kieranraftery, I'm happy to report this has been implemented and will be available in the upcoming 200.7 release via the FloorFilter.automaticSingleSiteSelectionDisabled(_:) modifier.


fail_on_bundles_errors: true breaks Kairos installation on 2.4.2

Simply enabling fail_on_bundles_errors: true makes kairos installation fail with:
fork/exec rsync -aqAX /var/lib/extensions /usr/local/.state/var-lib-extensions.bind: no such file or directory

coming from here: https://github.com/kairos-io/kairos-agent/blob/944ce8ce741adc24bb4ebbc5a5fba460c1e83e53/internal/agent/hooks/bundles.go#L39
My config:
#cloud-config

fail_on_bundles_errors: true

users:
  - name: kairos
    passwd: kairos

my version:
kairos-opensuse-leap-15.5-standard-amd64-generic-v2.4.2-k3sv1.28.2+k3s1

This maybe affects the installation of bundles in  general, not sure yet. I was debugging my test bundle and enabled the option above and found this

TODO: document the use of fail_on_bundles_errors in the kairos config. It doesn't seem to be documented.

Fixed here: https://github.com/kairos-io/kairos-agent/pull/174


Possible to use swc with / for eslint?

eslint is a big part of our largest project's build times and it's currently configured to use babel-parser.
To get rid of babel entirely it'd be nice to be able to get eslint to use swc somehow:
https://eslint.org/docs/user-guide/configuring#specifying-parser
On an unrelated note, with swc 1.0.21 the project finally builds and seems to mostly work (I haven't looked to closely yet). Thank you for your hard work and the quick responses to bug reports, it's much appreciated!

It's blocked by #230 (because we can't emit esprima-compatible ast)

Would be pretty nice if the parser could be turned into a standalone project you can use in other rust projects 👀

@ForsakenHarmony Parser is uploaded on crates.io, and it can be built with stable rust.

I just tried but it seems eslint is expecting something a little bit different than the format returned by
exports.parse = function(str, opts) {
  return require('@swc/core').parseSync(str.toString(), {});
};

To test with eslint, just create a<EMAIL_ADDRESS>file containing above snippet,
then put this into your project's .eslintrc:
{"parser": "@swc/parser"}

Then to debug,
DEBUG=eslint:* eslint somefile.js

For me it returns (usling @swc/core 1.1.2 and eslint 6.7.2
  eslint:linter TypeError: Cannot read property '__define' of null
    at PatternVisitor.visitPattern [as callback] (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js:348:33)
    at PatternVisitor.Identifier (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/pattern-visitor.js:66:14)
    at PatternVisitor.Visitor.visit (/usr/local/lib/node_modules/eslint/node_modules/esrecurse/esrecurse.js:104:34)
    at traverseIdentifierInPattern (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js:53:13)
    at Referencer.visitPattern (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js:168:9)
    at Referencer.visitVariableDeclaration (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js:347:14)
    at Referencer.VariableDeclaration (/usr/local/lib/node_modules/eslint/node_modules/eslint-scope/lib/referencer.js:534:18)
    at Referencer.Visitor.visit (/usr/local/lib/node_modules/eslint/node_modules/esrecurse/esrecurse.js:104:34)
    at Referencer.Visitor.visitChildren (/usr/local/lib/node_modules/eslint/node_modules/esrecurse/esrecurse.js:83:38)
    at Referencer.Visitor.visit (/usr/local/lib/node_modules/eslint/node_modules/esrecurse/esrecurse.js:107:14) +7ms
  eslint:linter Generating fixed text for /home/dev/Software/github/postinstall-js/index.js (pass 1) +0ms
  eslint:source-code-fixer Applying fixes +0ms
  eslint:source-code-fixer shouldFix parameter was false, not attempting fixes +0ms
  eslint:file-enumerator Complete iterating files: ["index.js"] +43ms
  eslint:cli-engine Linting complete in: 44ms +9ms

/home/dev/Software/github/postinstall-js/index.js
  0:0  error  Parsing error: Cannot read property '__define' of null

@kdy1 I'm a bit confused about the status of this, hope you can clarify. (As you might be guessing I'm also super excited about swc use with eslint because of speed).
A comment above (https://github.com/swc-project/swc/issues/246#issuecomment-465403756) is mentioning this having been blocked by #230. That issue is closed and merged. Considering the comment above "AST is missing the tokens array." I'm guessing there is more missing?

It still requires lots of work

If I got it right #230 would allow to have the needed AST format as an output.
Would something like https://github.com/babel/babel-eslint/tree/master/lib/babylon-to-espree be an intermediate solution? Adapting it to work with the output from swc? Or is there some issue with the format that would make that solution used by babel impossible with swc?

It's possible, but I'm not sure if it worths

Can you elaborate more?
Do you mean that with #274 it is now natively possible to use swc as a eslint (espree) parser? And if not, what is missing to be done?
or do you mean that converting the format in js as it is done with babel is "possible, but not worth it"? Would that be too much work for a possibly small speed improvement?
In general I think this is a topic of interest to speed up eslint end if the remaining work to be done is clear maybe easier to get it contributed.

Do you mean that with #274 it is now natively possible to use swc as a eslint (espree) parser? And if not, what is missing to be done?

No, because eslint does not use babel ast.
It can be used if something like https://github.com/babel/babel-eslint/tree/master/lib/babylon-to-espree is used.
swc-to-espree is not done.

or do you mean that converting the format in js as it is done with babel is "possible, but not worth it"? Would that be too much work for a possibly small speed improvement?

Is eslint slow because of the parser?
I know parsing in javsacript is very slow, but optimizations have only meaning if it was the bottleneck.
Note: It can be a huge difference if eslint custom parser api supports asynchronous parser. If it's the case, performance will be improved a lot even if the bottleneck wasn't the parser.

I started a discussion on eslint about asynchronous parser api.
https://github.com/eslint/eslint/discussions/14733

It takes over 90 seconds to parse our project on my Mac to lint our project. Here's a screenshot of a CPU profile - hope it helps.

It may worth then, but I expect conversion of swc ast -> babel ast -> espree ast to be slow.
Need some profiling I guess.

Is there some insight on this? Is there a working solution that could make ESLint work with SWC yet?

@extroonie swc has code to produce ESTree AST/ acorn AST, but it's not exposed to js world currently. It will be nice if you can patch it to expose it.

@kdy1 sorry but I don't quite get that. What do you mean by patching it? Could you walk me through it please?

@extroonie I mean adding a method that is callable from js world, like https://github.com/swc-project/swc/blob/a4e93eb2dff0614e7a39c4301c84654412cf68dc/crates/node/src/transform.rs#L140-L157

@kdy1 thanks. Just want to double-check, the problem I'm having with ESLint and SWC is that some of the code with decorators and other ECMAScript proposals are throwing parser errors with ESLint. Now, I'm not sure whether SWC or ESLint has to deal with it.

You need to patch both

@extroonie swc has code to produce ESTree AST/ acorn AST, but it's not exposed to js world currently. It will be nice if you can patch it to expose it.

@kdy1 I'd love to give it a shot!
Which methods of swc_estree_compat would you expose for that?

@manuschillerdev There's babelify()

In my case, I just have deleted the attribute "parser": "@babel/eslint-parser", in the .eslintrc config fie.
Then I set up the following config in vscode.
  "editor.defaultFormatter": "dbaeumer.vscode-eslint",
  "[javascript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  }

It works well for me.

How are things going?

@Extroonie swc has code to produce ESTree AST/ acorn AST, but it's not exposed to js world currently. It will be nice if you can patch it to expose it.

Hey everyone! Is anyone looking into this? I see the issue has been stale for a while and was wondering if we already have it exposed to JS? Really excited about the idea of moving off of @typescript-eslint/parser (as this is the main bottleneck of my current eslint code) to SWC!

@Extroonie swc has code to produce ESTree AST/ acorn AST, but it's not exposed to js world currently. It will be nice if you can patch it to expose it.

Hey everyone! Is anyone still looking into this? I see the issue has been stale for a while and was wondering if we already have it exposed in JS? Really excited about the idea of moving off of @typescript-eslint/parser (as this is the main bottleneck of my current eslint setup) to SWC!

Nope. The linter should be written in Rust to make it performant enough.


Add basic CI - Add CI workflow, update Makefile, and enhance Neovim config

Summary by CodeRabbit

New Features

Added a new GitHub Actions workflow for continuous integration, including linting and formatting jobs.
Introduced a decorative ASCII art header for the dashboard.
Enhanced functionality of the CopilotChat plugin with new commands and key mappings.

Chores

Updated Makefile to support flexible code formatting checks.
Replaced existing lint workflow with a more streamlined version.

Infrastructure

Added a new global configuration variable for the Snacks plugin.

@coderabbitai review

@coderabbitai generate docstrings

Actionable comments posted: 3
🧹 Nitpick comments (5)

neovim.yml (1)> 7-8: Consider restricting the Snacks global type

While any: true provides flexibility, it can mask type-related errors. Consider explicitly defining the expected type/structure of the Snacks global if known.

Makefile (1)> 4-5: Add .PHONY declaration for make targets

To prevent conflicts with files named 'format' or 'check-format' and improve Makefile clarity, add .PHONY declarations:
+.PHONY: lint check-format format

 lint:
 	selene .

.github/workflows/ci.yml (3)> 16-21: Improve cache key strategy

The current cache key only changes when the workflow file changes. Consider including the Cargo.lock (if exists) or tool version in the cache key:
         with:
           path: ~/.cargo/bin
-          key: ${{ runner.os }}-cargo-bin-lint-${{ hashFiles('.github/workflows/ci.yml') }}
+          key: ${{ runner.os }}-cargo-bin-lint-${{ hashFiles('.github/workflows/ci.yml', '**/Cargo.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-cargo-bin-lint-

49-53: Add explicit error message for format check failure
The current setup silently continues on format check errors. Add explicit error messaging:
       - name: Check format
         id: check-format
         continue-on-error: true
-        run: make check-format
+        run: |
+          make check-format || {
+            echo "::error::Code formatting check failed. Changes will be committed automatically."
+            exit 1
+          }

1-64: Consider adding fail-fast configuration for jobs
Add fail-fast configuration to stop all jobs if one fails:
 jobs:
+  # Add this at the top level of jobs
+  defaults:
+    run:
+      fail-fast: true
+
   lint:
     runs-on: ubuntu-latest

📜 Review details

@coderabbitai when adding the restore-keys option the action tries to install dependencies again. can you fix that?

@coderabbitai what permissions should my format job have in order to be able to push a change?

@coderabbitai i have contents: write in the job level and permissions: {} in the top level
when i try to run the action i get the following error when trying to push
[detached HEAD 95a4df4] Format code
 1 file changed, 1 insertion(+), 1 deletion(-)
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push origin HEAD:<name-of-remote-branch>

Error: Process completed with exit code 12[8](https://github.com/snikoletopoulos/neovim_config/actions/runs/12559890203/job/35016331019#step:7:9).

can you fix it?

Actionable comments posted: 3
🧹 Nitpick comments (5)

neovim.yml (1)> 7-8: Consider restricting the Snacks global type

While any: true provides flexibility, it can mask type-related errors. Consider explicitly defining the expected type/structure of the Snacks global if known.

Makefile (1)> 4-5: Add .PHONY declaration for make targets

To prevent conflicts with files named 'format' or 'check-format' and improve Makefile clarity, add .PHONY declarations:
+.PHONY: lint check-format format

 lint:
 	selene .

.github/workflows/ci.yml (3)> 16-21: Improve cache key strategy

The current cache key only changes when the workflow file changes. Consider including the Cargo.lock (if exists) or tool version in the cache key:
         with:
           path: ~/.cargo/bin
-          key: ${{ runner.os }}-cargo-bin-lint-${{ hashFiles('.github/workflows/ci.yml') }}
+          key: ${{ runner.os }}-cargo-bin-lint-${{ hashFiles('.github/workflows/ci.yml', '**/Cargo.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-cargo-bin-lint-

49-53: Add explicit error message for format check failure
The current setup silently continues on format check errors. Add explicit error messaging:
       - name: Check format
         id: check-format
         continue-on-error: true
-        run: make check-format
+        run: |
+          make check-format || {
+            echo "::error::Code formatting check failed. Changes will be committed automatically."
+            exit 1
+          }

1-64: Consider adding fail-fast configuration for jobs
Add fail-fast configuration to stop all jobs if one fails:
 jobs:
+  # Add this at the top level of jobs
+  defaults:
+    run:
+      fail-fast: true
+
   lint:
     runs-on: ubuntu-latest

📜 Review details

@coderabbitai how should i change the neovim.yml for it to be correct?
Snacks is from this repo https://github.com/folke/snacks.nvim

@coderabbitai can selene get these from a lua type?
I don't want to have to maintain this


Add buchh.org

GTMetrix Report: https://gtmetrix.com/reports/buchh.org/5pP6szWy/
86KB uncompressed, which is mostly comprised of images.

added!


[Feature editing] Edit feature geometries

As a user I want to change the geometry of a feature.
As a developer I want to start the edit feature process for a given feature.
Acceptance criteria:

In general, supported geometry-types are polygon and multi-polygon
The developer can call a method/interface that starts the edit feature process for a given feature.

Parameters: Feature to edit or it's ID and a reference to the feature's layer (OGC API Features Service integrated as VectorLayer).

The geometry is highlighted in the map.
The vertices of the geometry can be dragged to a new position to change the geometrie's shape.
Intermediate points between the vertices can be dragged to a new position. This results in a new vertex at this position.
The map can be panned and zoomed while editing.
The user is able to cancel the editing (e.g. by pressing ESC)
When the user finishes the drawing (e.g. by double click or pressing enter on the keyboard or clicking somewhere outside the geometry) , the changed geometry is stored in the OGC API Feature Service (only Xtra Proxy needs to be tested - add hint in documentation that only Xtra Proxy was tested).
If the editing is completed (and the geometry is stored) or cancelled, a kind of response (return value/ event /callback function) is provided. This response has to contain the information if the editing was successful, the ID of the edited feature and the ID/the reference of/to the corresponding layer.
The Demo App contains a test tools which allows the user to select a feature on a layer (hard coded) in the map and starts the edit process for the selected feature.

out of scope:

Other service types than OGC API Feature Services
Other geometry types than polygons/multi-polygons
Snapping
Attribute editing
Rotate / rescale feature

PR: #289


Support for Sanctum

Can you add Support form sanctum middleware "auth:sanctum"? i want to add Bearer Header

Thanks, sorry for delays in the addition of features.
If you have a pull req, I can look into it, but the new features planning has been delayed to next year due to busy schedule :(


GEODE-9295: Reply sent always  while processing LatestLastAccessTimeM…

…essage
* Even if there any any exception, a reply will be sent back to the sender so that the sender's threads are not stuck.

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

It would be nice to add a DUnit test that replicates the issue we were seeing.

It would be nice to add a DUnit test that replicates the issue we were seeing.

I agree!
The test doesn't need to setup all the expiration and try get the bucket migration timing to align with an expiration event. We could just have server A invoke this operation on server B for a key we know B does not have. It seems like it should be possible to do the same for the region too by sending the message with a region name that does not exist on B. In both cases without the fix should hang the calling thread on A. You can unstick it in the test, if necessary, by invoking thread.interrupt() followed by LockSupport.unpark.

I'll work on the dunit test. Since my test to make it happen for real is too unreliable, I'll simulate the issue by just creating the reply processor and message in one member and sending it to another member in various states.

@DonalEvans Thank you for the review, the changes have been implemented.

If I revert the changes in this PR, the newly added DUnit test still passes.

@DonalEvans for the test to fail we have to revert all the fixes to GEODE-9295, 3b9acf56100da663d4df60417dc389d6c7aea2a9
The previous SHA did not contain a DUnitTest

@DonalEvans for the test to fail we have to revert all the fixes to GEODE-9295, 3b9acf5
The previous SHA did not contain a DUnitTest

Aah, I see. Thanks for the explanation, I wasn't aware that there had been a previous commit for this issue.

Yes, the dunit test should definitely pass on current develop. It doesn't pass on 1.13.2.


Electron 0.36.9 executable 3x bigger

When I upgraded to 0.36.9, the executable size is much larger. Any idea why?
This is a cross-post from the issue here but it seems to be related to this package: https://github.com/chentsulin/electron-react-boilerplate/issues/168

My bad i seemed to be using the --asar option.


Support Oculus Touch controllers

Any news on this? Seeing as how it's March, and this was added in January there should be at least some work done on this... I'm thinking about keeping my OSVR HDK 1.4 , and just getting the touch controllers instead of buying an Oculus Rift (And the touch controllers) or an HTC Vive.
As we have yet to see what LG is up to with their partnership with Valve in making yet another SteamVR headset, I think that the OSVR is the best of them all so far (at least when it comes to software compatibility). Please don't leave this idea to rot, as it would be a game changer for me and many others.

Hey  @godbyk and @TheModdersDen I've been looking into trying to track new objects using constellation using this https://github.com/OSVR/OSVR-Core/blob/video-developer-info/plugins/videobasedtracker/doc/Developing.md Through my research I've been looking into how touch controllers are tracked and it makes me wonder if it's possible to track the touch controllers without the rift headset like TheModdersDen was talking about. The touch controllers are connected through bluetooth to the Rift HMD which I think is necessary for controlling the blinking pattern on the touch controllers which the sensors pick up.


[Suggestion] A simpler solution with css-counters

/** Numbered Headings **/
.cm-content { counter-reset: h1counter h2counter h3counter h4counter h5counter h6counter; }

.HyperMD-header-1 { counter-reset: h2counter; }
.HyperMD-header-2 { counter-reset: h3counter; }
.HyperMD-header-3 { counter-reset: h4counter; }
.HyperMD-header-4 { counter-reset: h5counter; }
.HyperMD-header-5 { counter-reset: h6counter; }

.HyperMD-header-1::before {
counter-increment: h1counter;
content: counter(h1counter) ".\0000a0\0000a0";
}

.HyperMD-header-2:before {
    counter-increment: h2counter;
    content: counter(h1counter) "." counter(h2counter) ".\0000a0\0000a0";
}
.HyperMD-header-3:before {
    counter-increment: h3counter;
    content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) ".\0000a0\0000a0";
}

.HyperMD-header-4:before {
    counter-increment: h4counter;
    content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) "." counter(h4counter) ".\0000a0\0000a0";
}

.HyperMD-header-5:before {
    counter-increment: h5counter;
    content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) "." counter(h4counter) "." counter(h5counter) ".\0000a0\0000a0";
}

.HyperMD-header-6:before {
    counter-increment: h6counter;
    content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) "." counter(h4counter) "." counter(h5counter) "." counter(h6counter) ".\0000a0\0000a0";
}

preview :

Realized obsidian loads only the part of file that is visible. Rest all are hidden from DOM. So, this will not work in longer documents for which you have to scroll.

I've looked into this option before, but the purpose of this plugin is to put the numbers in the text.
Could be an interesting idea for a different plugin, however!


JsonUtil does not fail for strings of the form: '{}: "%s"}'

See this build: https://travis-ci.org/paypal/cascade/jobs/52831553
See this comment: https://github.com/paypal/cascade/pull/104#issuecomment-76864610
Probably a problem in Jackson, but you'd think it'd be caught?

Related: https://github.com/FasterXML/jackson-databind/issues/726
Seems pretty complicated...

Fixing this would be a large time investment, I'm going to move it to 0.6.


Refactor Vaults Page to use composition API and setup script

Also delete https://github.com/trustbloc/wallet/blob/cb791ca57fb390497f3966feb29fe75a9387e095/cmd/wallet-web/src/pages/VaultsPage.vue#L258 - not needed anymore


Fix config post data format

Coverage remained the same at 79.128% when pulling a0bdf4b88c6e48655a8a7b1f51b25470d8ff9db8 on eatonphil:fix-config-disks-assignment into 8b36295be18ae36b6a34b432e8514623d59439a9 on linode:master.

thanks!


Index into Map

Fixes #217.

Ping @oli-obk.
I think this String: Borrow<Q>, Q: Ord + Eq + Hash bound may have been a mistake because it limits our ability to swap in other map implementations transparently. Maybe we should have used a simpler bound like AsRef<str>. But we already used this bound for get and get_mut and contains_key so it is better to be consistent.

may have been a mistake

we can revisit this for the next breaking release. It's a subtle change, that is unlikely to be noticed by anyone.


Fix #271 - Added Tab sample app

Issues fixed by this PR
#271
What does this implement/fix?
Adds a sample app, does not change any widgets.
Any other comments?
This app demonstrates how to use a row of Buttons to select
one of a handful of Frames to show; emulating a Tab page widget.

Coverage remained the same at 97.161% when pulling 5ebe7680a65b52abbf13cc0409be9343225c870f on dwhall:master into e7152f08f8552b93912621941e8f42ddc5a49fd4 on peterbrittain:master.

Thanks.  Now that I see it in action, it makes me realise that this approach is missing a visual cue which
"tab" is active.  Maybe we could do something to TabButtons to disable the button for the active tab (e.g. pass in the index of the tab to the constructor and disable the button for that index)?

Nice!


Use the wear_plus plugin instead

I've been unofficially maintaining this plugin for myself and partners for the past 2 years. Since no one is responding to issues in this repository, I have released wear_plus with the necessary changes to be compatible with a modern Flutter application.

@Rexios80
Hi,
I am developing a launcher for a smart watch that OS is android 8.1.0.
in both plugin (wear:1.1.0 and wear_plus:1.2.0), I got those exceptions, so I think the usage of methodChannel in native implementation is incorrect, if not? tell me how fix that.
and I have one question about ambient Mode in watch.
What is the ambient mode in the watch and when does it occur?
E/flutter ( 6715): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method getShape on channel wear)
E/flutter ( 6715): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)
E/flutter ( 6715): <asynchronous suspension>
E/flutter ( 6715): #1      Wear.getShape (package:wear_plus/src/wear.dart:63:15)
E/flutter ( 6715): <asynchronous suspension>
E/flutter ( 6715): #2      _WatchShapeState.initState.<anonymous closure> (package:wear_plus/src/shape_widget.dart:55:35)
E/flutter ( 6715): <asynchronous suspension>
E/flutter ( 6715):
E/flutter ( 6715): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method isAmbient on channel wear)
E/flutter ( 6715): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)
E/flutter ( 6715): <asynchronous suspension>
E/flutter ( 6715): #1      Wear.isAmbient (package:wear_plus/src/wear.dart:74:15)
E/flutter ( 6715): <asynchronous suspension>
E/flutter ( 6715): #2      _AmbientModeState._updateMode (package:wear_plus/src/ambient_widget.dart:90:3)
E/flutter ( 6715): <asynchronous suspension>

Do not depend on both plugins.
wear_plus is a drop in replacement for the wear plugin

If you aren't depending on both, the issue is probably that you need to call WidgetsFlutterBinding.ensureInitialized()

Ambient mode is when the screen is "inactive" but still on. If you play with the example app and the hand cover gesture this should become obvious.

Do not depend on both plugins.
wear_plus is a drop in replacement for the wear plugin

I know. I only use one of them at a time. not both

If you aren't depending on both, the issue is probably that you need to call WidgetsFlutterBinding.ensureInitialized() first

I added this before. but still not working.

Ambient mode is when the screen is "inactive" but still on. If you play with the example app and the hand cover gesture this should become obvious.

thanks

Does the example app work?

Does the example app work?

Unfortunately not.

The wear_plus example app works as expected for me. Please create an issue in the wear_plus repo with more information. https://github.com/Rexios80/wear_plus

The wear_plus example app works as expected for me. Please create an issue in the wear_plus repo with more information. https://github.com/Rexios80/wear_plus

I tried to create issue in your repo. but I cant find any way to do that(there is not issue tab in repo).


Update homepage

resolves #28

Thanks, Moni! It's up at https://cancerdhc.github.io/ccdhmodel/dev/home/ if you have to take a look.

@monicacecilia I notice that you haven't marked this as ready for review -- are there other changes you want to add? Otherwise, @balhoff or I can go ahead and merge this in.

@gaurav I just finished - I was adding some text to the 'credits' page, hence the 'draft' label.
It's ready now. Ship it, please! :shipit:


Add automatic treating of CSS shorthand properties

It should be possible to mark a CSS property as shorthand for other properties and fill in the different property definitions like 'see individual properties' or 'n/a' for the initial and computed values, percentages and animation type automatically.
Sebastian

Oh, I just saw that this is already implemented.
So, please forgive the noise!
Sebastian

np ^_^


ART: Adaptive Radix Tree implementation

This PR implements Adaptive Radix Tree (ART)[1], a compact key-value search tree. It maps byte-sequences to arbitrary values while maintaining data in sorted order. ART can compress multiple nodes into single node and adaptively expand or shrink its internal nodes to avoid worse-case space consumption.
Within the broader swift-collection project, it can be considered a compact variant of SortedSet/SortedDictionary but at the cost of keys being convertible to byte-sequences.
[1] https://ieeexplore.ieee.org/abstract/document/6544812
Checklist

[x] I've read the Contribution Guidelines
[x] My contributions are licensed under the Swift license.
[x] I've followed the coding style of the rest of the project.
[ ] I've added tests covering all new code paths my change adds to the project (if appropriate).
[ ] I've added benchmarks covering new functionality (if appropriate).
[x] I've verified that my change does not break any existing tests or introduce unexplained benchmark regressions.
[ ] I've updated the documentation if necessary.

I discussed the refernce counting a bit with @lorentey and here's some notes:

The preferred setup is to either use strong references and automatic retain/release, or to keep child pointers represented with Unmanaged and use _withUnsafeGuaranteedRef and explicit retain/release operations.
Both options have significant drawbacks, but either option is better than trying to do an ad-hoc mix of the two.
FWIW, in the prefix tree implementation of HashTreeCollections, the tree representation uses regular strong references to store the children of each node. There are no explicit retain/release operations anywhere in the code base — everything relies on regular strong reference semantics. (It tries to carefully avoid making any unnecessary copies, to avoid retain/release traffic. For example, child references aren’t loaded into local variables; they are accessed directly via storage pointers.)
(In the CHAMP data structure, child references and leaf items are mixed into the same storage buffer, and that heavily obscures the actual layout.)
That module does also define a separate internal type that wraps an Unmanaged node reference. However, that has very limited functionality — it is primarily designed for use within the Index representation, and it requires extraordinary care to avoid accidentally dereferencing a stale value.

So it really feels like we should try to use a class to do the refcounting and use the package-benchmark to measure and optimize 🤔


avoid quota watches with kcp for now

I1011 18:15:45.243792       1 round_trippers.go:553] GET https://ckcp-ckcp.apps.gmontero411.devcluster.openshift.com:443/services/apiexport/root:users:zu:yc:kcp-admin:redhat-hacbs/jvm-build-service/apis/quota.openshift.io/v1/clusterresourcequotas 403 Forbidden in 1 milliseconds
1.665512145243876e+09	ERROR	Reconciler error	{"controller": "tektonwrapper", "controllerGroup": "jvmbuildservice.io", "controllerKind": "TektonWrapper", "tektonWrapper": {"name":"simple.jdk<IP_ADDRESS>-22fafbfd-scm-discovery-gvffw","namespace":"ggmtest"}, "namespace": "ggmtest", "name": "simple.jdk<IP_ADDRESS>-22fafbfd-scm-discovery-gvffw", "reconcileID": "80ba3437-fc77-43ac-baf9-9c58d526d784", "error": "forbidden: User \"system:serviceaccount:jvm-build-service:hacbs-jvm-operator\" cannot get path \"/services/apiexport/root:users:zu:yc:kcp-admin:redhat-hacbs/jvm-build-service/apis/quota.openshift.io/v1/clusterresourcequotas\": Path not resolved to a valid virtual workspace"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/opt/app-root/src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/opt/app-root/src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:234

from some long awaited "progress" running on KCP today
normal rbac is not sufficient since it is going through kcp, and while k8s resource quota is getting exposed in https://github.com/openshift-pipelines/pipeline-service-workspace-controller openshift quota will never get exposed via KCP
that said, per recent discussion with @stuartwdouglas I'm not entirely removing to continue to facilitate non KCP scenarios

/test jvm-build-service-in-repo-apicurio-e2e
since we exercise quota based throttling in apicurio


Fixes 4603: omit dependencies from task info response

Summary
if dependencies or dependents is empty, they'll now be omitted from the response.
Testing steps

Create a repo
The snapshot task for that repo should show a dependent
The introspect task for that repo should have dependents and dependencies omitted
The last_snapshot_task field in the repository response for that repo should have dependents and dependencies omitted

https://issues.redhat.com/browse/HMS-4603


Code formatting breaks with arrays inside the "match" block when using IDEA plugin

Description:
When using the IDEA plugin, ballerina code formatting breaks when arrays from external packages are used as a return type inside the match block.
Steps to reproduce:
Please use the sample code below to reproduce the issue.
import wso2/jira7 as jira;

endpoint jira:Client jiraClientEP {
    clientConfig: {
        url: config:getAsString("JIRA_ENDPOINT"),
        auth: {
            scheme: "basic",
            username: config:getAsString("JIRA_USERNAME"),
            password: config:getAsString("JIRA_PASSWORD")
        }
    }
};

function getJiraProjects() returns jira:ProjectSummary[] {

    var connectorResponse = jiraClientEP->getAllProjectSummaries();
    match connectorResponse {
        //code formatting breaks due to this line
        jira7:ProjectSummary[] summaryList => return summaryList;
        jira7:JiraConnectorError e => return [];
    }
}

Affected Versions:
IDEA plugin for ballerina v0.970.0, v0.970.1, v0.970.2
OS, DB, other environment details and versions:
IntelliJ IDEA 2017.3.4 (Ultimate Edition)
Linux 4.13.0-41-generic
Suggested Labels (optional):
plugin/intellij

Checked with the above code. Did not find any formatting issue. Seems like this issue is already fixed.

Formatting issue seems to be fixed for the above code.  Could you please also verify the following sample code as well, since I am still getting a formatting issue with this code block.
import jira7 as jira;
import ballerina/http;
import ballerina/config;

endpoint jira:Client jiraClientEP {
    clientConfig: {
        url: config:getAsString("JIRA_ENDPOINT"),
        auth: {
            scheme: "basic",
            username: config:getAsString("JIRA_USERNAME"),
            password: config:getAsString("JIRA_PASSWORD")
        }
    }
};

endpoint http:Listener listener {
    port: config:getAsInt("DATA_COLLECTOR_HTTP_PORT")
};

@http:ServiceConfig {
    endpoints: [listener],
    basePath: "/service"
}

service<http:Service> fooService bind listener {

    @http:ResourceConfig {
        methods: ["GET"],
        path: "/resource"
    }
    getAllJiraProjects(endpoint caller, http:Request request) {

        http:Response response = new;

        var connectorResponse = jiraClientEP->getAllProjectSummaries();
        match connectorResponse {
            //code is properly formatted without '[]' in the following line.
            jira:ProjectSummary[] summaryList => {}
            jira:JiraConnectorError e => {}
        }
        _ = caller->respond(response);
    }
}

@NipunaRanasinghe - I tried the above code, seems like it formats without any issue. Can you point me exact location of the error? Please add an screenshot which shows the issue if possible.

@NipunaRanasinghe - As per the offline discussion, the issue was in package identifying logic and fixed in https://github.com/ballerina-platform/ballerina-lang/pull/8662.


Hacktoberfest2020commit

This is a commit from a GitHub coding learner. I have created two different commits and hence, have sent you a pull request. Thank you.

From where should I do so?

In your version of the repository delete the .DS_store files from the profiles, scripts folder, and wherever you spot it.
Commit changes and make a pull request again

In your version of the repository delete the .DS_store files from the profiles, scripts folder, and wherever you spot it.
Commit changes and make a pull request again

It is not showing any such file in the folders.

ok, I see what happened. You haven't pulled the changes made to the repository since the time you forked it. Just use the command git pull, delete the files and push the changes

ok, I see what happened. You haven't pulled the changes made to the repository since the time you forked it. Just use the command git pull, delete the files and push the changes

I am typing git pull but it is showing that I need to specify the branch I want to merge with. So what will be the code in this case? I am so sorry to disturb you but I am new to this and trying my best to understand the situation.

Ya np you can always delete the repository and fork it again, add the changes. You don't have to create a separate branch. You can do it in the main branch itself

so should I add the files from the option given above on the site, after forking it again?

yes


Initial lint

This is the initial linting of the code. Covers everything except the
area where the linter complains functions are too long (and will need
refactoring).

I left this open (instead of merging) while Travis runs, and just in case you were planning to add anything more to it.

I'll do the refactoring in another PR as it'll get a bit large. And will add linting to the travis check too.


Pick a topic

Come up with a topic for your project. Discuss the topic with your TA or lab instructor and proceed only after your topic has been approved by one of them.

Brainstorming document: https://docs.google.com/document/d/1APQJG8fqBJBQqa3QTrX7G2bGMvvhtwZvyQBd4xPw1HQ/edit
We decided to move forward with datascience_eda, which was already approved by Tiff.


Readme usage link is broken

https://docs.trychroma.com/usage-guide#running-chroma-in-clientserver-mode doesn't work 😭

Should probably replaced by https://docs.trychroma.com/guides#running-chroma-in-client/server-mode


document python needs

Document what version of python is needed to run.

currently we need python 2.7. documented for windows as a part of #246. need to make similar docs for linux.

Pretty sure we made Python 2.6 work and might not even need python with the sh and bat scripts. Would need to check again :/


tikv/safeTS: obtain min-resolved-ts by store list

Nowadays we have 2 api interface for obtaining min resolved ts

/pd/api/v1/min-resolved-ts: obtain cluster's min resolved ts
/pd/api/v1/min-resolved-ts/{store_id}: obtain each store's min resolved ts

For client-go's updateSafeTS, we call approach II for each store, which is not necessary.
We can extend the approach I params to obtain specified store via a list to reduce the cost per call after https://github.com/tikv/pd/pull/6880 merged

@JmPotato @lhy1024 PTAL as well, thx!

@nolouch PTAL, thx!

friendly ping :) @JmPotato @nolouch


Add new config explain_threshold to something more accurate

currently node agent uses explain_threshold config for slow query threshold transaction traces. this config name is confusing to customers as it can be related to explain plan feature that Node.js agent does not support yet.
Since the Node agent does not collect SQL explain plans the explain_threshold , config option in Node is just an threshold for slow queries and transaction traces:
Minimum query duration (in milliseconds) for a transaction to be eligible for slow queries in transaction traces.
Since this is confusing, need to add new config and also update the description of the old config so the purpose of that config is clear.  This way we dont create a breaking change for other customers.
suggest renaming it to something like slow_query_threshold. This would align with what the Go agent uses (DatastoreTracer.SlowQuery.Threshold)

related internal feature request - https://new-relic.atlassian.net/browse/NR-277505


Support for returning alternate value from ngModel.$render

Hi @guylabs, first of all great angular directive.
I have taken advantage of the templating functionality to display a City and State using State inside an "item-note" span. See screenshot

So far, working great. However, when I then see the returned value on the input field, it is [object Object], which makes sense as you run element.val(scope.getItemValue(ngModel.$viewValue, scope.itemViewValueKey)); in ngModel.$render. See screenshot

Is there any possibility to give an ng attribute to specify what model/property should be returned into element.val()? For example, in this case, I would want a format of {City}, {State} to be written into the input box.
Or if you already know of a better way I should be doing this, let me know.
Below is my template and directive setup:
<ion-autocomplete ng-model="model.AppointmentAddressCity"
		item-value-key="name"
		item-view-value-key="view"
		items-method="getCityQuery(query)"
		items-method-value-key="items"
		multiple-select="false"
		placeholder="Enter City or Postcode..."
		select-items-label="Select city..."
		items-clicked-method="itemsClicked(callback)"
		template-url="templates/city-select.html" />

city-select.html

			<input type="search" class="ion-autocomplete-search" ng-model="searchQuery" placeholder="{{placeholder}}" />

			<ion-spinner icon="{{loadingIcon}}"></ion-spinner>

		<button class="ion-autocomplete-cancel button button-clear">{{cancelLabel}}</button>

	<ion-content class="has-header has-header">
		<ion-list>
			<ion-item class="item-divider" ng-show="selectedItems.length > 0">{{selectedItemsLabel}}</ion-item>
			<ion-item ng-repeat="selectedItem in selectedItems track by $index" type="item-text-wrap" class="item-icon-left item-icon-right">
				 {{getItemValue(selectedItem, itemViewValueKey).City}}
				{{getItemValue(selectedItem, itemViewValueKey).State}}

			</ion-item>
			<ion-item class="item-divider" ng-show="items.length > 0">{{selectItemsLabel}}</ion-item>
			<ion-item collection-repeat="item in items" item-height="55" item-width="100%" type="item-text-wrap" ng-click="selectItem(item)">
				{{getItemValue(item, itemViewValueKey).City}}
				{{getItemValue(item, itemViewValueKey).State}}
			</ion-item>
		</ion-list>
	</ion-content>

Thanks again

Better yet, how about a community contribution :)
https://github.com/guylabs/ion-autocomplete/pull/61
Let me know what you think.
Graham

Hi Graham,
thanks for the praise and for the pull request. I just had a look at it and I will add some comments to it such that we can merge it to the master. Really cool that you want to contribute!
Thanks and regards,
Guy

Hi Graham,
I just had a look at the original implementation and I already use the $parse service from Angular. So you are already able to create complex format expressions. You just need to set the https://github.com/guylabs/ion-autocomplete#the-item-view-value-key to something like this and it will work:
item-view-value-key="'City + ', ' + State"

Then it will show inside the list and in the input field, so you do not need to have the template anymore.
I hope this fixes the issue and then the pull request is not needed anymore. Could you please try it and give me feedback?
Thanks and regards,
Guy

Hi Guy,
Thanks for the response. Great if we could get an existing solution working...
I tried,
item-view-value-key="'City + ', ' + State"

item-view-value-key="City + ', ' + State"

and
item-view-value-key="'City + ', ' + State'"

But to no avail, one returning blank and one returning error: [$parse:lexerr] Lexer Error: Unterminated quote at columns 21-22 ['] in expression ['City + ', ' + State'']. Any thoughts?
Graham

Hi Graham,
there was a typo in my first expression. The first single quote was wrong, sorry for that. Please have a look at the https://github.com/guylabs/ion-autocomplete/blob/master/test/e2e/ion-autocomplete.single-select.e2e.html and then you can try the following item-view-value-key:
item-view-value-key="id + ', ' + name"

And this works with this template. You need to add the exact property names of your JSON object which is returned from the items-method.
Hope you get it to work and maybe have a look at the documentation of the $parse service as there are also examples: https://docs.angularjs.org/api/ng/service/$parse
Regards,
Guy

Hi again Guy,
Had some time to spend this afternoon and got it working with the existing version.
This is what eventually worked for me:
<ion-autocomplete ng-model="model.AddressLocationID" item-value-key="ID" item-view-value-key="view.City + ', ' + view.State" items-method="getCityQuery(query)"
	items-method-value-key="items" multiple-select="false" placeholder="" select-items-label="Select city..."
	template-url="templates/city-select.html" />

Note I went through view. to get this happening:

			<input type="search" class="ion-autocomplete-search" ng-model="searchQuery" placeholder="Enter City or Postcode..." />

			<ion-spinner icon="{{loadingIcon}}"></ion-spinner>

		<button class="ion-autocomplete-cancel button button-clear">{{cancelLabel}}</button>

	<ion-content class="has-header">
		<ion-list>
			<ion-item class="item-divider" ng-show="selectedItems.length > 0">{{selectedItemsLabel}}</ion-item>
			<ion-item ng-repeat="selectedItem in selectedItems track by $index" type="item-text-wrap" class="item-icon-left item-icon-right">
				 {{selectedItem.view.City}}
				{{selectedItem.view.State}}

			</ion-item>
			<ion-item class="item-divider" ng-show="items.length > 0">{{selectItemsLabel}}</ion-item>
			<ion-item collection-repeat="item in items" item-height="55" item-width="100%" type="item-text-wrap" ng-click="selectItem(item)">
				{{item.view.City}}
				{{item.view.State}}
			</ion-item>
		</ion-list>
	</ion-content>

getCityQuery()
$scope.getCityQuery = (query) => {
	if (!query)
		return [];
	var deferred = this.$q.defer();
	this.lookupService.getLocations(query) // $http factory call
		.then((results: any) => {
			deferred.resolve(results.map(function(result) {
				return { items: { ID: result.ID, name: result.C, view: { City: result.C, State: result.S } } }
			}));
		});
	return deferred.promise;

Perhaps I still have a couple of redundancies, I'm not sure. But after understanding the workflow and the object graph, the whole thing makes a lot more sense now!
It would be great to see examples of complex templates on your GitHub page, feel free to share any of my above approaches :)
Graham

Hi Graham,
nice! Ok but you would not need the special template if it is ok for you to show the items as City, State. This way you always need to create a new template for each ion-autocomplete component you need in your project.
About the examples: Good idea! Maybe I will add some more codepen demos on how to achieve these things.
Can I then close the issue?
Thanks and regards,
Guy

Ah, but I do need the special template to place State into  unless you have a better suggestion?

Well you do not need to show the state in the special template. You can also try to remove it and then see what the result looks like.

No it's a business requirement to show the state, I don't just want to show the suburb, and looks a bit nicer in the item-note, rather than just with comma.

Ok then I would also leave it as it is. :) Can I then close the issue?

Yep :+1: Thanks a lot.


Add ZENCashWallet.app v0.73.4

adding ZenCash-Wallet to homebrew cask v0.73.4

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[x] Checked there are no open pull requests for the same cask.
[x] Checked the cask was not already refused in closed issues.
[x] Checked the cask is submitted to the correct repo.

Rejected Casks
The Cask is too obscure (for example, a self-submitted app from a GitHub repository that is not notable enough (< 10 stars)).

I'd suggest creating your own tap.

zencash is about to become the new monero or at least be on-par with monero. Crypto is in its early stages so those repos are unknown at the moment. However, its of interest of a lot of people to steer safe around phishing sites that offer scamming wallets and loose a lot of money. Please reconcider. ZenCash is about to experience a major bump in publicity in the upcoming weeks


nuxt.config.js 里設置router.base后，對static下的文件引用出錯

Version
v2.12.2
Reproduction link
https://codepen.io/lixh/pen/ExVgMXm
Steps to reproduce
step1  在static下建立test.js文件
step2  在nuxt.config.js里設置router.base值為‘test’，在head.script里設置引用test.js
step3 npm run dev
step4  chrome console 查看test.js的引用，報404，路徑為host/test.js 而不是host/test/test.js
What is expected ?
正確引用test.js
What is actually happening?
test.js引用路徑錯誤
Additional comments?
step1  在static下建立test.js文件
step2  在nuxt.config.js里設置router.base值為‘test’，在head.script里設置引用test.js
step3 npm run dev
step4  chrome console 查看test.js的引用，報404，路徑為host/test.js 而不是host/test/test.js
https://codesandbox.io/s/stupefied-kowalevski-zcmwh?file=/nuxt.config.js

This bug report is available on Nuxt community (#c10547)

@pimlie This issue is about why script in head does't respect router.base as base url:
If router.base: 'test', but head: <script src="/foo.js" /> is not using /test/foo.js, I think you have better understanding in vue-meta 😃

Please see: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

If either of the following attributes are specified, this element must come before other elements with attributes whose values are URLs, such as ’s href attribute

In the reproduction the base tag is added after the tags added by vue-meta. That would mean that this line should be moved before this line
Strange we didnt detect this earlier...


Tests for the subscribe views

It would be nice if there were tests for the AJAX subscribe view and the regular subscribe view.

There are tests for all views now (note the AJAX views are no more).


Allow pasing array of objects to CreatePool, such as from a sceneobje…

…ct. This is to allow the use of scene objects containing such an array of prefabs, which is supposed to be quicker to create than calling instantiate.

Turns out this is useless the way I intended to use it. You can pass in an array of prefabs, but if they are references in a scene object there's no way to change the active states (unless you're in the editor, but that's not what we want.)

The feature was removed anyways during the object pool rework

For my own education, I got it working using actual de-activated scene objects, not prefab references, and one actual prefab for instantiation since that is a little quicker than cloning a GameObject. It's pretty academic. The number of objects you'd have to be loading to be worth the improvement is impractical to set up this way.


Requirements

Please tick all applicable boxes.

[x] I am using Python 3.5 or higher (run python --version on the command line)
[x] I have followed the official guides to install the bot for my system
[x] I have updated my dependencies to the latest version using the appropriate update_dependencies script

Which version are you using?

[x] The latest master version (1.9.7)
[ ] The latest review version

What type of issue are you creating?

[x] Bug
[ ] Feature request
[ ] Question

Description of issue
I tried to get the Music Bot but there is a problem with requirements
Steps to reproduce

Get Python 3.5.4
Use Git to download
Put in bot token in options.ini
Open update.bat

Log file
Please attach your MusicBot log file (located at logs/musicbot.log) to this issue. You can do so by dragging and dropping the file here. If you do not include your log file, you WILL be asked to provide one.
https://paste.ee/p/oK7Od

run "update.bat" then let it load. then put "py -3 -m pip install -U colorlog" in there. then reopen "update.bat" let it load close it then run "run.bat".


Redirect root email to someone

resolution_fixed   |    by<EMAIL_ADDRESS>
We should be monitoring any messages sent from root

Issue migrated from trac:37 at 2024-01-31 17:55:14 +1100

<EMAIL_ADDRESS>changed resolution from `` to fixed

<EMAIL_ADDRESS>commented

Fixed by c5305d7812b797de8d3d2d0b40147b7b87036fc0
Mail sent to root@accessdev now gets sent to saw562, ibc599, rmb548
We can redirect this to our personal emails using ~/.forward

<EMAIL_ADDRESS>changed status from new to closed

<EMAIL_ADDRESS>removed milestone (was accessdev v1.0)

<EMAIL_ADDRESS>commented

Milestone accessdev v1.0 deleted


Fix gridmap error spam at startup

Fix #32986, it seems to work with this fix. At least

these icons are disabled as described in #32893

Thanks!


Develop an Interactive Lesson for Memorizing Piano Keys

Description
This issue aims to develop an interactive lesson feature within the piano learning app. The goal of this lesson is to display a note name (including enharmonic spellings) and wait for the player to press the corresponding key on the keyboard. The lesson will provide immediate feedback - both visual and auditory - based on the player's accuracy.
Objectives

Note Display: Show a specific note name on the screen and prompt the player to press the corresponding key.
Enharmonic Spelling Support: Include lessons that cover enharmonic spellings for comprehensive learning.
Immediate Feedback: Provide visual and/or auditory feedback indicating the success or failure of the player's attempt.
User Choice for Feedback Type: Allow users to choose between visual, auditory, or both types of feedback.

Implementation Details

Lesson Structure: Create a lesson script that randomly selects a note and displays it to the player.
Key Detection: Implement logic to detect when the player presses a key and whether it matches the displayed note.
Feedback System: Develop a system to provide immediate success or failure feedback. This could include:

A success tone or visual effect for correct attempts.
A different tone or visual indication for incorrect attempts.

User Settings for Feedback: Include settings that allow the user to choose their preferred feedback method (visual, auditory, or both).

Requirements

Designing the user interface for the lesson, including note display and feedback indications.
Programming the logic for note selection, key detection, and providing feedback.
Creating or sourcing audio cues for feedback.
Ensuring the lesson accommodates all standard piano keys, including enharmonic equivalents.

Impact

This lesson will be fundamental for beginners to learn and memorize the layout of the piano keyboard.
The inclusion of enharmonic spellings ensures a comprehensive understanding of musical notes.
Immediate feedback will enhance the learning experience, making it more interactive and engaging.

Next Steps

Design the UI layout for the lesson, focusing on clarity and ease of use.
Develop the backend logic for note display, key detection, and feedback.
Test the lesson for accuracy and responsiveness, particularly in providing immediate feedback.

More suggestions based on ChatGPT discussion:
The "Play the Correct Key" minigame concept is a fantastic way to make learning piano engaging and educational. Integrating gamification into music learning can significantly enhance the user experience. Here are some additional features to consider for this minigame:
1. Progressive Difficulty Levels

Beginner to Advanced: Start with simple note recognition and gradually introduce more complex concepts like enharmonic spellings.
Adaptive Difficulty: Adjust the difficulty based on the player's performance, offering more challenging notes or faster pace as they improve.

2. Varied Learning Modes

Fixed Mode: The player must press a series of predetermined notes.
Random Mode: Notes are randomly selected, testing the player's overall knowledge.
Enharmonic Mode: Specifically focus on teaching enharmonic equivalents.

3. Customizable Settings

Note Range Selection: Allow players to select specific ranges of the keyboard to focus on, such as lower, middle, or upper octaves.
Timed Challenges: Introduce time-limited challenges to encourage quicker recognition.

4. Visual and Auditory Aids

Highlight Keys: Temporarily highlight the correct key if the player is struggling.
Associative Colors: Use colors to represent different note groups, aiding in visual learning.

5. Score and Progress Tracking

Accuracy Score: Keep track of correct vs. incorrect presses to give players a clear view of their progress.
Note Proficiency Analysis: Track which notes or groups of notes the player is more proficient with and which need more practice.

6. Feedback and Rewards

Instant Feedback: Provide immediate feedback on each attempt.
Reward System: Introduce rewards for streaks of correct answers, such as badges or unlocking new levels.

7. Educational Content Integration

Theory Tips: Occasionally present short music theory tips related to the current lesson.
Contextual Learning: Provide context for certain notes or chords, like their common use in certain music genres.

8. Social and Competitive Elements

Leaderboards: Include leaderboards for high scores in different categories.
Challenge Friends: Allow players to challenge friends to beat their scores.

9. Accessibility Features

Adjustable Tempo: Let players adjust the tempo for practicing at their own pace.
Visual Impairment Support: Ensure the game is playable for users with visual impairments, possibly through enhanced auditory cues.

10. Advanced Features

Chord and Interval Training: As players advance, introduce chords and intervals for recognition and playing.

Conclusion
This minigame should strike a balance between being fun and educational, keeping players engaged while effectively teaching piano fundamentals. The goal is to make learning piano feel less like a traditional lesson and more like an enjoyable, interactive game.


Changed docker compose default location

Description
This PR changes the default location of the docker compose file and also create a manifests folder similar to the .meshery folder to accomadate it.
This PR fixes #3755
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #3788 (335af24) into master (f4c48d9) will decrease coverage by 8.20%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #3788      +/-   ##
==========================================
- Coverage   20.81%   12.60%   -8.21%
==========================================
  Files          46       46
  Lines        3863     3864       +1
==========================================
- Hits          804      487     -317
- Misses       2847     3262     +415
+ Partials      212      115      -97

Flag
Coverage Δ

gointegrationtests
?

unittests
12.60% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/start.go
1.11% <0.00%> (-53.71%)
:arrow_down:

mesheryctl/pkg/utils/helpers.go
18.52% <0.00%> (-0.06%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-62.83%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.42% <0.00%> (-21.71%)
:arrow_down:

mesheryctl/internal/cli/root/system/logs.go
0.00% <0.00%> (-21.60%)
:arrow_down:

Continue to review full report at Codecov.

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

Wow. Look at how clean this is now.

This will leave any existing meshery.yaml orphaned.... and that's ok.


Make the macOS regex allow macosx

When using build triple names for release assets, there is an issue with macOS assets because the OS name in Swift’s build triples is macosx instead of macos.
Sources for reference:
•	List of possible triples in Swift tests
•	Article on building Swift executables using triples
•	Example of assets named by triples

Hi, thanks for your PR! I'm pretty finicky about my projects (see this blog post for details), so I rarely merge a PR as-is. I can move forward on your PR in one of two ways:

I check it out locally, fiddle with it as needed, merge it locally, and simply close this PR. This will preserve at least one commit with your name on it, but the PR will show up as closed in your GitHub stats.
If you enable me to push directly to your fork, I can do my fiddling, then force push to your fork and merge the resulting PR. Again, this will preserve at least one commit with your name on it, but you also get credit for the PR merge in your GitHub stats. The only downside is that I will be force pushing directly to your fork.

Please let me know which approach you'd prefer. If I don't hear from you before I get around to working on this PR I'll go with option 1.
Thanks again for your contribution!

Hi! This PR contains a small amount of work, so I believe the first option works well. Feel free to handle it in a way that’s most convenient for you. 👌

Thanks again for the PR!

This was included in the v0.3.0 release, which just went out a moment ago.


Add isBase64 and substring methods to Str class

As requested in https://github.com/zestframework/Zest_Framework/issues/271 I added two new statics to:
a) check if a string is a valid base64 encoded string
b) return a substring of given string
and added corresponding tests as well.

The Travis CI build is failed, but it's not related to this PR.
I will ignore CI build at this moment and focus on review code changes.

@2mt-heuser  Thanks you so much for your time to contribute
Really appropriated.

@2mt-heuser Thanks you so much for your time to contribute
Really appropriated.

You're welcome.
When I find more time between work I'll take a look at some other methods and/or issues.


reconnect not work

please help me, the addon is work, but i'm not able to use reconnect..

This custom integration is now deprecated because is fully merged into HomeAssistant core.
I would suggest you configure the new integration and retest your issue; if still present then open a issue on HomeAssistant Core repository.
Simone


DinoDex Project Refactor

I wanted dinodex.rb to be a like a script file that runs the program. So, did not make it into a class.

I wanted dinodex.rb to be a like a script file that runs the program. So, did not make it into a class.

@ckhadilkar Looks mostly good. Take into consideration the notes made by Hound as well. You have some indentation that's off it seems. Also know that the Optionparser exists and is there so you don't have to reimplement CLI argument parsing. A resubmission is not necessary.

Looking good.  Take a look at the comments and consider how you would refactor.  No need for a resubmission, though.

Thanks Franco and Dan for the comments. I'll definitely look into
OptionParser. Also, I might have missed out on refactoring some of the
arraowhead code :)
About the hash to store dino objects, When i started working on the
solution, i had this idea that hash of dino objects with 'name' as the key
will be efficient to fetch a dino object. But, yes the code there is a bit
tricky. I can see how array will make it simple to read.
On Thu, Mar 19, 2015 at 12:29 PM, Dan Kotowski<EMAIL_ADDRESS>wrote:

Closed #570 https://github.com/jmmastey/level_up_exercises/pull/570.
—
Reply to this email directly or view it on GitHub
https://github.com/jmmastey/level_up_exercises/pull/570#event-259647740.


Incompatibilty with older node versions due to dirent.parentPath usage

Hi @br14n-sol ! Thanks for the cool inquirer extension. While adding your extension to my project, I encountered an issue
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined

I did some investigation, and it turned out that you use dirent.parentPath in your tool. However, this option is still marked as Experimental in the official doc and was added in the quite recent node version 20.12.0. In one of my projects, I could easily migrate to the newer node version, but for another one where I want to use your tool, it would be quite challenging. What do you think of making it more compatible with older node versions and avoiding usage of dirent.parentPath. I can prepare a pull request if you agree with the change.

Hello, what version of node are you using?
According to the documentation dirent.parentPath was added in node 18.20.0

I understand that if you use a version >= 18 and < 18.20.0 this would give problems.

If you want to make a pull request, it's always welcome, otherwise I'll take a look tomorrow.

This will be corrected in the next version.
Thank you for reporting it 👍

Thanks! Yes, in one of the projects, we still use node 18.16.1, and in another one 20.10.0. Thanks for the quick reaction!


Support html specific serialization

When parsing and serializing an html document, you can get invalid html if you don't use the correct html "toString" provided by libxml2
Parsing and serializing this html

  <title></title>

  Hello world

Will result in (note the empty title tag)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

    <title/>

  Hello World

Which will render incorrectly in most web browsers due to this bug
However, if we render it with htmlDocDumpMemoryFormat (and with htmlParserOption: 4 to ignore the implicit doctype declaration) we get this instead.

<title></title>
Hello World

The new method will actually render correctly in all browsers.
I've fixed this in my fork.  However I'd like to get input on how you might do this more generically (I see the HtmlDocument class referenced, but unused).

yes, please

:+1:

we can make toString accept options arguments and pick the right function based on that

Implemented in PR #326 / #341

XmlDocument::toString now checks for HTML and uses htmlDocDumpMemoryFormat. This issue has been resolved.


Install nni of different versions in different python virtual environments

Closing the issue as it had released with 0.5.


feature: dynamic inbox based on latest upstream version

This PR implements this spec based on the latest upstream version.

What is your test plan?

@qizhou  I'll start to add some unit tests and e2e tests.
The e2e tests will focus on the dynamic upgrade part since the static part has already been sufficiently tested.

remove stale