engine's private data

is there any way to store some engine's private data?
such as  engine.path = "my work path"
used in native func

Check out https://rhai.rs/book/engine/eval-context.html?highlight=tag
The tag in the EvalContext can hold anything, but only for the current run.
If you need a constant or something, it is simplest to store it in a Scope, except that you can't access it in a native function.  If you need to access a persistent state in native functions, use EvalContext::tag.

yeah, I notice the tag.but I can't initialize it,
waiting for the set_tag API

If you can pull from https://github.com/schungx/rhai
you can try out Engine::set_default_tag...

@zhuchuanjing  have you tried out the new functionality?

Hi there. I need this exact functionality for a project that I'm considering rhai for. At the moment, I'm looking at smuggling my state into native functions through an opaque entry in Scope, but this is pretty ugly. Is this API likely to make it into the next release, or are you waiting for more feedback?

Yes, this API will go into the next release.
In the meantime, you can pull from this master, which already contains it.

It turns out that this API is not what I need - I need to be able to evaluate a rhai script with a context provided at the time of call. Ideally, this would mean paramerizing the engine with a State type, and then having a run_with_state function that passes the state through to the underlying native implementations. This would be too intrusive a change for rhai, I feel. I have come up with a solution where I (very carefully) poke my state into a thread local after extending its lifetime with some unsafe code, letting my native functions access the state, and then clean clean the global state up once my invocation function exits. This is ugly and imperfect, but it works, and it's let me proceed to an initial rhai integration.

Why can't you put the state into the tag?  You can just spawn a new Engine for each call and set the context into the tag before you run the script.

The scripts in this case are keyboard bindings that are defined by users in the form of many (maybe at the extremes, hundreds) of small scripts, with a built-in API with hundreds of entries, and I want to avoid the cost of setting up an engine for each invocation. Looking at the design, I guess it's possible to retain the AST for each script and retain the configured modules containing native functions, but I'd still have to create the engine and re-register the modules for each invocation.
Separately, it's not clear at first sight how I would pass my complex state object through the rhai::Dynamic.

Even if you use the same Engine for multiple script runs, I still can't understand why you can't call set_default_tag each time before you run the script?

Here's some code that mimics the broad structure of my project.
use rhai::{Dynamic, Engine, EvalAltResult, Module, AST};

struct State {}

fn invoke(state: &mut State, engine: Engine, script: AST) -> Result<(), Box<EvalAltResult>> {
    // What goes here?
    // engine.set_default_tag(Dynamic::from(state));
    Ok(())
}

