Support for Advanced Styling in the Terminal

I need a styling library for teashop,
ansi supports many of the operations that I want to support,
but not quite in the right way.
This issue is an open question of whether it makes sense to adapt/enhance ansi to support my styling needs.
For performance reasons, I would like to apply as many styles at once as possible, to avoid unnecessary string concatenations. Especially for Erlang. For teashop I might need to render multiple styles at 60 FPS.
For this, I would like to do something like a builder API:
pub fn bold(style, bool) { Style(..style, bold: bool) }

I would also like to support operations that don't feel like they fit into ansi, such as text alignment, padding, and borders.
Here is an incomplete list of all the things I want to be able to support:
pub type Style {
  Style(
    background: Option(Color),
    blink: Bool,
    bold: Bool,
    faint: Bool,
    foreground: Option(Color),
    height: Option(Int),
    italic: Bool,
    margin_bottom: Int,
    margin_left: Int,
    margin_right: Int,
    margin_top: Int,
    max_height: Option(Int),
    max_width: Option(Int),
    padding_bottom: Int,
    padding_left: Int,
    padding_right: Int,
    padding_top: Int,
    reverse: Bool,
    strikethrough: Bool,
    underline: Bool,
    width: Option(Int),
    horizontal_alignment: Option(Alignment),
    vertical_alignment: Option(Alignment),
    underline_spaces: Bool,
    strikethrough_spaces: Bool,
    transform: Option(fn(String) -> String),
  )
}

I will be using ANSI escape codes to achieve these colors and styles.
As much as possible, I would like to present a unified interface for building a style.
In Go, the styles are built up first, then concatenated in one operation:
https://github.com/muesli/termenv/blob/9850e567a4bfc1af41a28a48fbb1f6fde4e7f20a/style.go#L43-L57
Does it make sense to add such functionality to ansi?
Regardless of decision, I think it's important to note that ansi works right now with teashop, since teashop doesn't care where the ANSI strings come from.

My end goal is to support a similar breadth of functionality as https://github.com/charmbracelet/lipgloss for teashop.

Another consideration is the simple exposure of the escape codes, perhaps in a separate module: ansi/escape_codes.
This is what minttea did in OCaml:
https://github.com/leostera/tty/blob/main/tty/escape_seq.ml
https://github.com/leostera/tty/blob/main/tty/color.ml
Just having the ability to get the escape codes for styles and colors from ansi would avoid me having to re-implement that code in my styling package.

I think to start we'll just expose the codes in an ansi/codes module like you suggested. I'm open to including some more utilities around using them in the future but I'd rather start here and see what people use them for/the broader needs of the community around them before building anything out.

I am also looking for some way to do custom styling, at the very least a way to use arbitrary ANSI escape codes without having to re-implement a lot of what this library does under the hood.


Flathub protal directory

Describe the bug
When you open an app with the Flatpak version of the App, you see the portal-location of the file and not the actual file location.

Expected behavior
To fix this, you should take a closer look at the NativeFileChooserApi spec. There is a specific method to get the actual location and not the security-portal symlink.
https://docs.gtk.org/gtk4/class.FileChooserNative.html
Environment (please complete the following information):

OS: Fedora Linux 35
Install method: Flathub

Thanks for raising this issue!
Could you point me at that method? I can't seem to find it.
The closest I could find is flatpak/xdg-desktop-portal#475, which mentions adding host filesystem permission as a workaround. I'd like to avoid it unless there's no other solution.

The closest I could find is flatpak/xdg-desktop-portal#475, which mentions adding host filesystem permission as a workaround. I'd like to avoid it unless there's no other solution.

That should not be necessary, and it's also undesirable: An application like yours that should help people secure their computer, should not rely on such a brute-force method.
By the sound of it, showing the full path seems to be impossible right now. I didn't know that, so perhaps it's best to put it on the to-do list. For now, as a 'triage' you can just not display the file-path inside a flatpak. Bit blunt, but it solves the confusion it otherwise creates.

That sounds like the best solution at the moment. I'll add a runtime check just in case someone gives it host filesystem permission manually. Thanks!


When utilizing shadow properties for multiple level relationships length metadata can be lost

When using a shadow property as part of a FK for two levels of relationships, if the second level of the relationship has a class name that starts with the full name of the second level the length metadata of the top level column is not detected correctly.
Steps to reproduce

Use the following code to generate a migration.

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }

    public class db : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("foo");
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Company>().HasKey(p => p.GrandKey);

            modelBuilder.Entity<RulesMetaData>().HasKey(m => m.GrandKey);
            modelBuilder.Entity<RulesMetaData>().HasOne<Company>().WithOne().HasForeignKey<RulesMetaData>(m => m.GrandKey);

            modelBuilder.Entity<Rule>().HasKey(nameof(RulesMetaData) + nameof(Company.GrandKey), nameof(Rule.Key));

            modelBuilder.Entity<TRule>().HasKey(nameof(RulesMetaData) + nameof(Company.GrandKey), nameof(TRule.Key));

            modelBuilder.Entity<Rulet>().HasKey(nameof(RulesMetaData) + nameof(Company.GrandKey), nameof(Rulet.Key));
        }
    }

    public class Company
    {
        [MaxLength(50)]
        public string GrandKey { get; set; }
    }

    public class RulesMetaData
    {
        public string GrandKey { get; set; }
        public IEnumerable<Rule> rules { get; set; }
        public IEnumerable<TRule> TRules { get; set; }
        public IEnumerable<Rulet> Rulets { get; set; }
    }

    public class TRule
    {
        [MaxLength(50)]
        public String Key { get; set; }
    }

    public class Rulet
    {
        [MaxLength(50)]
        public String Key { get; set; }
    }
//This will have it's GrandKey column set to the default key length instead of 50
    public class Rule
    {
        [MaxLength(50)]
        public String Key { get; set; }
    }
}

Further technical details
EF Core version: 2.0.0
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Win10
IDE: Visual Studio 2017

Note adding the MaxLength attribute to RulesMetaData will restore the length information

@Tarig0 Thanks for reporting this. On reading this I realized there is a bug in the type mapper where we only propagate the facets (e.g. max length) from a direct principal, not all the way along the chain of dependents/principals to the last one.

It does seem like the facets are propagated, as shown by the Rulet and TRule classes. Only when the intermediate class starts with the class name of the next level does it stop Propagating. Rules -> Rule

Verified that this is fixed in the current bits, likely by changes made to facet propagation as part of the type mapper updates.


Unable to parse status response

mailboxes works fine though, so authentication is set up correctly and works, but otherwise get this error - and nothing extra with --log-level trace

`$  cat ~/.config/himalaya/config.toml
https://github.com/soywod/himalaya/wiki/Configuration:config-file
name = "J Rogers"
downloads-dir = "/home/jrogers/Downloads"
signature = """
Regards,
"""
[gmail]
default = true
email =<EMAIL_ADDRESS>imap-host = "imap.gmail.com"
imap-port = 993
imap-login =<EMAIL_ADDRESS>imap-passwd-cmd = "pass show gmail"
smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login =<EMAIL_ADDRESS>smtp-passwd-cmd = "pass show gmail"
$ himalaya
Error: cannot select mailbox "INBOX"
Caused by:
Unable to parse status response
$ himalaya --version
himalaya 0.5.1`
Same issue?  Fresh install, first time using (trying) himalaya

It may be because of the name of the inbox mailbox. The default one is INBOX, but I'm pretty sure it is not the case on gmail. Could you check please the name of your inbox mailbox with the command himalaya mbox?

Is is named INBOX in Gmail as well.
I get the same error with other mailboxes as well.

I can't reproduce with my gmail account:
# ~/.config/himalaya/config.toml

[gmail]
email =<EMAIL_ADDRESS>
imap-host = "imap.gmail.com"
imap-port = 993
imap-login =<EMAIL_ADDRESS>imap-passwd-cmd = "pass show gmail"

smtp-host = "smtp.gmail.com"
smtp-port = 465
smtp-login =<EMAIL_ADDRESS>smtp-passwd-cmd = "pass show gmail"

himalaya -a gmail mbox

DELIM │NAME              │ATTRIBUTES
/     │Archives          │\HasNoChildren
/     │Drafts            │\HasNoChildren
/     │INBOX             │\HasNoChildren
/     │Sent              │\HasNoChildren
/     │Trash             │\HasNoChildren
/     │[Gmail]           │\HasChildren, NoSelect
/     │[Gmail]/Bin       │\HasNoChildren, \Trash
/     │[Gmail]/Drafts    │\Drafts, \HasNoChildren
/     │[Gmail]/Sent Mail │\HasNoChildren, \Sent
/     │[Gmail]/Spam      │\HasNoChildren, \Junk
/     │[Gmail]/Starred   │\Flagged, \HasNoChildren

