error: selector 'glibc-locales' matches no derivations

Describe the bug
While running nixos-rebuild switch i get the following output:
building Nix...
building the system configuration...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
activating the configuration...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
setting up /etc...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
reloading user units for tmn...
error: selector 'glibc-locales' matches no derivations
setting up tmpfiles

Also, whenever I open a terminal I get
error: selector 'glibc-locales' matches no derivations

Steps To Reproduce
Run sudo nixos-rebuild switch with my config.
Expected behavior
Locales not broken :)
Additional context
I tried the following to no effect. Also some combination of similar settings, as you can see in my config linked above..
i18n.defaultLocale = "en_US.UTF-8";
i18n.supportedLocales = ["all"];

Removing all packages does not fix the error.
Locale looks like this:
❯ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_AT.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.126, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.16`
 - channels(tmn): `"nixos-22.05-22.05.1806.e732e1fdbf7"`
 - channels(root): `"nixos-21.11.337967.573603b7fdb"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Are you sure that en_AT.UTF-8 exists?
It's not included in glibc as far as I can tell:
 env -i LOCALE_ARCHIVE=(nix eval --raw nixpkgs#glibcLocales)/lib/locale/locale-archive locale -a | rg en_AT
(0|1) 

 env -i LOCALE_ARCHIVE=(nix build --no-link --print-out-paths github:nixos/nixpkgs/nixos-22.05#glibcLocales)/lib/locale/locale-archive locale -a | rg en_AT
(0|1) 

 env -i LOCALE_ARCHIVE=(nix build --no-link --print-out-paths github:nixos/nixpkgs/nixos-21.11#glibcLocales)/lib/locale/locale-archive locale -a | rg en_AT
(0|1) 

As an aside, you don't need to configure LANG in extraLocaleSettings as that's what's set by defining defaultLocale. You also probably do not want en_US without the .UTF-8, as, unless I'm mistaken, that should be the old ISO-8859-1 locale.

I don't particularly want to use en_AT, I'm not sure why it is being set. Even when I set LC_TIME to "en_US.UTF-8" in extraLocaleSettings it seems to be set to en_AT.
You're also right about en_US without UTF-8, that was just me trying to cargo-cult my way out of this.

Have you tried rebooting, or just unsetting LC_TIME in your shell/current running session?

After reboot forcing LC_TIME does work and indeed seems to fix the problem. I guess the en_AT is indeed not working. Thanks a lot!

I was a bit too optimistic - the error is still showing when I nixos-rebuild switch, just not when I open a new terminal ')

If you reduce your locale settings down to just  i18n.defaultLocale = "en_US.utf-8";, and then do a nixos-rebuild boot followed by a reboot, does that fix the issue?
Because you're probably currently booted in the old broken configuration, something that you can verify by checking the contents of /etc/locale.conf.

Only setting defaultLocale gives slightly worse results:
❯ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_AT.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

and a bit more errors when doing a rebuild (after reboot):
 sudo nixos-rebuild switch
[sudo] password for tmn:
building Nix...
building the system configuration...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
activating the configuration...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
setting up /etc...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
reloading user units for tmn...
error: selector 'glibc-locales' matches no derivations
setting up tmpfiles

I should clarify this was broken before I started changing the locale settings - otherwise I would not have touched them. There is no working generation to fall back to, AFAIK this was broken on my fresh install.

The warnings don't really matter, they're just perl complaining because LC_TIME is still set to en_AT.UTF-8 in your current session, and should go away as soon as that's not the case.
More importantly, to see exactly what part of the activation script outputs the error, could you try running nixos-rebuild switch with strace?
Though before doing that, it's probably worth seeing if
 grep LOCALE_ARCHIVE /run/current-system/bin/switch-to-configuration
    $ENV{LOCALE_ARCHIVE} = "/nix/store/bykbi1ihjpn0v01lqrlsdpbcsxnpc657-glibc-locales-2.34-210/lib/locale/locale-archive";

Points to something that exists.

This seems to point at something
❯ grep LOCALE_ARCHIVE /run/current-system/bin/switch-to-configuration
    $ENV{LOCALE_ARCHIVE} = "/nix/store/ch13s2s8lndcfgqanr01342x31w02ba7-glibc-locales-2.33-123/lib/locale/locale-archive";

The strace:
sudo strace nixos-rebuild switch
(some stuff omitted..)
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [INT TERM CHLD], 8) = 0
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f358ddc3a10) = 24459
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x446c90, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, {sa_handler=0x4693d0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 24459
rt_sigaction(SIGINT, {sa_handler=0x4693d0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, {sa_handler=0x446c90, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=76, ws_col=167, ws_xpixel=0, ws_ypixel=0}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24459, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, 0x7ffce1261610, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[]})                 = 0
read(255, "\n\n# If we're not just building, "..., 8172) = 592
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -190, SEEK_CUR)              = 17228
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f358ddc3a10) = 24477
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x446c90, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, {sa_handler=0x4693d0, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f358de01c40}, 8) = 0
wait4(-1, perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
activating the configuration...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
setting up /etc...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_TIME = "en_AT.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
reloading user units for tmn...
error: selector 'glibc-locales' matches no derivations

Sorry, I should have probably specified with -f as error: selector 'glibc-locales' matches no derivations is probably caused by some child process.
Anyway, if that file exists, I don't really see what the issue here could be.
The only thing that comes to mind is that this is caused by something like the activation script doing a systemctl daemon-reload or similar, and that the service manager (or similar) still references the old broken environment from when you booted. But I don't recognise the error message.
If you reboot now, as you noted, your current locale.conf looks good, and so you'd think that things should™ work.

https://gist.github.com/tmnvanderberg/f55b51e4ab0cc8bc441e2e7317028eb3
It's quite a dump.

Yeah, I'm at a bit of a loss...
You can see the error message here: https://github.com/NixOS/nix/blob/17e54a602ef2a767ae3fe5d8789bc4658f439c37/src/nix-env/nix-env.cc#L230
And the strace unfortunately doesn't help much.
Anyway, for a starting point to pin down the culprit you can look at the relevant part of the activation script:
 grep -A5 reloading.user /run/current-system/bin/switch-to-configuration                                                                                23:45:35
    print STDERR "reloading user units for $name...\n";

    system("/nix/store/6jzkd30lalckhd2p9wj9a595xkq26p92-shadow-4.11.1-su/bin/su", "-s", "/nix/store/lj2bdg618093ny9505d0nzzjdq0fwp8a-bash-5.1-p16/bin/sh", "-l", $name, "-c",
           "export XDG_RUNTIME_DIR=/run/user/$uid; " .
           "$cur_systemd/systemctl --user daemon-reexec; " .
           "$new_systemd/bin/systemctl --user start nixos-activation.service");

Notice I overlooked this yesterday.

I should clarify this was broken before I started changing the locale settings - otherwise I would not have touched them. There is no working generation to fall back to, AFAIK this was broken on my fresh install.

If this really was always broken your best bet might be to boot an up to date install medium and run nixos-install again, as your configuration.nix seems fine aside from the—as we've already covered—broken locale settings.
Unless someone with deeper knowledge ends up sweeping in and saving the day that is.

(click to open some confused analysis)
Could the errors be related to:

#38991

I have two machines with near identical configuration (and no intentional changes in locale config AFAICT).
The one that has no warnings/errors looks like this:
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.59, NixOS, 22.11 (Raccoon), 22.11pre398503.4bdf4169ad2`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.10.3`
 - channels(root): `"nixos"`
 - channels(eddy): `"home-manager"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

$ env | grep -i locale
LOCALE_ARCHIVE_2_27=/nix/store/s3bf05my50y37v88mm6krs1x4s7399rn-glibc-locales-2.35-163/lib/locale/locale-archive
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive

Note the LOCALE_ARCHIVE_2_27 env var - I don't have that on the machine that's complaining!
The path does seem to be present on both machines, and if I set it the right value, locale starts working.
I have no idea what sets that env var, if I'm going to lose it next time I upgrade, etc.

Nevermind, did more testing, I'm pretty sure I was only affected by this:

#177318

It only just so happens that I only have home-manager set up on one of those machines, and that seems to have logic to set LOCALE_ARCHIVE_2_27 to the full locale archive all on its own.


Hiding aliases in the help-text

I had to do some refactoring of the command-names of my CLI, but I don't want to break existing scripts. I solved this by adding the old subcommand-names as aliases to the new names.

Unfortunately, the help-text is fairly long now. What's worse, the help-text suggests that the old-style-command-names are still "ok" -- but in reality, I want to remove the aliases in a few weeks.
Is there an easy way to "hide" the aliases, so that they are not automatically put into the helptext?

@mj-h yes this is possible by customizing how the command list is rendered.
You can install a custom HelpFactory that provides a subclass of picocli's Help class.
Here is an example that does this to customize the list of positional parameters.
In your Help subclass you override the public String commandList(Map<String, Help> subcommands) method. You can copy most of the code from picocli and instead of having a comma-separated list of command names, you just have the main command name.
Something like this:
class MyHelpFactory implements IHelpFactory {
        @Override
        public Help create(CommandSpec commandSpec, ColorScheme colorScheme) {
            return new Help(commandSpec, colorScheme) {

        @Override
        public String commandList(Map<String, Help> subcommands) {
            if (subcommands.isEmpty()) { return ""; }
            int commandLength = maxLength(subcommands.keySet());
            Help.TextTable textTable = Help.TextTable.forColumns(colorScheme().ansi(),
                    new Help.Column(commandLength + 2, 2, Help.Column.Overflow.SPAN),
                    new Help.Column(width() - (commandLength + 2), 2, Help.Column.Overflow.WRAP));
            textTable.setAdjustLineBreaksForWideCJKCharacters(adjustCJK());

            for (Map.Entry<String, Help> entry : subcommands.entrySet()) {
                Help help = entry.getValue();
                UsageMessageSpec usage = help.commandSpec().usageMessage();
                String header = !empty(usage.header())
                        ? usage.header()[0]
                        : (!empty(usage.description()) ? usage.description()[0] : "");
                Text[] lines = colorScheme().text(format(header)).splitLines();
                for (int i = 0; i < lines.length; i++) {
                    textTable.addRowValues(i == 0 ? help.commandNamesText(", ") : Ansi.EMPTY_TEXT, lines[i]);
                }
            }
            return textTable.toString();
        }
    }
    }
}

Install the factory in the main method:
    public static void main(String[] args) {
        CommandLine cmd = new CommandLine(new App());
        cmd.setHelpFactory(new MyHelpFactory());
        cmd.execute(args);
    }

In the innermost for-loop, do you mean something like this?
textTable.addRowValues(i == 0 ? colorScheme().commandText(help.aliases().get(0)) : Ansi.EMPTY_TEXT, lines[i]);

I had some minor issues private fields, so I ended up copy/pasting a few more snippets and placed the final result into the picocli-package (due to a package-private method). This is the full class that I implemented, thanks to your suggestion:
package picocli;

import picocli.CommandLine.Help;
import picocli.CommandLine.Help.Ansi.Text;
import picocli.CommandLine.Help.ColorScheme;
import picocli.CommandLine.IHelpFactory;
import picocli.CommandLine.Model.CommandSpec;
import picocli.CommandLine.Model.UsageMessageSpec;

import java.util.Collection;
import java.util.IllegalFormatException;
import java.util.Map;

public class AliasHidingHelpFactory implements IHelpFactory {
    private static boolean empty(Object[] array) {
        return array == null || array.length == 0;
    }

    private static int maxLengthMainCommand(Collection<?> any) {
        int result = 0;
        for (Object value : any) {
            result = Math.max(result, String.valueOf(value).split(",")[0].length());
        }
        return result;
    }

    private static String format(String formatString, Object... params) {
        try {
            return formatString == null ? "" : String.format(formatString, params);
        } catch (IllegalFormatException ex) {
            new CommandLine.Tracer().warn("Could not format '%s' (Underlying error: %s). " +
                    "Using raw String: '%%n' format strings have not been replaced with newlines. " +
                    "Please ensure to escape '%%' characters with another '%%'.%n", formatString, ex.getMessage());
            return formatString;
        }
    }

    @Override
    public Help create(CommandSpec commandSpec, ColorScheme colorScheme) {
        return new Help(commandSpec, colorScheme) {

            @Override
            public String commandList(Map<String, Help> subcommands) {
                if (subcommands.isEmpty()) {
                    return "";
                }
                int commandLength = maxLengthMainCommand(subcommands.keySet());
                Help.TextTable textTable = Help.TextTable.forColumns(colorScheme().ansi(),
                        new Help.Column(commandLength + 2, 2, Help.Column.Overflow.SPAN),
                        new Help.Column(width() - (commandLength + 2), 2, Help.Column.Overflow.WRAP));
                textTable.setAdjustLineBreaksForWideCJKCharacters(adjustCJK());

                for (Map.Entry<String, Help> entry : subcommands.entrySet()) {
                    Help help = entry.getValue();
                    UsageMessageSpec usage = help.commandSpec().usageMessage();
                    String header = !empty(usage.header())
                            ? usage.header()[0]
                            : (!empty(usage.description()) ? usage.description()[0] : "");
                    Text[] lines = colorScheme().text(format(header)).splitLines();
                    for (int i = 0; i < lines.length; i++) {
                        textTable.addRowValues(i == 0 ? colorScheme().commandText(help.aliases().get(0)) : Ansi.EMPTY_TEXT, lines[i]);
                    }
                }
                return textTable.toString();
            }

            private int width() {
                return commandSpec.usageMessage().width();
            }

            private boolean adjustCJK() {
                return commandSpec.usageMessage().adjustLineBreaksForWideCJKCharacters();
            }
        };
    }
}

I think there is probably a cleaner solution for the private and package-private access issue, but since this class is only temporary, it's ok for me.
Thank you for your help!

Great to hear that!
Out of curiosity, What was the package protected method?

It was CommandLine.Tracer(), help.aliases(), and Ansi.EMPTY_TEXT.


Anonymous and apple provider account linking

[REQUIRED] Please fill in the following fields:

Unity editor version: 2019.4.8f1
Firebase Unity SDK version: 7.0.2
Source you installed the SDK: Unity Package Manager
Problematic Firebase Component: Auth
Other Firebase Components in use: Database
Additional SDKs you are using: Facebook, AdMob
Platform you are using the Unity editor on: Mac
Platform you are targeting: iOS
Scripting Runtime: IL2CPP

[REQUIRED] Please describe the question here:
Hi, @MartinVavrek.
We have an issue same as the  Apple sign in - credentials for sign in and linking #576 closed issue. Like as the @jiyeershi says we expect  FirebaseAccountLinkException but task is successfuly completed and on firebase console nothing changed.
Note: we try to link Anonymous and apple provider accounts.
        if (auth.CurrentUser == null)
        {

            Firebase.Auth.Credential credential =
            Firebase.Auth.OAuthProvider.GetCredential("apple.com", idToken, userId, null);

            Debug.unityLogger.Log(FirebasePaths.NEWUSER, $" SignInWithAppleOnFirebase current user null -----> ");
            await auth.SignInWithCredentialAsync(credential).ContinueWith(task =>
            {
                AggregateException ex = task.Exception;
                if (ex != null)
                {
                    if (ex.InnerExceptions[0] is FirebaseException inner && (inner.ErrorCode != 0))
                    {

                    }
                }
                // new user with apple provider
            });
        }
        else
        {
            string oldUserId = FirebaseAuth.DefaultInstance.CurrentUser.UserId;
            Debug.unityLogger.Log(FirebasePaths.NEWUSER, $" SignInWithAppleOnFirebase current user != null -----> " +
                         $"\n oldUserId {oldUserId}");

            //there is an old user(anonymous) and we want to link with apple provider

            await auth.CurrentUser.LinkAndRetrieveDataWithCredentialAsync(
              Firebase.Auth.OAuthProvider.GetCredential("apple.com", idToken, userId, null))
                .ContinueWithOnMainThread(task =>
                {
                    if (task.IsCompleted)
                    {
                        Debug.Log(130);
                        // Link Success

                        // when there isn't an apple provider account on firebase, we try to link older anonymous acoount and new apple acoount
                        // task.isCompleted successfuly but on firebase console older account is still anonymous.

                        //

                        Firebase.Auth.SignInResult newUser = task.Result;
                        // we get FirebaseAccountLinkException exception from this line.
                    }
                    else
                    {
                        if (task.Exception != null)
                        {
                            foreach (Exception exception in task.Exception.Flatten().InnerExceptions)
                            {
                                Firebase.Auth.FirebaseAccountLinkException firebaseEx =
                                  exception as Firebase.Auth.FirebaseAccountLinkException;
                                if (firebaseEx != null && firebaseEx.UserInfo.UpdatedCredential.IsValid())
                                {
                                    // 2.scenario
                                    // when there is an apple provider account we try to link older anonymous account and older apple account
                                    // we wait Firebase.Auth.FirebaseAccountLinkException exception and task.isFaulted
                                    // so that we can get UserInfo.UpdatedCredential and with using this updated credential in SignInWithCredentialAsync
                                    // but in this scenario task not faulted unlike we expected. because of in task.isCompleted we get this error "FirebaseAccountLinkException: This credential is already associated with a different user account."
                                    auth.SignInWithCredentialAsync(firebaseEx.UserInfo.UpdatedCredential).
                                       ContinueWithOnMainThread(signInTask =>
                                       {

                                       });
                                }
                                else
                                {
                                    Debug.Log("Link with Apple failed:" + firebaseEx);
                                }
                            }
                        }
                    }
                });

HI @gcmnali
A couple of things I noticed from your code.

(nit) Try to use ContinueWithOnMainThread instead of ContinueWith after SignInWithCredentialAsync(). Though I don't think this is the cause

I think the problem is the way you use Task. task.IsCompleted is true as long as it is finished, NO MATTER it is faulted (complete with exception) or not. Therefore, I think your code should be something like:
         await auth.CurrentUser.LinkAndRetrieveDataWithCredentialAsync(
           Firebase.Auth.OAuthProvider.GetCredential("apple.com", idToken, userId, null))
             .ContinueWithOnMainThread(task =>  {
                 // Practically this won't happen in continuation function.
                 if (!task.IsCompleted)
                   return;
                 if (task.IsFaulted) {
                    // Link failed. You should expect FirebaseAccountLinkException or other Exception here.
                 } else {
                    // Link successfully.  You are good to go.
                 }
              }

Let us know if this helps.
Shawn

Hi, @chkuang-g , thanks for reply, exactly as you say task.isComplete works with some bug (i think it is bug). we expect when task is completed task.isCompleted should run but it doesn't work like that. it works like you said, and i change my code as you said problem is over.


⚠ Cioos National CKAN Sitemap has degraded performance

In 076a143, Cioos National CKAN Sitemap (https://catalogue.cioos.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 8187 ms

Resolved: Cioos National CKAN Sitemap performance has improved in 85a0d6e after 5 minutes.


Integration test for present method

Scenario 1: Successfully presenting an offer

Initialize the TIKI SDK using the init method with valid parameters.
Create an Offer object and add it to the offers map.
Call the present method with a valid context.
Check that the guard method is called with the correct parameters.
Check that the expected log message "Offer already accepted" is not present in the logs.
Check that the startActivity method is called with the correct parameters.
Verify that the OfferFlowActivity is launched.
Verify that the onComplete closure is called if it is provided.

Scenario 2: Attempting to present an offer when no offers exist

Initialize the TIKI SDK using the init method with valid parameters.
Verify that the offers map is empty.
Call the present method with a valid context.
Check that the guard method is not called.
Verify that the expected IllegalStateException is thrown.

Scenario 3: Attempting to present an offer when the SDK is not initialized

Verify that the TIKI SDK is not initialized.
Create an Offer object and add it to the offers map.
Call the present method with a valid context.
Check that the guard method is not called.
Verify that the expected IllegalStateException is thrown.

outdated


Suggestion: generic default

Currently when using a generic and the type cannot be inferred, it fallbacks to {}. It would be nice if we can specify it. e.g.:
interface generic<T extends Anything default any> { ... }
interface generic<T extends Anything default {}> { ... }
interface generic<T extends Anything default SubClassOfAnything> { ... }

🌷
EDIT: I recall there is an issue that complaint about it fallback to <{}> but I can't find it.

Duplicate of https://github.com/Microsoft/TypeScript/issues/2175


Server spams errors when a player joins

Hey guys i'm getting a error on my server whenever a player joins
Error in MulticastDelegate PlayerUpdatePosition: System.Reflection.TargetParameterCountException: parameters do not match signature   at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0    at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0    at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0    at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0    at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <filename unknown>:0    at Rocket.Core.Extensions.MulticastDelegateExtension.TryInvoke (System.MulticastDelegate theDelegate, System.Object[] args) [0x00000] in <filename unknown>:0
It spams that constantly until the player leaves.
I have delete both the 'player' and 'level' folders but it still does this.

This was due to one of my old plugins referencing the PlayerPositionUpdated(Apparently they changed something in the last month)


RippleHost causing MemoryLeaks

Describe the bug
The RippleHost Eventhandlers do not get properly removed, causing references to already deleted objects to persist forever, and not being garbage collected.
To Reproduce
Steps to reproduce the behavior:

Create a new Adonis Window
Add a ListView, add a Button as ListView.ItemTemplate (to have the ripple effect)
Bind the List to an ObservableCollection with any Object
Add a new Item to the List, and then remove it => Item stays in memory forever and is never garbage collected

Expected behavior
Proper removal of all eventhandlers to allowed already removed objects to be garbage collected
*Additional Info
Inspected using .net Memory Profiler

WpfApp2.zip
I created a sample app that reproduces that issue, just start it and wait, the memory will get more and more every second, even though the number of items displayed stays the same

Just stumbled upon the same issue.
I have a list which I switch out at runtime that can have a lot of UserControls that I use a button on for the Spotlight effect.
I noticed that the memory went up if I switched the lists. Would be nice to get a fix for that.

For anyone looking for a "fix". This is my App.xaml which includes all default Ressources, but the Button.xaml explicitly without the ripple effect, so no more memory leaks:
App_Fixed.txt


whether using "predictor_68_point_model" or "predictor_5_point_model"

face_recognition version:
Python version: 3.6
Operating System: windows10

Description
Whether using "predictor_68_point_model" or "predictor_5_point_model" in "_raw_face_landmarks" will have an affect on the result(accuracy)?
Sometimes when I execute "facerec_from_webcam_faster.py", several entirely different faces will be recognized as the same face, so I've been trying to improve the accuracy (modify the value of "tolerance", any other ways?)
What I Did
In face_encodings() , I changed
raw_landmarks = _raw_face_landmarks(face_image, known_face_locations, model="small")

to
raw_landmarks = _raw_face_landmarks(face_image, known_face_locations, model="large")

Changing that face alignment model should have no affect. If it does change the results, it's probably a bug.


Even more types

Hm. I broke the flutter tools tests somehow.

cc @abarth
@mpcomplete, @devoncarew, @yjbanov: this affects your code in some subtle ways you may care about.

Looks like we're going for explicit Future<Null> returns, when just returning to indicate when an operation has finished?

I find this PR adding a lot of ceremony for very little benefit. But it doesn't break anything, so I'm won't try to block it, if that's where we want to go. LGTM.

@devoncarew Yeah, that seemed like the right solution. We were using it in some places already.

I second Yegor's point. LGTM.


Why was the unblock function removed?

I just saw that the 0.5.0 version only has the Unblock type and the unblock! macro, but no longer the unblock function. Is there any reason for this apart from simplifying the API?
The reason I preferred the unblock function over the macro is that the await point is visible. Also, we can directly deduce from the function declaration (shown directly in the editior by rust-analyzer) that the function is asynchronous. With the blocking! macro, I have to read the documentation to understand that the passed argument doesn't really block even though it looks like that (e.g. unblock!(fs::read(…))).

It was removed because I thought the unblock! macro should be enough :) But that turned out to be a mistake.
Recently, after discussing this with folks in the Discord channel, we realized that actually all macros with hidden await inside are confusing and should be avoided. So I think I'll just remove the unblock! macro and replace it with the old unblock() function.
Also, I feel it's time to stop fiddling with the API so I may just publish 1.0 at this point.

Sounds great, thanks a lot for all your work!

The master branch now has unblock().

Great, thanks a lot!

(I forgot to add, the unblock() method is now available in v0.5.1)


LOG(ERROR) output of slurm has special charactors

Hi, I has integrated the loguru with my code recently and use slurm to submit jobs to our server, but the ouput file of slurm has some special charactors ^[:

What can I do?

The junk you see are color control codes, intended to change the color and intensity of text in a terminal.
Regular loguru output to log files don't contain them, but it has an option g_colorlogtostderr (true by default) to output nicely coloured logs to stderr, intended for interactive viewing in a terminal.
SLURM captures stdout and stderr verbatim into files and the tool you use to view them doesn't interpret them.
If you're using less to view your logs, you can pass -R to interpret color codes. If you don't care about the colors, you should be able to tell loguru to not colorize terminal output in the first place.

The junk you see are color control codes, intended to change the color and intensity of text in a terminal.
Regular loguru output to log files doesn't contain them, but it has an option g_colorlogtostderr (true by default) to output nicely coloured logs to stderr, intended for interactive viewing in a terminal.
SLURM captures stdout and stderr verbatim into files and the tool you use to view them doesn't interpret them.
If you're using less to view your logs, you can pass -R to interpret color codes. If you don't care about the colors, you should be able to tell loguru to not colorize terminal output in the first place.

Thanks for this detailed explanation. And I have turned off the option.


[YouTube] Can't download age restricted video anymore

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[ ] I've read about sharing account credentials and I'm willing to share it if required

Region
Switzerland
Provide a description that is worded well enough to be understood
Hello,
Youtube-dl used to be the best way to watch / download age restricted videos on YouTube without giving your ID card to Google to verify your account
But since recently it stopped working and we get this error : Sign in to confirm your age. This video may be inappropriate for some users.
Thank you if you can do anything about this :)
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=34V97ameTe8', '--list-formats']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[392389b7d] (win32_dir)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19044-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 6.0-full_build-www.gyan.dev (setts), ffprobe 6.0-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>yt-dlp is up to date<EMAIL_ADDRESS>[youtube] Extracting URL: https://www.youtube.com/watch?v=34V97ameTe8
[youtube] 34V97ameTe8: Downloading webpage
[youtube] 34V97ameTe8: Downloading android player API JSON
[youtube] 34V97ameTe8: Downloading tv embedded player API JSON
[youtube] 34V97ameTe8: Downloading web embedded client config
[youtube] 34V97ameTe8: Downloading player 6ed0d907
[youtube] 34V97ameTe8: Downloading web embedded player API JSON
[debug] [youtube] Extracting signature function js_6ed0d907_110
WARNING: [youtube] 34V97ameTe8: Signature extraction failed: Some formats may be missing
[debug] [youtube] Traceback (most recent call last):
  File "yt_dlp\extractor\youtube.py", line 2997, in inner
  File "yt_dlp\extractor\youtube.py", line 2922, in _extract_signature_function
  File "yt_dlp\extractor\youtube.py", line 2991, in <lambda>
  File "yt_dlp\utils.py", line 6072, in __call__
  File "yt_dlp\jsinterp.py", line 841, in resf
  File "yt_dlp\jsinterp.py", line 180, in interpret_statement
  File "yt_dlp\jsinterp.py", line 331, in interpret_statement
  File "yt_dlp\jsinterp.py", line 180, in interpret_statement
  File "yt_dlp\jsinterp.py", line 747, in interpret_statement
  File "yt_dlp\jsinterp.py", line 739, in eval_method
KeyError: 'QV'
 (caused by KeyError('QV')); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
[debug] [youtube] Extracting signature function js_6ed0d907_106
ERROR: [youtube] 34V97ameTe8: Sign in to confirm your age. This video may be inappropriate for some users.
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\youtube.py", line 4018, in _real_extract
  File "yt_dlp\extractor\common.py", line 1172, in raise_no_formats

run yt-dlp --update-to nightly
see pinned issues


Improvements in the benchmarking

Currently the system to benchmark AI methods using CORL2017 tests is very long.
It takes around 15 hours more or less. For now it is possible to stop and resume your benchmark, but
there are a few issues on the implementation.
When the methods restart it tends to overwrite the last task done by the car.
This issues have already been fixed and are under review for version 0.8

Haha, I just wanted to remind you for fixing this and I found this one :D
For myself, I just removed the question in the Benchmark code for now and the new code is as follows:
def _continue_experiment(self, continue_experiment):
        if self._experiment_exist():
            if continue_experiment:
                line_on_file = self._get_last_position()
	    else:
		line_on_file = 0
        else:
            line_on_file = 0

        return line_on_file

Unfortunately, the question itself is a problem because, in the middle of the test, a query will be popped up and need someone to answer it otherwise a connection error will be rise.


[v2.4] Cluster stuck "currently Upgrading, updating worker node" on Cordoned workers

Backport https://github.com/rancher/rancher/issues/30049

waiting on main ticket to move back to QA

I was able to verify this fix on v2.4-4886-head:

create 1 node with all roles, and 3 more with only worker role
ssh into the 3rd worker node with the downloaded keys, download an old image, and tag it as the version of rancher you're using docker pull rancher/rancher-agent:v2.3.9; docker tag rancher/rancher-agent:v2.3.9 rancher/rancher-agent:v2.5-05fbcbb75ba84a80c5aaa243985e892c52b9ac32-head
go to system -> cattle-node-agent and select the pod running on worker 3. Delete the pod (it will restart with the image tagged previously)
go to the cluster -> nodes, edit cluster, and add control plane to worker 1 , then save changes
the cluster will update all nodes, and worker 3 will remain in cordoned state indefinitely.
ssh into the local cluster and `docker exec <rancher_container> bash
make sure vi is installed apt-get install vim && export EDITOR=vi
kubectl edit nodes.management.cattle.io m-xxxx -n c-xxxx

edit value of appliedNodeVersion to the value from cluster.Status.nodePlan.NodeVersion
for the status field of  lastUpdateTime with type: Upgraded (found near appliedNodeVersion), edit status value to "True"
save your changes

after some time, the cordoned node now returns to active state


Fix info message to be more clear

Proposed changes
Current description mentions making the swarm "unavailable" in Docker Cloud, but can be confusing because we have a swarm state "unavailable"

Thanks @KickingTheTV !


feat: Show all available task with task list

Resolves #1276
TODO:

[x]     Add test(s), Skipping it for now
[x]     Add an example
[x]     Update schema/model.py.
[x]     Update reference/configuration.md

Maybe:

[x]     Add  --hidden flag so user can do it from the CLI.

Mainly copied over functionality from other places in the code.

Add a test to see that it is read correctly in rust.

Can you help me and tell me which file(s) I should add the tests to?

We always try to add manifest features to at least one of the examples/..

What do you think about updating the polarify example with the following:
[tasks]
postinstall = "pip install --no-build-isolation --no-deps --disable-pip-version-check -e ."
python_version = {cmd = 'python --version --version', hidden = true}
polar_version = {cmd = 'python -c "import polars; print(f\"Polars version: {polars.__version__}\")"', hidden = true}
start = {depends_on=['python_version', 'polar_version']}
# Before:
# start = 'python -c "import sys; print(f\"Python version: {sys.version}\"); import polars; print(f\"Polars version: {polars.__version__}\")"'

The schema/model.py needs to know about it.

I have updated the model and the schema.json file (please correct me if I should not have done this).

It needs to be documented in the reference/configuration.md

This should now be done.

I have tried to add the CLI argument in https://github.com/prefix-dev/pixi/pull/1286/commits/b89a048acdf244ddca825146e46ecb841b4cb0f7/

I noticed that env would always be set as {} if cwd and now hidden were set. I updated the code so this is no longer the case in 28cfda. I don't think the code is the pretties, but it works.

What do you think about updating the polarify example with the following:

Seeing this I was reminded of this issue: https://github.com/prefix-dev/pixi/issues/934
Should this also be included in the hidden logic? To make it like fully hidden?

The best way to test it in the rust code would be to put it in tests/task_tests.rs but I see that that would be a lot more work then the feature it self. So I think it's find to skip it for now.

For the example, what about the cpp_sdl example where the configure could be hidden? There I could see users using it.

Should this also be included in the hidden logic? To make it like fully hidden?

I actually like seeing the commands, even though they are hidden. I don't think adding a silent command will be too hard, but if so, I or someone else can do it in another PR.
I will take a look at the cpp_sdl example later today.

He @Hoxbro, I'm really sorry to say this, but we're talking in a voice chat about this feature and @wolfv came with another option which made the logic even simpler, and more intuitive from a user perspective and we would like to change it to that.
Removing the hidden option but use _ in the task name to hide it from the task list.
This would reduce all the changes required to support this feature.
e.g.:
[tasks]
_hidden = "echo This task is not listed but can be run"
echo = {depends_on = ["_hidden"]}

> pixi task list
* echo

No problem. I will take a look at it later.
Do you also want then want this to be hidden from pixi info?

more intuitive from a user perspective

I think this statement is a bit of a stretch, as this is a hidden feature (pun intended :smile: ) and likely will be harder to discover except by looking at the documentation.
Also, make it a bit weird if you actually want to run the hidden feature.


overflowStyle not applied in IE 11

I'm using glamorous and want to use overflowStyle in my code. I already created an issue there https://github.com/paypal/glamorous/issues/400 and was redirected here

glamorous version: 4.12.1
glamor version: 2.20.40
react version: 16.2.0
typescript version: 2.7.2

Relevant code.
const MyComponent = glamorous.div({
  overflowStyle: 'none',
  '-ms-overflow-style': 'none',
});

What you did:
I want to apply the styles written above. But unfortunately overflowStyle will not be applied in IE 11. Instead I have to write manually '-ms-overflow-style': 'none' (as you can see in the last line). Shouldn't browser prefixes be done automatically?
What happened:
When I just write overflowStyle: 'none' without  '-ms-overflow-style': 'none' then nothing will be applied in IE 11. In Chrome conversely I can see a overflow-style: 'none' (with a warning that this property is not supported, but that's ok here)

Thank for the information :+1:


v0.12.1 release not shown as the top of the downloads page

Description

When looking to download the latest TCE release at https://tanzucommunityedition.io/download/, the release at the top of the page is the v0.12.0 release, while the v0.12.1 release follows it.  I believe this is incorrect, especially from the perspective of a user looking for the more recent release.
The below screenshot shows the wrong order:

Location

https://tanzucommunityedition.io/download/
Additional Context

I believe the problem is simply that the date of the v0.12.1 release was not updated and, by being the same as the date of the v0.12.0 release, causes the display order to be incorrect.
I will be posting a PR.

Workload cluster creation failing continuously with below error.
Validating configuration...
Warning: Pinniped configuration not found. Skipping pinniped configuration in workload cluster. Please refer to the documentation to check if you can configure pinniped on workload cluster manually
Creating workload cluster 'aspen-workload-cluster'...
Waiting for cluster to be initialized...
cluster control plane is still being initialized: Bootstrapping @ Machine/aspen-workload-cluster-control-plane-qg8xm
cluster control plane is still being initialized: BootstrapFailed @ Machine/aspen-workload-cluster-control-plane-qg8xm
Error: unable to wait for cluster and get the cluster kubeconfig: error waiting for cluster to be provisioned (this may take a few minutes): timed out waiting for cluster creation to complete: cluster control plane is still being initialized: BootstrapFailed @ Machine/aspen-workload-cluster-control-plane-qg8xm
Usage:
tanzu cluster create CLUSTER_NAME [flags]
Flags:
-d, --dry-run       Does not create cluster, but show the deployment YAML instead
-f, --file string   Configuration file from which to create a cluster
-h, --help          help for create
--tkr string    TanzuKubernetesRelease(TKr) to be used for creating the workload cluster. If TKr name prefix is provided, the latest compatible TKr matching the TKr name prefix would be used
Global Flags:
--log-file string   Log file path
-v, --verbose int32     Number for the log level verbosity(0-9)
Error: exit status 1
✖  exit status 1
======
Also many a times getting the below warning messages while running kubectl basic comands(getting cluster list , getting the nodes etc)
I0718 09:45:34.355269 3127426 request.go:665] Waited for 1.14311046s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:6443/apis/acme.cert-manager.io/v1alpha3?timeout=32s


[Proposal] Clarify practice when using env.reset(seed=None)

Proposal
Set a best practice on how to handle seed deterministicity when env.reset(seed=None).
Some ideas:

Explain in the example how to resolve the situation when env.reset(seed=None) as I think even this example wouldn't pass check_env.
Make self.np_random_seed serve as "automatic fallback" (meaning that something like seed=self.np_random_seed is set when seed=None). However, I don't know how I would go about this right now. Happy to submit a PR if I get a hint.

Motivation
Assume this code:
def reset(self, seed: int | None = None, ...)-> something:
    grid = self.grid_factory.generate_grid(seed=seed)
    ...

When running env_checker since v1.0.0, the following error occurs:
AssertionError: Using `env.reset(seed=123)` then `env.reset()` is non-deterministic as the observations are not equivalent.

It is unclear how to resolve this problem. One solution looks like this:
def reset(self, seed: int | None = None, ...)-> something:
    if seed is None:
        seed = self.np_random_seed
    grid = self.grid_factory.generate_grid(seed=seed)
    ...

but this workaround was deduced from the release notes. It would be better if this was handled implicitly, or
documented in Create a Custom Environment guide.
Pitch
No response
Alternatives
No response
Additional context
No response
Checklist

[X] I have checked that there is no similar issue in the repo

You should have super().reset(seed=seed) on the first line of the reset function.
See https://gymnasium.farama.org/introduction/create_custom_env/#reset-function for more detail, let me know if there anything missing or unclear

In the motivation example I need to pass the seed to a function that creates a grid. There are 2 cases:

We provide seed=None. In this case, super().reset(seed=seed) runs this:

if seed is not None:
    self._np_random, self._np_random_seed = seeding.np_random(seed)

but the seed in the calling function (the one that is passed to grid_factory.generate_grid(seed=seed)) is still None. However the error from check_env (see motivation example above) says that when reset() is called, the last previous seed should be used in the rest of the function. But the current implementation of super().reset(seed=seed) doesn't set the seed to previous value. Something like this should work:
if seed is not None:
    self._np_random, self._np_random_seed = seeding.np_random(seed)
    seed = self._np_random_seed

Also, in release notes, it is mentioned that:

Additionally, for environments, we have added a new np_random_seed attribute that will store the most recent
np_random seed value from reset(seed=seed).

Perhaps it should be _np_random_seed ? Should we use _np_random_seed or seed in the function when reset() is run?

I'm a tad confused as seed is not returned from super().reset so the change you are suggesting wouldn't work I believe.
My suggestion would be to use grid_factory.generate_grid(seed=self.np_random_seed) or pass np_random directly to the generate_grid function

I'm a tad confused as seed is not returned from super().reset so the change you are suggesting wouldn't work I believe.

That's right, sorry for the confusion.

My suggestion would be to use grid_factory.generate_grid(seed=self.np_random_seed) or pass np_random directly to the generate_grid function

This way, if seed is not None, super.reset() will do nothing and the passed seed will not be passed to grid_factory.generate_grid. Instead, old seed will be used via self.np_random_seed.
What I'm trying to say is that the current implementation of reset() is that you should use seed if it is not None and if it is, use self.np_random_seed - this way you will pass env_checker.

Current env_checker checks for this:
obs1, _ = env.reset(seed=123)
obs2,_ = env.reset()
assert obs1 == obs2 # should be the same

Consider this code:
def reset(seed: int | None = None):
    super().reset(seed=seed)
    obs, info = self.grid_factory.generate_grid(seed=seed)
    return obs, info

This code will fail, as first seed is 123 and the second one is None (grids are different).
Possible workaround:
def reset(seed: int | None = None):
    super().reset(seed=seed)
    if seed is None:
        seed = self.np_random_seed
    obs, info = self.grid_factory.generate_grid(seed=seed)
    return obs, info

This code passes the checker, because if we pass seed=None in the second reset, the previous seed=123 is reused via self.np_random_seed.
Is this a good approach? It feels like it should be done differently, or at least explained in more detail.

Ahh, ok I understand the problem.
If we have environment determinism, I.e. you pass a seed to the environment, given the same sequence of actions, this should always result in the same sequence of outputs.
So for the first example, this is not right. We check that if we reset with a seed, reset without a seed then restart the process then we can the same respective observations.
For your example, you should use 'self.np_random' not seed or 'np_random_seed'. In short, you want to use the internal random number generator, 'np_random' for all randomness in your environment.

I understand it now, makes a lot of sense :) Thanks for your patience.