fn main() -> Result<(), Box<EvalAltResult>> {
    let mut engine = Engine::new();
    let mut m = Module::new();
    m.set_raw_fn(
        "func",
        rhai::FnNamespace::Internal,
        rhai::FnAccess::Public,
        &[],
        move |context, args| {
            /// Operations on mutable state go here.
            println!("{:?}", context.tag());
            Ok(())
        },
    );
    engine.register_static_module("test", m.into());

    let ast = engine.compile(r#"print(test::foo)"#)?;
    let mut state = State {};
    invoke(&mut state, engine, ast)?;
    Ok(())
}

The question is what goes in that invoke function. I want to execute the AST with the context of a mutable reference to an opaque state object, and be able to recover that state object in the invocation. Any suggestions?

Simple.  Wrap the state object in Rc and then set it as the default tag.
Then just read the tag in your Rust function.

The main() function in the example is artificial: it's not so simple to have an owned State object or Rc at the point where invoke is called. The obvious choices here (say, making my State cloneable) are all worse than my hacky hack for smuggling state in, due to the nature of my project.
A truly ergonomic API for my use case would be to parameterise Engine with a State type, then allow a mutable reference to be passed into native functions. It might have been worthwhile to do it like this from scratch, but I  don't think retrofitting this strategy onto rhai is worthwhile, though. The state issue is less of a concern at the moment in my testing of rhai than being able to check for invocations of non-existent functions in modules at compile time.

Yes, such retrofitting is troublesome at this point.
Do you require the state to be mutable?  If so, I'm afraid wrapping in Rc<RefCell<State>> is probably the only option you have.  Essentially, what you have in the state is a singleton, and a mutable singleton.   You really can't avoid Rc in this case.

Yes, state must be mutable - the native functions are hooks that operate on the state by mutating it. The project is a new terminal UI library, and I'm hoping that rhai can handle keybindings, mouse bindings and macros/scripting. The "state" here is the entire widget tree and a global state object that tracks various internals of the app.
And I agree that because of lifetime constraints on references, I'm constrained to some form of singleton, however you phrase it in the code. Ultimately, I can restrict the lifetime of this singleton to the duration of a script invocation and place it in a thread local, and the 2 lines of unsafe code I've landed on is probably the most flexible way to get this done without huge changes to cater for rhai in the rest of my codebase. I'm not unhappy with how that's ended up.

Yes, ultimately a singleton is what you need, especially later on if you'll be running multiple scripts simultaneously.
Your trick of using a thread-local variable to store a shared state is interesting...  If you can mock up a minimal example, I can put that in the Book as a usage pattern!


issue: unexpected input(s) "user"

Hi @pguyot . Thank you for your awesome work on this github action.
For my use-case, I am trying to install the latest release of Raspberry Pi OS lite and download one of my repos from Github. So far, this action is doing it's work pretty well. Just a short info, the URL to the latest version of Raspberry Pi OS has changed. Maybe this could be updated?
For the next step, I am trying to create a new user, navigate to the home directory of the new user and clone the repo.
First I tried the user parameter, but this did not work:
Warning: Unexpected input(s) 'user', valid inputs are ['base_image', 'image_additional_mb', 'bind_mount_repository', 'cpu', 'cpu_info', 'commands', 'copy_artifact_path', 'copy_artifact_dest', 'copy_repository_path', 'optimize_image', 'use_systemd_nspawn', 'systemd_nspawn_options', 'bootpartition', 'rootpartition', 'shell', 'shell_package', 'exit_on_fail', 'debug', 'import_github_env', 'export_github_env']

I then tried to add a user with the useradd command, like this:
sudo useradd -p my-super-secure-password test

This works, but I cannot cd into the working directory of the user test:
warning: cannot change directory to /home/test: No such file or directory
I am testing the same setup on the same OS with an Raspberry Pi Zero W. But this seems to work fine. How can I navigate to the user "test's" home directory to clone a repo?
This is the full section of the code:
- name: run-tests-on-arm
  uses: pguyot/arm-runner-action@v2
  with:
    # Set the base_image to the desired Raspberry Pi OS version
    base_image: https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz
    image_additional_mb: 1500 # enlarge free space to 1.5 GB
    optimize_image: true
    user: test
    commands: |
      echo $PWD && ls
      sudo useradd -p my-super-secure-password test
      sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi test
      su - test
      cd /home/test

According to man page, useradd(8) does not create home directory by default.
You may want to use -m option with useradd.
If it works differently on your device, you should check the content of /etc/login.defs file on the image (for example with cat /etc/login.defs) and the device.

Thanks for your prompt reply @pguyot !
You are right, I did indeed forget the -m option. As the OS I am using is Raspberry Pi OS, the adduser command is actually preferred over the useradd command, which automatically creates the user and the home directory. I chose the more commonly known useradd command as setting a password is easier this way.
Going back to my query, I used this code for testing:
user: dummy
  commands: |
    whoami
    cd /home
    echo $PWD && ls
    sudo useradd -m -p <secret-password> dummy
    sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi dummy
    su - dummy
    whoami
    cat /etc/login.defs

Here I am first checking the current user with whoami, which outputs root. I then try to create a user dummy with the -m option and grant some privileges according to the Raspberry Pi site.
When attempting to switch switch to the user dummy and thereby confirming this whoami, the output is not dummy, but root, see the output:
/home
+ ls
pi # why is the user `pi` created here although Raspberry Pi OS no longer uses a pre-set username and password?
+ sudo useradd -m -p *** dummy
+ sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi dummy
+ su - inky
+ whoami
root

Attached is the output of cat /etc/login.defs:
#
# /etc/login.defs - Configuration control definitions for the login package.
#
# Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
# If unspecified, some arbitrary (and possibly incorrect) value will
# be assumed.  All other items are optional - if not specified then
# the described action or option will be inhibited.
#
# Comment lines (lines beginning with "#") and blank lines are ignored.
#
# Modified for Linux.  --marekm

# REQUIRED for useradd/userdel/usermod
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define MAIL_DIR and MAIL_FILE,
#   MAIL_DIR takes precedence.
#
#   Essentially:
#      - MAIL_DIR defines the location of users mail spool files
#        (for mbox use) by appending the username to MAIL_DIR as defined
#        below.
#      - MAIL_FILE defines the location of the users mail spool files as the
#        fully-qualified filename obtained by prepending the user home
#        directory before $MAIL_FILE
#
# NOTE: This is no more used for setting up users MAIL environment variable
#       which is, starting from shadow 4.0.12-1 in Debian, entirely the
#       job of the pam_mail PAM modules
#       See default PAM configuration files provided for
#       login, su, etc.
#
# This is a temporary situation: setting these variables will soon
# move to /etc/default/useradd and the variables will then be
# no more supported
MAIL_DIR        /var/mail
#MAIL_FILE      .mail

#
# Enable logging and display of /var/log/faillog login failure info.
# This option conflicts with the pam_tally PAM module.
#
FAILLOG_ENAB		yes

#
# Enable display of unknown usernames when login failures are recorded.
#
# WARNING: Unknown usernames may become world readable.
# See #290803 and #298773 for details about how this could become a security
# concern
LOG_UNKFAIL_ENAB	no

#
# Enable logging of successful logins
#
LOG_OK_LOGINS		no

#
# Enable "syslog" logging of su activity - in addition to sulog file logging.
# SYSLOG_SG_ENAB does the same for newgrp and sg.
#
SYSLOG_SU_ENAB		yes
SYSLOG_SG_ENAB		yes

#
# If defined, all su activity is logged to this file.
#
#SULOG_FILE	/var/log/sulog

#
# If defined, file which maps tty line to TERM environment parameter.
# Each line of the file is in a format something like "vt100  tty01".
#
#TTYTYPE_FILE	/etc/ttytype

#
# If defined, login failures will be logged here in a utmp format
# last, when invoked as lastb, will read /var/log/btmp, so...
#
FTMP_FILE	/var/log/btmp

#
# If defined, the command name to display when running "su -".  For
# example, if this is defined as "su" then a "ps" will display the
# command is "-su".  If not defined, then "ps" would display the
# name of the shell actually being run, e.g. something like "-sh".
#
SU_NAME		su

#
# If defined, file which inhibits all the usual chatter during the login
# sequence.  If a full pathname, then hushed mode will be enabled if the
# user's name or shell are found in the file.  If not a full pathname, then
# hushed mode will be enabled if the file exists in the user's home directory.
#
HUSHLOGIN_FILE	.hushlogin
#HUSHLOGIN_FILE	/etc/hushlogins

#
# *REQUIRED*  The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH	PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

#
# Terminal permissions
#
#	TTYGROUP	Login tty will be assigned this group ownership.
#	TTYPERM		Login tty will be set to this permission.
#
# If you have a "write" program which is "setgid" to a special group
# which owns the terminals, define TTYGROUP to the group number and
# TTYPERM to 0620.  Otherwise leave TTYGROUP commented out and assign
# TTYPERM to either 622 or 600.
#
# In Debian /usr/bin/bsd-write or similar programs are setgid tty
# However, the default and recommended value for TTYPERM is still 0600
# to not allow anyone to write to anyone else console or terminal

# Users can still allow other people to write them by issuing
# the "mesg y" command.

TTYGROUP	tty
TTYPERM		0600

#
# Login configuration initializations:
#
#	ERASECHAR	Terminal ERASE character ('\010' = backspace).
#	KILLCHAR	Terminal KILL character ('\025' = CTRL/U).
#	UMASK		Default "umask" value.
#
# The ERASECHAR and KILLCHAR are used only on System V machines.
#
# UMASK is the default umask value for pam_umask and is used by
# useradd and newusers to set the mode of the new home directories.
# 022 is the "historical" value in Debian for UMASK
# 027, or even 077, could be considered better for privacy
# There is no One True Answer here : each sysadmin must make up his/her
# mind.
#
# If USERGROUPS_ENAB is set to "yes", that will modify this UMASK default value
# for private user groups, i. e. the uid is the same as gid, and username is
# the same as the primary group name: for these, the user permissions will be
# used as group permissions, e. g. 022 will become 002.
#
# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
#
ERASECHAR	0177
KILLCHAR	025
UMASK		022

#
# Password aging controls:
#
#	PASS_MAX_DAYS	Maximum number of days a password may be used.
#	PASS_MIN_DAYS	Minimum number of days allowed between password changes.
#	PASS_WARN_AGE	Number of days warning given before a password expires.
#
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_WARN_AGE	7

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN			 1000
UID_MAX			60000
# System accounts
#SYS_UID_MIN		  100
#SYS_UID_MAX		  999

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN			 1000
GID_MAX			60000
# System accounts
#SYS_GID_MIN		  100
#SYS_GID_MAX		  999

#
# Max number of login retries if password is bad. This will most likely be
# overriden by PAM, since the default pam_unix module has it's own built
# in of 3 retries. However, this is a safe fallback in case you are using
# an authentication module that does not enforce PAM_MAXTRIES.
#
LOGIN_RETRIES		5

#
# Max time in seconds for login
#
LOGIN_TIMEOUT		60

#
# Which fields may be changed by regular users using chfn - use
# any combination of letters "frwh" (full name, room number, work
# phone, home phone).  If not defined, no changes are allowed.
# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
#
CHFN_RESTRICT		rwh

#
# Should login be allowed if we can't cd to the home directory?
# Default in no.
#
DEFAULT_HOME	yes

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD	/usr/sbin/userdel_local

#
# If set to yes, userdel will remove the user's group if it contains no
# more members, and useradd will create by default a group with the name
# of the user.
#
# Other former uses of this variable such as setting the umask when
# user==primary group are not used in PAM environments, such as Debian
#
USERGROUPS_ENAB yes

#
# Instead of the real user shell, the program specified by this parameter
# will be launched, although its visible name (argv[0]) will be the shell's.
# The program may do whatever it wants (logging, additional authentification,
# banner, ...) before running the actual shell.
#
# FAKE_SHELL /bin/fakeshell

#
# If defined, either full pathname of a file containing device names or
# a ":" delimited list of device names.  Root logins will be allowed only
# upon these devices.
#
# This variable is used by login and su.
#
#CONSOLE	/etc/consoles
#CONSOLE	console:tty01:tty02:tty03:tty04

#
# List of groups to add to the user's supplementary group set
# when logging in on the console (as determined by the CONSOLE
# setting).  Default is none.
#
# Use with caution - it is possible for users to gain permanent
# access to these groups, even when not logged in on the console.
# How to do it is left as an exercise for the reader...
#
# This variable is used by login and su.
#
#CONSOLE_GROUPS		floppy:audio:cdrom

#
# If set to "yes", new passwords will be encrypted using the MD5-based
# algorithm compatible with the one used by recent releases of FreeBSD.
# It supports passwords of unlimited length and longer salt strings.
# Set to "no" if you need to copy encrypted passwords to other systems
# which don't understand the new algorithm.  Default is "no".
#
# This variable is deprecated. You should use ENCRYPT_METHOD.
#
#MD5_CRYPT_ENAB	no

#
# If set to MD5 , MD5-based algorithm will be used for encrypting password
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
# If set to DES, DES-based algorithm will be used for encrypting password (default)
# Overrides the MD5_CRYPT_ENAB option
#
# Note: It is recommended to use a value consistent with
# the PAM modules configuration.
#
ENCRYPT_METHOD SHA512

#
# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512.
#
# Define the number of SHA rounds.
# With a lot of rounds, it is more difficult to brute forcing the password.
# But note also that it more CPU resources will be needed to authenticate
# users.
#
# If not specified, the libc will choose the default number of rounds (5000).
# The values must be inside the 1000-999999999 range.
# If only one of the MIN or MAX values is set, then this value will be used.
# If MIN > MAX, the highest value will be used.
#
# SHA_CRYPT_MIN_ROUNDS 5000
# SHA_CRYPT_MAX_ROUNDS 5000
################# OBSOLETED BY PAM ##############
#						#
# These options are now handled by PAM. Please	#
# edit the appropriate file in /etc/pam.d/ to	#
# enable the equivelants of them.
#
###############

#MOTD_FILE
#DIALUPS_CHECK_ENAB
#LASTLOG_ENAB
#MAIL_CHECK_ENAB
#OBSCURE_CHECKS_ENAB
#PORTTIME_CHECKS_ENAB
#SU_WHEEL_ONLY
#CRACKLIB_DICTPATH
#PASS_CHANGE_TRIES
#PASS_ALWAYS_WARN
#ENVIRON_FILE
#NOLOGINS_FILE
#ISSUE_FILE
#PASS_MIN_LEN
#PASS_MAX_LEN
#ULIMIT
#ENV_HZ
#CHFN_AUTH
#CHSH_AUTH
#FAIL_DELAY

################# OBSOLETED #######################
#						  #
# These options are no more handled by shadow.    #
#                                                 #
# Shadow utilities will display a warning if they #
# still appear.                                   #
#                                                 #
###################################################

# CLOSE_SESSIONS
# LOGIN_STRING
# NO_PASSWORD_CONSOLE
# QMAIL_DIR

In your script, whoami is executed after su finishes, not as part of su.
To execute it as part of su, you need to pass it with -c.
See for example https://unix.stackexchange.com/questions/1087/su-options-running-command-as-another-user#1088

Thanks for your fast reply @pguyot . Isn't there an easier way to do this? For example, if I have 20 commands I want to run as a specific user, using su -c "some_command" user would be a little tedious.
I temporarily fixed the issue by running the commands as sudo and then setting permissions back to the new-user. But having support for this in this module would be great. Although there are no more errors now, I still see the
unexpected input(s) "user" error.
Would be nice to have this feature working though!
While I cannot help with the user-issue, I can create a PR for the latest Raspberry Pi OS Lite release since the links have changed and simply adding /latest at the end of the URL does no longer work.

While I cannot help with the user-issue, I can create a PR for the latest Raspberry Pi OS Lite release since the links have changed and simply adding /latest at the end of the URL does no longer work.

Please do not hesitate to submit a PR.
Regarding permissions, this is no simple topic. Users are different from “host” and “emulated” environment because the user databases are separate. This can be confusing.

Created the PR here: #85 👍
I figured a way to make it work more or less with different user-accounts so now it works as expected, with a few roundabouts 💯
Thanks for your support!
Closing this issue as it has been resolved


FP - ice phishing

Hi there this is an old alert but seems that the ML-ice phishing bot flagged a normal trade.
Here the alert.
Here the tx.
I have not observed this for these last weeks so maybe this an edge case and was wiped out.

Not a priority


Resque::Plugins::Status::Hash.statuses fails large number of statuses

It tries to splat all the status keys and causes a stack level too deep error.
Here: https://github.com/quirkey/resque-status/blob/master/lib/resque/plugins/status/hash.rb#L31

Hey @akshaymankar
Do you have the solution? I have the same issue.

@jyr You can change ulimit to increase stack size to get around it.
But I don't really have a solution :disappointed:

In case anyone else is still looking at this, we use the following:
  module MonkeyPatches
    module ResqueStatus
      module Hash
        def self.prepended(base)
          base.singleton_class.prepend(ClassMethods)
        end

        MGET_BATCH_SIZE = 100

        module ClassMethods
          # Get multiple statuses by UUID. Returns array of Resque::Plugins::Status::Hash
          def mget(uuids)
            return [] if uuids.empty?

            # `mget(uuids)` calls `redis.mget(*status_keys)` that, due to the splat,
            # can fail with large list (limit currently unknown), so batch them
            uuids.
                each_slice(MGET_BATCH_SIZE).
                inject([]) do |fetched, slice_of_uuids|
              fetched_slice = super(slice_of_uuids) || []
              fetched.concat(fetched_slice)
            end
          end
        end
      end
    end
  end

Resque::Plugins::Status::Hash.prepend MonkeyPatches::ResqueStatus::Hash

This can be fixed by just removing the * in https://github.com/quirkey/resque-status/blob/master/lib/resque/plugins/status/hash.rb#L31 . mget is perfectly happy taking a list as an argument. Also, this has been an issue for nearly 7 years now.  Can we maybe get a release that just removes that * to fix this?


'Eventually without an assert' passes even when it shouldn't.

Eventually without an assert passes even when it shouldn't. This means tests can give false positives.
AC

Eventually should fail with a proper failure reason when the returned boolean doesn't have an assert.

TN:

Do this in discovery-api

defmodule EventuallyTest do
  use ExUnit.Case
  use Placebo

  import SmartCity.TestHelper

  describe "patiently" do
    # Correctly fails
    test "without assert" do
      Patiently.wait_for!(fn -> true == false end, dwell: 20, max_tries: 10)
    end

    # Correctly fails
    test "with assert" do
      Patiently.wait_for!(fn -> assert true == false end, dwell: 20, max_tries: 10)
    end
  end

  describe "eventually" do
    # Passes when it should not pass
    test "without assert" do
      eventually(fn -> true == false end, 20, 10)
    end

    # Correctly fails
    test "with assert" do
      eventually(fn -> assert true == false end, 20, 10)
    end
  end
end

Tech note:
eventually itself could be fixed to address this as well. Basically, it can check that if it made it into the failure case of its code, it could just raise an error (or warn) that block was falsey but had no assertion.

This was fixed while moving discovery_streams into the umbrella as several tests were written in e2e test that required other changes to eventually (mainly that MatchError were raising out)


consume and publish on separate projects

After whole day to try get messages from RabbitMQ understand if name sapce of published message and consume not be the same it is not possible to get that
pls tell me how to fix this problem
i have producer and consumer in tow separate projects
and its so bad to have same namespace

You don't need your producer and consumer to be in the same namespace. They
may be without namespace at all. But your message contracts MUST be in the
same namespace and MUST be named identically on both ends (in both your
projects). Make your life easier by putting message contracts in separate
project and reference it. Or you may place your message contract in shared
project and add code files with the contracts as a links to both your
projects. I personally prefer second.
сб, 31 авг. 2019 г. в 14:41, Reza Mousazadeh<EMAIL_ADDRESS>
After whole day to try get messages from RabbitMQ understand if name sapce
of published message and consume not be the same it is not possible to get
that
pls tell me how to fix this problem
i have producer and consumer in tow separate projects
and its so bad to have same namespace
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MassTransit/MassTransit/issues/1536?email_source=notifications&email_token=AD7NMHYR7BUGR3CKRGKSNTDQHJKFFA5CNFSM4ISTOD3KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HISUZQA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD7NMHZEJXHTWT6GH2CNJXLQHJKFFANCNFSM4ISTOD3A
.

I have a question, if some consumer is on another platform like java or python, how can I configure it?
I think namespaces is exclusive for .NET right?

It's generally not appropriate to ask a question on an issue. I'm going to lock this conversation.
There is a Python example, and Java is similar.


[Bug]: Images Not Loading on Achievements Page - Add Placeholder Support

Describe the bug
Some images on the Achievements Page are not loading correctly. This leaves blank spaces where the images should appear, making the page look incomplete and reducing the overall user experience.
To Reproduce
Go to the Achievements Page of the application.
Scroll down to view the list of achievements with images.
Observe the missing or broken images.
See the error—either no image or an empty space is shown.

 In the case of broken image links or slow loading times, a placeholder image or a loading icon should be displayed to avoid blank spaces.
Screenshot/ Video

Desktop (please complete the following information)
Device: Macbook Pro
OS: Mac Os Sequoia
Browser: Chrome
Additional context
No response

closing as resolved


Mobile SDK key的获取问题

https://rokid.github.io/mobile-sdk-android-docs/ 根据流程里面的操作，需要接入mobile sdk，申请AppKey、AppSecrect 和 accessKey。但是申请key的网站打不开https://account.rokid.com/#/setting/prove

@algebrait 请帮忙看看平台网站打不开的问题。

I'm trying to register using a mobile phone number from Brazil (+55) but I didn't receive the confirmation code.
Is there any feedback if this issue is fixed/resolved?
Thanks, effranco.


"Fast User Switching" link is broken

The Fast User Switching link goes to a 404 page https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fast_user_switching.mspx?mfr=true

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

ID: 152b37ee-6df1-10c6-d58c-7542cd2f9326
Version Independent ID: 5a7a32d6-3c42-beaa-00d0-6deb7ad6bfbd
Content: 4778(S) A session was reconnected to a Window Station. (Windows 10)
Content Source: windows/security/threat-protection/auditing/event-4778.md
Product: w10
GitHub Login: @Mir0sh
Microsoft Alias: justinha

@Justinha It was just updated in #1863


Cleaning up md.jl

This is the first part of: https://github.com/MichaelHatherly/Lexicon.jl/issues/54
I thought it is easier for you to merge if there are smaller PR so I split it.
This runs successful Pkg.test("Lexicon") and Pkg.test("Docile") as well both build.jl.
I hope there are not too many issues - but it looks nice and clean now.
I now julia is famous for multiple dispatching but it still has to look up the correct sig.
and it is a bit hard for outsiders to see which method is internally called.
function foo(a,b,c)
    funcwith100methods(a,b)  # very hard to find out which one without inserting a @which
end

Anyway: I left most of it as it was just renamed the internal save to savehtml, savemd and the internal md.jl writemime to writemd - and clean out quite a bit.

writemime -> writemd change is fine, but I'm a bit hesitant about the others.

This method is used when a docstring includes meta(" ... ", parameters = ...) and so needs to be kept.

I added:
@doc meta(" ... "; parameters = "dfadsfds") ->
g(x) = x < 2

How does one use the meta(" ... ", parameters = ...)  seems to do not call this particular function output in the md is
g(x)

...

parameters: dfadsfds

source: Lexicon/src/render/md.jl:99

which is actually quite nice: maybe we should add a mdstyle option for parameters in case someone likes to have it bold or italic?
I will later check into it which of the function actually processes it.

I found it - using
@doc meta(" ... "; parameters = "dfadsfds") ->
g(x) = x < 2

never calls this function
+#function writemd(io::IO, mime::MIME"text/md", m::Meta{:parameters})
+#    for (k, v) in m.content
+#        println(io, k)
+#    end
+#    println("""=====2 """, @which writemd(io, MIME("text/md"), v))
+#    writemd(io, MIME("text/md"), v)
+#end

but is proccessed here
function writemd(io::IO, md::Meta)
    println(io, md.content)
end

which is previous to this PR here: https://github.com/MichaelHatherly/Lexicon.jl/blob/master/src/render/md.jl#L105
Seems: we need to change something or just leave it and remove the uncalled function?

@doc meta(" ... "; parameters = "dfadsfds") ->
g(x) = x < 2

gives an error in html:
julia> save("Lexicon.html", Lexicon)
INFO: Parsing documentation for Lexicon.
INFO: writing documentation to Lexicon.html
ERROR: BoundsError
 in indexed_next at tuple.jl:21
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:125
 in writemime at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:124
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:109
 in wrap at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:174
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:108
 in wrap at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:174
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:106
 in wrap at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:175
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:104
 in wrap at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:175
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:102
 in wrap at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:175
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:100
 in writemime at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:94
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:88
 in writemime at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:86
 in writemime at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:80
 in anonymous at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:15
 in open at iostream.jl:111
 in save at /home/userk/.julia/v0.4/Lexicon/src/render/html.jl:13
 in save at /home/userk/.julia/v0.4/Lexicon/src/render.jl:141

I can download previous releases to see where it was introduced.

:parameters should be a Vector{(Symbol, T)} such as:
@doc meta(" ... ",
    parameters = [
        (:x, "x value"),
        (:y, "y value")
    ]
) ->
g(x, y) = x < y

I'm not a huge fan of meta... complex metadata descriptions start to look rather ridiculous and confusing. Embedding metadata in the docstring itself is what I prefer. (There's quite a lot of discussion on this in other issues.)
Since the Meta{:parameters} writemime isn't being used lets just remove it for the moment.