And the himalaya -a gmail list works as expected for me. Could you share the result of your himalaya mbox?

looks a bit different then you:
DELIM │NAME              │ATTRIBUTES
/     │INBOX             │\HasNoChildren
/     │Notes             │\HasNoChildren
/     │[Gmail]           │\HasChildren, NoSelect
/     │[Gmail]/All Mail  │\All, \HasNoChildren
/     │[Gmail]/Chats     │\HasNoChildren
/     │[Gmail]/Drafts    │\Drafts, \HasNoChildren
/     │[Gmail]/Important │\HasNoChildren, \Important
/     │[Gmail]/Sent Mail │\HasNoChildren, \Sent
/     │[Gmail]/Spam      │\HasNoChildren, \Junk
/     │[Gmail]/Starred   │\Flagged, \HasNoChildren
/     │[Gmail]/Trash     │\HasNoChildren, \Trash

 himalaya -m '[Gmail]/All Mail' list
Error: cannot select mailbox "[Gmail]/All Mail"

Caused by:
    Unable to parse status response

And with INBOX you have the same response :thinking:? It is really strange

Yes.
I wonder where the differences in folder lists come from, odd.

As a proposal, if you have any debugging snippet I could test out (no Rust experience), I would gladly give it a shot and report back!

It's a good idea, I will try to provide you this whenever I can!

FYI, I've seen the same thing using davmail as the server to connect to:
$ himalaya list
Error: cannot select mailbox "INBOX"

Caused by:
    Unable to parse status response

This is the captured output (over telnet with SSL temp-disabled)
$ telnet <IP_ADDRESS> 1143
Trying <IP_ADDRESS>...
Connected to <IP_ADDRESS>.
Escape character is '^]'.
* OK [CAPABILITY IMAP4REV1 AUTH=LOGIN MOVE SPECIAL-USE] IMAP4rev1 DavMail 5.4.0-trunk server ready
a1 LOGIN abcdefg hijklmnop
a1 OK Authenticated
a2 EXAMINE "INBOX"
*  1003 EXISTS
* 4 RECENT
* OK [UIDVALIDITY 1]
* OK [UIDNEXT 5343]
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk)
* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk \*)]
a2 OK [READ-ONLY] EXAMINE completed

Same can be observed from the server logs when himalaya is talking to davmail with SSL.
DEBUG [davmail.imap.ImapServer] davmail  - Connection from /<IP_ADDRESS> on port 1143
INFO  [davmail.imap.ImapServer] davmail.connection  - CONNECT - <IP_ADDRESS>:36182
DEBUG [ImapConnection-36182] davmail.exchange.ExchangeSession  - Test configuration status: 401
DEBUG [ImapConnection-36182] davmail  - > * OK [CAPABILITY IMAP4REV1 AUTH=LOGIN MOVE SPECIAL-USE] IMAP4rev1 DavMail 5.4.0-trunk server ready
DEBUG [ImapConnection-36182] davmail  - < LOGIN ********
DEBUG [ImapConnection-36182] davmail  - > a1 OK Authenticated
DEBUG [ImapConnection-36182] davmail  - < a2 EXAMINE "INBOX"
DEBUG [ImapConnection-36182] davmail.exchange.FolderLoadThread  - Still loading INBOX (1003 messages)
DEBUG [ImapConnection-36182] davmail  - >  1003 EXISTS
DEBUG [ImapConnection-36182] davmail  - > * 4 RECENT
DEBUG [ImapConnection-36182] davmail  - > * OK [UIDVALIDITY 1]
WARN  [ImapConnection-36182] davmail.imap.ImapConnection  - Client closed connection
INFO  [ImapConnection-36182] davmail.connection  - DISCONNECT - <IP_ADDRESS>:36182

It looks like the response is not parsed properly in some specific context (I was not able to determine which one). I open an issue at rust-imap (it is the lib used by himalaya to interact with IMAP servers).

I was able to link himalaya's debug mode with the rust-imap debug mode. Now we have access to all IMAP logs within himalaya in trace mode. Could you build himalaya from sources (on development branch) and run it with trace logs to see what's happening? RUST_LOG=trace himalaya list.

This feature has been shipped with the v0.5.4, so you can try the same command without building from sources!

@andreivolt @ibuclaw any news about this issue?

I close due to inactivity, feel free to reopen if needed!

I tried the 0.5.10 binary and built the 0.6 development branch and I can't get the email list of my Gmail account with the same message "Unable to parse status response", I attach the output of the commands, just i removed the password from the output.
❯ himalaya --version
himalaya 0.6.0
~
❯ RUST_LOG=trace himalaya -a gmail list
[2022-10-04T01:44:41Z INFO  himalaya::compl::args] entering completion command matcher
[2022-10-04T01:44:41Z TRACE himalaya::config::config] >> parse config from path
[2022-10-04T01:44:41Z DEBUG himalaya::config::config] path: None
[2022-10-04T01:44:41Z TRACE himalaya::config::config] config: DeserializedConfig { display_name: Some("Eder Sosa"), signature_delim: None, signature: None, downloads_dir: None, folder_listing_page_size: None, folder_aliases: None, email_listing_page_size: None, email_reading_headers: None, email_reading_format: None, email_reading_decrypt_cmd: None, email_writing_encrypt_cmd: None, email_hooks: None, accounts: {"gmail": Imap(DeserializedImapAccountConfig { base: DeserializedBaseAccountConfig { email<EMAIL_ADDRESS>default: None, display_name: None, signature_delim: None, signature: None, downloads_dir: None, folder_listing_page_size: None, folder_aliases: None, email_listing_page_size: None, email_reading_headers: None, email_reading_format: None, email_reading_decrypt_cmd: None, email_writing_encrypt_cmd: None, email_sender: Internal(SmtpConfig { host: "smtp.gmail.com", port: 465, starttls: None, insecure: None, login<EMAIL_ADDRESS>passwd_cmd: "pass show<EMAIL_ADDRESS>}), email_hooks: None }, backend: ImapConfig { host: "imap.gmail.com", port: 993, starttls: None, insecure: None, login<EMAIL_ADDRESS>passwd_cmd: "pass show<EMAIL_ADDRESS>notify_cmd: None, notify_query: None, watch_cmds: None } })} }
[2022-10-04T01:44:41Z TRACE himalaya::config::config] << parse config from path
[2022-10-04T01:44:41Z INFO  himalaya::domain::imap::args] entering imap command matcher
[2022-10-04T01:44:41Z TRACE himalaya::domain::email::args] matches: ArgMatches { args: {"account": MatchedArg { occurs: 1, indices: [2], vals: ["gmail"] }, "source": MatchedArg { occurs: 0, indices: [5], vals: ["inbox"] }, "output": MatchedArg { occurs: 0, indices: [3], vals: ["plain"] }, "log-level": MatchedArg { occurs: 0, indices: [4], vals: ["info"] }}, subcommand: Some(SubCommand { name: "list", matches: ArgMatches { args: {"page": MatchedArg { occurs: 0, indices: [1], vals: ["1"] }}, subcommand: None, usage: Some("USAGE:\n    himalaya list [OPTIONS]") } }), usage: Some("USAGE:\n    himalaya [OPTIONS] [SUBCOMMAND]") }
[2022-10-04T01:44:41Z DEBUG himalaya::domain::email::args] list command matched
[2022-10-04T01:44:41Z DEBUG himalaya::domain::email::handlers] page size: 10
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] create TLS builder
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] insecure: false
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] create client
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] host: imap.gmail.com
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] port: 993
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] starttls: false
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] create session
[2022-10-04T01:44:41Z DEBUG himalaya_lib::backend::imap::backend] login<EMAIL_ADDRESS>[2022-10-04T01:44:41Z DEBUG himalaya_lib::process] running command: pass show<EMAIL_ADDRESS>[2022-10-04T01:44:42Z TRACE himalaya_lib::process] command output:

C: a2 SELECT "INBOX"
S: * FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Forwarded $MailFlagBit0 $NotJunk $NotPhishing $Phishing $has_cal LoadRemoteImages Mail Networking NotJunk OIB-Seen- OIB-Seen-INBOX OIB-Seen-OIB/Business OIB-Seen-OIB/Entertainment OIB-Seen-OIB/Finance OIB-Seen-OIB/Groups OIB-Seen-OIB/Home OIB-Seen-OIB/Jobs OIB-Seen-OIB/Shopping OIB-Seen-OIB/Social OIB-Seen-OIB/Social Networking OIB-Seen-[Gmail]/All Mail OIB-Seen-[Gmail]/Important OIB-Seen-[Gmail]/Spam OIB-Seen-[Gmail]/Trash Old receipt-handled)
Error: cannot select mailbox INBOX

