Hi, any setup guide for Vite ?

Hi,
How to get module level control, separate css,scss,js control with Vite compilation.
Thanks

Also interested in the answer to this.

You can follow this guide: https://docs.laravelmodules.com/v9/custom-module-generator.
It's not exactly setup guide for vite but it's a way you can customize base module for module generator.

I need to read up on vite I haven't tried it yet.

Hi, this is a good guide for setting up vite on core laravel https://christoph-rumpel.com/2022/6/moving-a-laravel-webpack-project-to-vite
I've tried creating a vite config in a module but it doesnt appear to be getting picked up or its being overwritten by vite. Looking at how Mix words the manifests we're merged so vite may need something similar setting up.

Hi all
I'm pretty comfortable with what I did in regards to this, but I have a problem that I don't see how to fix.
Each module comes with Resources/assets/js/app.js and Resources/assets/sass/app.scss files which are not updated in the manifest, because the keys in the manifest are that path to the file and it's the same every time, for example:
manifest.json
{
  "resources/js/app.js": {
    "file": "assets/app.d81e8d40.js",
    "src": "resources/js/app.js",
    "isEntry": true
  },
  "resources/css\\app.css": {
    "file": "assets/app.4ee680d5.css",
    "src": "resources/css\\app.css"
  },
  "Resources/assets/js/app.ts": {
    "file": "assets/app.a27edff8.js",
    "src": "Resources/assets/js/app.ts",
    "isEntry": true
  },
  "Resources/assets/sass/app.scss": {
    "file": "assets/app.4c41e8b9.css",
    "src": "Resources/assets/sass/app.scss",
    "isEntry": true
  }
}

only inserted the files of the first built module
Manually renaming these files and updating the vite.config file in each module, works perfectly
manifest.json with custom names
{
  "resources/js/app.js": {
    "file": "assets/app.d81e8d40.js",
    "src": "resources/js/app.js",
    "isEntry": true
  },
  "resources/css\\app.css": {
    "file": "assets/app.4ee680d5.css",
    "src": "resources/css\\app.css"
  },
  "Resources/assets/js/blog.ts": {
    "file": "assets/blog.ac3b5650.js",
    "src": "Resources/assets/js/blog.ts",
    "isEntry": true
  },
  "Resources/assets/sass/blog.scss": {
    "file": "assets/blog.abc5ca10.css",
    "src": "Resources/assets/sass/blog.scss",
    "isEntry": true
  },
  {
  "Resources/assets/js/test.ts": {
    "file": "assets/test.e5198d1b.js",
    "src": "Resources/assets/js/test.ts",
    "isEntry": true
  }
}

inserted the files of the modules Blog and Test
Is there a way to name these files dynamically (with the name of the module maybe? ) when creating the module?

Following :)

Following :)

so adding a modules assets paths to vite.config.js file allows them to be compiled using npm run build
export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css', 'resources/js/app.js',
                'Modules/Contacts/Resources/assets/js/app.js',
                'Modules/Contacts/Resources/assets/sass/app.scss',
            ],
            refresh: true,
        }),
    ],
});

This then builds this manifest:
{
  "resources/css/app.css": {
    "file": "assets/app.7c3c19f8.js",
    "src": "resources/css/app.css",
    "isEntry": true
  },
  "resources/js/app.js": {
    "file": "assets/app.334e7359.js",
    "src": "resources/js/app.js",
    "isEntry": true
  },
  "Modules/Contacts/Resources/assets/js/app.js": {
    "file": "assets/app.e5198d1b.js",
    "src": "Modules/Contacts/Resources/assets/js/app.js",
    "isEntry": true
  },
  "Modules/Contacts/Resources/assets/sass/app.scss": {
    "file": "assets/app.7c3c19f82.js",
    "src": "Modules/Contacts/Resources/assets/sass/app.scss",
    "isEntry": true
  }
}

Then to add to loading inside the  tags place @vite and pass in the files to load.
Normally you would use:
@vite(['resources/css/app.css', 'resources/js/app.js'])

But say you want to also load in assets from a contacts module:
@vite([
    'resources/css/app.css',
    'resources/js/app.js',
     'Modules/Contacts/Resources/assets/js/app.js',
     'Modules/Contacts/Resources/assets/sass/app.scss',
 ])

This then created script and link tags for each asset passed.

vite example in admin module ( last version laravel-vite-plugin):
you  add
import.meta.glob([ '../images/**', ]);
into
Resources/assets/js/app.js
and also make sure you have facade alias defined:

'Vite' => \Illuminate\Support\Facades\Vite::class,

in your config/app.php
vite.config.js:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

const domain = 'mydomain.test';
export default defineConfig({
    envDir: '../../',
    build: {
        manifest: true,
        emptyOutDir: true,
        assetsDir:'',
    },
    server: {
        https: {
            key: "../../.docker/nginx/certs/app.key",
            cert: "../../.docker/nginx/certs/app.crt",
        },
        host: domain,
        hmr: {
            host: domain,
        },
    },
    plugins: [
        laravel({
            hotFile: '../../storage/admin.hot',
            publicDirectory: '../../public',
            buildDirectory: "static/admin",
            input: [
                'Resources/assets/css/app.css',
                'Resources/assets/js/app.js',
            ],
            refresh: [
                'Resources/views/**/*.php',
            ],
        }),
    ],
});

in ViewServiceProvider:
    public function boot(Router $router)
    {
        ...
      public function boot()
      {
        View::composer('admin:*', function ($view){
            Vite::useHotFile(storage_path('vite.hot'))->useBuildDirectory('static/admin');
        });
      }

    }

in view:
    {{
        Vite::withEntryPoints(['Resources/assets/css/app.css', 'Resources/assets/js/app.js'])
    }}

{{ Vite::asset('Resources/assets/images/logo.png') }}

so adding a modules assets paths to vite.config.js file allows them to be compiled using npm run build
export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css', 'resources/js/app.js',
                'Modules/Contacts/Resources/assets/js/app.js',
                'Modules/Contacts/Resources/assets/sass/app.scss',
            ],
            refresh: true,
        }),
    ],
});

This then builds this manifest:
{
  "resources/css/app.css": {
    "file": "assets/app.7c3c19f8.js",
    "src": "resources/css/app.css",
    "isEntry": true
  },
  "resources/js/app.js": {
    "file": "assets/app.334e7359.js",
    "src": "resources/js/app.js",
    "isEntry": true
  },
  "Modules/Contacts/Resources/assets/js/app.js": {
    "file": "assets/app.e5198d1b.js",
    "src": "Modules/Contacts/Resources/assets/js/app.js",
    "isEntry": true
  },
  "Modules/Contacts/Resources/assets/sass/app.scss": {
    "file": "assets/app.7c3c19f82.js",
    "src": "Modules/Contacts/Resources/assets/sass/app.scss",
    "isEntry": true
  }
}

Then to add to loading inside the tags place @vite and pass in the files to load.
Normally you would use:
@vite(['resources/css/app.css', 'resources/js/app.js'])

But say you want to also load in assets from a contacts module:
@vite([
    'resources/css/app.css',
    'resources/js/app.js',
     'Modules/Contacts/Resources/assets/js/app.js',
     'Modules/Contacts/Resources/assets/sass/app.scss',
 ])

This then created script and link tags for each asset passed.

Hi, this is working well, but unfortunately when importing packages in node_modules or just a normal import from "Modules/Contacts/Resources/assets/js/app.js" is not working.
example: In Modules/Contacts/Resources/assets/js/app.js
import _ from 'lodash'
import './bootstrap';

got an error showing: "Uncaught TypeError: Failed to resolve module specifier "lodash". Relative references must start with either "/", "./", or "../"."
can you please help with this issue?

Hi, everyone!!
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/admin.css',
                'resources/js/admin.js',
                'modules/*/Resources/assets/css/app.css',
                'modules/*/Resources/assets/js/app.js'
            ],
            refresh: true,
        }),
    ],
});

This is my vite config, when i run npm run dev it work but i can't npm run build it.
Can you please help with this issue?

@slym175 What is your build script in package.json?

@thoeunsopheara just vite build

Any update on this guys?

I'm hoping https://github.com/nWidart/laravel-modules/pull/1455 will allow vite to be used from modules, I'll admit I know very little about vite.

vite config files in modules' folders doesn't seem to run when running npm run build or even npm run dev

@ap-coder @b1ackfa1c0n
Note that the module configuration for vite does not include the default asset files (tailwind, bootstrap, etc).
I previously made the bootstrap 5 getting started guide. #1467
The reason I didn't include an asset, is for the developer to choose which one to work with.

Also request this change. Following!

Re-opened the vite issues as I don't believe its fully solved yet, that's why I haven't updated the docs yet.
The current implementation appears to work for using inside a single module but really each module should be able to push their vite assets into a central vite so we can load a single vite assert and load all them from a module. Tagging you @wikigods since you've worked on this a lot so far.

any updates about this ?

any updates ?

this is still an issue, there is not currently a way to built asserts from the root Vite config in the project root that will use modules Vite files.
Ideally it should work similar to mix in that each module can use a Vite file and have this merged into the main Vite file. I don't want to manually configure each module manually to load its assets.

I've tried to combine vite configs this loads all the configs together but I think the laravel js helper overrides each time resulting in a single entry being generated inside the manifest file
import { defineConfig } from 'vite';
import merge from 'deepmerge';
import fs from 'fs/promises';
import path from 'path';

// Create an array to hold all module-specific configurations
const moduleConfigs = [];

// Define the path to your Laravel-modules directory
const modulesPath = path.join(__dirname, 'Modules');

async function loadModuleConfig(moduleName) {
  try {
    // Skip any files or directories that you want to ignore
    if (moduleName === '.DS_Store') {
      return true;
    }

    const moduleDir = path.join(modulesPath, moduleName);
    const viteConfigPath = path.join(moduleDir, 'vite.config.js');
    const stat = await fs.stat(viteConfigPath);

    if (stat.isFile()) {
      const moduleConfig = await import(viteConfigPath);
      moduleConfigs.push(moduleConfig.default);
    }
  } catch (error) {
    console.error(`Error loading module configuration for ${moduleName}:`, error);
  }
}