Embedding metadata in the docstring itself is what I prefer.

I'm also not planning using meta: maybe it makes more sense with html output - but I plan using markdown and there one can style things easily.
Anyway, I will fix this up and update the PR.
BTW: with the Vector the html works ;)

pushed Incooperated suggested changes Hope this will do it - will start the html.jl cleanup.

Could you squash the four commits into a single one?

Just for info with the Vector it does not look good in markdown.

That's due to a lack of a writemd(..., Meta{:parameters}) method. Not a regression so lets leave that for a later pr perhaps.

Could you squash the four commits into a single one?

Ok will send a clean new PR


HTTP_PROXY

Hi
I have issue in sending request to openai api and even by searching the doc and code base I didn't find any way to set http proxy.
There is a argument proxy in httpx but there is no way to set this in dspy.OpenAI

Resolved via #1331


Nextjs refactor: fix strange validation hours text for new validations

I copy-edited this field a couple of minutes ago but the validation message is going for a prediction :-)
I suspect that the instance 'clock' is frozen at the time it was created and I have validated something 11 hours after it was released, so this may not happen when published.

I was able to reproduce and fix this:

Done.


Updated how 'Show advanced settings' works

This PR has the following changes:

Moved Show advanced settings to the Displays tab with a local scope only.
Now all other panes will show all settings by default.
Reorganized the General to be more logical.
Removed unnecessary 'Disable software fallback' option.

This is how the Displays tab now looks like with advanced settings enabled (see the setting in the bottom right corner) and using light theme:

This is how the tab looks like with advanced disabled with dark theme:

Note: I was extra careful not to introduce any changes that mess up localizatons as we would not want an other round of translations before the full release.
Let me know if you don't like it, I am open to suggestions.

You can leave it there in General I think

All right. I just don't know how the two buttons (Check for update, Reset Preferences) will look so close to each other.

@waydabber Indeed, I hadn't thought about it… Maybe moving it in the About tab would make more sense then. Feel free to try and see how it feels and choose the one you like best

I cannot seem to find a suitable place for the button, it look silly everywhere. :] The best option might be to move the Reset Preferences button to the About tab next to the Website button as a third one but that is not entirely logical.


Update readme

Build with dune, not jbuilder
Move animation out of repository, to simplify releases

Added a conflict with base-domains as CI is now testing that. See https://github.com/ocaml-multicore/ocaml-multicore/issues/611


Fix Few display issues

Fix Asl language display issue for booking
Fix interpreter form layout issue.

@will-freshworks Please review latest code, implement frontend only fix.


MACD and DEMA Strategy

Hello, the program generates the following settings for testing
config.MACD = {
  "long": 20.843421695138005,
  "thresholds": {
    "persistence": 1.6903547506318077,
    "up": -0.012428340696021,
    "fibonacci": 0.1383140595900251,
    "high": 58.04953295840107,
    "low": 22.09129066200335,
    "down": 0.0005979862069472319
  },
  "short": 21.680672087431585,
  "interval": 3.774585878395658,
  "signal": 8.56230083381508
}