Continue work on numpy subclasses

Based on #6148 and #7061
This PR adapts #6148 to use overload_classmethod added in #7061.
This PR also adds tests to #6148.

I think I've addressed everything.

Thanks @sklam and @stuartarchibald!


Crowdsourcing

Material and rating feedback release

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add betaln, a wrapper for the Beta function (scipy.special.betaln).

This adds betaln as a wrapper for scipy.stats.betaln. This is a default implementation, which could be replaced with a more numerically stable XLA implementation in the future.

Thanks!


Quick Search - limit to current editor

I find quick search great! So good I though it could be great even when the search is limited to the current file.
Right now there is no simple menu to see all matches of a searched string in the current file, which commonly available in other IDE e.g. notepad++:

So instead of having to use workspace search + tweak/filter results, it'd be nice to just use the quick seach but limited to the current file. Following the same philosophy as with other quick menus: tiny modal in the middle etc. Note: the filename section divider would be not needed. And for being able to seach the selected text like in both regular find/search I opened https://github.com/microsoft/vscode/issues/210064
This is also in-line with quick symbol seach which has it for editor/workspace. I guess for quick search in editor I would use :%.

Best regards!

Any reason not to use the normal Find in file which is easily accessible with cmd/ctrl+f?

With the normal "Find in file" widget you can see the amount of hits, get highlights in the editor/scroll-bars, and navigate to next/prev.
What I am proposing is reusing the quick search window as a mean to see all the hits together with a bit of context + quicker navigation between them. Just like it does for all the files but limited to the current opened one.
Maybe quick search could put the current file first, but seems simpler to have a separate view just for the file.
With the GIF I was using notepad++ "Find all in current file"/"Find all in opened file" as an example, the former shows a summary of matches in the current file only. So basically the program offers the feature on top of its "Find in file" highlighting etc.

