text:
Warning suggests @preconcurrency import but when added, there is a warning that @preconcurrency import has no effect.

Description
When I compile a class that implements WKNavigationDelegate, I get a warning on the line with import WebKit:
Add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'WebKit'
However, there are no Sendable-related warnings in the file.
When I add the @preconcurrency to the import WebKit statement, I get this warning:
'@preconcurrency' attribute on module 'WebKit' has no effect
Eventually I determined that the WKNavigationDelegate methods were outdated for iOS 18, and I needed to add a @MainActor attribute to a closure in one of the delegate methods.
Reproduction
I created a new project using Xcode 16 beta 2, and then added this code as a new file.
import UIKit
import WebKit  // warning: `Add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'WebKit'`

public final class SmartHTMLView: UIView, WKNavigationDelegate {

  public override init(frame: CGRect) {
    super.init(frame: frame)
    addSubview(webView)
    webView.navigationDelegate = self
  }

  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }

  private let webView = WKWebView(frame: .zero)

  public func webView(
    _: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
  {
  }
}

When I add the @preconcurrency attribute, I get a different warning.
import UIKit
@preconcurrency import WebKit  // warning: `'@preconcurrency' attribute on module 'WebKit' has no effect`

public final class SmartHTMLView: UIView, WKNavigationDelegate {

  public override init(frame: CGRect) {
    super.init(frame: frame)
    addSubview(webView)
    webView.navigationDelegate = self
  }

  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }

  private let webView = WKWebView(frame: .zero)

  public func webView(
    _: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
  {
  }
}

I was able to fix the warnings by updating webView(:decidePolicyFor:decisionHandler:) method to match the iOS 18 WKNavigationDelegate API:
import UIKit
import WebKit

public final class SmartHTMLView: UIView, WKNavigationDelegate {

  public override init(frame: CGRect) {
    super.init(frame: frame)
    addSubview(webView)
    webView.navigationDelegate = self
  }

  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }

  private let webView = WKWebView(frame: .zero)

  public func webView(
    _: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping @MainActor (WKNavigationActionPolicy) -> Void)
  {
  }
}

Expected behavior

A warning suggesting that @preconcurrency be added should not be emitted when there are no Sendable-related warnings in the file.
There should be a warning that the following method doesn't match the updated WKNavigationDelegate protocol:

  public func webView(
     _: WKWebView,
     decidePolicyFor navigationAction: WKNavigationAction,
     decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
   {
   }

Environment
WebKitImportPreconcurrencyRepro (main)$ swiftc -version
swift-driver version: 1.110 Apple Swift version 6.0 (swiftlang-6.0.0.4.52 clang-1600.0.21.1.3)
Target: arm64-apple-macosx14.0
Additional information
No response

I am having this same issue! But when importing TabletopKit, without making any changes, it's happening to the TabletopKit sample project that you can download here: https://developer.apple.com/documentation/tabletopkit/tabletopkitsample

Thank you so much for posting this. I spent quite a lot of time trying to figure this one out, and wasn't able to discover your webView(:decidePolicyFor:decisionHandler:) @MainActor fix myself.
I submitted feedback about the circular warning issue to Apple as FB14066938.

I noticed that with Xcode 16 beta 3 this protocol has been updated:
optional func webView(
    _ webView: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping @MainActor @Sendable (WKNavigationActionPolicy) -> Void
)

Note that the decisionHandler is now also @Sendable.

I don't know if this is significant, but Xcode autocomplete does not include @Sendable:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor (WKNavigationActionPolicy) -> Void) {
    // ...
}

I do see @Sendable in the corresponding method definition in the definition of WKNavigationDelegate, however.

I verified that these two warnings still occur in Xcode 16 beta 3, although it still goes away with just the @MainActor attribute and without the @Sendable attribute

My project also facing similar issue, if add the attribute @MainActor to the protocol am able to compile with xcode 16 beta. But if i compile the same project with xcode 15 build fails. Wanted to compile that project both xcode 16 and as well xcode 15. Someone can help me how to fix this?

