Font support for Oh-My-Zsh due to imperfect rendering

Will Alacritty support other fonts too or just the monospace font?
Not supported:

Ubuntu Mono
FontAwesome
PowerlineSymbols

Alacritty is not compatible with Oh My Zsh (zsh framework) as you can see on the image below, comparing Alacritty terminal and Gnome terminal (default Ubuntu 18.04 terminal).

There is a kind of solution (workaround) in issue number #1560 about how to fix this problem visualized above, but the result is not satisfying (see the images in this comment from issue #1560).
Related issues:

#2055
#1560

Alacritty supports all monospace fonts (monospace is a type of fonts (e.g. Ubuntu Mono), on linux it's also a common name for your default monospace font). The problem you're observing here is that you pickup your powerline symbols from fonts you don't want during fallback, which you can fix by writing fallback rules in fontconfig file. We have an rfc #957 to provide builtin font fallback mechanism, but for now you have to setup font fallback in a system.
Do you have problems on how to setup fontconfig to meet your needs or what? I can create a fontconfig file for you or give some recommendations on how to handle such stuff, just let me know on what you want and what limitations in solving this problem you have.

Excuse my late answer please.
I was told that I am able to fix that problem by explicitly setting font priorities.
By "font fallback rulse in fontconfig" you mean to configure the ~/.config/alacritty/alacritty.yml (font section)?
I tried to configure the font in my ~/.config/alacritty/alacritty.yml alacritty configuration file. I published this configuration file here (in another issue comment). Did I do something wrong?
As you can see in the image in comment of issue #1560 (Alacritty terminal (image)), I fixed the unrecognized font characters, but the displayed result is not the best (e.g. overlapping characters, large indentation).
Thank you for your helping hand, could you, please, somehow to share the proper configuration file, which would solve this imperfect rendering? (Share it please here, as I see others are also interested in that topic.)
The problem is that the look is not the same as in the gnome terminal. A different appearance may be, I am not sure, due to improperly configured indentation, offset and other font character attributes. I have no limitation, I just want the alacritty terminal to look the same as the gnome terminal and start using it. As I said before, is it possible for you to create a specific configuration file (~/.config/alacritty/alacritty.yml) for this case for us? I will share my enviroment properties.
Thank you.
Enviroment

Ubuntu 18.04.3 (bionic) LTS
alacritty 0.3.3
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
oh-my-zsh commit 40fafe0f59371d1a9d83b83c614acfd1d740aabb

By "font fallback rulse in fontconfig" you mean to configure the ~/.config/alacritty/alacritty.yml (font section)?

No, I'm about .config/fontconfig/fonts.conf . So I'll post something in a moment.

I'd just like to clarify that you can fix the character fallback in the fontconfig configuration, however you cannot make proportional fonts work in Alacritty, since they're not supported.

So you can try something like this for your fontconfig this is super simple, but should work. (place it in $HOME/.config/fontconfig/fonts.conf)
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <alias>
    <family>DejaVu Sans Mono</family>
    <prefer>
        <family>DejaVu Sans Mono</family>
        <family>PowerlineSymbols</family>
        <family>FontAwesome</family>
    </prefer>
    <default><family>monospace</family></default>
  </alias>
</fontconfig>

In case there is a fonts.conf add this alias block in it. You can test fontcofnig fallback with fc-match -s 'DejaVu Sans Mono' for me the output is the first lines of output are, which matches rules I've defined. I don't know, what font provides these symbols in ubuntu, but fc-list | grep -i powerline should provide a clue, so place it's name instead of PowerlineSymbols in case they differ from what I've written here.
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
DejaVuSansMono-Bold.ttf: "DejaVu Sans Mono" "Bold"
DejaVuSansMono-Oblique.ttf: "DejaVu Sans Mono" "Oblique"
PowerlineSymbols.otf: "PowerlineSymbols" "Medium"
fontawesome-regular.ttf: "FontAwesome" "Regular"

You can change DajaVu Sans Mono to whatever font you like here just use the same font in alacritty.yml. I'm not super expert in writing this kind of xmls, but at least you've got an idea.
However there is an alternative. You can use fonts, which have tons of symbols, so no fallback will occur most of the time (e.g. nerd fonts). In this case you can just grab what ever font you like from there github release, unpack, move to $HOME/.local/share/fonts, run fc-cache and then just use it in alacritty.yml. The nerd font names differs from original ones, but you can easily find them with fc-list | grep -i nerd.

I have set the powerline fonts as it is written here (the instructions are same as yours):
https://powerline.readthedocs.io/en/latest/installation/linux.html#fontconfig
One more thing, I have changed the default font value from monospace to Ubuntu Mono in the ~/.config/alacritty/alacritty.yml, which works properly.
I have added the powerline font file PowerlineSymbols.otf to the ~/.local/share/fonts/ directory and, font fallback file 10-powerline-symbols.conf to the ~/.config/fontconfig/conf.d/. The font cache was also successfully updated.
The font fallback file ~/.config/fontconfig/conf.d/10-powerline-symbols.conf is a valid font fallback file for this purpose. I wrote my own custom font fallback file based on your suggestion, but it is useless besides that. This powerline configuration file strictly specifies the font fallback for Ubuntu Mono (and also others) that I use in my alacritty.yml configuration file. I have truly no idea why the fonts in Alacritty do not working. Do you really think that the problem will be in my font fallback configuration?
By the way, this font fallback method does work smoothly on other terminals.
~/.config/alacritty/alacritty.yml

# Configuration for Alacritty, the GPU enhanced terminal emulator.

# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
  # TERM variable
  #
  # This value is used to set the `$TERM` environment variable for
  # each instance of Alacritty. If it is not present, alacritty will
  # check the local terminfo database and use `alacritty` if it is
  # available, otherwise `xterm-256color` is used.
  #TERM: xterm-256color

window:
  # Window dimensions (changes require restart)
  #
  # Specified in number of columns/lines, not pixels.
  # If both are `0`, this setting is ignored.
  dimensions:
    columns: 0
    lines: 0

  # Window position (changes require restart)
  #
  # Specified in number of pixels.
  # If the position is not set, the window manager will handle the placement.
  #position:
  #  x: 0
  #  y: 0

  # Window padding (changes require restart)
  #
  # Blank space added around the window in pixels. This padding is scaled
  # by DPI and the specified value is always added at both opposing sides.
  padding:
    x: 0
    y: 0

  # Spread additional padding evenly around the terminal content.
  dynamic_padding: false

  # Window decorations
  #
  # Values for `decorations`:
  #     - full: Borders and title bar
  #     - none: Neither borders nor title bar
  #
  # Values for `decorations` (macOS only):
  #     - transparent: Title bar, transparent background and title bar buttons
  #     - buttonless: Title bar, transparent background, but no title bar buttons
  decorations: full

  # Startup Mode (changes require restart)
  #
  # Values for `startup_mode`:
  #   - Windowed
  #   - Maximized
  #   - Fullscreen
  #
  # Values for `startup_mode` (macOS only):
  #   - SimpleFullscreen
  startup_mode: Windowed

  # Window title
  #title: Alacritty

  # Window class (Linux only):
  #class: Alacritty

scrolling:
  # Maximum number of lines in the scrollback buffer.
  # Specifying '0' will disable scrolling.
  history: 100000

  # Number of lines the viewport will move for every line scrolled when
  # scrollback is enabled (history > 0).
  multiplier: 3

  # Faux Scrolling
  #
  # The `faux_multiplier` setting controls the number of lines the terminal
  # should scroll when the alternate screen buffer is active. This is used
  # to allow mouse scrolling for applications like `man`.
  #
  # Specifying `0` will disable faux scrolling.
  faux_multiplier: 3

  # Scroll to the bottom when new text is written to the terminal.
  auto_scroll: false

# Spaces per Tab (changes require restart)
#
# This setting defines the width of a tab in cells.
#
# Some applications, like Emacs, rely on knowing about the width of a tab.
# To prevent unexpected behavior in these applications, it's also required to
# change the `it` value in terminfo when altering this setting.
tabspaces: 4

# Font configuration (changes require restart)
font:
  # Normal (roman) font face
  normal:
    # Font family
    #
    # Default:
    #   - (macOS) Menlo
    #   - (Linux) monospace
    #   - (Windows) Consolas
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Regular

    family: 'Ubuntu Mono'
    style: Regular

  # Bold font face
  bold:
    # Font family
    #
    # If the bold family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Bold

    family: 'Ubuntu Mono'
    style: Bold

  # Italic font face
  italic:
    # Font family
    #
    # If the italic family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Italic

    family: 'Ubuntu Mono'
    style: Italic

  # Point size
  size: 13.0

  # Offset is the extra space around each character. `offset.y` can be thought of
  # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
  offset:
    x: 0
    y: 0

  # Glyph offset determines the locations of the glyphs within their cells with
  # the default being at the bottom. Increasing `x` moves the glyph to the right,
  # increasing `y` moves the glyph upwards.
  glyph_offset:
    x: 0
    y: 0

  # Thin stroke font rendering (macOS only)
  #
  # Thin strokes are suitable for retina displays, but for non-retina screens
  # it is recommended to set `use_thin_strokes` to `false`
  #
  # macOS >= 10.14.x:
  #
  # If the font quality on non-retina display looks bad then set
  # `use_thin_strokes` to `true` and enable font smoothing by running the
  # following command:
  #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
  #
  # This is a global setting and will require a log out or restart to take
  # effect.
  use_thin_strokes: true

# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true

# Colors (Tomorrow Night Bright)
colors:
  # Default colors
  primary:
    background: '0x000000'
    foreground: '0xeaeaea'

    # Bright and dim foreground colors
    #
    # The dimmed foreground color is calculated automatically if it is not present.
    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
    # is `false`, the normal foreground color will be used.
    #dim_foreground: '0x9a9a9a'
    #bright_foreground: '0xffffff'

  # Cursor colors
  #
  # Colors which should be used to draw the terminal cursor. If these are unset,
  # the cursor color will be the inverse of the cell color.
  #cursor:
  #  text: '0x000000'
  #  cursor: '0xffffff'

  # Selection colors
  #
  # Colors which should be used to draw the selection area. If selection
  # background is unset, selection color will be the inverse of the cell colors.
  # If only text is unset the cell text color will remain the same.
  #selection:
  #  text: '0xeaeaea'
  #  background: '0x404040'

  # Normal colors
  normal:
    black:   '0x000000'
    red:     '0xd54e53'
    green:   '0xb9ca4a'
    yellow:  '0xe6c547'
    blue:    '0x7aa6da'
    magenta: '0xc397d8'
    cyan:    '0x70c0ba'
    white:   '0xeaeaea'

  # Bright colors
  bright:
    black:   '0x666666'
    red:     '0xff3334'
    green:   '0x9ec400'
    yellow:  '0xe7c547'
    blue:    '0x7aa6da'
    magenta: '0xb77ee0'
    cyan:    '0x54ced6'
    white:   '0xffffff'

  # Dim colors
  #
  # If the dim colors are not set, they will be calculated automatically based
  # on the `normal` colors.
  #dim:
  #  black:   '0x000000'
  #  red:     '0x8c3336'
  #  green:   '0x7a8530'
  #  yellow:  '0x97822e'
  #  blue:    '0x506d8f'
  #  magenta: '0x80638e'
  #  cyan:    '0x497e7a'
  #  white:   '0x9a9a9a'

  # Indexed Colors
  #
  # The indexed colors include all colors from 16 to 256.
  # When these are not set, they're filled with sensible defaults.
  #
  # Example:
  #   `- { index: 16, color: '0xff00ff' }`
  #
  indexed_colors: []

# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
#   - Ease
#   - EaseOut
#   - EaseOutSine
#   - EaseOutQuad
#   - EaseOutCubic
#   - EaseOutQuart
#   - EaseOutQuint
#   - EaseOutExpo
#   - EaseOutCirc
#   - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
visual_bell:
  animation: EaseOutExpo
  duration: 0
  color: '0xffffff'

# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 1.0

# Mouse bindings
#
# Available fields:
#   - mouse
#   - action
#   - mods (optional)
#
# Values for `mouse`:
#   - Middle
#   - Left
#   - Right
#   - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
  - { mouse: Middle, action: PasteSelection }

mouse:
  # Click settings
  #
  # The `double_click` and `triple_click` settings control the time
  # alacritty should wait for accepting multiple clicks as one double
  # or triple click.
  double_click: { threshold: 300 }
  triple_click: { threshold: 300 }

  # If this is `true`, the cursor is temporarily hidden when typing.
  hide_when_typing: false

  url:
    # URL launcher
    #
    # This program is executed when clicking on a text which is recognized as a URL.
    # The URL is always added to the command as the last parameter.
    #
    # When set to `None`, URL launching will be disabled completely.
    #
    # Default:
    #   - (macOS) open
    #   - (Linux) xdg-open
    #   - (Windows) explorer
    #launcher:
    #  program: xdg-open
    #  args: []

    # URL modifiers
    #
    # These are the modifiers that need to be held down for opening URLs when clicking
    # on them. The available modifiers are documented in the key binding section.
    modifiers: None

selection:
  semantic_escape_chars: ",│`|:\"' ()[]{}<>"

  # When set to `true`, selected text will be copied to the primary clipboard.
  save_to_clipboard: false

# Allow terminal applications to change Alacritty's window title.
dynamic_title: true

cursor:
  # Cursor style
  #
  # Values for `style`:
  #   - ▇ Block
  #   - _ Underline
  #   - | Beam
  style: Block

  # If this is `true`, the cursor will be rendered as a hollow box when the
  # window is not focused.
  unfocused_hollow: true

# Live config reload (changes require restart)
live_config_reload: true

# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
# Default:
#   - (macOS) /bin/bash --login
#   - (Linux) user login shell
#   - (Windows) powershell
#shell:
#  program: /bin/bash
#  args:
#    - --login

# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
working_directory: None

# Windows 10 ConPTY backend (Windows only)
#
# This will enable better color support and may resolve other issues,
# however this API and its implementation is still young and so is
# disabled by default, as stability may not be as good as the winpty
# backend.
#
# Alacritty will fall back to the WinPTY automatically if the ConPTY
# backend cannot be initialized.
enable_experimental_conpty_backend: false

# Send ESC (\x1b) before characters when alt is pressed.
alt_send_esc: true

debug:
  # Display the time it takes to redraw each frame.
  render_timer: false

  # Keep the log file after quitting Alacritty.
  persistent_logging: false

  # Log level
  #
  # Values for `log_level`:
  #   - None
  #   - Error
  #   - Warn
  #   - Info
  #   - Debug
  #   - Trace
  log_level: Warn

  # Print all received window events.
  print_events: false

  # Record all characters and escape sequences as test data.
  ref_test: false

# Key bindings
#
# Key bindings are specified as a list of objects. Each binding will specify a
# key and modifiers required to trigger it, terminal modes where the binding is
# applicable, and what should be done when the key binding fires. It can either
# send a byte sequence to the running application (`chars`), execute a
# predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Bindings are always filled by default, but will be replaced when a new binding
# with the same triggers is defined. To unset a default binding, it can be
# mapped to the `None` action.
#
# Example:
#   `- { key: V, mods: Control|Shift, action: Paste }`
#
# Available fields:
#   - key
#   - mods (optional)
#   - chars | action | command (exactly one required)
#   - mode (optional)
#
# Values for `key`:
#   - `A` -> `Z`
#   - `F1` -> `F12`
#   - `Key1` -> `Key0`
#
#   A full list with available key codes can be found here:
#   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
#
#   Instead of using the name of the keys, the `key` field also supports using
#   the scancode of the desired key. Scancodes have to be specified as a
#   decimal number.
#   This command will allow you to display the hex scancodes for certain keys:
#     `showkey --scancodes`
#
# Values for `mods`:
#   - Command
#   - Control
#   - Option
#   - Super
#   - Shift
#   - Alt
#
#   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
#   Whitespace and capitalization is relevant and must match the example.
#
# Values for `chars`:
#   The `chars` field writes the specified string to the terminal. This makes
#   it possible to pass escape sequences.
#   To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
#   the command `showkey -a` outside of tmux.
#   Note that applications use terminfo to map escape sequences back to
#   keys. It is therefore required to update the terminfo when
#   changing an escape sequence.
#
# Values for `action`:
#   - Paste
#   - PasteSelection
#   - Copy
#   - IncreaseFontSize
#   - DecreaseFontSize
#   - ResetFontSize
#   - ScrollPageUp
#   - ScrollPageDown
#   - ScrollLineUp
#   - ScrollLineDown
#   - ScrollToTop
#   - ScrollToBottom
#   - ClearHistory
#   - Hide
#   - Quit
#   - ClearLogNotice
#   - SpawnNewInstance
#   - ToggleFullscreen
#   - None
#
# Values for `action` (macOS only):
#   - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
#
# Values for `command`:
#   The `command` field must be a map containing a `program` string and
#   an `args` array of command line parameter strings.
#
#   Example:
#       `command: { program: "alacritty", args: ["-e", "vttest"] }`
#
# Values for `mode`:
#   - ~AppCursor
#   - AppCursor
#   - ~AppKeypad
#   - AppKeypad
key_bindings:
  # (Windows/Linux only)
  #- { key: V,        mods: Control|Shift, action: Paste            }
  #- { key: C,        mods: Control|Shift, action: Copy             }
  #- { key: Insert,   mods: Shift,         action: PasteSelection   }
  #- { key: Key0,     mods: Control,       action: ResetFontSize    }
  #- { key: Equals,   mods: Control,       action: IncreaseFontSize }
  #- { key: Add,      mods: Control,       action: IncreaseFontSize }
  #- { key: Subtract, mods: Control,       action: DecreaseFontSize }
  #- { key: Minus,    mods: Control,       action: DecreaseFontSize }
  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }

  # (macOS only)
  #- { key: Key0,   mods: Command,         action: ResetFontSize    }
  #- { key: Equals, mods: Command,         action: IncreaseFontSize }
  #- { key: Add,    mods: Command,         action: IncreaseFontSize }
  #- { key: Minus,  mods: Command,         action: DecreaseFontSize }
  #- { key: K,      mods: Command,         action: ClearHistory     }
  #- { key: K,      mods: Command,         chars: "\x0c"            }
  #- { key: V,      mods: Command,         action: Paste            }
  #- { key: C,      mods: Command,         action: Copy             }
  #- { key: H,      mods: Command,         action: Hide             }
  #- { key: Q,      mods: Command,         action: Quit             }
  #- { key: W,      mods: Command,         action: Quit             }
  #- { key: F,      mods: Command|Control, action: ToggleFullscreen }

  - { key: Paste,                   action: Paste                            }
  - { key: Copy,                    action: Copy                             }
  - { key: L,        mods: Control, action: ClearLogNotice                   }
  - { key: L,        mods: Control, chars: "\x0c"                            }
  - { key: Home,     mods: Alt,     chars: "\x1b[1;3H"                       }
  - { key: Home,                    chars: "\x1bOH",        mode: AppCursor  }
  - { key: Home,                    chars: "\x1b[H",        mode: ~AppCursor }
  - { key: End,      mods: Alt,     chars: "\x1b[1;3F"                       }
  - { key: End,                     chars: "\x1bOF",        mode: AppCursor  }
  - { key: End,                     chars: "\x1b[F",        mode: ~AppCursor }
  - { key: PageUp,   mods: Shift,   action: ScrollPageUp,   mode: ~Alt       }
  - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~",     mode: Alt        }
  - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                       }
  - { key: PageUp,   mods: Alt,     chars: "\x1b[5;3~"                       }
  - { key: PageUp,                  chars: "\x1b[5~"                         }
  - { key: PageDown, mods: Shift,   action: ScrollPageDown, mode: ~Alt       }
  - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~",     mode: Alt        }
  - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                       }
  - { key: PageDown, mods: Alt,     chars: "\x1b[6;3~"                       }
  - { key: PageDown,                chars: "\x1b[6~"                         }
  - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                          }
  - { key: Back,                    chars: "\x7f"                            }
  - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                        }
  - { key: Insert,                  chars: "\x1b[2~"                         }
  - { key: Delete,                  chars: "\x1b[3~"                         }
  - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                       }
  - { key: Left,     mods: Control, chars: "\x1b[1;5D"                       }
  - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                       }
  - { key: Left,                    chars: "\x1b[D",        mode: ~AppCursor }
  - { key: Left,                    chars: "\x1bOD",        mode: AppCursor  }
  - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                       }
  - { key: Right,    mods: Control, chars: "\x1b[1;5C"                       }
  - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                       }
  - { key: Right,                   chars: "\x1b[C",        mode: ~AppCursor }
  - { key: Right,                   chars: "\x1bOC",        mode: AppCursor  }
  - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                       }
  - { key: Up,       mods: Control, chars: "\x1b[1;5A"                       }
  - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                       }
  - { key: Up,                      chars: "\x1b[A",        mode: ~AppCursor }
  - { key: Up,                      chars: "\x1bOA",        mode: AppCursor  }
  - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                       }
  - { key: Down,     mods: Control, chars: "\x1b[1;5B"                       }
  - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                       }
  - { key: Down,                    chars: "\x1b[B",        mode: ~AppCursor }
  - { key: Down,                    chars: "\x1bOB",        mode: AppCursor  }
  - { key: F1,                      chars: "\x1bOP"                          }
  - { key: F2,                      chars: "\x1bOQ"                          }
  - { key: F3,                      chars: "\x1bOR"                          }
  - { key: F4,                      chars: "\x1bOS"                          }
  - { key: F5,                      chars: "\x1b[15~"                        }
  - { key: F6,                      chars: "\x1b[17~"                        }
  - { key: F7,                      chars: "\x1b[18~"                        }
  - { key: F8,                      chars: "\x1b[19~"                        }
  - { key: F9,                      chars: "\x1b[20~"                        }
  - { key: F10,                     chars: "\x1b[21~"                        }
  - { key: F11,                     chars: "\x1b[23~"                        }
  - { key: F12,                     chars: "\x1b[24~"                        }
  - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                       }
  - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                       }
  - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                       }
  - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                       }
  - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                      }
  - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                      }
  - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                      }
  - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                      }
  - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                      }
  - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                      }
  - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                      }
  - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                      }
  - { key: F1,       mods: Control, chars: "\x1b[1;5P"                       }
  - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                       }
  - { key: F3,       mods: Control, chars: "\x1b[1;5R"                       }
  - { key: F4,       mods: Control, chars: "\x1b[1;5S"                       }
  - { key: F5,       mods: Control, chars: "\x1b[15;5~"                      }
  - { key: F6,       mods: Control, chars: "\x1b[17;5~"                      }
  - { key: F7,       mods: Control, chars: "\x1b[18;5~"                      }
  - { key: F8,       mods: Control, chars: "\x1b[19;5~"                      }
  - { key: F9,       mods: Control, chars: "\x1b[20;5~"                      }
  - { key: F10,      mods: Control, chars: "\x1b[21;5~"                      }
  - { key: F11,      mods: Control, chars: "\x1b[23;5~"                      }
  - { key: F12,      mods: Control, chars: "\x1b[24;5~"                      }
  - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                       }
  - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                       }
  - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                       }
  - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                       }
  - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                      }
  - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                      }
  - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                      }
  - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                      }
  - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                      }
  - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                      }
  - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                      }
  - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                      }
  - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                       }
  - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                       }
  - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                       }
  - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                       }
  - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                      }
  - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                      }
  - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                      }
  - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                      }
  - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                      }
  - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                      }
  - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                      }
  - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                      }
  - { key: NumpadEnter,             chars: "\n"                              }