The current file results do already come first in Quick Search if there are results in that file. Anyway, I'll pass this over to @andreamah who owns Quick Search as this seems like a feature request for that... but like I said, I feel like there's already a Find in File experience that is easily accessible and scopes to the current file.
Now, if you want to see the total hits in each file in Quick Search, that's doable but a separate feature request.

The current file results do already come first in Quick Search if there are results in that file.

That was not my experience, it seems inconistent. I'm at the last public regular version: 1.88.0 (system setup)
Maybe it has to do with file history/recent files? Is it already handled in the last? An example:

Nonetheless, if you open the query empty and start typing it will probably jump between files anyway.
There is nothing wrong "Find in File". This FR was to provide an idea for another quicksearch query on top of it.
Basically it seemed simple in scope but yet IMO quite useful: fast and visually see all results in the nice quicksearch view + follows the same phylosophy as other quicksearch query strings for editor/workspace.

Currently, it just lists the open files first, but we could do a small tweak to make the active file first! Do you think that that would help with your use case?

Yeah, it would definitely help :)
As I mentioned, that would prevent the quicksearch from jumping to other files when searching for a selected text in the current file. It would be basically the same as a dedicated search for the active file, but with more info beneath, so ok.
But one thing to mention: when you open an empty search and start typing, the editor starts switching between files to whatever partial string matches. I guess the current "active" editor is kept until you press enter so it can adjust, but preventing this fast switching of files was also what I had in mind with simply limiting the quicksearch to the active file.