Caused by:
    Unable to parse status response
~
❯ RUST_LOG=trace himalaya -a gmail mailbox
[2022-10-04T01:44:52Z INFO  himalaya::compl::args] entering completion command matcher
[2022-10-04T01:44:52Z TRACE himalaya::config::config] >> parse config from path
[2022-10-04T01:44:52Z DEBUG himalaya::config::config] path: None
[2022-10-04T01:44:52Z TRACE himalaya::config::config] config: DeserializedConfig { display_name: Some("Eder Sosa"), signature_delim: None, signature: None, downloads_dir: None, folder_listing_page_size: None, folder_aliases: None, email_listing_page_size: None, email_reading_headers: None, email_reading_format: None, email_reading_decrypt_cmd: None, email_writing_encrypt_cmd: None, email_hooks: None, accounts: {"gmail": Imap(DeserializedImapAccountConfig { base: DeserializedBaseAccountConfig { email<EMAIL_ADDRESS>default: None, display_name: None, signature_delim: None, signature: None, downloads_dir: None, folder_listing_page_size: None, folder_aliases: None, email_listing_page_size: None, email_reading_headers: None, email_reading_format: None, email_reading_decrypt_cmd: None, email_writing_encrypt_cmd: None, email_sender: Internal(SmtpConfig { host: "smtp.gmail.com", port: 465, starttls: None, insecure: None, login<EMAIL_ADDRESS>passwd_cmd: "pass show<EMAIL_ADDRESS>}), email_hooks: None }, backend: ImapConfig { host: "imap.gmail.com", port: 993, starttls: None, insecure: None, login<EMAIL_ADDRESS>passwd_cmd: "pass show<EMAIL_ADDRESS>notify_cmd: None, notify_query: None, watch_cmds: None } })} }
[2022-10-04T01:44:52Z TRACE himalaya::config::config] << parse config from path
[2022-10-04T01:44:52Z INFO  himalaya::domain::imap::args] entering imap command matcher
[2022-10-04T01:44:52Z DEBUG himalaya::domain::folder::args] folders command matched
[2022-10-04T01:44:52Z TRACE himalaya_lib::backend::imap::backend] >> get imap folders
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] create TLS builder
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] insecure: false
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] create client
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] host: imap.gmail.com
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] port: 993
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] starttls: false
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] create session
[2022-10-04T01:44:52Z DEBUG himalaya_lib::backend::imap::backend] login<EMAIL_ADDRESS>[2022-10-04T01:44:52Z DEBUG himalaya_lib::process] running command: pass show<EMAIL_ADDRESS>[2022-10-04T01:44:52Z TRACE himalaya_lib::process] command output:

C: a2 LIST "" *
S: * LIST (\HasNoChildren) "/" "Archive"
S: * LIST (\HasNoChildren) "/" "INBOX"
S: * LIST (\HasChildren \Noselect) "/" "[Gmail]"
S: * LIST (\Drafts \HasNoChildren) "/" "[Gmail]/Drafts"
S: * LIST (\HasNoChildren \Important) "/" "[Gmail]/Important"
S: * LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail"
S: * LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam"
S: * LIST (\Flagged \HasNoChildren) "/" "[Gmail]/Starred"
S: * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash"
S: a2 OK Success
[2022-10-04T01:44:52Z TRACE himalaya_lib::backend::imap::backend] imap folders: Folders([Folder { delim: "/", name: "Archive", desc: "HasNoChildren" }, Folder { delim: "/", name: "INBOX", desc: "HasNoChildren" }, Folder { delim: "/", name: "[Gmail]", desc: "HasChildren, NoSelect" }, Folder { delim: "/", name: "[Gmail]/Drafts", desc: "Drafts, HasNoChildren" }, Folder { delim: "/", name: "[Gmail]/Important", desc: "HasNoChildren, Important" }, Folder { delim: "/", name: "[Gmail]/Sent Mail", desc: "HasNoChildren, Sent" }, Folder { delim: "/", name: "[Gmail]/Spam", desc: "HasNoChildren, Junk" }, Folder { delim: "/", name: "[Gmail]/Starred", desc: "Flagged, HasNoChildren" }, Folder { delim: "/", name: "[Gmail]/Trash", desc: "HasNoChildren, Trash" }])
[2022-10-04T01:44:52Z TRACE himalaya_lib::backend::imap::backend] << get imap folders
[2022-10-04T01:44:52Z TRACE himalaya::domain::folder::handlers] folders: Folders([Folder { delim: "/", name: "Archive", desc: "HasNoChildren" }, Folder { delim: "/", name: "INBOX", desc: "HasNoChildren" }, Folder { delim: "/", name: "[Gmail]", desc: "HasChildren, NoSelect" }, Folder { delim: "/", name: "[Gmail]/Drafts", desc: "Drafts, HasNoChildren" }, Folder { delim: "/", name: "[Gmail]/Important", desc: "HasNoChildren, Important" }, Folder { delim: "/", name: "[Gmail]/Sent Mail", desc: "HasNoChildren, Sent" }, Folder { delim: "/", name: "[Gmail]/Spam", desc: "HasNoChildren, Junk" }, Folder { delim: "/", name: "[Gmail]/Starred", desc: "Flagged, HasNoChildren" }, Folder { delim: "/", name: "[Gmail]/Trash", desc: "HasNoChildren, Trash" }])

[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell widths: [5, 17, 24]
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table width: 51
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 4
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 14
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 4
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 21
DELIM │NAME              │DESC
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 7
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 11
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 13
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 12
/     │Archive           │HasNoChildren
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 13
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 13
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 12
/     │INBOX             │HasNoChildren
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 7
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 11
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 21
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 4
/     │[Gmail]           │HasChildren, NoSelect
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 14
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 4
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 21
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 4
/     │[Gmail]/Drafts    │Drafts, HasNoChildren
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 1
/     │[Gmail]/Important │HasNoChildren, Important
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 19
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 6
/     │[Gmail]/Sent Mail │HasNoChildren, Sent
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 12
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 6
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 19
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 6
/     │[Gmail]/Spam      │HasNoChildren, Junk
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 15
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 3
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 22
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 3
/     │[Gmail]/Starred   │Flagged, HasNoChildren
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 1
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 17
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 13
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] table is not overflowing or cell is not shrinkable
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell width: 24
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] cell unicode width: 20
[2022-10-04T01:44:52Z TRACE himalaya::ui::table::table] number of spaces added to value: 5
/     │[Gmail]/Trash     │HasNoChildren, Trash

I close due to inactivity, feel free to reopen if needed!

I have the same issue with versions 0.5.10 and 0.6.0(develop branch), can we reopen this issue or do we need to open another one?.

I transferred the logs to https://github.com/jonhoo/rust-imap/issues/220, let's see!