async function configureVite() {
  const moduleDirectories = await fs.readdir(modulesPath);

  for (const moduleName of moduleDirectories) {
    await loadModuleConfig(moduleName);
  }

  // Load and merge the core configuration from your project root
  const coreConfigPath = path.join(__dirname, 'vite.config.core.js');
  const coreConfig = await import(coreConfigPath);

  // Merge the core configuration with the module-specific configurations
  const mergedConfig = merge.all([...moduleConfigs]);

  return defineConfig(mergedConfig);
}

export default configureVite();

it may be better to have an array of paths that can be passed to the root config something like
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default function createViteConfig(inputArray) {
  return defineConfig({
    plugins: [
      laravel({
        input: inputArray,
        refresh: true,
      }),
    ],
  });
};

made some progress loading paths from modules. In a module vite.config.js containing:
export const paths = [
    'Modules/Pages/resources/css/app.css'
];

then in the main vite file
populate an array of paths and then merge with arrays from modules and build it all in one go
import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';
import collectModulePaths from './vite-loader.js';
import path from 'path';

const paths = [
    'resources/css/app.css'
];

const modulesPath = path.join(__dirname, 'Modules');
const allPaths = await collectModulePaths(paths, modulesPath);

export default defineConfig({
    plugins: [
        laravel({
            input:  allPaths,
            refresh: true,
        }),
    ],
});

this relies on having a new file called vite-loader.js it can be inside the vite.config.js but I'd prefer to keep the file as simple as I can.
this generates the following (used 2 modules)
{
  "Modules/Books/resources/assets/sass/app.scss": {
    "file": "assets/app-4ed993c7.js",
    "isEntry": true,
    "src": "Modules/Books/resources/assets/sass/app.scss"
  },
  "Modules/Pages/resources/css/app.css": {
    "file": "assets/app-5a5d3a39.css",
    "isEntry": true,
    "src": "Modules/Pages/resources/css/app.css"
  },
  "resources/css/app.css": {
    "file": "assets/app-3ebdfa1f.css",
    "isEntry": true,
    "src": "resources/css/app.css"
  }
}

this does rely on a modules package.json containing "type": "module"
doing some further cleanup, but this looks promising assuming all that we want from a module is to provide a list of paths to be built.
Another thing I haven't looked at yet is loading the manifest file in a layout.

for loading we can do something like this in the layout:
@vite(\Nwidart\Modules\Module::assets())

would require adding a new assets method
public static function assets(): array
{
    $paths = [];

    if (file_exists('build/manifest.json')) {
        $files = json_decode(file_get_contents('build/manifest.json'), true);

        foreach ($files as $file) {
            $paths[] = $file['src'];
        }
    }

    return $paths;
}

This would then load all the assets defined inside the build/manifest.json file

I've released an update that includes support for using VITE in a module and centrally. Updated the docs.
https://laravelmodules.com/docs/v10/compiling-assets

@dcblogdev I got this error when run npm run dev

@ikramsyakir what does your vite.config.js contain?

@dcblogdev
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import {viteStaticCopy} from "vite-plugin-static-copy";
import collectModuleAssetsPaths from "./vite-module-loader";

const paths = [
    'resources/css/app.css',
    'resources/js/app.js',
    'resources/js/views/auth/login.js',
    'resources/js/views/auth/passwords/email.js',
    'resources/js/views/auth/passwords/reset.js',
    'resources/js/views/auth/register.js',
    'resources/js/views/partials/header-end.js',
    'resources/js/views/partials/delete-confirmation.js',
    'resources/js/views/profiles/index.js',
    'resources/js/views/profiles/change-password.js',
    'resources/js/views/profiles/change-username.js',
    'resources/js/views/profiles/change-email.js',
    'resources/js/views/roles/create.js',
    'resources/js/views/roles/edit.js',
    'resources/js/views/users/create.js',
    'resources/js/views/users/edit.js',
    'resources/js/views/forms/builder.js',
    'resources/js/views/forms/render.js',
    'resources/js/views/groups/create.js',
    'resources/js/views/groups/edit.js',
    'resources/js/views/form-types/create.js',
    'resources/js/views/form-types/edit.js',
    'resources/js/views/partials/read-confirmation.js',
];

const allPaths = await collectModuleAssetsPaths(paths, 'Modules');

export default defineConfig({
    plugins: [
        laravel({
            input: allPaths,
            refresh: true,
        }),
        vue({
            template: {
                transformAssetUrls: {
                    base: null,
                    includeAbsolute: false,
                },
            },
        }),
        viteStaticCopy({
            targets: [
                {
                    src: 'node_modules/select2/dist/css/select2.min.css',
                    dest: 'libs/select2/css/'
                }
            ]
        })
    ],
    resolve: {
        alias: {
            '@': '/resources/js',
            'vue': 'vue/dist/vue.esm-bundler.js'
        },
    },
    // Hide console.log after run `npm run build`
    // Source: https://github.com/vitejs/vite/discussions/7920
    esbuild: {
        drop: ['console', 'debugger'],
    },
});

okay give this a try:
import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import {viteStaticCopy} from "vite-plugin-static-copy";
import collectModuleAssetsPaths from "./vite-module-loader";

async function getConfig() {
    const paths = [
        'resources/css/app.css',
        'resources/js/app.js',
        'resources/js/views/auth/login.js',
        'resources/js/views/auth/passwords/email.js',
        'resources/js/views/auth/passwords/reset.js',
        'resources/js/views/auth/register.js',
        'resources/js/views/partials/header-end.js',
        'resources/js/views/partials/delete-confirmation.js',
        'resources/js/views/profiles/index.js',
        'resources/js/views/profiles/change-password.js',
        'resources/js/views/profiles/change-username.js',
        'resources/js/views/profiles/change-email.js',
        'resources/js/views/roles/create.js',
        'resources/js/views/roles/edit.js',
        'resources/js/views/users/create.js',
        'resources/js/views/users/edit.js',
        'resources/js/views/forms/builder.js',
        'resources/js/views/forms/render.js',
        'resources/js/views/groups/create.js',
        'resources/js/views/groups/edit.js',
        'resources/js/views/form-types/create.js',
        'resources/js/views/form-types/edit.js',
        'resources/js/views/partials/read-confirmation.js',
    ];
    const allPaths = await collectModuleAssetsPaths(paths, 'Modules');

    return defineConfig({
        plugins: [
            laravel({
                input: allPaths,
                refresh: true,
            }),
            vue({
                template: {
                    transformAssetUrls: {
                        base: null,
                        includeAbsolute: false,
                    },
                },
            }),
            viteStaticCopy({
                targets: [
                    {
                        src: 'node_modules/select2/dist/css/select2.min.css',
                        dest: 'libs/select2/css/'
                    }
                ]
            })
        ],
        resolve: {
            alias: {
                '@': '/resources/js',
                'vue': 'vue/dist/vue.esm-bundler.js'
            },
        },
        // Hide console.log after run `npm run build`
        // Source: https://github.com/vitejs/vite/discussions/7920
        esbuild: {
            drop: ['console', 'debugger'],
        },
    });
}

export default getConfig();

okay give this a try:
import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import {viteStaticCopy} from "vite-plugin-static-copy";
import collectModuleAssetsPaths from "./vite-module-loader";

async function getConfig() {
    const paths = [
        'resources/css/app.css',
        'resources/js/app.js',
        'resources/js/views/auth/login.js',
        'resources/js/views/auth/passwords/email.js',
        'resources/js/views/auth/passwords/reset.js',
        'resources/js/views/auth/register.js',
        'resources/js/views/partials/header-end.js',
        'resources/js/views/partials/delete-confirmation.js',
        'resources/js/views/profiles/index.js',
        'resources/js/views/profiles/change-password.js',
        'resources/js/views/profiles/change-username.js',
        'resources/js/views/profiles/change-email.js',
        'resources/js/views/roles/create.js',
        'resources/js/views/roles/edit.js',
        'resources/js/views/users/create.js',
        'resources/js/views/users/edit.js',
        'resources/js/views/forms/builder.js',
        'resources/js/views/forms/render.js',
        'resources/js/views/groups/create.js',
        'resources/js/views/groups/edit.js',
        'resources/js/views/form-types/create.js',
        'resources/js/views/form-types/edit.js',
        'resources/js/views/partials/read-confirmation.js',
    ];
    const allPaths = await collectModuleAssetsPaths(paths, 'Modules');

    return defineConfig({
        plugins: [
            laravel({
                input: allPaths,
                refresh: true,
            }),
            vue({
                template: {
                    transformAssetUrls: {
                        base: null,
                        includeAbsolute: false,
                    },
                },
            }),
            viteStaticCopy({
                targets: [
                    {
                        src: 'node_modules/select2/dist/css/select2.min.css',
                        dest: 'libs/select2/css/'
                    }
                ]
            })
        ],
        resolve: {
            alias: {
                '@': '/resources/js',
                'vue': 'vue/dist/vue.esm-bundler.js'
            },
        },
        // Hide console.log after run `npm run build`
        // Source: https://github.com/vitejs/vite/discussions/7920
        esbuild: {
            drop: ['console', 'debugger'],
        },
    });
}

export default getConfig();

ok thanks. why not use this example in the docs?

I will an update, I hadn't realized there was a problem. I'm not good with Javascript at all.
I take it this worked for you?


[Task]: Handle auto-update during package publish

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
No response

For some unknown reasons, this issue is not showing up in Modules Pod's board. Hence closing this issue and will recreate another.


Swift 2.0

It seems to not work with Swift 2.0, I have corrected the errors however it crashes everytime I use Async.
Issue is here :
private func chain(block chainingBlock: dispatch_block_t, runInQueue queue: dispatch_queue_t) -> Async {
// See Async.async() for comments
let _chainingBlock = dispatch_block_create(DISPATCH_BLOCK_INHERIT_QOS_CLASS, chainingBlock)
dispatch_block_notify(self.block, queue, _chainingBlock)
return Async(_chainingBlock)
}
it crashes on the dispatch_block_notify

