Wacom pen jumping

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
Hyprland 0.45.2 built from branch  at commit 12f9a0d0b93f691d4d9923716557154d74777b0a  ([gha] Nix: update inputs).
Date: Tue Nov 19 21:47:18 2024
Tag: v0.45.2, commits: 5451
built against aquamarine 0.5.0

flags set:
debug

System Information:
System name: Linux
Node name: nialand
Release: 6.12.4-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Mon, 09 Dec 2024 14:30:31 +0000

GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1070] [10de:1b81] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  565.77  Wed Nov 27 23:33:08 UTC 2024

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:
  split-monitor-workspaces by Duckonaut ver 1.2.0

======Config-Start======

Config File: /home/vivy/.config/hypr/hyprland.conf: Read Succeeded

# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################

autogenerated = 0 # remove this line to remove the warning

# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/

# Please note not all available settings / options are set here.
# For a full list, see the wiki

# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf

################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DVI-D-1,1920x1080@144,0x0,1
monitor=HDMI-A-1,1440x900@60,1920x180,1
# monitor=HDMI-A-2,1920x1080@60,0x0,1

###################
### MY PROGRAMS ###
###################

# See https://wiki.hyprland.org/Configuring/Keywords/

# Set programs that you use
$terminal = kitty
$fileManager = thunar
$menu = wofi --show drun -I -W 500 -L 7

#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
exec-once = nm-applet &
exec-once = waybar &
exec-once = hyprpaper &
exec-once = blueman-applet &
exec-once = corectrl &
exec-once = [workspace special silent] obs --startreplaybuffer --disable-shutdown-check &
exec-once = deluged &
exec-once = syncthing &
# exec-once = easyeffects --gapplication-service &
exec-once = hyprpm reload -n

#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

cursor {
  # no_hardware_cursors = false
  # allow_dumb_copy = true
}

#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general {
    gaps_in = 10
    gaps_out = 10

    # gaps_in = 0
    # gaps_out = 0

    border_size = 2

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.active_border = rgba(00ffcc88)
    col.inactive_border = rgba(595959aa)

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false

    layout = dwindle
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 10

    # Change transparency of focused and unfocused windows
    active_opacity = 1.0
    inactive_opacity = 1.0

    # drop_shadow = true
    # shadow_range = 4
    # shadow_render_power = 3
    # col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 3
        passes = 1

        vibrancy = 0.1696
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = true

    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default, slidefadevert 100%
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
    new_status = master
}

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
    enable_swallow = true
    swallow_regex = ^(kitty)$
}

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = en
    kb_variant = us
    kb_model =
    kb_options =
    kb_rules =
    repeat_delay = 250
    repeat_rate = 75
    numlock_by_default = true

    follow_mouse = 1

    sensitivity = -0.75 # -1.0 - 1.0, 0 means no modification.

    touchpad {
        natural_scroll = false
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = false
}

device{
  name = logitech-g502-hero-gaming-mouse
  sensitivity = -1
}

device{
  name = 2.4g-composite-devic-mouse
  sensitivity = 1
}

####################
### KEYBINDINGSS ###
####################

$mainMod = SUPER # Sets "Windows" key as main modifier

bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod SHIFT, F4, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, F, fullscreen
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, N, togglesplit, # dwindle
bind = $mainMod, B, exec, killall -SIGUSR1 waybar

bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

# bind = $mainMod, N, split-changemonitor, next
# bind = $mainMod SHIFT, N, split-changemonitor, prev

bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
bind = $mainMod, 6, split-workspace, 6
bind = $mainMod, 7, split-workspace, 7
bind = $mainMod, 8, split-workspace, 8
bind = $mainMod, 9, split-workspace, 9
bind = $mainMod, 0, split-workspace, 10

bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10

bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspacesilent, special:magic

bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# MY GLOBAL SHORTCUTS
bind = CTRL_SHIFT, F10, pass, ^(com\.obsproject\.Studio)$

# MY EXTRA BINDS
bind = , Print, exec, /bin/fish /home/vivy/gitRepos/wlshot/wlshot.fish -f ppm -c png -m region
bind = $mainMod, XF86AudioRaiseVolume, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if(factor < 1) {factor = 1}; print factor * 1.25}')"

bind = $mainMod, XF86AudioLowerVolume, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if(factor < 1) {factor = 1}; print factor / 1.25}')"

bind = $mainMod SHIFT, ESCAPE, exec, hyprlock

##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

windowrulev2 = float,class:^(rofi)$,title:^(rofi)$

windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

layerrule=noanim, hyprpicker
layerrule=noanim, selection

# windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$
# windowrulev2 = noanim,class:^(xwaylandvideobridge)$
# windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
# windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
# windowrulev2 = noblur,class:^(xwaylandvideobridge)$

# THE FOLLOWING 6 RULES ARE FOR SMART GAPS, SMART BORDERS AND SMART ROUNDING
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]

======Config-End========

Description
When drawing with a wacom tablet there's a jumping line.
I recorded a video first showing it functioning normally on awesomewm and then with the issue on hyprland.
https://github.com/user-attachments/assets/842ae277-daba-4083-995f-074c1e6b7bf1
How to reproduce
Connect a wacom tablet, open up krita or xournalpp, draw straight lines.
Crash reports, logs, images, videos
No response

open up krita or xournalpp,

which of these can run native wayland?

I just checked and if I'm not mistaken, Xournal++ is running under wayland while krita isn't. They both have the same cursor jumping behavior.

You should check the Archwiki for this Graphic Tablet #Wayland
On AwesomeWM (xorg) you could either be using xf86-input-wacom or xf86-input-libinput wrapper for libinput which wayland uses. Which you should document on the issue.
Anyway I was looking for a separate issue and just saw this but it should not be related to hyprland

I don't know/understand much about this so I'll just say so far I tried opentabletdriver (I had to blacklist the wacom module for this to work properly) and the issue persists.


README

Create a detailed, nicely-designed README.md with pictures and a introduction

Continually add to README


reproduce string format when replacing text

Hi I'm trying to replace strings in word by new ones. It works, but the new string changes the paragraph format. How can I please open an existing doc, find my string of text and replace it keeping the text fomat?
thanks!

Closing as duplicate.


Question about tabs

I want to use tabs like in original materialize-css project. And In you exampel tabs are used only for  navigation. Do you have any suggestion how to implement them to follow original structure?
I don't want to use brute solution like bunch of *ngIf calls...(and not sure if it is really possible)
In other hand it's quite nice to load content for each tab separately...But it looks too complex because not all pages contain tabs (in my app)... And each page that contains tabs contains different set of tabs....
I'm open to hear any suggestion :)

How about this?
import {MaterializeDirective} from "../../src/index";
import {Component} from "angular2/core"

@Component({
    selector: "tabs",
    directives: [MaterializeDirective],
    template: `

Test 1

Test 2

Disabled Tab

Test 4

Test 1

Test 2

Test 3

Test 4

    `
})
export class Tabs {

}

@rubyboy well, it working just fine :)
I was really confused by example with routing outlet :)
And I'm really happy that I could use this approach for now :)

@rubyboy unfortunately it's working well  with my seed app (HashLocationStrategy)
But redirecting me to main page with some error in consioole with real app (PathLocationStrategy used)
I'm trying to catch the error and read it :)
Any suggestion?
I will for sure write a blog post "How to" After I resolve this issue :)

I've added the simple tabs example to the repo. Also, deployed the latest version (bundled) to http://angular2-materialize.surge.sh .

Thanks for helping me, simple tabs are working nice :)
But it looks like at http://angular2-materialize.surge.sh routing tabs are failing :(

I just needed to deploy the latest version (after the angular upgrade) :)
Does it work for you now?

Yes, almost everithing is fine now :)
100% for hashLcoation strategy,
and for path location strategy resut is unknown because we made decision not to go for angular2 so quickly :) Wait until it will be stable and more UI components will be available :)

Yeah, unfortunately things still break with every beta release. I wish it was most stable and we wouldn't need to make changes every week or two :(


Identifiers validation failed for dataset ORN

Identifier validation failed for the dataset ORN:

Crawler attempt: 248
Publishing organization: Academy of Natural Sciences
Publishing country: UNITED_STATES
Installation: ANSP IPT Installation
Number of occurrences indexed for this dataset at the time of the issue: 164233
Cause: GBIF ID problems exceed 50% threshold: 100% duplicates; 193420 total records; 193420 absent records
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3638085/step

New IDs sample:

Old IDs sample:

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the ORN : https://doi.org/10.15468/d5tdxh.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset ORN:

Crawler attempt: 250
Publishing organization: Academy of Natural Sciences
Publishing country: UNITED_STATES
Installation: ANSP IPT Installation
Number of occurrences indexed for this dataset at the time of the issue: 164233
Cause: GBIF ID problems exceed 50% threshold: 100% duplicates; 193420 total records; 193420 absent records
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3638102/step

New IDs sample:

Old IDs sample:

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the ORN : https://doi.org/10.15468/d5tdxh.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset ORN:

Crawler attempt: 251
Publishing organization: Academy of Natural Sciences
Publishing country: UNITED_STATES
Installation: ANSP IPT Installation
Number of occurrences indexed for this dataset at the time of the issue: 164233
Cause: GBIF ID problems exceed 50% threshold: 100% duplicates; 193420 total records; 193420 absent records
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3638473/step

New IDs sample:

Old IDs sample:

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the ORN : https://doi.org/10.15468/d5tdxh.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


Menu Bar Rendering Wrong

@samuelgarcia
Howdy Samuel,
While testing the installation_tips from spikeinterface for windows and Mac, both had a rendering issue with the menus for the gui:
I'm happy to try to fix this, but to be honest I don't know much about Qt stuff. I saw in your code that you were thinking about setting stylesheets in mainwindow.py so maybe that would help and if you're working on other stuff I could play around with that.
I've attached the rendering issue below.

Hi Zach,
you are aexploring all spikeinertface zone!!! thank you.
Having button in dock bar is a bit hackish in QT.
In sigui, this happen here https://github.com/SpikeInterface/spikeinterface-gui/blob/main/spikeinterface_gui/mainwindow.py#L114
I guess that we have to play with the bar/button size or reduce the police size but I have to admit that I did not fitgh too much on this.
If you have time, this is nice but do not spend too much on this!


use language picker for language code on project creation

SIL LSDev has an off-the-shelf react material UI language picker.  I don't know if this can realistically fit into our project or not...  https://github.com/sillsdev/mui-language-picker


feat: IsQuitCmd & IsQuitMsg

Allows to check if the given command/message will cause the application
to quit.
Extracted from #352

Heads up: I'm still leaning towards making QuitMsg public: https://github.com/charmbracelet/bubbletea/pull/536/files
Might be the nicer solution instead of adding public API we'll eventually deprecate again.

Considering BatchMsg is public now I don't see why QuitMsg shouldn't be public. In general I think #536 is fine to be merged at this point.


[occm] Mounting ca-certs is mostly broken

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
I created a CAPO cluster using Flatcar and OCCM was failing because it didn't have correct certificates. The /etc/ssl/certs contains only symlinks in Flatcar linux.
What you expected to happen:
Work.
How to reproduce it:
Run on host OS where /etc/ssl/certs contains only symlinks.
Anything else we need to know?:
I guess the simple answer is: yeah but it works on other operating systems and Flatcar is quite specific.
That's true but:
On Ubuntu (which I guess is a popular choice) only one file is not a symlink. It's /etc/ssl/certs/ca-certificates.crt.
I created a pod like this:
apiVersion: v1
kind: Pod
metadata:
  name: pawel
spec:
  containers:
  - image: ubuntu:latest
    name: pawel
    args:
    - /bin/sh
    - -xc
    - sleep 999999
    volumeMounts:
    - mountPath: /etc/ssl/certs
      name: ca-certs
      readOnly: true
  volumes:
  - hostPath:
      path: /etc/ssl/certs
      type: Directory
    name: ca-certs

And then from:
$ k exec -it pawel -- bash
root@pawel:/# ls /etc/ssl/certs

I'd like to get rid of ca-certs mount from https://github.com/kubernetes/cloud-provider-openstack/blob/master/charts/openstack-cloud-controller-manager/values.yaml as in my opinion it doesn't serve any purpose.
One can argue this would be a breaking change but the certs are actually installed in docker image and then overwritten by the mount.
If someone really needs to mount a cert from the host path (e.g. they use self-signed cert available in the image) they can always mount it as a file. I believe this is a better approach than mounting tons of broken symlinks.
Environment:

openstack-cloud-controller-manager
(or other related binary) version:
OpenStack version:
Others:

looks like the certs doesn't fit for any purpose here( I only know the cert is used for communicat with https openstack backend)
so this is free to adjust .. maybe we can remove it
by the way, what's the real issue caused by this deadly symlink other than the link itself in the container?

Tested with ubuntu-2004-kube-v1.22.9 and works perfectly fine.


#1797 multimap tests fixed

Current coverage is 97.09% (diff: 100%)

Merging #1831 into master will not change coverage

@@             master      #1831   diff @@
==========================================
  Files            87         87
  Lines         11308      11308
  Methods           0          0
  Messages          0          0
  Branches       1875       1875
==========================================
  Hits          10979      10979
  Misses          207        207
  Partials        122        122

Powered by Codecov. Last update 84a4c69...ebcd715


ParameterHelper: avoid threating Newtonsoft JObject/JToken as collect…

The ParameterHelper.ProcessParam function threat a JObject parameter as a collection of parameters because.. JObject implement IEnumerable.
This cause an issue when I try to update an entity/table with a property that contains a JToken or JObject property.
The solution is far from elegant but it works.
I added a test  to check it.
Please see the Issue #636
Thank you

Coming in v6 as per #695


Improve TimePicker component

What does it do?
With this PR, the TimePicker component no longer shows a huge list of times formatted as hh:mm, but instead shows two columns, one containing the available hours, another containing the available minutes.
Why is it needed?
Picking times in the admin panel takes a lot of time because of the length of the list, with this PR, picking times should become much faster.
How to test it?
Spin up the Storybook env and look at the TimePicker component.

Hello 👋 Thanks for the proposal. I checked around with several people and have let them tested the timepicker that we currently have and the one suggested here. It seems that, in majority they prefer using the one that we currently have. I'd say the main painpoint for them is to understand what's going one with the two sided dropdown, and also the fact that they prefer to scroll once than twice :)
I would say the main painpoint of this component is not to be able to type in it rather than scrolling in the dropdown. If we could type in, we eventually wouldn't have to infinite scroll :)
(cc @gu-stav)

Kind of a bummer to hear that, but if you think the existing TimePicker is better, I'll accept that and move on.
I agree with the fact that the Select should be writable so that people can jump straight to the option they're seeking, but I don't think that's enough of a change to make the TimePicker really competitive, especially when the step is set to one second.
Anyway, I don't mean to fight – just wanted to let you know my opinion as a software engineer and Strapi user!

@WalkingPizza We briefly discussed another PR from a user today, which would introduce an interval selection for the timepicker: https://github.com/strapi/strapi/pull/13597
I'm wondering: do you think this would improve your problem a bit? Do you have any other default values which you'd like to add? Currently we do have [1, 5, 10, 15, 30, 60].

Hey @gu-stav, that'll definitely be a good starting point for a more functional timepicker!
I think the default values are good too, I can't really picture someone wanting any other interval, plus having 1 in there guarantees a certain degree of granularity.
Looking forward to the PR being merged and to the day when the timepicker will be searchable too, which I'm sure we'll be very soon! 🙌

Hey everyone we're gonna be making some improvements on this component in the near future so im gonna close this PR. I think it'll use an upcoming primitive we're building for comboboxes...
Thanks to all your work @WalkingPizza – sorry this one didn't quite work out.


ada-url: init at 2.7.7