but my MACD strategy file and my DEMA startegy file lacks the following variables fibonacci, high and low.
Could you pass me a strategy files that you use to do these tests?
Sorry for the request but I'm a real noob in this. And I have some problem to understand English.
Thanks a lot!!

haa those parameters are for custom indicators found here -> https:git.com/thegamecat/gekko-trading-stuff;
You know.. paste them to strategies/indicators folder and edit plugins/tradingAdvisor/baseTradingMethod.js,
adding them to array Indicators (input: 'candle' for both TWIG and FIBO).
I got no strategies that use them, you have to search or make one :/

Is it possible to remove these indicators from the GA test?
Could I try another strategy?
Thanks!

All those settings are defined on<EMAIL_ADDRESS>they can be modified at no cost, also no benefit.
Yeah, chosen strategy is defined at Settings.py, under 'generations'.


Unable to exclude stacktrace from DataFormExceptions in OperationOutcomes when using JAX-RS providers

In issue #111, stacktraces were supposed to not be included by default. In doing some digging, it looks like AbstractJaxRsProvider#createOutcome(DataFormatException) always includes the stacktrace in the details of the OperationOutcome. So if an invalid date format is sent for a DateParam, the whole stracktrace will be included in the response. It seems like it'd be idea if DataFormatExceptions would be handled like other exceptions by having the stacktrace be included if the Exception type is included as such in ExceptionHandlingInterceptor.
(Note, this issue still exists in the latest 3.1.0-SNAPSHOT build).
See screenshot from Postman for an example:

Closing since this was fixed in HAPI FHIR 3.1.0.


Firestore: Fatal Error on document keys with ó (o-acute)

Environment

Xcode version: Xcode 9.1, Simulator: iOS 11.1 iPhone 6
Firebase SDK version: 4.5.0
Firebase Component: Firestore
Component version: 0.9.1
Development Operating System: MacOS Sierra 10.12.6

Issue
I was having an issue with FATAL crashes when query for all venues in a collection when there was a document with ó (o-acute) in the key.
Example: <FSTDocumentKey: venues/empellón-taqueria>
Even deleting the key from the Firebase Firestore Web Console would still produce FATAL crashes until I deleted the app from the simulator and re-built from Xcode.
This does not occur in the Firebase Admin Tools SDK or in the Realtime Database, only in the firebase-ios-sdk library.
Not sure if this is expected behavior, or a bug. I thought I would report it anyhow.
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'FIRESTORE INTERNAL ASSERTION FAILED: Read document has key (<FSTDocumentKey: venues/empellón-taqueria>) instead of expected key (<FSTDocumentKey: venues/empellón-taqueria>).'
*** First throw call stack:
(
	0   CoreFoundation                      0x000000011218a1ab __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x0000000110c4cf41 objc_exception_throw + 48
	2   CoreFoundation                      0x000000011218f372 +[NSException raise:format:arguments:] + 98
	3   Foundation                          0x000000010f52e089 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
	4   MyProj                               0x000000010d381eaa -[FSTLevelDBRemoteDocumentCache decodedMaybeDocument:withKey:] + 754
	5   MyProj                               0x000000010d38188f -[FSTLevelDBRemoteDocumentCache documentsMatchingQuery:] + 488
	6   MyProj                               0x000000010d382729 -[FSTLocalDocumentsView documentsMatchingCollectionQuery:] + 171
	7   MyProj                               0x000000010d38252f -[FSTLocalDocumentsView documentsMatchingQuery:] + 210
	8   MyProj                               0x000000010d3879c1 -[FSTLocalStore executeQuery:] + 79
	9   MyProj                               0x000000010d36cef4 -[FSTSyncEngine listenToQuery:] + 273
	10  MyProj                               0x000000010d36521d -[FSTEventManager addListener:] + 469
	11  MyProj                               0x000000010d366c64 __64-[FSTFirestoreClient listenToQuery:options:viewSnapshotHandler:]_block_invoke + 62
	12  libdispatch.dylib                   0x0000000116eca3f7 _dispatch_call_block_and_release + 12
	13  libdispatch.dylib                   0x0000000116ecb43c _dispatch_client_callout + 8
	14  libdispatch.dylib                   0x0000000116ed395b _dispatch_queue_serial_drain + 1162
	15  libdispatch.dylib                   0x0000000116ed42df _dispatch_queue_invoke + 336
	16  libdispatch.dylib                   0x0000000116ed007d _dispatch_queue_override_invoke + 733
	17  libdispatch.dylib                   0x0000000116ed71f9 _dispatch_root_queue_drain + 772
	18  libdispatch.dylib                   0x0000000116ed6e97 _dispatch_worker_thread3 + 132
	19  libsystem_pthread.dylib             0x000000011738f5a2 _pthread_wqthread + 1299
	20  libsystem_pthread.dylib             0x000000011738f07d start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Thanks for the report!
Was there anything special about the query you were performing here or were you just trying to listen to venues?

@wilhuff Nothing special, just listening to venues.
If I replaced the ó with an o, everything works.

Has this fix been released? I am experiencing the same issue with the following version of Firestore

Firebase/Firestore (4.7.0)
FirebaseFirestore (0.9.3)


🐛 [cloud_firestore] Cannot write to Firestore from client app when using Firestore Emulator

Bug report
Describe the bug
I'm having problems creating documents in Firestore while using Firestore Emulator. Below is the error I see in logs:
W/Firestore(13200): (24.0.1) [WriteStream]: (aa74142) Stream closed with status: Status{code=UNKNOWN, description=null, cause=null}.

In my app, after user signs up, I check if there is a document related to this user. This read operation succeeds, therefore I conclude that I can read from Firestore. If there isn't a document related to the user, a document gets created. This is the point that the code gets stuck. The write operation does not return. It does not throw an exception either.
I'm using both Authentication and Firestore emulators.
This problem does not occur all the time. For example in the app, when a new FCM token has been generated, the token is saved into the Firestore and this works without any issues. I can see the document in Firestore Emulator Dashboard. I can also create documents manually using the dashboard.
The problem occurs both on physical device and Android Emulator. While testing on physical device, I connect to the Firestore Emulator by specifying the IP address of my computer which the Firestore Emulator is running on. On Android Emulator, I provide localhost as the host of the Firestore Emulator.
Steps to reproduce
Steps to reproduce the behavior:

Set up Authentication and Firestore emulators.
Try to create a document from client app.
See that the write operation never returns.

Expected behavior
The document should be created without any problems.
Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.1, on Pop!_OS 21.10 5.15.23-76051523-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.64.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.16.1
Flutter SDK 2.10.1
flambu 1.0.0+1

dependencies:
- algolia 1.0.4 [meta http uuid]
- app_tracking_transparency 2.0.2+1 [flutter]
- appsflyer_sdk 6.5.2 [flutter]
- auto_size_text 3.0.0 [flutter]
- badges 2.0.2 [flutter]
- cached_network_image 3.2.0 [flutter flutter_cache_manager octo_image cached_network_image_platform_interface cached_network_image_web]
- carousel_slider 4.0.0 [flutter]
- cloud_firestore 3.1.8 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- confetti 0.6.0 [flutter vector_math]
- country_code_picker 2.0.2 [flutter modal_bottom_sheet collection universal_platform]
- dart_ipify 1.1.1 [http]
- dartz 0.10.1
- file_picker 4.3.3 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path]
- firebase_analytics 8.3.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_auth 3.3.7 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 1.12.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 2.5.0 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_messaging 11.2.6 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_storage 10.2.6 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- flutter 0.0.0 [characters collection material_color_utilities meta typed_data vector_math sky_engine]
- flutter_app_badger 1.3.0 [flutter]
- flutter_dotenv 5.0.2 [flutter]
- flutter_fgbg 0.1.0 [flutter]
- flutter_image_compress 1.1.0 [flutter]
- flutter_keyboard_visibility 5.1.1 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
- flutter_local_notifications 9.2.0 [clock flutter flutter_local_notifications_linux flutter_local_notifications_platform_interface timezone]
- flutter_login_facebook 1.2.1 [flutter list_ext]
- flutter_markdown 0.6.9 [flutter markdown meta path]
- flutter_rating_bar 4.0.0 [flutter]
- flutter_speed_dial 4.6.6 [flutter]
- flutter_typeahead 3.2.4 [flutter flutter_keyboard_visibility]
- form_field_validator 1.1.0 [flutter intl]
- full_screen_image_null_safe 2.0.0 [flutter]
- get_it 7.2.0 [async collection]
- google_maps_flutter 2.1.1 [flutter flutter_plugin_android_lifecycle google_maps_flutter_platform_interface]
- google_sign_in 5.2.3 [flutter google_sign_in_platform_interface google_sign_in_web]
- image_downloader 0.31.0 [flutter]
- infinite_scroll_pagination 3.1.0 [flutter sliver_tools]
- latlong2 0.8.1 [intl]
- location 4.3.0 [flutter location_platform_interface location_web]
- lottie 1.2.1 [archive characters flutter path vector_math]
- map_launcher 2.2.0 [flutter]
- multi_image_picker 4.8.01 [flutter meta]
- nil 1.1.1 [flutter]
- numberpicker 2.1.1 [flutter infinite_listview]
- path_provider 2.0.8 [flutter path_provider_android path_provider_ios path_provider_linux path_provider_macos path_provider_platform_interface path_provider_windows]
- permission_handler 8.3.0 [flutter meta permission_handler_platform_interface]
- pinput 1.2.2 [flutter]
- provider 6.0.2 [collection flutter nested]
- pull_to_refresh 2.0.0 [flutter]
- readmore 2.1.0 [flutter]
- reorderables 0.4.2 [flutter]
- share_plus 3.0.4 [meta mime flutter share_plus_platform_interface share_plus_linux share_plus_macos share_plus_windows share_plus_web]
- shared_preferences 2.0.12 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- sign_in_with_apple 3.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- tab_indicator_styler 2.0.0 [flutter]
- table_calendar 3.0.3 [flutter intl simple_gesture_detector]
- timeline_tile 2.0.0 [flutter]
- url_launcher 6.0.18 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 3.0.5 [crypto]

dev dependencies:
- flutter_launcher_icons 0.9.2 [args image path yaml]
- flutter_lints 1.0.4 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph typed_data]