https://github.com/duemunk/Async/issues/46


please remove unsafe symbol links

linuxbrew/Library/ENV/pkgconfig/fuse/
fuse.pc:    broken symbolic link to /usr/local/lib/pkgconfig/fuse.pc
osxfuse.pc: broken symbolic link to /usr/local/lib/pkgconfig/osxfuse.pc

Why?

I'm trying to make the linuxbrew Debian package.
lintian, the Debian package checker found this problem according to Debian policy:
E: linuxbrew source: source-contains-unsafe-symlink Library/ENV/pkgconfig/fuse/osxfuse.pc
N:
N:    The source contains an unsafe symlink. If followed, the link will escape
N:    the source root. Note that all absolute symlinks are unconditionally
N:    considered "unsafe" in this case (unlike in binary packages).
N:
N:    If it is a part of the package's testsuite, Lintian may have failed to
N:    recognise it as a test. In that case, please override the tag.
N:
N:    Severity: serious, Certainty: possible
N:
N:    Check: cruft, Type: source

and https://lists.debian.org/debian-mentors/2015/07/msg00335.html

Whoah. A Linuxbrew package for Debian. I had considered the possibility. How do you plan to handle updating the formulas? Simply sudo brew update ? What HOMEBREW_PREFIX do you plan to use? /usr/lib/linuxbrew?
Linuxbrew intends to be compatible with Mac Homebrew (you can run Linuxbrew on a Linux or Mac box), so I don't plan to delete these symlinks. Although I also don't know why they exist. You could ask upstream at Homebrew/homebrew if you like. You could delete these files before packaging the source tarball for Debian.

well, the current packaging work is available here
http://anonscm.debian.org/cgit/users/cdluminate-guest/linuxbrew.git

The HOMEBREW_PREFIX planed to use
No, not the /usr/lib/linuxbrew.  Without any change it's still ${HOME}/.linuxbrew
Being able to Install softwares without root premission is an outstanding feature of linuxbrew and I'm not about to break it via changing HOMEBREW_PREFIX to /usr/lib/linuxbrew. Additinally, linuxbrew should
be set up for per user, rather than the system wide and common /usr/lib/linuxbrew.
Updating formulas
Debian's update period is too long compared with linuxbrew/homebrew update period.
And I found it uncomfortable to manage a linuxbrew.git subrepo in the Debian packaging repo,
especially when need to patch linuxbrew with quilt.  Maybe shipping a whole repo is bad idea.
Since I found that brew update will setup a new git repo under HOMEBREW_PREFIX when there is no .git, I'm thinking, can I just scrach all the core components of linuxbrew into the Debian package, without formula.  I made another wrapper script of linuxbrew [1]
The current wrapper does so:

If HOMEBREW_PREFIX/bin/brewexists, simply invoke it
if !exists:

init a linuxbrew without git repo under HOMEBREW_PREFIX, with a tarball.  This provides only a basic set of, no-updated formulas. But it will be tricky if BUG emerges from formulas.
init a linuxbrew under HOMEBREW_PREFIX, with linuxbrew's install script

So the convention of linuxbrew won't be changed.
[1] http://anonscm.debian.org/cgit/users/cdluminate-guest/linuxbrew.git/tree/debian/bin/linuxbrew

Anyway users can just setup a linuxbrew at home without apt/dpkg by themselves,
but it could be better if a wrapper is provided by debain, for better integration of
linuxbrew into distribution.
This is my main idea.

Interesting. So your /usr/bin/brew script will be a script that installs Linuxbrew in ~/.linxuxbrew if it doesn't already exist, and after that initial installation, runs ~/.linxuxbrew/bin/brew. Yes? Seems simple enough to me.

Yes, so it is.
Another reason not restoring many files at  /usr/lib/linuxbrew  is, they'll become useless once the
user invoked brew update, afterall a whole new copy of linuxbrew would be cloned into .linuxbrew/ int that way.
My current concern is, what component should I ship in the debian package? there are some ideas:

[most simple] only wrapper and the install script would be shipped.
This will not break any function of linuxbrew, the only problem is user need to wait for some time of git repo to be cloned.
[not for sure] wrapper + install + ( linuxbrew - formulas).
[issue] wrapper + install + ( linuxbrew (has formulas) - .git repo )
[bad] wrapper + install + whole linuxbrew git repo, (so users can init a .linuxbrew directory with .git immediately)

Since I have trouble cloning the whole linuxbrew git repo ( costs so loooong time ),
may I suggest that add --depth option to install script [1] ?
Adding --depth 1 to git clone xxx would significantly decrease the time cost when installing.
I don't know if other users need the whole git repo including 50K+ commits, but at least I don't need
the 50K+ commits, and just squashing 50K+ commits into 1 via --depth 1 is fine to me.
[1] https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install

[most simple] only wrapper and the install script would be shipped.
This will not break any function of linuxbrew, the only problem is user need to wait for some time of git repo to be cloned.

:+1:

Since I have trouble cloning the whole linuxbrew git repo ( costs so loooong time ),
may I suggest that add --depth option to install script [1] ?

Please ask upstream at Homebrew/homebrew.

@sjackman
Could you please add copyright declaration in the head of the installscript?
https://github.com/Homebrew/linuxbrew/blob/go/install
Since the designed debian package ships only that install script from upstream,
it is better for it to have a integrated copyright declaration.
See http://www.gnu.org/licenses/gpl-faq.html#NoticeInSourceFile
I'm not the author hence I won't add that by myself even if you confirmed it is bsd-2-clause.
:-)

The entire Homebrew project is BSD 2 Clause (NetBSD) license. See https://github.com/Homebrew/linuxbrew#license


Doc: remove not existing cli options

As I can see, webpack-dev-server doesn't have these options https://github.com/webpack/webpack-dev-server/blob/master/lib/options.json.
But it would nice to have them by the way.

Doesn't it forward that to webpack?

Doesn't it forward that to webpack?

Sorry, not sure I understand you.

You are stating CLI does not forward to webpack these options: --entry, --output-path
Right?

Does it have to?

I was under impression it does forward them to webpack and they would override the defaults, my question is: is that what you find out? cli ignores these options now?

cli ignores these options now

Sorry, I checked it again and looks like doesn't ignore. Not sure how it actually works, but if I add an invalid argument it'll be an error:
npm run webpack-dev-server -- --entry=./src/index2.js

><EMAIL_ADDRESS>webpack-dev-server /Users/user/package-name
> webpack-dev-server "--entry=./src/index2.js"

ℹ ｢wds｣: Project is running at http://localhost:9000/webpack-dev-server/
ℹ ｢wds｣: webpack output is served from /
✖ ｢wdm｣: Hash: 1c850c2ddb86940ab16e
Version: webpack 4.29.6
Time: 54ms
Built at: 04/08/2019 12:00:07 PM

ERROR in Entry module not found: Error: Can't resolve './src/index2.js' in '/Users/user/package-name'

So I'm closing this request.


Add support for jspm field

Fixes that issue https://github.com/stealjs/system-npm/issues/34

This seem not to work. Package.json has "jspm", but pkg object does not have it.

Probably should add a test then.


cloud-sql-proxy: 1.13 -> 1.25.0

Motivation for this change
The version available in nixpkgs is 2y old, need a bump. Change is a bit larger than a single line because project evolved to use go.mod, updated for that.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages 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/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

can you squash the commits and change the commit message to your current title

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

1 package built:

cloud-sql-proxy


Nginx reverse proxy + docker. Request methods do not match

Hey, im running into issue here. I have created a micro-service, built it using docker and provisioned it with docker compose (together with Nginx reverse proxy on the same overlay network). For some unknown reason, when running behind a proxy, the req.method in the javascript does not match the actual request method. Here is a screenshot of what I'm talking about:

The first terminal is displaying micro-dev output, which i attached to the container (running on port 80)
The second terminal displays the nginx logs
In the background you can see the Postman client with "PUT" request method selected. But for some reason micro sees "GET" there :(
Here is my Nginx configuration file:
events {

}

http {
    server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;

        location /auth/ {
            proxy_pass http://auth;
        }
    }
}

However, when i have exposed the auth service to my host machine, I could do any of request methods, that my app supports. I will later try to run some other proxy software and see if it works.
Thank you.

Moved To Kubernetes & Traefik. Problem solved. Thank you again @zeit for creating the library
Best wishes.

Recently I am looking into Micro, I also went into this problem. Thanks! I will try it.


[PSM Interop] Bump URL Map canonical server from 1.40.0 to 1.56.0

Similar to https://github.com/grpc/grpc/pull/33542.
Note that there's a ticket to automatically use the one specified in the --server_image_canonical flag, but for now we just hardcode.
ref b/261911148, b/282106799.

Redeployed today (because the run schedule skips Sundays):
For posterity:

GCP Logs Explorer link to psm-grpc-server:
https://console.cloud.google.com/logs/query;query=resource.type%3D"k8s_container"
resource.labels.project_id%3D"grpc-testing"
resource.labels.container_name%3D"psm-grpc-server"
resource.labels.namespace_name%3D"interop-psm-url-map";timeRange=2023-07-02T21:53:41.583178Z%2F2023-07-02T22:23:41.583178Z?project=grpc-testing
GCP Logs Explorer link to psm-grpc-server-alternative:
https://console.cloud.google.com/logs/query;query=resource.type%3D"k8s_container"
resource.labels.project_id%3D"grpc-testing"
resource.labels.container_name%3D"psm-grpc-server-alternative"
resource.labels.namespace_name%3D"interop-psm-url-map";timeRange=2023-07-02T21:53:52.241415Z%2F2023-07-02T22:23:52.241415Z?project=grpc-testing
GCP Logs Explorer link to psm-grpc-server-affinity:
https://console.cloud.google.com/logs/query;query=resource.type%3D"k8s_container"
resource.labels.project_id%3D"grpc-testing"
resource.labels.container_name%3D"psm-grpc-server-affinity"
resource.labels.namespace_name%3D"interop-psm-url-map";timeRange=2023-07-02T21:54:02.595986Z%2F2023-07-02T22:24:02.595986Z?project=grpc-testing