The problem has been identified: it comes from some unknown providers who use invalid character ] in custom IMAP flags. For example OIB-Seen-[Gmail]/Important. @edersohe any idea where those custom flags could come from? Anyway, it seems to be a common issue (see https://github.com/jonhoo/rust-imap/issues/220#issuecomment-1346584374), the character has finally been accepted as an exception in the parser (https://github.com/djc/tokio-imap/pull/144), I am just waiting for a new release from https://github.com/jonhoo/rust-imap/issues/220, then I will be able to deploy the new release #433. Thank you for you help!


orchestrating x11docker docker-compose?

I can see from other remarks that you are not a fan of docker-compose "it is just syntactic sugar around the docker run command".
But I need to find a way to orchestrate multiple instances of the same x11docker container and multiple interconnected containers to a x11docker container.
So far a simple xterm example works:
file docker-compose.yml
version: '3'
version: "2"
services:
 app:
   image: basic-xterm
  command: xterm
  volumes:
    - /tmp/.X11-unix:/tmp/.X11-unix
   environment:
     - DISPLAY=$DISPLAY
to run:
docker-compose up --scale app=5
I tried something similar for my x11docker container without success:
version: '3'
version: "2"
services:
  app:
   image: [my_x11docker_image_with_unity3d_app]
   volumes:
     - /tmp/.X11-unix:/tmp/.X11-unix
    environment:
   - DISPLAY=$DISPLAY
   - x11docker
How to load/wrap my app with x11docker?

I found this method - I wonder if it could be used for x11docker?:
https://github.com/eywalker/nvidia-docker-compose

Sorry, currently I cannot help here.
I am not familar with docker-compose and do not have the time yet to investigate.
I'll look at this again, but cannot help immediately.
A custom script that runs multiple x11docker instances could be a workaround.

i am just heading off to a meeting so won't be online for a while - but just to let you know I have had some success getting x11docker to work with docker-compose

ok - there doesn't seem to be any way to prefix a docker-compose script with x11docker
I have been looking into the x11docker bash script you provide on github - but it is so fully-featured it is difficult to work out how to extract just the --hostdisplay and --gpu functions
certainly you have done a better job than nvidia in isolating what is need to add these functions to a running container (I give up trying to get nvidia-docker working as a substitute for x11docker!)
but for my purposes it is crucial I can use docker-compose
do you have any idea how to isolate just the xserver (xorg) component of x11docker so I can set it as an environment variable in docker-compose for hardware acceleration
so far I can set the display environment explicitly for xterm but not for a unity3d game...

do you have any idea how to isolate just the xserver (xorg) component of x11docker so I can set it as an environment variable in docker-compose directly for hardware acceleration

That is a possible attempt.
You can use x11docker to get access credentials to Xorg:
$ x11docker --hostdisplay --gpu --showenv --quiet
 DISPLAY=:0.0 XAUTHORITY=/home/lauscher/.cache/x11docker/xonly-01435547051/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X0 XDG_RUNTIME_DIR=/run/user/1000

From this output you need DISPLAY and XAUTHORITY. Example:
read Xenv < <(x11docker --hostdisplay --gpu --showenv --quiet)
export $Xenv

In the dc-file:
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- /dev/dri:/dev/dri
environment:
- DISPLAY=$DISPLAY
- XAUTHORITY=$XAUTHORITY

You also need to share the GPU devices as volumes. /dev/dri like noted above and all files matching /dev/nvidia*.
You also need the nvidia driver in the image.
(Instead of sharing the GPU files and setting up the nvidia driver, you can use an nvidia-docker image as a base and somehow enable option --runtime=nvidia in the dc-file.)

ok this is what I get from x11docker --hostdisplay --gpu --showenv --quiet
DISPLAY=:1 XAUTHORITY=/home/twyeld3/.cache/x11docker/xonly-03297316377/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X1 XDG_RUNTIME_DIR=

You don't need this command directly. Instead, run the example with read Xenv that reads these variables into variable Xenv
Than export the variables with export $Xenv.
Than run docker compose.
I suggest one further change to the dc-file:
Instead of volume - /tmp/.X11-unix:/tmp/.X11-unix
use volume  - $XSOCKET:$XSOCKET

oh I see - cache the Xenv ready for d-c to run

You are running export $Xenv inside a script. The export is lost after the script terminates.
Run docker-compose within the script.

not sure how to do that - how to get the docker-compose up to execute the array of values after?
this executes the d-c file outside the script once it gets to docker-compose up and says "command not found" for each of the d-c variables
read Xenv < <(x11docker --hostdisplay --gpu --showenv --quiet)
export $Xenv
command docker-compose up
version: '2'
services:
  app:
    image: nvidia-base-game-app-xorg-gl-unity
    volumes:
#      - /tmp/.X11-unix:/tmp/.X11-unix
      - $XSOCKET:$XSOCKET
      - /dev/dri:/dev/dri
    environment:
#       - x11docker=--hostdisplay
#       - x11docker=--gpu
       - DISPLAY=$DISPLAY
       - XAUTHORITY=$XAUTHORITY

I doubt that your exec ... syntax is valid.
Try to create a regular d-c file and run docker-compose without exec.

yes - I am not sure about the syntax...

Try with a simpler image command, e.g. xterm.

tried that - weird thing is it shows that still caching the game image - even though I removed any dangling images...
new image using in the script: xterm-temp (just a basic xterm launcher)
but returns this message (for different/prior image):
root@twyeld3:# ./runtime_env3.sh
Starting yaml-testing_test_app_1 ... done
Attaching to yaml-testing_test_app_1
test_app_1  | Set current directory to /
test_app_1  | Found path: /../../home/app/b2c-w-graphs.x86_64
test_app_1  | Mono path[0] = '/../../home/app/b2c-w-graphs_Data/Managed'
test_app_1  | Mono config path = '/../../home/app/b2c-w-graphs_Data/MonoBleedingEdge/etc'
test_app_1  | Preloaded 'libgrpc_csharp_ext.x64.so'
test_app_1  | Unable to preload the following plugins:
test_app_1  | 	ScreenSelector.so
test_app_1  | Logging to /root/.config/unity3d/Unity Technologies/Unity Environment/Player.log

ok - figured out what was happening - it got to docker-compose up in the script and found a suitable docker-compose.yml file elsewhere in the directory and loaded that!
I have since moved the script out to a temp directory so it can'f find any rogue .yml files - but clearly syntax is still wrong - it doesn't step through the parameters for the d-c component...
how to execute the d-c component from inside the shell script?

how to execute the d-c component from inside the shell script?

I can't tell how to run docker-compose in a script. I don't have it myself. But that should be possible and is not an x11docker issue so far.

I have really painted myself into a corner - I left the orchestration stuff until last, thinking it would be pretty straightforward - didn't realise docker-compose doesn't really support prepending the running of a container with something like x11docker env bash script

Is it possible at all to run docker-compose in a script? I would assume it.

x11docker just provides you environment variables DISPLAY and XAUTHORITY and the path to the X socket that must be shared ($XSOCKET).
for sure it is possible to provide this to docker-compose.
But for handling docker-compose, rather ask someone who is familar with it.

ok - I think we are missing something - it appears to be running the d-c script component now (once I got it away from the other yml file)
here is the latest .sh
read Xenv < <(x11docker --hostdisplay --gpu --showenv --quiet)
export $Xenv
docker-compose up
"version: '2'
services:
  app3:
     image: xterm-temp
    volumes:
#      - /tmp/.X11-unix:/tmp/.X11-unix
      - $XSOCKET:$XSOCKET
      - /dev/dri:/dev/dri
    environment:
#       - x11docker=--hostdisplay
#       - x11docker=--gpu
       - DISPLAY=$DISPLAY
       - XAUTHORITY=$XAUTHORITY"

and her is the trace
root@twyeld3:/home/twyeld3/temp# ./runtime_env3.sh
ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

./runtime_env3.sh: line 16: version: '2'
services:
  app3:
     image: xterm-temp
    volumes:
#      - /tmp/.X11-unix:/tmp/.X11-unix
      - /tmp/.X11-unix/X1:/tmp/.X11-unix/X1
      - /dev/dri:/dev/dri
    environment:
#       - x11docker=--hostdisplay
#       - x11docker=--gpu
       - DISPLAY=:1
       - XAUTHORITY=/home/twyeld3/.cache/x11docker/xonly-40939285484/share/Xauthority.client: No such file or directory

$XSOCKET:$XSOCKET is being replaced and so is the path for $XAUTHORITY
it simply can't find Xauthority.client ?

It looks odd that you have the lines below docker-compose up within the script. What if you store them in an yml file?

but we tried that and doesn't that mean once the script ends the xenv values are no longer available?

In that case you ran docker-compose after running the script. Run it within the script.
Something like this:
read Xenv < <(x11docker --hostdisplay --gpu --showenv --quiet)
export $Xenv
docker-compose up -f xy.yml

xy.yml contains the parameters:

"version: '2'
services:
  app3:
     image: xterm-temp
    volumes:
#      - /tmp/.X11-unix:/tmp/.X11-unix
      - $XSOCKET:$XSOCKET
      - /dev/dri:/dev/dri
    environment:
#       - x11docker=--hostdisplay
#       - x11docker=--gpu
       - DISPLAY=$DISPLAY
       - XAUTHORITY=$XAUTHORITY"

yes - that's exactly what I did and it seems to be working - at least it launches a xterm - with coloured text.
next I will try to embed a game app to see if it will run...

ok - same as before no protocol specified
next I will try to log into the xterm-temp running container and copy a game app to it and try to run

this time I used the following dockerfile:
#xterm-temp-x11d-game

#FROM ubuntu:18.04
FROM x11docker/nvidia-base

RUN apt-get update && apt-get install -y xterm
RUN useradd -ms /bin/bash xterm
COPY dec2019-x86_64compile /home/app/
USER xterm
WORKDIR /home/xterm
CMD xterm

but I still get the same GL/GLX errors - shouldn't these be included in the x11docker/nvidia-base image base?

when I run x11docker --hostdisplay --gpu xterm-temp-x11d-game everything works fine
so, clearly something is being left behind in the exporting of the xenv ?

that returned a few bad GL and GLX errors...
maybe it can't access the nvidia drivers?

Now you need to share the device files /dev/dri and all of /dev/nvidia*.
docker run needs --device instead of --volume. I'm not sure how to share in an yml file.

ok - now I am getting desperate - I need something for my boss in the morning.
I do want to crack this nut but am simply running out of time now
I think I will just use a bash script to launch multiple sessions of the same container on different port numbers using:
x11docker --hostdisplay --gpu [my_image]
but the -p flag doesn't work for x11docker - so how to expose a port on start up?

I do want to crack this nut but am simply running out of time now

I think you're close already.
Add a devices: section (explained here):
devices:
      - /dev/dri:/dev/dri

and also add all files appearing with ls /dev/nvidia* in the devices: section.

but the -p flag doesn't work for x11docker - so how to expose a port on start up?

You can add custom docker run options. From x11docker --help:
  x11docker [OPTIONS] -- DOCKER_RUN_OPTIONS -- IMAGE [COMMAND [ARG1 ARG2 ...]]

Something like this should work:
 x11docker --hostdisplay --gpu -- -p 5000:5000 -- [image_name]

you  must get tired of people calling you a genius...!
here is the d-c file that worked:
version: '2'
services:
   app3:
     image: xterm-temp-x11d-game
     volumes:
       - $XSOCKET:$XSOCKET
     devices:
       - /dev/dri:/dev/dri
       - /dev/nvidia0
       - /dev/nvidiactl
       - /dev/nvidia-modeset
       - /dev/nvidia-uvm
       - /dev/nvidia-uvm-tools
       - /dev/vga_arbiter
     environment:
       - DISPLAY=$DISPLAY
       - XAUTHORITY=$XAUTHORITY

I just lifted the /dev/nvidia* info from a normal x11docker --hostdisplay etc run output

I need to sleep now - more in a few hours...

Great that it works now!

you must get tired of people calling you a genius...!

:smile: Thanks! Can't hear that often enough ... ;-)

Just a small note:
x11docker creates some cache files in ~/.cache/x11docker. Normally x11docker removes the cache files when it terminates. But in this case it runs in background and never terminates except on shutdown:
read Xenv < <(x11docker --hostdisplay --gpu --showenv --quiet)

This can lead to remaining cache files, getting more and more over time. This is not a great issue, but you should know for the full picture.
x11docker --cleanup removes dangling cache files and also terminates all currently running x11docker sessions.

I just see that your working example misses a volume entry for XAUTHORITY.
It should look like:
     volumes:
       - $XSOCKET:$XSOCKET
       - $XAUTHORITY:$XAUTHORITY

Without this entry your setup should fail. There is one exception: You are using --hostdisplay and your host X server has a user entry in xhost. That is often the case, but you should not rely on it. I recommend to add this entry.
I think we can close the ticket now.


Fixed issue entering text into Logic Edtior for C.4.18.0700

@aldefouw, I believe this fixes the issue with characters getting skipped when text is entered into the Logic Editor.

@mmcev106  - can you remind me where we left off on this one?
Did this pattern work to alleviate this particular issue without resorting to delays:
And I click on "" in the textarea field labeled "Enter logic for new rule"
And I clear field and enter "[integer]='1'" in the textarea field labeled "Logic Editor" in the dialog box

If so, I'd recommend we leave the code as is without the delay.

@aldefouw, yes, that plan sounds good to me.  It's on the TODO list. I had some REDCap production issues that took precedence today...

The changes in the comment above do not work consistently.  There is still an intermittent timing issue, likely due to the editor not being fully initialized yet.  Adding a 1 min wait time in this PR resolves it, but of course we should find a solution that doesn't involve waiting.  Adam D recommended trying this. It's on my TODO list.  I'll go ahead and close this PR.


RuntimeWarning: overflow encountered in exp

WARNING: could not find the metadata file results/finetune-xx-2021-05-08-09:45:06/dev_step-0/latest_checkpointed_iteration.txt
will not load any checkpoints and will start from random
Evaluating test: 0it [00:00, ?it/s]/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Evaluating test: 0it [00:00, ?it/s]
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Checkpoint from results/finetune-dial-large-xx-2021-05-08-09:45:06/dev_step-0: Loss: nan PPL: nan
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/opt/conda/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/opt/conda/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)

Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.

