Delete and recreate tenant with same uuid will throw error when creating db user in MySQL

Description
I'm using my own uuid generator which is using my unique tenant name. This package helps to create db as well as the db user. However I faced a problem when I delete my tenant and recreate a tenant with same name, this error happened:
SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' (SQL: CREATE USER IF NOT EXISTS `tenant_name`@'%' IDENTIFIED BY 'password')

Actual behavior
From what I had research online, it seems like when I have the db user remained then CREATE USER IF NOT EXISTS 'tenant_name'@'%' IDENTIFIED BY 'password' will not worked. Then I checked the config, there's an option auto-delete-tenant-database-user to auto delete db user. However, it is not working for mysql perhaps? As I checked source code it only applied to MariaDB and PostgresSQL as you can see in the picture below.

Expected behavior
Should drop db user before create tenant with same uuid where the uuid will be used to create db as well as the db user.
Information

hyn/multi-tenant version: 5.2
laravel version: 5.6
database driver and version: mysql v5.7.10
webserver software and version: nginx
php version: 7.1

tenancy.php config
'models' => [
        /**
         * Specify different models to be used for the global, system database
         * connection. These are also used in their relationships. Models
         * used have to implement their respective contracts and
         * either extend the SystemModel or use the trait
         * UsesSystemConnection.
         */

        // Must implement \Hyn\Tenancy\Contracts\Hostname
        'hostname' => \Hyn\Tenancy\Models\Hostname::class,

        // Must implement \Hyn\Tenancy\Contracts\Website
        'website' => \Crmx\Tenant\Models\Tenant::class,
    ],
    'website' => [
        /**
         * Each website has a short random hash that identifies this entity
         * to the application. By default this id is randomized and fully
         * auto-generated. In case you want to force your own logic for
         * when you need to have a better overview of the complete
         * tenant folder structure, disable this and implement
         * your own id generation logic.
         */
        'disable-random-id' => true,

        /**
         * The random Id generator is responsible for creating the hash as mentioned
         * above. You can override what generator to use by modifying this value
         * in the configuration.
         *
         * @warn This won't work if disable-random-id is true.
         */
        'random-id-generator' => Hyn\Tenancy\Generators\Uuid\ShaGenerator::class,

        /**
         * Enable this flag in case you're using a driver that does not support
         * database username or database name with a length of more than 32 characters.
         *
         * This should be enabled for MySQL, but not for MariaDB and PostgreSQL.
         */
        'uuid-limit-length-to-32' => env('LIMIT_UUID_LENGTH_32', false),

        /**
         * Specify the disk you configured in the filesystems.php file where to store
         * the tenant specific files, including media, packages, routes and other
         * files for this particular website.
         *
         * @info If not set, will revert to the default filesystem.
         * @info If set to false will disable all tenant specific filesystem auto magic
         *       like the config, vendor overrides.
         */
        'disk' => null,

        /**
         * Automatically generate a tenant directory based on the random id of the
         * website. Uses the above disk to store files to override system-wide
         * files.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-directory' => true,

        /**
         * Automatically rename the tenant directory when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move files accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-directory' => true,

        /**
         * Automatically deletes the tenant specific directory and all files
         * contained within.
         *
         * @see
         * @info set to true to enable.
         */
        'auto-delete-tenant-directory' => false,

        /**
         * Time to cache websites in minutes. Set to false to disable.
         */
        'cache' => 10,
    ],
    'hostname' => [
        /**
         * If you want the multi tenant application to fall back to a default
         * hostname/website in case the requested hostname was not found
         * in the database, complete in detail the default hostname.
         *
         * @warn this must be a FQDN, these have no protocol or path!
         */
        'default' => env('TENANCY_DEFAULT_HOSTNAME', 'crm'),
        /**
         * The package is able to identify the requested hostname by itself,
         * disable to get full control (and responsibility) over hostname
         * identification. The hostname identification is needed to
         * set a specific website as currently active.
         *
         * @see src/Jobs/HostnameIdentification.php
         */
        'auto-identification' => env('TENANCY_AUTO_HOSTNAME_IDENTIFICATION', false),

        /**
         * In case you want to have the tenancy environment set up early,
         * enable this flag. This will run the tenant identification
         * inside a middleware. This will eager load tenancy.
         *
         * A good use case is when you have set "tenant" as the default
         * database connection.
         */
        'early-identification' => env('TENANCY_EARLY_IDENTIFICATION', true),

        /**
         * Abort application execution in case no hostname was identified. This will throw a
         * 404 not found in case the tenant hostname was not resolved.
         */
        'abort-without-identified-hostname' => false,

        /**
         * Time to cache hostnames in minutes. Set to false to disable.
         */
        'cache' => 10,

        /**
         * Automatically update the app.url configured inside Laravel to match
         * the tenant FQDN whenever a hostname/tenant was identified.
         *
         * This will resolve issues with password reset mails etc using the
         * correct domain.
         */
        'update-app-url' => true,
    ],
    'db' => [
        /**
         * The default connection to use; this overrules the Laravel database.default
         * configuration setting. In Laravel this is normally configured to 'mysql'.
         * You can set a environment variable to override the default database
         * connection to - for instance - the tenant connection 'tenant'.
         */
        'default' => env('TENANCY_DEFAULT_CONNECTION'),
        /**
         * Used to give names to the system and tenant database connections. By
         * default we configure 'system' and 'tenant'. The tenant connection
         * is set up automatically by this package.
         *
         * @see src/Database/Connection.php
         * @var system-connection-name The database connection name to use for the global/system database.
         * @var tenant-connection-name The database connection name to use for the tenant database.
         */
        'system-connection-name' => env('TENANCY_SYSTEM_CONNECTION_NAME', Connection::DEFAULT_SYSTEM_NAME),
        'tenant-connection-name' => env('TENANCY_TENANT_CONNECTION_NAME', Connection::DEFAULT_TENANT_NAME),

        /**
         * The tenant division mode specifies to what database websites will be
         * connecting. The default setup is to use a new database per tenant.
         * In case you prefer to use the same database with a table prefix,
         * set the mode to 'prefix'.
         *
         * @see src/Database/Connection.php
         */
        'tenant-division-mode' => env('TENANCY_DATABASE_DIVISION_MODE', 'database'),

        /**
         * The database password generator takes care of creating a valid hashed
         * string used for tenants to connect to the specific database. Do
         * note that this will only work in 'division modes' that set up
         * a connection to a separate database.
         */
        'password-generator' => Crmx\Tenant\Overrides\Hyn\MultiTenant\Generators\Database\DefaultPasswordGenerator::class,

        /**
         * The tenant migrations to be run during creation of a tenant. Specify a directory
         * to run the migrations from. If specified these migrations will be executed
         * whenever a new tenant is created.
         *
         * @info set to false to disable auto migrating.
         *
         * @warn this has to be an absolute path, feel free to use helper methods like
         * base_path() or database_path() to set this up.
         */
        'tenant-migrations-path' => database_path('migrations/tenant'),

        /**
         * The default Seeder class used on newly created databases and while
         * running artisan commands that fire seeding.
         *
         * @info requires tenant-migrations-path in order to seed newly created websites.
         *
         * @warn specify a valid fully qualified class name.
         */
        'tenant-seed-class' => false,
//      eg an admin seeder under `app/Seeders/AdminSeeder.php`:
//        'tenant-seed-class' => App\Seeders\AdminSeeder::class,

        'tenant-seed-classes' => [
        ],

        /**
         * Automatically generate a tenant database based on the random id of the
         * website.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-database' => true,

        /**
         * Automatically generate the user needed to access the database.
         *
         * @info Useful in case you use root or another predefined user to access the
         *       tenant database.
         * @info Only creates in case tenant databases are set to be created.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-database-user' => true,

        /**
         * Automatically rename the tenant database when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move databases accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-database' => true,

        /**
         * Automatically deletes the tenant specific database and all data
         * contained within.
         *
         * @info set to true to enable.
         */
        'auto-delete-tenant-database' => env('TENANCY_DATABASE_AUTO_DELETE', false),

        /**
         * Automatically delete the user needed to access the tenant database.
         *
         * @info Set to false to disable.
         * @info Only deletes in case tenant database is set to be deleted.
         */
        'auto-delete-tenant-database-user' => env('TENANCY_DATABASE_AUTO_DELETE_USER', true),

        /**
         * Define a list of classes that you wish to force onto the tenant or system connection.
         * The connection will be forced when the Model has booted.
         *
         * @info Useful for overriding the connection of third party packages.
         */
        'force-tenant-connection-of-models' => [
//            App\User::class
        ],
        'force-system-connection-of-models' => [
//            App\User::class
        ],
    ],

    /**
     * Global tenant specific routes.
     * Making it easier to distinguish between landing and tenant routing.
     *
     * @info only works with `tenancy.hostname.auto-identification` or identification happening
     *       before the application is booted (eg inside middleware or the register method of
     *       service providers).
     */
    'routes' => [
        /**
         * Routes file to load whenever a tenant was identified.
         *
         * @info Set to false or null to disable.
         */
        'path' => base_path('routes/tenants.php'),

        /**
         * Set to true to flush all global routes before setting the routes from the
         * tenants.php routes file.
         */
        'replace-global' => false,
    ],

    /**
     * Folders configuration specific per tenant.
     * The following section relates to configuration to files inside the tenancy/<uuid>
     * tenant directory.
     */
    'folders' => [
        'config' => [
            /**
             * Merge configuration files from the config directory
             * inside the tenant directory with the global configuration files.
             */
            'enabled' => true,

            /**
             * List of configuration files to ignore, preventing override of crucial
             * application configurations.
             */
            'blacklist' => ['database', 'tenancy', 'webserver'],
        ],
        'routes' => [
            /**
             * Allows adding and overriding URL routes inside the tenant directory.
             */
            'enabled' => true,

            /**
             * Prefix all tenant routes.
             */
            'prefix' => null,
        ],
        'trans' => [
            /**
             * Allows reading translation files from a trans directory inside
             * the tenant directory.
             */
            'enabled' => true,

            /**
             * Will override the global translations with the tenant translations.
             * This is done by overriding the laravel default translator with the new path.
             */
            'override-global' => true,

            /**
             * In case you disabled global override, specify a namespace here to load the
             * tenant translation files with.
             */
            'namespace' => 'tenant',
        ],
        'vendor' => [
            /**
             * Allows using a custom vendor (composer driven) folder inside
             * the tenant directory.
             */
            'enabled' => true,
        ],
        'media' => [
            /**
             * Mounts the assets directory with (static) files for public use.
             */
            'enabled' => true,
        ],
        'views' => [
            /**
             * Adds the vendor directory of the tenant inside the application.
             */
            'enabled' => true,

            /**
             * Specify a namespace to use with which to load the views.
             *
             * @eg setting `tenant` will allow you to use `tenant::some.blade.php`
             * @info set to null to add to the global namespace.
             */
            'namespace' => null,

            /**
             * If `namespace` is set to null (thus using the global namespace)
             * make it override the global views. Disable to
             */
            'override-global' => true,
        ]

MySQL uses the "MariaDB" driver: https://github.com/hyn/multi-tenant/blob/5.1/src/Generators/Webserver/Database/DatabaseGenerator.php#L71

@fletch3555 I do set the option auto-delete-tenant-database-user to true, however when I deleted the tenant, db user still remained and not been deleted.

I have my system db user with root-like privileges and the tenant deletion don't throw error. Just the db user won't dropped even I have the auto-delete-tenant-database-user option set to true. The problem arises when I tried to recreate a tenant with same uuid which throw this error:
SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' (SQL: CREATE USER IF NOT EXISTS `tenant_name`@'%' IDENTIFIED BY 'password')

@fletch3555 Hi any update about this issue?

@WeiKian I'll look into this.

@WeiKian by the way, may I know how are you deleting the tenant?

@bkintanar Thanks for the response. I used the repository to delete tenant.

@WeiKian Ok. I'll check on this.

It seems to be working on my end. database user has been deleted.
--
Bertrand<EMAIL_ADDRESS>On Sep 12, 2018 at 23:08, <WeiKian<EMAIL_ADDRESS>wrote:
@bkintanar https://github.com/bkintanar Thanks for the response. I used
the repository to delete tenant.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hyn/multi-tenant/issues/610#issuecomment-420684002,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAp3aFz2ziLFRZKxCEFPp1ahWbU-2lZDks5uaSNYgaJpZM4WeWOI
.

@bkintanar May I know do you set the auto-delete-tenant-database to true?

Yes
--
Bertrand<EMAIL_ADDRESS>On Sep 14, 2018 at 13:42, <WeiKian<EMAIL_ADDRESS>wrote:
@bkintanar https://github.com/bkintanar May I know do you set the
auto-delete-tenant-database to true?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hyn/multi-tenant/issues/610#issuecomment-421237274,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAp3aE7LwbXpjk2sfz6uKBRnzSRMZ3Dkks5ua0GwgaJpZM4WeWOI
.

I see. Because I need to keep the database even if I deleted the tenant so I set it to false. So which mean it won't auto delete db user right?

hmm.. The recreate tenant assumes that tenant databases are all deleted
since it can't recreate them if they already exists.
--
Bertrand<EMAIL_ADDRESS>On Sep 14, 2018 at 14:05, <WeiKian<EMAIL_ADDRESS>wrote:
I see. Because I need to keep the database even if I deleted the tenant so
I set it to false. So which mean it won't auto delete db user right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hyn/multi-tenant/issues/610#issuecomment-421241063,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAp3aI8_mMZX8g3X4RDMfvGWNOGaL8lBks5ua0cvgaJpZM4WeWOI
.

But the database user should be deleted even if the auto delete tenant
database is set to true.
--
Bertrand<EMAIL_ADDRESS>On Sep 14, 2018 at 14:05, <WeiKian<EMAIL_ADDRESS>wrote:
I see. Because I need to keep the database even if I deleted the tenant so
I set it to false. So which mean it won't auto delete db user right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hyn/multi-tenant/issues/610#issuecomment-421241063,
or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAp3aI8_mMZX8g3X4RDMfvGWNOGaL8lBks5ua0cvgaJpZM4WeWOI
.

The situation is kinda different with using the recreate tenant command. What I want to achieve is to leave the database untouch even I deleted the tenant. When I recreate the tenant with same uuid, I should be able to use back the database. That's why I even modified the password generator.

@bkintanar Any idea on the workaround for this?

@WeiKian can you post the exact error you get from the CREATE USER IF NOT EXIST call?

SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_uuid'@'%' (SQL: CREATE USER IF NOT EXISTS `tenant_uuid`@'%' IDENTIFIED BY 'f9e65e58ed6db3e7ff7bc878baa436ec!AbC$^&%$#')

@luceos Do you need the full error stack or this is sufficient?

A full trace could be fruitless, but might be necessary for the sake of transparency. I'll need to dive into this.

@luceos Here the full trace. I do override the plugin to fit my requirements tho.
[2018-09-15 16:59:25] localhost.ERROR: SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' (SQL: CREATE USER IF NOT EXISTS `tenant_name`@'%' IDENTIFIED BY 'f9e65e58ed6db3e7ff7bc878baa436ec!AbC$^&%$#') {"userId":1,"email":"test@test.com","exception":"[object] (Illuminate\\Database\\QueryException(code: HY000): SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' (SQL: CREATE USER IF NOT EXISTS `tenant_name`@'%' IDENTIFIED BY 'f9e65e58ed6db3e7ff7bc878baa436ec!AbC$^&%$#') at /var/www/html/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, Doctrine\\DBAL\\Driver\\PDOException(code: HY000): SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' at /var/www/html/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:144, PDOException(code: HY000): SQLSTATE[HY000]: General error: 1396 Operation CREATE USER failed for 'tenant_name'@'%' at /var/www/html/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:142)
[stacktrace]
#0 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php(624): Illuminate\\Database\\Connection->runQueryCallback('CREATE USER IF ...', Array, Object(Closure))
#1 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php(459): Illuminate\\Database\\Connection->run('CREATE USER IF ...', Array, Object(Closure))
#2 /var/www/html/project/vendor/hyn/multi-tenant/src/Generators/Webserver/Database/Drivers/MariaDB.php(38): Illuminate\\Database\\Connection->statement('CREATE USER IF ...')
#3 /var/www/html/project/vendor/hyn/multi-tenant/src/Generators/Webserver/Database/Drivers/MariaDB.php(51): Hyn\\Tenancy\\Generators\\Webserver\\Database\\Drivers\\MariaDB->Hyn\\Tenancy\\Generators\\Webserver\\Database\\Drivers\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#4 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(29): Hyn\\Tenancy\\Generators\\Webserver\\Database\\Drivers\\MariaDB->Hyn\\Tenancy\\Generators\\Webserver\\Database\\Drivers\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#5 /var/www/html/project/vendor/hyn/multi-tenant/src/Generators/Webserver/Database/Drivers/MariaDB.php(52): Illuminate\\Database\\Connection->transaction(Object(Closure))
#6 /var/www/html/project/vendor/hyn/multi-tenant/src/Generators/Webserver/Database/DatabaseGenerator.php(101): Hyn\\Tenancy\\Generators\\Webserver\\Database\\Drivers\\MariaDB->created(Object(Hyn\\Tenancy\\Events\\Websites\\Created), Array, Object(Hyn\\Tenancy\\Database\\Connection))
#7 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(360): Hyn\\Tenancy\\Generators\\Webserver\\Database\\DatabaseGenerator->created(Object(Hyn\\Tenancy\\Events\\Websites\\Created))
#8 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(209): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}('Hyn\\\\Tenancy\\\\Eve...', Array)
#9 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(182): Illuminate\\Events\\Dispatcher->dispatch('Hyn\\\\Tenancy\\\\Eve...', Array, false)
#10 /var/www/html/project/vendor/hyn/multi-tenant/src/Traits/DispatchesEvents.php(29): Illuminate\\Events\\Dispatcher->fire(Object(Hyn\\Tenancy\\Events\\Websites\\Created), Array)
#11 /var/www/html/project/vendor/hyn/multi-tenant/src/Repositories/WebsiteRepository.php(95): Hyn\\Tenancy\\Repositories\\WebsiteRepository->emitEvent(Object(Hyn\\Tenancy\\Events\\Websites\\Created))
#12 /var/www/html/project/packages/project/tenant/src/Controllers/TenantController.php(98): Hyn\\Tenancy\\Repositories\\WebsiteRepository->create(Object(Project\\Tenant\\Models\\Tenant))
#13 [internal function]: Project\\Tenant\\Controllers\\TenantController->store(Object(Project\\Tenant\\Requests\\TenantRequest))
#14 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#15 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('store', Array)
#16 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Project\\Tenant\\Controllers\\TenantController), 'store')
#17 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runController()
#18 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(665): Illuminate\\Routing\\Route->run()
#19 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#20 /var/www/html/project/packages/project/role/src/Middlewares/RouteNeedsRole.php(45): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Project\\Role\\Middlewares\\RouteNeedsRole->handle(Object(Illuminate\\Http\\Request), Object(Closure), '1')
#22 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/html/project/packages/project/tenant/src/Middlewares/EnforceTenant.php(90): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#24 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Project\\Tenant\\Middlewares\\EnforceTenant->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#25 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /var/www/html/project/packages/project/core/src/Middlewares/SessionTimeout.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Project\\Core\\Middlewares\\SessionTimeout->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 /var/www/html/project/packages/project/core/src/Middlewares/RevalidateBackHistory.php(18): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#30 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Project\\Core\\Middlewares\\RevalidateBackHistory->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#33 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#36 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 /var/www/html/project/app/Http/Middleware/VerifyCsrfToken.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#39 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): App\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /var/www/html/project/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#42 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#45 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#48 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#51 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#54 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#55 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(642): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#56 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(608): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#57 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Router.php(597): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#58 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#59 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#60 /var/www/html/project/vendor/maatwebsite/laravel-sidebar/src/Middleware/ResolveSidebars.php(35): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#61 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Maatwebsite\\Sidebar\\Middleware\\ResolveSidebars->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#63 /var/www/html/project/vendor/proengsoft/laravel-jsvalidation/src/RemoteValidationMiddleware.php(53): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#64 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Proengsoft\\JsValidation\\RemoteValidationMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#65 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#66 /var/www/html/project/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#67 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#68 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#69 /var/www/html/project/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#70 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#71 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#72 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#73 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#74 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#75 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#76 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#77 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#78 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#79 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#80 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#81 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#82 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#83 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#84 /var/www/html/project/vendor/hyn/multi-tenant/src/Middleware/EagerIdentification.php(29): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#85 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Hyn\\Tenancy\\Middleware\\EagerIdentification->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#86 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#87 /var/www/html/project/vendor/hyn/multi-tenant/src/Middleware/HostnameActions.php(76): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#88 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(151): Hyn\\Tenancy\\Middleware\\HostnameActions->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#89 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#90 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#91 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#92 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#93 /var/www/html/project/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#94 {main}
"}

I hope you were able to actually fix this back then, if this is still an issue, please let us know.
If you feel like your issue has not been properly addressed yet, or if you still need more information, please reopen this issue 😄
If you require help with a different issue, please open a new issue.
You can also find Tenancy related help & resources on:

Our Website
Our Forums
Our Discord Server


Question about using MockServer

Hi, I am trying to use your library to mock web socket server in my unit tests. I run my tests in Chrome. Unfortunately "mocking" does not happen for me. I do create the instance of MockServer with correct url but when the code I test tries to open WebSocket I get an exception "WebSocket connection to 'ws://<IP_ADDRESS>:8585/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED". I think I do everything correctly. I was hoping you could point me in the right direction. Thank you, Anna

what was the solution to this?

Getting the same error.


Support Laravel 5.6

@HipsterJazzbo please support Laravel 5.6 😄

There is a PR that should solve this #93

@HipsterJazzbo can you please merge the PR that adds support for 5.6
many of us are depending on it

Any update on this?

@justinwilson-apollidon it's done at https://github.com/torzer/awesome-landlord fork


Add definitions to atom.d.ts from atom-typescript

During the development of atom-typescript they have added quite a bit of methods to Atom's definitions, but the changes haven't been yet committed to this repo. I've added all their changes to atom.d.ts to this pull request and fixed the indentation a bit.

Thanks ! :rose:


Choppy audio when streaming from Windows

Hello,
Thanks for creating this great software!
My issue: I'm getting a very choppy signal when streaming audio from Windows (I'm using version 10). Specifically, I'm running ffmpeg on Windows when I get the problem. (I always run the relays on Ubuntu.) I've tried on different machines over some time, and the problem always seems to happen in Windows specifically.
Note: In Linux, sometimes I get the choppy signal, but restarting ffmpeg will solve it. On Mac, I'm generally not seeing a problem. However in Windows, I can't get rid of the chop.
Note: I've also tried just streaming into a file to verify it's not my computer hardware's fault, and it creates an audio file without any chop.
Here's the ffmpeg command that I use to send to the relay:
ffmpeg -f dshow -ac 1 -i audio="Microphone (2- HD Webcam C270)" -f mpegts -codec:a mp2 -b:a 32k -muxdelay .001 http://x.com:9000/xx/640/480/
Any advise?
Thanks
Rick