Note: The image is reference using tag canonical-v1.56, as set in #33588, but at the moment it corresponds to 558b5b0bfac8e21755c223063274a779b3898afe, as set in this PR.

Verification run:

[ ] grpc/java/v1.56.x/branch/xds_url_map


Create GitHub Actions for automatic release and test

https://github.com/actions/starter-workflows/blob/c6c0c7b5efb8a6d4121a9e15b3007b6cc794681e/ci/dotnet-desktop.yml

Consider if this should only be on the master branch


Building docker image with "dockerfile-maven-plugin" does not work with private (company) registry

I am using the Maven plugin dockerfile-maven-plugin to build a Docker image for a maven module.
To build the image I just run mvn package. I have to login to the company registry once with docker login before running the Maven build for the first time. After that I don't have to do anything anymore. mvn package is enough to build my image.
But that doesn't work with mvnd package:
[INFO] --- dockerfile:1.4.13:build (package) @ <module> ---
[INFO] Google Container Registry support is disabled
[INFO] dockerfile: <path>/target/Dockerfile
[INFO] contextDirectory: <path>/<module>
[INFO] Building Docker context <path>/<module>
[INFO] Path(dockerfile): <path>/<module>/target/Dockerfile
[INFO] Path(contextDirectory): <path>/<module>
[INFO]
[INFO] Image will be built as <company-registry-url>/<registry-path>/<module-name>:<version>
[INFO]
[INFO] Step 1/20 : FROM <company-registry-url>/eclipse-temurin:17.0.8_7-jre-alpine
[INFO]
[ERROR] Head "<company-registry-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required
[WARNING] An attempt failed, will retry 1 more timesorg.apache.maven.plugin.MojoExecutionException: Could not build image

[omitted stack trace]

Failed to execute goal com.spotify:dockerfile-maven-plugin:1.4.13:build (package) on project <module> Could not build image: Head "<company-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required -> [Help 1]

It looks a bit like, that mvnd doesn't use the local docker daemon to build the image
The problem sounds similar to https://github.com/apache/maven-mvnd/issues/157

The problem sounds similar to https://github.com/apache/maven-mvnd/issues/157

Why do you think so? I do not see any system properties mentioned in your report.

BTW, does the problem persist when you start with a fresh daemon after authenticating with docker? Something like
docker login
mvnd --stop
mvnd package

If so, it could mean that the docker plugin is keeping some global state, which would have to be fixed in the plugin.

BTW, does the problem persist when you start with a fresh daemon after authenticating with docker? Something like
docker login
mvnd --stop
mvnd package

If that works, it could mean that the docker plugin is keeping some global state, which would have to be fixed in the plugin.

No, still fails with missing authentication. I only have to login to our Docker registry once. After a successful login, mvn package just works (also docker pull/push).
Only a manual docker logout or an update of the authentication parameters would let the build fail.

Could you please run mvnd package -e and paste the stack trace?

$ mvnd package

[omitted previous steps like compile]

[INFO] --- dockerfile:1.4.13:build (package) @ <module> ---
[INFO] Google Container Registry support is disabled
[INFO] dockerfile: <path>/target/Dockerfile
[INFO] contextDirectory: <path>/<module>
[INFO] Building Docker context <path>/<module>
[INFO] Path(dockerfile): <path>/<module>/target/Dockerfile
[INFO] Path(contextDirectory): <path>/<module>
[INFO]
[INFO] Image will be built as <company-registry-url>/<module>:<version>
[INFO]
[INFO] Step 1/20 : FROM <company-registry-url>/eclipse-temurin:17.0.8_7-jre-alpine
[INFO]
[ERROR] Head "<company-registry-url/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required
[WARNING] An attempt failed, will retry 1 more timesorg.apache.maven.plugin.MojoExecutionException: Could not build image
    at com.spotify.plugin.dockerfile.BuildMojo.buildImage (BuildMojo.java:247)
    at com.spotify.plugin.dockerfile.BuildMojo.execute (BuildMojo.java:135)
    at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute (AbstractDockerMojo.java:265)
    at com.spotify.plugin.dockerfile.AbstractDockerMojo.execute (AbstractDockerMojo.java:254)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:143)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:318)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:214)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:74)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:111)
    at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:209)
    at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:840)
Caused by: com.spotify.docker.client.exceptions.DockerException: Head "<company-registry-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required
    at com.spotify.plugin.dockerfile.LoggingProgressHandler.handleError (LoggingProgressHandler.java:105)
    at com.spotify.plugin.dockerfile.LoggingProgressHandler.progress (LoggingProgressHandler.java:63)
    at com.spotify.docker.client.DefaultDockerClient$BuildProgressHandler.progress (DefaultDockerClient.java:312)
    at com.spotify.docker.client.ProgressStream.tail (ProgressStream.java:77)
    at com.spotify.docker.client.DefaultDockerClient$ResponseTailReader.call (DefaultDockerClient.java:2754)
    at com.spotify.docker.client.DefaultDockerClient$ResponseTailReader.call (DefaultDockerClient.java:2738)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:840)
[INFO] Google Container Registry support is disabled
[INFO] dockerfile: <path>/target/Dockerfile
[INFO] contextDirectory: <path>/<module>
[INFO] Building Docker context <path>/<module>
[INFO] Path(dockerfile): <path>/<module>/target/Dockerfile
[INFO] Path(contextDirectory): <path>/<module>
[INFO]
[INFO] Image will be built as <company-registry-url>/<module>:<version>
[INFO]
[INFO] Step 1/20 : FROM <company-registry-url>/eclipse-temurin:17.0.8_7-jre-alpine
[INFO]
[ERROR] Head "<company-registry-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required
[INFO] --------------------------------------------------------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] --------------------------------------------------------------------------------------------------------------------------
[INFO] Total time:  33.002 s (Wall Clock)
[INFO] Finished at: 2024-02-14T07:09:46Z
[INFO] --------------------------------------------------------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:dockerfile-maven-plugin:1.4.13:build (package) on project <module>: Could not build image: Head "<company-registry-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required -> [Help 1]org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.spotify:dockerfile-maven-plugin:1.4.13:build (package) on project <module>: Could not build image
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:336)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:318)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:214)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:74)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:111)
    at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:209)
    at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:840)
Caused by: org.apache.maven.plugin.MojoExecutionException: Could not build image
    at com.spotify.plugin.dockerfile.BuildMojo.buildImage (BuildMojo.java:247)
    at com.spotify.plugin.dockerfile.BuildMojo.execute (BuildMojo.java:135)
    at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute (AbstractDockerMojo.java:265)
    at com.spotify.plugin.dockerfile.AbstractDockerMojo.execute (AbstractDockerMojo.java:254)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:143)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:318)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:214)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:74)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:111)
    at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:209)
    at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:840)
Caused by: com.spotify.docker.client.exceptions.DockerException: Head "<company-registry-url>/eclipse-temurin/manifests/17.0.8_7-jre-alpine": unknown: Authentication is required
    at com.spotify.plugin.dockerfile.LoggingProgressHandler.handleError (LoggingProgressHandler.java:105)
    at com.spotify.plugin.dockerfile.LoggingProgressHandler.progress (LoggingProgressHandler.java:63)
    at com.spotify.docker.client.DefaultDockerClient$BuildProgressHandler.progress (DefaultDockerClient.java:312)
    at com.spotify.docker.client.ProgressStream.tail (ProgressStream.java:77)
    at com.spotify.docker.client.DefaultDockerClient$ResponseTailReader.call (DefaultDockerClient.java:2754)
    at com.spotify.docker.client.DefaultDockerClient$ResponseTailReader.call (DefaultDockerClient.java:2738)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:840)

I guess one would have to debug the execution of the plugin to see why it does not pick the credentials. Esp. the AuthSuppliers enabled in https://github.com/spotify/dockerfile-maven/blob/986f960cb82085d2f666acd6c2682672d47f5bb0/plugin/src/main/java/com/spotify/plugin/dockerfile/AbstractDockerMojo.java#L450 would be interesting.
You can pass -Dmvnd.debug to mvnd to start the daemon in debug mode. See mvnd --help for more info.

The problem is the property -Ddockerfile.useMavenSettingsForAuth of the plugin dockerfile-maven-plugin.
I set it to true in my .mavenrc file.
Setting it as a CLI option does work:
mvnd package -Ddockerfile.useMavenSettingsForAuth=true

So does adding it to the [project-home]/.mvn/jvm.config like stated in this comment: https://github.com/apache/maven-mvnd/issues/567#issuecomment-1006673652
But it does not work, when I add it to the user property file ~/.m2/mvnd.properties like this:
mvnd.jvmArgs=-Ddockerfile.useMavenSettingsForAuth\=true
Stated in this comment: https://github.com/apache/maven-mvnd/issues/567#issuecomment-1006712450
How can I achieve that? Is that even possible?
(we set other options like the path to a keystore with -Djavax.net.ssl.keyStore). So I would like to set these options in the property file of the user

Thanks for the investigation @reissseb.
Apparently mvnd does not honor .mavenrc.
In case of stock Maven it is sourced inside the mvn shell script:
  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi

It is honored by mvnd.sh though - using mvnd.sh instead of mvnd would be the most straightforward workaround for your problem.
I do not think mvnd.properties is the right place for this.
Another possible way of solving this would be to put those local properties into a profile in settings.xml that would be active by default.
@gnodet do you think we should support .mavenrc?

That doesn't work either. The property is set as a MAVEN_OPTS in the .mavenrc:
MAVEN_OPTS="-Ddockerfile.useMavenSettingsForAuth=true"