遇到了同样的问题，请问后来问题解决了吗？

好像是模型个数或者模型并行度设置的有问题


Support Client Feature flags

What changed?
Shipping WorkflowExecutionAlreadyCompletedError broke some customers' workflow logic since it was changing previous contract between their workflow and cadence server. With this change, they can enable the new feature only when they are ready.
Changes need to go in with the following orders

IDL changes: https://github.com/uber/cadence-idl/pull/73
Client-side changes: https://github.com/uber-go/cadence-client/pull/1103
Server-side changes: https://github.com/uber/cadence/pull/4257
Samples changes: https://github.com/uber-common/cadence-samples/pull/45

Why?
Without this change, shipping new features will break customer workflows.

How did you test it?
go test -run TestIntegrationSuite github.com/uber/cadence/host -testify.m TestSignalWorkflow$ -v
CLI + helloworkflow and cron workflow

Potential risks

Pull Request Test Coverage Report for Build 9a71f6f2-84ae-4413-a1ce-22b21b6c73a3

99 of 119 (83.19%)  changed or added relevant lines in 10 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 76.232%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/internal_task_handlers.go
7
8
87.5%

internal/internal_task_pollers.go
23
24
95.83%

internal/internal_worker.go
5
7
71.43%

internal/internal_utils.go
24
31
77.42%

internal/internal_workflow_client.go
17
26
65.38%

Totals

Change from base Build 63752eb2-8e9e-47d4-b589-dcb9838206a6:
0.03%

Covered Lines:
10366

Relevant Lines:
13598

💛  - Coveralls


Why only register providers for language:csharp scheme:file ?

Just had a question, I've been playing around with Omnisharp recently and have been spinning up virtual C# documents. I noticed that I wasn't getting any sort of C# support for virtual documents and I found out it was related to the file:schema document selector. Is there any reason why C# providers only attach to csharp files on disk?

I'm not even sure this has any effect: I tried the following and got intelliense.

Open VS Code in an empty directory
Use the terminal do execute dotnet new console in the directory but don't open any of the new .cs or .csproj files
Create a new .cs file and don't save it.
Start typing in that new file without saving
Extension gets activated and intellisense works.

Especially now that @akshita31 is investigating handling files without an associated project, I think we can drop this requirement.

Looks like the diagnostic adapter also makes this assumption:
https://github.com/OmniSharp/omnisharp-vscode/blob/16c554692882ce6929ab800253632a4d2d93e893/src/features/diagnosticsProvider.ts#L143
and
https://github.com/OmniSharp/omnisharp-vscode/blob/16c554692882ce6929ab800253632a4d2d93e893/src/features/diagnosticsProvider.ts#L175

@NTaylorMullen Can we close this now ?

@NTaylorMullen Can we close this now ?

Done!


[Map] DM-DG-1on1-OutOfGas

Besides author's prefix, this map is intended for 1 on 1 gamemode and should be moved to appropriate section. Also, no Unreal Archive EU mirror (the latter goes for every other DG map, excluding DM-DG-Waterfalls).

URL: https://unrealarchive.org/maps/unreal-tournament-3/deathmatch/D/dm-dg-1on1-outofgas_d7d93c71.html
Hash: d7d93c719deb55b4883de706cc1d2d6b4a6460c3
Current name: DM-DG-1on1-OutOfGas

Fixed game types, will re-mirror missing things.


[LiveSync] App should be able to restart itself

On every LiveSync the iOS app needs to be restarted. Currently, this was a CLI job - in order to restart the app, the CLI uses OS X specific services. Since we need to support app restart on Windows, too, the iOS runtime should be able to do this work.
The app restarting functionality can be implemented via web server and custom schemes (the way {N} LiveSync Plugin does it).

Implemented: https://github.com/NativeScript/ios-runtime/pull/747


[Please ignore] Fix Jira

@etdev Thanks for still using my bot! 😄

We :heart: the bot.  I'm still learning how to use Github though :sob: :sob: :sob:


brmodelo: init at 3.31