i don't know what's wrong with your program.but i can give U my code toreference。
i used ffmpeg like that:
ffmpeg -i rtmp://demo.com/123 -f mpegts -codec:v mpeg1video -s 540x960 -b:v 1500k -r 30 -bf 0 -codec:a mp2 -ar 44100 -ac 1 -b:a 128k http://<IP_ADDRESS>:8081/relay
I hope this  will help you

Did you ever solve this. I'm running into the same issue.

i met the same issuse


Icons Disappeared

Dribbblish latest Update, Color SHeme Horizon.
I hide every icon at the sidebar, like Home, Browse, etc. and can't seem to find a way to get them back.

how did you do this


Add CSVGN1 Dynamic counterpart

Hello, I'm adding the necessary code to run dynamic simulations with the CVSGN1 model. I have a pull request in the PowerSystems repository to add the corresponding Struct. I needed a 2nd Order Lead-Lag Block with non-windup limits, so I also added it.

@luisdi97 you can update the dependency for PowerSystems to 2.1 to add the new struct. This PR is also missing testing. Unfortunately we don't have a reference case with this device to make the test ourselves.

@rodrigomha and @luisdi97 were we able to make a case for testing? At least we should have a case that runs even if we can't compare with PSSe at the moment.

@luisdi97 you are correct. That was my own mental fart about the base conversions in PSY