And MAVEN_OPTS is not supported by mvnd AFAIK.
I guess I am back to using jvm.config or the CLI option.
Thanks for your help @ppalaga


[FLINK-4945] KafkaConsumer logs wrong warning about confirmation for …

This PR fixes an unjustified warning about unknown checkpoints in FlinkKafkaConsumerBase.

R @rmetzger

So does the misleading warning only pop up on the first checkpoint notification after startup?
If that's the case, then this looks good to me.

At least at on the first checkpoint was the only time I ever observed it.

Thank you for fixing this.
I'll merge the change.


⚖ Register Validator: NodeStake

Network Choice
nemeton
Who are you?
NodeStake is the professional validator, node service provider and IBC relayer.
gentx
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"NodeStake","identity":"94EFE192B2C52424","website":"https://nodestake.top","security_contact":"info@nodestake.top","details":"NodeStake is the professional Validator and IBC Relayer.⚛7*24h | https://twitter.com/Nodestake_top"},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.200000000000000000"},"min_self_delegation":"1","delegator_address":"okp41etx55kw7tkmnjqz0k0mups4ewxlr324tcfs8za","validator_address":"okp4valoper1etx55kw7tkmnjqz0k0mups4ewxlr324tdwqwuu","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"a+Mdv8h4kXwMQ4ZUgP3eBZruA+drSqqAhi2gwba+jqs="},"value":{"denom":"uknow","amount":"1000000"}}],"memo":"a49302f8999e5a953ebae431c4dde93479e17155@<IP_ADDRESS>:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AxLZ/h5VnOodWIfYfP2+Iu8+yASiqFQdktMiIFeUNnXt"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["qcKDqzDtTBWpR5GKRKjL0hKuUCqebyDGp+GwPs9qxAcawTtywz6RbawS2orrdIAbFLdQU3iSE/n4QKdn0zs2FA=="]}

Welcome aboard @nodestake! 😌