Description of changes
Add entity-relationship diagram tool https://github.com/chcandido/brModelo.
Part of https://github.com/NixOS/nixpkgs/issues/164019
Re-created after accidentally closing https://github.com/NixOS/nixpkgs/pull/161706
cc @SuperSandro2000
(i saw they changed the desktopItems API and updated the branch and the format to categories = [ "Development" "Education" "Database" "2DGraphics" "ComputerScience" "DataVisualization" "Engineering" "Java" ];)

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/483

@SuperSandro2000 oopsie done thanks!


Remove dtype warning for np.quantile

Currently, using quantile in x32 mode will give the warning UserWarning: Explicitly requested dtype float64 requested in asarray is not available. For example,
import jax.numpy as np
np.median(np.ones(3), 0)

This seems reasonable to me, and in the spirit of this TODO I see in dtypes.py.
@hawkinsp do you think this is reasonable?

The reason the float_ use exists (frequently in this file) is because we intend to change its definition to float32 in the future everywhere, even in -x64 mode, but haven't gotten around to doing it yet. I guess there's no harm in switching this particular one earlier than the others.


use http keep-alive

https://httplib2.readthedocs.io/en/latest/libhttplib2.html#
headers={"Connection":" keep-alive"})

This may help with struggling hardware?

I did try this a while back when I was trying to optimise the calls, it didn't make a difference for my hardware so I don't see any harm in trying this

I'm testing it out locally to see if it makes any difference for me. I do have a load balancer in front but I'd assume the load balancer is behaving in the same fashion but maybe not..we'll see what happens.
If not, we'll need to fall back more agressively or I'll need to wire things up in Node-RED to issue a reboot when it stops responding to the /ja endpoint.

this has gone in with #37


[Sema] Fix crash case in exhaustive check for Never value

Switch statement must have at least default even for enum without cases.
This code used to crash in SILGen.
func check(x: Never) -> Bool {
  switch x {
  }
}

CC/ @CodaFi

@swift-ci Please smoke test

@swift-ci Please smoke test

To me it seems reasonable to allow a switch to be empty when the subject type is uninhabited. Is it a reasonable fix to just have SILGen emit unreachable for an empty switch?

Yeah, this should emit an unreachable, or even fold the entire switch to an unreachable and avoid dispatching at all.

Superceded by #11015


Enable goreleaser to push to homebrew-buildkite repo

This build shows that the generated file looks correct so we can now enable pushing the file contents to the homebrew-buildkite repo which will make this available for users to install through Homebrew

Waiting on https://github.com/buildkite/homebrew-buildkite/pull/33


Upgrade alpine to 3.9

~Blocked by https://github.com/docker-library/official-images/pull/5387~

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@1772893). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master   #5909   +/-   ##
========================================
  Coverage          ?   38.7%
========================================
  Files             ?     330
  Lines             ?   48642
  Branches          ?       0
========================================
  Hits              ?   18825
  Misses            ?   27090
  Partials          ?    2727

Continue to review full report at Codecov.

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

Not blocked anymore, official docker golang image for alpine 3.9 has been built

Make lg-tm work


update page with new per user and per flow plans?

P1 and P2 are retiring; what about the new Flow plans please? Could this page please be updated to revise

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

ID: 0a7b1f84-92bd-7188-a7d0-359a930525dd
Version Independent ID: dd7d2d01-bdee-b656-ca63-e19305963d28
Content: Limits and configuration - Microsoft Flow
Content Source: flow-docs/limits-and-config.md
Service: flow
GitHub Login: @stepsic-microsoft-com
Microsoft Alias: stepsic

@robdawsoncranhillinsight Thanks for using Power Automate. This issue has been addressed.


Crash while training on COCO 2014

While training on COCO 2014 dataset, I'm running into the following crash:

both bg_inds.numel() and fg_inds.numel() is 0, which leads to a crash in keep_inds = torch.cat([fg_inds, bg_inds], 0)
I'm using pytorch on windows, running the program using the following parameters:
--imdb coco_2014_train+coco_2014_val --imdbval coco_2014_val --weight C:\path-to\pytorch-faster-rcnn\data\imagenet_weights\res50.pth
As you do in your training shell scripts, I added an extra element to the anchors:
cfg.ANCHOR_SCALES = [4, 8, 16, 32]
any ideas? Sounds like there should be an exit from the function if no background or foreground regions are found?

This happens in the middle of the training. The full python stack trace is here:

rpn_loss_box: 0.032325
loss_cls: 0.576470
loss_box: 0.398267
lr: 0.001000
speed: 0.460s / iter
iter: 21910 / 70000, total loss: 2.657034
rpn_loss_cls: 0.975540
rpn_loss_box: 0.671567
loss_cls: 0.625927
loss_box: 0.384000
lr: 0.001000
speed: 0.460s / iter

PYDEV DEBUGGER WARNING:
sys.settrace() should not be used when the debugger is being used.
This may cause the debugger to stop working correctly.
If this is needed, please check:
http://pydev.blogspot.com/2007/06/why-cant-pydev-debugger-work-with.html
to see how to restore the debug tracing back correctly.
Call Location:
File "C:\Anaconda3\lib\bdb.py", line 251, in set_trace
sys.settrace(self.trace_dispatch)

c:\telesens\dev\ml\pytorch\pytorch-faster-rcnn\lib\layer_utils\proposal_target_layer.py(142)_sample_rois()
-> keep_inds = torch.cat([fg_inds, bg_inds], 0)
(Pdb) dbcont
*** NameError: name 'dbcont' is not defined
(Pdb) continue

PYDEV DEBUGGER WARNING:
sys.settrace() should not be used when the debugger is being used.
This may cause the debugger to stop working correctly.
If this is needed, please check:
http://pydev.blogspot.com/2007/06/why-cant-pydev-debugger-work-with.html
to see how to restore the debug tracing back correctly.
Call Location:
File "C:\Anaconda3\lib\bdb.py", line 258, in set_continue
sys.settrace(None)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2.4\helpers\pydev\pydevd.py", line 1599, in
globals = debugger.run(setup['file'], None, None, is_module)
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2.4\helpers\pydev\pydevd.py", line 1026, in run
pydev_imports.execfile(file, globals, locals)  # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2.4\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools/trainval_net.py", line 139, in
max_iters=args.max_iters)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\model\train_val.py", line 348, in train_net
sw.train_model(max_iters)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\model\train_val.py", line 265, in train_model
self.net.train_step(blobs, self.optimizer)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\nets\network.py", line 452, in train_step
self.forward(blobs['data'], blobs['im_info'], blobs['gt_boxes'])
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\nets\network.py", line 394, in forward
rois, cls_prob, bbox_pred = self._predict()
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\nets\network.py", line 366, in _predict
rois = self._region_proposal(net_conv)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\nets\network.py", line 259, in _region_proposal
rois, _ = self._proposal_target_layer(rois, roi_scores)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\nets\network.py", line 157, in _proposal_target_layer
rois, roi_scores, self._gt_boxes, self._num_classes)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\layer_utils\proposal_target_layer.py", line 49, in proposal_target_layer
rois_per_image, _num_classes)
File "C:/Telesens/dev/ML/PyTorch/pytorch-faster-rcnn/tools..\lib\layer_utils\proposal_target_layer.py", line 142, in _sample_rois
keep_inds = torch.cat([fg_inds, bg_inds], 0)
File "C:\Anaconda3\lib\site-packages\torch\autograd\variable.py", line 88, in setitem
return SetItem.apply(self, key, value)
File "C:\Anaconda3\lib\site-packages\torch\autograd_functions\tensor.py", line 117, in forward
i._set_index(ctx.index, value)
RuntimeError: invalid argument 2: out of range at c:\tmp\pytorch\aten\src\thc\generic/THCTensor.c:23
Process finished with exit code 1

I just met the same issue as your case. When I ran the codes in my local mahcine everything is fine (after some modification to make the codes working without adding extra configs...) but this issue (Pdb) happens when I run my codes in remote server. I'm using PyTorch in Linux.

@ankur6ue Hi, just wondering did you solve this issue in your case? I've tried to change some cfgs but still not working.

I haven't yet, as I got looped into other stuff, but basically what is
happening is that neither foreground nor background regions are being found
for that image so it should simply be skipped (no loss computation or back
propagation should be performed). We'll need to add some if's in the code
to handle this case instead of breaking.
On Mon, Dec 18, 2017 at 12:19 PM YingweiZhou<EMAIL_ADDRESS>wrote:

@ankur6ue https://github.com/ankur6ue Hi, just wondering did you solve
this issue in your case? I've tried to change some cfgs but still not
working.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ruotianluo/pytorch-faster-rcnn/issues/48#issuecomment-352493912,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF8Z4xMDQCkTdbJe0X0ITEZegosJUuriks5tBp6fgaJpZM4Q3-yy
.