Not really. Sorry I tried to explain myself too quickly and was partially wrong
I was referring to how the editor would jump temporally to other files while you type if the string is not in the current file (nothing to do with partial substring matches as those should hit the active file too).
In this case a limited quicksearch to the current active would simply show an empty list, which is informative in itself.

I made the change in https://github.com/microsoft/vscode/pull/210972. On tomorrow's insiders, you can verify it works:

Use quick search for something in the active editor.
The results for the active editor should appear first if they are available, and it should stay like this as other results load.


Support spring-retry 1.2

https://github.com/spring-projects/spring-boot/issues/7136#issuecomment-252899474

Needs https://github.com/spring-projects/spring-retry/pull/58 - wait until that's merged, in case it needs changes.


Hinted scalar decomposition in a gadget

In SW and tEd gadgets, when using the hinted scalar decomposition for GLV, we only check that s1 + λ * s2 == s + k*o but this is done mod r (where o is the order of SW/tEd curve prime subgroup and r the order of the SNARK curve prime subgroup).
It means that in Z: s1 + λ * s2 - s - k*o = c * r but with no guarantee that c is always 0.  We should look for edge cases if any and constrain them or look for a better constrained decomposition.

@yelhousni status?

@yelhousni status?

Fixed in #1271


Weird behaviour with pixmap colors (alpha)