feat(clustering) resilient initial config on control plane database failures (#6938)

Summary
@hutchic reported in #6935 that:

When the control plane looses it's database connection it's currently unable to send
updates to new data planes.

This PR is about to make control plane more resilient on database failures on
such case.
Issues Resolved
Fix #6935

Perhaps this is the last merge from next to master.


Disable building FirebaseAnalytics for Catalyst with SwiftPM

@khuffie I'm not sure what's happening. It looks like somehow your app is trying to link GoogleAppMeasurement.framework dynamically instead of statically. Are you able to reproduce with https://github.com/firebase/quickstart-ios/tree/master/analytics?
Firebase Performance is not yet available via SPM.
@LualdiD With a quick investigation, I don't see an immediate way to disable Catalyst building for Firebase Analytics. There might be a way to temporarily adjust a Build Setting like the CocoaPods workaround, but that wouldn't be very stable. I'll follow up with the Analytics team to see if we can eliminate the sign up requirement so that we could include the Analytics Catalyst Early Access with SPM.
All, I'll reiterate the request to open a new issue for specific issues/questions like these ones. Thanks!
Originally posted by @paulb777 in https://github.com/firebase/firebase-ios-sdk/issues/3136#issuecomment-678784372

Is there a resolution for this so we can selectively build for Catalyst until google finally makes analytics work properly on macOS? I didn't want to make a separate issue but unfortunately the original one was locked.

@EliteTechnicalCare Thanks for the report. I retitled the issue. Does the new title still reflect the issue accurately? And you want to link FirebaseAnalytics for the iOS build and not for the Catalyst build?

Started discussion at https://forums.swift.org/t/disabling-binary-dependencies-for-catalyst/42444

I would also like to know. I've tried settings that Platforms to iOS only in Frameworks, Libraries, and Embedded Content settings, but that doesn't work.

Yea for now I literally had to strip analytics entirely from my app because the build process was far too tedious

I have same issue, I used FirebaseAnalytics with SwiftPM then I can't use catalyst and I can't disable FirebaseAnalytics for it

Yea for now I literally had to strip analytics entirely from my app because the build process was far too tedious.

@EliteTechnicalCare how did you strip just Analytics? Are you using CocoaPods? or SwiftPM?

Yea for now I literally had to strip analytics entirely from my app because the build process was far too tedious.

@EliteTechnicalCare how did you strip just Analytics? Are you using CocoaPods? or SwiftPM?

Yea for now I literally had to strip analytics entirely from my app because the build process was far too tedious.

@EliteTechnicalCare how did you strip just Analytics? Are you using CocoaPods? or SwiftPM?

SwiftPM, I literally just removed Analytics entirely from my project. The data I was getting wasn't worth the massive headache, and our app doesn't rely on ads or anything like that so it was an easy decision to just discontinue analytics for the time being.

Yea for now I literally had to strip analytics entirely from my app because the build process was far too tedious.

@EliteTechnicalCare how did you strip just Analytics? Are you using CocoaPods? or SwiftPM?

SwiftPM, I literally just removed Analytics entirely from my project. The data I was getting wasn't worth the massive headache, and our app doesn't rely on ads or anything like that so it was an easy decision to just discontinue analytics for the time being.

@EliteTechnicalCare that's exactly what I'm trying to do. I'm not importing Analytics from anywhere in the project, and when adding Firebase to SwiftPM (managed by Xcode), I didn't select Analytics. It looks like it gets installed by itself when you add other Firebase components.
Could you give me a rough idea of how you were able to remove it?
Thanks!!

@EliteTechnicalCare that's exactly what I'm trying to do. I'm not importing Analytics from anywhere in the project, and when adding Firebase to SwiftPM (managed by Xcode), I didn't select Analytics. It looks like it gets installed by itself when you add other Firebase components.
Could you give me a rough idea of how you were able to remove it?
Thanks!!

Did anyone manage to discover a workaround for this? It's nice having all the Firebase Analytics but it's a dealbreaker if it doesn't work with catalyst.

+1 on this. Any discussion doesn't seem to offer any solutions. Again, I am not asking for Catalyst support (for this matter, at least). I just want to be able to use Analytics on iOS and not Catalyst. @paulb777 Please advise on how to accomplish this.

I'm also wondering, why we can't different in the usage of the SPM, to control if it should be used for iOS, Catalyst or both.

Monthly bump for this issue. We've had to ship without Analytics due to this...

Is it feasible to make a separate target for Catalyst that doesn't depend on Analytics? See the example at https://github.com/firebase/quickstart-ios/tree/master/abtesting

Not feasible, unfortunately. Even if it was, seems like more of a workaround than a solution for Catalyst which has been widely adopted for going on a year now. The solution is Catalyst support. The tolerable workaround for many is going to be being able to at least use Analytics for iOS.

My app fails to build via xcodebuild for this same issue, and I am not building on an M1, nor am I building towards Mac or Mac Catalyst. It fails my build about 20% of the time.


Yac: store states from future

Description of the Change
Reduce transaction latency by storing votes from future and applying them when info about the corresponding round is available.
Benefits
Improved performance
Possible Drawbacks
None?

@kuvaldini @iceseer please check. You can use "hide whitespace changes".

Ping @kuvaldini @iceseer

Ping @iceseer @kuvaldini

@lebdron Please rebase


maybe dist should be ignore and only build with the CI

The dist/build folder needs to be published in NPM, and not published in GIT

Fixed on master.


upload the binary of unpack-cli

A job for CDCI as soon as a good handful of tests exist, we can auto upload to a GitHub tag.

Nexe abandoned in didi for the moment. closing.


schema for DO doesn't account for F5 Master Key

there are scenarios where the F5 master key (set using f5mku) is lost during a software upgrade or needs to be set as a result of RMA, etc. Additionally, BIG-IP DNS uses master key as it signs records and there may be reasons to set f5 master key consistently across numerous BIG-IPs deployed globally. For these reasons, DO should allow setting of F5 Master Key as part of on-boarding process.

Closing as duplicate of #69.


Range must be an array and is expected as such in the template

We should not allow range to be a string because the templates assert it is an array.
This little patch ensure the proper value, and also update the default range to be an empty array.

@brunoleon thanks for the contribution, but we merged https://github.com/puppetlabs/puppetlabs-dhcp/pull/47 which adds support for range to be a string in the template so this is no longer needed.


TLS.CipherSuites not working with KV (Consul)

Do you want to request a feature or report a bug?
Report a bug.

What did you do?
Added traefik/entrypoints/https/tls/cipherSuites key in Consul 1.0 to set cipherSuites. ( I have the consul prefix to "traefik" and the entrypoint name is "https". )
Similar to the .toml file configuration, I tried individually:
["TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"]
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", and
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

What did you expect to see?
I expected Traefik to use only the specified ciphersuite on the https frontend.
What did you see instead?
Traefik logs show:

* error decoding 'EntryPoints[https].TLS.CipherSuites': illegal base64 data at input byte 0, retrying in 1.896190287s"

Output of traefik version: (What version of Traefik are you using?)
Version:      v1.4.2
Codename:     roquefort
Go version:   go1.9.2
Built:        2017-11-02_01:47:46PM
OS/Arch:      linux/amd64

Note that setting "minVersion" key to "VersionTLS12" works successfully. The problem seems to only be related to "cipherSuites" key.

As far as I can see (by checking behaviour of storeconfig), staert seems to put each items of an array into separate keys that are suffixed with its index.
For example, this configuration:
[entryPoints]
  [entryPoints.https]
    [entryPoints.https.tls]
    cipherSuites = ["TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"]

will be saved as following on Consul:
traefik/entrypoints/https/tls/ciphersuites/0:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
traefik/entrypoints/https/tls/ciphersuites/1:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

So, simply putting value TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 into traefik/entrypoints/https/tls/ciphersuites/0 key should work correctly, I think.

I ran into this issue as well, but I could fix it by using the correct order of ciphers.
Below is a working configuration for TLSv1.1 which prefers ChaCha/ Poly and removes the insecure 3DES ciphers.
[entryPoints.https.tls]
minVersion = "VersionTLS11"
cipherSuites = [
   "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
  "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
  "TLS_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_RSA_WITH_AES_128_CBC_SHA",
  "TLS_RSA_WITH_AES_256_CBC_SHA",
]

@menew 's suggestion to add consul keys like traefik/entrypoints/https/tls/ciphersuites/0 , traefik/entrypoints/https/tls/ciphersuites/1 etc. worked successfully. However, I then ran into an error that http/2 didn't like some of the ciphers (because they were part of TLS 1.2, but were blacklisted.)
HTTP/2 also mandates that TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 be enabled: I received the error, "http2: TLSConfig.CipherSuites is
missing HTTP/2-required TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" in the traefik logs without it.
Therefore, I obtained a clean nmap ssl-enum-cipher scan rated A by setting in consul:
traefik/entrypoints/https/tls/ciphersuites/0 to TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
traefik/entrypoints/https/tls/ciphersuites/1 to TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
traefik/entrypoints/https/tls/ciphersuites/2 to TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
traefik/entrypoints/https/tls/ciphersuites/3 to TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

Resulting nmap -sV --script ssl-enum-ciphers -p 443 [redacted host]:
443/tcp open  ssl/http Golang net/http server (Go-IPFS json-rpc or InfluxDB API)
|_http-server-header: nginx
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (rsa 4096) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (rsa 4096) - A
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: A

Hello @vincentmele! Just checking in on this ticket. Is this still an issue? or can we close this one?
It appears you were able to get the ciphersuites working the way you wanted.
Thanks!

Not an issue anymore once I figured out the configuration, documented in the Feb 28th comment.


[Refactoring] Convert list pages to client components (Private Product Dashboard)

We want to transform list pages into client components to enhance page loading and eliminate inconsistencies with query parameters.

Private Product Dashboard: https://dev-pltsvc.apps.silver.devops.gov.bc.ca/private-cloud/products/all

@junminahn
If User goes to page 5 (with 10 products peg page) and then applies filter (like KLAB products) he sees empty list, because Dev now has 39 KLAB products. The writing in the bottom says "Showing 41 to 39 of 39 results".

Both issues above are fixed.


Typo in Documentation for Floating Action Button

Before submitting...

[X] I have searched for duplicate or closed issues.
[X] I have read the CONTRIBUTING document and my issue is following the guidelines.
[X] I have read the template completely before filling it in.

Context

https://materializecss.com/floating-action-button.html
Current Behavior
For the direction option:
Can be 'top', 'right', 'buttom', 'left'

Expected behavior
This should be changed to
Can be 'top', 'right', 'bottom', 'left'

Possible Solutions or Causes
No response
Your Environment

Version used: 4/14/2023
Browser Name and version: Mozilla Firefox 112.0
Operating System and version (desktop or mobile): Windows 11

i closed this upon realizing I was looking at an older version of the site 😅
...but i then just realized that it is still linked on the new one (presumably reference for the older version of the library) and wouldn't hurt to still fix. Not sure where the source is for that, though.

Hello @mud-ali, thank you for reporting this issue.
The spelling was corrected in recent version. I'm unsure which older version might have the issue
Would you please let us know the version?
Note that the current documentation for floating action bar is:
https://github.com/materializecss/materialize/blob/main/pug/page-contents/floating-action-button-content.html

Thank you it is now fixed. See here https://materializeweb.com/floating-action-button.html


Explanation of Truncation?

Hello!
Are you familiar with this package? https://github.com/simaki/fracdiff
They don't appear to require that the output is truncated. What is the reason for the truncation that results in this package? I would prefer to use yours because it's faster, but I don't understand why the results are truncated (NaNs at start of sequence). Thanks!

Actually, it looks like the user is supposed to supply a window which I guess is how they determine the truncation size. What is the advantage of inferring the truncation size from the data?

The other package calls it window
see https://github.com/simaki/fracdiff/blob/master/fracdiff/fracdiff.py#L91
In the literature it's called "truncation order". Theoretically fractal differentiation assumes an infinite number of past observations but in practice you need to chop or truncate the historic information at some point. If you truncate after 10 steps into the step, then your "long memory" will not go much beyond.
I usually pick highest possible truncation order, e.g. 500 to 2000. That's obviously a practical problem if you are dealing with daily stock prices.
Here is an implementation of Lopez's (2018) algorithm to find a "good" truncation order: https://github.com/ulf1/numpy-fracdiff/blob/master/numpy_fracdiff/find_truncation.py
and here some code benchmarks
https://github.com/ulf1/numpy-fracdiff/blob/master/examples/profile-find-truncation-order.ipynb

And look @miretchin
https://github.com/ulf1/sklearn-fracdiff/blob/master/sklearn_fracdiff/fracdiff_class.py#L29
...
            else:  # 'find' or None
                _, self.weights = find_truncation(
                    self.order, tau=self.tau, mmax=self.mmax)
...

sklearn_fracdiff.FracDiff will "automagically" compute a "good" truncation order for you (using Lopez's algorithm). However, only the weights are stored. Maybe we store self.truncation as well, e.g.
...
            else:  # 'find' or None
                self.truncation, self.weights = find_truncation(
                    self.order, tau=self.tau, mmax=self.mmax)
...

This might be useful information.

"What is the advantage of inferring the truncation size from the data?"
the required truncation order (or window size) depends on the desired fractal order "d".


Remove socat in debug-socket script

This allows the script to be run in environments that don't have socat installed.

Should I merge and release this?

Should I merge and release this?

If you have spare time to, I would appreciate it. At my current place of employment, I have been using a Ruby snippet in irb because the production container images don't have socat or netcat. I could install socat or netcat, but I figure the debug-socket script doesn't really need to depend on socat.

Released. Thanks for the change! I like it!


new kopia icons

changed kopia icons to new ones as discussed in slack

For reference: https://kopia.slack.com/archives/CH7R8L2KD/p1662751293687799


TTS0004: Train the mms TTS for multi speaker in GCP.

Description
We have to train the current mms model on multi speakers.
Completion Criteria
A mms tts model with multi-speakers option using speaker id.

We cannot train the current on model for multi speaker.
issue of multispeaker


A duplicate mod Waila appeared when I want to develop EnderIO addon

A duplicate mod Waila appeared when I want to dependent EnderIO in ForgeGradle for my EnderIO addon.

Here are the crash log.
fml-client-latest.txt

And that is what minecraft will be...

It seems you build env is ignoring this: https://github.com/SleepyTrousers/EnderIO/blob/master/build.gradle#L70
I also recommend to depend on Ender IO with transitive = false and adding the runtime dependencies to your gradle. Those are far less than our compile dependencies (only endercore).

Thank you very much!They are all useful suggestions.


feat(list): Add list divider

Fixes #321.

Codecov Report

Merging #416 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #416      +/-   ##
=========================================
+ Coverage   96.09%   96.1%   +0.01%
=========================================
  Files          53      54       +1
  Lines        1819    1824       +5
  Branches      214     214
=========================================
+ Hits         1748    1753       +5
  Misses         71      71

Impacted Files
Coverage Δ

packages/list/index.js
89.09% <ø> (ø)
:arrow_up:

packages/list/ListDivider.js
100% <100%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a468f02...de64138. Read the comment docs.

@bonniezhou sorry I think I may have messed up your branch. I tried to change the base to rc7.0. We can try to fix it tomorrow.

No worries, only 5 files so I just remade it :) #420


Fix code scanning alert - Use of arguments.caller or arguments.callee

Tracking issue for:

[ ] https://github.com/microsoft/autogen/security/code-scanning/56

@afourney - it looks to me like the identified section is in test data, not code that we are running, is that correct? You can probably add an ignore for that one.


License?

Saw this on code project, but this repo doesn't have a license file. Is this also to be CPOL?

Just new to GitHub, not sure about the license file you mentioned. It is CPOL as well. Shall I put some file here as well?

I would add a license file to indicate that this is open source. Not everyone will have found it through Codeplex. Oddly, plenty of people publicly post proprietary code without licenses; when people assume it's open source because the code is on github, legal battles may ensue.
Here's more info on applying licenses: https://help.github.com/articles/open-source-licensing/. It's not really a github only thing, they just make it really easy to start with a license and advocate for including licenses. I'd use a license in BitBucket or any other public code hosting platform.
The main reason I ask is because some companies don't allow open source code to be used unless there are clear licensing terms included with the source.
If you'd like, I can add the license and open a pull request.

Thanks for your suggestion. I'd like to look into the license stuff myself and do some homework for it.

MIT license file added, close this issue.
Thanks for the reminder.


Fix typo @node to @note in documentation comment

Warnings are occurred when I execute rake generate_cops_documentation.
$ bundle exec rake generate_cops_documentation
[warn]: Unknown tag @node in file `lib/rubocop/ast/node/hash_node.rb` near line 82
[warn]: Unknown tag @node in file `lib/rubocop/ast/node/mixin/hash_element_node.rb` near line 32

I think the tag should be @note.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[ ] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests are passing.
[x] The new code doesn't generate RuboCop offenses.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

You sir, are correct. 😊


New version: Tencent.wechat <IP_ADDRESS>

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

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

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

Microsoft Reviewers: Open in CodeFlow

@wingetbot waivers Add Validation-Domain

this package is facing hash mismatch. i will investagate later.


Sequence doesn't rollback inside transaction (intentional? why?)

OrientDB Version: 3.0.31
Java Version: 1.8.0_211
OS: Windows 10
Expected behavior
When calling .next() on a sequence inside a transaction and the transaction is rolled back, the value in the sequence should stay as it was before the transaction
Actual behavior
When calling .next() on a sequence inside a transaction and the transaction is rolled back, the value in the sequence is still incremented
Steps to reproduce
Prepare the data:
create class vrt extends V;
create property vrt.idx long;
create sequence mySq type ordered start 5;
create index myIdx on vrt (idx) unique;
create vertex vrt set idx=6;

We can select the current sequence value and see it's 5 (so .next() should return 6)
select sequence('mySq').current();

Then, let's create a vertex with the new value. Since there is already a vertex with idx=6 and it has a unique index, it will fail.
create vertex vrt set idx=sequence('mySq').next()

Result (as it should):
Error: com.orientechnologies.orient.core.storage.ORecordDuplicatedException: Cannot index record #130:0: found duplicated key '6' in index 'myIdx' previously assigned to the record #129:0

We can select the sequence value again:
select sequence('mySq').current();

We can now see the value is 6. The sequence incremented the value, but it didn't roll it back when the command file.
Code
From what I can tell the "issue" is caused by these lines:
https://github.com/orientechnologies/orientdb/blob/3.0.31/core/src/main/java/com/orientechnologies/orient/core/metadata/sequence/OSequenceOrdered.java#L55
That is, if I debug the code and evaluate tx to false everything work as expected.
Looking at the commit & PR:
https://github.com/orientechnologies/orientdb/pull/7580
It seems as if that is intentional? That is, the intention is to generate values outside of the transaction.
Am I right? and if so, why?
specially when using an ordered sequence, if there is an issue with creating the vertex I want the operation to fail. From what I can tell it's the only way to guarantee a no-gap ordered property of vertices.

Hi @matanshukry
Yes, that's correct and intentional.
The problem is with record version control, that for how sequences are implemented, would make them unusable if updated in transaction.
To give you a bit more context, the sequence value is stored in a document, whose version is updated every time you get a new value. If you updated it in tx, concurrent transactions (especially long transactions) would suffer from a lot of OConcurrentModificationException just because of the sequence update; that would make the mechanism practically unusable. Imagine an autoincrement value on a property, based on a sequence: you would not be able to do inserts in parallel anymore.
This is why we decided to get the value from a separate tx; this solves the contention problem, but the drawback is that when you get a sequence value, it's incremented forever
I hope it helps
Thanks
Luigi

@luigidellaquila cool thanks for the explanation!
Quick questions regarding that though:
1 - There's a retry mechanism that at least should somewhat help; from what I can tell it's default value is set to 100. Doesn't that help?
2 - What do you think about having an extra flag on the sequence to decide which method to use? I can implement it my self as well

@tglman I noticed you marked this on the 3.0.x milestone; I updated the version to indicate it applies to 3.1.0 as well. Unless there's another reason it's not marked for 3.1.x ?


Cannot read property 'displayName' of undefined

I'm getting this error when I try to run the vanilla example in my own app
import NavigationBar from 'react-native-navbar'

...

render () {
    const rightButtonConfig = {
      title: 'Next',
      handler: () => {
        alert('hello!')
      }
    }
    const titleConfig = {
      title: 'Hello, world',
    }
    return (
      <View style={styles.overlayContainer}>
        <NavigationBar title={titleConfig} rightButton={rightButtonConfig} />
        <View style={styles.topBar}>
          <Text>Dashboard Screen</Text>
        </View>
      </View>
    )
  }

Has anyone seen this before?

No idea, to be honest. Try to update all dependencies and reproduce it on a blank project.

I have this when I pass an empty string to a {emptyString} RN0.32

Is it possible it's a cache of some sort? We were having this issue with RN 0.35, removed the styles and it rendered an empty string properly. We then re-applied the same styles, and it continued to be able to render an empty string.
So something about removed and reapplying the style prop to a pure Text component (with no other props) resolved it, even though the code was the same.

FWIW, yet another question about displayName
https://stackoverflow.com/questions/50737684/displayname-property-in-react-native-cant-set-it-react-native-throws


chore: add build support for newer JDKs

This PR adds the ability to build the contribs in the newest versions of Java, but still supports Java 8 which we want in CI for maximum compatibility.
To do this I had to:

use auto-detection of the JDK version to run the maven-surefire plugin differentially
add the bytebuddy workarounds as we have in the java-sdk

So #915 should be able to pass with this change? The PR is sort of blocked since it depends on Java 11.

No, unfortunately. The problem there is that PR includes usage of the Java 11 HTTP client. That will work fine locally if you run the tests with Java 11+, but the CI still runs in Java 8, on purpose, to ensure compatibility.
We could consider some kind of means of doing multiple test runs, some on Java 8 and some on Java 11/X/Y/Z, and then simply say some providers require more recent Java versions - that would require more work though and we'd have to be very careful.

So #915 should be able to pass with this change? The PR is sort of blocked since it depends on Java 11.

No, unfortunately. The problem there is that PR includes usage of the Java 11 HTTP client. That will work fine locally if you run the tests with Java 11+, but the CI still runs in Java 8, on purpose, to ensure compatibility.
We could consider some kind of means of doing multiple test runs, some on Java 8 and some on Java 11/X/Y/Z, and then simply say some providers require more recent Java versions - that would require more work though and we'd have to be very careful.

We could open an issue for this though. it's certainly technically possible.

So #915 should be able to pass with this change? The PR is sort of blocked since it depends on Java 11.

No, unfortunately. The problem there is that PR includes usage of the Java 11 HTTP client. That will work fine locally if you run the tests with Java 11+, but the CI still runs in Java 8, on purpose, to ensure compatibility.
We could consider some kind of means of doing multiple test runs, some on Java 8 and some on Java 11/X/Y/Z, and then simply say some providers require more recent Java versions - that would require more work though and we'd have to be very careful.

We could open an issue for this though. it's certainly technically possible.

Another option is to make another release version which will compile with newer Java from separate branches, and then both branches and release versions can co-exist.


Feature: AfterDropBuild target

The problem was that my build outputs were not being copied to the correct drop folder so I wanted to add a custom target that would do this for me.  I ended up hacking the WIXSetup to call a custom target called "AfterDropBuild" that I created in my .btdfproj.   I would rather not have had to hack the WIXSetup although it's not that bad because it only needs to be done once on our TFS build server.  Please can you build in a target for this purpose?
This work item was migrated from CodePlex
CodePlex work item ID: '9203'
Assigned to: 'tfabraham'
Vote count: '1'

[UnknownUser@5/2/2012]
Resolved with changeset 67248.

[UnknownUser@2/21/2013]

[UnknownUser@5/16/2013]


Add dir column by default on "forever list"

This adds the "dir" column by default when issuing the "forever list" command. It is the only field that can help the user to determine which PID is running but it is hidden by default!
I know that it is possible to add an UID, however if the UID is added to the start command in the package.json then it will be commited in GIT, thus not allowing the user to know if is a dev or a prod deployment.

Example with a common package.json:
  "scripts": {
    "start": "forever --verbose --uid \"node-app\" --watch --watchDirectory ./routes ./bin/www",
    "dev": "nodemon -e ejs,js --debug ./bin/www"
  },

Since package.json is usually commited and the UID can't be set through an ENV variable (or I least I haven't found how) if there are two apps, dev and prod they will both share the same UID.