@europ You should add your requested font to prefer section too.
<alias>
    <family>DejaVu Sans Mono</family>
    <prefer>
        <family>DejaVu Sans Mono</family> <- This line is kind of important
        <family>PowerlineSymbols</family>
    </prefer>
    <default><family>monospace</family></default>
 </alias>

In your config file you only have PowerlineSymbols.
I'll try to take a look on what we can do about our font fallback on GNU/Linux systems, but we already have an #957 planned to make things easier.
As a workaround you can always use Ubuntu Mono nerd font version (I've linked to their repo above). FYI it's just Ubuntu Mono + PowerlineSymbols + FontAwesome in a one font, so no font fallback is required most of the time.

I kept:

~/.config/alacritty/alacritty.yml (the content is shown in the previous comment)
~/.config/fontconfig/conf.d/10-powerline-symbols.conf
~/.local/share/fonts/ files

PowerlineSymbols.otf
extracted files from UbuntuMono.zip (nerd-fonts)

I have set my font fallback configuration file

~/.config/fontconfig/conf.d/fonts.conf<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <alias>
        <family>Ubuntu Mono</family>
        <prefer>
            <family>Ubuntu Mono</family>
            <family>PowerlineSymbols</family>
        </prefer>
        <default>
            <family>Ubuntu Mono</family>
        </default>
    </alias>
</fontconfig>

for Ubuntu Mono font, becuase this is the font used in the ~/.config/alacritty/alacritty.yml.
It did not work. (I also tried to do the same for monospace and the font suggested by you. Same result.)
Does it really work for you in the same environment?

Please, provide your output of fc-match -s "Ubuntu Mono" after you've done your configuration.

fc-match -s "Ubuntu Mono" > output.txt

output.txt

Does it really work for you in the same environment?

Yes, my output of fc-match, and this odd fonts are rendered inside neovim just fine.
~ ➜ fc-match -s "Ubuntu Mono"
UbuntuMono-R.ttf: "Ubuntu Mono" "Regular"
PowerlineSymbols.otf: "PowerlineSymbols" "Medium"

Output of strace alacritty?

strace alacritty > output.txt 2>&1

output.txt

Hmm, I see some
stat("/home/adrian/.config/fontconfig/fonts.conf", 0x7ffd20d594c0) = -1 ENOENT (No such file or directory)

but the file does exist.

Would you mind removing 10-powerline-symbols.conf placing this config into $HOME/.config/fontconfig/fonts.conf and rerunning strace?
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <alias>
        <family>Ubuntu Mono</family>
        <prefer>
            <family>Ubuntu Mono</family>
            <family>PowerlineSymbols</family>
        </prefer>
        <default>
            <family>Ubuntu Mono</family>
        </default>
    </alias>
</fontconfig>

$ rm ~/.config/fontconfig/conf.d/10-powerline-symbols.conf
$ cat $HOME/.config/fontconfig/fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
    <alias>
        <family>Ubuntu Mono</family>
        <prefer>
            <family>Ubuntu Mono</family>
            <family>PowerlineSymbols</family>
        </prefer>
        <default>
            <family>Ubuntu Mono</family>
        </default>
    </alias>
</fontconfig>
$ strace alacritty > output.txt 2>&1

output.txt

Try placing this one in $HOME/.config/fontconfig/fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match target="font">
    <test name="family" compare="eq">
        <string>Ubuntu Mono</string>
    </test>
    <edit name="family" mode="assign_replace">
      <string>Ubuntu Mono</string>
    </edit>
    <edit name="family" mode="append_last">
      <string>monospace</string>
    </edit>
  </match>
  <match target="pattern">
    <test qual="any" name="family">
        <string>monospace</string>
    </test>
    <edit name="family" mode="prepend_first">
      <string>Ubuntu Mono</string>
    </edit>
    <edit name="family" mode="prepend_first">
      <string>PowerlineSymbols</string>
    </edit>
  </match>
</fontconfig>

The PowerlineSymbols font is still not working.
$ cat $HOME/.config/fontconfig/fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match target="font">
    <test name="family" compare="eq">
        <string>Ubuntu Mono</string>
    </test>
    <edit name="family" mode="assign_replace">
      <string>Ubuntu Mono</string>
    </edit>
    <edit name="family" mode="append_last">
      <string>monospace</string>
    </edit>
  </match>
  <match target="pattern">
    <test qual="any" name="family">
        <string>monospace</string>
    </test>
    <edit name="family" mode="prepend_first">
      <string>Ubuntu Mono</string>
    </edit>
    <edit name="family" mode="prepend_first">
      <string>PowerlineSymbols</string>
    </edit>
  </match>
</fontconfig>
$ strace alacritty > output.txt 2>&1

output.txt

Would you mind setting monospace in a alacritty.yml with this config?

I did it, the PowerlineSymbols are still not working.
Do you have any idea?
alacritty.yml.txt

The above font configuration is the one I'm using for a long time and it was working across all distros I've used as expected(I've never used Ubuntu though or Debian based systems), probably my config is wrong, but I've seen the similar configs a lot. As I've said before, I'll try to investigate on what is going wrong with font fallback mechanism in alacritty, but it'll happen not very soon, since I'm interested in resolving other issues for v0.3.4.
I recommend you to take UbuntuMono font from here for the time being. This font includes your powerline symbols and it's just Ubuntu Mono + more symbols(they look identical, just different name due to font distribution rules).
I don't want to tweak alacritty's font fallback to tune for powerline fonts or smth like that, since the RFC I've linked will cover all odd font configuration you can imagine.
BTW, Would you mind providing the output of fc-conflist for the future, when someone decides to investigate in this issue.

Please, let me know if you will find a workaround or a fix for that issue (in the same environment as I specified above). Great to hear that it is not going to be retained as unresolved. Thanks.
I have already used the patched font set for Ubuntu Mono from nerd-fonts. It did not work in alacritty.
By the way, I have note that in this comment above.

extracted files from UbuntuMono.zip (nerd-fonts)

My font configuration was the default (fresh Ubuntu18 with zsh and oh-my-zsh (with its prerequisites) installed) until we had customized it via font fallback configuration by this issue.

By the way, I have noted that in this comment above.
    extracted files from UbuntuMono.zip (nerd-fonts)

@europ Oh, I didn't noticed, this fonts should work. Are you really using? Nerd fonts have a different name then Ubuntu Mono, try fc-list | grep -i nerd to find which name you should use.

@kchibisov thank you for your patience and help. It worked! After all, it was nothing difficult.
I will share the solution in summary to make this easier for others if needed. Maybe this issue will be helpful for somebody.

# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
  # TERM variable
  #
  # This value is used to set the `$TERM` environment variable for
  # each instance of Alacritty. If it is not present, alacritty will
  # check the local terminfo database and use `alacritty` if it is
  # available, otherwise `xterm-256color` is used.
  #TERM: xterm-256color

window:
  # Window dimensions (changes require restart)
  #
  # Specified in number of columns/lines, not pixels.
  # If both are `0`, this setting is ignored.
  dimensions:
    columns: 0
    lines: 0

  # Window position (changes require restart)
  #
  # Specified in number of pixels.
  # If the position is not set, the window manager will handle the placement.
  #position:
  #  x: 0
  #  y: 0

  # Window padding (changes require restart)
  #
  # Blank space added around the window in pixels. This padding is scaled
  # by DPI and the specified value is always added at both opposing sides.
  padding:
    x: 0
    y: 0

  # Spread additional padding evenly around the terminal content.
  dynamic_padding: false

  # Window decorations
  #
  # Values for `decorations`:
  #     - full: Borders and title bar
  #     - none: Neither borders nor title bar
  #
  # Values for `decorations` (macOS only):
  #     - transparent: Title bar, transparent background and title bar buttons
  #     - buttonless: Title bar, transparent background, but no title bar buttons
  decorations: full

  # Startup Mode (changes require restart)
  #
  # Values for `startup_mode`:
  #   - Windowed
  #   - Maximized
  #   - Fullscreen
  #
  # Values for `startup_mode` (macOS only):
  #   - SimpleFullscreen
  startup_mode: Windowed

  # Window title
  #title: Alacritty

  # Window class (Linux only):
  #class: Alacritty

scrolling:
  # Maximum number of lines in the scrollback buffer.
  # Specifying '0' will disable scrolling.
  history: 100000

  # Number of lines the viewport will move for every line scrolled when
  # scrollback is enabled (history > 0).
  multiplier: 3

  # Faux Scrolling
  #
  # The `faux_multiplier` setting controls the number of lines the terminal
  # should scroll when the alternate screen buffer is active. This is used
  # to allow mouse scrolling for applications like `man`.
  #
  # Specifying `0` will disable faux scrolling.
  faux_multiplier: 3

  # Scroll to the bottom when new text is written to the terminal.
  auto_scroll: false

# Spaces per Tab (changes require restart)
#
# This setting defines the width of a tab in cells.
#
# Some applications, like Emacs, rely on knowing about the width of a tab.
# To prevent unexpected behavior in these applications, it's also required to
# change the `it` value in terminfo when altering this setting.
tabspaces: 4

# Font configuration (changes require restart)
font:
  # Normal (roman) font face
  normal:
    # Font family
    #
    # Default:
    #   - (macOS) Menlo
    #   - (Linux) monospace
    #   - (Windows) Consolas
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Regular

    family: 'Ubuntu Mono Nerd Font'
    style: Regular

  # Bold font face
  bold:
    # Font family
    #
    # If the bold family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Bold

    family: 'Ubuntu Mono Nerd Font'
    style: Bold

  # Italic font face
  italic:
    # Font family
    #
    # If the italic family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Italic

    family: 'Ubuntu Mono Nerd Font'
    style: Italic

  # Point size
  size: 13.0

  # Offset is the extra space around each character. `offset.y` can be thought of
  # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
  offset:
    x: 0
    y: 0

  # Glyph offset determines the locations of the glyphs within their cells with
  # the default being at the bottom. Increasing `x` moves the glyph to the right,
  # increasing `y` moves the glyph upwards.
  glyph_offset:
    x: 0
    y: 0

  # Thin stroke font rendering (macOS only)
  #
  # Thin strokes are suitable for retina displays, but for non-retina screens
  # it is recommended to set `use_thin_strokes` to `false`
  #
  # macOS >= 10.14.x:
  #
  # If the font quality on non-retina display looks bad then set
  # `use_thin_strokes` to `true` and enable font smoothing by running the
  # following command:
  #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
  #
  # This is a global setting and will require a log out or restart to take
  # effect.
  use_thin_strokes: true

# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true

# Colors (Tomorrow Night Bright)
colors:
  # Default colors
  primary:
    background: '0x000000'
    foreground: '0xeaeaea'

    # Bright and dim foreground colors
    #
    # The dimmed foreground color is calculated automatically if it is not present.
    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
    # is `false`, the normal foreground color will be used.
    #dim_foreground: '0x9a9a9a'
    #bright_foreground: '0xffffff'

  # Cursor colors
  #
  # Colors which should be used to draw the terminal cursor. If these are unset,
  # the cursor color will be the inverse of the cell color.
  #cursor:
  #  text: '0x000000'
  #  cursor: '0xffffff'

  # Selection colors
  #
  # Colors which should be used to draw the selection area. If selection
  # background is unset, selection color will be the inverse of the cell colors.
  # If only text is unset the cell text color will remain the same.
  #selection:
  #  text: '0xeaeaea'
  #  background: '0x404040'

  # Normal colors
  normal:
    black:   '0x000000'
    red:     '0xd54e53'
    green:   '0xb9ca4a'
    yellow:  '0xe6c547'
    blue:    '0x7aa6da'
    magenta: '0xc397d8'
    cyan:    '0x70c0ba'
    white:   '0xeaeaea'

  # Bright colors
  bright:
    black:   '0x666666'
    red:     '0xff3334'
    green:   '0x9ec400'
    yellow:  '0xe7c547'
    blue:    '0x7aa6da'
    magenta: '0xb77ee0'
    cyan:    '0x54ced6'
    white:   '0xffffff'

  # Dim colors
  #
  # If the dim colors are not set, they will be calculated automatically based
  # on the `normal` colors.
  #dim:
  #  black:   '0x000000'
  #  red:     '0x8c3336'
  #  green:   '0x7a8530'
  #  yellow:  '0x97822e'
  #  blue:    '0x506d8f'
  #  magenta: '0x80638e'
  #  cyan:    '0x497e7a'
  #  white:   '0x9a9a9a'

  # Indexed Colors
  #
  # The indexed colors include all colors from 16 to 256.
  # When these are not set, they're filled with sensible defaults.
  #
  # Example:
  #   `- { index: 16, color: '0xff00ff' }`
  #
  indexed_colors: []

# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
#   - Ease
#   - EaseOut
#   - EaseOutSine
#   - EaseOutQuad
#   - EaseOutCubic
#   - EaseOutQuart
#   - EaseOutQuint
#   - EaseOutExpo
#   - EaseOutCirc
#   - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
visual_bell:
  animation: EaseOutExpo
  duration: 0
  color: '0xffffff'

# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 1.0

# Mouse bindings
#
# Available fields:
#   - mouse
#   - action
#   - mods (optional)
#
# Values for `mouse`:
#   - Middle
#   - Left
#   - Right
#   - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
  - { mouse: Middle, action: PasteSelection }

mouse:
  # Click settings
  #
  # The `double_click` and `triple_click` settings control the time
  # alacritty should wait for accepting multiple clicks as one double
  # or triple click.
  double_click: { threshold: 300 }
  triple_click: { threshold: 300 }

  # If this is `true`, the cursor is temporarily hidden when typing.
  hide_when_typing: false

  url:
    # URL launcher
    #
    # This program is executed when clicking on a text which is recognized as a URL.
    # The URL is always added to the command as the last parameter.
    #
    # When set to `None`, URL launching will be disabled completely.
    #
    # Default:
    #   - (macOS) open
    #   - (Linux) xdg-open
    #   - (Windows) explorer
    #launcher:
    #  program: xdg-open
    #  args: []

    # URL modifiers
    #
    # These are the modifiers that need to be held down for opening URLs when clicking
    # on them. The available modifiers are documented in the key binding section.
    modifiers: None

selection:
  semantic_escape_chars: ",│`|:\"' ()[]{}<>"

  # When set to `true`, selected text will be copied to the primary clipboard.
  save_to_clipboard: false

# Allow terminal applications to change Alacritty's window title.
dynamic_title: true

cursor:
  # Cursor style
  #
  # Values for `style`:
  #   - ▇ Block
  #   - _ Underline
  #   - | Beam
  style: Block

  # If this is `true`, the cursor will be rendered as a hollow box when the
  # window is not focused.
  unfocused_hollow: true

# Live config reload (changes require restart)
live_config_reload: true

# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
# Default:
#   - (macOS) /bin/bash --login
#   - (Linux) user login shell
#   - (Windows) powershell
#shell:
#  program: /bin/bash
#  args:
#    - --login

# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
working_directory: None

# Windows 10 ConPTY backend (Windows only)
#
# This will enable better color support and may resolve other issues,
# however this API and its implementation is still young and so is
# disabled by default, as stability may not be as good as the winpty
# backend.
#
# Alacritty will fall back to the WinPTY automatically if the ConPTY
# backend cannot be initialized.
enable_experimental_conpty_backend: false

# Send ESC (\x1b) before characters when alt is pressed.
alt_send_esc: true

debug:
  # Display the time it takes to redraw each frame.
  render_timer: false

  # Keep the log file after quitting Alacritty.
  persistent_logging: false

  # Log level
  #
  # Values for `log_level`:
  #   - None
  #   - Error
  #   - Warn
  #   - Info
  #   - Debug
  #   - Trace
  log_level: Warn

  # Print all received window events.
  print_events: false

  # Record all characters and escape sequences as test data.
  ref_test: false

# Key bindings
#
# Key bindings are specified as a list of objects. Each binding will specify a
# key and modifiers required to trigger it, terminal modes where the binding is
# applicable, and what should be done when the key binding fires. It can either
# send a byte sequence to the running application (`chars`), execute a
# predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Bindings are always filled by default, but will be replaced when a new binding
# with the same triggers is defined. To unset a default binding, it can be
# mapped to the `None` action.
#
# Example:
#   `- { key: V, mods: Control|Shift, action: Paste }`
#
# Available fields:
#   - key
#   - mods (optional)
#   - chars | action | command (exactly one required)
#   - mode (optional)
#
# Values for `key`:
#   - `A` -> `Z`
#   - `F1` -> `F12`
#   - `Key1` -> `Key0`
#
#   A full list with available key codes can be found here:
#   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
#
#   Instead of using the name of the keys, the `key` field also supports using
#   the scancode of the desired key. Scancodes have to be specified as a
#   decimal number.
#   This command will allow you to display the hex scancodes for certain keys:
#     `showkey --scancodes`
#
# Values for `mods`:
#   - Command
#   - Control
#   - Option
#   - Super
#   - Shift
#   - Alt
#
#   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
#   Whitespace and capitalization is relevant and must match the example.
#
# Values for `chars`:
#   The `chars` field writes the specified string to the terminal. This makes
#   it possible to pass escape sequences.
#   To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
#   the command `showkey -a` outside of tmux.
#   Note that applications use terminfo to map escape sequences back to
#   keys. It is therefore required to update the terminfo when
#   changing an escape sequence.
#
# Values for `action`:
#   - Paste
#   - PasteSelection
#   - Copy
#   - IncreaseFontSize
#   - DecreaseFontSize
#   - ResetFontSize
#   - ScrollPageUp
#   - ScrollPageDown
#   - ScrollLineUp
#   - ScrollLineDown
#   - ScrollToTop
#   - ScrollToBottom
#   - ClearHistory
#   - Hide
#   - Quit
#   - ClearLogNotice
#   - SpawnNewInstance
#   - ToggleFullscreen
#   - None
#
# Values for `action` (macOS only):
#   - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
#
# Values for `command`:
#   The `command` field must be a map containing a `program` string and
#   an `args` array of command line parameter strings.
#
#   Example:
#       `command: { program: "alacritty", args: ["-e", "vttest"] }`
#
# Values for `mode`:
#   - ~AppCursor
#   - AppCursor
#   - ~AppKeypad
#   - AppKeypad
key_bindings:
  # (Windows/Linux only)
  #- { key: V,        mods: Control|Shift, action: Paste            }
  #- { key: C,        mods: Control|Shift, action: Copy             }
  #- { key: Insert,   mods: Shift,         action: PasteSelection   }
  #- { key: Key0,     mods: Control,       action: ResetFontSize    }
  #- { key: Equals,   mods: Control,       action: IncreaseFontSize }
  #- { key: Add,      mods: Control,       action: IncreaseFontSize }
  #- { key: Subtract, mods: Control,       action: DecreaseFontSize }
  #- { key: Minus,    mods: Control,       action: DecreaseFontSize }
  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }

  # (macOS only)
  #- { key: Key0,   mods: Command,         action: ResetFontSize    }
  #- { key: Equals, mods: Command,         action: IncreaseFontSize }
  #- { key: Add,    mods: Command,         action: IncreaseFontSize }
  #- { key: Minus,  mods: Command,         action: DecreaseFontSize }
  #- { key: K,      mods: Command,         action: ClearHistory     }
  #- { key: K,      mods: Command,         chars: "\x0c"            }
  #- { key: V,      mods: Command,         action: Paste            }
  #- { key: C,      mods: Command,         action: Copy             }
  #- { key: H,      mods: Command,         action: Hide             }
  #- { key: Q,      mods: Command,         action: Quit             }
  #- { key: W,      mods: Command,         action: Quit             }
  #- { key: F,      mods: Command|Control, action: ToggleFullscreen }

  - { key: Paste,                   action: Paste                            }
  - { key: Copy,                    action: Copy                             }
  - { key: L,        mods: Control, action: ClearLogNotice                   }
  - { key: L,        mods: Control, chars: "\x0c"                            }
  - { key: Home,     mods: Alt,     chars: "\x1b[1;3H"                       }
  - { key: Home,                    chars: "\x1bOH",        mode: AppCursor  }
  - { key: Home,                    chars: "\x1b[H",        mode: ~AppCursor }
  - { key: End,      mods: Alt,     chars: "\x1b[1;3F"                       }
  - { key: End,                     chars: "\x1bOF",        mode: AppCursor  }
  - { key: End,                     chars: "\x1b[F",        mode: ~AppCursor }
  - { key: PageUp,   mods: Shift,   action: ScrollPageUp,   mode: ~Alt       }
  - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~",     mode: Alt        }
  - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                       }
  - { key: PageUp,   mods: Alt,     chars: "\x1b[5;3~"                       }
  - { key: PageUp,                  chars: "\x1b[5~"                         }
  - { key: PageDown, mods: Shift,   action: ScrollPageDown, mode: ~Alt       }
  - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~",     mode: Alt        }
  - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                       }
  - { key: PageDown, mods: Alt,     chars: "\x1b[6;3~"                       }
  - { key: PageDown,                chars: "\x1b[6~"                         }
  - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                          }
  - { key: Back,                    chars: "\x7f"                            }
  - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                        }
  - { key: Insert,                  chars: "\x1b[2~"                         }
  - { key: Delete,                  chars: "\x1b[3~"                         }
  - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                       }
  - { key: Left,     mods: Control, chars: "\x1b[1;5D"                       }
  - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                       }
  - { key: Left,                    chars: "\x1b[D",        mode: ~AppCursor }
  - { key: Left,                    chars: "\x1bOD",        mode: AppCursor  }
  - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                       }
  - { key: Right,    mods: Control, chars: "\x1b[1;5C"                       }
  - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                       }
  - { key: Right,                   chars: "\x1b[C",        mode: ~AppCursor }
  - { key: Right,                   chars: "\x1bOC",        mode: AppCursor  }
  - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                       }
  - { key: Up,       mods: Control, chars: "\x1b[1;5A"                       }
  - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                       }
  - { key: Up,                      chars: "\x1b[A",        mode: ~AppCursor }
  - { key: Up,                      chars: "\x1bOA",        mode: AppCursor  }
  - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                       }
  - { key: Down,     mods: Control, chars: "\x1b[1;5B"                       }
  - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                       }
  - { key: Down,                    chars: "\x1b[B",        mode: ~AppCursor }
  - { key: Down,                    chars: "\x1bOB",        mode: AppCursor  }
  - { key: F1,                      chars: "\x1bOP"                          }
  - { key: F2,                      chars: "\x1bOQ"                          }
  - { key: F3,                      chars: "\x1bOR"                          }
  - { key: F4,                      chars: "\x1bOS"                          }
  - { key: F5,                      chars: "\x1b[15~"                        }
  - { key: F6,                      chars: "\x1b[17~"                        }
  - { key: F7,                      chars: "\x1b[18~"                        }
  - { key: F8,                      chars: "\x1b[19~"                        }
  - { key: F9,                      chars: "\x1b[20~"                        }
  - { key: F10,                     chars: "\x1b[21~"                        }
  - { key: F11,                     chars: "\x1b[23~"                        }
  - { key: F12,                     chars: "\x1b[24~"                        }
  - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                       }
  - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                       }
  - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                       }
  - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                       }
  - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                      }
  - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                      }
  - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                      }
  - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                      }
  - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                      }
  - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                      }
  - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                      }
  - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                      }
  - { key: F1,       mods: Control, chars: "\x1b[1;5P"                       }
  - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                       }
  - { key: F3,       mods: Control, chars: "\x1b[1;5R"                       }
  - { key: F4,       mods: Control, chars: "\x1b[1;5S"                       }
  - { key: F5,       mods: Control, chars: "\x1b[15;5~"                      }
  - { key: F6,       mods: Control, chars: "\x1b[17;5~"                      }
  - { key: F7,       mods: Control, chars: "\x1b[18;5~"                      }
  - { key: F8,       mods: Control, chars: "\x1b[19;5~"                      }
  - { key: F9,       mods: Control, chars: "\x1b[20;5~"                      }
  - { key: F10,      mods: Control, chars: "\x1b[21;5~"                      }
  - { key: F11,      mods: Control, chars: "\x1b[23;5~"                      }
  - { key: F12,      mods: Control, chars: "\x1b[24;5~"                      }
  - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                       }
  - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                       }
  - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                       }
  - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                       }
  - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                      }
  - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                      }
  - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                      }
  - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                      }
  - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                      }
  - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                      }
  - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                      }
  - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                      }
  - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                       }
  - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                       }
  - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                       }
  - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                       }
  - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                      }
  - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                      }
  - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                      }
  - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                      }
  - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                      }
  - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                      }
  - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                      }
  - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                      }
  - { key: NumpadEnter,             chars: "\n"                              }