Issue details
There seems to be a bit of a buggy behaviour when working with colors in a pixmap. If you do setPixel with a color that doesn't have full alpha, it changes all the other color values. If you do getPixel you will get a different color than what you originally wanted.
This is really bugging me right now, because I wanted to save the colors (that I get by getPixel) in json and then load the json and get the same color. However, what happens is that the colors get darker and darker the more i load and save.
Reproduction steps/code
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Pixmap.Format;

public class PixmapColor extends ApplicationAdapter {

	public static void main(String[] args) {
		new LwjglApplication(new PixmapColor());
	}

	@Override
	public void create() {
		Pixmap pixmap = new Pixmap(64, 64, Format.RGBA8888);
		int color = 0xff0000dd; // red that is a bit transparent

		// Prints ff0000dd
		Gdx.app.log("PixmapColor", Integer.toHexString(color));

		pixmap.drawPixel(0, 0, color);

		// Prints wrong color: dd0000dd
		Gdx.app.log("PixmapColor", Integer.toHexString(pixmap.getPixel(0, 0)));

		pixmap.dispose();
	}

}

Version of LibGDX and/or relevant dependencies
1.9.2
Stacktrace
None
Please select the affected platforms

[x] Android
[x] iOS (robovm)
[x] iOS (MOE)
[x] HTML/GWT
[x] Windows
[x] Linux
[x] MacOS

That's the default blending. You can disable that with Pixmap.setBlending(Pixmap.Blending.None).
It's all in the docs ;)

Oh thanks! I didn't think this was intended haha. Guess I should read more of the docs.


[bug, priority med] EIP-Bot ratelimited on large PR

See: https://github.com/ethereum/EIPs/pull/5055#issuecomment-1113363268
That PR changes over 400 files. When the EIP bot tried to review it, its rate limit exceeded.
I'm putting it on medium priority as it might have DoS potential, but the PR will have to be manually merged anyway (good luck getting 399 authors to approve it!)