@ankur6ue It's weird that after thousands epochs of training, the model seems less likely to produce better bboxes with larger value of overlapping, since the direct reason for this issue is NO value is larger than the threshold which is 0.5 by default. Training the model for thousands of epochs is supposed to make the max_overlaps better not worse. The loss value through my trianing process is larger than the loss of my local machine as well.
fg_inds=(max_overlaps >= cfg.TRAIN.FG_THRESH).nonzero().view(-1)
bg_inds=((max_overlaps < cfg.TRAIN.BG_THRESH_HI) + (max_overlaps >= cfg.TRAIN.BG_THRESH_LO) == 2).nonzero().view(-1)
It's an even more weird and confusing thing that the codes runs fine in my local machine but when I move the codes to a remote workstation this issue keeps happening no matter how many times I tried to re-setup the codes/ dataset/ environments (using same version of PyTorch and TorchVision). I'll do a deep diging on the codes and try to make it working....

Did anyone solve this issue ?

hello, did u fix it？
I meet the same error and i tries it all day with no help.
If you know why it happens, please tell me, i will be very appretriate!

Did anyone fix it?


Progress indicator in tab not working properly

The progress indicator in the tab's title bar is not rendering properly. It always draws half indicator.

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #8910 for more discussion.
/dup #8910


Highlight toc section on scroll

I still want to zhuzh the spacing on the nav items. But the JS is good, I think.

lgtm; I agree the spacing needs tweaking
I was thinking it might be nice to highlight the whole h1 section and the h2 section the user is in, like this:

Then it might be easier to see where the selection is when scrolling the left panel if the selection was offscreen

lgtm; I agree the spacing needs tweaking
I was thinking it might be nice to highlight the whole h1 section and the h2 section the user is in, like this:

Then it might be easier to see where the selection is when scrolling the left panel if the selection was offscreen

I tried this and wasn't a fan of the effect. I also tried scrolling the current section onto the screen and it was pretty jerky. I think I'm good with how it is here.

This is no longer WIP; does it look good to you @cajunluke?

lgtm


Orchestrator "Unable to determine cluster name" after deploying cluster, which was deleted.

How problems looks like
right after problem was discovered:
orchestrator showed this error
ERROR Unable to determine cluster name. clusterHint=%clusterName%

After few days orchestrator show only this message:
[martini] Started GET /api/cluster/%clusterName% for <IP_ADDRESS>:53046
[martini] Completed 500 Internal Server Error in 154.335294ms

How we got a problem
Drain with specific options lead to problem with Termination of mysql node pods , which lead to Ready: False status of mysql cluster.
For example if use such options for dain command - kubectl drain  --ignore-daemonsets --grace-period 300--timeout 300s--delete-local-data test-k8s-worker-3  drain will failed and mysql pod will be terminated right after drain has failed. Such behavior can lead to problem with mysql cluster, and mysql cluster can get Ready: False status.
What we did to make it work again.
To make it work I tried few things:

I tried scale mysql cluster from 2 nodes to 1. This didn't helped.
I tried scale mysql cluster from 1 nodes to 0. Then scale to 1 node again. This didn't helped.
Then I deleted whole mysql cluster and redployed him. And this also didn't helped.

After all those tries mysql cluster was not accessable for connection.
And most importand after I did redeploy of mysql cluster I got error whic was described in first section.
My workaround
I have deployed cluster with different name and make my service work again.
Mysql cluster with a different name was able to get Ready and I was able to restore BD.
Environment
Kubernetes 1.14.6
Orchestrator mysql-operator-orchestrator:latest
Operator quay.io/presslabs/mysql-operator:0.3.8
Mysql percona@sha256:713c1817615b333b17d0fbd252b0ccc53c48a665d4cfcb42178167435a957322
Question
How to resolve problem and get working mysql cluster with old name.
FYI
Secrets with passwords didn't deleted while I redploying of the mysql cluster

Hi @DeamonMV thank you for reporting this. Can you please estimate what was the time between deleting the cluster and recreating it again? Because Orchestrator deletes nodes when they are inactive for more than 1 hour, see this option.
We will try to reproduce it and find the root cause. Thank you!

Hello

Can you please estimate what was the time between deleting the cluster and recreating it again?

About one minute.
I've already did couple of times such procedure, and all was fine.

Hi @AMecea
I faced a similar problem:
Sporadically see ERROR “Unable to determine cluster name. clusterHint=XXXX“, However, this error goes away automatically after a couple of minutes usually, but until it's gone, switchovers fail for the chain because we use orchestrator as the source of truth for the chain's primary.
Could you please help me to find the root cause and fix it?
Version: 3.2.6-11


Remove init? from mappable protocol

ObjectMapper is super useful; thanks for all your hard work!
If I'm reading this change correctly, it seems like we've lost the ability to define let variables as well as the ability to specify non-optional (or implicitly-unwrapped optional) properties.
Seems like the former was useful for specifying proper immutability constraints (i.e. this data is read from the server, but code should not be allowed to change it) and the latter was useful for validating JSON (i.e. "this JSON is invalid", "this JSON is valid, but with incorrect keys", and "this JSON is valid, with correct keys, but the keys have the wrong types").
Both of those seem like useful and worthy things to me; I'm interested to know if the UnsafeMutablePointer technique that as being used was somehow bunk, or if there were other reasons for the change?

Oh! I just saw that others have been discussing the same question over in #163. Ha!

You can still specify implicitly unwrapped optionals.
Support for let variables was never official and required quite a bit of extra code to achieve. This is what is no longer supported based on my latest change.
But as you see in #163 I am considering including a Map paramater in the newInstance func which would return the ability to validate based on the JSON.

@tristanhimmelman

Support for let variables was never official and required quite a bit of extra code to achieve.

I'd be curious to know how to implement let support in my app, would you mind elaborating or linking to a code snippet?

@ldiqual please see this thread #156

Hmmm, I see. Thanks @tristanhimmelman !

@ldiqual, no problem. The line number I referenced in that thread is actually no longer valid... See following link for let implementation:
https://github.com/Hearst-DD/ObjectMapper/blob/master/ObjectMapperTests/ObjectMapperTests.swift#L725


Priority Queue | Python

Title - Adding Priority Queue using Python
what will change - Priority Queue is a special type of data structure in which items can be inserted or deleted based on the priority. Priority Queue will be added in the data structures, implemented on python.
Type of Issue -Priority Queue missing.
Please add/delete options that are not relevant.

[x] Adding New Code
[x] Improving Code
[x] Improving Documentation
[x] Bug Fix

Programming Language

[x] Python

Self Check

Ask for issue assignment before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Happy Coding,
Please assign this to me. Thank You :)

Please assign this to me. Thank You :)

Could you assign this task yo me?


Fixed Managed DNS issue: added same value for element reference and m…

Fix for Error in community/cloud-foundation/templates/dns_managed_zone/dns_managed_zone.py

I signed it!

https://github.com/GoogleCloudPlatform/deploymentmanager-samples/issues/375

I signed it!


How to change the trips linewidth. the strokeWidth  didn't work.

Has there been an update and is there a simple method to adjust strokeWidth - if so, how ?

@Wwangchen as you seem to be aware this is a known issue, see #725.
It is on our radar but no update yet, unfortunately.

@ibgreen Thank you very much.And how could I do ,if I want to change the tripsLayer width.  I don't
know where  to code .

@Wwangchen I'm facing the same issue. I think you can start from here: https://github.com/uber/deck.gl/pull/352/files.
Basically, we will need to update the model to use TRIANGLE_STRIP and update trips-layer-vertex.glsl.js to have something similar like this.
https://github.com/uber/deck.gl/blob/9441791f0f5ca8c33cb947eef0458d63e67f724e/src/layers/core/line-layer/line-layer-vertex.glsl
But with the TRIANGLE_STRIP, we need to know the start and end points of a line. And I'm not sure how can we do it with the path data. May be split it into lines instead of return whole path from getPath method.


The getConfig Method from the Guzzle ClientInterface will be removed in 8

Hi!
Do you already have some migrations plans for the getConfig method which will be removed in Guzzle 8?
It's already marked as deprecated and as far as I have followed the messages from the guzzle team there won't be an alternative to access the "real" config of the client..
Thanks &
Regards Alex

This repo only works with Guzzle 5 ( #19 )

Thanks for the info :)


feat: improve Cache interface

Description

implement new methods on InMemory and Hazelcast cache implementation