Feature: Allow fields to be omitted from output, hiding them

It is sometimes useful to generate a more complex structure and reference parts of it in the same namespace. For example, a database table might have day/month/year as 3 separate columns, and for the sake of consistency a single datetime has to be generated (to deal with cases like different months having different days etc.)
One approach to implement this is by declaring a field as hidden and omitting it from the output entirely.
Hypothetical example:
{
  "type": "object",
  "_date": {
    "type": "string",
    "hidden": true,
    "date_time": {
      "format": "%Y-%m-%d",
      "subtype": "naive_date",
      "begin": "1930-01-01",
      "end": "2010-01-01"
    }
  },
  "day": {
    "type": "number",
    "format": {
      "format": "{date@day}",
      "arguments": {
        "date"<EMAIL_ADDRESS>      }
    }
  }
}

Hey @vlushn thanks for the request! Clearly, this is something we should support.
Initially I thought it'd be more straightforward to have all these "hidden" fields be contained in a 'special' JSON schema file which would never get serialized but could be referenced to from other files. But I think your solution is much better because you can control at what level in a nested structure you want fields to be consistent.
Are you thinking "hidden" would only be a valid attribute for fields of "type": "object"? Or would "hidden" be a valid attribute on any JSON schema node type? I think the latter would probably be better.
An alternative, which is similar could be to have an attribute "variables" on nodes of "type": "object" in which we can store all the "variables" we want generated but hidden from serialization. For instance:
{
  "type": "object",
  "variables": {
    "date": {
      "type": "string",
      "date_time": {
        "format": "%Y-%m-%d",
        "subtype": "naive_date",
        "begin": "1930-01-01",
        "end": "2010-01-01"
      }
    }
  },
  "day": {
    "type": "number",
    "format": {
      "format": "{date@day}",
      "arguments": {
        "date"<EMAIL_ADDRESS>      }
    }
  }
}


Move run_cli.sh into Fake script and document targets

To reduce the amount of script inside of project root it would be nice if everything would be inside of Fake and usable via target.
Also there has to be a good documentation such that a new developer maybe without fake knowledge could use these scripts as well.

I guess I already did that. Migrated to a run.fsproj and run.fs.


Improve HTTPDigest implementation

Describe the bug
fastapi.security.HTTPDigest is actually not implementing HTTP Digest Access Authentication as specified by RFC 7616 or (the obsoleted) RFC 2617.
To Reproduce
Read the relevant RFCs or maybe try it out using curl --digest.
Expected behavior
Exactly as specified in RFC 7616.

Yeah, it is used internally to be integrated with OpenAPI, even though the implementation is just the basic stub. But I would accept PRs improving it.

I'll take this.

I'm not taking this. I did something on https://github.com/tiangolo/fastapi/pull/3071 and closed, maybe it helps...

Yeah, it is used internally to be integrated with OpenAPI, even though the implementation is just the basic stub. But I would accept PRs improving it.

Is this still open for improvement?

@tiangolo Hey, I've looked into implementing this and I'm not actually sure it's possible. To authenticate the user or even slightly abstract the protocol away from the underlying application code, HTTPDigest would need access to a store of usernames and hashed passwords. What are your thoughts?
@Kludex I would also love to hear about what you discovered in your initial attempt at implementing this.

I'll take this!