Actually we've been using @preconcurrency with Xcode 15 already. I think the problem with adding @MainActor is that changes the type signature for your delegate method, which is different between iOS 18 (on Xcode 16) and iOS 17 (on Xcode 15). We had to use #if compiler(>=6.0) to get around this, eg:
extension BasicWebViewController: WKNavigationDelegate {
  #if compiler(>=6.0)
  open func webView(
    _: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping @MainActor (WKNavigationActionPolicy) -> Void)
  {
...
}
 #else
  open func webView(
    _: WKWebView,
    decidePolicyFor navigationAction: WKNavigationAction,
    decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
{
...
}

oh good to know!

btw the fix for this will no longer produce the erroneous warning message under minimal or targeted concurrency:
Add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'WebKit'
but the correct warning if you do @preconcurrency import WebKit will remain:
'@preconcurrency' attribute on module 'WebKit' has no effect
The desired diagnostic about matching the attributes in the signature of the function being overridden already is produced when using complete strict concurrency.

authors: chaitu-venky drewolbrich jqsilver mikaelacaron sophiapoirier

repo: swiftlang/swift


text:
Skip macro-expanded code in the playground transform.

Playgrounds cannot display any macro expansions anyway and the @Observable macro can generate instrumentations that don't typecheck and/or reference missing functions.
rdar://112122752

@swift-ci test

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
AST: Clean up future availability a bit

Use a consistent definition of the "future" availability triple and add support for visionOS.
Remove some out of date TODOs.
Update IRGen tests to avoid direct use of 99.99 triples and use relevant Swift release target triple substitutions where possible.

@swift-ci please smoke test


text:
Add DocC documentation for swiftly

Create a plugin and tool that can generate a CLI reference for swiftly and generate the current latest document.
Organize the help into a GSG (Getting Started Guide), a selection of HOWTOS, and Reference topics. Write an initial version of each.
Create a Swift Package Index metadata file so that swiftly can be submitted there once the documentation is ready.
Update the RELEASING.md file to check the documentation sanity and command-line reference, regenerating it if necessary.

@swift-server-bot test this please

It would be nice to bring this plugin to argument parser for other users too!

This one is highly specialized to suit swiftly at the moment. Perhaps it can be generalized to suit any project in the future.

Are we not able to use the standard docc plugin for generating documentation?

The docc plugin is being used here to generate the documentation. It appears to me that this might be the first time that someone has attempted to generate a command-line reference from the argument parser to docc.

@swift-server-bot test this please

@swift-ci test macOS

@swift-ci test macOS

repo: swiftlang/swiftly


text:
Enable scrollbar without enabling server-side scrolling?

I'm submitting a ...
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior
Enabling scrollbarV will also enable server-side scrolling, that I don't want, I just want the scrollbar on table body.
Expected behavior
Enabling scrollbarV should enable the scroll bar only. Server-side scrolling should be enable by another component input.
Reproduction of the problem
There's no reason to reproduce, it's documented, but I think isn't right.
What is the motivation / use case for changing the behavior?
I want to make my table have exactly 100% of screen height, making footer glued at bottom, and having scroll only inside the table body, this way the paginator is always visible
Please tell us about your environment:
Not relevant

Table version: 9.3.0 (latest)

Angular version: 4.1.3 (latest)

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Language: [all | TypeScript X.X | ES6/7 | ES5]

This code below is executing all the time when using scrollV. Even when I set virtualization false. My version is Angular 5 ngx-datatable@11.1.7...
It force the table go back to the first page on server side pagination.
How can I bypass this logic?
DataTableBodyComponent.prototype.onBodyScroll = function (event) {
var scrollYPos = event.scrollYPos;
var scrollXPos = event.scrollXPos;
// if scroll change, trigger update
// this is mainly used for header cell positions
if (this.offsetY !== scrollYPos || this.offsetX !== scrollXPos) {
this.scroll.emit({
offsetY: scrollYPos,
offsetX: scrollXPos
});
}
this.offsetY = scrollYPos;
this.offsetX = scrollXPos;
this.updateIndexes();
this.updatePage(event.direction);
this.updateRows();
};

Dirty hack:
Attach empty table to root component
<div [hidden]="true">
    <ngx-datatable #dataTable
                   [rows]="[]"
                   [columns]="[]">
    </ngx-datatable>
 </div>

Then modify component prototype.
export class RootComponent implements OnInit{
    @ViewChild('dataTable') dataTable: DatatableComponent;

    ngOnInit(): void {
        Object.getPrototypeOf(this.dataTable.bodyComponent).updatePage = () => {
            console.log("Skip Update Page")
        };
    }
}

source: gharchive/issue

authors: Braidner iget-esoares lneninger

repo: swimlane/ngx-datatable

license: mit

license_source: bigquery


text:
Allow image load to accept an io

@tlunter
Allow Docker::Image.load to accept an IO object.

:+1:

authors: nahiluhmot tlunter

repo: swipely/docker-api

license: MIT


text:
The focus in a menu of the primary navigation is not shown

(Only when NVDA screen reader is enabled)
When using the keyboard to navigate the website, the visual focus is lost when entering a primary navigation menu.
Tab -> Design principles -> Enter -> Arrow down -> Guidelines (accessible focus not shown)
(Image 1)
Image 1:

Tested on:
https://q-src.github.io/styleguide/en/
Tested with:
NVDA screen reader

Fixed in #564

authors: rautenburger topaxi

repo: swiss/styleguide


text:
Implement custom HTML reporter

Currently ember-cli-mocha just uses the HTML reporter that comes with mocha. While it works very well, it is difficult to extend and does not offer the same features as the QUnit output does. I came across @ef4's better-mocha-html-reporter which implemented an analogous reporter in ES6 and also cleaned up the styling.
I've since extended it a bit further to add features such as hiding passed tests, changing the favicon to indicate the final test result, and group together JSHint results (currently done after the fact, can probably be done a lot more elegantly). I've been sharing this through gists and had help from @elbeezy in cleaning it up.
Would such a reporter have a place in the ember-cli-mocha addon? Hoping this issue can start a discussion about the potential inclusion of a custom reporter (and if so, what features to implement).

I agree that a general pattern for extending ember-cli-mocha with custom reporters would be helpful, but I also think that your reporter (or some agreed-upon variation of the @ef4 "better" reporter) should be the new default.

see https://github.com/ballPointPenguin/ember-cli-mocha/commit/9ebb73f2a8c874c2afaacf73c7b3c6f1a1b66ce8

I combined the work of @ef4, @SaladFork, and @lolmaus (and perhaps others) into a proper Ember-CLI addon as I found the default Mocha test runner to be a bit lacking. Feedback is welcomed.
https://github.com/mmelvin0/ember-cli-mocha-reporter

thanks @mmelvin0 this has been fermenting on the dark backburner of my mind

authors: SaladFork ballPointPenguin mmelvin0

repo: switchfly/ember-cli-mocha


text:
[Noetic] mapviz fails to build on armhf

Hey @danthony06,
It looks like mapviz isn't building on some platforms:

Ubuntu Focal armhf

I'm planning to add all chronically failing packages to per-platform blacklists later this week.
That just means the buildfarm won't try to build them every day.
When all issues causing the build failures are resolved, please make a PR to the production branch on ros_buildfarm_config removing it from the package_blacklist:

release-armhf-build.yaml

We shouldn't be trying it at all. I'll try to remove it on our end when I'm back in the office.

@sloretz is there a similar configuration for ROS2?

Never mind, found it. Sorry, couldn't find it for a while. I'm going to blacklist this for the ROS2 Arm builds.

repo: swri-robotics/mapviz


text:
sh: 1: Syntax error: ")" unexpected

What system are you running Yazi on?
Linux X11
What terminal are you running Yazi in?
kitty 0.36.0
yazi --debug output
Yazi
    Version: 0.3.1 (Arch Linux 2024-08-22)
    Debug  : false
    OS     : linux-x86_64 (unix)

Ya
    Version: 0.3.1 (Arch Linux 2024-08-22)

Emulator
    Emulator.via_env: ("xterm-kitty", "")
    Emulator.via_csi: Ok(Kitty)
    Emulator.detect : Kitty

Adapter
    Adapter.matches: Kitty

Desktop
    XDG_SESSION_TYPE: Some("x11")
    WAYLAND_DISPLAY : None
    DISPLAY         : Some(":0")

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL              : Some("/usr/bin/zsh")
    EDITOR             : Some("nvim")
    VISUAL             : Some("nvim")
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None

Text Opener
    default: Some(Opener { run: "${EDITOR:-vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block  : Some(Opener { run: "${EDITOR:-vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })

Multiplexers
    TMUX               : false
    tmux version       : No such file or directory (os error 2)
    ZELLIJ_SESSION_NAME: None
    Zellij version     : No such file or directory (os error 2)

Dependencies
    file             : 5.45
    ueberzugpp       : 2.9.6
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-36
    fzf              : 0.54.3
    fd               : 10.1.0
    rg               : 14.1.0
    chafa            : 1.14.2
    zoxide           : 0.9.4
    7z               : No such file or directory (os error 2)
    7zz              : No such file or directory (os error 2)
    jq               : 1.7.1

--------------------------------------------------
When reporting a bug, please also upload the `yazi.log` log file - only upload the most recent content by time.
You can find it in the "/home/muhammad/.local/state/yazi" directory.

Did you try the latest nightly build to see if the problem got fixed?
Yes, and I updated the debug information above (yazi --debug) to the nightly that I tried
Describe the bug

I got this error sh: 1: Syntax error: ")" unexpected after hovering on a file named 08 - Was Turtles Forever Actually Good？ (It's Complicated)
Minimal reproducer
Just create a file named 08 - Was Turtles Forever Actually Good？ (It's Complicated) and hover over it
Anything else?
No response

I can't reproduce it, have you enabled any plugins?

It's caused by the plugin called archivemount.yazi

repo: sxyazi/yazi


text:
Dropping to a shell?

Is there anything I can return to a shell on the current path, like what the ranger did for shift+s?
I know we have ; or : but that's missing the whole shell feature.

{ on = [ "<C-s>" ], exec = "shell zsh --block --confirm" }

This seems like what you want.
https://github.com/sxyazi/yazi/assets/17523360/ef63ca68-2121-4637-a002-9d49c9e9208c

You can also check this useage of yazi that will leave yazi but go to the last path.

That's exactly what I am looking for. However, I don't know how to follow the document here.  Where should I put that function? Any command to generate the configuration file template?

You can put it in your shell config file, like .bashrc or .zshrc, then in bash/zsh use ya instead of yazi to use it.

Add it to your keymap.toml as per the README https://github.com/sxyazi/yazi#configuration

That's exactly what I am looking for. However, I don't know how to follow the document here. Where should I put that function? Any command to generate the configuration file template?

Oh, Can I do it in fish shell too?

as per the READM

Should I do both?

Hey @wybert, what we both mentioned are not the same feature. I'm not sure which one you need. It would be great if you could mention "@" when replying.

{ on = [ "<C-s>" ], exec = "shell zsh --block --confirm" }

This seems like what you want.
111.mp4

@sxyazi I think this is what I want. I can't make it work, I am using the fish shell. should I change this to,
{ on = [ "<C-s>" ], exec = "shell fish --block --confirm" }

?
I tried to add this line to  /Users/kang/.config/yazi/keymap.toml but it doesn't work, here is my keymap.toml,
[manager]

keymap = [
	{ on = [ "<Esc>" ], exec = "escape",  desc = "Exit visual mode, clear selected, or cancel search" },
	{ on = [ "q" ],     exec = "quit",    desc = "Exit the process" },
	{ on = [ "<C-q>" ], exec = "close",   desc = "Close the current tab, or quit if it is last tab" },
	{ on = [ "<C-z>" ], exec = "suspend", desc = "Suspend the process" },

	# Navigation
	{ on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], exec = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "h" ], exec = "leave", desc = "Go back to the parent directory" },
	{ on = [ "l" ], exec = "enter", desc = "Enter the child directory" },

	{ on = [ "H" ], exec = "back",    desc = "Go back to the previous directory" },
	{ on = [ "L" ], exec = "forward", desc = "Go forward to the next directory" },

	{ on = [ "<C-k>" ], exec = "peek -5", desc = "Peek up 5 units in the preview" },
	{ on = [ "<C-j>" ], exec = "peek 5",  desc = "Peek down 5 units in the preview" },

	{ on = [ "<Up>" ],    exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ],  exec = "arrow 1",  desc = "Move cursor down" },
	{ on = [ "<Left>" ],  exec = "leave",    desc = "Go back to the parent directory" },
	{ on = [ "<Right>" ], exec = "enter",    desc = "Enter the child directory" },

	{ on = [ "g", "g" ], exec = "arrow -99999999", desc = "Move cursor to the top" },
	{ on = [ "G" ],      exec = "arrow 99999999",  desc = "Move cursor to the bottom" },

	# Selection
	{ on = [ "<Space>" ], exec = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
	{ on = [ "v" ],       exec = "visual_mode",                        desc = "Enter visual mode (selection mode)" },
	{ on = [ "V" ],       exec = "visual_mode --unset",                desc = "Enter visual mode (unset mode)" },
	{ on = [ "<C-a>" ],   exec = "select_all --state=true",            desc = "Select all files" },
	{ on = [ "<C-r>" ],   exec = "select_all --state=none",            desc = "Inverse selection of all files" },

	# Operation
	{ on = [ "o" ],         exec = "open",                   desc = "Open the selected files" },
	{ on = [ "O" ],         exec = "open --interactive",     desc = "Open the selected files interactively" },
	{ on = [ "<Enter>" ],   exec = "open",                   desc = "Open the selected files" },
	{ on = [ "<C-Enter>" ], exec = "open --interactive",     desc = "Open the selected files interactively" },  # It's cool if you're using a terminal that supports CSI u
	{ on = [ "y" ],         exec = "yank",                   desc = "Copy the selected files" },
	{ on = [ "x" ],         exec = "yank --cut",             desc = "Cut the selected files" },
	{ on = [ "p" ],         exec = "paste",                  desc = "Paste the files" },
	{ on = [ "P" ],         exec = "paste --force",          desc = "Paste the files (overwrite if the destination exists)" },
	{ on = [ "k" ],         exec = "paste --follow",         desc = "Paste the files (follow the symlinks)" },
	{ on = [ "K" ],         exec = "paste --follow --force", desc = "Paste the files (overwrite + follow)" },
	{ on = [ "d" ],         exec = "remove",                 desc = "Move the files to the trash" },
	{ on = [ "D" ],         exec = "remove --permanently",   desc = "Permanently delete the files" },
	{ on = [ "a" ],         exec = "create",                 desc = "Create a file or directory (ends with / for directories)" },
	{ on = [ "r" ],         exec = "rename",                 desc = "Rename a file or directory" },
	{ on = [ ";" ],         exec = "shell",                  desc = "Run a shell command" },
	{ on = [ ":" ],         exec = "shell --block",          desc = "Run a shell command (block the UI until the command finishes)" },
	{ on = [ "." ],         exec = "hidden toggle",          desc = "Toggle the visibility of hidden files" },
	{ on = [ "s" ],         exec = "search fd",              desc = "Search files by name using fd" },
	{ on = [ "S" ],         exec = "search rg",              desc = "Search files by content using ripgrep" },
	# { on = [ "<C-s>" ],     exec = "search none",            desc = "Cancel the ongoing search" },
	{ on = [ "z" ],         exec = "jump zoxide",            desc = "Jump to a directory using zoxide" },
	{ on = [ "Z" ],         exec = "jump fzf",               desc = "Jump to a directory, or reveal a file using fzf" },

	# Copy
	{ on = [ "c", "c" ], exec = "copy path",             desc = "Copy the absolute path" },
	{ on = [ "c", "d" ], exec = "copy dirname",          desc = "Copy the path of the parent directory" },
	{ on = [ "c", "f" ], exec = "copy filename",         desc = "Copy the name of the file" },
	{ on = [ "c", "n" ], exec = "copy name_without_ext", desc = "Copy the name of the file without the extension" },

	# Find
	{ on = [ "/" ], exec = "find" },
	{ on = [ "?" ], exec = "find --previous" },
	{ on = [ "-" ], exec = "find_arrow" },
	{ on = [ "=" ], exec = "find_arrow --previous" },

	# Sorting
	{ on = [ ",", "a" ], exec = "sort alphabetical --dir_first",           desc = "Sort alphabetically, directories first" },
	{ on = [ ",", "A" ], exec = "sort alphabetical --reverse --dir_first", desc = "Sort alphabetically, directories first (reverse)" },
	{ on = [ ",", "c" ], exec = "sort created --dir_first",                desc = "Sort by creation time, directories first" },
	{ on = [ ",", "C" ], exec = "sort created --reverse --dir_first",      desc = "Sort by creation time, directories first (reverse)" },
	{ on = [ ",", "m" ], exec = "sort modified --dir_first",               desc = "Sort by modified time, directories first" },
	{ on = [ ",", "M" ], exec = "sort modified --reverse --dir_first",     desc = "Sort by modified time, directories first (reverse)" },
	{ on = [ ",", "n" ], exec = "sort natural --dir_first",                desc = "Sort naturally, directories first" },
	{ on = [ ",", "N" ], exec = "sort natural --reverse --dir_first",      desc = "Sort naturally, directories first (reverse)" },
	{ on = [ ",", "s" ], exec = "sort size --dir_first",                   desc = "Sort by size, directories first" },
	{ on = [ ",", "S" ], exec = "sort size --reverse --dir_first",         desc = "Sort by size, directories first (reverse)" },

	# Tabs
	{ on = [ "t" ], exec = "tab_create --current", desc = "Create a new tab using the current path" },

	{ on = [ "1" ], exec = "tab_switch 0", desc = "Switch to the first tab" },
	{ on = [ "2" ], exec = "tab_switch 1", desc = "Switch to the second tab" },
	{ on = [ "3" ], exec = "tab_switch 2", desc = "Switch to the third tab" },
	{ on = [ "4" ], exec = "tab_switch 3", desc = "Switch to the fourth tab" },
	{ on = [ "5" ], exec = "tab_switch 4", desc = "Switch to the fifth tab" },
	{ on = [ "6" ], exec = "tab_switch 5", desc = "Switch to the sixth tab" },
	{ on = [ "7" ], exec = "tab_switch 6", desc = "Switch to the seventh tab" },
	{ on = [ "8" ], exec = "tab_switch 7", desc = "Switch to the eighth tab" },
	{ on = [ "9" ], exec = "tab_switch 8", desc = "Switch to the ninth tab" },

	{ on = [ "[" ], exec = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
	{ on = [ "]" ], exec = "tab_switch 1 --relative",  desc = "Switch to the next tab" },

	{ on = [ "{" ], exec = "tab_swap -1", desc = "Swap the current tab with the previous tab" },
	{ on = [ "}" ], exec = "tab_swap 1",  desc = "Swap the current tab with the next tab" },

	# Tasks
	{ on = [ "w" ], exec = "tasks_show", desc = "Show the tasks manager" },

	# Goto
	{ on = [ "g", "h" ],       exec = "cd ~",             desc = "Go to the home directory" },
	{ on = [ "g", "c" ],       exec = "cd ~/.config",     desc = "Go to the config directory" },
	{ on = [ "g", "d" ],       exec = "cd ~/Downloads",   desc = "Go to the downloads directory" },
	{ on = [ "g", "t" ],       exec = "cd /tmp",          desc = "Go to the temporary directory" },
	{ on = [ "g", "<Space>" ], exec = "cd --interactive", desc = "Go to a directory interactively" },
        # drop to shell
	{ on = [ "<C-s>" ], exec = "shell fish --block --confirm" },
	# Help
	{ on = [ "~" ], exec = "help", desc = "Open help" },
]

[tasks]

keymap = [
	{ on = [ "<Esc>" ], exec = "close", desc = "Hide the task manager" },
	{ on = [ "<C-q>" ], exec = "close", desc = "Hide the task manager" },
	{ on = [ "w" ],     exec = "close", desc = "Hide the task manager" },

	{ on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<Up>" ],   exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<Enter>" ], exec = "inspect", desc = "Inspect the task" },
	{ on = [ "x" ],       exec = "cancel",  desc = "Cancel the task" },

	{ on = [ "~" ], exec = "help", desc = "Open help" }
]

[select]

keymap = [
	{ on = [ "<C-q>" ],   exec = "close",          desc = "Cancel selection" },
	{ on = [ "<Esc>" ],   exec = "close",          desc = "Cancel selection" },
	{ on = [ "<Enter>" ], exec = "close --submit", desc = "Submit the selection" },

	{ on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], exec = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<Up>" ],   exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "~" ], exec = "help", desc = "Open help" }
]

[input]

keymap = [
	{ on = [ "<C-q>" ],       exec = "close",          desc = "Cancel input" },
	{ on = [ "<Enter>" ],     exec = "close --submit", desc = "Submit the input" },
	{ on = [ "<Esc>" ],       exec = "escape",         desc = "Go back the normal mode, or cancel input" },

	# Mode
	{ on = [ "i" ], exec = "insert",                              desc = "Enter insert mode" },
	{ on = [ "a" ], exec = "insert --append",                     desc = "Enter append mode" },
	{ on = [ "v" ], exec = "visual",                              desc = "Enter visual mode" },
	{ on = [ "V" ], exec = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },

	# Navigation
	{ on = [ "h" ], exec = "move -1", desc = "Move cursor left" },
	{ on = [ "l" ], exec = "move 1",  desc = "Move cursor right" },

	{ on = [ "0" ], exec = "move -999",                       desc = "Move to the BOL" },
	{ on = [ "$" ], exec = "move 999",                        desc = "Move to the EOL" },
	{ on = [ "I" ], exec = [ "move -999", "insert" ],         desc = "Move to the BOL, and enter insert mode" },
	{ on = [ "A" ], exec = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },

	{ on = [ "<Left>" ],  exec = "move -1", desc = "Move cursor left" },
	{ on = [ "<Right>" ], exec = "move 1",  desc = "Move cursor right" },

	{ on = [ "b" ], exec = "backward",              desc = "Move to the beginning of the previous word" },
	{ on = [ "w" ], exec = "forward",               desc = "Move to the beginning of the next word" },
	{ on = [ "e" ], exec = "forward --end-of-word", desc = "Move to the end of the next word" },

	# Deletion
	{ on = [ "d" ], exec = "delete --cut",                              desc = "Cut the selected characters" },
	{ on = [ "D" ], exec = [ "delete --cut", "move 999" ],              desc = "Cut until the EOL" },
	{ on = [ "c" ], exec = "delete --cut --insert",                     desc = "Cut the selected characters, and enter insert mode" },
	{ on = [ "C" ], exec = [ "delete --cut --insert", "move 999" ],     desc = "Cut until the EOL, and enter insert mode" },
	{ on = [ "x" ], exec = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },

	# Yank/Paste
	{ on = [ "y" ], exec = "yank",           desc = "Copy the selected characters" },
	{ on = [ "p" ], exec = "paste",          desc = "Paste the copied characters after the cursor" },
	{ on = [ "P" ], exec = "paste --before", desc = "Paste the copied characters before the cursor" },

	# Undo/Redo
	{ on = [ "u" ],     exec = "undo", desc = "Undo the last operation" },
	{ on = [ "<C-r>" ], exec = "redo", desc = "Redo the last operation" },

	# Help
	{ on = [ "~" ], exec = "help", desc = "Open help" }
]

[help]

keymap = [
	{ on = [ "<Esc>" ], exec = "escape", desc = "Clear the filter, or hide the help" },
	{ on = [ "q" ],     exec = "close",  desc = "Exit the process" },
	{ on = [ "<C-q>" ], exec = "close",  desc = "Hide the help" },

	# Navigation
	{ on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], exec = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], exec = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<Up>" ],   exec = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], exec = "arrow 1",  desc = "Move cursor down" },

	# Filtering
	{ on = [ "/" ], exec = "filter", desc = "Apply a filter for the help items" },
]

Hey @wybert, I use the same configuration, and it works well. Perhaps your fish is not in the PATH. Try specifying its absolute path:
{ on = [ "<C-s>" ], exec = "shell '/your/path/fish' --block --confirm" }

I get zsh: suspended (tty output)  yazi after typing exit in zsh

Hi @ErrorNoInternet, just tested, and it works for me. Not sure how to reproduce your issue, maybe you can temporarily disable your zsh configuration or try using another shell like bash to see if it works?
https://github.com/sxyazi/yazi/assets/17523360/fb510885-b42c-4b9d-976c-0a7e3134ce7b

It doesn't seem to happen with a fresh zsh config (zsh -f).
I found an alias (ya) that drops me into the cwd when I quit yazi (its from home-manager's programs.yazi.enableZshIntegration option), so I guess that's good enough for now.

bash

This works for me!

…Can this be included in the user guide (as an example)? I'm pretty sure that direct access to terminal is something that many terminal users may want.

Hey @LeXofLeviafan, I've added it to the documentation, https://yazi-rs.github.io/docs/tips/#dropping-to-the-shell, thanks for the suggestion.

authors: Eric-Song-Nop ErrorNoInternet sxyazi wybert


text:
RakennuskohteenToimenpide ei ole mielekäs ilman suunniteltua muutosta

Muutetaan RakennuskohteenToimenpide-luokan attribuutin suunniteltuMuutos kardinaliteetti 0..* -> 1..* (tehty pakolliseksi). Ei ole mieltä kuvata toimenpidettä, jossa ei kuvata suunniteltua muutosta ja siten sen kohdistumista Rakennuskohteeseen.

RakennuskohteenToimenpide siirretty osaksi Rakennuskohteet-tietomallia, https://github.com/sykefi/rakennuskohteet/issues/1

Korjattu pull requestissa #27

repo: sykefi/rakentamisenluvat


text:
🛑 Rigid Ground Work is down

In 38637e1, Rigid Ground Work (https://rigidgroundwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Rigid Ground Work is back up in b6dfe58 after 30 minutes.

repo: symapex/upsite


text:
🛑 Blooming Pots Landscaping is down

In 95eb29e, Blooming Pots Landscaping (https://bloomingpotslandscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Blooming Pots Landscaping is back up in c0626b9 after 22 minutes.


text:
🛑 Earth Works Lawn Cares is down

In b926abd, Earth Works Lawn Cares (https://earthworkslawncares.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Earth Works Lawn Cares is back up in c390fa4 after 1 hour, 21 minutes.


text:
🛑 Hard Stack Pro is down

In f31566f, Hard Stack Pro (https://hardstackpro.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Hard Stack Pro is back up in 6a085da after 56 minutes.


text:
🛑 Jacobs Floors is down

In 1b0b5d2, Jacobs Floors (https://jacobsfloorstx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Jacobs Floors is back up in 403609c after 20 minutes.


text:
🛑 Boon Wood Flooring is down

In 63806c6, Boon Wood Flooring (https://boonwoodflooring.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Boon Wood Flooring is back up in b5c7fb2 after 10 minutes.


text:
🛑 Clean Standards is down

In a9e7a3d, Clean Standards (https://clean-standards.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Clean Standards is back up in 3068155.


text:
🛑 Get Fence Lab is down

In 72721b5, Get Fence Lab (https://getfencelab.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Get Fence Lab is back up in ceb5655 after 56 minutes.


text:
🛑 Landscapers Fortworth is down

In e40d897, Landscapers Fortworth (https://landscapersfortworth.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Landscapers Fortworth is back up in 34ce29f.


text:
🛑 Scrub Clean Seattle is down

In 19b9c22, Scrub Clean Seattle (https://scrubcleanseattle.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Scrub Clean Seattle is back up in 001c181 after 10 minutes.


text:
🛑 Pestero Bug Fortworth is down

In d9e629d, Pestero Bug Fortworth (https://pesterobugfortworth.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pestero Bug Fortworth is back up in 8f255c8 after 35 minutes.


text:
🛑 Precise Word AZ is down

In e7376ac, Precise Word AZ (https://precisewordaz.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Precise Word AZ is back up in f2ae9ab after 47 minutes.


text:
🛑 Marble Wood is down

In e8bab89, Marble Wood (https://marblewoodca.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Marble Wood is back up in 5ef0643 after 30 minutes.


text:
🛑 My Drywall Guy is down

In f7aea42, My Drywall Guy (https://my-drywall-guy.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: My Drywall Guy is back up in 4de1030 after 1 hour, 13 minutes.


text:
🛑 Wellspring Tampa is down

In 417a500, Wellspring Tampa (https://wellspringtampa.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wellspring Tampa is back up in b96a1ac after 3 hours, 38 minutes.


text:
🛑 Clean Standards is down

In f5ae655, Clean Standards (https://clean-standards.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Clean Standards is back up in 30d108e after 10 minutes.


text:
🛑 Cleanasium is down

In d5f8f9d, Cleanasium (https://cleanasium.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cleanasium is back up in 4469e55 after 30 minutes.


text:
🛑 Tidy Cleaners is down

In c30c7b6, Tidy Cleaners (https://tidycleanerstx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Tidy Cleaners is back up in e72b72c after 56 minutes.


text:
🛑 Bugmode Pest Control is down

In f10480c, Bugmode Pest Control (https://bugmodepestcontrol.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bugmode Pest Control is back up in e668ed8 after 14 minutes.


text:
🛑 The AZ Clean Expert is down

In fa2b3fa, The AZ Clean Expert (https://theazcleanexpert.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: The AZ Clean Expert is back up in 8319903 after 19 minutes.


text:
🛑 Hard Stack Pro is down

In f8c4dd9, Hard Stack Pro (https://hardstackpro.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Hard Stack Pro is back up in a86a1a2 after 19 minutes.


text:
🛑 Concrete Tree is down

In 32b35a2, Concrete Tree (https://concretetree.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Concrete Tree is back up in c63401f after 49 minutes.


text:
URL updated

Obsolete URL has been updated

Thank you @shahariaazam.

authors: javiereguiluz shahariaazam

repo: symfony/demo


text:
Fix some usages of PassportInterface in Connect authenticator

After doing this fix, I can upgrade a Symfony application to 6.0 without issues and all tests are green too. So, hopefully this will be the last change to make this project compatible with Symfony 6. Thanks!

v8.0.2 tagged

authors: fabpot javiereguiluz

repo: symfonycorp/connect


text:
Potential crash when rotating a log file due to initialisation order

I suddenly had a site today go down with a PHP warning about setting the default timezone. It was quite odd because the site was working fine until a random refresh.
I discovered that as the bundle.php uses static Symphony methods to set the configuration, start the error handler, database and extension manager, we actually aren't invoking Symphony's constructor until later on. This means the date, language and sessions all are not started until the symphony() method is called.
This caused an issue because when the error handler initialised, it wanted to write a log file and give it a date but the configuration hadn't been yet set, and as my local PHP doesn't set the timezone either, the warning was raised.
There is also a potential for edge cases where an error occurs before the error handler is invoked or before the session is actually initialised.
This error was introduced in Symphony 2.5 with the index reorganisation and launcher abilities. Fortunately it's fairly easy to resolve as everything goes through bundle.php these days, regardless of the renderer.
Proposal:

[ ] add a Symphony::boot method which replaces the existing Symphony::initialise* calls in the bundle
[ ] move the date configuration settings out of the constructor into their own method
[ ] remove the duplicate calls to start the error handler
[ ] remove the Frontend::_construct() method (unused variable)

@nitriques Let me know what version you'd like me to target for this and I can make the necessary changes.

@brendo This would need to wait until #2509 is merged. I was hitting similar problems with things being 'not initialised' for some time.
The Symphony::boot proposal is great, but would also mean the we need to target this to 2.7.0

There is a quick fix that can be implemented for a 2.6.5, simply move the date constant settings from the constructor to the initialiseConfiguration method call. I can submit a PR for this if you like?

Yes please !

Let me know what version you'd like me to target for this and I can make the necessary changes.

@brendo If you'd like to tackle this problem in the 2.7.x branch, it would be nice!

@brendo Ping? Thanks mate.

Mmm, gonna leave this alone. It'll no doubt happen as I pull things apart to get a CI build going.

Great!

authors: brendo nitriques


text:
[Monorepo Builder] Fix error when packages have different depth to the root

Fixes #3221

Thank you :clap:

authors: TomasVotruba leoloso

repo: symplify/symplify


text:
Feat/fb v2 docs [SLT-476]

RFQ Docs refactor

Summary by CodeRabbit

New Features

Added comprehensive documentation for the Quoter API, including endpoints for retrieving open quote requests, initiating active RFQs, and listening for active RFQs.
Introduced a new sidebar configuration for better navigation of the Quoter API documentation.
Added documentation for the Bridging functionality, detailing the process of constructing bridge transactions and the role of the Synapse Router.
Introduced new documents covering the relaying, proving, claiming, canceling, and security processes within the RFQ system.
Added a new section on exclusivity in the FastBridgeV2 system, detailing how specific relayers can be granted temporary exclusive rights to complete a relay.

Documentation Updates

Enhanced existing documentation for clarity and organization across various sections, including RFQ processes, FastBridge versions, and the Canonical RFQ Relayer.
Updated Swagger API documentation with new endpoints and improved descriptions for better usability.

2ff6cd8f7c4461abc321add35fd95630738f9e3a: docs preview link
ae3e1009e902839b59d8a096ec490d16bf73809f: docs preview link
8447bdfd420e8b7aa8aa027d35d9b840daf2cb71: docs preview link
dadfc3229c33c0cf60d6f6c1a18de708d3960fe1: docs preview link
245349176d23480e2fce107a27100b9ada487273: docs preview link
c34a0be15541ba534c758412d35978d6f78f9421: docs preview link

@parodime btw removing zaps page (1b5f039661a4603a25ccc6b93ab6dd6b63a7632a) to get prelim version up, can re-add later

repo: synapsecns/sanguine


text:
Add license header eslint plugin

Closes #118

Pull Request Test Coverage Report for Build 4365615371

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build 4365560420:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls

authors: coveralls dstallenberg

repo: syntest-framework/syntest-javascript


text:
Encounters and Procedures Columns

It would be nice to have columns in the patient's record displaying medical encounters (well visits, hospitalizations, outpatient visits, etc.) and major procedures (surgeries, routine physical therapy, etc.). We model these in Synthea but they're not displayed anywhere.

Implemented in https://github.com/synthetichealth/syntheticmass/pull/32

repo: synthetichealth/syntheticmass


text:
cloudflare eror code 502

hello
I'm having a problem request cloudflare error code : 502 on console log.
please help me, what should i do?..

Hi, if you receive any errors about Cloudflare, then that most likely means the feed host has blocked the bot's requests to the feed. This can typically only be resolved by the feed host whitelisting your bot's IP address(es)

repo: synzen/MonitoRSS-Clone


text:
updated the LoadOBJ usage documentation. the less than/greater than <…

updated the LoadOBJ usage documentation. the less than/greater than < … > signs now appear in the github pages

Cool! Merged

authors: lordadamson syoyo

repo: syoyo/tinyobjloader


text:
Problem sending notification containing leaf-ref to state node

I have a YANG module which has a notification with a leaf node that contains a leafref to a state node (i.e. operational data) in the module. I have subscribed a callback for the operational data request, and this works ok ("get" retrieves the data), but when processing the notification, it seems that the callback for the operational data request times-out. I should say that I am using the asyncio python bindings for sysrepo.
I managed to reproduce the same prbblem using the sysrepo-example and application_asyncio.py , so you should be able to reproduce with the following...
First, the modified sysrepo-example.yang...
module sysrepo-example {
  yang-version 1.1;
  namespace "http://sysrepo-example.com/sysrepo-example";
  prefix "p";

  feature turbo;

  grouping data {
    container system {
      leaf hostname {
        type string;
      }
    }
    container network {
      list interface {
        ordered-by user;
        key name;
        leaf name {
          type string;
        }
        leaf up {
          type boolean;
        }
        leaf address {
          type string;
        }
        leaf speed {
          if-feature turbo;
          type uint64;
        }
      }
    }

  }

  container conf {
    uses data;

    container security {
      list alarm {
        key name;
        leaf name {
          type string;
        }
        action trigger {
          input {
            leaf duration {
              type uint16;
              units "seconds";
              default 1;
            }
          }
          output {
            leaf message {
              type string;
            }
          }
        }
      }
    }
  }

  container state {
    config false;
    uses data {
      augment 'network/interface' {
        container stats {
          leaf rx {
            type uint64;
          }
          leaf tx {
            type uint64;
          }
        }
      }
    }
    notification state-changed {
      leaf message {
        type string;
      }
    }
  }

  rpc poweroff {
    input {
      leaf behaviour {
        type enumeration {
          enum bad-output;
          enum failure;
          enum success;
        }
      }
    }
    output {
      leaf message {
        type string;
      }
    }
  }

  notification alarm-triggered {
    leaf description {
      type string;
    }
    leaf severity {
      type uint32;
    }
    leaf test {
        type leafref {
        path "/state/system/hostname";
      }
    }
  }
}

You can see above in the "alarm-triggered" notification I added a new leaf node "test", which is a leafref to the "/state/system/hostname".
I also modified the application_asyncio.py to send the alarm notification whilst handling the power-off RPC. In my own experiments I also tried other ways to send the notification, e.g. after a timer expires, etc.
#!/usr/bin/env python3
# Copyright (c) 2020 6WIND S.A.
# SPDX-License-Identifier: BSD-3-Clause

"""
Minimalist application that subscribes to module changes, operational data
requests and RPC calls for the sysrepo-example.yang module using an asyncio
event loop and coroutines.
"""

import argparse
import asyncio
import logging
import signal
import sys

import libyang

import sysrepo

session = None

# ------------------------------------------------------------------------------
def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument(
        "-v", "--verbose", action="count", default=0, help="Increase verbosity."
    )
    args = parser.parse_args()

    if args.verbose >= 3:
        level = logging.DEBUG
    elif args.verbose >= 2:
        level = logging.INFO
    elif args.verbose >= 1:
        level = logging.WARNING
    else:
        level = logging.ERROR
    logging.basicConfig(level=level, format="[%(levelname)s] application: %(message)s")
    #sysrepo.configure_logging(py_logging=True)

    loop = asyncio.get_event_loop()
    stop_event = asyncio.Event()
    loop.add_signal_handler(signal.SIGINT, stop_event.set)
    loop.add_signal_handler(signal.SIGTERM, stop_event.set)

    global session

    try:
        with sysrepo.SysrepoConnection() as conn:
            with conn.start_session() as sess:
                session = sess
                logging.info("subscribing to module changes: sysrepo-example")
                sess.subscribe_module_change(
                    "sysrepo-example", None, module_change_cb, asyncio_register=True
                )
                logging.info(
                    "subscribing to operational data requests: /sysrepo-example:state"
                )
                sess.subscribe_oper_data_request(
                    "sysrepo-example",
                    "/sysrepo-example:state",
                    oper_data_cb,
                    asyncio_register=True,
                )
                logging.info("subscribing to rpc calls: /sysrepo-example:poweroff")
                sess.subscribe_rpc_call(
                    "/sysrepo-example:poweroff", poweroff, asyncio_register=True
                )
                logging.info(
                    "subscribing to action calls: /sysrepo-example:conf/security/alarm/trigger"
                )
                sess.subscribe_rpc_call(
                    "/sysrepo-example:conf/security/alarm/trigger",
                    trigger_alarm,
                    asyncio_register=True,
                )
                loop.run_until_complete(stop_event.wait())
        return 0
    except sysrepo.SysrepoError as e:
        logging.error("%s", e)
        return 1

# ------------------------------------------------------------------------------
async def module_change_cb(event, req_id, changes, private_data):
    print()
    print("========================")
    print("Module changed event: %s (request ID %s)" % (event, req_id))
    print("----- changes -----")
    for c in changes:
        print(repr(c))
    print("----- end of changes -----")
    print()
    await asyncio.sleep(0)

# ------------------------------------------------------------------------------
async def oper_data_cb(xpath, private_data):
    print()
    print("========================")
    print("Operational data request for %s" % xpath)
    data = {
        "state": {
            "system": {"hostname": "foobar"},
            "network": {
                "interface": [
                    {
                        "name": "eth0",
                        "address": "1.2.3.4/24",
                        "stats": {"rx": 123456789, "tx": 987654321},
                    },
                    {
                        "name": "vlan12",
                        "address": "4.3.2.1/24",
                        "stats": {"rx": 0, "tx": 42},
                    },
                ]
            },
        }
    }
    print("returning %s" % data)
    print("---------------")
    print()
    await asyncio.sleep(0)
    return data

# ------------------------------------------------------------------------------
async def poweroff(xpath, input_params, event, private_data):
    print()
    print("========================")
    print("RPC call: %s" % xpath)
    print("params: %s" % input_params)
    out = {"message": "bye bye"}
    print("returning %s" % out)
    print("---------------")
    print()
    notif = {"description": "test", "severity": 7, "test": "foobar"}
    session.notification_send("/sysrepo-example:alarm-triggered", notif, strict=True)
    await asyncio.sleep(0)
    return out

# ------------------------------------------------------------------------------
async def trigger_alarm(xpath, input_params, event, private_data):
    print()
    print("========================")
    print("Action call: %s" % xpath)
    print("params: %s" % input_params)
    _, _, keys = list(libyang.xpath_split(xpath))[2]
    _, alarm_name = keys[0]
    seconds = input_params["duration"]
    out = {"message": "%s alarm triggered for %s seconds" % (alarm_name, seconds)}
    print("returning %s" % out)
    print("---------------")
    print()
    await asyncio.sleep(seconds)
    return out

# ------------------------------------------------------------------------------
if __name__ == "__main__":
    sys.exit(main())

You can see in poweroff() I'm sending an alarm-triggered notification, and including the "test" leaf which has the value "foobar" which is the operational value of /state/system/hostname. (Sorry for the nasty hack to make "session" global so I can use it for the notification, I just wanted to achieve the same problem without modifying the example code from sysrepo-python github too much).
Here's the error that I get when invoking the power-off RPC.
> user-rpc --content example-rpc.xml
ERROR
        type:     application
        tag:      operation-failed
        severity: error
        message:  Callback event "rpc" with ID 1 processing timed out.

        type:     application
        tag:      operation-failed
        severity: error
        message:  User callback failed.

If I put a breakpoint on the operational data callback, it never gets called.
By the way, if I try to send a notification with leafs that are not leafrefs this works. The problem above just seems to exist when the notification needs to call back to the subscriber for the operational data.
I did also try sending the notification from a different thread, and this worked! It calls the operational data call-back and verifies the leafref and then sends the notification! So seems like some issue with asyncio coroutines that I've not handled properly or isn't supported by sysrepo?
I hope you can help. Thanks in advance.

Also, the xml that I use in the "user-rpc" command is...
<poweroff xmlns="http://sysrepo-example.com/sysrepo-example">
	<behaviour>success</behaviour>
</poweroff>

Interestingly if I modify the non-asycio example application (application.py in the examples directory) in similar manner, then it works - almost. The server side stuff works, i.e. the operational callback is called and the leafref validated and the notification sent, but when it arrives at the client, it now complains saying that the "test" leaf is not part of the "alarm-triggered" notification.
ly ERROR: Node "test" not found as a child of "alarm-triggered" node. (Schema location "/sysrepo-example:alarm-triggered", data location "/sysrepo-example:alarm-triggered", line number 1.)
>
nc ERROR: Received an invalid message (Node "test" not found as a child of "alarm-triggered" node.).

I'm tempted to think that this is a different issue. At least the notification is received this time. (I'm using the netopeer2-cli client by the way). If I do a "get-schema" it shows the modified "alarm-triggered" block with the "test" node, so I don't know why it thinks it's not there.
Extract from "get-schema" below...
  notification alarm-triggered {
    leaf description {
      type string;
    }
    leaf severity {
      type uint32;
    }
    leaf test {
      type leafref {
        path "/state/system/hostname";
      }
    }
  }

It's almost like the client is using an old copy of the schema, but I don't know how.
Anyway, let's put that aside for now and look at the original problem. It seems there is some kind of asyncio deadlock if a sending a notification is required to use operational callback to verify the data in the notification, when using asyncio. When using the non-asyncio version (which I guess has threads for the callbacks) this works.

Just an update on this. I guess, it's not a bug as such, just deadlock state caused when one call-back needs result of another.
For anyone with similar issue, my solution was to run a "notifier" object in it's own thread, and use a message queue to safely pass messages (notification data) to it from the user tasks (which run from the main thread, via asyncio). It works fine, no more deadlocks.
I'm closing this issue.

repo: sysrepo/sysrepo-python


text:
error loading file from babel-runtime

Hi,
Something is strange when systemjs load babel-runtime
Error loading file://c:/xxx/xxx/xxx/jspm_packages/npm/babel-runtime@5.5.1/helpers/to-consumable-array.js from file:///c:/xxx/xxx/xxx/.tmpFile/avis.js
babel-runtime@5.5.1 is present on my drive into jspm_packages/npm/
I changed my index.js with your fix from #183
My log for match
c:/xxx/xxx/xxx/node_modules/systemjs-builder/node_modules/traceur/bin/traceur.js
c:/xxx/xxx/xxx/node_modules/systemjs-builder/node_modules/traceur/bin/traceur-runtime.js
c:/xxx/xxx/xxx/node_modules/babel-core/browser.js
c:/xxx/xxx/xxx/node_modules/babel-core/external-helpers.js
undefined
c:/xxx/xxx/xxx/node_modules/systemjs-builder/node_modules/traceur/bin/traceur.js
c:/xxx/xxx/xxx/node_modules/systemjs-builder/node_modules/traceur/bin/traceur-runtime.js
c:/xxx/xxx/xxx/node_modules/babel-core/browser.js
c:/xxx/xxx/xxx/node_modules/babel-core/external-helpers.js
undefined
[13:05:50] Starting 'styles:build'...
[13:05:50] Starting 'styles:build/critical'...
[13:05:50] 'systemBuilder' errored after 800 ms
[13:05:50] Error: Only file URLs of the form file:/// allowed running in Node.
        Error loading file://c:/xxx/xxx/xxx/jspm_packages/npm/babel-runtime@5.5.1/helpers/to-consumable-array.js from file:///c:/xxx/xxx/xxx/.tmpFile/avis.js
        Error loading file://c:/xxx/xxx/xxx/jspm_packages/npm/babel-runtime@5.5.1/helpers/to-consumable-array.js
    at Gulp.emit (events.js:129:20)
    at lib$rsvp$$internal$$tryCatch (c:\wamp\www\adv\node_modules\systemjs-builder\node_modules\rsvp\dist\rsvp.js:489:16)
    at lib$rsvp$$internal$$invokeCallback (c:\wamp\www\adv\node_modules\systemjs-builder\node_modules\rsvp\dist\rsvp.js:501:17)
    at lib$rsvp$$internal$$publish (c:\wamp\www\adv\node_modules\systemjs-builder\node_modules\rsvp\dist\rsvp.js:472:11)

For babel-runtime@5.5.1, i got undefined
Below, my builder task
gulp.task('systemBuilder', function () {
    var builder = new Builder();

    return builder
    .loadConfig('./jspm.conf.js')
    .then(function () {
        // additional config
        builder.config({
            baseURL: 'file:' + path.resolve(process.cwd()),
            paths: {
                '*':  options.tmpFile + '/*.js'
            }
        });

        return builder.build(
            'avis',
            options.tmp + '/build.js',
            {minify: true, sourceMaps: true}
        );
    });
});

Ok I think i have a clue, i have a problem with System.register, because if i'm looking my js file, my first argument is babel-runtime/helpers/to-consumable-array
So i think it's when i want to register modules that i have my error.

After some test, i think it's my baseURl from ma builderConfig
I have baseURL: 'file:' + path.resolve(process.cwd() into my builder.config
I log my config into Builder.protopye.config and i got this
{ baseURL: '/',
  transpiler: 'babel',
  babelOptions: { externalHelpers: true, stage: 1, optional: [ 'runtime' ] },
  paths:
   { '*': '*.js',
     'github:*': 'jspm_packages/github/*.js',
     'npm:*': 'jspm_packages/npm/*.js' } }
{ baseURL: 'file:c:\xxx\\xxx\\adv',
  paths: { '*': '.tmpFile/*.js' } }

My baseURL: 'file:c:\wamp\www\adv' is not correct for Node

OK i changed my base Url for relative path
I don't have anymore errors about format URL for node.
Some troubles on error: ENOENT when systemjs-builder try to open a file :smile:

Is it still providing an error specifically for the Babel runtime files? Do the files exist in the file system?

For babel-runtime it's ok for the moment, i solved it with installing babel-runtine with Node and it's ok without
But the main problem in fact, after lots of tests, is i can not get file with the builder, dont know why for the moment.
My imports are broken i suppose...
On Windows
[15:41:43] Error: ENOENT, open 'c:\xxx\xxx\xxx\.tmpFile\modules\main\module' at Error (native)

I have this file into my path

On Debian with Jenkins
[15:44:57] Error: ENOENT, open '/var/lib/jenkins/jobs/xxx/workspace/.tmpFile/modules/main/module'

The same thing, i have it in my path

Which version of SystemJS / SystemJS Builder are you using?

SystemJS v0.16.11
SystemJS Builder 0.11.3

Are you using the defaultJSExtensions option?

No.
I changed all of my imports, it's ok.
But still an error [17:10:04] Error: ENOENT, open 'c:\wamp\www\adv\jspm_packages\npm\babel-runtime@5.5.3\core-js\array\from'
I believe that it's babel-runtime/core-js/to-consumable-array.js which breaks it...
Thanks fo your help

Right, yes Babel runtime does not yet support not having the defaultJSExtensions option enabled. Note that jspm itself does not support defaultJSExtensions disabled yet, so this issue will be pending that work. Closing for now as this will happen naturally in time.

authors: YoannDelpierre guybedford

repo: systemjs/builder


text:
Full source maps for builds

Support picking up and then re-mapping the source maps from individual files through into the concat build.

I feel that input source maps of individual modules are not being passed to the final build (for example I can see the sourceMap tag when viewing sources of modules in chrome), is it a bug or lack of feature?

@Rush good point, created https://github.com/systemjs/builder/issues/297.

authors: Rush guybedford


text:
Initialize loader before accessing rootURL

Fixes #93

Thanks for the quick PR!

Great work guys!

authors: guybedford nillis peterjuras

repo: systemjs/plugin-css


text:
Refactor reaction-viewer

Summary
reaction-viewerでリアクションごとに定義されているコードをなくして
追加変更がしやすいようにしています

ありがとうございます 👍👍👍

repo: syuilo/misskey


text:
Fix drive file preview Fix #4532

Summary
Fix #4532

ファイルディティールでアイコンに色がついていないのを修正
ファイルディティールで画像がはみ出るのを修正

👍

とりあえずoverflow: hiddenにしてみたものの、縦長の画像だと画像の上部しか見られないことになり、これもこれでバグったような表示なので変えたい
私が思いついたのは以下の二択だけれど、Collaboratorの皆さんはどのようにしたらいいと思いますか?

overflow-y: autoでスクロールで画像を全部見られるようにする
そもそもmax-heightをなくす
今のままでいい

私は1がいいと思いました

そんなことをしなくても内側にmax-height: 300pxを指定すればいいと思った

authors: syuilo tamaina


text:
Add user registration

This closes #15.

Works in the review app!

repo: syvwlch/Metroscope


text:
tensorrt和cuda速度比cpu还慢

tensorrt和CUDAExecutionProvider的时候比CPU跑还慢，这合理吗

请提供给我们更多的信息，比如是cpp平台还是python平台

请提供给我们更多的信息，比如是cpp平台还是python平台

您好。是arm架构的python平台，Provider采用CPU的时候时间最快

@tunmx 有结果了吗是因为onnx中间的原因吗

onnxruntime框架推理在Provider指定为CUDAExecutionProvide推理有时候确实比cpu慢，这个我在yolo8上遇到过类似的情况。如果把onnx模型转化为tensorrt了，然后速度还是很慢，这就不合理了

哈罗，邮件收到了，我会尽快查看，回复，谢谢！

authors: PHI6kai qianxiaoer tunmx zhouenxian


text:
api.listPosts result return None

Hello,
I'm newbie in tiktok.
I tried to use function api.listPosts but the result res return None.
Could you please teach me what I am missing?
Thank you

hey can u contact me on skype hemant.bohra1987 (not selling anything just to get idea about this api)

hey can u contact me on skype hemant.bohra1987 (not selling anything just to get idea about this api)

repo: szdc/tiktok-api


text:
How do we implement the same functionality for right click instead of left click ?

I would like to implement the same functionality for right-click(onContextMenu) instead of onClick.

Hi @jayanthsaikiran , please see this example for how to add right click (context) menu in you page: https://szhsin.github.io/react-menu/#context-menu

authors: jayanthsaikiran szhsin

repo: szhsin/react-menu


text:
Divided LoginLogout trait to Login and Logout

I'm working on social login with play2-auth and have a usecase of this.
The interface is like this now.
object GitHubAuthController extends OAuth2Controller[User]
    with AuthConfigImpl
    with LoginLogout
    with OptionalAuthElement {
  lazy val authenticator = githubAuthenticator
}

object FacebookAuthController extends OAuth2Controller[User]
    with AuthConfigImpl
    with LoginLogout
    with OptionalAuthElement {
  lazy val authenticator = facebookAuthenticator
}

object TwitterAuthController extends OAuth10aController[User]
    with AuthConfigImpl
    with LoginLogout
    with OptionalAuthElement {
  lazy val authenticator = twitterAuthenticator
}

Each controller has login method, but doesn't have logout. On the other hand, as login methods are in XXXAuthController, My LoginController has only logout method.
If Login and Logout traits exist, I want to use them.

I agree your motivation.
This PR is reasonable.

I has published 0.13.2 at Sonatype.
It will be synchronized to Maven Central at a few hours later.
Thanks for sending PR

authors: gakuzzzz tototoshi


text:
Example for subscriptions?

Is your feature request related to a problem? Please describe.
Need to implement subscriptions to get data from the server to client in a non polling manner.
Describe the solution you'd like
Would like a simple example of how to implement subscriptions with this t3-create-app
Describe alternatives you've considered
creating a WS server and then subscribing to the socket in the client but doing so would escape the use of TRPC

Maybe when tRPC v10 is released where subscriptions supposedly should be a lot better. As of now, they're in a weird state even according to the creator.

Closing for now, perhaps we'll revisit this later

Trpc is now above version 10 now, with even version 11 out. Is it possible that this discussion could be reopened?
I have referenced some other sample projects that use TRPC with next.js but an official t3 example implementation would be ideal, especially using protectedProcedures and some sort of auth. Either clerk or nextauth.


text:
Inversion way to slow

kingdon version:
Python version:
Operating System:

Description
Currently inversion is implemented using the Shirokov inverse. This fantastic algorithm always finds the inverse if it exists, but it is extremely expensive to pre-compute symbolically. All other operations have now been made very fast to precompute and are easily 2-3 orders of magnitude faster than the previous sympy implementation, but this is a straggler.
We should either find a faster way to precompute it, or abandon precomputation for this one and always use a jitted-numerical solution like Clifford is doing, which seems like a reasonable compromise.
However, some potential ideas on how to speed it up could be that we stop one step earlier than the algorithm does by default, because in the second to last step we are dealing with a Study number to which we directly know the answer.

I have been able to achieve much faster codegen, even though I have only still implemented the Shirokov inverse, by leveraging the fact that 1 / x = ~x / (x * ~x) and thus we should only invert x * ~x, which is only of grade (0, 1, 4, 5, 8, 9, ...). This significantly speeds everything up, plus I converted the algorithm significantly by working directly with powers of x, which can be computed very efficiently.

repo: tBuLi/kingdon


text:
Call For Maintainers

Hi,
sad as it is, but I cannot devote anymore time into this library. It started actually as POC, evolved into something useful in one of the places I worked in, but now went out of production and I cannot find any more time to put into this little piece of software.
If anybody wants to take care, I will be very happy to transfer the ownership to him/her.
Kind regards
Thomas

We use this a lot already. We could take over maintainership. Would just need some help with test case writing as we're not great at that. If you could explain how those work we could take over for you.

@minorOffense I'd be willing to help you out with that.

That'd be great. I'm primarily a Drupal developer so my Ruby skills don't get very well exercised.

@minorOffense OK, I'd give you maintainer status of this repository. I will not be able to help you a lot currently. So I hope @t0xicCode could help you out here (thanks!).
Thank you (both) for your willingness to help out!

@tPl0ch feel free to add me as a maintainer as well.

@t0xicCode lets setup time at the beginning of August to meet up and get our priority list in order.

Definitely. Did you want to do in person or Skype/slack/etc?

We could do it in person. As long as you don't mind coming out to Kanata. Our office is Dairy Queen adjacent if that's any motivation.

That's definitely a plus. Let me just figure out a few things in my
schedule and I'll get back to you in a bit.

Let's do skype this time. I'll email you by the end of the week.


text:
Drop trailing period in section numbers

r12a would like us to drop the trailing periods from the section numbers.

Really? The period is analogous to list markers.
Pointer to his request?

Found the thread.  I thought I was just copying what the old preprocessor did, but Fonts is on the old processor, and it doesn't have dots after its section numbers.  I'm fine with changing this, whatever.

for posterity's sake, here's the original comment:
https://lists.w3.org/Archives/Public/spec-prod/2015OctDec/0064.html
fwiw, it looks like respec does the dot after the top level number, but not after the lower level section numbers, which i guess is fine.
what i was more interested in, however, was that section 7 numbering was wierdly different.  All counters in section 7 (only?) end with a dot.

what i was more interested in, however, was that section 7 numbering was wierdly different. All counters in section 7 (only?) end with a dot.

That's... weird. I'm not sure why that's happening.

(The sample page was copy-pasted bikeshed output with a bunch of bikeshed-specific things stripped out... since its goal isn't to be a bikeshed output sample, but a /TR requirements sample. The weird numbering was just human error, and has been fixed.)

authors: fantasai r12a tabatkins

repo: tabatkins/bikeshed


text:
Advisements are style differently depending on how they're marked-up

The following src code:

     This is a markdown paragraph inside of a DIV.

     So is this.

Advisement: This is a markdown paragraph
that is prefixed with "Advisement: ".

     This is a standard paragraph with a class of "advisement".

yields the following HTML:

This is a markdown paragraph inside of a DIV.

So is this.

 This is a markdown paragraph
that is prefixed with "Advisement: ".

 This is a standard paragraph with a class of "advisement".

(Note the missing
 tags issue already raised in #789.)
which renders like so:

It would be nice if there were the same consistency between the output as is observed with notes.

This display difference appears to be intentional in the W3C stylesheet. Note the styles in the stylesheet:
	.advisement {
		border-color: orange;
		border-style: none solid;
		background: #FFEECC;
	}
	strong.advisement {
		display: block;
		text-align: center;
	}

In other words, the bolding comes from the use of , and the centering is specifically associated with that.
You def don't want the bold/center in div.advisement, as you can put arbitrary amounts of stuff in there. Maybe for a paragraph, but then just use the Advisement:  syntax (or if you really want to use HTML, add the  yourself).

OK, so my suggestion would be for the "Advisement: " prefix not to be wrapped up in  for consistency with "Note: " and "Issue: ".

But that's... intended? Like, it's semanticly useful to have it be .

Agreed, but then why no longer care about those semantics when the advisement goes beyond a single paragraph?
(TBH, I don't really care either way—the inconsistency bugged me, hence reporting it—but I won't loost sleep over your wontfix. :)

authors: tabatkins tobie


text:
Can't connect to remote server

Hi,
I am having troubles connecting to the remote server.
Tableau Server and TabMon are hosted on different servers within the same domain.
I've tried multiple combinations of computerName and address, but get the same error:
The network path was not found.
Please verify that the computer name is configured correctly.
For computerName I've used hostname of the Tableau Server, lets say "at-xweb" (got it by running cmd hostname).
For address I tried ip of the url that Tableau server resolves to and also url itself, localhot, but in all cases it doesn't work.
I've checked user guide online and viewed related issues, like #99.
I am using latest TabMon version (2.2.6485.38315)
Could you please clarify how to configure TabMon for the remote polling?
Thanks!

Hello,
Before I give my suggestions I have a couple questions about the Tableau Server environment that you're pointing TabMon at.

Is this a single or multi node Tableau Server cluster?
Do you have direct access to the host(s) that Tableau Server is installed on?

Once I know this I should be able to walk you through gathering the information needed to configure TabMon.
-Dan

Hi @danjrahm
I too have the same error message.
We have a single node cluster.
we have the tableau server installed on an AWS instance.
https://github.com/tableau/TabMon/issues/155

Hi Dan,
Thanks for getting on this.
It is a single node and I do have access to the server (via RDP - it is a VM) and tableau server (via  url).
I have admin rights and run the TabMon service under admin account.
My current configuration is this:
TabMon is installed on server A, it is running under service account that has admin access to server B (single node Tableau Server). Server A and B are in the same domain. I am able to RDP from server A to server B using url (tableauxxx.its.sfu.ca)
We do use SSL offloading.
On serverB opened JMX ports, and enabled “Remote Registry” and “Performance Logs & Alerts” services.
Thanks,
Eleonora.

Hello,
I think this may be a configuration issue. It's likely that computer name and address are not set properly.
To set these fields we will need 2 pieces of information the Tableau Server host's computer name and FQDN or IP address.
To find the hostname, please refer to section 2 of the FAQ.
To find the FQDN just add the domain to the end of the computer name.
To find the ip address open a command prompt on the Tableau Server machine and type "ipconfig". The ip address should be after "IPv4 Address".
Once the computer name and FQDN/IP Address are collected, please enter the computer name into the "computerName" attribute of host and the FQDN/IP Address into the address. After the changes are made, save the file and restart TabMon. If this was a configuration issue, TabMon should start pulling successfully.
As for the SSL offloading bit, I don't think this will affect us.
Thanks,
Dan

Closing due to inactivity. Let me know if me response didn't work out.

Can we reopen this? I am having the same problem with a new TabMon installation with the same configuration as evidnn and like Omkar Lakhe we are on AWS. I am using the Hostname in the computerName field and have tried both the FQDN and IP in the address field, either one works.

Hello @BFASEricP,
Let's open a new issue for this. In the new issue, please paste the exact error that is occurring.
Thanks,
Dan

authors: BFASEricP OmkarLakhe danjrahm evidnn

repo: tableau/TabMon


text:
Subscription creation without pre-existing schedule item fails (user error?)

Describe the bug
I am attempting to create a subscription to a workbook using a schedule that doesn't exist at creation time. To perform the same action using Tableau Cloud/Server front-end, the user would configure the subscription by specifying the target type (view or entire workbook), format, subject, and schedule.
Versions
Tableau Cloud
Python 3.12.3
TSC library version 3.24
To Reproduce
 # Sign-in to server.
  with server.auth.sign_in(tableau_auth):
      # Ensure the most recent Tableau REST API version is used.
      server.use_highest_version()
      # Retrieve the user requiring the new subscription.
      user = server.users.filter(name='cmp160130@gmail.com')
      # Retreive the subscription's content (e.g., workbook, view)
      target = server.workbooks.filter(name='North America Sales')

      new_subscription = tsc.SubscriptionItem(
          subject='North America Sales (demo)',
          schedule_id=tsc.ScheduleItem(
              name=None,
              priority=None,
              schedule_type=None,
              execution_order=None,
              interval_item=tsc.DailyInterval(time(0),
                  24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'
              )
          ),
          user_id=user[0].id,
          target=tsc.Target(target[0].id, target_type='Workbook')
      )

      # Subscribe the user to the target content.
      server.subscriptions.create(subscription_item=new_subscription)

Results
What are the results or error messages received?
TypeError: cannot serialize <Schedule#None "None" <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>>  {  _created_at: None,  _end_schedule_at: None,  _id: None,  _next_run_at: None,  _state: None,  _updated_at: None,  interval_item: <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>,  _execution_order: None,  _name: None,  _priority: None,  _schedule_type: None} (type ScheduleItem)
If I swap out the subscription item configuration above for the following that uses a pre-existing schedule, then it works fine.
new_subscription = tsc.SubscriptionItem(
    subject='North America Sales (demo)',
    schedule_id='f3dcaf7a-9668-4eb2-8c20-2f7c21e82744',
    user_id=user[0].id,
    target=tsc.Target(target[0].id, target_type='Workbook')
)

I believe this is indeed a requirement, but we could return a better error from the server, and tsc should give a hint too.

Thank you for the support!
The odd part is that I can manually create a subscription to the workbook using the front-end features, subsequently query that subscription using TSC, and observe the schedule ID, name, priority, etc. are None for that subscription. The date and time the subscription is configured to fire off is populated, but no schedule ID. That's the behavior I am trying to replicate when creating them using TSC and am at a loss as to why it doesn't work.
I also tried copying the schedule item from a preexisting subscription that I manually configured. It also fails. I'll provide a snippet of the subscription object returned where the schedule ID is not populated and corresponds to the subscription mentioned above tomorrow.
Thanks again!

Manual creation of subscription to workbook.

Below is the subscription retrieved after creating it manually using the front-end. The manual creation process is shown within the two images.
<Subscription#0f1ab430-5b67-45fa-93f9-e2ee9e465601 subject(Daily Sales (testing)) schedule_id(None) user_id(9390ecd3-2278-467c-a636-5486afd3dec1)                 target(<Target#5faf8999-1ad8-4f0d-b337-b72a3882a418, Workbook>)
Using subscription.dict:
{'_id': '0f1ab430-5b67-45fa-93f9-e2ee9e465601', '_attach_image': False, '_attach_pdf': True, 'message': 'Testing', 'page_orientation': 'PORTRAIT', 'page_size_option': 'LETTER', 'schedule_id': None, '_send_if_view_empty': True, 'subject': 'Daily Sales (testing)', '_suspended': False, 'target': <Target#5faf8999-1ad8-4f0d-b337-b72a3882a418, Workbook>, 'user_id': '9390ecd3-2278-467c-a636-5486afd3dec1', 'schedule': [<Schedule#None "None" <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>>  {  _created_at: None,  _end_schedule_at: None,  _id: None,  _next_run_at: None,  _state: None,  _updated_at: None,  interval_item: <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>,  _execution_order: None,  _name: None,  _priority: None,  _schedule_type: None}]}
Accessing the schedule attribute of the subscription:
[<Schedule#None "None" <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>>  {  _created_at: None,  _end_schedule_at: None,  _id: None,  _next_run_at: None,  _state: None,  _updated_at: None,  interval_item: <DailyInterval start=00:00:00 interval=(24.0, 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')>,  _execution_order: None,  _name: None,  _priority: None,  _schedule_type: None}]
Notice the schedule ID is none as are the vast majority of attributes related to the schedule aside from those necessary for the subscription. I am hoping to achieve the same functionality using TSC. I hope that makes sense! Am I just doing it wrong in my original code example or is something else amiss? @jacalata

authors: CodingOnWindowsOS jacalata

repo: tableau/server-client-python


text:
Export to .pdf - filters not applied with spaces in parameter (2.0.7.dev9)

Hello,
This is a continuation of an existing issue, marked as fixed
I am running development branch 2.0.7.dev9 in Windows 10 conda environment with the following command:
python -m tabcmd export OmniFieldReport/Summary?Zone%%20ZVP=22%%20Ralph%%20McFakeName --pdf -f "C:\Users\c17798\Documents\BatchPdfTest\22RalphMcFakeName.pdf" --logging-level=DEBUG
The filter name is Zone ZVP and the value is 22 Ralph McFakeName.
Issue: While the file is created as expected, no filters are applied. The default view is returned.
I have attached the redacted debug output:
tabcmd_export_debug.txt

Not sure yet if there is an encoding bug, but the error trace displayed is a bad debug message that is fixed in #175

I checked into this and yes, this is failing when there's a space in the filter parameter.

Is there an update on the status of the bug fix?

@mkosmicki There is no update on the bug for spaces, but the general exporting should be fixed in the latest release, which is available at https://github.com/tableau/tabcmd/releases/tag/v2.0.6 or through pip using the command
pip install tabcmd --pre
Could you clarify if you are still having problems with all exporting, or just with spaces?

I'm new to using Tabcmd, but I just downloaded 2.0 and tried exporting with a parameter name with a space and it couldn't find the item.  I don't think it's working.

Still doesn't appear to be working with spaces in the parameter name for me, on version 2.0.9 (according to tabcmd --version). My testing workbook has parameters named spacelessint and spaced int, and of the following commands:
tabcmd export --no-certcheck 'TabcmdExperiment/Dashboard1?spacelessint=4' --png -f /tmp/1.png
tabcmd export --no-certcheck 'TabcmdExperiment/Dashboard1?spaced%20int=13' --png -f /tmp/2.png

the first correctly sets the spacelessint parameter to 4 for the dashboard, but the second does not set spaced int to 13. I also tried the second command with a double-percent (...spaced%%20int=13) but that didn't work either.

We are having issues using tabcmd 2.0 to export PDF files.  We have a filter setup to show a list of Vendors, and we either show all details, or a specific vendor.  With the TabCmd from Tableau Server, we were running the following command, and it generates a PDF for Vendor # 212D.
Due to the MFA implementation, we are trying to switch to TabCmd.exe 2.0, and the export is not working as expected.  The Filter by Vendor_ID isn't functioning.  I've tried 2.0.6, 2.07, and 2.0.10, and they all produce the same result.
tabcmd.exe export "CommissionStatement/Page1?Vendor_ID=212D" --pagelayout portrait --fullpdf -f ".\212D.pdf" --timeout 4600 --no-prompt
Why doesn't it it function like TabCmd for Tableau Server?  Is there something we need to change in the report to make it work?
2023-02-16 15:55:29,897 INFO : (ExportCommand export_command.py: 177): Requesting ''CommissionStatement/Page1?Vendor_ID=212D'' from the server... 2023-02-16 15:55:29,897 DEBUG: (ExportCommand export_command.py: 78): ['CommissionStatement/sheets/Page1', 'CommissionStatement'] 2023-02-16 15:55:29,900 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 22): Requesting ''CommissionStatement/sheets/Page1'' from the server... 2023-02-16 15:55:30,085 DEBUG: (ExportCommand export_command.py: 166): CommissionStatement/Page1?Vendor_ID=212D 2023-02-16 15:55:30,085 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 65): CommissionStatement/Page1?Vendor_ID=212D 2023-02-16 15:55:30,086 DEBUG: (ExportCommand export_command.py: 122): Args: portrait, letter, 800, 600, None 2023-02-16 15:55:30,087 WARNING: (ExportCommand datasources_and_workbooks_command.py: 117): Height/width arguments not yet implemented in export 2023-02-16 15:55:30,088 DEBUG: (ExportCommand export_command.py: 171): {'resolution': 'high', 'maxAge': 1, 'vf_Vendor_ID': '212D'} 2023-02-16 15:55:32,234 INFO : (ExportCommand datasources_and_workbooks_command.py: 137): Found attachment: .\212D.png 2023-02-16 15:55:32,235 INFO : (ExportCommand datasources_and_workbooks_command.py: 140): Saved  to ''.\212D.png''

+1 on this issue. Is this real life?

What version are you using?

What version are you using?

Thanks for the reply. I'm using this release, tagged v2.0.10 with this issue listed as "known":
Case sensitivity for users

Got it. I just now published v2.0.11 with the fix for this issue included.

Got it. I just now published v2.0.11 with the fix for this issue included.

Thanks for the release. 🙏 I'm giving it a try now and getting the same result (No filter is applied in the saved pdf, resulting in very overcrowded and illegible views)
Do you see anything obvious that I'm missing?
I'm running this command:
.\tabcmd export "IA_PartnerPPPReport/PPPSelectorDashboard?PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio" --fullpdf -f "C:\tabcmd\OUTPUT\03.2023_PPP\Partner - FirstName LastName Region Portfolio\Partner - FirstName LastName Region Portfolio.pdf"
I get this output from Tabcmd:
Requesting ''IA_PartnerPPPReport/PPPSelectorDashboard?PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio'' from the server...
Found attachment: C:\tabcmd\OUTPUT\03.2023_PPP\Partner - FirstName LastName Region Portfolio\Partner - FirstName LastName Region Portfolio.pdf
Saved  to ''C:\tabcmd\OUTPUT\03.2023_PPP\Partner - FirstName LastName Region Portfolio\Partner - FirstName LastName Region Portfolio.pdf''

If I append the request string IA_PartnerPPPReport/PPPSelectorDashboard?PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio to Tableau Online after /views/ , the filter is applied correctly.

Hm, try starting the filter with Parameters - like "PPPSelectorDashboard?Parameters.PPP%20Group%20Name........"
if you could turn on debug logging as well, that might help: --logging-level=DEBUG

Thanks, I gave this a try. With Parameters. added to the query, the saved PDF is unchanged. I get the same unfiltered PDF.
The debug logging outputs this:
2023-03-01 14:22:09,734 DEBUG: (tabcmd.execution.tabcmd_controller tabcmd_controller.py: 34): Namespace(certificate=None, continue_if_exists=False, country=None, csv=False, filename='C:\\tabcmd\\OUTPUT\\03.2023_PPP\\Partner - FirstName LastName Region Portfolio\\Partner - FirstName LastName Region Portfolio.pdf', filter=None, fullpdf=True, func=<class 'tabcmd.commands.datasources_and_workbooks.export_command.ExportCommand'>, height=600, language=None, logging_level='DEBUG', no_certcheck=False, no_cookie=False, no_prompt=False, no_proxy=True, pagelayout=None, pagesize='letter', password='REDACTED', password_file=None, pdf=False, png=False, proxy=None, server=None, site_name='', timeout=None, token_file=None, token_name=None, token_value=None, url='IA_PartnerPPPReport/PPPSelectorDashboard?Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio', username=None, width=800)
2023-03-01 14:22:09,735 DEBUG: (ExportCommand export_command.py: 74): ======================= Launching command =======================
2023-03-01 14:22:09,738 INFO : (ExportCommand session.py: 199): Creating new session
2023-03-01 14:22:09,739 INFO : (ExportCommand session.py: 213): =====   Server: https://10ay.online.tableau.com/
2023-03-01 14:22:09,739 INFO : (ExportCommand session.py: 215): =====   Username: [USERNAME_REDACTED]
2023-03-01 14:22:09,740 INFO : (ExportCommand session.py: 219): Tableau Server Site: energyprint
2023-03-01 14:22:09,740 INFO : (ExportCommand session.py: 201): Connecting to the server...
2023-03-01 14:22:09,741 DEBUG: (ExportCommand session.py: 154): Setting up request options
2023-03-01 14:22:09,741 DEBUG: (ExportCommand session.py: 168): {'headers': {'User-Agent': 'Tabcmd/0.1.dev1'}, 'verify': False}
2023-03-01 14:22:09,742 DEBUG: (ExportCommand session.py: 179): Finished setting up connection
2023-03-01 14:22:10,189 DEBUG: (ExportCommand session.py: 238): Signing in...https://10ay.online.tableau.com/
2023-03-01 14:22:10,189 DEBUG: (ExportCommand session.py: 239): NAME: [USERNAME_REDACTED] SITEID: ''energyprint''
2023-03-01 14:22:10,456 INFO : (ExportCommand session.py: 250): Succeeded
2023-03-01 14:22:10,456 DEBUG: (ExportCommand session.py: 253): Signed into https://10ay.online.tableau.com/energyprint as [USERNAME_REDACTED]
2023-03-01 14:22:10,458 INFO : (ExportCommand export_command.py: 173): Requesting ''IA_PartnerPPPReport/PPPSelectorDashboard?Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio'' from the server...
2023-03-01 14:22:10,459 DEBUG: (ExportCommand export_command.py: 78): ['view_url:', 'IA_PartnerPPPReport/sheets/PPPSelectorDashboard', 'workbook:', 'IA_PartnerPPPReport']
2023-03-01 14:22:10,460 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 38): Requesting ''IA_PartnerPPPReport'' from the server...
2023-03-01 14:22:10,460 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 42): {'pageNumber': 1, 'pageSize': 100, 'filter': 'contentUrl:eq:IA_PartnerPPPReport'}
2023-03-01 14:22:10,690 DEBUG: (ExportCommand export_command.py: 131): IA_PartnerPPPReport/PPPSelectorDashboard?Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio
2023-03-01 14:22:10,691 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 66): IA_PartnerPPPReport/PPPSelectorDashboard?Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio
2023-03-01 14:22:10,692 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 70): Query parameters: Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio
2023-03-01 14:22:10,693 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 76): ['Parameters.PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio']
2023-03-01 14:22:10,694 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 95): url had `PPP%20Group%20Name=Partner%20-%20FirstName%20LastName%20Region%20Portfolio`, saved as `PPP Group Name=Partner - FirstName LastName Region Portfolio`
2023-03-01 14:22:10,694 DEBUG: (ExportCommand datasources_and_workbooks_command.py: 103): handling filter param PPP Group Name=Partner - FirstName LastName Region Portfolio
2023-03-01 14:22:10,695 DEBUG: (ExportCommand export_command.py: 135): {'type': 'letter', 'maxAge': 1, 'vf_PPP Group Name': 'Partner - FirstName LastName Region Portfolio'}
2023-03-01 14:22:11,906 INFO : (ExportCommand datasources_and_workbooks_command.py: 151): Found attachment: C:\tabcmd\OUTPUT\03.2023_PPP\Partner - FirstName LastName Region Portfolio\Partner - FirstName LastName Region Portfolio.pdf
2023-03-01 14:22:11,907 INFO : (ExportCommand datasources_and_workbooks_command.py: 154): Saved  to ''C:\tabcmd\OUTPUT\03.2023_PPP\Partner - FirstName LastName Region Portfolio\Partner - FirstName LastName Region Portfolio.pdf''

In my testing the filters do not work if you export a full workbook. They should work if you export a single view.  I will list this as a new known issue - sorry for the hassle!
FYI, there is also an easier syntax you can use now (for views, at least)
Existing syntax:
tabcmd export /WorldIndicators/Population?Birth%20Rate%20Bin=1.5-3%25 --pdf
New syntax, with no need to encode the parameter values:
tabcmd export /WorldIndicators/Population --pdf  -f b1.pdf --filter "Birth Rate Bin=1.5-3%"

That's much nicer syntax! Thanks for that and for your testing on the workbook filter issue. I can work with this and wrap up my work with this much. Really appreciate the help.

I'm liking the new syntax as well. I'm hopeful that I'll be able to export
my single view now. I won't be able to test until next week though.
Thanks for all your work on this.
-Michelle
On Wed, Mar 1, 2023, 7:49 PM Michael Harms @.***> wrote:

That's much nicer syntax! Thanks for that and for your testing on the
workbook filter issue. I can work with this and wrap up my work with this
much. Really appreciate the help.
—
Reply to this email directly, view it on GitHub
https://github.com/tableau/tabcmd/issues/176#issuecomment-1451152781,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AINCO6SH56SXJHF6WXNC4NTWZ74A5ANCNFSM6AAAAAAQKYKR74
.
You are receiving this because you were mentioned.Message ID:
@.***>

closing this as it sounds like we've confirmed that exporting a view and filtering with spaces in the parameter name works :)
I opened a separate bug linked above to track filtering a workbook for export.

authors: John-Miller12 jacalata michaelharms6010 mkosmicki mptalaga rneilsen woodya-coder

repo: tableau/tabcmd


text:
[JET-8] Add tablelandnetwork org's standard actions, linting, testing, etc..

Just noticed that this repo doesn't have the combine-prs workflow, and some of the scripts are not named in the same way as the other tablelandnetwork TS/JS repos. We should get this repo setup to match js-tableland and js-tableland-cli.
From SyncLinear.com | JET-8

Fixed by #61

repo: tablelandnetwork/jeti


text:
BUG: Credits text unscrollable

In the "Main Menu > Credits" section, with the "AutoScroll" script enabled, the user can't use his mouse wheel to scroll the content.
Find a way to have both auto scroll and mouse wheel navigation.

Fixed when finalized the Credits screen

license: Unlicense


text:
FR: Support opening .canvas files

I am quite surprised that there hasn't been a feature request for this yet. Right now, we have to use the core plugin quick switcher if we want to open a canvas file, which is quite annoying.

Probably, It will be implemented as the issue, https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/issues/21.

I would also appreciate this :)

I understand that is an unsafe implementation (using not public APIs). But if some people want to use the AQS in the canvas... :trollface: ( insert to editor or insert all to editor )
https://user-images.githubusercontent.com/9500018/209671998-5b63a9e6-74f0-492c-a1b4-c226db51d524.mp4

Released in v8.0.0-beta2 🚀
https://user-images.githubusercontent.com/9500018/209675872-c139f8f7-85e9-4734-9cdc-88f120388abe.mp4

Released in v8.0.0 🚀


text:
🐞 -  text-align style doesn't work with tui-notification

Playground Link
No response
Description
I use tui-notification component with text-align: center, but it doesn't work after updating tui from 3.64 to 3.71

Angular version
15.2.0
Taiga UI version
3.71.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[X] Safari
[ ] Edge

Which operating systems have you used?

[X] macOS
[ ] Windows
[ ] Linux
[ ] iOS
[ ] Android

https://github.com/taiga-family/taiga-ui/pull/7042

authors: costarev splincode

repo: taiga-family/taiga-ui


text:
🐞 - tui-input-time  sets the correct value but doesn't  Preselect Current value from the dropdown

Playground Link
https://stackblitz.com/edit/angular-vj227c-wexvym?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html,src%2Fapp%2Fapp.module.ts
Description
For the Combobox, it preselects values from the dropdown, but it doesn't preselect values from the input time. If a minor change in time is needed, you have to scroll again to the selected value.

In the attached stackblitz demo, the Combobox is working fine, but there are issues with the input time.
Angular version
16.1.4
Taiga UI version
3.76.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[X] macOS
[X] Windows
[ ] Linux
[ ] iOS
[ ] Android

Hi,
I am experiencing the same issue with tui-input-time not preselecting the current value from the dropdown.
Observed Behavior: The dropdown does not preselect the value from the input time, requiring users to manually scroll to the correct time.

In this case, the user needs to scroll down from 00:00 to the current value 09:00. It should allow the user to make minor time adjustments such as changing from 09:00 to 08:00 or 10:00.
08:00
09:00 <= preselected value
10:00

authors: ShawnDvn dhawaldenny


text:
Do not fail to compile if unable to determine rustc version

const_fn no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning.

bors r+


text:
fail to add liquidity

Describe the bug
I'm trying to add liquidity with my zeal wallet but its not adding up i don't know why Its showing error saying insufficient funds but i have the test funds in my wallet and also i have added the taiko katla network twice but still error is there . Any way to rectify this error?? thanks
Steps to reproduce
Steps to reproduce here.
Spam policy

[X] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

Is the zeal wallet fully compatible with the taiko katla network?

yes

authors: 2manslkh VeeruNFT vonyue

repo: taikoxyz/taiko-mono


text:
feat(ci): add build tag

Summary:
Proposal
Issue Reference(s):
Fixes #1375
Build & Testing:

[ ] I ran cargo test successfully.
[ ] I have run ./lint.sh --mode=fix to fix all linting issues raised by ./lint.sh --mode=check.

Checklist:

[ ] I have added relevant unit & integration tests.
[ ] I have updated the documentation accordingly.
[ ] I have performed a self-review of my code.
[ ] PR follows the naming convention of <type>(<optional scope>): <title>

Summary by CodeRabbit

New Features

Enhanced the Continuous Integration (CI) process to support additional pull request events.
Introduced new CI jobs to improve build verification across all platforms and streamline the release process.

Chores

Updated job dependencies and conditions to optimize the workflow for releasing updates and publishing packages.

@coderabbitai suggest changes to make it run Build step in release if the pr contains "ci: build" tag

closing in favor of: #1390

repo: tailcallhq/tailcall


text:
perf: fix thread contention problem

Summary:
Briefly describe the changes made in this PR.
Issue Reference(s):
Fixes #... (Replace "..." with the issue number)
Build & Testing:

[ ] I ran cargo test successfully.
[ ] I have run ./lint.sh --mode=fix to fix all linting issues raised by ./lint.sh --mode=check.

Checklist:

[ ] I have added relevant unit & integration tests.
[ ] I have updated the documentation accordingly.
[ ] I have performed a self-review of my code.
[ ] PR follows the naming convention of <type>(<optional scope>): <title>

closing this as using lock free data structures didn't solve the actual problem.