Determine what to do with legacy tutorials

The legacy MetaMask Wallet API tutorial is outdated (not working according to instructions). Currently, in the new docs, there are just placeholder references.
Some possibilities for what we can do in the Public Launch:

Remove API & SDK tutorials from the technical documentation
Resolve issues in the respective tutorials
Create new & improved tutorials

@alexandratran ya'll can totally scrap the "Create a Simple Dapp" tutorial if you'd like! 🙂 I'd be happy to help on a new one to be honest!

The placeholders are removed in #59 and a new tutorial will be created as per #4.


Running MDv5a model with Ultralytics fails with ModuleNotFoundError: No module named 'models.yolo'

Hey, I'm trying to run the MDv5a model with ultralytics, not using any MegaDetector code:
def run_inference():
    model = YOLO("models/pretrained/megadetector/md_v5a.0.0.pt")

This results in the following error:
WARNING ⚠ models/pretrained/megadetector/md_v5a.0.0.pt appears to require 'models.yolo', which is not in Ultralytics requirements.
AutoInstall will run now for 'models.yolo' but this feature will be removed in the future.
Recommend fixes are to train a new model using the latest 'ultralytics' package or to run a command with an official Ultralytics model, i.e. 'yolo predict model=yolov8n.pt'
requirements: Ultralytics requirement ['models.yolo'] not found, attempting AutoUpdate...
requirements: ❌ AutoUpdate skipped (offline)
Traceback (most recent call last):
  File "/Users/nblu/Library/Caches/pypoetry/virtualenvs/camtrap-poc-r_odpTTw-py3.11/lib/python3.11/site-packages/ultralytics/nn/tasks.py", line 837, in torch_safe_load
    ckpt = torch.load(file, map_location="cpu")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nblu/Library/Caches/pypoetry/virtualenvs/camtrap-poc-r_odpTTw-py3.11/lib/python3.11/site-packages/ultralytics/utils/patches.py", line 86, in torch_load
    return _torch_load(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nblu/Library/Caches/pypoetry/virtualenvs/camtrap-poc-r_odpTTw-py3.11/lib/python3.11/site-packages/torch/serialization.py", line 1026, in load
    return _load(opened_zipfile,
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nblu/Library/Caches/pypoetry/virtualenvs/camtrap-poc-r_odpTTw-py3.11/lib/python3.11/site-packages/torch/serialization.py", line 1438, in _load
    result = unpickler.load()
             ^^^^^^^^^^^^^^^^
  File "/Users/nblu/Library/Caches/pypoetry/virtualenvs/camtrap-poc-r_odpTTw-py3.11/lib/python3.11/site-packages/torch/serialization.py", line 1431, in find_class
    return super().find_class(mod_name, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'models.yolo'

I suspect it might be due to the ultralytics version I'm using, but I copied the ultralytics-yolov5 dependency from the MD repo.
Here are the dependencies of my pyproject.toml:
[tool.poetry.dependencies]
# Megadetector requires python <3.12,>=3.9
python = "<3.12,>=3.9"
pandas = "^2.2.3"
openpyxl = "^3.1.5"
ipykernel = "^6.29.5"
matplotlib = "^3.8.4"
# installing torch with poetry on mac wasn't working at first
# fixing the following versions and adding the source below fixed it
torch = "2.2.1"
torchvision = "0.17.1"
ultralytics-yolov5 = "0.1.1"
supervision = "^0.25.0"

[[tool.poetry.source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"
priority = "explicit"

The instructions on the MD specific yolov5 repo also say that newer versions of ultralytics  should be fine, but I had the same issue with ultralytics = "^8.2.22".
What am I missing on running the model with ultralytics directly?

Glad you found a solution that worked!  FWIW if you want to be out of the business of writing custom code entirely (I always try to be out of the business of writing code when I'm doing reference evaluations), I recommend using a specific commit of YOLOv5 that I've captured here:
https://github.com/ecologize/yolov5
That is the "official MDv5 inference environment", and with that version of YOLOv5, you should be able to do something like this:
python val.py --weights "c:\path\to\md_v5a.0.0.pt" --data "c:\path\to\dataset.yaml" --imgsz 1280 --device 0 --batch-size 1 --save-json --project "c:\path\to\output" --name "output_name"
No matter what environment you run in, remember to use imgsz 1280 for MDv5; Ultralytics tools generally default to 640, which will be a catastrophe for MDv5.  Also note that if you write your own inference code, matching the padding and resizing used during training is really important, which is the main reason I almost never do that. :)
I also have a function in the MD Python package that drives inference via YOLOv5's val.py instead of via the normal MD inference function, in particular to end up with a MD-formatted output file... this may be overkill here, but it may be at least informative:
https://github.com/agentmorris/MegaDetector/blob/main/megadetector/detection/run_inference_with_yolov5_val.py
This is the function you were testing in those corner cases of the test script.  I use this when I want all the tools that exist in the MD Python package, but I want to use only reference implementations for inference, and I want output in MD format.  This also lets me drive arbitrary YOLO models (other than MD) from my normal MD tooling environment.


How do you use setStatus, setSubmitting inside handleSubmit function.

How do I use, setSubmitting, setStatus etc. in handleSubmit function?
I would like to set the submit button's text to "submitting".
My form success message doesn't show if I put the return function inside a setTimeout (trying to simulate data being sent to a server)
import { useFormikContext } from 'formik'

const handleSubmit = useCallback(values => {
  setSubmitting(true)
  setTimeout(() => {
    setSubmitting(false)
    return {
      message: "success"
    }
  }, 5000)
}, [])

The onSubmit function expects a Promise. Sorry about that, it's not clear in the docs and also the Typescript definitions doesn't show that. Whatever you return from that handleSubmit callback will be set as the status. For your example to work, you must do:
import { useCallback } from 'react'
import { useFormikContext } from 'formik'

const handleSubmit = useCallback((values) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve({
        message: "success"
      })
    }, 5000)
  })
}, [])