transitive dependencies:
- archive 3.1.11 [crypto path]
- args 2.3.0
- async 2.8.2 [collection meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- cached_network_image_platform_interface 1.0.0 [flutter flutter_cache_manager]
- cached_network_image_web 1.0.1 [flutter flutter_cache_manager cached_network_image_platform_interface]
- characters 1.2.0
- charcode 1.3.1
- clock 1.1.0
- cloud_firestore_platform_interface 5.4.13 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 2.6.8 [cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- collection 1.15.0
- crypto 3.0.1 [collection typed_data]
- dbus 0.6.8 [args ffi meta xml]
- fake_async 1.2.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- firebase 9.0.2 [http http_parser js]
- firebase_analytics_platform_interface 2.0.1 [flutter meta]
- firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_auth_platform_interface 6.1.11 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.3.7 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.2.4 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.5.4 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.1.13 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_platform_interface 3.1.6 [firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 2.2.7 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta]
- firebase_storage_platform_interface 4.0.13 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.2.7 [async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_blurhash 0.6.0 [flutter meta pedantic]
- flutter_cache_manager 3.3.0 [clock collection file flutter http path path_provider pedantic rxdart sqflite uuid]
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_local_notifications_linux 0.4.1+1 [flutter flutter_local_notifications_platform_interface dbus path xdg_directories]
- flutter_local_notifications_platform_interface 5.0.0 [flutter plugin_platform_interface]
- flutter_plugin_android_lifecycle 2.0.5 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta typed_data vector_math]
- google_maps_flutter_platform_interface 2.1.5 [collection flutter plugin_platform_interface stream_transform]
- google_sign_in_platform_interface 2.1.1 [flutter quiver]
- google_sign_in_web 0.10.0+4 [flutter flutter_web_plugins google_sign_in_platform_interface js pedantic]
- http 0.13.4 [async http_parser meta path]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 3.1.1 [archive meta xml]
- infinite_listview 1.1.0 [flutter]
- intl 0.17.0 [clock path]
- js 0.6.3
- lints 1.0.1
- list_ext 1.0.4 [quiver collection]
- location_platform_interface 2.3.0 [flutter meta plugin_platform_interface]
- location_web 3.1.1 [flutter flutter_web_plugins http_parser js location_platform_interface meta]
- markdown 4.0.1 [args charcode meta]
- matcher 0.12.11 [stack_trace]
- material_color_utilities 0.1.3
- meta 1.7.0
- mime 1.0.1
- modal_bottom_sheet 2.0.0 [flutter]
- nested 1.0.0 [flutter]
- octo_image 1.0.1 [flutter flutter_blurhash]
- path 1.8.0
- path_provider_android 2.0.11 [flutter path_provider_platform_interface]
- path_provider_ios 2.0.7 [flutter path_provider_platform_interface]
- path_provider_linux 2.1.5 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_macos 2.0.5 [flutter path_provider_platform_interface]
- path_provider_platform_interface 2.0.3 [flutter platform plugin_platform_interface]
- path_provider_windows 2.0.5 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- permission_handler_platform_interface 3.7.0 [flutter meta plugin_platform_interface]
- petitparser 4.4.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.2 [meta]
- process 4.2.4 [file path platform]
- quiver 3.0.1+1 [matcher]
- rxdart 0.27.3
- share_plus_linux 2.0.4 [share_plus_platform_interface file flutter meta url_launcher]
- share_plus_macos 2.0.2 [share_plus_platform_interface flutter]
- share_plus_platform_interface 2.0.1 [flutter meta mime plugin_platform_interface]
- share_plus_web 2.0.4 [share_plus_platform_interface url_launcher flutter flutter_web_plugins meta]
- share_plus_windows 2.0.3 [share_plus_platform_interface flutter meta url_launcher]
- shared_preferences_android 2.0.10 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.0.9 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.0.4 [file flutter path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.2 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.3 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.0.4 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- simple_gesture_detector 0.2.0 [flutter]
- sky_engine 0.0.99
- sliver_tools 0.2.5 [flutter]
- source_span 1.8.1 [collection path term_glyph]
- sqflite 2.0.2 [flutter sqflite_common path]
- sqflite_common 2.2.0 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.4.8 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timezone 0.8.0 [path]
- typed_data 1.3.0 [collection]
- universal_platform 1.0.0+1
- url_launcher_android 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_linux 2.0.3 [flutter]
- url_launcher_macos 2.0.3 [flutter]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.7 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 2.0.2 [flutter]
- vector_math 2.1.1
- win32 2.3.10 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 5.3.1 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

@SametSahin10
Thanks for the report. When we trigger a write request, it is always written to the local database first and then gets synced with the server. I think in your case, the sync may not be happening and hence the behavior you are seeing.
The error you provided Stream closed with status: Status{code=UNKNOWN, description=null, cause=null}. doesn't indicate much. Can you provide complete console or error log that may have additional relevant log that we can use to investigate further ?

Not to hijack this issue, but I'm having the same problem as @SametSahin10.  When using Firebase in production, there are no read or write issues with Firestore.  When using the Firebase emulators (Authentication, Firestore, and Functions), reading and writing don't appear to work as expected.  Writing a document produces the same ambiguous alert:
W/Firestore(13200): (24.0.1) [WriteStream]: (aa74142) Stream closed with status: Status{code=UNKNOWN, description=null, cause=null}.
If I use an app to create a document in Firestore, I can see it appear in the Firestore Emulator Dashboard.  Likewise, I can use the dashboard to create new documents manually and see them appear.  However, within the app, only app-created documents appear in queries.  Manually-created documents do not appear.  I expect this is because, as @darshankawar wrote, the document is written to a local database before being synced with the server.
When a user logs into the app, the app requests a Firebase Function that should update a document in Firestore.  Here is a slightly redacted version of the generated error from that function.
{"severity":"ERROR","message":"Error: 2 UNKNOWN:
    at Object.callErrorFromStatus (E:\\x\\functions\\node_modules\\@grpc\\grpc-js\\build\\src\\call.js:31:26)
    at Object.onReceiveStatus (E:\\x\\functions\\node_modules\\@grpc\\grpc-js\\build\\src\\client.js:180:52)
    at Object.onReceiveStatus (E:\\x\\functions\\node_modules\\@grpc\\grpc-js\\build\\src\\client-interceptors.js:365:141)
    at Object.onReceiveStatus (E:\\x\\functions\\node_modules\\@grpc\\grpc-js\\build\\src\\client-interceptors.js:328:181)
    at E:\\x\\functions\\node_modules\\@grpc\\grpc-js\\build\\src\\call-stream.js:182:78
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
Caused by: Error
    at WriteBatch.commit (E:\\x\\functions\\node_modules\\@google-cloud\\firestore\\build\\src\\write-batch.js:417:23)
    at DocumentReference.set (E:\\x\\functions\\node_modules\\@google-cloud\\firestore\\build\\src\\reference.js:355:14)
    at E:\\x\\functions\\lib\\user\\log_in.js:19:83
    at newHandler (C:\\Users\\u\\AppData\\Roaming\\nvm\\v16.14.0\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js:319:16)
    at fixedLen (E:\\x\\functions\\node_modules\\firebase-functions\\lib\\providers\\https.js:120:41)
    at E:\\x\\functions\\node_modules\\firebase-functions\\lib\\common\\providers\\https.js:400:32
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async runFunction (C:\\Users\\u\\AppData\\Roaming\\nvm\\v16.14.0\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js:564:9)
    at async runHTTPS (C:\\Users\\u\\AppData\\Roaming\\nvm\\v16.14.0\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js:590:5)
    at async handler (C:\\Users\\u\\AppData\\Roaming\\nvm\\v16.14.0\\node_modules\\firebase-tools\\lib\\emulator\\functionsEmulatorRuntime.js:510:17) {
  code: 2,
  details: '',
  metadata: Metadata {
    internalRepr: Map(1) { 'content-type' => [Array] },
    options: {}
  },
  note: 'Exception occurred in retry method that was not classified as transient'
}"}

The Firebase Function error only seems to fire once.  The app error will fire repeatedly at increasing intervals.  I have not tried disabling the Function and attempting to write only from the app.

The issue I was having has been resolved. I don't know which change was behind this but I remember making several upgrades in the environment that I run the Firebase Emulators. It might as well be changing the version of node or upgrading Firebase Admin SDK. You can close this issue unless you want to investigate the situation @CoachJennings has gone through.

Thanks for the feedback.
@CoachJennings I suggest you to open a new issues so that it can be tracked and addressed properly.
Closing per OP's latest comment.


Add crenulation to Linear Feature Type

It would be useful to have crenulation as an option for Linear Feature Type

@panamint55

@jessicagood. This request makes sense, "crenulation" can be added to linear feature types. Do we need to do that with kobo forms? If so which branch of kobo forms is being used right now for linear features?

@nicolasmroberts @ellennelson10 Let me know when this is updated and I can pull it into the app and close this issue.

@jessicagood we have added this to the kobo form. Should be good now. You can close it when you see that it has successfully deployed with crenulation in the linear feature type

Added with commit 600037cfec441cb055da6696140ace53b7f493d3


Vaccination Json Data (EXPOSUREAPP-6885)

Just added proper annotations to json data classes.

replaced by https://github.com/corona-warn-app/cwa-app-android/pull/3058


Update ISSUE_TEMPLATE to include discussions

Discussed in https://github.com/corona-warn-app/cwa-website/discussions/3280

Originally posted by MikeMcC399 December  7, 2022
Now that discussions have been enabled in this repository, should all questions now be placed here instead of in issues?
If yes, then existing open questions should be moved to discussions.
Also the templates in https://github.com/corona-warn-app/cwa-website/tree/master/.github/ISSUE_TEMPLATE would need to be modified to point questions to discussions.

Internal Tracking ID: EXPOSUREAPP-14420

I accidentally closed it.
The Issue_Template still needs to be updated. The other tasks were already completed.

I could provide a PR for this, if you don't want to do it yourself?

I could provide a PR for this, if you don't want to do it yourself?

Sure, that would be great! I'm currently working on other things.

@Ein-Tim
How do you propose to solve this?
One way would be to

delete https://github.com/corona-warn-app/cwa-website/blob/master/.github/ISSUE_TEMPLATE/02_questions.md and
add a link to discussions  into https://github.com/corona-warn-app/cwa-website/blob/master/.github/ISSUE_TEMPLATE/01_site_issue.md

@MikeMcC399
I would start with adding a link to the issue template and after some grace period, in which all contributors are informed about the fact that questions should now be asked via the discussions feature, we could completely remove the question template.
What do you think?

@Ein-Tim
That would be a cautious way of implementing it. I don't think you need to be so careful if you look at who has been submitting issues lately! I suggest to wait for feedback from @brianebeling whether to do one step or two steps.

@MikeMcC399
Yes, you're probably right, the most active community contributors (you & me 🙂) will know about this change.
As you suggested, I'll wait for feedback from @brianebeling!

I mean @MikeMcC399 is not wrong. The number of people still actively contributing is not a lot currently. More so you two and the other maintainers. At least in this repo. I'd still go with the cautious approach, because I'm not sure how the change is perceived, yet. Leaving it there for a while doesn't do us any harm and if someone uses the template that translates to a nice initial post that is structured for a discussion when transferred, at least.

Okay, PR will follow tomorrow!

@Ein-Tim
Are you still planning to provide a PR for this?

@MikeMcC399, for sure! Sorry, it slipped through. PR will follow this afternoon.

PR https://github.com/corona-warn-app/cwa-website/pull/3291 provided.

We talked internally about the discussion feature. It hasn't had a strong negative impact, but its also hard to point out a strong positive. Personally speaking I think it was a good experience for possible future projects, but its hard to say how good it scales up to very active repositories and there have been some pain points that we likely cannot resolve in due time. So a decision has been made to go back to Issues only for this repository, to simplify the development experience and not introduce an all new approach to organization at this point in time.
Thank you for your understanding and participation. I will later convert things back to how they were before. How did you perceive the change?
Cc: @Ein-Tim @MikeMcC399 @dsarkar

I will later convert things back to how they were before.

That sounds good!

How did you perceive the change?

I think that discussions are a useful tool, especially for informational only issues. However, before I would deploy the discussions feature to all repositories of a GitHub organization the size of this one with very active development and community (like the CWA repositories at the beginning of the project), I would certainly make more tests, as I fear two things:

information is spread out over too many places and gets lost
is maintaining the discussions feature AND the issues feature worth it, or does it, in the end, come down to having two features for one and the same thing

Thank you for sharing your & the team's experience on the feature!

@brianebeling
Would it be possible to leave Discussions in place for this repository only for the remaining life-time of the project? I found them to be a useful extension for topics which did not need to be Issues.
What were your pain-points in handling discussions here? Did we raise too many topics? I can only see @Ein-Tim and myself as actually opening Discussions.
If Discussions are closed here, then I don't expect to share information in future that needs no action, since this doesn't fit the model for Issues.
I was never a fan of enabling Discussions in other repositories as I tried to make clear in https://github.com/corona-warn-app/cwa-website/discussions/3282, however I thought they were useful here in the cwa-website repository.


FormLibrary - Submit form data to new TolaTable

Purpose
Add new fields to store relation with program and silo. Update endpoint to handle creation of a table in Track.
Further Info:
Related ticket: TolaDataV2/#221

Check Travis, it's failing.

I know, I'm checking @Menda

Coverage increased (+0.2%) to 55.627% when pulling b4d9ebf39c8d8afc85c6b6bac03a04e6cd28322d on jefmoura:add-customform-instance into a04030b0a4f987eef5f9034af8ce5601bc6604ce on toladata:dev-v2.


Mongock Change Units/Logs allows duplicate and empty order strings

Description
Something that is perhaps a bug, but definitely isn't documented, is that Mongock does not throw an exception if two of more change units/logs share the same order string value. I would have expected it to throw an exception similar to Flyway, given the similar use of version/order numbers.
Looking at the code in ChangeLogComparator.java, it looks like if the order string is equal, it uses the change unit/log class's canonical name.
I can't think of a use case for allowing duplicate order strings, but recognise it would be a breaking change to start throwing an exception in such cases. It's something to at least think about for a new version.
An alternative short-term approach could also be to log a (warning) message when change logs/units share duplicate order strings in order to warn a developer.
If this is an intended feature, it should be properly documented
In addition, an empty string for the order value appears to be allowed. This seems contradictory to the documentation, which states it is a mandatory parameter. The change unit ID is also a mandatory parameter, and has checks to ensure it is not null or empty in ChangeLogItem.java. However this is not done for the order parameter.
PRIORITY
Normal
Version and environment
Mongock

Mongock version: 5.4.0
Modules involved: mongock-springboot-v3, mongodb-springdata-v4-driver
How Mongock is used: annotation approach (via @EnableMongock and application.yml)

Environment

Framework and libraries versions. Especially those that affect directly to Mongock(Spring, Spring data, MongoDB driver, etc.): Spring Boot 3.2.3, spring-boot-starter-data-mongodb 3.2.3 (Spring Data MongoDB 4.2.3, MongoDB driver 4.11.1), spring-boot-starter-jdbc 3.2.3 (Spring JDBC 6.1.4)
Infrastructure: Kubernetes, Docker, SO, etc.: N/A

Steps to Reproduce
Duplicate order values:

Create two migrations with duplicate order string value
When the application starts up and migrations are run, both migrations are run, with order dependent on class name

Empty order values:

Create a migration with an empty string order ""
Start the application

Behaviour
Duplicate order values:
Expected behavior: An exception is throw (if this was not an intended feature)
Actual behavior: Mongock allows the duplicate order values
Empty order values:
Expected behavior: An exception is throw (if this was not an intended feature)
Actual behavior: Mongock allows the empty string order value
How often the bug happens: Always

I don't mind contributing a PR for the empty order string issue, if a chosen solution can be aligned on. Consistency with existing code and documentation would dictate the value should be checked in ChangeLogItem.java, similar to what is done for the id value. However that could cause a breaking change for existing users if they've configured their migrations with empty order strings

Hello @TheSteinn ,let us understand well this issue and if you are happy to contribute with a PR, that would be amazing!

Hello @TheSteinn , should I assume you are not performing this PR? Just to doing the backlog cleaning

Hi, last I heard you wanted to get a better understanding of the issue, unless I misunderstood.
There are two related issues here:

Two ChangeUnit migrations can have the same order value
order is allowed to be an empty or whitespace string

As far as I can tell, fixing either issue would be a breaking change. I'm also somewhat confused on the relationship between ChangeLogItem and ChangeSetItem`, and their usage.


Check event existence on execution condition

As a developer, I want to be able to only use events and eventgroups as condition which have to exist to avoid situations on why actions are not executed.
Acceptance Criteria

[ ] Events are check for existence on SetExecution call
[ ] Eventgroups are check for existence on SetExecution call

Additional Information
There is already an existence check for GRPC methods, GRPC services and Functions in the SetExecution call.
This also includes 3 endpoints on #7433 which list all available values.

@eliobischof @stebenz can you please estimate this?


added twitch support

Thanks for the PR. However, could you:

Use spaces over tabs?
Not remove my default or try importing them from $XDG_...?


ctx.type= behavior & documentation mismatch

doc
http://koajs.com/#response

behavior
set full text/html also gets charset set

https://runkit.com/58955398e6ac1b00142b7580/58fc61ac15bef7001293cdb7/branches/master

koa version v2.2.0.
I guess just using ctx.set('content-type', 'text/html') works

seems like the docs are incorrect. it should always set the charset because it doesn't hurt.

Em, right. But it's nicer to point a way to get rid of the charset part. like ctx.set('content-type', blabla) directly


[Feature Request] - Wifi RSSi

Hey there,
woul dit be possible to integrate the strength of the Wifi connection in the Web UI?
Just some Text like "Signal: -67 dBi" or similar.
Michael

Hi there!
Yes, that would actually be a good idea considering the fact that WiFi seems to be common issue, thanks.
Also, thanks for the donation, appreciate it ❤

Added in v0.4.1


Do not return nil zipper

Problem/Opportunity
Movement functions return nil upon reaching the end of the movement. This possibility requires to always break the flow of manipulations with checks since for code that makes changes it is impossible to keep the accumulated changes.
Proposed Solution
Instead of returning nil, we could introduce a concept of a zipper that doesn't have a current node, but still has a current position, i. e. it is still within a given form (i. e. parents are the same) and there are still siblings to the left and/or to the right. Only the current node portion of zipper is nil, but everything else isn't. So a zipper may point at location between nodes, or before the first node, or after the last node. It also keeps all the accumulated changes. Many functions have a natural way of operation in such situation. For example, most navigation functions should work just fine. find functions should work, and so on.
It may even be possible to simplify the API for other things. For example, remove function may keep the position in tact - removal of a node means that returned zipper is pointing between the nodes and it is up to user to choose where to go from there. Insert node function could simply insert node in the current position.
Similarly, left and right functions would be stopping upon reaching the position before the first and after the last element.
Alternative Solutions
Current API, as an alternative, is prone to return nil, loosing all the accumulated results. For example, if you're iterating nodes in a form, when you reaching its end, you're loosing all the data since zipper is now nil.  In the current API, a developer has to always keep reference to the previous zipper before performing any movement to not loose the data a zipper has and this makes the resulting code harder to reason about.

Thanks for your continued interest in rewrite-clj @mrkam2. It does get quiet around here sometimes. It is nice to see some activity!
I'd have to take some time to digest your idea, but remember that any changes we entertain would also have to preserve the existing behavior to avoid breaking rewrite-clj for our many existing users.
Note also that the zip API is based on clojure.zip; as such, folks expect it to behave like clojure.zip.

Good points, we can preserve all of the existing behavior and introduce new one in a new functions. Maybe next+, remove+, etc.  From this point of view our API is already divergent enough.
remove function is very hard to use in the current API but I just realized that if I do not care about spacing, I can instead replace a node that I want to remove with a single space node. I stoped caring about spacing because in the current API it is very hard to maintain it. Instead, I apply cljfmt to the result and save a lot of development time.

 From this point of view our API is already divergent enough.

It is not all that obvious and not necessarily recommended, but you can use clojure.zip's path, lefts, etc., on a rewrite-clj. zip-created zipper.
Example REPL session:
(require '[rewrite-clj.zip :as z]
         '[clojure.zip :as cz])

(def zloc (z/of-string "[1 [2 [3]] 4]"))

(-> zloc z/down z/right z/right cz/lefts)
;; => ({:value 1, :string-value "1"}
;;     {:whitespace " "}
;;     {:tag :vector,
;;      :format-string "[%s]",
;;      :wrap-length 2,
;;      :seq-fn #function[clojure.core/vec],
;;      :children
;;      ({:value 2, :string-value "2"}
;;       {:whitespace " "}
;;       {:tag :vector,
;;        :format-string "[%s]",
;;        :wrap-length 2,
;;        :seq-fn #function[clojure.core/vec],
;;        :children ({:value 3, :string-value "3"})})}
;;     {:whitespace " "})

Note that this will not work with a :track-position? true zipper which is not compatible with the clojure.zip zipper.

remove function is very hard to use in the current API but I just realized that if I do not care about spacing, I can instead replace a node that I want to remove with a single space node. I stoped caring about spacing because in the current API it is very hard to maintain it. Instead, I apply cljfmt to the result and save a lot of development time.

Yes, formatting after changes using cljfmt (or zprint) is something a technique we've recommended to folks in the past.

I'm re-reading this issue today and I think it might stem from @mrkam2 using the paredit API.
Using paredit-type operations can be awkward with a zipper because you are not at a row/col position, you are at a node.
Take, for example, [] 3. A zipper's location is a node, and therefore, it can be [] or 3 but not inside [] after [.
This makes slurping 3 into [] slightly non-obvious. Here's the current paredit behaviour:
(require '[rewrite-clj.paredit :as pe]
         '[rewrite-clj.zip :as z])

;; slurping into empty vector, pos is at vector
(-> "[] 3"
    z/of-string   ;; at []
    pe/slurp-forward
    z/root-string)
;; => "[3]"

;; slurping into non-empty vector, pos is inside vector
(-> "[1] 3"
    z/of-string   ;; at [1]
    z/down        ;; at 1
    pe/slurp-forward
    z/root-string)
;; => "[1 3]"

;; effect of slurping into non-empty vector at vector is no-op
(-> "[1] 3"
    z/of-string   ;; at [1]
    pe/slurp-forward
    z/root-string)
;; => "[1] 3"

I'm not sure what to retitle this issue to, but I don't think the current title proposes a solution rather than captures a problem.

I'm not sure it is directly related to the paredit API usage. Paredit API has its own nuances.
Here I'm mostly concerned with how easy it is to run into a situation where in some situations you may produce a nil instead of a zipper and the only option to recover is by "going back in time" which you have to plan ahead of time. Maybe I haven't figured out the best way to use the API so that it is always easy to recover. Do you have a usage pattern that zipper works well with?

Thanks for following up @mrkam2!
For me, it is usually about checking the next (whether traveling left, right, up or down) zloc for nil to see if I am at the end of what I am traversing. It feels very similar to traversing a linked list.
Just like a linked list, if the next zloc is nil I'm at the end.
I am sure you are doing much more complicated things so please don't be insulted by a very simplistic example:
(require '[rewrite-clj.zip :as z])

(defn inc-sibs-right [zloc]
  (if-let [next (z/right zloc)]
    (recur (z/edit next inc))
    zloc))

(-> "[1 2 3 4 5 6]"
    z/of-string
    z/down
    inc-sibs-right
    z/root-string)
;; => "[1 3 4 5 6 7]"

Does that help at all?

Correct, that's how it could be done. So it can't be simply chained in ->, you need a loop and a recur which require writing custom functions such as inc-sibs-right. I was thinking about a solution that works with more constructs of the Clojure language: iterate, reduce, threading, etc.
I haven't used the library recently, so it is hard for me to come up with a good example now. Here are a few generic utilities I ended up creating to workaround some of the edge cases:
(defn- safe-iterate
  "Creates a lazy sequence using the movement function, stopping upon reaching
  end. Also checks for thread's interrupted state so that endless loops can
be interrupted."
  [f zloc]
  (->> (iterate f zloc)
       (take-while #(if (.isInterrupted (Thread/currentThread))
                      (throw (ex-info "Interrupted" {:zloc %}))
                      (not (z/end? %))))))

(defn zloc-remove
  "Removes the current node selecting the node matching the given traversal
  function."
  [zloc f]
  (let [n (z/node (f zloc))
        z (z/remove zloc)]
    (loop [pr z
           nx z]
      (condp = n
        (z/node pr) pr
        (z/node nx) nx
        (recur (z/prev pr) (z/next z))))))

(defn zloc-remove*
  "Removes the current node selecting the node matching the given traversal
  function."
  [zloc f]
  (let [n (z/node (f zloc))
        z (z/remove* zloc)]
    (loop [pr z
           nx z]
      (condp = n
        (z/node pr) pr
        (z/node nx) nx
        (recur (z/prev* pr) (z/next* z))))))

(defn kill
  "Removes the current node and all of its sibling nodes to the right.
  Selects the next node.
  `[{a b} |2 3 4] -> [{a b}] |`"
  [zloc]
  (let [n (->> zloc (safe-iterate z/right*) count)]
    (->> zloc
         (safe-iterate (comp z/next* z/remove*))
         (drop n)
         first)))

I also had some functionality that marks the current node which I borrowed from LSP library although it felt like there is no guarantee that any custom marker will survive through all the updates of the tree:
(defn- node-marked? [node marker]
  (contains? (get node ::markers) marker))

(defn- zloc-marked? [zloc marker]
  (node-marked? (z/node zloc) marker))

(defn- back-to-mark-or-nil
  [zloc marker]
  (z/find zloc z/prev (fn [loc] (zloc-marked? loc marker))))

(defn- mark-position
  [zloc marker]
  (z/replace zloc (update (z/node zloc) ::markers (fnil conj #{}) marker)))

(defn- unmark-position
  [zloc marker]
  (z/replace zloc (update (z/node zloc) ::markers disj marker)))


Bluetooth issue on High Sierra preventing takeoff after landing.

Hi hi hi!
I'm using MacOS High Sierra 10.13.2
Noble does not work currently from the master branch for High Sierra. To work around this, there is a pull request open with High Sierra support:  https://github.com/sandeepmistry/noble/pull/689/
This is working ok to control the drone and take off, however, after landing, it will not take off again. It seems that the Noble High Sierra pull request does not register notifications correctly.
I have confirmed that isNotification being passed to .getCharacteristic is always false on the High Sierra Pull Request. When isNotification is always false, node-rolling-spider will not emit flyingStatusChange on lines 285-291.  This keeps the state of flying to false after it lands and prevents take off. When I comment out lines 287-290, or manually set this.status.flying = false in the land function, then it will take off and land and take off again.
https://github.com/voodootikigod/node-rolling-spider/blob/master/lib/drone.js#L285-L291
I don't know enough about how bluetooth works inside the Noble library to fix this registration of notifications. I also don't understand what the isNotification check is used for and why I can comment it out and it seems to be ok?
Thanks everyone!

Ok it seems like we need to update the lib but it should work: https://github.com/sandeepmistry/noble#characteristic-1
cc @jacobrosenthal do you confirm? Thanks!

node rolling spider needs to update to<EMAIL_ADDRESS>and not rely on the isnotification flag anymore


docs: fix note in GEP 709 markdown

Github wasn't rendering the note about the renaming for ReferenceGrant properly, this patch simply updates the format to the correct syntax for a markdown note in Github.

@shaneutt I think I'd prefer to prioritize mkdocs rendering of our Markdown over GitHub's rendering. This particular change improves GitHub but unfortunately is a bit of a downgrade on mkdocs:
Before:
https://gateway-api.sigs.k8s.io/geps/gep-709/
After:
https://deploy-preview-1509--kubernetes-sigs-gateway-api.netlify.app/geps/gep-709/
Not sure if there's a way to make this look good in both places.

Yeah, I was waiting for the preview to see what it would look like, that's too bad. Closing for now :+1:


AutoDetect trying to delete existing Web Resource - SPKL Beta

Logic I added tries to delete a Web Resource that is present in the directory if the Case on the file name has changed. Need to modify the following line in the DeployDirectory method:
WebResource webResourceListItem = curWebResources.FirstOrDefault(wr => wr.Name == relativePathFileName.Replace("\", "/"));
to the following:
WebResource webResourceListItem = curWebResources.FirstOrDefault(wr => wr.Name.ToLower() == relativePathFileName.ToLower().Replace("\", "/"));

Good spot - Will you do a PR and add a unit test for that issue?

Yes, doing some more testing.
From: Scott Durow<EMAIL_ADDRESS>Sent: Friday, September 21, 2018 12:54 PM
To: scottdurow/SparkleXrm<EMAIL_ADDRESS>Cc: Matt Parks<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [scottdurow/SparkleXrm] AutoDetect trying to delete existing Web Resource - SPKL Beta (#276)
Good spot - Will you do a PR and add a unit test for that issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/scottdurow/SparkleXrm/issues/276#issuecomment-423621021 , or mute the thread https://github.com/notifications/unsubscribe-auth/ALaxMLDA1m1D0YG-4WbyiVBdzLlWzcTzks5udSfSgaJpZM4W0kZ1 .  https://github.com/notifications/beacon/ALaxMLE-JARgN4m6irpGXZPcexZszTi4ks5udSfSgaJpZM4W0kZ1.gif

Included in https://www.nuget.org/packages/spkl/1.0.233-beta

This is released as https://www.nuget.org/packages/spkl/1.0.370


draft: Check trash path

Issue
The current implementation allows the removal of a trash folder with trash-rs
Fix
This seems rather weird so i added a check for it.
Note
I also added an example that simply passes all args to delete_all. I made it anyway so might as well push it.
This is marked as a draft because I'm not sure whether my code meets your quality.

i added freedesktop support because i'm on a linux device and don't have a macos environment to test in.
I'll look into it but i can't properly test it.

I'll look into it but i can't properly test it.

Once there is an integration test that tries to delete the trash directory, CI will test it for you. And for this feature to go forward, this will be needed. Thanks for your understanding.


IEEE802154 libtock-sync sending timeout

This updates the libtock-sync send raw to timeout after 100ms. This prevents a failing or delayed 15.4 transmission from blocking the application. This PR also adds separate objects for maintaining state across raw/standard sending.
This fixes a last minute bug found in the Thread tutorial, but I am not convinced this is necessarily the correct approach long term.

I think this is fine for now. The separation into raw / non-raw makes sense to me.
The timeout in the callback is more tricky. What can happen here is that the timeout fires, but a callback for the send operation will still be scheduled. A subsequent call to send might then receive this stale callback and assume that its packet has been completely transmitted, and proceed to unshare buffers, etc.
We should revisit this and make sure that we, e.g., associate callbacks with a particular send operation instead. Being able to have a timeout on a send call seems important.


Type 'URLPattern' has no construct signatures.

import { URLPattern } from "urlpattern-polyfill";

new URLPattern(); // Type 'URLPattern' has no construct signatures.

Codesandbox reproduction - https://codesandbox.io/p/sandbox/still-water-s2t9pg
Current type:
https://github.com/kenchris/urlpattern-polyfill/blob/d02a0f4fdb056f59e103eee3d0d4f6d0f2df6840/src/index.d.ts#L10
// I think we can change it to class declaration (it works for me)
export declare class URLPattern extends Types.URLPattern {}

I just noticed this pull request https://github.com/kenchris/urlpattern-polyfill/pull/111. I hope you will merge this soon.


Supporting bigint as primary key

        SchemaBuilder.CreateTable(nameof(Sample), table => table
            .Column<long>("SampleId", col => col.Identity().PrimaryKey())
            .Column<string>("Value", col => col.WithLength(200))
        );

generate a table with int primary key instead of bigint primary key.

Can you elaborate for the needs of using bigint for ids? Is it that you are afraid of being limited over time?
Shouldn't it also update the type for the Identity table that contains the ranges of ids for inserts?

Is it that you are afraid of being limited over time?

Many of us even I 😄 was worried little bit to reach the limit over the time

@sebastienros Maybe I shouldn't be worry about being limited over time, but it is the only reason. By updating the Identity Column, you mean a scenario that we have an existing table with Identity int32 and then we have AlterTable command that change the Identity to 64? I didn't check that, I will try it and try to find a way to avoid it

What I mean is that there are other tables in the system that use int and should be converted to bigint in that case, otherwise you are only fixing part of the problem. Also there is some reflection code around ids, that might need to be adapted. The best way would be to add a unit test that seeds the ids at a number above the int limit and creates some data.
A concern could be perf also, I believe the db could be slower with bigint, but I am not sure how much. Same, a benchmark would show it.

@sebastienros  Now I got what you mean. Actually, the usecase for supporting bigint for primary key is not for Index tables or main Document table.  Alongside Document and its associated index tables, there are some other tables that would contain much higher volume of records and I want to manage them through the same Migration files and SchemaBuilder.


Design QA: Trading Page Mobile - Outcome selector

Design: https://www.figma.com/file/bZh7tOiLm6Ls9Hl4RL6qMC5X/Augur-Redesign?node-id=12661%3A2062

[x] Dropdown selector is 40px height on mobile
[x] Update text size and style
[ ] Update arrow style
[x] Menu items are 48px height for mobile
[x] check colours and interactions are in sync with the design
[ ] BG shadow when dropdown is active

@JohnDanz @matt-bullock https://www.figma.com/file/bZh7tOiLm6Ls9Hl4RL6qMC5X/Augur-Redesign?node-id=12661%3A2062 returns 404

@JohnDanz @matt-bullock https://www.figma.com/file/bZh7tOiLm6Ls9Hl4RL6qMC5X/Augur-Redesign?node-id=12661%3A2062 returns 404

I have access to the file now.


Configuration option to make posts editable posts by owners

I'm working with a local charity organisation who enjoy Zulip but are finding it frustrating to build up some initial content for member onboarding/introductions and such like. They have several members of staff who are finding they cannot edit each others posts to refine and adjust content in the member streams, so are working around this with a single generic user account.
In most projects, this isn't ideal as it encourages poor security practices and can create confusion and ambiguity. Equally, I see the value in protecting the integrity of other user's past posts. That said, with suitable caveats presented, might it be useful to allow users with the owner role to have a configurable option to amend the source of past posts?

@johangant I don't see us allowing a user (even if it is owner) to edit other user's messages. We may implement a feature to allow other users to suggest edits directly in the posted message. I think we may see more request for this after web public view is out.
For now, I would suggest you copy the source of the message, edit the message and PM the sender.

https://github.com/zulip/zulip/issues/15851 is relevant here.  I hope we eventually implement that feature.  We want to avoid any edits, even by owners, unless there's explicit consent from the user and proper attribution of who did the edit.  But I do see the use cases both in this issue and other similar issues.


@vitest/mocker v3.0.0-beta.2 does not support vite v6 as a peer-dependency

Describe the bug
When installing vite v6 and vitest v3.0.0-beta.2 using pnpm, I get the following warning:

It seems that @vitest/mocker v3.0.0-beta.2 does not support vite v6 as a peer-dependency
Reproduction
See https://github.com/vitest-dev/vitest/blob/v3.0.0-beta.2/packages/mocker/package.json#L58 for the problematic line
System Info
System:
    OS: Windows 11 10.0.22000
    CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz
    Memory: 9.96 GB / 31.28 GB
  Binaries:
    Node: 22.12.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.22 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.8.3 - C:\Program Files\nodejs\npm.CMD
    pnpm: 9.15.0 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Spartan (44.22000.2600.0), Chromium (131.0.2903.51)
    Internet Explorer: 11.0.22000.2600
  npmPackages:
    @vitejs/plugin-react-swc: 3.7.2 => 3.7.2
    @vitest/coverage-v8: 3.0.0-beta.2 => 3.0.0-beta.2
    @vitest/ui: 3.0.0-beta.2 => 3.0.0-beta.2
    vite: 6.0.3 => 6.0.3
    vitest: 3.0.0-beta.2 => 3.0.0-beta.2

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Not released yet, but this has been fixed on main

https://github.com/vitest-dev/vitest/pull/7058


CI reworking

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: hbitoun-aneo:x: ngruelaneoYou have signed the CLA already but the status is still pending? Let us recheck it.


Intellij Dart/Flutter plugin cannot auto complete not-imported extensions

@RussellZornes commented on Jul 11, 2020, 6:09 PM UTC:
Steps to Reproduce
When you attempt to use auto complete to call a class extension method, the name of the extension method(s) do not appear in the auto complete popup.
// string_ext.dart
extension StringExt on String {
  bool get isValid => this != null && isNotEmpty && trim().isNotEmpty;
}

// foo.dart (notice I'm not importing the extension but its in my project.
testExt() {
  String x;
  if (x.<I want to see isValid show up in the auto complete here>) {
    // something
  }
}

Expected:
The extension method should appear in the auto complete popup on String and if selected the import for the extension should be added to the file.
Results:
The extension methods on String do not show up in the auto complete popup. I have to add the extension import manually first and then the method will show in the auto complete. Makes discovering available extension methods difficult.
Version info
[✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.5 19F101, locale en-US)
• Flutter version 1.17.5 at /dev/app-flutter/.flutter
• Framework revision 8af6b2f038 (11 days ago), 2020-06-30 12:53:55 -0700
• Engine revision ee76268252
• Dart version 2.8.4
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/rzornes/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• ANDROID_HOME = /Users/rzornes/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.4, Build version 11E146
• CocoaPods version 1.8.4
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 45.1.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
[✓] Connected device (1 available)
• iPhone 11 Pro Max • C11A42DB-35DA-4E14-83B5-F928F78B8F14 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-4 (simulator)
• No issues found!
This issue was moved by stevemessick from flutter/flutter-intellij#4697.

any updates?

No updates, sorry.

@scheglov Is it true that we still don't offer these completions?


V8.0RC1 - Dashboard: None of the pages work correctly. - inc('elements/footer.php');

8.0RC1: When just installed on Windows Server with PHP v7 it shows this message on every page in the Dashboard: inc('elements/footer.php');
Sitemap doesn't load, File manager doesn't load etc.
http://puu.sh/seUj5/9baf0ceb8e.png
http://puu.sh/seUkd/971c180bd8.png

I had a same problem. You can fix it from the file /concrete/themes/dashboard/view.php and line 116. Change <? to <?php and after that everything should work as normal.

This has been fixed and will be a part of RC2.


New App Submission

App Logo (Required)

App Details (Required)
Type: Dapp
Name: MoonCat World
Homepage Url: mooncatworld.com
Chains supported:
App Url (Required - at least one)
Browser Url:
iOS Url:  https://apps.apple.com/us/app/mooncat-world-nft-ar-gallery/id1563306541
Android Url: https://play.google.com/store/apps/details?id=com.jackpottechnologies.mooncatworld
Mac Url:
Windows Url:
Linux Url:
Mobile Linking (Optional)
Deep Link:
Universal Link:
Desktop Linking (Optional)
Deep Link:
Universal Link:
Metadata (Optional)
Short Name:
Primary Color:
Secondary Color:

both iso and android app urls are broken

Hi,  I can't get the android or ios URL live until the app works.  They need to be reviewed with it working.
For the ico file.  This is the wordpress generated one.  Do you need something else?
https://mooncatworld.com/wp-content/uploads/2021/04/cropped-icon-1024-192x192.png\
Thanks

Hi,  We've shipped an update of the app on iOS and Android but it still has the wrong app for the wallet connect.  can we get this submission approved.

Added on commit 39a034b


Fix pass of USE_COMPILER_DEFAULT_LIBC from make (Makefile) to cmake (CMakeLists.txt)

Good to me.
PS How did this work for IoTjs?

@egavrin, IoTjs calls cmake directly, without make.

lgtm

make push


Compilation error when performant feature is enabled for polars

When the "performant" feature of polars is enabled, compiling a project with pyo3-polars 0.16.0 gives the following compilation error with rustc 1.80.1:
   Compiling pyo3-polars v0.16.0
error[E0004]: non-exhaustive patterns: `&DataType::Struct(_)` not covered
   --> /Users/luke/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-polars-0.16.0/src/types.rs:357:15
    |
357 |         match &self.0 {
    |               ^^^^^^^ pattern `&DataType::Struct(_)` not covered
    |
note: `DataType` defined here
   --> /Users/luke/.cargo/registry/src/index.crates.io-6f17d22bba15001f/polars-core-0.42.0/src/datatypes/dtype.rs:44:1
    |
44  | pub enum DataType {
    | ^^^^^^^^^^^^^^^^^
...
92  |     Struct(Vec<Field>),
    |     ------ not covered
    = note: the matched value is of type `&DataType`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
    |
492 ~             },
493 +             &DataType::Struct(_) => todo!()
    |

For more information about this error, try `rustc --explain E0004`.

cargo.toml
[dependencies]
polars = { version = "0.42", features = ["diagonal_concat", "performant"] }
pyo3 = { version = "0.22", features = ["abi3-py310"] }
pyo3-polars = "0.16"
rayon = "1.10"

This error does not occur when pyo3-polars 0.15, polars 0.41, pyo3 0.21 are used, or when the performant feature is removed.

Adding "dtype-struct" feature yields the same error in my plugin project
[dependencies]
pyo3 = { version = "0.22.2", features = ["extension-module", "abi3-py38"] }
pyo3-polars = { version = "0.16.0", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
polars = { version = "0.42.0", features = [
    "dtype-struct",
], default-features = false }

Adding "dtype-struct" feature yields the same error in my plugin project

The solution seems to be to add the dtype-struct feature to pyo3-polars, but this currently causes a compilation error. I've fixed that in PR #99.