Hi, I believe that the risk is imminent. Please see notes below..
Question/action: is it necessary to define max_files_number allowed (in EIP 1) ??
Notes from GitHub rate limits:
The GitHub API rate limit ensures that the API is fast and available for everyone.
If you hit a rate limit, it's expected that you back off from making requests and try again later when you're permitted to do so. Failure to do so may result in the banning of your app.
You can always check your rate limit status at any time. Checking your rate limit incurs no cost against your rate limit.
Server-to-server rate limits for GitHub Enterprise Cloud
GitHub Apps that are installed on an organization or a repository within an enterprise on GitHub.com are subject to a limit of 15,000 requests per hour.

The chances that someone will abuse this is negligible, however.

I'll change it to high priority, as it does pose a risk. The EIP-Bot is not necessary for the functioning of the EIP repo, however (as there are repo admins).

Totally agree. Any potential risk must be addressed as high priority.

Which rate limit is being hit?  Just CPU time spent by the bot?  If the rate limit is doing its job successfully, I don't think we need to do anything additional.

It's the GitHub API rate limit - a lot scarier. The bot could get temporarily blacklisted from accessing PR files/

And the App could be halted or banned. Not sure if this would be temporary or permanent.

I'm not terribly worried about it then.  I suspect GitHub will associate repeated over-running bots with the account that triggered them, rather than the bot itself (though, perhaps a bit of both depending on context).  I also suspect we'll get warnings long before any sort of permanent action is taken.
We should still address it, no point in wasting resources if we know it is going to fail.  I just don't think it is critical priority.

Uh, let me rephrase this:
A malicious actor could submit a PR with 500 files, and submit trivial commits over and over. This would effectively halt the EIP process, because the only way PRs could be merged is manually with admin rights.

I believe GitHub automatically cancels an existing CI run if a new run for the same PR starts, so (if true) the attacker would need to commit just before the run finishes each time to lock things up.  Also, I think GitHub parallelizes up to a point, so we could still get other PRs through.
Most importantly though, someone could do this attack today to any repository with CI.  I believe GitHub has things in place to protect against it, and I think rate limiting is part of that.

so do we agree that the risk if any is mitigated / controlled by GitHub Rate Limiting ?
is there a better way to say it ?

I still think there is a small chance that this would temporarily get the bot banned (especially if GitHub uses Cloudflare). However, I doubt anyone will do it. Incidentally, if you're reading this and you're thinking "hey, I'd like to try to shut down the EIP repo for fun," please don't.
Moving to medium priority.

I will write a PR where max_num_files_allowed_to_change = 100, if you guys decide to increase it to 1000 it will be easy to do, but I believe that the possibility to limit it must be in place.

It should be no more than 400. It was already getting rate-limited at that point.
Personally, I would have it output a fail that changes to a pass when there are multiple editor approvals (similar to modifying EIP-1). This would still allow the auto merging of large PRs (such as mine).

Ok, so it would fail if (max_num_files_allowed_to_change > 400 && editors < 2)
Let me know if this is the consensus..

100 files is fine.  Really probably 20 is fine.  Re: number of editors, I wish we had a good mechanism for variable number of editor approvals.  Sometimes, getting 2 editors to review is hard.  Sometimes we have many active editors and 2 is too few.  For now though, 2 is better than nothing.

Ok, so:
fail if (max_num_files_allowed_to_change > 100 && editors < 2)

it is straight forward to get files_number for the PR, but concerning the editors:
a. bot just ask for at least one editor to review: ie.:
This PR requires review from one of [@lightclient, @axic, @SamWilsn] (this is from EIP/PR: 5034)
b.  Could be used Reviewers number (supposed to be just editors ? question) to get editors_number (but  reading the EIP/PRs I can see that or no reviewer or just 1 (editor) reviewing.
Is it possible to  just verify the total_file_numbers and fail if > 100

done (for approval)
https://github.com/ethereum/EIP-Bot/pull/83/commits/15a451b06767283f011eb6d026dbbd15f945fe2f
https://github.com/ethereum/EIP-Bot/pull/83/commits/15a451b06767283f011eb6d026dbbd15f945fe2f


Update the list of maintainers

Update the list of maintainers to include @FollowTheProcess and myself.

Cool! 🙂

Thanks everybody 😊


adjust container labels/metadata for new GitHub pages URI [rhel-9]

https://issues.redhat.com/browse/OPENJDK-3409
and a few related locations

A lot of this I had already done in #510 and forgot. Let's see what's left


support for aria queries

I saw puppeteer supports aria based queries since some time
https://developer.chrome.com/blog/puppetaria/
const button = await page.$('aria/Submit[role="button"]');
await button.click();

When I try to do same with .net
it fails as below
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.  ---> System.AggregateException: One or more errors occurred. (Query set to use "aria", but no query handler of that name was found)  ---> PuppeteerSharp.PuppeteerException: Query set to use "aria", but no query handler of that name was found    at PuppeteerSharp.CustomQueriesManager.GetQueryHandlerAndSelector(String selector) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\CustomQueriesManager.cs:line 103
wheras my code is as below
page.ClickAsync("aria/Submit[role='button']")
Is this a supported scenario?

I’m working on that :)
It’s not ready yet.


[Bug]: Installation difficulties because of arch==5.3.0 and envpool dependencies

🐛 Bug
Hello,
I'm having problems properly installing and using RLLTE. The fixed arch==5.3.0 dependency makes it impossible to install it using Python 3.11. Changing it to arch>=5.3.0 resolves that issue and installs it without errors (Maybe the limitation is not required anymore). I used the reward branch to install with pip install -e ..
However, even after installing correctly no reward module (from rllte.xplore.reward) can be import due to the missing envpool dependency. Simply installing envpool is not possible as neither pip nor conda have it available. Installing rllte with [envs] fails for the same reason.
Is there some workaround for these issues or would it be possible to somehow remove the dependency for envpool if only needing the reward modules? It doesn't seem like it required for that part of the code
To Reproduce

Clone repository and checkout the reward branch
Setup environment with Python 3.11: conda create -n rllte python=3.11
Change arch==5.3.0 to arch>=5.3.0 in pyproject.toml
Install with pip install -e .
Run python:

from rllte.xplore.reward import ICM

Relevant log output / Error message
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\xplore\reward\__init__.py", line 27, in <module>
    from .icm import ICM as ICM
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\xplore\reward\icm.py", line 35, in <module>
    from rllte.common.prototype import BaseReward
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\common\prototype\__init__.py", line 26, in <module>
    from .base_agent import BaseAgent as BaseAgent
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\common\prototype\base_agent.py", line 47, in <module>
    from rllte.common.type_alias import VecEnv
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\common\type_alias.py", line 36, in <module>
    from rllte.env.utils import Gymnasium2Torch, GymObs
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\env\__init__.py", line 26, in <module>
    from .testing import make_bitflipping_env as make_bitflipping_env
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\env\testing\__init__.py", line 26, in <module>
    from .box import make_box_env as make_box_env
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\env\testing\box.py", line 33, in <module>
    from rllte.env.utils import Gymnasium2Torch
  File "C:\Users\Onyszkiewicz\Documents\workspace\rllte\rllte\env\utils.py", line 28, in <module>
    import envpool
ModuleNotFoundError: No module named 'envpool'

System Info
No response
Checklist

[X] I have checked that there is no similar issue in the repo
[X] I have read the documentation
[X] I have provided a minimal working example to reproduce the bug
[X] I've used the markdown code blocks for both code and stack traces.

We will publish a new version this week. Maybe you can just wait two more days.

Sounds great, looking forward to it!

We've published the update.
If you have any other questions, please don't hesitate to ask here.

We've published the update.
If you have any other questions, please don't hesitate to ask here.

@dominikonysz

Great, I'll have a look at it. Thank for you the notification

Hey, two small questions came up:

Is there a specific reason for the fixed version dependency for packages such as matplotlib? Another package for example required matplotlib>=3.7.1 and then the matplotlib==3.6.0 dependency clashed
Dict observation spaces are not supported for e.g. ICM yet, correct? Is there any plan to support them in the future?

it's totally okay if you don't install the matplotlib, just clone the repo and use it
yes, actually you can just replace the encoder with the RaffinCombinedEncoder from rllte.xploit.encoder. Also, you need to clone the repo and change the code youself first. We will add the feature later.

Yes alright, thank you! So far it is working with some adjustments so that is perfectly fine for me.
I'll close this issue for now since this isn't related to the original problem anymore. Cheers


PR: Cleanup Environments for Conda-based Installers

Description of Changes

Ensured that the Python version for the runtime environment is the same as the build environment.
Decluttered the dist directory by putting intermediate build resources in build.
Base environment is unified across platforms as lower-case and only using major version number. Runtime environment is designated as spyder-rt without version number.
Created uninstall script for macOS.
Improved logging for CI.

As a side note, when installing the generated installer executable for Windows locally, seems like the old conda based installation I had got its shortcut replaced (the shortcut I had for the old installation was now pointing to the newer installation). Maybe is because the shortcut is called Spyder regardless of the version you are installing?

This behavior is still unclear to me. When I have a previously installed conda-based instance, the shortcut is not replaced on macOS or Linux; it seems that menuinst does not overwrite the existing shortcuts. Perhaps this is different for Windows. I'll have to perform a deliberate investigation. If there is a difference between Windows and macOS and Linux, then we will need to ensure consistent behavior.

I tested the new changes locally and found a minor inconvenience that perhaps we should address before releasing alpha1 (the rest is working as expected).
The update widget is shown in the status bar, at first trying to find an update, like this:

and then showing the current Spyder version.
Since the update mechanism hasn't been ported to the conda-based installers yet, I'd suggest to hide that widget for now.

Since the update mechanism hasn't been ported to the conda-based installers yet, I'd suggest to hide that widget for now.