Hi @tiangolo didn't realise how much work was involved with this challenge-response negotiation. I made a PR #9285 to attempt to implement this and used curl --digest as the basic benchmark to ensure it's consistent with the RFC.
Because of the way that FastAPI provides security dependencies + the hashing involved with the negotiation, I couldn't think of an easy way to allow authentication, besides exposing an .authenticate(user, pass) -> bool method on the returned DI object.
Let me know what you think!

Hey @Kludex, would love to hear your thoughts on the best approach for this change. Keen to get his closed. Cheers

Would love to see this implemented as well, trying to replicate a device for testing that uses digest, and it's been quite the headache.
That being said, I tried getting #9825 working, and it appears it doesn't work with pydantic when the version is ^2, but I was able to get it working with 1.10.12, is this worth updating to the latest pydantic version?

Thanks @UpstreamData! I will look into it

@UpstreamData I've fixed the PR to properly support both pydantic ^2 and 1.10 -- was an issue with the model config; decided to do away with arbitrary types all together. Tested locally and the quick curl test works for both versions.

Just getting back around to this now, it's working great with the new changes, but I have a suggestion to improve something I find confusing.  Entirely up to you if you'd like to implement this, just an idea I had that makes my use case easier.
I find the use of auto_error confusing, as setting it to False basically means the whole process needs to be re-implemented on the application end.  Curious if it would make more sense to have auto_error control erroring for invalid credentials, and possibly have another flag that turns off the more implicit errors, such as digest auth being None?  This would allow for logging on the application end when a user login fails, but would allow the security layer to hide some of the complexity that has to go on in the background in order to implement the digest auth.
Here's an example of what I was thinking would work, but instead causes errors on the server -
import logging
import secrets

import uvicorn
from fastapi import HTTPException, FastAPI, Depends
from fastapi.security import HTTPDigest
from starlette.requests import Request
from starlette.responses import Response

security = HTTPDigest(realm="my website", auto_error=False)

async def auth(
    request: Request,
    response: Response,
):
    # create digest auth dialog
    digest = await security(request)

    # authenticate credentials
    if not await digest.authenticate("root", "root"):
        logging.info("WEB - login failed")  # never logs anything with auto_error=True
        raise HTTPException(status_code=401)

    logging.info("WEB - login succeeded")
    return response

app = FastAPI(dependencies=[Depends(auth)])

@app.get("/")
async def index():
    return {"hello": "world"}

uvicorn.run(app)


Dracula theme color conflict

vim-airline-themes included dracula theme has conflicting colors with https://github.com/dracula/vim, which already provides a theme for vim-airline.
Depending on loading order of vim-airline-themes and dracula/vim theme one gets one set of colors or another.
First is the vim-airline-themes version and the second the dracula/vim one:

@OndrejSlamecka are you okay, if we remove the dracula theme and depend on dracula/vim for the actual theme?

@chrisbra Yes, go for it, dracula/vim's airline theme seems similar to what I did (and moreover sets proper colors for the 256 color theme which I didn't bother to do).
Just FYI the reason I created my own theme was that at the time the dracula/vim theme used wrong colors for the 24-bit theme (and they didn't care about updating it even though people posted fixes to now deleted GH issue thread).


Screenshots or at least a brief description useful

useless page

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

ID: cd6ad26b-508d-29d9-5a9b-3f95ffda9bec
Version Independent ID: 6a5f60a1-f736-ced0-4d84-9a6a0ba9c1bb
Content: Keyboard.Chat Property (Xamarin.Forms)
Content Source: docs/Xamarin.Forms/Keyboard.xml
Product: xamarin
Technology: xamarin-forms
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI is the replacement for Xamarin.Forms, and its API docs are built from /// in the dotnet/maui repository. Therefore, any issues with the .NET MAUI API docs should be opened in that repository.


🐛 Bug Report: The order parameter for the catalog API no longer works

📜 Description
When accessing the GET api/catalog/entities endpoint using the order parameter, the server responds with:
{
  "error": {
    "name": "InputError",
    "message": "Unknown query parameter 'order'"
  },
  "request": {
    "method": "GET",
    "url": "/entities?order=asc:metadata.name&limit=10"
  },
  "response": {
    "statusCode": 400
  }
}

👍 Expected behavior
It is expected that the endpoint will return the entities ordered by the provided field per the documentation.
👎 Actual Behavior with Screenshots
When requesting the following endpoint GET api/catalog/entities?order=asc:metadata.name a 400 BAD REQUEST response is returned.
Here's a screenshot from the browser's dev console:

👟 Reproduction steps
To reproduce, simply make an HTTP request to GET api/catalog/entities?order=asc:metadata.name
📃 Provide the context for the Bug.
The API was working as designed until we upgraded from v1.15.0 to v1.17.5
🖥 Your Environment
Here is the output of yarn backstage-cli info. This is running on Ubuntu, but is reproducible across OSes.
$ lsb_release -a
No LSB modules are available.

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, I don't have time to work on this right now

Hi @remerle, this looks related to this issue: https://github.com/backstage/backstage/issues/19673. There's also a fix in this PR: https://github.com/backstage/backstage/pull/19675. The fix has been released as part of the weekly next releases but hasn't been part of a monthly release yet, that will happen on September 19th so next week


Allow video resolution constraints

Must inspect available settings in the webrtc library and how they deal with the current MediaStream spec.
Usage example:

http://stackoverflow.com/questions/25136887/make-a-call-with-ios-apprtcdemo-with-resolution-set-to-480x640

c9dd4db4bee790c59081a96ad6ed50c40244a57a should implement this feature, but it does not work so I ask for help...
Basically this is the usage (according to the latest W3C spec):
var promise = iosrtc.mediaDevices.getUserMedia({
  audio: true,
  video: {
    width: { min: 320, max: 320 }
  }
}

But when the local video is generated and the libwebrtc ObjC wrapper emits didChangeVideoSize the resolution of the local video is the common/default one (640x480).
No idea where the issue is, I'm supposing to correctly follow the constraints API. Note however that the constraints stuff in the ObjC wrapper of libwebrtc is totally outdated (it still uses the mandatory/optional arrays), and maybe the given constraints are ignored by the native C++ API.
I've reported the issue in the libwebrtc project:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5290
but I would appreciate any help from the community :)

Have you tried the "old" syntax? i.e. something like {mandatory: {maxHeight: 640,minHeight: 480} maybe they have some sort of fallback? I think this is working on my build I'm going to check this out. By the way, your build does not generate needed H264 lines in the sdp offer.

I'll try to give also my support, but I want to share my experience with the constraints.
After a lot of tests, I noticed that the problem related to lags for old iDevices could be due to the minimum framerate and maximum one. If you try it, and profile it, you should see how the GPU performance goes up to 30-40 and immediately down to 4/5/8 frame per second: when it gets down to lower values, here it comes lag. It's like as, since the minimum and maximum are not set during the signaling, the older devices increase the performance more than how much they can handle.
So, maybe, adding the support to those two values, will solve the lag issue on old device (those two parameters are part of AVFoundation in iOS7 and later).
In fact, newer devices can handle an higher frame rate and the performance are stable.
I hope I got explained!

Have you tried the "old" syntax?

This is not about the JavaScript API syntax but about the Objective-C API.

By the way, your build does not generate needed H264 lines in the sdp offer.

Please report it in a separate issue :)

adding the support to those two values, will solve the lag issue on old device

frameRate is already implemented: https://github.com/eface2face/cordova-plugin-iosrtc/commit/f2d0efe548dbe3865e81eb55753bc75d6d2f9cd4

Video constraints are theoretically implemented in 2.2.0 but they are just ignored. Let's close this issue and handle the problem in #107.
@SirSeymour may you please confirm whether you were able to force video constraints using this plugin? May you please help on #107 by exposing your experience?


[DevEx]: Refactor StatsLeaderboard to separate totals from the weeks in its computed properties

Improvement Summary
The StatsLeaderboard could be easier to understand and adjust if the way total counts were track were separated from the individual weeks
Detailed Description
StatsLeaderboard.Vue had computed properties for playerWins and playerScores, each of which is an array of dictionaries (one per player), where the keys are the week numbers and the values are the number of wins or the number of points that player got that week.
For both computed props, each player object has an additional key ‘total’ with a value of the total points/wins the player received in the season. That can be confusing during data processing as some calculations require handling the totals separately from the individual weeks.
A cleaner solution could be adjust the existing computed props so that each player’s object has weeks: , and total: .
We’d then use an additional computed prop to format the data for the data table by concatenating the objects for each player’s weeks with their total

Closing as this may not actually be more clear


typeof loader is unusable if loader has a conditional redirect inside

What version of Remix are you using?
1.19.3
Are all your remix dependencies & dev-dependencies using the same version?

[X] Yes

Steps to Reproduce
export async function loader() {
  if (someCondition) {
    return redirect('/some-page');
  }

  const data = {foo: 'bar'};

  return {data};
}

export default function Component() {
  const {data} = useLoaderData<typeof loader>();
  return <div />;
}

Expected Behavior
data to be properly typed as {data: {foo: string}}
Actual Behavior
Due to the redirect TypedResponse<never> is added to the loader return types, which is correct.
But the useLoaderData is never called if there is redirect and the data that it receives is always {data: {foo: string}}, so it is type wrong if you use the typeof loader. You can circumvent this if you add your own types, but it would be nice if this is solved by Remix itself, since this is a common use case.
Promise<TypedResponse<never> | {
    data: {
        foo: string;
    };
}>

@ivosabev I've been getting around this by throwing the redirect instead of returning it.
if (someCondition) {
  throw redirect('/some-page');
}

Remix type inference only works for data returned via the json or defer helpers. If you return a redirect, then it's just a generic Response so that breaks type inference.
That's why you should always throw other Response objects.
https://github.com/remix-run/remix/blob/30bcd9e9dfbeda1707329da017f9ceccfac21521/packages/remix-server-runtime/responses.ts#L34-L36

Closing as throwing redirects is the intended way to author loaders and correctly excludes redirects from participating in type inference.