Add support for non-strict map keys

Right now ormsgpack.unpackb raises an exception when the payload contains a map with non-str key. Original msgpack doesn't enable this by default, but with a flag of strict_map_key.
This issue is to add a similar support.

Closed by #16


badges

fix travis badge to link to travis
add go report card badge

There's real potential for someone to leave a really great comment here...

LGTM


Use common methods for user synchronization

Summary
https://github.com/servicecatalog/oscm/issues/405
Use methods from the commons package in this task.

done within #405


Using Validar with a sealed class creates CA errors.

[ImplementPropertyChanged, InjectValidation]
public sealed class MyClass : INotifyPropertyChanged
{

creates the following static code analysis errors:
Microsoft.Design : ''MyClass.IDataErrorInfo.Error.get()'' is a virtual member declared in a sealed type.
Mark the member non-virtual or, if the type should be extensible, unseal it.

(same error repeated for all other interfaces members)

note that INotifyPropertyChanged is redundant when u have ImplementPropertyChanged

did u want to have a go at submitting a PR for this?

INotifyPropertyChanged is redundant: Yes, I'm aware of this.
The class where I copied this sample code from just needed to have it declared, because some consumers required this.

PR: No, I had no time yet to look into the sources, and probably I won't in the near future.


Feature update client whadmin

Changes

Set up Login, Register, Navigation Bar for client-whadmin as well as warehouse page
Debug PageRender file which cannot use old format for rendering (dynamic import function) because of dymanic import of Vite React mechanic
Set up fetch data API for globally but not completed due to need to test when back-end is finished

@LaansDole Add the PR description and then everything is good to merge

Resolve issue #3


Ho Ho Ho

Fixes dangling Joe bug
Enables picked-item editing on Admin console
Reverting removal of reference to AppSettings.config

I don't understand how it is possible to get into the state that this fix is for... can you explain the process by which you would actually wind up in that state?
Also, I don't want to re-add the references to the app settings file, I removed it on purpose.

Sounds good, will rever the appsettings.config change.
As for the "dangling Joe" bug, here's a description of what happened on my deployment. I populated the system with 6 people, let's call them A, B, C, D, E and F.

The change:
            if (candidates.Count() == 2 && !candidates.All(a => a.HasPicked()))
            {
                candidates = candidates.Where(a => !a.HasPicked());
            }

Basically it gets activated to prevent E to pick A. When E is going to pick, it initially receives the list of candidates with 2 results: [A, F]. I then ask if all the candidates have picked, and since F hasn't picked I enter the if statement. There I filter to only have candidates that haven't picked, in this case, only F will be a candidate. When E is going to pick, he only gets F as his option. F will then pick A.
I tested this against a number of scenarios, the only one interesting was when you have an initial state with 3 people in the system: A, B and C. In that case both A and B activate this, but the result is as expected.
Does this make sense to you?

Ah, OK. I was having a hard time wrapping my brain around the example in the comment on the PR, but this makes sense. If you resolve the conflicts I'll go head and merge this. :-)

Conflicts have been resolved.


Possible solution could be to introduce a less restrictive type for pending blocks + separate methods for fetching those on Provider. After that we can disallow fetching pending blocks through provider.get_block_by_number, and use complete type for those responses.

After that we can disallow fetching pending blocks through provider.get_block_by_number, and use complete type for those responses.

this could be pretty invasive because then we'd need a new BlockNumberOrTag call.
what we could also do is just deserialize the pending block response differently, I'm fine with using default for the missing fields, not super great but simpler than introducing a block type just for pending.

what we could also do is just deserialize the pending block response differently

should we add a separate Network AT for pending block? like type PendingBlockResponse: RpcObject + Into<Self::BlockResponse>
and then in get_block_by_number deser as N::PendingBlockResponse if pending block is requested


Validator[A] autogenerated code

The autogenerated
implicit val validator:scalapb.validate.Validator[SomeType] = fully.quelified.name.SomeTypeValidator, inside the companion object , is not serialisable.
When using frameworks such as Spark/Flink, it prevents us from providing it as an implicit evidence to methods which define the execution graph.
I think that changing the implementation from object to case object on your side would do the trick.
Tnx.
https://github.com/scalapb/scalapb-validate/blob/02bb01e406cfa3c4d7969abe6af8c5347f610446/code-gen/src/main/scala/scalapb/validate/compiler/CodeGenerator.scala#L141

Changing it from implicit val to implicit def would be my preferred approach in this case (in my mind case objects are to signal that the object is data, such as enum).
Do you know if that's the only reason why the companion is not serializable? With validation turned off would it serialize?

Yes. I have actually built a local copy of your code and it works perfectly.
Regarding the implicit method, it sounds great.

@thesamet when do you plan the next release?

Releases happen around new features or updating versions of dependencies. Since this change is small, it's reasonable to get a new release some time next week with bumped up version of cats and other deps.

@thesamet Looks like 0.3.3 was released here, but it doesn't appear in maven central, the latest is still 0.3.2 over there.

Yes, looks like the release process of 0.3.3 had failed. I'll cut a new one soon.

0.3.3 is now available.


Mdns changes

I need a new function for an mDns example I'm writing. I also spotted issues when testing different versions of lwip (the mDns API has changed in new versions of lwip)

Instructions: (please delete)

:wink:

I'm not that convinced that the new method belongs here... the caller could get the mac, and then do character manipulation themselves. do we expect this to be useful elsewhere?

Removed the change that added the function cyw43_hal_get_mac_ascii


Fix missing dependency for cookiecutter

Motivation for this change
Cookiecutter fails to be built due to a missing dependency, I'm not sure why it built at some point (possibly the PyPI package was replaced)
Things done

Add missing dependency: python-slugify
Test executable after building using Nix in Arch Linux

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Sorry I realized it is duplicated


LN/DLC test refactors

This PR refactors the ln/dlc channels tests to (hopefully) make them more readable and easier to maintain and extend.

Added a commit that simplify testing of states during establishment and offchain closing as this will also be needed later and feels too repetitive.


June 8th 2021 - Currency Ref Data Meeting Minutes

Currency Reference Data Meeting
Date
20210608 - 10am ET / 3pm GMT
Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[ ] Convene & roll call (5mins)
[ ] Display FINOS Antitrust Policy summary slide
[ ] Review Meeting Notices (see above)
[ ] Approve May 11th meeting minutes
[ ] Agenda item 1
[ ] Agenda item 2
[ ] ...
[ ] AOB, Q&A & Adjourn (5mins)

Decisions Made

[ ] Decision 1
[ ] Decision 2
[ ] ...

Action Items

[ ] Action 1
[ ] Action 2
[ ] ...

WebEx info

WebEx Meeting URL
Meeting Number:<PHONE_NUMBER>
Join by phone: +1.415.655.0003 USA Toll | +44-20319-88141 UK Toll | Access code:<PHONE_NUMBER>
Password: VXcd2eQgh82
Global call-in numbers

hi

Hi

Hi

hello


Use total_cmp for floating value ordering and remove nan_ordering feature flag

Which issue does this PR close?

Closes #2613.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

Could you perhaps run the benchmarks just to see what performance impact this has?

Sure. I'll run the benchmark.

Ran the comparison benchmarks. No performance difference shown.

No performance difference shown.

Even when the nan_ordering feature is enabled?

Even when the nan_ordering feature is enabled?

Yes.

Thanks @tustvold


Hierarchical tooltip configuration definitions

As tooltips are triggered on Elements, a hierarchical callback definition could be made - callbacks are called if defined in (in order of preference):

the dataset
the axis
the chart
the chart globals

The reasoning behind this feature is that while creating a complex chart with different needs for label formatting, I found myself doing this a lot:
chartOptions = {
    [...]
    tooltips: {
        callbacks: {
            label: function (tooltip, data) {
                // real implementation accounts for nonexistent object properties
                var datasetCallback = data.datasets[tooltip.datasetIndex].tooltips.callbacks.label;

                if (typeof datasetCallback === 'function') {
                    return datasetCallback(tooltip, data);
                }

                return tooltip.yLabel;
            }
        }
    }
}

This seems like an interesting idea. Thoughts @tannerlinsley @derekperkins @zachpanz88 @simonbrunel  ?


Read sbt.version in build.properties file

I have challenged the #9 task.
Tentatively, read build.properties at only project root directory.
I'm sorry but I'm not good at ShellScript,
so I hope you feel free to point out the bad points or reject it.
Current restriction ( or bug),
there are multiple lines settings in build.properties and
sbt.version's setting at second line or later,
version read will fail.

@all-contributors please add @zaneli for code


distributed trainning with mxnet, get error "ImportError: No module named numpy"

Description
Following by the install guide i built  mxnet in the docker, and started multi-container then i run the exmple as bellow:
root@mxnet1:~/mxnet/example/image-classification# python train_mnist.py --network lenet
/root/anaconda3/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py:46: DeprecationWarning: OpenSSL.rand is deprecated - you should use os.urandom instead
  import OpenSSL.SSL
INFO:root:start with arguments Namespace(add_stn=False, batch_size=64, disp_batches=100, dtype='float32', gc_threshold=0.5, gc_type='none', gpus=None, kv_store='device', load_epoch=None, lr=0.05, lr_factor=0.1, lr_step_epochs='10', model_prefix=None, mom=0.9, monitor=0, network='lenet', num_classes=10, num_epochs=20, num_examples=60000, num_layers=None, optimizer='sgd', test_io=0, top_k=0, wd=0.0001)
INFO:root:Epoch[0] Batch [100]	Speed: 590.42 samples/sec	accuracy=0.863243
INFO:root:Epoch[0] Batch [200]	Speed: 536.00 samples/sec	accuracy=0.946562
INFO:root:Epoch[0] Batch [300]	Speed: 596.90 samples/sec	accuracy=0.973125
INFO:root:Epoch[0] Batch [400]	Speed: 643.99 samples/sec	accuracy=0.969688
INFO:root:Epoch[0] Batch [500]	Speed: 538.20 samples/sec	accuracy=0.971875
INFO:root:Epoch[0] Batch [600]	Speed: 576.18 samples/sec	accuracy=0.969063
INFO:root:Epoch[0] Batch [700]	Speed: 550.20 samples/sec	accuracy=0.974375
INFO:root:Epoch[0] Batch [800]	Speed: 522.18 samples/sec	accuracy=0.975156
INFO:root:Epoch[0] Batch [900]	Speed: 540.79 samples/sec	accuracy=0.977812
INFO:root:Epoch[0] Train-accuracy=0.979307
INFO:root:Epoch[0] Time cost=105.686
INFO:root:Epoch[0] Validation-accuracy=0.985370

then i stepped to train with multi-container, so i do it like this:
root@mxnet1:~/mxnet/example/image-classification# ../../tools/launch.py -n 2 --launcher ssh -H hosts python train_mnist.py --network lenet --kv-store dist_sync
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
Traceback (most recent call last):
  File "train_mnist.py", line 25, in <module>
    from common import find_mxnet, fit
  File "/root/mxnet/example/image-classification/common/find_mxnet.py", line 24, in <module>
    import mxnet as mx
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/__init__.py", line 25, in <module>
    from . import engine
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/engine.py", line 23, in <module>
    from .base import _LIB, check_call
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/base.py", line 29, in <module>
    import numpy as np
ImportError: No module named numpy
Traceback (most recent call last):
  File "train_mnist.py", line 25, in <module>
    from common import find_mxnet, fit
  File "/root/mxnet/example/image-classification/common/find_mxnet.py", line 24, in <module>
    import mxnet as mx
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/__init__.py", line 25, in <module>
    from . import engine
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/engine.py", line 23, in <module>
    from .base import _LIB, check_call
  File "/root/mxnet/example/image-classification/common/../../../python/mxnet/base.py", line 29, in <module>
    import numpy as np
ImportError: No module named numpy
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/root/anaconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/root/anaconda3/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/root/mxnet/tools/../dmlc-core/tracker/dmlc_tracker/ssh.py", line 61, in run
    subprocess.check_call(prog, shell = True)
  File "/root/anaconda3/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'ssh -o StrictHostKeyChecking=no <IP_ADDRESS> -p 22 'export DMLC_NUM_WORKER=1; export DMLC_NUM_SERVER=1; export DMLC_PS_ROOT_URI=<IP_ADDRESS>; export DMLC_PS_ROOT_PORT=9092; export DMLC_ROLE=worker; cd /root/mxnet/example/image-classification/; python train_mnist.py --network lenet --kv-store dist_sync'' returned non-zero exit status 1.

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/root/anaconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/root/anaconda3/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/root/mxnet/tools/../dmlc-core/tracker/dmlc_tracker/ssh.py", line 61, in run
    subprocess.check_call(prog, shell = True)
  File "/root/anaconda3/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'ssh -o StrictHostKeyChecking=no <IP_ADDRESS> -p 22 'export DMLC_NUM_WORKER=1; export DMLC_NUM_SERVER=1; export DMLC_PS_ROOT_URI=<IP_ADDRESS>; export DMLC_PS_ROOT_PORT=9092; export DMLC_ROLE=server; cd /root/mxnet/example/image-classification/; python train_mnist.py --network lenet --kv-store dist_sync'' returned non-zero exit status 1.

envs:
 anaconda 3
 ssh -  no passwd

mxnet build cmd:
make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_DIST_KVSTORE=1

i don't know how to solve it, please help me fix it..
thanks alot

I face the same problem. Have you solved it yet?

I have solved it. When you launch to the remote node with ssh, you must use the python which installed mxnet, not the default python!  I use the launed.py to run a distributed training, and run a shell. The code of shell is:
python ~/mxnet/tools/launch.py -n 2 --launcher ssh -H ./hosts-2
"/xxxx/home/abc/python/bin/python -u ~/mxne/example/image-classification/train_imagenet.py"


Documentation for HTTP.rfc1123_date.

Heavily inspired by http://ruby-doc.org/stdlib-2.0.0/libdoc/cgi/rdoc/CGI.html#method-c-rfc1123_date

@bew it's not true. A lot of documentation has same output without any puts.
Simply look for #.+# => regular expression in src folder.

string =  part is IMO redundant since there's return type annotation.

@Sija,@bew thanks, assignment removed.

btw, thanks for filling gaps in documentation, much appreciated! 👍

@akzhan string =  assignment is still there.

@Sija Fixed.
P.S.: I will commit code without force updates due to keep comments history.

@akzhan no need to, they'll probably be squashed anyway.

@Sija Keeping commit/comment history is useful for the duration of the PR, even if they will be squashed and not preserved when merged into master.

Thanks again @akzhan ! As @Sija said, contributions to docs are important 👍


Adding ReactorShim type to facade reactor apis, exporting windowTimout reactor api, using shim in ParitionPumpManager

this can be ignored as Connie restored the work by cherry-picking


Cache and base uri update

This PR is the collaboration between myself and @becomesaflame from PR #11 .
Also updates the index.json url and fixes #18
Although this may duplicate the functionality of PR #8, which includes many other improvements.

Thanks for the feedback, @raylee and @ghost.  We've addressed the comments and pushed changes and are ready to implement any other suggestions you might have.  We should have some more time now to work on this - sorry for the long delay.

Merged with a few changes. Thanks everyone!


False positives while searching

The image below shows the false positive,

In text form:
❤ ★ ∿       ✎       (master ᄉ origin)      ~/workspace/hiddendcon
∙ ag currency11
10_1.03/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#hmoddfdoajaimompdouble,

11_1.05/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

12_1.05/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

13_1.06/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

14_1.07/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

15_1.08/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

16_1.08/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

17_1.08/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

18_1.09/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#ehaalekembpljdfpdouble,

19_1.09/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#ehaalekembpljdfpdouble,

20_1.09/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#ehaalekembpljdfpdouble,

21_1.09/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

22_1.11/ShopDrawerMenuItem.csv
10:iap,Currency,icon_hud_currency112x118.png,1,didTapIAPStoreButton,small,

9_0.1/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#hmoddfdoajaimompdouble,
❤ ★ ∿       ✎       (master ᄉ origin)      ~/workspace/hiddendcon
∙ cat 9_0.1/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#hmoddfdoajaimomp%
❤ ★ ∿       ✎       (master ᄉ origin)      ~/workspace/hiddendcon
∙ cat 10_1.03/ShopDrawerMenuItem.csv
sound,Sound,icon_hud_sound112x118.png,1,didTapSoundsButton,small,!@#hmoddfdoajaimomp%

AG version 0.31.0 from the homebrew bottle. On OSX 10.10.5, MacBook Pro (Retina, 15-inch, Mid 2014)
brew info the_silver_searcher
the_silver_searcher: stable 0.31.0 (bottled), HEAD
Code-search similar to ack
https://github.com/ggreer/the_silver_searcher
/usr/local/Cellar/the_silver_searcher/0.31.0 (8 files, 116K) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/the_silver_searcher.rb
==> Dependencies
Build: autoconf ✔, automake ✔, pkg-config ✔
Required: pcre ✔, xz ✔
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

The result is fully reproducible. Seems to be related to the fact that there are multiple folders containing the same filename, with some of them having matches and some of them not. I cannot post the debug result publicly because it's a private repo, but my guess is based on what I read in the debug search. I can send a truncated debug result privately if required.
False positive seem to be a very serious bug for a tool that is supposed to search for strings. I am here for any more information if needed.

Can you provide the file containing the false positive?

I did, cat of the files list the full content.

Yes, but can you provide the file? I can't reproduce the issue with just that line. It never matches.

Did you try with multiple files with the same name, some having the
matching String, some not? I will try to create a small sample which
reproduces the issue and send you a zip.
On Sun, Oct 11, 2015, 1:00 PM Geoff Greer<EMAIL_ADDRESS>wrote:

Yes, but can you provide the file? I can't reproduce the issue with just
that line. It never matches.
—
Reply to this email directly or view it on GitHub
https://github.com/ggreer/the_silver_searcher/issues/763#issuecomment-147239687
.


Unselect option

Given the existence of sub-items it would be good to provide un-select for the summary lines.
Otherwise one is forced to use "Don't Care" in order to back-off on items that have sub-items one does not know. Or simply provide a button for "Unrated"

#10 may go some way towards solving this. But what I'm thinking is that each button is an on/off toggle.

Thanks for the feedback!
Should be fixed by https://github.com/davidgilbertson/know-it-all/commit/9dc30768f4d5d677b5e993e2c34470edab73aee8
Clicking a button now toggles the score.


Add identity conversion

Re: Suggestion #65
Two broken tests. Not sure what's wrong/how to fix (118 and 120)
If you have any preferences as to code style/additional tests etc, please just let me know.
Regards,
John.

Thanks for the work here. I'm actually rewriting the system that builds up the conversion paths so this won't be relevant anymore.


Added Documentation for UI Componenets

This PR adds MDX documentation for the UI components in the components folder, including usage examples, prop descriptions, and an overview page. It covers components like Accordion, Button, Dialog, and more, making integration easier for developers.
Changes Made:

Added individual MDX files for each UI component with detailed documentation.
Provided clear descriptions for each prop and usage examples for easy integration.
Created an overview page summarizing the components' purpose and key features.

@shabaz39 , I really appreciate your contribution.
However, I would like a single page that contains all the markdown elements, including standard markdown files such as headings, lists, blockquotes, code blocks (with showLineNumbers and line highlighting), and the tab component I'm using to switch code. It should also cover how to add images, links, the note component, and the stepper. This will help make everything clear for anyone who is going to use this, so only the necessary markdown custom components and standard markdown elements should be included. Documenting all components used in the project won't be useful.
I also want you to modify the "Get Started" page to include instructions on where the content should be placed, specifying that content files should be in the .mdx extension with the appropriate frontmatter. Additionally, please include details on how to configure routes, how to clone the GitHub repository, install dependencies using npm i, and add information about other versions in the "Get Started" section.
Thank you.

The component.mdx should be one file with Google content and inside get started folder

@shabaz39 , I really appreciate your contribution.
However, I would like a single page that contains all the markdown elements, including standard markdown files such as headings, lists, blockquotes, code blocks (with showLineNumbers and line highlighting), and the tab component I'm using to switch code. It should also cover how to add images, links, the note component, and the stepper. This will help make everything clear for anyone who is going to use this, so only the necessary markdown custom components and standard markdown elements should be included. Documenting all components used in the project won't be useful.
I also want you to modify the "Get Started" page to include instructions on where the content should be placed, specifying that content files should be in the .mdx extension with the appropriate frontmatter. Additionally, please include details on how to configure routes, how to clone the GitHub repository, install dependencies using npm i, and add information about other versions in the "Get Started" section.
Thank you.

sure. will do.

sure. will do.

Please be free for content don't need to follow my template in other files it's just random stuff i pasted there with some scripts 😅. until it's understandable to anyone you can create it however. You can use quillbot for grammatical mistakes.

Key Changes:

Explanation of .mdx Files: Added a section explaining that documentation should be written in .mdx files with frontmatter metadata.
Route Configuration: Provided an example from the routes-config.ts file to explain how routes are created and how they link to the left navigation bar.
Route Processing: Explained how the recursive function works to ensure all routes are properly displayed.

Its not what i needed. Hence closing this PR


Initial code dump

Not ready to be widely shared, missing a lot of explanations and test cases (internal right now, need to be scrubbed clean)

out of sync now, I'll update later


Maps

The Sponge API is in need of maps. A potential map API would most likely look very similar to bukkit's map API, although any improvements are welcome.
Some things to consider:

How coupled is this to NBT/persistence? See the map format. We may need to wait on persistence and then write map data as a persistence class.

Implemented by https://github.com/SpongePowered/SpongeAPI/pull/531


Fix allowPartial parameter handling in getBoundingSphere to prevent blocking by other visualizers in update function

Description
This pull request addresses a bug in the getBoundingSphere method where the allowPartial parameter was not functioning correctly. The issue caused the bounding sphere creation for one entity to be blocked by another entity belonging to a different visualizer that is not ready, even when allowPartial was set to true. This, combined with the fact that the allowPartial parameter being set to false when creating a boundingSphere for the tracked entity, resulted in the flicker bug seen in issue Issue 4647 and Community Forum Post 35516. The tracked entity was unable to get its bounding sphere if the Polyline was being drawn at the same time.
Changes Made:
Added a check for !allowPartial before setting the BoundingSphereState to PENDING in the getBoundingSphere method.
Tested:
Ensured that the method does not halt and return pending if allowPartial is true even when the desired visualizer is ready.
Tested with Cesium Sandcastle Provided in Community Forum Post 35516
(For some reason i cant get the 2016 issue sandcastle working locally on my mac even when im on the main branch so ive been unable to test it with that)
Issue number and link
4647 https://github.com/CesiumGS/cesium/issues/4647
35516 https://community.cesium.com/t/how-to-fix-flicker-upon-updating-position-of-an-entity/35516
Testing plan
I used the example cesium sandcastle code provided in the community forum post and visually verified the flicker is no longer there.
Author checklist

[X] I have submitted a Contributor License Agreement
[X] I have added my name to CONTRIBUTORS.md
[X] I have updated CHANGES.md with a short summary of my change
[X] I have added or updated unit tests to ensure consistent code coverage
[X] I have updated the inline documentation, and included code examples where relevant
[X] I have performed a self-review of my code

Thanks for the fix @Levi-Montgomery! @lukemckinstry could you please do a review pass on this?

Thanks for this PR @Levi-Montgomery
I see the fix is looking good for the sandcastle example described in https://github.com/CesiumGS/cesium/issues/4647
But in the sandcastle example at the top of the forum thread https://community.cesium.com/t/how-to-fix-flicker-upon-updating-position-of-an-entity/35516 it seems the model is no longer visible. Are you seeing something different?

@lukemckinstry Thanks for testing.

the model is no longer visible.

Could it be because the model path on line 31 does not exist in that location on your computer when you're running locally?
I did have to change that string to a different 3D model that i already had on my computer for testing purposes.

@lukemckinstry Ah, I see. If you replace the path on line 31 with ../../SampleData/models/CesiumDrone/CesiumDrone.glb it will work. Not sure why a single ../ works in the deployed environment but in local you need ../../

Thanks for this PR @Levi-Montgomery and for helping me troubleshoot.
The flickering caused by the misalignment of the model and camera positions appears fixed in the sandcastle example described in #4647 and the sandcastle example at the top of the forum thread https://community.cesium.com/t/how-to-fix-flicker-upon-updating-position-of-an-entity/35516
This is looking good @ggetz

@ggetz Awesome!! I've pushed up a summary.

I'd have to cross-check the details, but maybe someone can quickly say whether this fixes https://github.com/CesiumGS/cesium/issues/4647 (meaning that this issue could be closed) ... ?

Thanks @javagl! Closed.


Ordering a record list by clicking on a column header does not do anything

Record lists have a column header you previously could click on to order ascending or descending according to the values in that column. But now clicking on it doesn't do anything.
You can try it out on crm/pages/69156551885062161/.

@Fajfa tables sorting in the CRM stopped working, please check

I have determined the backend rework is the fault for this problem. Waiting for the rework to be complete, and then examining further. I dont want to find the solution and then see the entire backend has changed and the solution wouldn't work.

Presort is "broken". Will have to check backend.


Test worldgen changes

This PR goes with the one on pytest-insta (do not approve it yet, the tests don't pass btw).
This fix that NamespaceFile that are added with plugins (such as worldgen ones), weren't called in the pytest plugin, now we can customize this.

Good point, I think for worldgen specifically we can enable it by default for data pack snapshots (https://github.com/mcbeet/beet/commit/699c4c3b6909b883946c4456fd41f29398600bcf). I released this in beet v0.108.4.
However for the more general case, I'd probably just register another Fmt that configures the pack differently before loading.


Error with event subscription stating Invalid resource name.

I have gone through the entire setup process 4 times now. It is now showing up in HomeKit after I removed the child bridge. I even completely removed the cache devices before that and then uninstalled and reinstalled the whole plugin before the most recent attempt. But it is still throwing this error. I have clearly gone through the steps and even made sure to use the + link you provided, turned on Cloud Pub/Sub and added the GCP Project ID using the Project ID. Not sure if there is some functionality lost yet since I have been playing with it all day. Any thoughts on how I can clear this error?
#[homebridge-google-nest-sdm] Plugin initialization failed, there was a failure with event subscription. Did you read the readme: https://github.com/potmat/homebridge-google-nest-sdm#where-do-the-config-values-come-from StatusError: Invalid resource name given (name=projects/sdm-prod/topics/enterprise-9b158fa0-6df3-4f1b-9dce-68397594a6bf). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.
at MessageStream._onEnd (/var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:289:20)
at MessageStream._onStatus (/var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:330:12)
at ClientDuplexStreamImpl. (/var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:184:38)
at Object.onceWrapper (node:events:628:26)
at ClientDuplexStreamImpl.emit (node:events:513:28)
at Object.onReceiveStatus (/var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/client.ts:695:16)
at Object.onReceiveStatus (/var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/client-interceptors.ts:424:48)
at /var/lib/homebridge/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/call-stream.ts:330:24
at processTicksAndRejections (node:internal/process/task_queues:77:11) {
code: 3,
details: 'Invalid resource name given (name=projects/sdm-prod/topics/enterprise-9b158fa0-6df3-4f1b-9dce-68397594a6bf). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.',
metadata: Metadata { internalRepr: Map(0) {}, options: {} }

I ran into this same issue, and you're using the Pub/Sub topic name, when you need to use the Pub/Sub Subscription Name ¯\_(ツ)_/¯

Go to the Pub/Sub landing page
Click on the Pub/Sub subscription you created as part of this install process
At the top of the Subscription landing page, you'll see three pieces of information:

Subscription name  <-- This is the value you want to copy/paste into your Homebridge configuration
Subscription state
Topic name  <-- This is what you have in your Homebridge configuration now, and needs to be replaced.

I hope this helps!

@Ben-Chapman is right, as the readme and config screen say, the value should look like
projects/your-gcp-project-id/subscriptions/your-subscription-id


Storage Explorer unexpectedly closes after closing a formatted JSON tab

Storage Explorer Version: 1.36.0-dev (101)
Build Number: 20241012.1
Branch: main
Platform/OS: Windows11/Windows11/Linux Ubuntu 22.04/MacOS Sequoia 15.0(Apple M1 Pro)
Architecture: arm64/x64/x64/arm64
How Found: From running test cases
Regression From: Previous release (1.35.0)
Steps to Reproduce

Expand one Storage Account -> Blob Containers.
Create a blob container -> Upload a .json file.
Right click the .json file -> Click 'Preview'.
In the preview panel, right-click and choose 'Format JSON'.
Close the preview tab.
Check whether Storage Explorer is still open.

Expected Experience
Storage Explorer remains open.
Actual Experience
Storage Explorer closes unexpectedly.

A user has already reported on this (#8235).

@v-xianya Does this also repro on macOS Sonoma (14)? Sequoia is a pretty new version, which we aren't yet ready to test on.

@craxal We verified this issue on the macOS Sonoma (14.6.1), it reproduces.


FIX - Update sources to https (Linux)

Install currently fails with error 308.
Identical to #45, but works also on Linux (one link was missing).

Great job, this fixed my install issue.
Hope to see this merged in

Thanks @FrailHand for the fix!


Number of NUMA nodes

On my (non-NUMA, Intel i7-6500U) laptop QUO_nnumanodes returns 0, from my understanding and consistency with machine/socket/... I think this should be 1. So its 1 machine containing 1 numa node containing 1 socket ... Also QUO_cpuset_in_type says that no process is in any numa node.

I appreciate your point, but QUO_nnumanodes is simply a thin wrapper around quo_hwloc_get_nobjs_by_type(HWLOC_OBJ_NODE), so QUO_nnumanodes is simply following conventions set by hwloc. I tend to agree with hwloc's convention: non-NUMA architectures have zero NUMA nodes.
QUO_cpuset_in_type is following the same convention.

Florian and I spoke offline. Closing.


IconToggle: componentWillReceiveProps() deprecated

Thought I should let you know:
Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.

Move data fetching code or side effects to componentDidUpdate.
If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state
Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run npx react-codemod rename-unsafe-lifecycles in your project source folder.

Please update the following components: IconToggle

i am also having the same problem with componentWillReceiveProps lifecycle when will this be solved?

any update on this? @mzu @AreebVohra , were you guys able to solve this?

any update on this? @mzu @AreebVohra , were you guys able to solve this?

@fmsthird I am not using this anymore, so I don't really know if this has been sorted or not.

Thanks for your response @mzu , I managed to fix it myself. I forked the repo and run npx react-codemod rename-unsafe-lifecycles


JacocoPluginExtension::applyTo can not be called from Kotlin

Full issue description here:
https://github.com/gradle/kotlin-dsl/issues/458
I'm also posting in this repo because I think this will be an API change that will end up being a PR against this repo.

@bamboo Do you require an issue for this on gradle/gradle? If we fix it then we'll fix it in both places anyway.

@bmuschko it's not strictly required.

@bamboo OK, I am closing this issue for now.
@JLLeitschuh Please continue to track gradle/kotlin-dsl#458 to follow the progress.


perf(anvil): enhance block mining performance in Anvil node for high throughput and efficiency

Component
Anvil
Describe the feature you would like
I propose a performance enhancement for the Anvil node, specifically targeting the efficiency of block mining. Through some tests I've observed that while Anvil demonstrates impressive transaction processing capabilities, there's a noticeable disparity in throughput efficiency primarily attributed to the time spent mining blocks. This feature request seeks optimizations in Anvil's block mining to reduce execution time, thereby increasing the overall transactions per second (TPS) throughput and making the node more suitable for applications requiring high transaction processing speeds as well as frequent mining of blocks.
Additional context
Anvil version: 0.2.0 (2cf84d9 2024-02-07T00:15:49.622159000Z)
To illustrate the current performance characteristics and provide a basis for this request, I conducted a test using a Uniswap V3 transaction replay script. The findings highlight a significant potential for performance gains in block mining processes. For instance, when increasing the nullSwapsPerBlock from 1 to 2000, the average TPS improved dramatically(by a factor of 7x), indicating that the node spends a significant portion of time mining blocks vs actual transaction execution. To replicate this test:

clone this repo anvil-backtester, install deps(pnpm i)
start the anvil node: pnpm anvil:start
run the test script: pnpm test:anvil-memory with nullSwapsPerBlock set to 1 and then again set to 2000 and observe results similar to the following indicating significant overhead in mining blocks:

{
  blocksToMine: 25,
  nullSwapsPerBlock: 1,
  totalTxs: 50,
  executionTime: 0.084,
  averageTPS:<PHONE_NUMBER>380952,
  averageTimePerTx: 1.6800000000000002
}

{
  blocksToMine: 25,
  nullSwapsPerBlock: 2000,
  totalTxs: 100000,
  executionTime: 24.747,
  averageTPS: 4040.8938457186728,
  averageTimePerTx: 0.24747000000000002
}

it likely spends most of the time cleaning up / updating old state
could you try with --prune-history if you notice any difference?
There's definitely room for significant improvements here

@mattsse I am using --prune-history in the anvil command as shown below
https://github.com/mshakeg/anvil-backtester/blob/main/shell/anvil.sh

hmm, could you perhaps run this with samply https://github.com/mstange/samply and see if anything sticks out
I'll try to investigate shortly

@mattsse thanks, don't really know what to make of the profile, but I've attached the trace on evm_mine, maybe GPT4 could be a source of inspiration :)

Based on this call trace, here are a few points to consider for profiling and improving performance:

Database Interactions: The evm_mine operation involves interactions with an in-memory database. Optimizations here could involve reducing the number of reads and writes, caching frequently accessed data, or improving the database's data structures.

State Trie Manipulation: There are multiple calls to trie_db functions, which indicate manipulation of the state trie. This is an area that typically has a significant impact on performance. Optimizing trie algorithms or using a more efficient trie structure could yield performance improvements.

Hash Calculations: The keccak_hasher and tiny_keccak functions suggest that Keccak hashing is part of the operation. Optimizing hashing or reducing the number of hash calculations required could improve performance.

EVM Execution: The revm specific calls such as run_interpreter and preverified_inner imply that EVM bytecode execution is a part of the process. Profiling the EVM's interpreter loop, opcode execution, and context switching could reveal bottlenecks.

Smart Contract Calls: Calls to inspect_call_instruction and Host::call suggest that smart contract function calls are being made. Optimizing the way smart contracts are called and executed, possibly by reducing the overhead of call setup and teardown, could improve performance. This could include minimizing the overhead associated with setting up the environment for a contract call and efficiently handling the stack and memory operations.

Parallelism and Concurrency: Evaluate if any parts of the evm_mine process can be executed in parallel. Some operations, especially state-independent ones, may benefit from concurrent execution.

Memory Management: Functions like drop_in_place suggest that there is active management of memory, possibly with data structures being de-allocated. Improving memory allocation strategies, avoiding unnecessary allocations, and reusing memory buffers could reduce overhead and improve performance.

Opcode Optimization: Within the EVM execution, certain opcodes may be used more frequently or may be more resource-intensive. Profiling at the opcode level could help identify if specific opcodes are bottlenecks and could be optimized.

Caching Strategies: For repetitive operations, especially within the EVM interpreter, caching results of expensive computations could be beneficial if they're likely to be repeated with the same inputs.

Profiling and Instrumentation Tools: Utilize profiling tools that can provide granular insights into CPU and memory usage. Rust's performance tools, such as perf on Linux or DTrace/BPF on BSD/Mac, can help identify hot paths and functions that are taking the most time or consuming the most resources.

Algorithmic Efficiency: Review the algorithms used in the trie manipulation and hashing to ensure they are the most efficient for the use case. Sometimes, algorithmic improvements can yield better performance gains than low-level optimizations.

Code Review and Refactoring: There might be opportunities to refactor the code for efficiency. This could involve combining functions, inlining functions to reduce call overhead, or simplifying complex logic.

Batch Processing: If the evm_mine operation can be batched (i.e., processing multiple transactions or blocks in a single operation), it could reduce the per-operation overhead and take advantage of more efficient bulk processing techniques.

Asynchronous Processing: Look into asynchronous processing where applicable to avoid blocking operations, particularly for I/O bound tasks.

thanks!
will investigate, but looks like stateroot

@mattsse thanks, might be a good idea to have flags that disable logic not really needed on a local node, similar to how the eth_sendUnsignedTransaction method can be used to send an unsigned transaction.

Related conversation in #7546: https://github.com/foundry-rs/foundry/pull/7546#issuecomment-2041338137

@mshakeg I retried your test driver with latest anvil and got following results

with nullSwapsPerBlock=1

{
  blocksToMine: 10,
  nullSwapsPerBlock: 1,
  totalTxs: 20,
  executionTime: 0.024,
  averageTPS:<PHONE_NUMBER>333334,
  averageTimePerTx: 1.2
}

with nullSwapsPerBlock=2000 constantly getting values around

{
  blocksToMine: 10,
  nullSwapsPerBlock: 2000,
  totalTxs: 40000,
  executionTime: 5.987,
  averageTPS: 6681.142475363287,
  averageTimePerTx: 0.149675
}

best result in couple of tries (when reinstalled anvil)
{
  blocksToMine: 10,
  nullSwapsPerBlock: 2000,
  totalTxs: 40000,
  executionTime: 4.806,
  averageTPS: 8322.929671244277,
  averageTimePerTx: 0.12015
}

Note that I have to restart anvil between runs because of which locks test driver on subsequent createPool, ref https://github.com/ethers-io/ethers.js/issues/4224
      const tx = await uniswapV3Factory.createPool(token0, token1, FeeAmount.LOW);
      const rc = await tx.wait(); <- locks here, even tx is mined and includded

Would this be a reasonable enhancement in scope of this ticket? Thank you

bump @mshakeg please check comment above. thanks!

@grandizzy are you referring to the locking issue? if so then I wouldn't say it's related to this issue, so maybe open a new issue if there isn't already one?

@mshakeg not to the locking issue ( that's some not in our control but ethersjs see also https://github.com/foundry-rs/foundry/issues/7275#issuecomment-2479638615
https://github.com/foundry-rs/foundry/issues/4399#issuecomment-2407283296
, most probably https://github.com/ethers-io/ethers.js/issues/4224) but to the new numbers I posted above using your test driver (that looks beeter than original posted). Thank you

@grandizzy sure, though have you done some profiling to determine why the large TPS discrepancy? If much time is spent mining blocks(and computing merkl roots when mined for example) that could be disabled in a local node then agreed with adding an option to skip these computations for an even more performant local node.

@grandizzy sure, though have you done some profiling to determine why the large TPS discrepancy? If much time is spent mining blocks(and computing merkl roots when mined for example) that could be disabled in a local node then agreed with adding an option to skip these computations for an even more performant local node.

I think this explain it https://github.com/foundry-rs/foundry/issues/5499#issuecomment-1663487217

going to merge this one with https://github.com/foundry-rs/foundry/issues/5499 and to track potential hardhat behavior, @mshakeg please reopen if you think they should be addresses differently. thank you!


Update configuration reference for ucx and rmm changes

This PR updates our configuration docs based on the changes in https://github.com/dask/distributed/pull/4916
cc @charlesbluca @pentschev

Thanks for reviewing @jakirkham! I'm planning to merge this after CI finishes up to remove the red "X" on other PRs. Happy to address further comments from others in a follow-up PR


native: better handle linked images in gallery posts

It looks like we could have posts with inline links where the total inlines could be one rather than two, we need to account for both.
Fixes TLON-2048

This should be good. I'm not sure I understand the situation where we create those, but I understand the fix.


Add note to docs about svelte-transition

Make it clear that svelte-transition is a separate package that needs to be installed if you want to use it in your own component (as shown in the examples).
It's not a dependency of svelte-headlessui itself, although it may be worth considering adding it to this package (as it will likely be used more often than not).

When I installed svelte-headlessui, the svelte-transition came with it. It is listed as a dependency in here: https://github.com/CaptainCodeman/svelte-headlessui/blob/master/packages/lib/package.json
That said, I agree that it doesn't need to be a dependency. I didn't use it myself because it gave me issues with SSR in SvelteKit.


docs: ✏ better document hooks

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Adding Sets_List

All components are complete, with a minor doubt on ListIndex component. Sift, LongestList, ShortestList implemented with dynamic outputs (Alternate implementations with static outputs, yet to be made)

Also, following our conversation on Insert component Jose, I rewrote the component to find that it now works very much in line with the original component. So I have marked it complete. As for ListIndex, I tried following the Geometry Input approach you mentioned. So I have created a list of points stored in a Geometry object, then I have referenced one item from it using the ListItem component and then I pass it to the ListIndex components. If I store the referenced item, in a separate Geometry Object and internalize it I still get the -1 value error in the vanilla GH component. So should I leave it this way, with the ListItem component used?

Then lastly, I haven't yet implemented the static versions of the Static, Longest List and Shortest List. Like you said, I felt this would indeed be a good learning exercise. But do let me know if think it would be better to have the static versions too, in which case I can add them to the file. Your call :)

In the Longest List and Shortest List components - I have an issue with the 'Interpolate' options. I referred to this forum entry https://www.grasshopper3d.com/forum/topics/controlling-longest-list-behaviour to understand its behavior. So divided the list into intervals to match the length of the desired list's length and then interpolated its values based on their rounded off values. But the results aren't the same in most cases with the vanilla GH component. I tried all the different rounding off strategies - Round, Floor and Ceil, still I couldn't get the exact same results. So I have left a warning message for that one option alone.

Hi @bava-kumaravel, amazing work as usual! You really killed it on this one, I am very impressed. The contribution is super comprehensive and well explained. I mean, seriously, have you seen the Cross Reference code...? Really bad ass! 👍 💯 😮
For item index, yes, the situation you describe where two points have the same coordinates yet are "different" is because, since they were created differently, they have two different memory addresses and therefore count as different objects when compared. This is normal, and your workaround to actually fetch one from the list and use it for comparison is really good. I would mark this one as done 😄
As for the 'interpolate' issue, I have no idea what might be going on there, so don't bother and the warning for that case is a good idea. I would also mark that one as done.
I say you change the warning on Item Index to "this component only works with geometry objects, not primitives", and we merge! 🥳

Thank you for your kind words Jose @garciadelcastillo :) I also discovered something today that the List Index component works with Primitives too, just as long as its referenced through a List Item component 😄 So I just took off the warning message all together and flagged it complete! Yay! I also replaced the geometry input with the primitives list input that I used for the other components to maintain homogeneity.

Nice! That might be because GH wraps all data into IGH_Goo objects, so references are maintained? In any case, happy to hear that!
I wonder if you would mind changing the input list for Item Index before merging? I find it confusing that asking for fourth element retrieves number four... lol. Can we make the inputs either a randomized list of numbers, or back to some geometry entities?
Thanks!

Haha I see what you mean. I have reverted to the Geometric inputs :)

Merging, yaaaay! 🥳 🥳 🥳
Thanks a lot @bava-kumaravel , good job! 💪
Please make sure to update your local fork before starting a new PR.
Cheers!


Elm package fails to install modules with uppercase repo names

Renaming my repo from queue to Queue fixed my problem. The repo is here. My elm version is 0.18.0, and I am running on OSX.
The stack trace I got is
✗ eliaslfox/queue 1.0.0
Error: Problem when downloading the eliaslfox/orderedmap 1.0.0 code.

I just reproduced this - my username is uppercase, and it looks like it needs to match, although there's no reason to!
To install Spaxe/svg-pathd I would like to add the following
dependency to elm-package.json:

    "Spaxe/svg-pathd": "1.0.0 <= v < 2.0.0"

May I add that to elm-package.json for you? [Y/n]

Some new packages are needed. Here is the upgrade plan.

  Install:
    Spaxe/svg-pathd 1.0.0
    spaxe/svg-pathd 1.0.1

Do you approve of this plan? [Y/n]
Starting downloads...

  ✗ spaxe/svg-pathd 1.0.1
  ● Spaxe/svg-pathd 1.0.0
Error: Problem when downloading the spaxe/svg-pathd 1.0.1 code.```


Use Waltz server protocol highwatermark API in performance tests to start with latest

Once DI-1703 is done, update the Waltz consumer and producer tests to mount from the end of the Waltz log, not the beginning. See DI-1703 for more details.

As we will setup a new cluster for performance test each time, mounting is not a problem (won't take longer time to mount each run)


HNC: changes to make set command function testable

changes:
Separate out set command runnable function and introduce dependency function to make function testable.
Tested: manually run kubectl set commands and verified that they were
reported correctly.

closing this PR due to some git blunder