While that Promise doesn't resolve or reject,  the isSubmitting flag is set to true. The status is set automatically from the return of that Promise - literally anything you return.

Fixed in v3.0.2


Issue #49 - conditional iptables implementation

Tested with ShutIt against version 1.0.0 of iptables: https://github.com/ianmiell/shutit-openshift-cluster/tree/49

I was expected something for old clients.. I am confused :/
Ex:
if run_context.cookbook_collection['iptables'].version >= '3.0.0'
iptables_rule 'firewall_jump_rule' do
lines '-A INPUT -j OS_FIREWALL_ALLOW'
end
else
iptables_rule 'firewall_jump_rule' do
content '-A INPUT -j OS_FIREWALL_ALLOW'
end
end

Oh, I just followed the instructions for the old version - I'll test
whether yours works tomorrow.
Ian
On Sat, Jan 21, 2017 at 8:25 PM, William Burton<EMAIL_ADDRESS>wrote:

I was expected something for old clients.. I am confused :/
Ex:
if run_context.cookbook_collection['iptables'].version >= '3.0.0'
iptables_rule 'firewall_jump_rule' do
lines '-A INPUT -j OS_FIREWALL_ALLOW'
end
else
iptables_rule 'firewall_jump_rule' do
content '-A INPUT -j OS_FIREWALL_ALLOW'
end
end
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/IshentRas/cookbook-openshift3/pull/58#issuecomment-274286064,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGrczdqG1kNh9qZ10hC8Pn9aGstpBdx9ks5rUmnJgaJpZM4LqKIl
.