For conda-based installations, I disabled the update action and disabled checking at startup.

Since the update mechanism hasn't been ported to the conda-based installers yet, I'd suggest to hide that widget for now.

For conda-based installations, I disabled the update action and disabled checking at startup.

That caused problems, so I just blocked the signals of the application update status widget for the conda-based instances.


Bulk damage of Australian and New Zealand OSM road data network and failure to respond to changeset comments

Hi Microsoft open maps team,
I note that we have seen a sharp increase of Open Street Map (OSM) users with names adding a single element like a building or road with a name not dissimilar to ZSK6XTABGY. These appear to be users of the Microsoft MapBuilder 3.0 (MB)
As a MB user, you register through Microsoft and not OSM, nor are you informed you are updating OSM unless you click the ? button. These changes appear to be pushed to OSM by MB manually, some time later.
The key issue is that there is "Map Roulette" style option called "Complete Map Data" with an option of "Building" or "Road" and I would like to request that the Road option is removed immediately from Oceania and that the clustered nodes exclude roads.
Most of the roads appear to be private driveways however the user have no option of added access attributes, or surface or sidewalks etc. It leaves private farm tracks open to access and can cause routing engines to direct users through farms with critical biosecurity concerns. It leaves, cyclists, walkers and drivers in a dangerous situation by using a private farm access track.
An example is https://www.openstreetmap.org/edit?changeset=147956122#map=18/-35.19213/138.53037 where open access tracks have been added to a vineyard or orchard.
I request that Microsoft ...

immediately remove the road option from the pop screen and clustered nodes with immediate effect due to the danger it presents to travellers and farm biosecurity and that they work on reconfiguring the backend process so that
if a driveway is selected, then access defaults to private,with the ability to select the std OSM values
if no exit exists in a new highway type, then access defaults to private,with the ability to select the std OSM values
if the new highway crosses another highway and it is not connected it raises an issue and it would be great to validate against all issues
That the user is contactable and approachable via changeset comments directly.

It is completely unacceptable to prevent users to be able to correctly identify a new element and the large number of changes is damaging the highway network and deeply upsetting.
A rapid response from MIcrosoft is requested please.

Hi,
thanks for reaching out and for your comments. What we can do immediatelly is apply pre-moderation by our editors for roads coming from suggestions in AU/NZ, so they are actively scrutinized. Current users are contactable and approachable and will receive mails when you send them changeset comments and/or private messages, so this is not an issue.
However, what we are not sure is how we can approach this problem in better ways and bring back road suggestions to Australia/New Zealand. Users can already choose road type. I see that neither iD editor, nor Rapid's road suggestions are defaulting to private (or service) roads nor they offer any specific hints for AU/NZ, so just to confirm - this issue is not strictly related to Map builder editor? What does AU community do for users coming from these editors, can we learn from that? Additionally, I am looking at https://wiki.openstreetmap.org/wiki/Australian_Tagging_Guidelines/Roads and I don't see any specificity related to Australian private roads (at least nothing specific that any country is not having). Is there some community discussion around this that you can point us to, to learn, to understand and to get community consensus of what is proper AU tagging and what we should do to better adapt Map builder to AU conditions?
What we can offer in future is to either make road type selection mandatory. Or somehow make road suggestions default to "service" road type and even "access=private", and make it more prominent that this option is selected. Or to keep it as-is, expose "access" as option in UX and maybe offer small banner informing AU/NZ users that they should make it private road before adding it blindly?
BTW, another (preferred) way to contact us is via<EMAIL_ADDRESS>(as mentioned in wiki), but let's keep this communication channel open for this issue!

Hi Branko,
Thank you for the reply. There are still a number of users still adding driveways without access and I have only had a response from two users from a swarth of comments I have added... See https://resultmaps.neis-one.org/osm-discussions?c=Australia#10/-37.6501/144.6893.
A private driveway up to a house, farmyard or orchard is on private property and cannot be used without permission. This is where state trespass laws come into effect. In Victoria for example, this is the Summary Offences Act (1966) under section 9

wilfully trespass in any public place and neglect or refuse to leave after being warned to do so;
wilfully enter a private or Scheduled public place without express or implied authority from the owner or occupier;
fail to leave a private place or Scheduled public place after being warned to do so and without a lawful excuse;
enter a place in a way likely to cause a breach of the peace without a lawful excuse.
These offences are punishable by a fine of up to 25 penalty units or imprisonment for six months.

As this is ongoing, I think it is best to pull the highway section until it is remediated. Other users are spending time rectifying issues due to the editor. It's not really fair on all parties to continue this way. Thank you for listening

Hi,
Update on our side - we deployed worldwide change where all added roads in AU/NZ will go through pre-moderation for the time being. We also plan to make it easier for users to select driveways and add ability to select whether road is private or not. Once we do that, we plan to remove pre-moderation logic.
I will keep this issue open until we wrap up on that!

Just to add my two cents - I agree entirely with @EwenH here. This is causing a lot of damage that is a serious issue for the reputation and reliability of OpenStreetMap. It's extremely important that all the issues raised here are rectified before this feature is enabled.

We pushed new version. Now when user select "driveway", it will present "access" with "private" being selected by default. If user selects "service road", Map builder also shows "access" and defaults to "public". This will enable users to select proper access and have sensible defaults. We will soon phase out pre-moderation from AU/NZ roads. Thanks for raising this, I think Map builder is better tool now due to this raised issue! I will let @nikolatr close this issue


Z_POW2_CEIL: simplify implementation

Avoid potentially calling __builtin_clz() twice with non-constant
values. Also add a test for it.
Signed-off-by: Nicolas Pitre<EMAIL_ADDRESS>

@npitre, there are unresolved conflicts in include/toolchain/gcc.h.
That shall be resolved, then the review shall be re-requested.


Separate creation/movement of MN collateral and DMN registration process

I was pretty concerned about the future migration process lately, especially about handling of DMNs without having HW wallet support for special txes, so I gave it yet another thought and propose to change DIP3 in a way that splits funds handling and DMN registration process. While this might sound like a step backwards (because it indeed looks a lot like an on-chain mnb-like thing now), IMO this approach has quite a few major advantages over the one currently described in DIP3:

no need to move collaterals to register existing masternodes as deterministic ones (or to re-register DMNs for some reasons);
no need to implement/update HW wallet firmware to support new types of Dash-specific transactions.

Not requiring to move collaterals should make migration less stressful in general. What's even more important is that upgrading without HW wallet support would require to move collaterals to Core wallet (at least temporary, to issue proregtx command) and keeping this amount of funds in a software wallet is not smth I would easily recommend. Implementing HW wallet support might take some time and all this time MNOs would be risking their funds whenever they would want to (re-)register a MN. IMO we should try to avoid this as much as possible.
There are some disadvantages of this method I can think of:

the logic is going to be slightly more complicated (have to care about collateral outpoints too and not just about ProRegTxs);
without HW wallet support the process of MN registration is going to be split between using HW wallet and Core because MNOs will have to sign the payload (hash) as a regular message via HW wallet and provide the signature as a param in proregtx command (DMT could probably do most of the job automagically, since it could/should have all the data, and provide the resulting command to simply copy/paste it in Core, pinging @Bertrand256), but this is still better than having to move collateral to Core;
ProRegTx payload size is going to be slightly higher (+32 bytes).

IMO these disadvantages are pretty minimal, especially compared to potential issues which MNOs, and as a result, all of us, could have due to them messing with MN collaterals in a non-safe way.

I have similar concerns about the DMN registration process and about the need of moving funds to Core in a situation where there will be no support for HW.
Implementing changes in the HW firmware to handle special transactions would require significant work/time, even if it only applied to the four most commonly used models (Trezor One, Trezor T, Ledger Nano S and Keepkey). In Trezor, signing Dash transactions is handled with the same part of the code as for Bitcoin and other BTC-like cryptocurrencies, so the process of verification and approval of the changes will probably be quite meticulous on the side of Satoshilabs and therefore time-consuming. I am afraid that there may be too little time for the modified firmware to be ready on time.
For these reasons, I agree with the @UdjinM6 approach and actually I was just about to propose a somewhat similar solution. I think your proposal is better, but I'm not sure if sending collateral to another address as part of a ProRegTx transaction is not needed for other reasons, so below I put my proposal, which takes this into account. Regardless, both solutions can be relatively easily supported by DMT in the migration process to DMN.
In general, my proposal to create special transactions would consist in signing separately the "standard" part and the payload data in such a way that the payload would be tied up with the "standard" part.

The "conventional" part of the transaction (in the case of ProRegTx it is a collateral transfer operation) is signed in a traditional way with a little exception, that the fields version and type will have values according to DIP-0003 instead of only storing the version number (which currently equals to 1). Trezor firmware allows signing transactions with any value in the version number field, so there are no obstacles to using HW for signing this part of special transactions. I have not checked the other devices yet, but I don't think they treat this field otherwise.

The serialized "standard" part of the transaction concatenated with the payload data is signed as a normal message and the resulting signature is appended to the payload area.

For a collateral controlled by a hardware key, the DMN registration process would require two physical confirmations on the device:
a) approval of the transfer of funds to a new address
b) approval of the signing of an additional message
Just like in your proposal, a little disadvantage is that the payload size is slightly higher.
This change isn't very pretty, but it allows using the existing HW devices without having to make any firmware changes.  That would work if payload part would also be signed with the collateral privkey and not with the operator key as it is now (otherwise you'd be able to swap payload part with your own and there would be no way to say which one is the legit one). But there is another problem that I see with your proposal - it breaks the flow described in DIP2 https://github.com/dashpay/dips/blob/master/dip-0002.md#serialization-hashing-and-signing i.e. payload is meant to be serialized and hashed together with "standard" part. I'm not sure if it's a good idea to introduce different flows for different types of special txes, I would try to avoid that tbh.