Additional context

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 4.8.0-improve-cache-api-SNAPSHOT
download it from Artifactory here

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

4.8.0
GitHub release

Your semantic-release bot :package::rocket:


Develop

Codecov Report

:exclamation: No coverage uploaded for pull request base (unittest-refactor@8460577). Click here to learn what that means.
The diff coverage is n/a.

@@                 Coverage Diff                  @@
##             unittest-refactor      #35   +/-   ##
====================================================
  Coverage                     ?   39.47%
====================================================
  Files                        ?       55
  Lines                        ?     2470
  Branches                     ?        0
====================================================
  Hits                         ?      975
  Misses                       ?     1495
  Partials                     ?        0

Continue to review full report at Codecov.

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


EditorConfig support

Have you thought about adding .editorconfig file to project? for me, this projects has lack of standard how code should be written. editor config would help to form code structure.

Hi, I seldom used .editorconfig in my project because I mantained them alone most of times🤣, but it is a great chance to start using .editorconfig, could you add one to NanoRabbit? Thx :)

Sure, I'll start working on it, I'll need to identify coding standards that's used in project and then we'll add it step by step

Hi, I just added .editorconfig for NanoRabbit, plz check if any configs are missed.

it looks good to me, couple of configs can be changed but I will take a good look during coding.


Class does not comply with psr-0 autoloading standard. Skipping when generating autoload.

Hi, I'm using this library in my Symfony project. Today i went and try to update my dependencies through composer update and the composer come out lots of yellow output complain about the PSR-0 as below:
Class Google_Service_Adsense located in ./vendor/google/apiclient-services/src/Google/Service/AdSense.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Header located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Header.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListSavedReportsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListSavedReportsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Site located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Site.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListAdUnitsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListAdUnitsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListUrlChannelsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListUrlChannelsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ReportResult located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ReportResult.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListAccountsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListAccountsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListPaymentsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListPaymentsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ContentAdsSettings located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ContentAdsSettings.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_TimeZone located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/TimeZone.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListChildAccountsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListChildAccountsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListAdClientsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListAdClientsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_HttpBody located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/HttpBody.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_AdUnitAdCode located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/AdUnitAdCode.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Cell located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Cell.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListSitesResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListSitesResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListLinkedAdUnitsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListLinkedAdUnitsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Date located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Date.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListLinkedCustomChannelsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListLinkedCustomChannelsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListAlertsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListAlertsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Row located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Row.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Resource_AccountsAdclientsAdunits located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Resource/AccountsAdclientsAdunits.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Resource_AccountsAdclientsCustomchannels located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Resource/AccountsAdclientsCustomchannels.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Resource_AccountsSites located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Resource/AccountsSites.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_Resource_AccountsAdclientsUrlchannels located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/Resource/AccountsAdclientsUrlchannels.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_ListCustomChannelsResponse located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/ListCustomChannelsResponse.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Adsense_AdClientAdCode located in ./vendor/google/apiclient-services/src/Google/Service/AdSense/AdClientAdCode.php does not comply with psr-0 autoloading standard. Skipping.
Class Google_Service_Compute_HTTPSHealthCheck located in ./vendor/google/apiclient-services/src/Google/Service/Compute/HttpsHealthCheck.php does not comply with psr-0 autoloading standard. Skipping.

Will these lead to an issue? Thanks.

I have the same problem. It seems we're still able to use the classes but of course it'd be nicer to have everything in PSR-0/4.

Same issue for us with Laravel 8.

Same problem. It seems that the issue relates to apiclient-services since 2.9.1. Reverting to 2.9.0 would likley be a temporary fix untill this is resolved.
There is a related issue in google-api-php-client-services
https://github.com/googleapis/google-api-php-client-services/issues/331

Just to add to the above.
I have manually added the previous version of  google/apiclient-services which is v0.169.0 which has solved the issue for now
"google/apiclient": "2.9.1",
**"google/apiclient-services" : "v0.169.0"**

It looks like there's an issue in our generation pipeline which caused the casing of some class names to be off, I'm looking in to what happened.

I've found the root of the issue with AdSense. The latest v2 discovery document does not include a canonicalName, whereas v1.4 does. This field is used to determine casing, and without it the classes are being generated differently than before. Still trying to understand what happened with the compute class.

This should be resolved now as of https://github.com/googleapis/google-api-php-client-services/releases/tag/v0.172.0, please let me know if you find otherwise.


new functionin  location: find_all_device()

Codecov Report

Merging #89 (95a43bb) into master (c5645b1) will decrease coverage by 0.37%.
The diff coverage is 20.00%.

@@            Coverage Diff             @@
##           master      #89      +/-   ##
==========================================
- Coverage   55.80%   55.43%   -0.38%
==========================================
  Files          13       13
  Lines         448      451       +3
  Branches       60       61       +1
==========================================
  Hits          250      250
- Misses        191      194       +3
  Partials        7        7

Impacted Files
Coverage Δ

src/gardena/location.py
65.21% <20.00%> (-8.47%)
:arrow_down:

src/gardena/devices/device_factory.py
40.00% <0.00%> (-2.86%)
:arrow_down:

Continue to review full report at Codecov.

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


The third part of the article mentions style_loss, content_loss, contrastive_loss, distillation_loss. I can understand them on a mathematical level, but I'm not very clear on how to implement them in code. Can I see how you guys do it?

Thanks for your interest to our work.

The style loss and content loss are utilized to achieve domain inversion. You can refer to them on 'tools/domain_inversion.py' part with loss_content and loss_r_feature.
The contrastive loss and distillation loss is applied for domain adaptation. You can refer to them on 'tools/train_adapt.py'.


Delete the locally persisted file log when a user opts out

As discussed with P Counsel

Needs to be answered: do we also delete the CLIENT_ID file when they have opted out? Does someone that opts back in get treated as a new user or the same?

Needs to be answered: do we also delete the CLIENT_ID file when they have opted out? Does someone that opts back in get treated as a new user or the same?

Received an answer on this: we will need to delete the CLIENT_ID file once a user has decided to opt out, issue for this task https://github.com/dart-lang/tools/issues/84

Closing this because https://github.com/dart-lang/tools/issues/84 covers the client id and other relevant files that need to be cleared on opt out


fetch does not work with local urls on Now

The following is the code...
In .src/routes/index.svelte

Great success! - {title}

created .src/routes/data.js file and have the following
const superagent = require('superagent');
// GET /data
export function get(req, res, next) {
  superagent.get("https://external/api/json/get/path/xyz")
    .type("json")
    .accept("json")
    .query(req.query)
    .pipe(res);
}

{title} in the above code only works when we click on other tabs and back but not when we refresh the index.svelte page
The same code works fine locally ( localhost ) but not when we deploy to now ( production )

Thanks! to @thgh for all the support and help. His initial suggestion was to fetch external url directly
In .src/routes/index.svelte
const res = await this.fetch("https://external/api/json/get/path/xyz");
instead of using local
const res = await this.fetch("/data");

I thought of another workaround :-p

This will run a function in a function, not really efficient but it might work.

Thanks! the direct fetch( external URL ) worked, will try this too :)

Thanks for the tips! You can also use host property in preload function so you don't need to hardcode domain URL. This is the workaround I have arrived to:
  export function preload({host, params, query}) {
    let baseUrl = ''
    if (!process.browser && process.env.NOW_REGION) {
      baseUrl = `https://${host}`
    }

    return this.fetch(`${baseUrl}/data`)
    // ...

Fix has been released in v0.39.0! Thanks @fpaboim


Add support to environment check

Sometimes a security vulnerability affects only windows or macOS and in order to make this package consistent, a check against the environment should be performed.
Currently, the Node.js Security DB doesn't provide information about the CVE environment, so the steps should be:

Update the Security DB to provide this information
Update this package

Happy to help if you need an extra hand 😉

Next steps:

[ ] Add affectedEnvironments to the Nodejs Core Vuln model. See: https://github.com/nodejs/security-wg/pull/912
[ ] Update the vuln DB to include for the core reported vulnerabilities
[ ] Add business logic to check against the os.platform()


Adds remirror functionality

I literally learnt go just to fix this shit.

worth noting that I moved labeling the PR to a webhook and added a force push to the script to remirror properly

hurry up you dumbass :b:ippie maintainers

I don't do anything for Hippie anymore or play SS13 but I've asked them to add me back to the repo so I can review and merge this

oh wow someone answered, okay I'll address the reviews when I get some time

@MCterra10 why you close

@Neo1w maintainer wasn't responding

If you want the code changes, just fork from austation's PR Mirror repo.

fair