--
My book on Docker in Practice: Get 39% off with the code 39miell
http://manning.com/miell/?a_aid=zwischenzugs&a_bid=e0d48f62

Haven't tested yet... doing so now.
On Sun, Jan 22, 2017 at 10:31 AM, William Burton<EMAIL_ADDRESS>wrote:

Assigned #58 https://github.com/IshentRas/cookbook-openshift3/pull/58
to @ianmiell https://github.com/ianmiell.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IshentRas/cookbook-openshift3/pull/58#event-931949958,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGrczSVNQDFztdYY6wnCOB0oaJSESa_qks5rUzAZgaJpZM4LqKIl
.

--
My book on Docker in Practice: Get 39% off with the code 39miell
http://manning.com/miell/?a_aid=zwischenzugs&a_bid=e0d48f62

Yeah, fails because of this:
================================================================================
Recipe Compile Error in
/root/chef-solo-example/cookbooks/cookbook-openshift3/recipes/default.rb
================================================================================
NoMethodError

undefined method `content' for LWRP resource iptables_rule from cookbook
iptables
On Sun, Jan 22, 2017 at 10:40 AM, Ian Miell<EMAIL_ADDRESS>wrote:

Haven't tested yet... doing so now.
On Sun, Jan 22, 2017 at 10:31 AM, William Burton<EMAIL_ADDRESS>
wrote:

Assigned #58 https://github.com/IshentRas/cookbook-openshift3/pull/58
to @ianmiell https://github.com/ianmiell.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IshentRas/cookbook-openshift3/pull/58#event-931949958,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGrczSVNQDFztdYY6wnCOB0oaJSESa_qks5rUzAZgaJpZM4LqKIl
.

--
My book on Docker in Practice: Get 39% off with the code 39miell
http://manning.com/miell/?a_aid=zwischenzugs&a_bid=e0d48f62

--
My book on Docker in Practice: Get 39% off with the code 39miell
http://manning.com/miell/?a_aid=zwischenzugs&a_bid=e0d48f62

@ianmiell  I am having a look :-) will keep you posted.

ok I got it now :-)
will send you a pull request :+1:

I assumed you wanted me to merge, so I have :)


fixed env variables, selenium steps

Description

Motivation and Context

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation fix (typos, incorrect content, missing content, etc.)

Checklist

[ ] I have read the contributing document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thank you for doing this, @kimsauce!

no prob!


[discussion] Should we use team-discussions instead of maintainers-discussion private repo?

As mentioned by @gr2m

gregor [11:56 PM]
@dev_aditya you probably discussed that already, but I wonder if there is an alternative to a private repository? I fear it will prevent a lot of open source projects that use a GitHub Organization to use it due to the cost of an upgrade for private repositories. I wonder if the app could post a message to a team chat for example :thinking_face: Not sure if an app can do that

These are all valid points. Would love to know everybody's opinions on this.
/cc @bkeepers @JasonEtco

This would be a great use of team discussions. If the APIs are supported (I think they are), then it would make sense to avoid the private repo issue that will affect most organizations.

The only downside is that team discussions are not available for individual owner accounts. In that case we will have to fallback to private repo

@gr2m managing an organisation via bot sounds interesting. But I feel doing private repos in it and then adding maintainers will get a little complicated. Is there a way we can utilize team discussions under the app's organisation. This way we can get around the limitation of individual accounts not having team discussion

/cc @bkeepers @JasonEtco

Is there a way we can utilize team discussions under the app's organisation. This way we can get around the limitation of individual accounts not having team discussion

Good idea, I think it could work. You would need one team per installation / repository, you would still need to invite people to the background-check organization. But I think it could be done. Once they are invited to the org, the app could use a bot account with admin rights to add them to teams for the different repositories

I like this idea. You may also want to leverage the installation event to create those teams when the app is installed, to make a better experience for the maintainers.

@gr2m was checking https://developer.github.com/v3/orgs/members/#create-organization-invitation found out that while creating the invitation we can also specify which teams to add the person too

@gr2m in the original implementation, there was one maintainers-discussion repo for the whole org, and so in case the bot finds a hostile user while watching comments on all org repos it opens issue in the one maintainers-discussion repo. In the same I was thinking, instead of one team per repo we should do one team per account (org or individual)

From my experience, the same people who are owners of an organization will be interested in getting the messages by background-check. For repositories that are on my own account I would prefer a team for all collaborators on that repository.
So, in summary, I would suggest

One team per organization
One team per repository if installed on an individual account

@gr2m I agree with you

@gr2m I agree with you

@gr2m I agree with you

One issue with team discussions is that I can no longer check if analysis for a user has already happended.
In the current implementation, I search for a issue titled like itaditya-discussion in maintainers-discussion repo using the github search api.
The search api is not available for team discussions and so I can't search for a thread titled itaditya-discussion. Another implementation for this would be to get a list of all the threads and then check its title but that I think will be a long process and so I don't think we should do that.
Should we stick with having a probot-background-check org with paid plan containing repos like owner-maintainers-discussion and in that keeping issues like user-discussion

Hm that's a good point. I definitely think that team discussions is a better tool for this than a private repo, but since they cannot be searched via the API that makes it difficult to work with.

get a list of all the threads and then check its title

You're right here - you could list all the discussions (and use context.github.paginate), then call Array.find() to find the specific one. While I wouldn't normally suggest loading every discussion like this, I think that its a good tradeoff to make use of team discussions.
Ultimately, its a decision between a better experience for the users (using team discussions) or a better experience for you the developer (using a private repo with issues). Phrased that way hopefully you can see which way I'm leaning 😄

@jasonetco I can see in what direction you are leaning. Let me think more about how we can solve the searching problem

@jasonetco @bkeepers I can mix both my implementations to get the best of both worlds. In my probot-background-check I can have a repo per owner and in that repo I'll open a issue for hostile user just like now and then I can search for existing user. But the use of issue ends here. The discussion will be done via team discussions only

So I have worked up the implementation. Check the sample here https://github.com/probot-background-check/probot-test-org-discussions/issues/1

@bkeepers @JasonEtco @gr2m this feature has been implemented.


Synchronous XMLHttpRequest on the main thread is deprecated

Hey! @mathiasrw Will switching the asy variable, with true solve the issue?

Yes and no.
Yes, it will solve the problem, but then we cant use this function for the sync calls expected when running the alasql command.

So what would be the expected solution? To use another function like fetch() and make it synchronous?

There is a solution to turn anything async to sync, but that involves using Atomic.wait, it's the only thing that can halt the entire javascript thread. but Atomic.wait is only available within a web worker. and it requires an other thread to do the actual work, and then notifying the halted worker when it's done.
But Atomics also requires using SharedArrayBuffer. and using SharedArrayBuffer requires you to implicit enable it via response headers. Oh, and BTW, workers do not have access to localStorage, so it must ask the main thread for kv-pairs (via sharedArrayBuffers)
Sooo, yea this is truly annoying.
this is how absurd-sql manage to get a sqlite wasm to run in web workers and using Atomic.
there is a blog post about it here about how it went about implementing it: https://jlongster.com/future-sql-web#the-big-problem-sync-apis
but it's way easier in NodeJS... i made a sync blob reader just a few days ago: https://github.com/nodejs/undici/issues/1830#issuecomment-1363409772
then KhafraDev made a bear minimum out of mine.

anyways i don't think there should even be a way to load data inside of alasql. i think it's the developers job to load the data it needs and then USE it as the data source.
Something in lines of:
const res = await fetch(url)
const ab = await res.arrayBuffer()
const db = new alasql.Database(ab)

const res = await fetch(url)
const ab = await res.arrayBuffer()
alasql(['ATTACH SQLITE DATABASE books(?); USE books'], ab)

To use another function like fetch() and make it synchronous?

fetch don't have sync functionality

fetch don't have sync functionality

Wrap the function in an async fn and use await inside to have it act as a sync call.

Some test started to fail inside browsers after removing sync compatibility. running in nodejs still passes the test.

Argf. We better get browser testing working in CICD so I dont introduce problems like this again.


Time is more suitable than ScheduledThreadPoolExecutor for heartbeat manager?

https://stackoverflow.com/questions/409932/java-timer-vs-executorservice

@kairbon cc


Replies should allow line breaks

Right now there is no way to break the reply into multiple lines.
This should probably be down with \n Or change the editor from text to textarea.
Im open to other ideas here too.

Fixed in 1.7. Changed the reply line to multiline. Also \n will display new lines. It turned out that it worked before, but the chat interface was not set to pre.


[FEATURE-REQUEST] - resolve deprecation warnings in Phoenix 1.7

Versions Used
Kaffy: 0.9.4
Phoenix: 1.7.7
Elixir: 1.14.5-otp-26
What's actually happening?
When I run mix deps.compile kaffy, the following deprecation warnings appear:

warning: the :phoenix compiler is no longer required in your mix.exs.

warning: Phoenix.Controller.get_flash/2 is deprecated. get_flash/2 is deprecated. Use Phoenix.Flash.get(@flash, key) instead

What should happen instead?
There should be no deprecation warnings.

I believe that both deprecation warnings appeared in Phoenix v1.7.0-rc.0.
The first warning is referenced in this commit.
For the second warning, the current Phoenix changelog indicates that the deprecation warning appeared in Phoenix v1.7.0-rc.0.

I understand that this project current supports Phoenix >=v1.5.0 so removing the deprecated items probably isn't an option for now. I just wanted to put it on the record.

Thank you @arcanemachine
You're right. Kaffy currently supports the officially maintained elixir versions (>= 1.11 as of this writing) and phoenix >= 1.5.
I would love to get rid of the deprecation warnings if there's a way around it.


ci: create playwright report artifacts

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Of course, they actually pass with flying colours on this PR :face_exhaling:


Why use Fuel over something like Retrofit, Volley?

I came across this library, but it did not mention why one should use Fuel over something like Retrofit or Volley?
It is better to add what are advantages of using Fuel over other libraries to Read Me and documentation intro section.

Not diving deep (as I didn't use either library you mentioned) I see that Volley is Android only library, Retrofit works for Android and Java, but Fuel is for Android and Kotlin.
At the end it is a personal choice. I like Kotlin, so neither Retrofit nor Volley would work for me.
Comparing with other libraries is not necessary on the front of one's documentation. Choose one which fits your needs. There is no one size fits all...

Actually you can use both Volley and Retrofit with Kotlin.

<EMAIL_ADDRESS>https://www.varvet.com/blog/kotlin-with-volley/

For me I usually reach to new library if it have some improvement over existing proven libraries.

Of cause you can. Kotlin has zero overhead inter-op with Java. Anything from Java can be called from Kotlin and wise versa.
Fuel is writing in Kotlin, so using it in Kotlin code much more natural.
As I said at the end it is a persanol choice.

I am considering it for an android project. Lets see what repo maintainer have to say?

Does this use Okhttp under the hood? how about performance?

Does this use Okhttp under the hood? how about performance?

It doesn't. Fuel uses HttpUrlConnection internally. Retrofit, for example, is just a wrapper for OkHttp and is designed for Java.
Fuel is designed for Kotlin and I think this is one of the advantages of using it if you uses Kotlin as main language in your project. Also, it has a nicer support for Coroutines.

Any benchmarks?

Any benchmarks?

I do not think so.

Hi @kaushalyap, thanks for raising the concern and creating an issue here. Much appreciated.
For me personally, here are my thoughts over the project.

Fuel is built to be kotlin-esque. While other libraries you mentioned are great and nice, Fuel tries to fill in the different role which is to be the easiest or the most kotlin-esque to the project that already Kotlin as your main language. Retrofit or Volley or other libraries probably have different goals, but I do believe that one of their goals would be they are meant to be universally used in Java and/or Kotlin. This is great in one perspective (and this is not to undermine other libraries in any way), however, in our view (maintainer of Fuel), we viewed this as an obstacle to creating a much nicer API that is Kotlin-focused. We used to care on how the usage on the Java would be that that is no longer because we know entirely that if the Java users want to depend on the networking library, there are much better choices than us out there to use (and we don't try to compete that).

Fuel wants to be pervasive. This demonstrates with the many deserialization extensions that we provide out-of-the-box. It means that we know that you have a different object De/Serializer of your choice and we don't want to stand on your way. Rather, we want you to feel like home. We want to integrate with all of the major ones out there to provide a nicer usage experience. The ideal case would be solely adding dependency line in build.gradle file and you can jump start from the get-go. We want to make a difference in this area as well.

Regarding OkHttp, no we use HttpUrlConnection internally but in fact, we want this to composable in such a way that you can also plug the OkHttp as your main network driver as you can reference this as an example HttpClient. We haven't provided out-of-the-box for you, if you happen to have one and contribute back to the repo, feel free to do so.

Benchmark and performance are not one of our goals, we want Fuel to be on the easy to use side but not on the faster side. We certainly believe that Fuel will not win in a race of performance but at the same time we don't think Fuel is/will be a bottleneck in your application. (If it happens to be so, please file an issue because we want to get this right).

All in all, we think it is on your interest in evaluation for pros and cons. We believe we can do the best on the goal that we aim and provide something different in the market for developers to use. It is up to you to try out and evaluate what works best for your use case.

@kittinunf Thanks for reply, keep up the great work! Add your project goals to the Read Me and doc it will be useful for users. Have not you done any benchmark of fuel throughout the development? (IMHO benchmarks are better to understand performance as library evolves.)

We have done internal benchmarks here and there, but this library is usually not the bottleneck in any application so there is no point sharing that data as it's not one of the design goals.


Add file to LFS

This PR adds a file to LFS, which stops the git diff errors when LFS is active.

!ci-build-me


Documentation 1.1: add mission document

This adds documentation for the mission section.

This change is

LGTM @alanmeadows. review of 1.2 in progress.


SP-1595 - Backport of PDI-12368 - Race condition using Pentaho 5 Kettle ...

...SDK and KettleLogStore.getAppender().getBuffer(...) (5.2 Suite)

@hudak
Please review.


flutter run --web-launch-url should allow URL to be https

I have been working on getting flutter run -d chrome to sit behind a reverse proxy so I can debug with an environment more closely matching production such as  ssl, Secure headers, CSP, COOP and COEP.   One issue among many to making this work I discovered by accident.
Once the flutter run command launches the browser and opens the default http://localhost:xxx  url any other browser tabs that attempt to connect via the reverse proxy are unable to fully load,  I don't pretend to understand why, some interaction with sse or wss.   Whatever it is I'm over trying to figure it out... maybe.
What does work is never launching on the http url and instead opening the proxied https url. However the --web-launch-url flag doesn't allow an https url like https://localhost:9921
Looks like the problem is with the regex here not allowing https.
https://github.com/flutter/flutter/blob/47f54ace4568c079a2fdb66260d61a74ef5cca03/packages/flutter_tools/lib/src/web/web_device.dart#L134

Hello @nullrocket. Thank you for filing this request. Looks like a valid one. Labelling for further insights from the team.

Deduplicating with https://github.com/flutter/flutter/issues/60704

If you read the other issue and this one carefully, while slightly related it is not a duplicate.  The other issue is about providing a way to actually handle ssl for localhost dev via flutter configuration.
This is just about not restricting the web launch url to be http so that chrome will launch on whatever external proxy a developer provides as a launch url,  pretty much a 4 or 5 character change that doesn't involve any of the other issues around serving https talked about in the other issue.
I can provide a PR for this specific issue, and while the other things touched on in the referenced issue should be fixed, just getting this fixed would be a good first step.
Could we reopen this?


feat: pass version and pname to fetchers

This PR changes fetcher interface so that both version and pname are now passed to fetchers. This is useful since we can drop pname and version from source constructors, and it makes the lock have less duplicated data. It also adds warnings if a source constructor uses pname and version fields, since they will be overrided by dream2nix.

Unrelated to this PR, but it seems that you can no longer use crates-io:ripgrep/13.0.0 for example, dream2nix complains it can't be parsed.

Oh yes, the regex doesn't allow for the - symbol. I'll fix that up. Thanks

fixed the parsing problems via 133b2d0093b22bb3367f8792f2dcd2f235e394ba


UI Additions: New Radial UI

About the PR
Reopen from that PR with solved "problems"

Why not just reopen that PR?

Why not just reopen that PR? (I guess it doesn't matter now, but just for future reference)

Well, i can't reopen (i deleted branch before, so i reopen a new pr)

You didn't delete the branch from your repository, otherwise it would say so ins the PR history of your previous PR.
Please merge the branch from this PR onto the branch from your previous one and reopen it.

why


Start a recording once a browser tab has been selected.

Description
I would like to automatically start the video recording when the user selects to share a tab for a screen recording.
Steps to reproduce
Screen Recording > Select Tab > Share
Results
Expected
I would like to automatically start the video recording when the user selects to share a tab.
Actual
When recording a screen and choosing to record a browser tab the browser automatically switches to the selected tab once clicking "Share".  What this means is that the user has to navigate back to the tab where the videojs player is and initiate the recording, then switch back to the tab being recorded.  This causes confusion with the user as they don't know they have to click record after sharing the tab.  The browser implies it's recording the selected tab since it show's a rec recording indicator on the browser tab that was selected yet it's not recording.

What browser @mattdorst? Since this is browser-specific behavior it would be good to search the browser's bugs and find a ticket and/or open a new ticket if it's not there yet. And add the links to this ticket.

Closing because there's no feedback and it's a browser limitation videojs-record can't fix.


python311Packages.miniupnpc: 2.0.2 -> 2.2.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.miniupnpc is: miniUPnP client
meta.homepage for python311Packages.miniupnpc is: http://miniupnp.free.fr/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.2.7 with grep in /nix/store/qrzgkg4x8mgd8b2skhbxag12f0yvhlzm-python3.11-miniupnpc-2.2.7
found 2.2.7 in filename of file in /nix/store/qrzgkg4x8mgd8b2skhbxag12f0yvhlzm-python3.11-miniupnpc-2.2.7

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

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.miniupnpc
python312Packages.miniupnpc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qrzgkg4x8mgd8b2skhbxag12f0yvhlzm-python3.11-miniupnpc-2.2.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/1bcf64b40903bf69ebed072cc75bd89224a0d620#python311Packages.miniupnpc

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qrzgkg4x8mgd8b2skhbxag12f0yvhlzm-python3.11-miniupnpc-2.2.7
ls -la /nix/store/qrzgkg4x8mgd8b2skhbxag12f0yvhlzm-python3.11-miniupnpc-2.2.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

4 packages built:

python311Packages.miniupnpc
python311Packages.miniupnpc.dist
python312Packages.miniupnpc
python312Packages.miniupnpc.dist

Maintainer pings
cc @peterhoeg for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.miniupnpc is: miniUPnP client
meta.homepage for python311Packages.miniupnpc is: http://miniupnp.free.fr/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.2.8 with grep in /nix/store/9ii5q4mryyiria1k6d2z77b19g06pjqx-python3.11-miniupnpc-2.2.8
found 2.2.8 in filename of file in /nix/store/9ii5q4mryyiria1k6d2z77b19g06pjqx-python3.11-miniupnpc-2.2.8

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

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.miniupnpc
python312Packages.miniupnpc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9ii5q4mryyiria1k6d2z77b19g06pjqx-python3.11-miniupnpc-2.2.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/e95ae442787406cf5f38c1d4a9b02ff650962a4f#python311Packages.miniupnpc

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9ii5q4mryyiria1k6d2z77b19g06pjqx-python3.11-miniupnpc-2.2.8
ls -la /nix/store/9ii5q4mryyiria1k6d2z77b19g06pjqx-python3.11-miniupnpc-2.2.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

4 packages built:

python311Packages.miniupnpc
python311Packages.miniupnpc.dist
python312Packages.miniupnpc
python312Packages.miniupnpc.dist

Maintainer pings
cc @peterhoeg for testing.


Added setFriction function to AbstractWheel

As android-spinnerwheel is a scroll widget, I needed to change its friction sometimes.
There should be some people who want it.
Thanks.

Oh, sorry. I added AbstractWheelCustomAdapter to that branch.
But it's also a good update. :-)


Support for Package Reference style of using NuGet Package

Hi, just downloaded the latest Visual Studio with support for migrating .net projects from using packages.config to the new Package Reference style.
Getting a Compatibility issue with NCal-Edge of:
"The assembly 'lib\lib\NCalc.dll' will be ignored when the package is installed after migration."
And the same goes for the Antlr depdency Nuget it installs.
Firstly is this an issue? And secondly is it possible for this issue to be resolved in a new version of NCalc-Edge?
More about Package Reference migration process here: https://docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference#how-to-roll-back-to-packagesconfig
Thanks,
James

It might be an issue but I'm not able to look into it right now. I haven't yet started using the new CSproj. If you have a solution let me know

I think the issue is that i'm publishing the package in \lib instead of \lib\net46

Yes sorry that is the issue I think. I am just using the new "Migrate packages.config to Package Reference" option in Visual Studio 15.7.

take a look at https://github.com/pitermarx/NCalc2
it's completely untested at production but it's based on NCalc and it targets netstandard 2.0

NCalc2 sounds good, but don't think I can go for an untested solution. Will it be possible to sort this NuGet package out?

can you try this? https://ci.appveyor.com/project/pitermarx/ncalc-edge/build/artifacts
it seems to have the ncalc.dll inside the lib\net35 folder but it gives this warning
WARNING: Issue: Assembly outside lib folder. WARNING: Description: The assembly 'lib/net35\NCalc.dll' is not inside the 'lib' folder and hence it won't be added as reference when the package is installed into a project. WARNING: Solution: Move it into the 'lib' folder if it should be referenced.

I changed the path separator and the warning disapeared
try this https://ci.appveyor.com/project/pitermarx/ncalc-edge/build/1.4.4-build0001/artifacts

closed due to inactivity