That would work if payload part would also be signed with the collateral privkey and not with the operator key ...

This is what I meant, i.e. signing with the collateral private key.

I'm not sure if it's a good idea to introduce different flows for different types of special txes, I would try to avoid that tbh.

I meant the same way of signing all types of special txes, not only those related to masternode registration. Otherwise the solution would be completely sucked. I realize that it breaks the planned flow and therefore probably is not the best at this stage.

In order to spend the tx, won't the HW wallets need to know to serialize the payload with the TX for signing?

Hmmm, no...? You don't need to serialize any previous tx to sign the spending one, you simply refer to them via tx inputs (which specify outpoints (txid+n) and fulfil their spending conditions via scriptsigs) and done.

What is supposed to be signed then? I thought this was needed to produce the payload which gets hashed & that hash signed in order to get the signature, as described here:
https://davidederosa.com/basic-blockchain-programming/the-first-transaction-part-one/

See https://dash-docs.github.io/en/developer-guide#term-signature

nACK
I'll post here now, just to make sure the merge doesn't happen before a comment from @codablock who is in a flight.  I'm sure he will want to chime in because he remembered the bulk of the issues with this approach yesterday while we were talking about it.
For one, when referencing another transaction you would need to prove ownership of that transaction with this approach otherwise anyone could say "Hey that 1000 Dash is mine". If we decided to include a signature in the ProRegTx payload from the 1000 Dash output private key, we would defeat the purpose of P2PKH, and on top of that we would also not be able to do multisig 1000 Dash payments or other pay to script transactions.
Our goal was to make sure hardware wallets were supported at launch as well.

@codablock Applied both suggestions, thanks! 👍


ERROR BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK "

Hi!
This product very interesting for users who use MacOs M chip ^)
Iam run this command
docker run -it --rm --name windows -p 8006:8006 -e "KVM=N" --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows-arm
and them result
BdsDxe: failed to load Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0): Not Found
2024-03-04 17:06:54 BdsDxe: loading Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)
2024-03-04 17:06:54 BdsDxe: starting Boot0001 "UEFI QEMU QEMU CD-ROM " from PciRoot(0x0)/Pci(0x5,0x0)/Scsi(0x0,0x0)

I hope ever your will add support MacOs ^)


⚠ Bofrost.de has degraded performance

In 6e180be, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1121 ms

Resolved: Bofrost.de performance has improved in 653f29d after 10 minutes.


The data type of zs is currently float before it enters tf

This will be a problem for the TFRecord decoding f one inputs zs as int.

Similar problem with the elements and element pairs


injectBoundHTML :: event handlers binding fails

Let’s consider we inject a shadow DOM nodes in existing web component:
      myHandler: function() {},
      myCaption: '¡Hola!',
      domReady: function() {
        // this.eventController = this;
        var nodes = this.$.content.getDistributedNodes();

        for(var node in nodes) {
          var elem = ...;
          this.injectBoundHTML(
            '<paper-button on-tap="{{myHandler}}">{{myCaption}}</paper-button>',
            elem
          );
        }
      }

Everything works fine save for binding event handlers (myHandler.) It fails to bind (well, it binds, but no one of it’s parents has eventController attribute defined and (due to findController is unable to find a controller) dispatching events fails with

Uncaught TypeError: Cannot read property 'dispatchMethod' of undefined

One might fix a problem by uncommenting line this.eventController = this; in the very beginning of custom domReady handler, but it does not seem to be evident hack.
Quick fix might be to move this.eventController = this from polymer.js:lightFromTemplate to polymer.js:attachedCallback (did I miss smth?)

Closing this issue due to age and the release of version 1 of Polymer - please feel free to re-open if this is incorrect.


Add Palettes & Hues extension.

Pull Request Template
Please ensure all items below are checked before creating a pull request:

[x] My changes were made in the resources folder, not in the auto-generated README.md file or db folder
[x] My submission is formatted according to the guidelines in the contributing guide
[x] My submission is ordered alphabetically based on the resource name
[x] My submission has a useful description
[x] I have searched the repository for any relevant issues or pull requests

@marcelscruz Hey, can you review and merge this? Thanks.

Nothing is loading on the site, just a black screen.

@marcelscruz Hey my bad, very recently I transferred my extension's web page to a different domain, it should be visible now, can you cross check?

Thanks!


Remove the jetty-maven-plugin configurations from the pom.xml files

Task Description
As we've migrated to Spring Boot, we will now have to perform a clean up of the pom.xml files. Most-likely, this will only involve the strongbox-web-core.
Tasks

[ ] Drop the Maven profiles that contain the invocations of the jetty-maven-plugin.
[ ] Drop all the profile that are providing variables for the jetty-maven-plugin.

Help

Our chat
Points of contact:

@carlspring
@sbespalov
@fuss86

I'm going to work on this.

Hi!
Great, thanks!

Feel free to join our chat for more details and help.

Thanks!


Show operator information on mouse-over

As a beginner developer, I often download foreign code to help me understand features. Often the more experienced developers use operators I do not know. It would be very helpful if the IDE would show me a short definition of that operator when I hover my mouse over it, similar to how it tells me what a function does.

For which programming language do you want this?

I believe every programming language has symbols/operators that are confusing for beginners.
For example it would be nice to know what these symbols mean. Also there is the modulo (%) operator and the ternary operator (?:). There is definitely confusion about those - in Programming 101 we had a big poster on the wall that explained them.
Ideally I have code like var x = condition ? 12 : (int?)null;  and when I hover over ? or : it shows me a tooltip like "is this condition true ? yes : no". Or a more simple example: What does x += y do? Hover: "x = x + y".

Each language support in VSCode is implemented independently  and has different ownersWe need an issue per language, I can assign the issue to the correct component.
So I you can narrow your request to the language that is most important to you, then I can proceed.

Ah, good to know. TypeScript would be nice have.

This feature is powered by the TypeScript project. Please file a feature request upstream


Add automated pyinstaller packaging pipeline

Hi, I spent some time setting up an automated pipeline to create releases with pyinstaller packaged binaries for win64 and linux64, triggered by creating a new tag that follows the semantic versioning convention (i.e. v2.10.3). Unfortunately github UI is a bit dumb about letting you make standalone tags, so the best way to do so is at the command line as follows:
git tag v2.0.0
git push origin --tags
Then the pipeline will create the corresponding release automatically, and upload the binaries to it. Some future improvements might be to figure out how to also add changelog notes or whatever, but I think this currently presents substantial enough value as-is for helping people use simplefocstudio without having to install python and figure out dependencies at the command line.
Note that I only tested to see if the resulting binaries would open and show all the icons correctly, I have not tried connecting to a motor and thoroughly exercising all the functionality yet, but hopefully someone else in the simplefoc community can give it a shot.

Wow that was fast, thanks! I am doing a bit more research, specifically on the topic that binaries assembled using the --onefile flag for windows are falsely detected as a virus, and I would like to figure out how to avoid this as it is not a good look for the software. Do you have any thoughts on the best way to approach this problem? I am currently thinking that maybe using the --onedir flag just for windows might be a good idea, but apparently this can still sometimes have a false positive.

No idea :( sorry


Reduce dependencies

This project has a huge dependency list, which causes some conflict.
Any chance of reducing it to bare minimum, maybe it more modular?
For example, redis client/jedis seems ortho to a kafka client, core.async has moved up from alpha, etc etc.

hi, the kafka client uses a redis client to store its offsets, so that dependency cannot be removed.
I've been thinking off upgrading to a latter version of core async, but you can already do that by just placing the latest core async into your leiningen project.clj.
Due to work commitments I'm not really able to spend too much time on limiting dependencies, maybe you can do this and contribute back?

I've managed to remove some dependencies for now, thread-load, thread-exec which also referred to clj-tuple etc. Will have a look in the future on how to lessen the redis deps

Awesome! Thanks for the effort!
On Thu, May 19, 2016 at 3:42 AM, Gerrit<EMAIL_ADDRESS>wrote:

I've managed to remove some dependencies for now, thread-load, thread-exec
which also referred to clj-tuple etc. Will have a look in the future on how
to lessen the redis deps
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/gerritjvv/kafka-fast/issues/18#issuecomment-220289331

update:

upgraded all dependencies to latest released versions (using lein ancient),
removed jedis
redisson is still required because I can't seem to find how carmine works with redis cluster , which is a pain.

Closing this ticket for the moment as I cannot see more deps to remove.
The latest version with the updated dependences is from 3.6.5-SNAPSHOT
https://github.com/gerritjvv/kafka-fast/pull/27


Add preventBackNavigation() method to restrict backward navigation in wizards

Description
This update introduces the preventBackNavigation() method, allowing users to disable backward navigation in wizards. By applying this method, users can only move forward through the steps, ensuring a more controlled progression. This enhancement is particularly useful in contexts such as onboarding processes, booking flows, or any scenario where revisiting previous steps could lead to inconsistencies or confusion.
I did various tests and made sure that the change does not conflict with skippable().
Visual changes

Functional changes

[x] Code style has been fixed by running the composer cs command.
[X] Changes have been tested to not break existing functionality.
[X] Documentation is up-to-date.

Hi, apologies but we are no longer accepting new features for v3 as per #13744. Also, please check out our contributing guide which talks about proposing the feature before submitting the PR, to ensure you aren't spending time building something that we won't merge.
I would accept a PR for this feature when v4 is released, if you are still interested. Thank you!