Description of changes
Note: I saw the notes on making a separate commit to add oneself to maintainers. I can do that if necessary, but I wasn't sure if maintainers can be empty? I can update this commit to either add myself as a package maintainer or remove the commented line. Besides that line, this PR is ready for review.
Add Ada, "a fast and WHATWG spec compliant URL parser written in C++.
Based on https://github.com/NixOS/nixpkgs/pull/227030
The patch is included since I ran into a roadblock due to how ada implemented cpm (cmake package manager). There are other packages in nixpkgs which work around it (e.g., poac) but those package upstreams gate their downloads on a conditional:
if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION}))
  file(DOWNLOAD
    ...

I patched ada to reproduce this behavior so it can build in the sandbox.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

runs package tests

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 297294 run on x86_64-linux 1

1 package built:

ada-url

Note: I saw the notes on making a separate commit to add oneself to maintainers. I can do that if necessary, but I wasn't sure if maintainers can be empty? I can update this commit to either add myself as a package maintainer or remove the commented line. Besides that line, this PR is ready for review.

You should add yourself directly within this PR, to make it easier to merge.
Just make sure to keep the 2 commits properly separated (one to add yourself as a maintainer, one for the package)
Nixpkgs manual says (on maintainer section):

A list of the maintainers of this Nix expression. Maintainers are defined in nixpkgs/maintainers/maintainer-list.nix. There is no restriction to becoming a maintainer, just add yourself to that list in a separate commit titled “maintainers: add alice” in the same pull request, and reference maintainers with maintainers = with lib.maintainers; [ alice bob ].

Added myself as a maintainer and platforms, I believe this PR is ready!

Result of nixpkgs-review pr 297294 run on x86_64-linux 1

1 package built:

ada-url

Can we land this PR?

@ofborg eval

The latest telegram-desktop seems wont build without this package

The latest telegram-desktop seems wont build without this package

@eclairevoyant since the author had no activity in GitHub for the last 4 months, can you commit your suggestions and merge?

Hi @PedroHLC I'm the author of Ada (not this PR), I'm more than happy to help if there's anything I can do.

Yes, go ahead. At the time I wasn't sure what to do based on the upstream response (see above comments), and I've since stopped using Nix.


New version: Liberica JDK8 8.0.412.9

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

2024-04-23T11:10:21.9505354Z ##[error]Manifest Validation Failed
2024-04-23T11:10:27.0085374Z ##[section]Finishing: Validate Manifest

(Automated response - build 877.)


TS2742: The inferred type of 'Layout' cannot be named without a reference to

» bazel build //libs/shared/style
INFO: Invocation ID: c90e4faa-a573-41e9-b89b-78e287b331b6
INFO: Analyzed target //libs/shared/style:style (2 packages loaded, 9 targets configured).
INFO: Found 1 target...
INFO: Writing explanation of rebuilds to 'bazel-explain.txt'
ERROR: /home/dzintars/code/github.com/dzintars/prime/libs/shared/style/BUILD.bazel:7:11: Compiling TypeScript (devmode) //libs/shared/style:style failed (Exit 1): tsc_wrapped.sh failed: error executing command
  (cd /home/dzintars/.cache/bazel/_bazel_dzintars/9d2bbefc3ec5d528aec11b4c4ea11d3f/execroot/oswee && \
  exec env - \
    PATH=/home/dzintars/.cache/bazelisk/downloads/bazelbuild/bazel-3.7.0-linux-x86_64/bin:/home/dzintars/.yarn/bin:/home/dzintars/.config/yarn/global/node_modules/.bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/dzintars/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go:/home/dzintars/go:/home/dzintars/go/bin \
<EMAIL_ADDRESS>@@bazel-out/k8-fastbuild/bin/libs/shared/style/style_es5_tsconfig.json)
Execution platform: @local_config_platform//:host
libs/shared/style/src/lib/layout.ts:3:14 - error TS2742: The inferred type of 'Layout' cannot be named without a reference to '../../../../../external/npm/node_modules/lit-element/lit-element'. This is likely not portable. A type annotation is necessary.

3 export const Layout = css`
               ~~~~~~

Target //libs/shared/style:style failed to build
INFO: Elapsed time: 2.607s, Critical Path: 2.34s
INFO: 4 processes: 4 internal.
FAILED: Build did NOT complete successfully

Resolved by adding import _ from 'lit-element' to the imports.
Have no idea what is going on there and have no steam to dig into that now.

Ouh... it seems that it can be resolved by setting the type explicitly:
import { css, CSSResult } from 'lit-element'

export const Layout: CSSResult = css`
  .test-viewport {
    height: 100vh;
    width: 100vw;
  }
`


This is not an appropriate solution (Not working for rails 5 or rails 2)

It would be fine for temporary doing this .It depends upon accurate requirement.
If it's something related to retrieve some db data then it should be placed at model side and separate DRY code should be used to reduce redundancy.

Is it not appropriate because it's not working in Rails 5, or is it not appropriate for Rails and happens not to work in Rails 5 too?
I find before_render fills a gap in the standard callbacks, giving me an after_action callback that truly happens immediately after the action code finishes and before control passes to the rendering code. I'm using it to extract the error information entries related to form fields and generate the right structure for the browser-side Javascript/UI framework in use to make it easy to highlight form fields that contain errors. I could do it in a partial in the layouts but I'd have to remember to render that partial in every layout (and have a test case for every view to make sure I didn't forget it anywhere) and it wouldn't actually be rendering anything, just manipulating view variables, so it feels cleaner to me to put it in a controller callback between the action and rendering.


Bugs in documentation

The following is the feedback from Steven Watanabe on documentation issues.
There are two copies of proposal.pdf in the
repository.
safe_numerics.pdf seems to be out-dated.
The include paths used in the documentation are a mess.
I see at least 6 different variations:

boost/safe_numerics/include/
boost/safe_numerics/
safe/numeric/
boost/numeric/
safe_numerics/include/
../include
../../include

Introduction:
"Since the problems and their solution are similar, We'll..."
"We" should not be capitalized.
"...the results of these operations are guaranteed to be
either arithmetically correct or invoke an error"
"either ... or ..." here has a noun on one side and
a verb on the other.  Try "... either to be ... or to invoke ..."
#include <boost/safe_numeric/safe_integer.hpp>
I believe that this should be "safe_numerics"
(with an "s")
"Enforce of other program requirements using ranged integer types."
Delete "of"
"The library includes the types safe_range(Min, Max) and safe_literal(N)"
These don't look like any C++ type I've ever seen unless
they're macros.
tutorial/1.html
"When this occurs, Most"
lowercase "Most"
"When this occurs, Most C++ compilers will continue to execute with no
indication that the results are wrong"
Is it the compiler that continues to execute or is it the
program built by the compiler?
"        // converts variables to int before evaluating he expression!"
s/he/the/
"The solution is to replace instances of char type with safe type"
There are no char's in this example.
tutorial/2.html:
"This is a common problem with for loops"
Is this really true?  The most common pattern
of integer for loops is for(i=0;i<n;++i)
which can only overflow when n is a wider
type than i.  I usually see this with int/size_t,
but that will get a signed/unsigned comparison
warning on some compilers.
tutorial/5.html:
Creating the bounds type is also somewhat error-prone.
It would be quite easy for C++ programmers who are used
to half-open ranges to use safe_unsigned_range<0, i_array.size()>
tutorial/7.html
    std::cout << x / y;
    std::cout << " error detected!" << std::endl;

Should this be "NOT detected"?
eliminate_runtime_penalty/1.html:
The links for native, automatic, and trap_exception are broken.
eliminate_runtime_penalty/3.html
    throw_exception // these variables need to

need to what?
integer.html:
std::numeric_limits<T>.is_integer
should be "::is_integer"
safe_numeric_concept.html:
"However, it would be very surprising if any implementation were to be more complex that O(0);"
I think you mean O(1).  O(0) means that it takes no time at all.
"... all C++ operations permitted on it's base type..."
s/it's/its/
"( throw exception, compile time trap, etc..)"
Delete the leading space.
promotion_policy.html:
"auto sz = sx + y; // promotes expression type to a safe which
requires no result checking
is guaranteed not to overflow."
The line wrapping ends up uncommented.
exception_policy.html:
"EP | A type that full fills the requirements of an ExceptionPollicy"
s/full fills/fulfills/, s/ExceptionPollicy/ExceptionPolicy/
"EP::underflow_error(const char * message)"
Underflow is a floating point error that happens
when the value is too close to 0.  (INT_MIN - 1)
is an overflow error, not an underflow error.
template<void (*F)(const char *), void (*G)(const char *), void(*H)(const char *)>
boost::numeric::no_exception_support

What do the arguments mean?  According to the table,
there a 6 functions, not 3.
safe.html:
"T | Underlying type from which a safe type is being derived"
"derived" has a specific meaning in C++ which is not what you mean.
"...at runtime if any of several events result in an incorrect
arithmetic type."
It isn't the type that's incorrect, is it?
"If one wants to switch between save and built-in types ..."
s/save/safe/
"this type of code will have to be fixed so that implicit
conversions to built-in types do not occur"
So are explicit casts allowed?
"This is because there is no way to guarantee that the expression i * i"
The second 'i' seems to be outside the <code> block.
"This can be justified by the observe"
This sentence is incomplete.
"This can be done by specifying a non-default type promotion policy
automatic"
Should be "policy, automatic."  Also, automatic should probably be <code>
"All the work is done at compile time - checking for exceptions
necessary (input is of course an exception)"
I can't parse this sentence.  Also, the '-' should
be an em-dash, I think.
safe_range.html:
"MIN | must be non-integer literal"
I think this is supposed to be "non-negative integer"
Also, this is only true for safe_unsigned_range.
It would by weird if safe_signed_range didn't
accept negative arguments.
#include <safe/numeric/safe_range.hpp>
The directory safe/numeric/ doesn't exist.
safe_unsigned_range<7, 24> i

missing ';'
static_assert(std::is_same<decltype(k), safe);
Syntax error: expected '>' befor ')'
Also, safe is defined in safe_integer.hpp which is not #included.
promotion_policies/native.html
"It's main function is to trap incorrect..."
s/It's/Its/
promotion_policies/cpp.html
"...we can force the evaluation of C++ expressions test environment..."
"...expressions /in the/ test..."
Unless I'm misunderstanding something, the use
of trap_exception will fail to compile at:
d *= velocity;
"Note the usage of the compile time trap policy in order to
detect at compile time any possible error conditions. As I
write this, this is still being refined. Hopefully this will
be available by the time you read this."
This comment seems out-dated.
exception_policies.html:
"no_exception_support<O, U = O, R =O, D = O>"
So now we have 4 parameters?
exception_policies/trap_exception.html:
"This exception policy will trap at compile time any
operation COULD result in a runtime exception"
There's a missing word here.  "...compile time /if/ any..."
is one possible fix.
exception_policies/no_exception_support.html
Template Parameters table: waaaaaay too many O's.
Also, the first two parameters (no exception and
uninitialized) are missing.
library_implementation.html:
"correct bugs in it, or understand it's limitations"
s/it's/its/
interval.html:
boost/numeric/interval.hpp and boost::numeric::interval
are already taken by Boost.Interval.
checked_result.html:
"checked_result(e, msg)"
'e' was not defined.
"static_cast<const char *>(c) | R | extract wrapped value - asserts if
not possible"
I think this is supposed to return the message as 'const char *'
not the value as 'R'.
exception_type.html:
"dispatch(overflow_error, "operation resulted in overflow");"
The template parameter EP is missing.
rationale.html:
"2. Can safe types be used as drop-in replacement for built-in types?"
replacements (plural)
#include  <cstdint>
typedef safe_t<std::int16_t> int16_t;

This may or may not compile as it is unspecified whether
cstdint defines ::int16_t.

I've got all this and am working on it as we speak.  Actually I have all
the feed back from everyone.  Almost all of it will be addressed in some
way.
a) bugs - will be fixed
b) documentation errors - will be fixed
c) sticky design choices - may be modified or if not added to the
rational in the documentation
d) documentation enhancements - e.g. showing the console output in the
tutorial examples.
e) package enhancements - if they are minor, they might be considered.
Not really much here
exception - saturation.  I wouldn't have considered this. But someone
showed how it could be accomplished with some slight changes in the
interface for promotion policies.  Very clever - I won't include as part
of the library explicitly.  But it's possible I might included it as a
case study on creating one's own promotion policy.
I've also been considering another extended case study on using the cpp
promotion policy to test/prove a sample stepper motor control program
for an 8 bit processor. This is an example that is very close to my
heart. This is too extensive for a tutorial example but not part of the
library itself.  I'm so interested in this that I'm thinking a
submitting a talk to CPPCon 2017 built around this case study. I tried
to make it before, but it became clear that it was too ambitious for a
tutorial example so I set it aside.  Lately I was playing with it some
and became more motivated to finish it off.
The suggestion of replacing safe_..._Iiteral with std::integral_constant
is very interesting and I want to explore further.  My preliminary view
is that it's a very good idea.  specializing a few traits like is_safe
should be about all that is needed.  replace safe_literal with
std::integral constant would diminish the "surface area" of the API
because people already know and use integral constant.
Note that in the past the Review manager has made his report and
conditions.  And often considerable time would pass before the library
got actually added to boost - since what seem small changes tend to have
unintended consequences and the time required is ofter more than one
would expect.  And people have jobs to.  Fortunately, I'm unemployed.
Acceptance of the library is important to me of course.  But more
important is to have visible/tangible effect of C++ development. This
worked well for me with the serialization library.  I think that library
is widely used and that even newer alternatives use the same API and
actually depend upon it's documentation.
This library is a "harder sell" but I've come to believe that this is a
much bigger and more important topic than I first appreciated.  This
boost review is important but it's not the end for me.  It's only the
beginning.
On 3/14/17 10:13 AM, Andrzej Krzemieński wrote:

The following is the feedback from Steven Watanabe on documentation
issues.
There are two copies of proposal.pdf in the
repository.
safe_numerics.pdf seems to be out-dated.
The include paths used in the documentation are a mess.
I see at least 6 different variations:

boost/safe_numerics/include/

boost/safe_numerics/

safe/numeric/

boost/numeric/

safe_numerics/include/

../include

../../include
Introduction:

"Since the problems and their solution are similar, We'll..."
"We" should not be capitalized.
"...the results of these operations are guaranteed to be
either arithmetically correct or invoke an error"
"either ... or ..." here has a noun on one side and
a verb on the other. Try "... either to be ... or to invoke ..."
|#include <boost/safe_numeric/safe_integer.hpp>|
I believe that this should be "safe_numerics"
(with an "s")
"Enforce of other program requirements using ranged integer types."
Delete "of"
"The library includes the types safe_range(Min, Max) and safe_literal(N)"
These don't look like any C++ type I've ever seen unless
they're macros.
  tutorial/1.html

"When this occurs, Most"
lowercase "Most"
"When this occurs, Most C++ compilers will continue to execute with no
indication that the results are wrong"
Is it the compiler that continues to execute or is it the
program built by the compiler?
" // converts variables to int before evaluating he expression!"
s/he/the/
"The solution is to replace instances of char type with safe type"
There are no char's in this example.
  tutorial/2.html:

"This is a common problem with for loops"
Is this really true? The most common pattern
of integer for loops is for(i=0;i<n;++i)
which can only overflow when n is a wider
type than i. I usually see this with int/size_t,
but that will get a signed/unsigned comparison
warning on some compilers.
  tutorial/5.html:

Creating the bounds type is also somewhat error-prone.
It would be quite easy for C++ programmers who are used
to half-open ranges to use safe_unsigned_range<0, i_array.size()>
  tutorial/7.html

|std::cout << x / y; std::cout << " error detected!" << std::endl; |
Should this be "NOT detected"?
  eliminate_runtime_penalty/1.html:

The links for native, automatic, and trap_exception are broken.
  eliminate_runtime_penalty/3.html

|throw_exception // these variables need to |
need to what?
  integer.html:

|std::numeric_limits.is_integer|
should be "::is_integer"
  safe_numeric_concept.html:

"However, it would be very surprising if any implementation were to be
more complex that O(0);"
I think you mean O(1). O(0) means that it takes no time at all.
"... all C++ operations permitted on it's base type..."
s/it's/its/
"( throw exception, compile time trap, etc..)"
Delete the leading space.
  promotion_policy.html:

"auto sz = sx + y; // promotes expression type to a safe which
requires no result checking
is guaranteed not to overflow."
The line wrapping ends up uncommented.
  exception_policy.html:

"EP | A type that full fills the requirements of an ExceptionPollicy"
s/full fills/fulfills/, s/ExceptionPollicy/ExceptionPolicy/
"EP::underflow_error(const char * message)"
Underflow is a floating point error that happens
when the value is too close to 0. (INT_MIN - 1)
is an overflow error, not an underflow error.
|template<void (*F)(const char *), void (*G)(const char *),
void(*H)(const char *)> boost::numeric::no_exception_support |
What do the arguments mean? According to the table,
there a 6 functions, not 3.
  safe.html:

"T | Underlying type from which a safe type is being derived"
"derived" has a specific meaning in C++ which is not what you mean.
"...at runtime if any of several events result in an incorrect
arithmetic type."
It isn't the type that's incorrect, is it?
"If one wants to switch between save and built-in types ..."
s/save/safe/
"this type of code will have to be fixed so that implicit
conversions to built-in types do not occur"
So are explicit casts allowed?
"This is because there is no way to guarantee that the expression i * i"
The second 'i' seems to be outside the || block.
"This can be justified by the observe"
This sentence is incomplete.
"This can be done by specifying a non-default type promotion policy
automatic"
Should be "policy, automatic." Also, automatic should probably be ||
"All the work is done at compile time - checking for exceptions
necessary (input is of course an exception)"
I can't parse this sentence. Also, the '-' should
be an em-dash, I think.
  safe_range.html:

"MIN | must be non-integer literal"
I think this is supposed to be "non-negative integer"
Also, this is only true for safe_unsigned_range.
It would by weird if safe_signed_range didn't
accept negative arguments.
|#include <safe/numeric/safe_range.hpp>|
The directory safe/numeric/ doesn't exist.
|safe_unsigned_range<7, 24> i |
missing ';'
static_assert(std::is_same<decltype(k), safe);
Syntax error: expected '>' befor ')'
Also, safe is defined in safe_integer.hpp which is not #included.
  promotion_policies/native.html

"It's main function is to trap incorrect..."
s/It's/Its/
  promotion_policies/cpp.html

"...we can force the evaluation of C++ expressions test environment..."
"...expressions /in the/ test..."
Unless I'm misunderstanding something, the use
of trap_exception will fail to compile at:
d *= velocity;
"Note the usage of the compile time trap policy in order to
detect at compile time any possible error conditions. As I
write this, this is still being refined. Hopefully this will
be available by the time you read this."
This comment seems out-dated.
  exception_policies.html:

"no_exception_support<O, U = O, R =O, D = O>"
So now we have 4 parameters?
  exception_policies/trap_exception.html:

"This exception policy will trap at compile time any
operation COULD result in a runtime exception"
There's a missing word here. "...compile time /if/ any..."
is one possible fix.
  exception_policies/no_exception_support.html

Template Parameters table: waaaaaay too many O's.
Also, the first two parameters (no exception and
uninitialized) are missing.
  library_implementation.html:

"correct bugs in it, or understand it's limitations"
s/it's/its/
  interval.html:

boost/numeric/interval.hpp and boost::numeric::interval
are already taken by Boost.Interval.
  checked_result.html:

"checked_result(e, msg)"
'e' was not defined.
"static_cast<const char *>(c) | R | extract wrapped value - asserts if
not possible"
I think this is supposed to return the message as 'const char *'
not the value as 'R'.
  exception_type.html:

"dispatch(overflow_error, "operation resulted in overflow");"
The template parameter EP is missing.
  rationale.html:

"2. Can safe types be used as drop-in replacement for built-in types?"
replacements (plural)
|#include  typedef safe_tstd::int16_t int16_t; |
This may or may not compile as it is unspecified whether
cstdint defines ::int16_t.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/robertramey/safe_numerics/issues/40, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AB4R3Jcsr-c_UUJAPSp6t7ywlMnGyAg1ks5rlsrBgaJpZM4Mc4iE.

--
Robert Ramey
www.rrsd.com
(805)569-3793

safe_numeric_concept.html:
"However, it would be very surprising if any implementation were to be more complex that O(0);"
I think you mean O(1). O(0) means that it takes no time at all.
Hmmm - to me O(0) - means a fixed time independent of the number of instances.  But looking at the context - "complexity guarantee" doesn't make a lot of sense as there is no scaling variable.  I think I'll just eliminate the section
promotion_policies/cpp.html - still needs an update
boost/numeric/interval.hpp and boost::numeric::interval
are already taken by Boost.Interval. - still pending
rational2.html - still pending

rational2.html  I think this is fixed - just forget to note it.
boost/numeric/interval.hpp and boost::numeric::interval
are already taken by Boost.Interval. - still pending
Right - still pending.  It's unfortunate that boost::interval isn't constexpr - oh well


Adding retries to http dispatcher

Adding retries to http dispatcher
Signed-off-by: Jamie Klassen<EMAIL_ADDRESS>

please use tabs instead of spaces

please don't combine unrelated changes into a single PR


Updated script run-generators

Hey, I updated the script bin/run-generators to automatically run all generators and to sync all exercises having a generator. When doing this I noticed that the Github API has a rate limit (when fetching the latest commit message). To fix this, I added the flag -github_token. Additionally, I also updated the exercises using the script.
Should I add a part regarding the script to the README? At Synchronizing tests and instructions
Updated state-of-tic-tac-toe for #2302 as the exercise was added when we updated the generators

Could you create an issue and assign me (so I don't forgett it)

@eklatzer Crated :) https://github.com/exercism/go/issues/2400
Can you please comment on the issue saying that you'd like to work on it so I can assign it to you (github won't let me do it otherwise).


Support deregistering user defined functions

Is your feature request related to a problem or challenge?
Asked on discord: https://discord.com/channels/885562378132000778/1166447479609376850/1205283780378755156

Is it possible to deregister a UDF from a SessionContext? I would like to remove all ScalarUDFs with a specific function name from my context, but there's no deregister function.

There are functions to add udf/udaf/udwf to SessionContext but not to remove them
https://github.com/apache/arrow-datafusion/blob/c9e4b7b7c5c2c2e7b3ea01040a6edeafd151410c/datafusion/core/src/execution/context/mod.rs#L816-L827
It is possible to remove tables with SessionContext::deregister_table:
https://github.com/apache/arrow-datafusion/blob/c9e4b7b7c5c2c2e7b3ea01040a6edeafd151410c/datafusion/core/src/execution/context/mod.rs#L1039-L1049
Describe the solution you'd like
Add the corresponding deregister functions to SessionContext
impl SessionContext {
...
    /// returns the previously registered table/scalar/etc function, if any
    pub fn deregister_udtf(&self, name: &str) -> ,Result<Option<Arc<dyn TableFunctionImpl>)  { ... }
    pub fn deregister_udf(&self) ->  Result<Option<Arc<ScalarUDF>>> {...}
    pub fn deregister_udaf(&self) -> Result<Option<Arc<AggregateUDF>>> {...}
    pub fn deregister_udwf(&self) -> Result<Options<Arc<WindowUDF>>> { ... }
...

Ideally, we should also  add the corresponding methods to FunctionRegistry and SessionState:
impl FunctionRegistry {
...
    /// returns the previously registered table/scalar/etc function, if any
    /// defaults to "not yet implemented"
    pub fn deregister_udf(&self) ->  Result<Option<Arc<ScalarUDF>>> {...}
    pub fn deregister_udaf(&self) -> Result<Option<Arc<AggregateUDF>>> {...}
    pub fn deregister_udwf(&self) -> Result<Options<Arc<WindowUDF>>> { ... }
...

impl FunctionRegistry for SessionState  {
...
    pub fn deregister_udf(&self) ->  Result<Option<Arc<ScalarUDF>>> {...}
    pub fn deregister_udaf(&self) -> Result<Option<Arc<AggregateUDF>>> {...}
    pub fn deregister_udwf(&self) -> Result<Options<Arc<WindowUDF>>> { ... }
...

So the task is to

add the above functions
add basic tests (can adapt existing tests that register functions) that show after deregister_XXX the function can not be called anymore

Describe alternatives you've considered
No response
Additional context
I think this would be a great first project as it:

Is well defined
Would make a real impact and expose you to the code / tests
Would contribute to the overall improvements we are making to the user defined functiosn

take


(ci): add PR validation testing job for changes -> release-3.0.0

We need Codebuild to run distributed tests against PRS against BASE_REF=release-3.0.0 t
P.S. Please do not attach files as it's considered a security risk. Add code snippets directly in the message body as much as possible.

Distributed tests are now running against PRs -> release-3.0.0. Tested here.
FYI @jaidisido


Fix https://github.com/skoczen/django-longer-username/issues/15

This simple change fixes the linked bug in the pre-fork repo. I ran into this when trying to run celery on a project using django-longer-username-and-email

Good catch, thanks!
Will push a new version shortly.

Wow, that was quick!

Published as 0.5.7 on pypi.


TSC Subcommittee Meeting (20 Apr 2021): Package hosting solutions

April 2021 @StackStorm/tsc 1 hour meeting will take place on Tuesday, 20th Apr 2021, 09:30 AM US Pacific.
See #33 for more info about how to join.
Agenda
Other hosting options
Moving to Packagecloud.io OSS plan and complications

Their current OSS plan

250 GB bandwidth/month
25 GB storage

In the last 12 months, we have used

Bandwidth: 446 GB/month (average), 1.2 TB (maximum)
Storage: 182 GB (average), 190 GB (maximum)

Sweetheart OSS plan restrictions

500 GB bandwidth/month
200 GB storage (need to clean up old versions that we don't support anymore)
❗ If we exceed those limits and the excess "severely impact [Packagecloud's] business finances" they would terminate our OSS plan within 30 days and force us back to an Enterprise License plan ❗

This means that we should absolutely have a backup plan in place, or even update our apt/yum repo config files to use something like packages.stackstorm.com, and point that to packagecloud.io in DNS so we can quickly redirect traffic away from them to minimize disruption
On the other hand, maybe this is a good way to force users and resellers to support the project monetarily

Sweetheart OSS plan obligations

Add PackageCloud to the StackStorm Partners page
Add PackageCloud logo with backlink to PackageCloud as a "Sponsor" on the stackstorm.com website (~500 daily visits)
Add PackageCloud badges on GitHub with backlink to PackageCloud
Collaborate on a blog post and publish to Open Source community

Twitter (3K followers)
LinkedIn (1K users)
Email Newsletter (13K users)
Slack Community (6.5K users) about the PackageCloud partnership
Advertising the PackageCloud brand, its services and recognizing the support to our community

This is not well defined

Quarterly tweet/social media post linking to our quality and popular blog posts

Moving to Packagecloud self-hosted plan and complications

Free?
Host on our AWS infrastructure
Unlimited bandwidth (pull from AWS OSS credits)
Unlimited storage (pull from AWS OSS credits)
Manage it ourselves

Moving to Cloudsmith for package hosting
Cloudsmith has reached out regarding becoming a StackStorm partner via hosting StackStorm packages.

Reasons to use Cloudsmith

Actively developed and maintained
Reactive to issues/requests
Support, as in, from real Humans, is world-class, fast, and frequently involved with users
Offers proper org/team role-based access controls, for better setting up secure pipelines
Has support for 22+ package formats, to cover any type of deployment or distribution need
Has a specific focus on security and securing the supply chain; influences features/roadmap
Performance is a top requirement

Powered by a worldwide CDN and multi-region infrastructure

Actively pursues annual pen-testing, provides a detailed security policy, targetting SOC2/ISO
Offers significant support to open-source companies, projects, and other partnerships
Some existing partners are already Cloudsmith customers

Downside

Need to update the installation script to point to a different package repo

Questions

Can we host old packages (eg: v3.4.1 and before) on Packagecloud and new packages (eg: v3.5 and later) on Cloudsmith?

Self hosting our own package repos

Most flexible solution
Uses AWS credits (shouldn't be a big deal; we have plenty and can get more)
Operational overhead
Ready made Docker image to host on AWS S3
Ready made project to host packages

Host a redirect server

We should probably implement this anyway, since our package hosts might not give us a lot of time before we either have to start paying, or our traffic gets slowed/cut
Very little load and traffic (just requests+redirect responses)
Uses AWS credits (shouldn't be a big deal; we have plenty and can get more)
DNS redirection?

Relies on URL paths to be the same between different package hosts
Example:
pghost1 hosts at https://pghost1.com/packages/<repo_type>/<os>/<os_version>/<package_name>
pghost2 hosts at https://pghost2.com/deb/<os>/<os_version>/<repo_type>/<package_name>

HTTP redirection?

Can redirect to different URL paths
Can easily collect analytics for ourselves (nginx+greylog or something)

Can ignore traffic from our own CI tests

Easily secured (just nginx exposed to the internet with a very simple configuration)

Deliverables

[ ] A plan to switch (or not) package hosting providers
[ ] A delegate responsible for overseeing the switchover and/or redirect implementation

[ ] Need access to credentials in 1Password?

[ ] A timeline for when this will be done (we lose $$$ every month this isn't completed!)

Need to get details on what Cloudsmith is willing to host @nmaludy (@blag will connect you)

Are they prepared for 1.2TB/month worst case?
How much would this cost?
What amount of social media engagement would this require?

Create a Deb/RPM file that just configures the .list/.repo files, imports the GPG key - @nmaludy

Makes it easy for us to use
Who hosts the repository Deb/RPM?

HTTP redirecting is probably too much overhead, DNS redirect would work record
Need to implement DNS redirection to prototype it

Add a CNAME record to point to their (Packagecloud or Cloudsmith) A record
Need to update our installers to point to our new packages.stackstorm.com subdomain
GPG key signing of repo metadata will make this not work

Current TODO

Note: There is currently nobody signed up to perform these, so please volunteer if you have the time!

[ ] Completely clear out unneeded packages from the following Packagecloud repos:

[ ] staging-unstable
[ ] unstable
[ ] staging-stable

[ ] Save older packages (eg: v3.3 and previous) from the stable Packagecloud repo

[ ] Put them in an S3 bucket? Could also store then in Amazon Glacier to really reduce costs, since we likely won't ever ever need them again
[ ] Remove older packages (eg: v3.3 and previous) from the stable Packagecloud repo

This will give us a better idea of what our useful storage and transfer requirements will be, and whether or not we can fit into a sweetheart OSS plan with Cloudsmith or Packagecloud.

Thanks, @nmaludy for more details.
Are there any limits in terms of bandwidth and storage in the FOSS plan Cloudsmith offers us?

Hey @armab / @blag!
I work at Cloudsmith, so I can help answer this. Based on our discussion before, we're more than happy to work with you on it, because we ❤ StackStorm. We offer 250GB of bandwidth for unverified OSS users, up to 1TB of bandwidth for verified OSS users, and we can agree on amounts beyond that for sponsored projects such as StackStorm. Happy to have a discussion on how we can help, but I don't think you'd be disappointed; sponsored projects don't run the risk of getting cut-off, ever. Plus we can help to power a custom domain. :-)


Some BrainVision data contain Lowpass=0

Describe the bug
BrainVision data acquired with V-Amp without any hardware filtering are stored in header file as:
Channels
--------
#     Name      Phys. Chn.    Resolution / Unit   Low Cutoff [s]   High Cutoff [Hz]   Notch [Hz]    Gradient         Offset
1     EOGR        1          0.0488281 µV             DC                0              Off
2     EOGL        2          0.0488281 µV             DC                0              Off
3     FP3         3          0.0488281 µV             DC                0              Off
4     Fz          4          0.0488281 µV             DC                0              Off

The current code in brainvision.py, the filtering section don't set the lowpass filter only in the case the value is NaN or Off
if len(lowpass) == 0:
    pass
elif len(set(lowpass)) == 1:
    if lowpass[0] in ('NaN', 'Off'):
        pass  # Placeholder for future use. Lowpass set in _empty_info
    else:
        info['lowpass'] = float(lowpass[0])
        if lp_s:
            # filter time constant t [secs] to Hz conversion: 1/2*pi*t
            info['lowpass'] = 1. / (2 * np.pi * info['lowpass'])

else:
    heterogeneous_lp_filter = True
    if lp_s:
        # We convert channels with disabled filters to having
        # infinitely relaxed / no filters
        lowpass = [float(filt) if filt not in ('NaN', 'Off')
                   else 0.0 for filt in lowpass]
        info['lowpass'] = np.min(np.array(lowpass, dtype=np.float64))
        try:
            # filter time constant t [secs] to Hz conversion: 1/2*pi*t
            info['lowpass'] = 1. / (2 * np.pi * info['lowpass'])

        except ZeroDivisionError:
            if len(set(lowpass)) == 1:
                # No lowpass actually set for the weakest setting
                # so we set lowpass to the Nyquist frequency
                info['lowpass'] = info['sfreq'] / 2.
                # not actually heterogeneous in effect
                # ... just heterogeneously disabled
                heterogeneous_lp_filter = False
            else:
                # no lowpass filter is the weakest filter,
                # but it wasn't the only filter
                pass
    else:
        # We convert channels with disabled filters to having
        # infinitely relaxed / no filters
        lowpass = [float(filt) if filt not in ('NaN', 'Off')
                   else np.Inf for filt in lowpass]
        info['lowpass'] = np.max(np.array(lowpass, dtype=np.float64))

        if np.isinf(info['lowpass']):
            # No lowpass actually set for the weakest setting
            # so we set lowpass to the Nyquist frequency
            info['lowpass'] = info['sfreq'] / 2.
            if len(set(lowpass)) == 1:
                # not actually heterogeneous in effect
                # ... just heterogeneously disabled
                heterogeneous_lp_filter = False

    if heterogeneous_lp_filter:
        # this isn't clean FP, but then again, we only want to provide
        # the Nyquist hint when the lowpass filter was actually
        # calculated from dividing the sampling frequency by 2, so the
        # exact/direct comparison (instead of tolerance) makes sense
        if info['lowpass'] == info['sfreq'] / 2.0:
            nyquist = ', Nyquist limit'
        else:
            nyquist = ""
        warn('Channels contain different lowpass filters. '
             'Highest (weakest) filter setting (%0.2f Hz%s) '
             'will be stored.' % (info['lowpass'], nyquist))

This lead to an error when you try e.g. to plot the data.
  File "<decorator-gen-292>", line 12, in plot_raw
  File "c:\users\atonin\pycharmprojects\mne-fork\mne-python\mne\viz\raw.py", line 227, in plot_raw
    decim, picks_data = _handle_decim(info, decim, lowpass)
  File "c:\users\atonin\pycharmprojects\mne-fork\mne-python\mne\viz\utils.py", line 1754, in _handle_decim
    decim = max(int(info['sfreq'] / (lp * 3) + 1e-6), 1)
ZeroDivisionError: float division by zero

please share a full code snippet with a dataset to debug this.


catalyst-node: handle video and videorec prefixes

Currently stream in Livepeer Studio can have two prefixes, corresponding to two Mist stream configurations: video for normal streams, and videorec for streams with recording enabled.
So our playback URLs look like this:
https://catalyst-node.example.com/hls/video+PLAYBACK_ID/index.m3u8
https://catalyst-node.example.com/hls/videorec+PLAYBACK_ID/index.m3u8

But in the dashboard, our playback URLs don't have any prefixes, and look like this:
https://catalyst-node.example.com/hls/PLAYBACK_ID/index.m3u8

The legacy system uses etcd routes and middleware in Traefik to handle this sort of thing, but we're getting rid of that. Other Mist configurations use the defaultStream parameter to automatically rewrite PLAYBACK_ID to e.g. stream+PLAYBACK_ID, but that won't work for us because we have two stream configurations, video and videorec.
I'm leaning toward handling this on the catalyst-node side, so it can issue a redirect from https://global-playback-url.example.com/hls/PLAYBACK_ID/index.m3u8 to https://catalyst-node.example.com/hls/PLAYBACK_ID/index.m3u8.
New command line option: -redirectPrefixes=video,videorec. Then when we get an incoming playback request for PLAYBACK_ID, we'll query the Mist load balancer concurrently for video+PLAYBACK_ID and videorec+PLAYBACK_ID. (If an incoming request comes in for video+playbackId we can just forward it as-is.) Then we can issue a redirect to whichever one has a stream, if any.

You could also set videorec$pluswildcard as the fallback stream for video. Then, if video+blah isn't available, an internal redirect to videorec+blah would occur.

From my discussions with @Thulinma; it seems like mist should be able to handle this; but the structure of configuration is slightly varied for catalyst deployment in staging. The original config used to have a streams key defining these prefixes https://github.com/livepeer/catalyst/blob/main/config/catalyst-one.json#L112-L119 which is no longer true for the new config files.

So it looks like this breaks with wildcard base streams that exist but their wildcard string doesn't:
▶ curl 'http://localhost:8042/video+b0dcxvwml48mxt2s'
lon-canary-catalyst-0.livepeer.fun

▶ curl 'http://localhost:8042/videorec+b0dcxvwml48mxt2s'
lon-canary-catalyst-0.livepeer.fun

▶ curl 'http://localhost:8042/videorec+doesnotexist'
mdw-canary-catalyst-0.livepeer.fun

▶ curl 'http://localhost:8042/doesnotexist'
FULL

So this is breaking video/videorec redirection — actually it's racing, whichever one comes back from MistUtilLoad first will return

discussion threads on discord:

https://discord.com/channels/423160867534929930/992554008776540180/1014477483237724180
https://discord.com/channels/423160867534929930/992554008776540180/1015232206244958319

Re-fixed by


UT: workload marked as finished when job completes

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Add unit test for marking workloads as finished when a job completes.
The mock client simulates SSA using strategic merge, which only looks at the patchStrategy and not mapType.
Then, this PR also introduces the patchStrategy:"merge". This also allows external controllers or CLIs to do client-side apply, merging two lists of conditions.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

Add mergeStrategy:merge to all conditions of API objects

/assign @tenzen-y

UT looks good to me.

/lgtm


Statically link MSVC binaries

Currently, building with MSVC creates a dependency on MSVCRT.DLL (specifically, MSVCP120.DLL when built with VS2013). This is not necessarily available on all systems.
Changing the /MD option to /MT will build statically-linked binaries, which are far more portable. The cost is an increase of file size from ~25 kB to ~400 kB (unpacked).
Reference:
http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
http://stackoverflow.com/a/37402

How much does this affect the size?  I ran into this issue the other day when trying one of our internal bat files on a fresh VM.  If it's significant in size, I think providing both would be great - as you already stated =)

@aplocher I already said in the original post, it's about 12x size difference, 25 kB vs 400 kB. Since you can't really depend on the redist existing, using the dynamically-linked binary is quite risky if you ever plan to use it outside an environment you control, and potentially annoying even when you do have control.
You can actually get coloured output with PowerShell Write-Host too, and it comes default in Vista and newer. So you can call powershell -c Write-Host -F Green Hello World, for example. Or write the entire script in PS (I ended up transferring most of our scripts across, so we don't have to include an additional binary at all... and PS is much nicer to work with than cmd/batch).

Sorry, duh lol, I must have skimmed (or skipped) the end of the original post.
I've been doing more of my compex scripts in powershell, but I find it a fun challenge to see how ridiculously complicated I can make a bat file.  CmdColor.exe has been in my toolbag for a while now as far as colorization goes, I only just recently realized it had deps on MSVCRT.  I wonder what it would take to remove that dependency completely?
I like your powershell approach, I do some hybrid powershell or sometimes VBS stuff in my bat files, so it wouldn't be adding any new dependencies that i don't already have - I'll look further into implementing that.  Thanks


fix: add frame_id and sensor_ip as continental launch args

PR Type

Bug Fix

Related Links

Description

continental_launch_all_hw.xml is not acceptable frame_id and sensor_ip args, so frame_id and sensor_ip of all radars are same.
Review Procedure

launch continental_launch_all_hw.xml with frame_id and sensor_ip args.
Remarks

I have confirmed that fixed launch file is working on vehicle.
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.

[ ] Assign PR to reviewer

Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.

[ ] Commits are properly organized and messages are according to the guideline
[ ] (Optional) Unit tests have been written for new behavior
[ ] PR title describes the changes

Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.

[ ] All open points are addressed and tracked via issues or tickets

CI Checks

Build and test for PR: Required to pass before the merge.

@muraki-t4
The current nebula does not load parameters this way.
Please have a look at how the lidars do now. For example, take a loook at hesai_OT128.launch.xml.
Like I explained previously, the launcher was made for an older nebula. The steps to take here is to update the radar launchers, not to modify nebula


Secure proxy

Hi,
currently the internal proxy feature let us access any hosts from cerebro server.
It would be great to have an option to only use hosts listed in hosts config

@champtar Hey,
I have thought about this as well, but was afraid about removing "flexibility" from the app to also connect to other clusters(which were not in the file for whatever reason). Granted, I guess this doesn't happen that often(at least for me).
The setup I considered back then was, if authentication was enabled, only clusters on the list are accessible, otherwise, anything is good.
Having this setup would actually also allow something else that I'm particularly interested in, which is having roles and controlling access to hosts based on these roles.
So yeah, this might be something happening soon :)

Hi @lmenezes,
Just a side note, I personally often use nginx basic auth in front of all tools so I don't have to trust any tool, and it's easier to setup 1 time fail2ban or ...
so if you can provide a separate config to disallow "on the fly" new hosts, not linked to auth, that would be great
Also i think the "flexibility" is good for demo, but you don't change/add/remvove ES cluster every day, so I personally would even remove it because it's insecure by default
Looking forward to test it ;)


Make version="v1.2.3" and version="=v1.2.3" equivalent or throw an error

What version of Go (go version) and dep (git describe --tags) are you using?
go version go1.8.3 linux/amd64
dep v0.1.0-310-g8a46f4d
What dep command did you run?
dep ensure with Gopkg.toml containing:
[[constraint]]
  name = "upper.io/db.v3"
  version = "v3.2.2"

What did you expect to see?
version tagged with v3.2.2 in vendor OR an error message about invalid version syntax
What did you see instead?
latest version - v3.3.1 at the time I run the command - in vendor
I know that the version constraint syntax to lock to a specific version is =version (so I should have had version = "=v3.2.2" in my Gopkg.toml), but silently installing a different version is not OK. Dep should IMO either fail with invalid version error (and maybe a hint) or make the two options equivalent.

hi! i know this is something that can be confusing and frustrating, and we need to improve docs around it.
as a practical matter, we're locked into it now - changing the meaning of the symbols (so that = is implicit when no operator is present, instead of ^) would have the effect of breaking the guarantee around the stability of the Gopkg.toml and Gopkg.lock files. it's something we can revisit when it comes time to move into the toolchain.
but, we have to give it an honest shot. people expressing unnecessarily narrow constraints to serve immediate-term needs is a path that could land us all, as a community, in painful dependency hell. this mechanism is one of a set that helps nudge us in a different direction. this is a nuanced and carefully-weighed design choice that, unfortunately, really only makes sense in the big picture; i need to write a blog post laying it out.
the basic reason we believe this tradeoff is acceptable is because your Gopkg.lock should be adequate for keeping versions stable in almost all situations. to that end:

dep ensure with Gopkg.toml containing:

did a Gopkg.lock exist when you ran dep ensure? if so, and if upper.io/db.v3 was locked to v3.2.2, then dep ensure should not have upgraded you to the latest. if it did, that's almost certainly a bug.
if, OTOH, you actually ran dep ensure -update, then the advice here is to enumerate the dependencies you want to update, rather than blanket-updating all of them (which is the behavior when no additional arguments are passed).

couple more thoughts...

but silently installing a different version is not OK.

just to be clear, we fundamentally agree on this. the issue is the expectations for when that happens, and the corresponding approach taken to achieving goals.
Gopkg.toml describes what's possible - a version set your program probably works with. almost all the time, the only thing that narrowing a constraint to a single version in Gopkg.toml achieves is to make later update processes more awkward.
there certainly are cases where it make sense to aggressively restrict to only a single version of a dependency. but, most of the time, the goal folks are looking to achieve is stability for now. that is, in your case, is it true that your application only works with v3.2.2 of upper.io/db.v3? or is it that you're just not ready to update to v3.3.1 quite yet - but, if your project has any dependers, things might work fine with that version?
the former case is less common, so we give it the more awkward constraint syntax. the latter case is the overwhelming majority, so we prioritize it with an implicit ^, on the expectation that dep users will benefit most from using dep ensure -update like a scalpel. when versions are narrowed in this way, dep ensure -update ceases to be helpful, and you have to go in and make constant edits to Gopkg.toml by hand - all for very little in terms of the actual stability of your dependency versions.
there are some additional flags and behaviors we could introduce to make this an even safer process, even with the open constraints, and i'm entirely open to doing that.

@sdboyer I'm just reading through semantic versioning examples in README.md and saw the following as an implicit behavior for version without an operator:
1.2.3 becomes the range >=1.2.3, <2.0.0
vs.
0.2.3 becomes the range >=0.2.3, <0.3.0

How come the second line is constrained on the minor range (~) and not on the major range (^)? Is the zero somehow magical? Shouldn't this be:
- 0.2.3 becomes the range >=0.2.3, <0.3.0
+ 0.2.3 becomes the range >=0.2.3, <1.0.0

?

@VojtechVitek yes, unfortunately, there's even more magic in the 0.x.x range. from the semver spec:

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

technically, we can't assume anything about the relationship between versions in the zero range. if we were to follow that strictly, then the caret - which it is helpful to think of as a "compatibility" operator, rather than a numerical one - should be meaningless below 1.0.0.
however, other systems (cargo and pub at least), recognize that developers often (more or less) follow the semver guidelines, even below 1.0.0. from cargo's docs:

While SemVer says that there is no compatibility before 1.0.0, many programmers treat a 0.x.y release in the same way as a 1.x.y release: that is, y is incremented for bugfixes, and x is incremented for new features. As such, Cargo considers a 0.x.y and 0.x.z version, where z > y, to be compatible.

such is algorithmic and dependency-hell-avoiding importance of having open constraints that we're willing to dance into this territory. but nuances like these are exactly why all this needs a blog post, as well as probably its own dedicated help section.

If there was no magic implying caret for stable releases then there would be no need for a yet another, different magical behaviour for the 0.x.x versions.
If changing version="1.2.3" to be equivalent of version="=1.2.3" is not an option because if would introduce unexpected changes to existing packages I believe we should consider version="1.2.3" invalid and offer and error message explaining that it used to mean ^1.2.3, update to ^1.2.3 if you want it to mean >=1.2.3, <2.0.0 and to =1.2.3 if you want exact version match.

If there was no magic implying caret for stable releases then there would be no need for a yet another, different magical behaviour for the 0.x.x versions.

It's still just carets below 1.0.0 - no new magic.

I believe we should consider version="1.2.3" invalid and offer and error message explaining that it used to mean ^1.2.3, update to ^1.2.3 if you want it to mean >=1.2.3, <2.0.0 and to =1.2.3 if you want exact version match.

this would still invalidate old, already-committed Gopkg.toml files.
now, we could probably apply the extra validation you describe only for the current project's constraint declarations, but use the implicit caret for Gopkg.toml files in dependencies. that would honor historical intent, and without ambiguity. the transition would still be jarring, though, as we'd still be causing sudden, unexpected breakages in existing builds. that's not outside the realm of possibility.
however, every counterargument to this, both here and on the reddit thread, has focused on peoples' dislike for the narrow, immediately-obvious problem that implicit carets are surprising and non-obvious.
i don't dispute that it can be counterintuitive and frustrating when you first encounter it. i never have. but we didn't just do this to annoy people - there are larger tradeoffs to weigh here, which i've at least summarized above. the arguments i need to see to move on this must take this bigger picture into account.

I'm actually fine with this behaviour, but agree it can be quite confusing. How about a warning when a bare version is used? That wouldn't break backwards compatibility.

@sdboyer Another suggestion, a bit silly, that could elevate some of the issues around this:
If we implicitly add a caret (e.g. version="1.2.3"), rewrite a new Gopkg.toml with an explicit caret (e.g. version="^1.2.3") and print a warning (or an info message) explaining what happened.
That way we keep the current behavior while preserving the stability of manifests. In the same time, we nudged people towards explicitly using carets.

I haven't heard this argument mentioned yet:

Go prefers explicitness.  Dep, by extension, should prefer explicitness.  Thus, bare versions should not be allowed.

@ibrasho, your suggestion doesn't sound silly to me.


Add TestNet API Port

Added port 38221 so the UI can request shutdown of the Stratis daemon on TestNet

Looks good @D3m0nKingx, thanks


Can't open on M1 iMac (Monterey 12.2 Beta)

Your macOS system version?

OK. I saw it on your issue title. I will look into this now.

It may have something to do with your unzip program. Try re-download it with Safari?

Have you got it working?

Have you got it working?

Yes, it's working this time. Thank you.


eltype, length and size are inconsistent with iterate

In partituclar, it means that we cannot use the Julia machinery to work with iterable objects.
Example
This works:
using PartitionedArrays
part = get_part_ids(SequentialBackend(),4)
a = map_parts(part->(part,2*part),part)
x,y = a

but this does not:
collect(a)

This has been fixed since v0.3


⚠ Bofrost.de has degraded performance

In 79751ee, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1137 ms

Resolved: Bofrost.de performance has improved in 4c1a2be after 10 minutes.


Swift 1.2 Update

Ran into some issues where it wanted named parameters and to force casting as! in a lot of places. This just needs updated so that it runs on the newest version of swift is all.

Fixed in 0d30621


python3Packages.exceptiongroup: init at 1.0.0rc2

Description of changes
Backport of PEP 654 (exception groups)
https://github.com/agronholm/exceptiongroup

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[x] Fits CONTRIBUTING.md.

@ofborg build python39Packages.exceptiongroup python310Packages.exceptiongroup

Result of nixpkgs-review pr 170660 run on x86_64-linux 1

2 packages built:

python310Packages.exceptiongroup
python39Packages.exceptiongroup

@ofborg eval


utils/update_build_version.py | DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated

Currently the GLSLANG gets a build warning from SPIRV-Tools:
[19/444] Update build-version.inc in the SPIRV-Tools build directory (if necessary).
/Users/runner/work/glslang/glslang/External/spirv-tools/utils/update_build_version.py:135: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
  iso_date = datetime.datetime.utcfromtimestamp(timestamp).isoformat()
[20/444] Building CXX object External/spirv-tools/source/CMakeFiles/SPIRV-Tools-shared.dir/util/bit_vector.cpp.o

This will eventually cause an error for CI / package managers when python is updated.

@juan-lunarg does https://github.com/KhronosGroup/SPIRV-Tools/pull/5474 not fix this?

Ah I was using an older version of SPIRV-Tools.


from the Activity to jump to the specified fragments

There is a demand, from the Activity to jump to the specified fragments,
If (" TAG_TAB_ORDER ". The equals (getIntent () getStringExtra (" tag "))) {
Bottom_navigation_bar_container. SelectTab (1);
} else {
Bottom_navigation_bar_container. SelectTab (0);
}

it's basicaaly like android tab layout. Below Fragments should be handled by you.


@conda-forge-admin,please add bot automerge

[x] I read the conda-forge documentation and could not find the solution for my problem there.

Issue:

Environment (conda list):

$ conda list

Details about  conda and system ( conda info ):

$ conda info

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/torch-scatter-feedstock#7.


Invite user api

Notion card
Summary
https://www.notion.so/saeloun/Develop-API-to-add-new-team-member-69a4e28d55ea4f39918d6b6e124c16dd
Preview

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to
not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?

Checklist:

[ ] I have manually tested all workflows
[x] I have performed a self-review of my own code
[x] I have added automated tests for my code

@akhilgkrishnan @rohitjoshixyz Please review and approve if no further review comments.

@akhilgkrishnan @rohitjoshixyz Please review and approve if no further review comments.

@supriya3105 Do not merge this PR without testing the entire user invite flow.

@akhilgkrishnan We need to merge this on the feature branch created by @ajinkyaa for the teams page refactoring. @shalapatil @ajinkyaa This PR needs to be merged into feature branch. Please coordinate among yourselves. Do not merge this on develop branch