Mix does not delete old versioned files when a new one is generated

Laravel Mix Version: 0.11.4
Node Version: v6.10.0
NPM Version: 3.10.10
OS: Windows 7 Ultimate 64x

Description:
When I'm using the version() function, no matter if I'm running in production or not the old versioned files are not been deleted (BTW I'm not using Laravel)

Steps To Reproduce:

Put this setting in the webpack.mix.js

Can you delete your bundle folder and re-run npm run dev

its not that they are getting duplicated, its that mix does not delete old versioned files properly, im having the exact same issue.

@ankurk91 the same thing still happen

Yes, i can reproduce the issue, mix does not delete files if output folder is other than default (public/js).
There are two possible solution for now.

Let files go in default directories.
js mix.js('./resources/assets/js/app.js',  'public/js/app.js')
Tell npm to delete your bundle folder before building new

"scripts": {
 "predev": "rm -rf public/bundle",
}

https://github.com/johnagan/clean-webpack-plugin
I recommend using this and configure it in your webpack.mix.js

Happening on 0.12 on homestead as well

Install rimraff, then add the following scripts to your package.json:
    "cleanup": "rimraf public/css public/fonts public/images public/js public/mix-manifest.json",
    "predev": "npm run cleanup",
    "prewatch": "npm run cleanup",
    "preprod": "npm run cleanup",

This will make sure to clean aforementioned directories before running asset compilation.

I did an install instead of an upgrade from version 0.11.4 to 0.12.0, all is working fine
(npm 4.6.1, webpack 2.6.1)
When I did an upgrade instead of an install, the problem described here showed up immediatelly.
Hope this help to solve the problem to others also.

I have been able to reproduce de problem on versio 0.12.0, on version 0.11.4 all is working fine

Same problem on 0.12.1.
This Laravel-Mix remains too many bugs, that poor for developer ;(

@luunguyenbk Then you should fix it.

@adiachenko it's work. thank's

@adiachenko while using rimraff seems to be a good quick fix it shouldn't laravel-mix do it by itself ?

Feedback on rimrf:
It works to run command like: npm run dev or prod, but for the npm run watch the same is not deleting the files in my case.
And yes, laravel-mix should do this automatically (so I believe) =S

@marvinosswald Yes, but it is still a good practice to have rimraff do the cleaning before the build, because you may have remnant files from previous builds in rotation. A typical example of such case would be the use of copy plugin.

@adiachenko I don't want it to clear ALL files. I want it to clear ONLY the ones being processed through mix - like it used to. It shouldn't touch files it's not responsible for.

@steveheinsch I get it. I am not saying Mix shouldn't fix its issues. I just threw the idea out there, it's your decision what to do with it.

@marvinosswald Instead of rimraff, use clean-webpack-plugin. It's made specially for webpack and to cleanup directories based on your configuration. @JeffreyWay used it for one of his Laracasts demo.

@ruchern Does it do the cleaning also when using in npm run watch?

@marcelogarbin Yes.

@ruchern Could you show your package.json and webpack configuration?

@marcelogarbin I did not use clean-webpack-plugin because I am not doing versioning on development.

@marcelogarbin You don't want to explicitly clean the whole directory on watch. Webpack is designed to do partial recompile after a build is started, so you will be looking at all sorts of issues if you use it this way.
clean-webpack-plugin was a nice suggestion, though. May be much cleaner as you don't need to add additional entries to your package.json scripts.

@adiachenko @ruchern I need help with this...
I do not know what I'm doing wrong, but when I use the npm run watch or watch-poll, my page is not updating correctly. And ends up generating several compiled files, without removing them.
My Settings:
package.json
{
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "prod": "npm run production",
    "dev": "NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "hot": "NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "production": "NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "axios": "^0.15.3",
    "clean-webpack-plugin": "^0.1.16",
    "copy-webpack-plugin": "^4.0.1",
    "cross-env": "^3.2.3",
    "imagemin-mozjpeg": "^6.0.0",
    "imagemin-webpack-plugin": "^1.4.4",
    "laravel-mix": "0.*",
    "lodash": "^4.17.4",
    "purifycss-webpack": "^0.6.1",
    "stylus": "^0.54.5",
    "stylus-loader": "^3.0.1",
    "postcss-discard-comments": "^2.0.4"
  }
}

webpack.mix.js
const { mix } = require('laravel-mix');

// Pacotes de terceiros
const ImageminPlugin     = require('imagemin-webpack-plugin').default;
const CopyWebpackPlugin  = require('copy-webpack-plugin');
const imageminMozjpeg    = require('imagemin-mozjpeg');
const CleanWebpackPlugin = require('clean-webpack-plugin');

// Configurações
let config = {
    host:     '<IP_ADDRESS>',
    base_url: 'http://admin.dev'
};

mix.webpackConfig({
    plugins: [
        new CleanWebpackPlugin([
            'public/css',
            'public/js',
        ], {verbose: false})
    ],
});

// Disable toast notifications
mix.disableNotifications();

mix.options({
    cleanCss: {
        level: {
            1: {
                specialComments: 'none'
            }
        }
    },
    postCss: [
        require('postcss-discard-comments')({ removeAll: true })
    ],
    purifyCss: false
});

// Tradução Laravel pt-BR - Copia pasta pt-BR para resources/lang
//mix.copyDirectory('vendor/caouecs/laravel-lang/src/pt-BR', 'resources/lang/pt-BR');
// Images - copia pasta para public/images
mix.copyDirectory('resources/assets/images', 'public/images');

// Copia arquivos de terceiros
// Fonts
mix.copy([
    'bower_components/bootstrap/dist/fonts',
    'bower_components/font-awesome/fonts'
], 'public/fonts');

// Compila estilo SASS
mix.sass('resources/assets/sass/style.scss', 'public/css')
   .sass('resources/assets/sass/loginForm_style.scss', 'public/css')
   .sass('resources/assets/sass/responsive.scss', 'public/css');

// Agrupa CSS
mix.styles([
    'bower_components/bootstrap/dist/css/bootstrap.css',
    'bower_components/font-awesome/css/font-awesome.css',
    'bower_components/select2/dist/css/select2.css',
    'bower_components/animate.css/animate.css',
    'bower_components/hover/css/hover.css',
    'bower_components/lity/dist/lity.css',
    'bower_components/SpinKit/css/spinkit.css',
    'bower_components/sweetalert2/dist/sweetalert2.css',
    'bower_components/pretty-checkbox/src/pretty.min.css',
    'public/css/style.*.css',
    'public/css/responsive.*.css'
], 'public/css/app.css')
    // Login
    .styles([
    'bower_components/bootstrap/dist/css/bootstrap.css',
    'bower_components/font-awesome/css/font-awesome.css',
    'bower_components/pretty-checkbox/src/pretty.min.css',
    'public/css/loginForm_style.*.css'
], 'public/css/app_login.css')
    .version();

// Agrupa JS
mix.scripts([
    'bower_components/jquery/dist/jquery.js',
    'bower_components/bootstrap/dist/js/bootstrap.js',
    'bower_components/select2/dist/js/select2.full.js',
    'bower_components/sweetalert2/dist/sweetalert2.js',
    'bower_components/lity/dist/lity.js',
    'bower_components/parallax/deploy/jquery.parallax.js',
    'bower_components/wow/dist/wow.js'
], 'public/js/app.js')
    // Login
    .scripts([
    'bower_components/jquery/dist/jquery.js',
    'bower_components/bootstrap/dist/js/bootstrap.js'
], 'public/js/basic.js')
    .version();

// Comprime imagens quando em produção (npm run prod)
if(mix.config.inProduction) {
    mix.webpackConfig({
        plugins: [
            new CopyWebpackPlugin([{
                from: 'resources/assets/images',
                to: 'images', // Laravel mix will place this in 'public/images'
            }]),
            new ImageminPlugin({
                test: /\.(jpe?g|png|gif|svg)$/i,
                plugins: [
                    imageminMozjpeg({
                        quality: 70,
                    })
                ]
            })
        ]
    });
}

// Version
//mix.version();

// Browserfy
mix.browserSync({
    files: [
        'resources/sass/**/*.*',
        'resources/views/**/*.*',
        'public/css/*.*',
        'public/js/*.*',
        'app/Modules/**/Resources/views/**/*.*'
    ],
    host: config.host,
    proxy: config.base_url,
    port: 3002,
    online: true,
    logConnections: false,
    reloadOnRestart: false,
    notify: false,
    open: false //false, local, external, ui, tunnel
    // injectChanges: true,
});

I'm using Windows 10 + Homestead. When I run the command npm run dev | prod | watch me returns node-sass error. What can it be?

@marcelogarbin Are you executing npm run dev/etc from the cli on your homestead vm? It looks like you're executing it on your host computer, so '/home/vagrant/code/etc' doesn't exist.

@steveheinsch I access via ssh the homestead and run the npm run dev/watch. When running on Windows itself, it works accordingly, however I can not execute according to the watch/browserSync, it does not recognize the ip to access via network.

@marcelogarbin Yeah as @steveheinsch suggested, which platform are you running the code? Windows or Linux? The code has to be ran on Linux.

@ruchern The error happens in Linux (homestead), however on windows it works accordingly, but then I could not synchronize browserfy on my network using Windows. Before with the Gulp it worked normally. I do not know what I'm doing wrong or it's the settings there ..

Same for me. Using the same versions and OS as @jrodalo and also very sure this wasn't happening before. Or else I would have noticed it in my commits.

Well then, I'm using Windows 10 + Homestead and it's happening. @jrodalo and @boyd91  spoke it's happening with OSX. With native Linux is normal? Anyone with this system? I believe it's the project with this "mistake".

With the following setup the problem is present:
<EMAIL_ADDRESS>-laravel 5.4
-node v6.10.1
-npm 5.0.1
-Windows 10
If I use<EMAIL_ADDRESS>all works fine.
Somethnig got broken when moving to version 0.12, lets hope it can be solved on a future version.

@ankurk91

Let files go in default directories.
js mix.js('./resources/assets/js/app.js', 'public/js/app.js')

I'm letting the "files go into the default directories" but I still have the same issue.
This is what my webpack.mix.js contains:
const mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js/')
    .sass('resources/assets/sass/app.scss', 'public/css')
    .version();
mix.js('resources/assets/js/sap.js', 'public/js')
    .sass('resources/assets/sass/sap.scss', 'public/css')
    .version();

@warrio4
Things has changed since my comment.
I would suggest to use clean-webpack-plugin

Install clean-webpack-plugin

npm i clean-webpack-plugin --save-dev

Update your webpack-mix.js

const mix = require('laravel-mix');
const CleanWebpackPlugin = require('clean-webpack-plugin');
// Your mix setup may goes here
// mix.js(....)

// Add this a very bottom of your webpack-mix.js
mix.webpackConfig({
  plugins: [
    new CleanWebpackPlugin(['./public/js', './public/css', './public/fonts'])
  ]
});

This plugin play nice even in watch mode.

yep am also having the same problem.. caused several problems for me.. first I couldn't push anymore because suddenly I had over 50 large app.js files and I hadn't picked up on it.
Then my phpstorm started being super sluggish.. again because it was indexing 50+ huge minified js files
Finally I found the problem and fixed it.. but this is quite a bug that was recently introduced!! Not sure what is causing it exactly but I hope it is patched quickly or else lots of people are gonna have lots of problems

@ankurk91 I tried your suggestion and this only cleans the folders when I first run npm run (dev, watch, production)
But on editing files while running 'npm run watch' it still continues to pile up the js files
This also had the effect of deleting all my non-generated files that were in those folders..

@vesper8 For your static/non-generated files, place it in the resources directory and use the mix.copyDirectory() to copy the files while compiling.

@ankurk91

const mix = require('laravel-mix');
const CleanWebpackPlugin = require('clean-webpack-plugin');
// Your mix setup may goes here
// mix.js(....)
// Add this to very bottom of your webpack-mix.js
mix.webpackConfig({
plugins: [
new CleanWebpackPlugin(['./public/js', './public/css', './public/fonts'])
]
});

I did as suggested. Unfortunately, this deletes correctly all the previous files only when watch is run. but on the following builts, nothing is being deleted :\

@warrio4
Agree, clean-webpack-plugin does not delete files on watch when versioning is enabled.
if (mix.inProduction) {
mix.version()
}

Version files conditionally should fix this remaining issue

@ankurk91

if (mix.inProduction) {
mix.version()
}

No this does not solve the issue, because I need mix.version() in development mode. Without it, my browser put the javascript files in cache and doesn't refresh them :/

IMHO it shouldn't be hacked. It should be fixed to previous state.
I'm currently using older version (0.8.9) just to keep things running as desired.

@warrio4 May I know what is your development platform? macOS or Windows or Linux?
If you're on macOS, use Safari and disable caches in developer's menu.

@ruchern
I'm on Win10 :
yes, unfortunately, opening "the javascript source in the browser" was my habit before discovering mix.version() which made easier to develop until now.

@warrio4 I have to do that too. It's not just you!

What's the deal with opening sources? There is an option to disable cache in all major browsers. This isn't really an issue in development unless you won't to work with dev tools closed.

@adiachenko

What's the deal with opening sources? There is an option to disable cache in all major browsers. Cache isn't really an issue in development unless you want to work with dev tools closed.

For the browsert Chrome, you need to have the devTools open for that.. not ideal fix, but it works better than deleting versioned files manually.
I still think that mix should delete old files.

agree with @KonradDeskiewicz .. why are we all trying to hack a way to resolve this when it was working perfectly fine before and now something broke
@JeffreyWay is it laravel-mix that is now causing this or is it a break coming from one of its dependencies? if it's laravel-mix, any plans to revert what caused this?

I honestly haven't read this whole thread, but the 1.0 release of Mix changes the way versioning is applied. Monitoring all these hashed file names is confusing, and makes deployment more difficult for some people.
So now, when you do mix.version(), it'll just apply a md5'd hash of the file's contents to the query string. Check your compiled mix-manifest.json file to access them using Laravel's usual mix() function.

@JeffreyWay That seems like a much cleaner solution.
Do you know which version we can downgrade to in the meanwhile until 1.0 is released? Laravel's package.json requires 0.* so every npm install / update will introduce this bug.

@boyd91 0.11.4 is the most stable at the moment.

I still have the problem. Is there any workaround to this? npm run watch is generating a lot of app.hash.js files and the older ones are not getting deleted. As said by a few others above, PhpStrom becomes sluggish and all of a sudden I have to push a lot of js files to git.

@younus93 Where are these hash.js files located? I can't find any on my install. I had a massive problem before updating to mix 1.* and was shocked to see my server running out of disk space until I realized it was all the file piling up from Mix and pushing with Git to the live server! Took me a while to figure out that it was Mix causing all of this. But now since I updated to the latest Mix version I can't see any non-deleted files. Maybe I'm looking in the wrong place, but I think it's solved for me.

This is fixed in version 1.0, which is already released. Upgrade to fix the issue.

how can I update to the latest version of laravel-mix?
I've tried npm install laravel-mix but it didn't update my package.json file. I still have the following:
"devDependencies": {
    "axios": "^0.15.3",
    "bootstrap-sass": "^3.3.7",
    "cross-env": "^3.2.3",
    "jquery": "^3.1.1",
    "laravel-mix": "0.*",
    "lodash": "^4.17.4",
    "vue": "^2.1.10"
},

I tried to manually change to "laravel-mix": "1.*" then run composer dump-autoload then run npm run watch, I receive the following error
error  in ./resources/assets/js/components/search/result-options.vue
Module build failed: Error:
Vue packages version mismatch:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>

I always look at the package.json laravel/laravel:
https://github.com/laravel/laravel/blob/master/package.json
Also, it helps to delete the node_modules folder and run npm install

I know this problem should be fixed by adding the id param instead of the hash, but I'm encountering a similar problem that is not fixed (I'm using  Laravel Mix v5.0.7).
Through the webpackConfig method I'm using the splitChunksPlugin from webpack, which reduces duplication between chunks by creating additional chunks when there is enough code in common between modules.
This means that in some cases the total number of dynamically added chunks is different between the dev and the prod environment, because in development files are larger, so it's easier to share more code between the files.
So the fact that the mix-manifest file is not updating when the build removes files is causing some issues (especially when working with other people) and I'd like to share how I solved the issue.
1. Laravel-Mix-Clean
In order to avoid having more files than needed, I'm deleting all the files at each build. I had to change the folder structure and pass the correct path to the method, but this didn't cause much issues.
npm install laravel-mix-clean --save-dev

and in the mix file
require('laravel-mix-clean');
// [...]
.clean({
  cleanOnceBeforeBuildPatterns: ['./js/*'],
});

2. Removing the manifest
Having the files in sync was not enough, so I had to remove the manifest file at each new build. In my set-up I have three concurrent builds (each with its own webpack.mix file), so I don't know which one will finish first.
The solution was to install the del-cli package (which is used internally by the clean-webpack-plugin, which in turn is used by laravel-mix-clean) and to delete the manifest file before each build.
npm install del-cli --save-dev

package.json
"scripts": {
  "clear-manifest": "del-cli public/mix-manifest.json",
  // [...]
  "development": "npm run clear-manifest && concurrently \"npm run css-dev\" \"npm run js-dev\" \"npm run js-dev-modern\"",
}

I hope this helps other people with similar issues.

I know this problem should be fixed by adding the id param instead of the hash, but I'm encountering a similar problem that is not fixed (I'm using  Laravel Mix v5.0.7).
Through the webpackConfig method I'm using the splitChunksPlugin from webpack, which reduces duplication between chunks by creating additional chunks when there is enough code in common between modules.
This means that in some cases the total number of dynamically added chunks is different between the dev and the prod environment, because in development files are larger, so it's easier to share more code between the files.
So the fact that the mix-manifest file is not updating when the build removes files is causing some issues (especially when working with other people) and I'd like to share how I solved the issue.
1. Laravel-Mix-Clean
In order to avoid having more files than needed, I'm deleting all the files at each build. I had to change the folder structure and pass the correct path to the method, but this didn't cause much issues.
npm install laravel-mix-clean --save-dev

and in the mix file
require('laravel-mix-clean');
// [...]
.clean({
  cleanOnceBeforeBuildPatterns: ['./js/*'],
});

2. Removing the manifest
Having the files in sync was not enough, so I had to remove the manifest file at each new build. In my set-up I have three concurrent builds (each with its own webpack.mix file), so I don't know which one will finish first.
The solution was to install the del-cli package (which is used internally by the clean-webpack-plugin, which in turn is used by laravel-mix-clean) and to delete the manifest file before each build.
npm install del-cli --save-dev

package.json
"scripts": {
  "clear-manifest": "del-cli public/mix-manifest.json",
  // [...]
  "development": "npm run clear-manifest && concurrently \"npm run css-dev\" \"npm run js-dev\" \"npm run js-dev-modern\"",
}

I hope this helps other people with similar issues.

laravel mix clean also worked well for me.
I used this to clean up source maps in production build
`
require('laravel-mix-clean');
if (!mix.inProduction()) {
mix.webpackConfig({
devtool: 'source-map'
})
.sourceMaps()
} else {
mix.clean({
cleanOnceBeforeBuildPatterns: [
'js/.map',
'css/.map',
]
});
}`


⚠ ClamAV has degraded performance

In b60f7fa, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 81 ms

Resolved: ClamAV performance has improved in 3ec5c14.


SKTestSupport: account for executable extensions

Windows uses executable extensions.  Account for them to enable tests to
pass on Windows.

@swift-ci please test


refactor(turborepo): Improve package changes watcher performance

Description
Like #8036, we need to split out the event processing loop from the actual logic to avoid lagging channels. In this case we process the changed files every 100ms.
Uses a Trie to store the paths since they'll likely have a lot of overlap.
Testing Instructions

Closes TURBO-2921

#8064  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NicholasLYang and the rest of your teammates on  Graphite


Unable to build examples due to pio-parser error

When trying to cargo build (or cargo check) the pico-w example, the following error occurs:
...
   Compiling pio-parser v0.2.1
error: failed to run custom build command for `pio-parser v0.2.1`

Caused by:
  process didn't exit successfully: `/home/m1karch/rs-wifi-led/deps/cyw43/examples/rpi-pico-w/target/debug/build/pio-parser-962aa517b79a9c21/build-script-build` (exit status: 1)
  --- stdout
  processing file `/home/m1karch/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pio-parser-0.2.1/src/pio.lalrpop`
  /home/m1karch/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pio-parser-0.2.1/src/pio.lalrpop:273:10: 273:44 error: invalid regular expression: regex parse error:
      (\p{ID_Start}|_)\p{ID_Continue}*
       ^^^^^^^^^^^^
  error: Unicode property not found

  --- stderr
    Symbol = r"(\p{ID_Start}|_)\p{ID_Continue}*";
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This occurs on both Windows & Linux.

seems the regex 1.8.0 release broke something.
https://github.com/lalrpop/lalrpop/issues/750
https://github.com/rust-lang/regex/issues/982
I've added a workaround in 6a1a3e68, it builds now.


Create independent copies for injection

Create independent copies for injection
Curerntly, the same instance is injected at all injection points. I.e., this fails:
@Test
private foo(@BlueInstance one, @BlueInstance another) {
    assertNotSame(one, another);
}

This can be dangerous if the test modifies the content of the injected instance, as this change will be visible through all other injected blue instances, thus violating the expectations in the other (concurrently executed) tests or later in the same test.
Suggested solution:
Before injection, create a deep copy of the "etalon instance", and inject that copy instead.
Once the objective achieved, this should pass (pseudocode):
@Test
private foo(@BlueInstance one, @BlueInstance another) {
    assertDeepNotSame(one, another);
    assertDeepReflectionEqueals(one, another);
}

Default - deep or shallow?
Deep copy is best for the test isolation but comes at performance price. The latter should be profiled, and if found insignificant then the default should be set to deep copy.
A way of configuration must be provided to control this behavior. For example, class-level annotation @RedAndBlueSettings with field createCopies would work nicely.

A library for deep cloning is available at Maven Central


Submit Keyboard Card Design

klackygears' Submission for Business Card Event 2020
USB C, per-key RGB, 6 key macropad.

[x] By checking this box I agree that this board was made within the April 4th - May 31st time and if it was not I agree to forfeit any prize I may or may not win.

thanks for moving to Imgur! make sure you delete the pngs from the repo

Whoops! Got 'em! Thanks!


n-tag 关闭时无法获取标签内容

Describe the bug
n-tag 关闭时无法获取标签内容
Steps to reproduce
n-tag 关闭时无法获取标签内容
Link to minimal reproduction
n-tag 关闭时无法获取标签内容
System Info
n-tag 关闭时无法获取标签内容

Used Package Manager
npm
Validations

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

Provide a based on CodeSandbox or stackblitz `s Minimal  Reproducible Example

This issue does not have any recent activity. If you are still experiencing similar problems, open a new error, including a minimal copy of the problem


data:vidhimakani74

portfolio website and milestone section added

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Hey,
The "icon" value provided by you is not supported. I have suggested the fix. If you still want to add something different, please check the available icons docs - https://linkfree.eddiehub.io/icons

How to see preview of our changes?

Hey,
The "icon" value provided by you is not supported. I have suggested the fix. If you still want to add something different, please check the available icons docs - https://linkfree.eddiehub.io/icons

How to see preview of our changes?

You'll see the preview of these changes once the PR will be merged, & deployed.

Thanks ✨  thank you for merging


add correct template for ajax search

Fixes an error where an exception is thrown, because the results only flag is True on Ajax search requests, but the
results template is none.
Please check the following:

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?

[x] Run make lint from the Wagtail root.

[ ] For Python changes: Have you added tests to cover the new/fixed behaviour?
[x] For front-end changes: Did you test on all of Wagtail’s supported environments?[^2]

[x] Please list the exact browser and operating system versions you tested
I have tested firefox, with different screen sizes on manjaro. This PR does not modify any frontend code, so testing that is not needed.
[ ] Please list which assistive technologies [^3] you tested:

[ ] For new features: Has the documentation been updated accordingly?

Reproduce:
Create an indexed Snippet and register it. Add some entries to the model and perform a search. The template for the results is not found, render is performed on None. This PR sets the correct template to resolve this issue.
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py", line 220, in _get_response
    response = response.render()
               ^^^^^^^^^^^^^^^^^
  File "/code/wagtail/wagtail/admin/auth.py", line 204, in overridden_render
    return render()
           ^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/template/response.py", line 111, in render
    self.content = self.rendered_content
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/template/response.py", line 89, in rendered_content
    return template.render(context, self._request)
           ^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'render'

[^1]: Development Testing
[^2]: Browser and device support
[^3]: Accessibility Target

@fidoriel thank you, can you please add unit tests and also link this PR (in the description) with the issue being fixed.
Or if no issue, please flesh out the description with steps to reproduce.

@lb- I dont know why the tests fail here, on my fork do they work fine. Segfault somewhere in postgres. When looking back in to the logic for figuring out how to test it, I was wondering about it and changed the PR. It seems if the logic I removed was no longer used, default false, only one place was setting it to true, causing the None-Template used.  The super templates are correct, the remplate needed.

Thanks @fidoriel! I can confirm I'm seeing the same issue when testing against bakerydemo (running a search from the index page of the Person snippet), and the fix looks good to me.
@laymonage Please can you double-check this fix? It all checks out to me (the 'index results view' is just the standard IndexView with the template swapped out, and the viewset handles that by passing in an alternative template_name, so the logic with results_template_name and the results_only flag is redundant), but I just want to be sure I've not missed anything relating to the customisability of these templates.

@gasman yep I'm aware of this and it's on my list for today. I'll try to add a test to ensure this is all good and merge it afterwards

Thanks @fidoriel, the fix looks good to me and I've added tests to ensure the bug has been fixed. Nice to see that the fix is actually to remove code!
I've credited you as fidoriel as I couldn't find any other name. If you would like me to change it, please let me know. Again, thanks!


fix(adonis-typings): return type of mixin

Proposed changes
Hence the mixin is not adding any instance methods, the return type of a constructor should be an empty object. Before the fix, we could not use this package with a model that extends a class that inherits from BaseModel.
an example that didn't work without the fix:
import { BaseModel } from '@ioc:Adonis/Lucid/Orm';

class ModifiedBase extends BaseModel {
    // some basics
}

class Bank extends compose(ModifiedBase, AutoPreload) {
    // model properties
}

Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

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

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added the necessary documentation (if appropriate)

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@lukfor85 Hello!
Thank you for the PR. However, before I merge it, can you please make the mixin return LucidModel instead of an empty object? Because it doesn't return an empty object and you'll still have the same bug. Also, can you please remove the changes done on package.json and not commit the package-lock.json file?

Hello, thank you for the review. Regarding the package.json and package-lock.json - no problem I can roll back the changes. When it comes to adonis-typings/auto-preload.ts, rolling back the changes means my PR is useless :). But I want to talk about it more deeply. From my knowledge, mixin is not an instance of the model, it's just a programming structure that adds more methods aside from the inheritance. So writing
new (...args: Array<any>): LucidModel;

is not actually true. The correct way is to write only properties you add to the actual model instance. Like that:
new (...args: Array<any>): {
   newProperty(): any;
}

Firstly, please check the other Adonis mixin packages (soft-deletes, select-related, etc...) and how they deal with it. I've checked a couple of them and their typings are defined exactly as I fixed it in your package. As your package is not adding any property to the model instance itself (only static methods though), your return type should be an empty object.
Secondly, please have a look at my example above. Make your own BaseModel (call it whatever you want), inherit a model from it and then use your AutoPreload. From what I experienced, your package is usable only if you inherit directly from Adonis' default BaseModel and that is not ok IMHO. Mixin should be usable on every place of the inheritance structure.

@lukfor85 Hey! Some changes had to be made, so I will close this PR. Please upgrade to v1.0.5.


WIP: Fix helm 2.0.0-alpha.5 sha256.

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

It seems as if the project updated the binary. This provides the new hash.
Waiting for confirmation that the release was changed.

The new hash is the one issued by the helm project: http://storage.googleapis.com/kubernetes-helm/helm-v2.0.0-alpha.5-darwin-amd64.tar.gz.sha256. We therefore don't need to wait any longer for confirmation if the release was changed.


Update serialization of options with two-byte extended numbers

Update serialization of options with two-byte extended numbers:

fix extension calculation
fix options flags calculation (critical, safe, cached)
add a test to check handling of unrecognized options (critical vs elective) with one- and two-byte extended numbers

Coverage increased (+0.3%) to 89.654% when pulling 897ea29ba62826268e3eb9f8a8c952aa5e187ca3 on yarisx:master into 0c6af1a58f966fe0751796def6896860ba1db658 on Tanganelli:master.

Perfect, thank you.


GetData endpoint should always return 200 OK

To have a more API-like behavior, @skybrud/frontenders would like the GetData endpoint to always return 200 OK, and then indicate the desired HTTP status code in the response body instead.
@skybrud/frontenders any preference for the JSON structure? Back in the day we had a meta object with a status property. Would this suffice?

Hej @abjerner, sorry for the delay – Empirical has had me pretty swamped. Taking a look at this now :+1:

meta.code sounds reasonable to me 👌

@saulhardman great 😄
How do we handle 500 errors? Just like now?

@saulhardman great 😄
How do we handle 500 errors? Just like now?

As we do now, yes.

@saulhardman I've now pushed a new release that should change the status code behavior (which is now default):
https://github.com/skybrud/Skybrud.Umbraco.Spa/releases/tag/v3.0.0-beta013
Any client projects where we need this then needs to be updated with this version. The backender of each project should be able to help you with that 😉


LEGO: Pull request from lego/hb_835_20170331100739895 to master

LEGO: Pull request from lego/hb_835_20170331100739895 to master with localized lcls

@csigs,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot


Need report for  (average) GPU Efficiency

Need the following 2 reports:
GPU Allocation Rate = Average(Allocated GPU/Total GPU in a certain time slot);
GPU Utilization = Average(GPU real usage/Total GPU capacity in a certain time slot);

After some investigation, I found we can get average value from prometheus using query like:
(avg_over_time( yarn_queue_gpu_total[31d]) - avg_over_time( yarn_queue_gpu_available[31d])) / avg_over_time( yarn_queue_gpu_total[31d])

will give average (allocated_gpus/total_gpus) during 31 days.
And
avg(avg_over_time(nvidiasmi_utilization_gpu[31d]))

will give average real gpu utilization during 31 days.
We can put this directly in Grafana, instead of putting it in report.

@scarlett2018 I have verified that the first query should be changed to
sum(sum_over_time(yarn_queue_gpu_total[31d]) - sum_over_time(yarn_queue_gpu_available[31d])) / sum(sum_over_time( yarn_queue_gpu_total[31d]))

And second query unchanged.

I believe this has been done. @scarlett2018 feel free to reopen it if we still have some pending issue.


Reload config with command

It will make things a lot easier

Perhaps add /is admin command to hold all of these new commands. Make admin's job a lot easier. How admins will interface with data.yml and update it easily

Key enhancement of next minor update


Add PERMIT_EXTENSIONS_ENABLED flag to allow extending permits

Description
Adds an environment variable PERMIT_EXTENSIONS_ENABLED which disables this feature by default.
Context
PV-794
How Has This Been Tested?
Unit and manually tested
Manual Testing Instructions for Reviewers
Webshop will no longer show "extend permit" button.
Set PERMIT_EXTENSIONS_ENABLED=true in local env to re-enable.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7f4c68d) 84.57% compared to head (1dbdf95) 84.59%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #481      +/-   ##
===========================================
+ Coverage    84.57%   84.59%   +0.02%
===========================================
  Files          166      166
  Lines        10209    10227      +18
===========================================
+ Hits          8634     8652      +18
  Misses        1575     1575

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


how only two diodes?

I'm trying to learn some circuits myself, and I'm having trouble understanding how ghost inputs are prevented with only two diodes, also given how the schematic says every key has it's own diode. Thanks!
EDIT: I'm also not sure what the diodes are being used for, I think its USB D+ and D-, but I'm not very confident.

Hello HamBrick!
Thank you for checking out the HandiPi and I hope it helps you in your learning.  The two diodes on the top of board are zener diodes which are used to limit the voltage on the USB data lines to 3.3 volts, rather than the 5 volts the microcontroller is using.
The diodes for adding multi-key press capabilities to the keyboard are surface mounted on the back of the board.  You can see them as the little dark-grey components in the photo below:

I'm happy to answer any questions you might have and good luck on your electronics design journey!

that makes a lot more sense. I don't know how I missed that looking at the kicad files. Thanks for the help!


Plugin "Batch Downloader" not working with Bootstrap Darkroom theme

Plugin Batch Downloader (Version 2.2.2) not working with Bootstrap Darkroom theme (no action on icon).
Link to Plugin: http://piwigo.org/ext/extension_view.php?eid=616
Piwigo: 2.8.1
PHP: 5.5.19 (Info anzeigen) [2016-06-05 14:22:20]
MySQL: 5.5.40 [2016-06-05 14:22:20]
Grafikbibliothek: External ImageMagick 6.3.5
Tested Browser:

Chrome 50.0.2661.102 m
Firefox 46.0.1

This plugin is supported and should work. It does here in all tested browsers.
But it does require a lot of jQuery voodoo, and maybe you are seeing an error I don't. Could you please ckeck your site with chrome dev tools (shift+ctrl+i) and see if there are any javascript errors?

Hi,
as I can see, is there no error. I don't have a menu like you:

Here is the section:
`

 Herunterladen

 `
With Bootstrap Default I get a message (even there I do not have menue as you mentioned):

In case of Bootstrap Default I can see the following on the console:
VM7448:1 Resource interpreted as Document but transferred with MIME type application/force-download: "https://wimpelfisch.ch/plugins/BatchDownloader/download.php?set_id=26&zip=1".

So, with Bootstrap Default, clicking on the icon will directly start the download?
What does your configuration look like in Batch Downloader settings -> Download permissions -> Auswahl Bildgröße? Jede Größe, oder Einheitsgröße? (..das jetzt weiter vom Deutschen zurück ins Englische zu übersetzen ist wohl unnötig :-))

Ich konnte es reproduzieren. Es lag tatsächlich an der Berechtigung ob jede größe, oder nur eine voreingestellte.
Als Schnell-Fix bitte die plugin_fixes.js von https://raw.githubusercontent.com/tkuther/piwigo-bootstrap-darkroom/b9dfb2aa84975955955d6c686fdfbfbc6ccb84fc/js/plugin_fixes.js kopieren nach themes/bootstrap_darkroom/js/

Besten Dank für den schnellen Fix, funktioniert wunderbar!

It looks like batch downloader is partially broken since update 2.0.7 of bootstrap-darkroom.
It works when you download a single picture, but at the gallery level, the download buttons is missing.
Picture level:

Gallery level:

That's the batch downloader icon:

Hi tkuther,
Ok so it's not appearing at all then.
Is this a known issue?

No, it works fine here.

It looks like the button is actually there, but not rendered properly.

Do you get any javascript errors in the console in developer tools?

Nevermind. I found the issue. Fixed in next version

Great, thanks very much !

The problem only appears when batch-downloader is setup to allow only one size of photo:
In that case, the button is actually there, but not rendered properly:

Seems that the problem is coming back with piwigo 12.1 and the current versions of batch downloader and the bootstrap darkroom theme :(
I don't know why but at theme "modus" I see the "oldschool" zip icon of the batch downloader. At the bootstrap darkroom theme I see nothing but in the middle of the two icons I got the message "Alle Bilder dieser Auswahl herunterladen" and it works. But I didn't see the icon :(


Unit tests should not require mercurial

Currently running unit tests requires that mercurial be installed on the developer's host machine.

This can't be fixed I think while we have k8s modules in our dependencies that use some other dependencies that are published over that :(
https://github.com/kubernetes/kubernetes/issues/67165

https://libraries.io/go/bitbucket.org%2Fww%2Fgoautoneg is the offending library, k8s.io/client-go is the dependency that pulls it in.

How does this work?  In Ruby, if some on gituhub is linked to directly, you don't need to have git installed.  It seems weird that the packaging/installer system would require that you have the tool where the source happened to be hosted to use the source....
Am I misunderstanding?
As a developer it seems really odd that I'd need to install hg to use some go package...

It pulls modules using a couple of methods it's just that the primary one is git which most devs already have.

At a minimum, yes - the README should be updated. But longer term we should investigate alternative options, including contributing upstream to remove the dependency.
This dependency was added when we implemented our CRD. I'd love to evaluate whether other projects which also make use of CRDs also have this dependency or whether they've managed to find a way around it.


[APP] Betweenness Centrality (V3)

Uses multiple frontiers, instead of manually saving frontier each iteration
Appears to be ~ same speed as V2

Merging this so I can play around with it.


Added the warning if there is an error in the initialization of the Twillio ClientApi and fixed other errors in the project.

I throw some contributions to the project so that this project can be used without errors or if there are errors that the developer can know about.
Like the error when initializing the api client. #118
I indicate them below each commit:

chore: Add vscode debug launch
fix: Warning lints
chore: Add alert on client api fail on init
fix: Error React, multiple errors.
fix: Error Prop Id ToasterPush expect string
fix: Error React, removed unnecessary "UseEffect"

Thank you so much!
Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Thanks @EdZava we will review it as soon as possible!

@mmubasher
What problem can you reproduce?
You can attach more detail or a screenshot to help you.

@mmubasher, @berkus
Very little attention is paid to contributions to your opensource projects.

@EdZava hi, can you please update the PR?

@berkus
I can not.
You can do the merge yourself. This arrangement was already uploaded in this MR as well.

@EdZava why not? You need to resolve conflicts before merging.

@berkus
no, thanks!

Since author declined to resolve the conflicts, I am going to close this.


libcamera-jpeg SIGABRT @libcamera::CameraConfiguration::at

From: @dwrobel Damian Wrobel 2021-09-21 19:01:03 CEST : https://bugs.libcamera.org/show_bug.cgi?id=78
I'm observing a SIGABRT @libcamera::CameraConfiguration::at when using libcamera-jpeg application as follows:
$ libcamera-jpeg -o test.jpg
Preview window unavailable
[144:40:33.264346482] [28470]  INFO Camera camera_manager.cpp:294 libcamera v0.0.0+1-dab03790
[144:40:33.335326696] [28470]  INFO Camera camera.cpp:937 configuring streams: (0) 1640x1232-YUV420
[144:40:33.335481490] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RG10 Score: 2218 (best 2218)
[144:40:33.335544174] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RG10 Score: 2041.48 (best 2041.48)
[144:40:33.335579655] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RG10 Score: 1500 (best 1500)
[144:40:33.335612118] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RG10 Score: 5004.81 (best 1500)
[144:40:33.335666376] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pRAA Score: 1718 (best 1500)
[144:40:33.335696728] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pRAA Score: 1541.48 (best 1500)
[144:40:33.335728542] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pRAA Score: 1000 (best 1000)
[144:40:33.335768856] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pRAA Score: 4504.81 (best 1000)
[144:40:33.335805430] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RGGB Score: 3218 (best 1000)
[144:40:33.335834615] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RGGB Score: 3041.48 (best 1000)
[144:40:33.335877725] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RGGB Score: 2500 (best 1000)
[144:40:33.336105166] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RGGB Score: 6004.81 (best 1000)
[144:40:33.336404236] [28474]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 1640x1232-pRAA
[144:40:33.367341751] [28474]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:40:33.367382084] [28474]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:40:33.367407139] [28474]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:40:33.478414460] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (6 left)
[144:40:33.509496510] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (5 left)
[144:40:33.544003622] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (4 left)
[144:40:33.578627770] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (3 left)
[144:40:33.609094866] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (2 left)
[144:40:33.642823804] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (1 left)
[144:40:33.675786142] [28474]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (0 left)
[144:40:38.517760186] [28470]  INFO Camera camera.cpp:937 configuring streams: (0) 3280x2464-YUV420
[144:40:38.517915609] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt BG10 Score: 1500 (best 1500)
[144:40:38.517977572] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt BG10 Score: 7155.48 (best 1500)
[144:40:38.518018478] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt BG10 Score: 7244 (best 1500)
[144:40:38.518054182] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt BG10 Score: 10748.8 (best 1500)
[144:40:38.518114921] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt BA81 Score: 2500 (best 1500)
[144:40:38.518153069] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt BA81 Score: 8155.48 (best 1500)
[144:40:38.518202383] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt BA81 Score: 8244 (best 1500)
[144:40:38.518238383] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt BA81 Score: 11748.8 (best 1500)
[144:40:38.518275401] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pBAA Score: 1000 (best 1000)
[144:40:38.518321196] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pBAA Score: 6655.48 (best 1000)
[144:40:38.518600914] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pBAA Score: 6744 (best 1000)
[144:40:38.518732801] [28474]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pBAA Score: 10248.8 (best 1000)
[144:40:38.518926521] [28474]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 3280x2464-pBAA
/usr/include/c++/11/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = libcamera::StreamConfiguration; _Alloc = std::allocatorlibcamera::StreamConfiguration; std::vector<_Tp, _Alloc>::reference = libcamera::StreamConfiguration&; std::vector<_Tp, _Alloc>::size_type = unsigned int]: Assertion '__n < this->size()' failed.
Aborted (core dumped)
Environment:

RPi4 (4GB) with:
-- dtoverlay=imx219 and camera connected,
-- kernel 5.10.60: e4cb65cf23c78b4912786aaf8467aa215d4e1d88,

libcamera-apps: https://github.com/raspberrypi/libcamera-apps/commit/4868f6922c99669d2b36ffe0b0b35e4cd5b0ea53

libcamera: https://github.com/libcamera-org/libcamera/commit/a881b90b5d2a51e196137221a7487055c03926cd

Backtrace:
$ gdb --args libcamera-jpeg -o test.jpg
GNU gdb (GDB) Fedora 10.2-3.fc34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "armv7hl-redhat-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from libcamera-jpeg...
Reading symbols from /usr/lib/debug/usr/bin/libcamera-jpeg-0.0.0-0.2.20210915git4868f69.fc34.arm.debug...
(gdb) r
Starting program: /usr/bin/libcamera-jpeg -o test.jpg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb2388020 (LWP 28517)]
[New Thread 0xb1b87020 (LWP 28518)]
[New Thread 0xb1386020 (LWP 28519)]
Preview window unavailable
[144:42:10.221183137] [28514]  INFO Camera camera_manager.cpp:294 libcamera v0.0.0+1-dab03790
[New Thread 0xb0b85020 (LWP 28520)]
[Detaching after fork from child process 28521]
[144:42:10.287882247] [28514]  INFO Camera camera.cpp:937 configuring streams: (0) 1640x1232-YUV420
[144:42:10.288022707] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RG10 Score: 2218 (best 2218)
[144:42:10.288088818] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RG10 Score: 2041.48 (best 2041.48)
[144:42:10.288122336] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RG10 Score: 1500 (best 1500)
[144:42:10.288152872] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RG10 Score: 5004.81 (best 1500)
[144:42:10.288184464] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pRAA Score: 1718 (best 1500)
[144:42:10.288215760] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pRAA Score: 1541.48 (best 1500)
[144:42:10.288246389] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pRAA Score: 1000 (best 1000)
[144:42:10.288275408] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pRAA Score: 4504.81 (best 1000)
[144:42:10.288307963] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RGGB Score: 3218 (best 1000)
[144:42:10.288337647] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RGGB Score: 3041.48 (best 1000)
[144:42:10.288368943] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RGGB Score: 2500 (best 1000)
[144:42:10.288397813] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RGGB Score: 6004.81 (best 1000)
[144:42:10.288547700] [28520]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 1640x1232-pRAA
[New Thread 0xaf643020 (LWP 28526)]
[144:42:10.372182490] [28520]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:42:10.372261878] [28520]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:42:10.372319118] [28520]  INFO RPISTREAM rpi_stream.cpp:122 No buffers available for ISP Output0
[144:42:10.481474576] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (6 left)
[144:42:10.514625912] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (5 left)
[144:42:10.549098802] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (4 left)
[144:42:10.581125339] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (3 left)
[144:42:10.615585118] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (2 left)
[144:42:10.648002557] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (1 left)
[144:42:10.680982617] [28520]  INFO RPI raspberrypi.cpp:1635 Dropping frame at the request of the IPA (0 left)
[Thread 0xaf643020 (LWP 28526) exited]
[144:42:15.518805054] [28514]  INFO Camera camera.cpp:937 configuring streams: (0) 3280x2464-YUV420
[144:42:15.518967736] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt BG10 Score: 1500 (best 1500)
[144:42:15.519031624] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt BG10 Score: 7155.48 (best 1500)
[144:42:15.519071031] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt BG10 Score: 7244 (best 1500)
[144:42:15.519110364] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt BG10 Score: 10748.8 (best 1500)
[144:42:15.519152104] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt BA81 Score: 2500 (best 1500)
[144:42:15.519191418] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt BA81 Score: 8155.48 (best 1500)
[144:42:15.519230473] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt BA81 Score: 8244 (best 1500)
[144:42:15.519267362] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt BA81 Score: 11748.8 (best 1500)
[144:42:15.519307213] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pBAA Score: 1000 (best 1000)
[144:42:15.519345583] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pBAA Score: 6655.48 (best 1000)
[144:42:15.519384804] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pBAA Score: 6744 (best 1000)
[144:42:15.519422767] [28520]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pBAA Score: 10248.8 (best 1000)
[144:42:15.519609486] [28520]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 3280x2464-pBAA
/usr/include/c++/11/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = libcamera::StreamConfiguration; _Alloc = std::allocatorlibcamera::StreamConfiguration; std::vector<_Tp, _Alloc>::reference = libcamera::StreamConfiguration&; std::vector<_Tp, _Alloc>::size_type = unsigned int]: Assertion '__n < this->size()' failed.
Thread 1 "libcamera-jpeg" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49	  return ret;
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0xb6a76ffc in __GI_abort () at abort.c:79
#2  0xb6e763d4 in std::__replacement_assert (__condition=0xb6f17e9c "__n < this->size()",
__function=0xb6f17d24 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = libcamera::StreamConfiguration; _Alloc = std::allocator<libcamera::StreamConfi"...,
__line=1045, __file=0xb6f17e74 "/usr/include/c++/11/bits/stl_vector.h") at /usr/include/c++/11/armv7hl-redhat-linux-gnueabi/bits/c++config.h:514
#3  std::vector<libcamera::StreamConfiguration, std::allocatorlibcamera::StreamConfiguration >::operator[] (this=, __n=1) at /usr/include/c++/11/bits/stl_vector.h:1045
#4  std::vector<libcamera::StreamConfiguration, std::allocatorlibcamera::StreamConfiguration >::operator[] (this=, this=, __n=1) at /usr/include/c++/11/bits/stl_vector.h:1043
#5  libcamera::CameraConfiguration::at (this=, index=index@entry=1) at ../src/libcamera/camera.cpp:215
#6  0xb6f82824 in LibcameraApp::ConfigureStill (this=0xb238b010, flags=) at /usr/include/c++/11/bits/unique_ptr.h:173
#7  0x00407d6c in event_loop (app=...) at /usr/src/debug/libcamera-apps-0.0.0-0.2.20210915git4868f69.fc34.arm/apps/libcamera_jpeg.cpp:63
#8  main (argc=, argv=) at /usr/src/debug/libcamera-apps-0.0.0-0.2.20210915git4868f69.fc34.arm/apps/libcamera_jpeg.cpp:103

@naushir @davidplowman, This has been reported on our issue tracker but a quick glance shows that it may be the libcamera-jpeg app accessing an invalid StreamConfiguration offset.
Is this an issue you're aware of or can replicate?
It may be that we need to add some more defensive support in the libcamera StreamConfiguration API here of course ...

@kbingham Hi Kieran, thanks for this. I wasn't aware of it (or it would have been fixed!) but there does seem to be an obvious clanger in ConfigureStill. Let me fix that and then we'll see how things are.

@dwrobel Could you retest this with the latest code please?

I updated to the following versions:

libcamera,
libcamera-apps

and libcamera-jpeg seems to get stuck as follows:
$  libcamera-jpeg -o test.jpg
Preview window unavailable
[0:01:20.210404229] [867]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+1-24db7f96
[0:01:20.310786412] [867]  INFO Camera camera.cpp:937 configuring streams: (0) 1640x1232-YUV420
[0:01:20.311015649] [879]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RG10 Score: 2218 (best 2218)
[0:01:20.311120444] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RG10 Score: 2041.48 (best 2041.48)
[0:01:20.311158314] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RG10 Score: 1500 (best 1500)
[0:01:20.311189943] [879]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RG10 Score: 5004.81 (best 1500)
[0:01:20.311222627] [879]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pRAA Score: 1718 (best 1500)
[0:01:20.311252386] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pRAA Score: 1541.48 (best 1500)
[0:01:20.311283034] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pRAA Score: 1000 (best 1000)
[0:01:20.311312700] [879]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pRAA Score: 4504.81 (best 1000)
[0:01:20.311350681] [879]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RGGB Score: 3218 (best 1000)
[0:01:20.311382051] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RGGB Score: 3041.48 (best 1000)
[0:01:20.311413736] [879]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RGGB Score: 2500 (best 1000)
[0:01:20.311444198] [879]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RGGB Score: 6004.81 (best 1000)
[0:01:20.311606677] [879]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 1640x1232-pRAA
[0:01:22.385439814] [879] ERROR IPCPipe ipc_pipe_unixsocket.cpp:132 Call timeout!
[0:01:22.385505924] [879] ERROR IPCPipe ipc_pipe_unixsocket.cpp:64 Failed to call sync
[0:01:22.385530349] [879] ERROR IPAProxy raspberrypi_ipa_proxy.cpp:234 Failed to call start

backtrace:
$ gdb --args  libcamera-jpeg -o test.jpg
GNU gdb (GDB) Fedora 10.2-3.fc34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "armv7hl-redhat-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from libcamera-jpeg...
Reading symbols from /usr/lib/debug/usr/bin/libcamera-jpeg-0.0.0-0.4.20210930git8b232ca.fc34.arm.debug...
(gdb) r
Starting program: /usr/bin/libcamera-jpeg -o test.jpg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb2386020 (LWP 1494)]
[New Thread 0xb1b85020 (LWP 1495)]
[New Thread 0xb1384020 (LWP 1496)]
Preview window unavailable
[0:04:56.343366707] [1491]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+1-24db7f96
[New Thread 0xb0b83020 (LWP 1497)]
[Detaching after fork from child process 1498]
[0:04:56.417113659] [1491]  INFO Camera camera.cpp:937 configuring streams: (0) 1640x1232-YUV420
[0:04:56.417261138] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RG10 Score: 2218 (best 2218)
[0:04:56.417332396] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RG10 Score: 2041.48 (best 2041.48)
[0:04:56.417367581] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RG10 Score: 1500 (best 1500)
[0:04:56.417400025] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RG10 Score: 5004.81 (best 1500)
[0:04:56.417433043] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt pRAA Score: 1718 (best 1500)
[0:04:56.417464932] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt pRAA Score: 1541.48 (best 1500)
[0:04:56.417497505] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt pRAA Score: 1000 (best 1000)
[0:04:56.417528486] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt pRAA Score: 4504.81 (best 1000)
[0:04:56.417563449] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 3280x2464 fmt RGGB Score: 3218 (best 1000)
[0:04:56.417594115] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1920x1080 fmt RGGB Score: 3041.48 (best 1000)
[0:04:56.417625911] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 1640x1232 fmt RGGB Score: 2500 (best 1000)
[0:04:56.417657447] [1497]  INFO RPI raspberrypi.cpp:122 Mode: 640x480 fmt RGGB Score: 6004.81 (best 1000)
[0:04:56.417801019] [1497]  INFO RPI raspberrypi.cpp:620 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected mode: 1640x1232-pRAA
[New Thread 0xaf643020 (LWP 1503)]
[0:04:58.517327622] [1497] ERROR IPCPipe ipc_pipe_unixsocket.cpp:132 Call timeout!
[0:04:58.517436528] [1497] ERROR IPCPipe ipc_pipe_unixsocket.cpp:64 Failed to call sync
[0:04:58.517498564] [1497] ERROR IPAProxy raspberrypi_ipa_proxy.cpp:234 Failed to call start
^C
Thread 1 "libcamera-jpeg" received signal SIGINT, Interrupt.
0xb6a47f88 in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0xbeffed00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=0, private@entry=-1090524344, cancel=cancel@entry=true)
    at ../sysdeps/nptl/futex-internal.c:74
74	    err = INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected,
Missing separate debuginfos, use: dnf debuginfo-install libicu-67.1-7.fc34.armv7hl
(gdb) t a a bt

Thread 6 (Thread 0xaf643020 (LWP 1503) "libcamera-jpeg"):
#0  0xb6a47f88 in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0xbeffef28, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=0, private@entry=-1352390404, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0xb6a48038 in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xbeffef28, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0xb6a40748 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xbeffeee8, cond=0xbeffef00) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0xbeffef00, mutex=0xbeffeee8) at pthread_cond_wait.c:619
#4  0xb6c8ec40 in __gthread_cond_wait (__mutex=<optimized out>, __cond=__cond@entry=0xbeffef00) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/armv7hl-redhat-linux-gnueabi/bits/gthr-default.h:865
#5  std::__condvar::wait (__m=..., this=this@entry=0xbeffef00) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/bits/std_mutex.h:155
#6  std::condition_variable::wait (this=this@entry=0xbeffef00, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#7  0xb6f9910c in std::condition_variable::wait<PostProcessor::outputThread()::<lambda()> > (__p=..., __lock=..., this=0xbeffef00) at /usr/include/c++/11/condition_variable:103
#8  PostProcessor::outputThread (this=0xbeffee70) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/core/post_processor.cpp:123
#9  0xb6c950e8 in std::execute_native_thread_routine (__p=0x4b34b0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:82
#10 0xb6a38c94 in start_thread (arg=0xaf643020) at pthread_create.c:481
#11 0xb6b3ec38 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 5 (Thread 0xb0b83020 (LWP 1497) "libcamera-jpeg"):
#0  0xb6b337c8 in __GI___ppoll64 (fds=0xb020b8c8, nfds=7, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:48
#1  0xb6b338c0 in __ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:88
#2  0xb69f5404 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:79
#3  libcamera::EventDispatcherPoll::poll (this=this@entry=0xb02026b8, pollfds=pollfds@entry=0xb0b82734) at ../src/libcamera/base/event_dispatcher_poll.cpp:223
#4  0xb69f5c54 in libcamera::EventDispatcherPoll::processEvents (this=0xb02026b8) at ../src/libcamera/base/event_dispatcher_poll.cpp:161
#5  0xb69feac0 in libcamera::Thread::exec (this=this@entry=0x4b2c98) at ../src/libcamera/base/thread.cpp:351
#6  0xb6e7d068 in libcamera::CameraManager::Private::run (this=0x4b2c90) at ../src/libcamera/camera_manager.cpp:120
#7  0xb6c950e8 in std::execute_native_thread_routine (__p=0x4b2ec8) at ../../../../../libstdc++-v3/src/c++11/thread.cc:82
#8  0xb6a38c94 in start_thread (arg=0xb0b83020) at pthread_create.c:481
#9  0xb6b3ec38 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 0xb1384020 (LWP 1496) "libcamera-jpeg"):
#0  0xb6a47f88 in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0xbeffee08, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=0, private@entry=-1090523828, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0xb6a48038 in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xbeffee08, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0xb6a40748 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xbeffed4c, cond=0xbeffede0) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0xbeffede0, mutex=0xbeffed4c) at pthread_cond_wait.c:619
#4  0xb6c8ec40 in __gthread_cond_wait (__mutex=<optimized out>, __cond=__cond@entry=0xbeffede0) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/armv7hl-redhat-linux-gnueabi/bits/gthr-default.h:865
#5  std::__condvar::wait (__m=..., this=this@entry=0xbeffede0) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/bits/std_mutex.h:155
#6  std::condition_variable::wait (this=this@entry=0xbeffede0, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#7  0xb6f7f410 in LibcameraApp::previewThread (this=<optimized out>) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/core/libcamera_app.cpp:711
#8  0xb6c950e8 in std::execute_native_thread_routine (__p=0x4b1e10) at ../../../../../libstdc++-v3/src/c++11/thread.cc:82
#9  0xb6a38c94 in start_thread (arg=0xb1384020) at pthread_create.c:481
#10 0xb6b3ec38 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0xb1b85020 (LWP 1495) "libcamera-jpeg"):
#0  syscall () at ../sysdeps/unix/sysv/linux/arm/syscall.S:37
#1  0xb65a905c in futex (val3=0, uaddr2=0x0, timeout=0x0, val=0, op=0, uaddr=<optimized out>) at /usr/include/urcu/futex.h:94
#2  futex_async (op=0, val=0, timeout=0x0, uaddr2=0x0, val3=0, uaddr=<optimized out>) at /usr/include/urcu/futex.h:99
#3  wait_for_sessiond (sock_info=<optimized out>) at lttng-ust-comm.c:1432
#4  ust_listener_thread (arg=0xb660a024 <local_apps>) at lttng-ust-comm.c:1494
#5  0xb6a38c94 in start_thread (arg=0xb1b85020) at pthread_create.c:481
#6  0xb6b3ec38 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0xb2386020 (LWP 1494) "libcamera-jpeg"):
#0  syscall () at ../sysdeps/unix/sysv/linux/arm/syscall.S:37
#1  0xb65a905c in futex (val3=0, uaddr2=0x0, timeout=0x0, val=0, op=0, uaddr=<optimized out>) at /usr/include/urcu/futex.h:94
#2  futex_async (op=0, val=0, timeout=0x0, uaddr2=0x0, val3=0, uaddr=<optimized out>) at /usr/include/urcu/futex.h:99
#3  wait_for_sessiond (sock_info=<optimized out>) at lttng-ust-comm.c:1432
#4  ust_listener_thread (arg=0xb660c068 <global_apps>) at lttng-ust-comm.c:1494
#5  0xb6a38c94 in start_thread (arg=0xb2386020) at pthread_create.c:481
#6  0xb6b3ec38 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0xb2389010 (LWP 1491) "libcamera-jpeg"):
#0  0xb6a47f88 in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0xbeffed00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=0, private@entry=-1090524344, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74
#1  0xb6a48038 in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xbeffed00, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ../sysdeps/nptl/futex-internal.c:123
#2  0xb6a40748 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xbeffecc0, cond=0xbeffecd8) at pthread_cond_wait.c:504
#3  __pthread_cond_wait (cond=0xbeffecd8, mutex=0xbeffecc0) at pthread_cond_wait.c:619
#4  0xb6c8ec40 in __gthread_cond_wait (__mutex=<optimized out>, __cond=__cond@entry=0xbeffecd8) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/armv7hl-redhat-linux-gnueabi/bits/gthr-default.h:865
#5  std::__condvar::wait (__m=..., this=this@entry=0xbeffecd8) at /usr/src/debug/gcc-11.2.1-1.fc34.arm/obj-armv7hl-redhat-linux-gnueabi/armv7hl-redhat-linux-gnueabi/libstdc++-v3/include/bits/std_mutex.h:155
#6  std::condition_variable::wait (this=this@entry=0xbeffecd8, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#7  0xb6f7b760 in std::condition_variable::wait<LibcameraApp::MessageQueue<LibcameraApp::Msg>::Wait()::{lambda()#1}>(std::unique_lock<std::mutex>&, LibcameraApp::MessageQueue<LibcameraApp::Msg>::Wait()::{lambda()#1}) (__p=..., __lock=..., this=0xbeffecd8) at /usr/include/c++/11/condition_variable:103
#8  LibcameraApp::MessageQueue<LibcameraApp::Msg>::Wait (this=0xbeffec98) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/core/libcamera_app.hpp:143
#9  LibcameraApp::Wait (this=0xbeffebc8) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/core/libcamera_app.cpp:438
#10 0x004078dc in event_loop (app=warning: can't find linker symbol for virtual table for `LibcameraJpegApp' value
warning:   found `libcamera::controls::Brightness' instead
...) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/apps/libcamera_jpeg.cpp:48
#11 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/libcamera-apps-0.0.0-0.4.20210930git8b232ca.fc34.arm/apps/libcamera_jpeg.cpp:103
(gdb)

P.S.: Building libcamera-apps produces quite a lot of warnings:
$ curl -s https://download.copr.fedorainfracloud.org/results/dwrobel/libcamera-apps/fedora-rawhide-armhfp/02869106-libcamera-apps/builder-live.log.gz | gzip -d | grep -e '/builddir.*warning:' | wc -l
46

Please consider to look at them and fix some of them e.g.:
frame_info.hpp:45:33: note: use reference type to prevent copying
   45 |                 for (auto const t : tokens)
      |                                 ^
      |                                 &

@dwrobel  Thanks for the extra info. Couple of things:

It turns out we thought we were compiling with warnings enabled but weren't. Oops. We'll fix that!

It seems to be trying to run the Raspberry Pi IPA through the IPC sandbox mechanism, which isn't the normal procedure. I guess there's a question as to why it would be trying to do this, and also why it wouldn't "just work" when it's fine without the IPC wrapper. @kbingham Can you help us with any suggestions about this?

Hard to know off the bat why it's running an isolated IPA - but if the modules are not signed, or the libraries aren't available to check the signatrues then  it will likely cause it to get isolated.
Check that the packages:
libgnutls28-dev openssl
are installed.
We should add that to the build summary to make it easy to spot if it gets disabled.
That said, things should function with an isolated IPA - but of course it probably hasn't been tested on the RPi.
I'm away on holiday for a week now, so I'm sorry in advance for any delay in further responses.

I've investigated this at fairly great length. It turns out that passing ControlLists across libcamera's pipeine handler / IPA interface is fussier when running in the "isolation" mode. This patch https://github.com/raspberrypi/libcamera-apps/pull/109 fixes the libcamera-apps end of the problem, but anything that does a camera mode switch will need a patch in libcamera itself too.

The necessary patch seems just to have gone into libcamera as well now, so I believe everything here should be good. Please let us know if it isn't otherwise I'll proceed to close this issue shortly.


use modelcluster to prep image id for json serialization

Thanks @thenewguy!
Could you give a little background as to what this is fixing?

Closing due to lack of info.


Update arrayToHtmlList function

Description

The existing method has an unnecessary closure and string concatenation with querySelector.
To update I have removed the closure and used getElementById instead of querySelector combined with concatenating '#' to the supplied id.
Working example: https://codepen.io/BrianDGLS/pen/MXyQoK
What does your PR belong to?

[ ] Website
[x] Snippets
[ ] General / Things regarding the repository (like CI Integration)
[ ] Tests

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (non-breaking improvement of a snippet)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have checked that the changes are working properly
[x] I have checked that there isn't any PR doing the same
[x] I have read the CONTRIBUTING document.

@BrianDGLS
why did you close your MR?
your solution looks clearer than current as for me

@ZAYEC77 while it's more readable(and we should update this to the getElementByID method), it makes a global variable(huge no-no), and causes constant draws and is MUCH slower due to multiple modifications to the innerHTML attribute, which causes re-render and since it do done synchronously and without an animation frame will cause massive slowdown on lists of any significant size.
This can however be boiled down into a much more similar and simpler meshing of the two:
const arrayToHtmlList = (arr, listID, format = ( item => `<li>${item}</li>`) ) =>
  document.getElementById(listID).innerHTML += arr.map(format).join('')

Of course there are still improvements that could be made here regarding performance probably... but this should only cause a single re-render.

@skatcat31 Thanks for the response.
What about solution like this:
const arrayToHtmlList = (arr, listID) => (
    document.getElementById(listID).innerHTML = arr.reduce((acc, item) => acc + `<li>${item}</li>`, ''))

or more readable variant:
const arrayToHtmlList = (arr, listID) => {
    const html = arr.reduce((acc, item) => acc + `<li>${item}</li>`, '')
    document.getElementById(listID).innerHTML = html
}

or join will be faster than concatenation at each iteration of reduce?

it's all flavor at this point. We should address it's form though. I'm going to migrate to a new issue about an update and whether we should change the footprint.


feat: add support for ServiceWorkers

Fixes #11

May I, at this point, say thank you for implementing this? Cheers :tada: :+1:

I'd love for this to get merged in so I can deprecate https://github.com/markdalgleish/serviceworker-loader.

This PR is pretty straight forward, but I think the more important part is #15. I don't know what useful things people would do with a service worker that don't include the list of assets from webpack that need to be cached. #15 introduces a magic __assets__ array.
#15 functions, but really needs some help before it's ready to merge. Any help would be greatly appreciated.

@markdalgleish Are you able to help get both of my PRs merged? #15 still needs some help. I've had these PRs open for 3 months now and you're the only webpack member I've seen a response from.

this loader works well for me so far. love it. thx @AsaAyers

@markdalgleish I see you're a webpack member now. Are you able to help with this and #15?

Is there some example to use this with SW? I don't think the way below is correct.
myServiceWorker = require('worker!./sw.js')

navigator.serviceWorker.register(myServiceWorker)

If you want a regular worker the code is:
myServiceWorker = require('worker!./sw.js')

new myServiceWorker()

On my branch you create a service worker using:
myServiceWorker = require('worker?service!./sw.js')

new myServiceWorker()

Duplicate of #32 ?

I'm making https://github.com/pulls more useful to me today by closing my old PRs.


Added target_include_directories() to export include directories

This closes #126

Thanks!

This doesn't work with CMake 2.6. target_include_directories was added in 2.8.12.
I suggest raising the minimum version to something modern past version 3 to get rid of some cruft in your build scripts.

Thanks - I updated the minimum CMake version to 2.8.12.


Orientdb seems to use only StandardAnalyzer in Lucene indexes

OrientDB Version: 2.2.17
Java Version: 1.8.0_121
OS: Linux 4.9.49-moby (Docker version 17.09.0-ce)
Expected behavior
I want to use a Lucene index for french text :
CREATE INDEX Item.title ON Item(title) FULLTEXT ENGINE LUCENE METADATA
  {
  "analyzer": "org.apache.lucene.analysis.fr.FrenchAnalyzer",
  "analyzer_stopwords": ["démo"]
  }

Expecting to query items with or without accents, except those containing 'démo'
Actual behavior
It is said this Analyzer should remove accents. Nevertheless
SELECT FROM Item WHERE [title] LUCENE 'demo'
returns nothing, wherreas
SELECT FROM Item WHERE [title] LUCENE 'démo'
returns a result
Moreover, 'démo' should be a stopword, but still can be found.
The FrenchAnalyzer is present into the orientdb lib :
$ jar tf lib/lucene-analyzers-common-5.3.2.jar | grep French
org/apache/lucene/analysis/fr/FrenchAnalyzer$DefaultSetHolder.class
org/apache/lucene/analysis/fr/FrenchAnalyzer.class
org/apache/lucene/analysis/fr/FrenchLightStemFilter.class
org/apache/lucene/analysis/fr/FrenchLightStemFilterFactory.class
org/apache/lucene/analysis/fr/FrenchLightStemmer.class
org/apache/lucene/analysis/fr/FrenchMinimalStemFilter.class
org/apache/lucene/analysis/fr/FrenchMinimalStemFilterFactory.class
org/apache/lucene/analysis/fr/FrenchMinimalStemmer.class

But I am not sure it is used, as I have the very same result using anything as analyzer name :
CREATE INDEX Item.title ON Item(title) FULLTEXT ENGINE LUCENE METADATA
  {
  "analyzer": "org.apache.lucene.analysis.DumbAnalyzer"
  }

gives the same result, without any error during the Index creation, even if no DumbAnalyzer is present... It looks like it always use the StandardAnalyzer.
Is it possible to be sure I use the FrenchAnalyzer, and to make it remove accents in queries, using stopwords ? Is there any mistake in my index setup ? (in this case, an error should be returned during index creation)

If it may help others, I've found a/the solution :
CREATE INDEX Item.content ON Item(content) FULLTEXT ENGINE LUCENE METADATA
          {
            "title_index": "org.apache.lucene.analysis.fr.FrenchAnalyzer",
            "title_query": "org.apache.lucene.analysis.fr.FrenchAnalyzer",
            "title_index_stopwords": ["démo"]
          }

Then, it works as waited.
In the documentation, it is said that this last formalism is 'possible' to use. I think it should be written 'required', as the 2.1.16 version seems to not work anymore in 2.2.17


Fix rgb to hsv color conversion.

Change the struct members to be floats to avoid truncating e.g v to 0. We
scale r,g,b by COLOR_SATURATION and this maps them to a [0.0, 1.0] range.
Setting the max of them to v, will most likely truncate this to 0.

Thanks!


ethereum/eth - migrated tests from Junit4 to Junit5

PR description
This PR removes junit4 dependency from ethereum/eth files
Split part 4 PR from https://github.com/hyperledger/besu/pull/5678
Fixed Issue(s)
https://github.com/hyperledger/besu/issues/5564

@macfarla merge conflicts resolved, kindly approve


Fail repository creation when its storage namespace is already used by another repository

lakeFS repositories must be created with a unique storage namespace. that is, two repositories cannot share the same storage namespaces.
Why
It is a prerequisite for some advanced lakeFS features such as Garbage collection.

What if 2 different lakeFS installations use the same storage namespace?

I think that it is reasonable to document a prerequisite that two distinct installations cannot use the same storage namespace, from a use case perspective I don't expect different installations to use the same storage namespace. The implementation however should allow to horizontally scale a single lakeFS installation. We can address both concerns by leaving a marker file on repository creation success and searching for it.

Not sure I understand the requirements here. The most simplified version of it would be:
User tries to create a example repo under scheme://path/to/storage/namespace/ storageNamespace.
If a single file exists under scheme://path/to/storage/namespace/_lakefs/, fail the operation.
Is the above enough? Maybe @ozkatz can share more details?

@itaiad200 creating a new repository doesn't place anything under the _lakefs/ prefix.
Actually, even writing to a repository doesn't create this prefix. It only gets created once a commit has been done.
If we decide to create the _lakefs/ prefix on repository creation, then yes, checking for its existence would probably be sufficient (even if there's a very small potential race condition here, I think the general case is covered and that should be enough).


Scoped routes broken in global navigation

All my routes are scoped by language like this:
MyApp::Application.routes.draw do
  scope '(:language)' do
    ActiveAdmin.routes(self)
  end
end

In my ApplicationsController.rb I have implemented the url_options method like this:
def url_options
  { :language => current_language }.merge(super)
end

The current language shows up fine in the action links (default_actions) but in the main menu the language is ignored causing my site to change language when navigating the menu.
Anyone else experiencing similar problems?

Seems that MenuItem.generate_url(named_scope) that use Rails.application.routes.url_helpers.send(named_route) doesn't consider url_options or route scopes.
I excluded it from render menu_item.
In method build_menu_item in tabbed_navigation.rb I changed
link_to item.name, item.url

in
link_to item.name, send(item.url)

and in menu_item.rb I changed method url in
def url
  @url
end

I think the best solution would be to call the 'send' in a MenuItem, but I do not know how to include the "url helpers" like this:
module ActiveAdmin
  class MenuItem
    include Module::With::Access::To::ActiveAdmin::UrlHelper

    def self.generate_url(named_route)
      send(named_route)
    end

Should be fixed on master by 3e7ac40a128747a8c2716c4239b6c06e2b7acfdb

Sounds great, thanks! I'll check it out as soon as I get back to the office.


replace hello-pepr.ts with a github of excellent examples and documentation.

Is your feature request related to a problem? Please describe.
hello-pepr is great, but it's better as a test framework and a stream of examples.
Describe the solution you'd like
we should discuss in deeper what this should be, but it needs a lot of work.

Thanks for the idea. External documentation like a GitHub repo is an excellent thought. We are planning an entire epic where we plan on addressing the underlying concerns to improve the project's documentation and examples.
Here is a link of the issues that we are planning on prioritizing after a few initial high priority items which includes a website where the idea is that it will be similar to Zarf's (in time).
However,hello-pepr.ts does need to be removed in order to show the user in order to provide excellent documentation and examples. It is a fundamental part of the current documentation/training process of Pepr and gets the user developing immediately after initializing an repo. External docs/examples and hello-pepr can all be able to coexist together.

I chatted with Jeff and the team around this and you are right, apologies for closing.

This repository we undergo a change where it will consist of folders of actual Pepr modules with e2e tests. It will be a continual WIP

mutate
filters


Nested sub charts values

Output of helm version:
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-28T15:20:58Z", GoVersion:"go1.11", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.5", GitCommit:"753b2dbc622f5cc417845f0ff8a77f539a4213ea", GitTreeState:"clean", BuildDate:"2018-11-26T14:31:35Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.): AWS (KOPS)
I have added a dependency to my charts as follows:
dependencies:
  - name: prometheus-operator
    version: 1.5.1
    repository: https://kubernetes-charts.storage.googleapis.com/
    condition: prometheus.enabled

prometheus-operator has its own dependencies (https://github.com/helm/charts/blob/master/stable/prometheus-operator/requirements.yaml), which I assume should be able to disable like this in my values.yaml:
prometheus-operator:
  nodeExporter:
    enabled: false

This does have some effect, that it is picked up in the prometheus-operator templates, but it does not disable the actual dependency. I need to add this to turn off the templates and disable the dependency:
nodeExporter:
  enabled: false
prometheus-operator:
  nodeExporter:
    enabled: false

Is this expected behaviour?

Why is this the expected behavior when it behaves differently than the rest of the values.yaml file?
Spent a couple of hours scratching my head as to why this configuration wasn't working:
istio:
  certmanager:
    enabled: true
    email<EMAIL_ADDRESS>    tag: v0.5.2
    hub: quay.io/jetstack

the expected way is to do:
certmanager:
  enabled: true # helm doesn't like nested

istio:
  certmanager:
    enabled: true # I have to keep this here because it might affect something else...
    email<EMAIL_ADDRESS>    tag: v0.5.2
    hub: quay.io/jetstack

I really like how the rest of the values.yaml just passes in an encapsulated set of values -- it makes your subchart configuration clean & isolated.  I wish there wasn't a one off for conditional dependencies.
It also requires implementers to either:

duplicate the value outside of the nesting (not DRY)
analyze the underlying subchart to see if the flag is used outside of the conditional requirement (asking for trouble!)

It also can create conflicts with other subcharts.
In my example, what if istio's built-in certmanager didn't have the configuration options I needed and I need to separately install certmanager by itself?  I would be clashing w/ certmanager's enabled flag.
I'd honestly think of this as a bug / workaround rather than a feature or expected behavior :/

I have the same issue.
Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
I created a demo chart to show the problem here: https://github.com/arolls/helm-dependency-enable-disable
The chart is for Kafka and Schema Registry, both of which require Zookeeper. There are shared requirements in both charts so we have to be able to enable/disable them as required. Here is a map of the requirements:

helm-dependency-enable-disable:
-- Kafka
--- Zookeeper
-- Schema Registry
---Kafka
----Zookeeper

I want to enable Zookeeper in the Kafka Chart and disable it in the Schema Registry chart so I have a values file as follows:
`kafka:
enabled: true
schema-registry:
enabled: true
kafka:
enabled: false`
The nested enabled: false flag in the Schema Registry chart is not being honoured which results in:
helm install --name azure --namespace azure . Error: release azure failed: poddisruptionbudgets.policy "azure-zookeeper" already exists

I'm going to close this ticket due to inactivity, but please re-open if this still needs to be addressed. Thanks!

@bacongobbler i still think this still should either to be addressed or a more valid reason for not implementing other than y’all haven’t got around to it :/

Agreed with @cmeyertons this is a problem Helm wide and is a problem for anyone trying to link together charts which have their own dependencies.

Any update on this?

nodeExporter:
  enabled: false
prometheus-operator:
  nodeExporter:
    enabled: false

Is this expected behaviour?

Yes, this is expected behaviour. Dependencies are not uniquely identified based on the chart's name. It is entirely possible to include a dependency twice, like when your application requires two MySQL databases.
This is working as intended.

But if you include a chart twice (e.g. A and B) and want to disable subchart for one but not the other one. How to do this ? :thinking:  if condition values are not scoped ?

I'm on helm 3.7.2.
argo-cd is my top level subchart which has a nested subchart of redis-ha. argo-cd has a condition of:
dependencies:
- condition: redis-ha.enabled
  name: redis-ha
  repository: https://dandydeveloper.github.io/charts/
  version: 4.12.17

I can't seem to be able able to disable via either...
redis-ha:
  enabled: false

argo-cd:
  redis-ha:
    enabled: false

Can someone help?

Can someone help?

You will have more support & answer by posting on StackOverflow, than in a random project issue.
Regarding comments here, first one is supposed to do the job. First post seems to say both are required. I don't have my workstation ATM but can easily check on a MVCE tomorrow.

I figured it out. I did not have a dependencies section in the top level chart. It didn't mention anything about the redis-ha grandchild chart, but once I added this it started working:
dependencies:
- condition: argo-cd.enabled
  name: argo-cd
  repository: https://argoproj.github.io/argo-helm
  version: 3.29.5


Add initial data layer library

Changes

Comments

#318  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @forstmeier and the rest of your teammates on  Graphite


Split package issue

As per The Java Module System (link), classes shouldn't be in the same package across two separate jars.
Azure authentication classes and the serialization libraries already conflict, the former in package com.microsoft.kiota.authentication and the later in com.microsoft.kiota.serialization.
I'd propose moving the classes in each of those modules to the respective module names (for example, the ones listed in https://github.com/microsoft/kiota-java/issues/1108#issuecomment-1976623974).

Hi @Sineaggi
Thanks for starting a discussion on this.
While I understand it shouldn't be done in theory, lots of projects do this.
For example, Open Telemetry has items in io.opentelemetry.semconv split across two jars opentelemetry-semconv, and opentelemetry-semconv-incubating.
Can you articulate further what issues does that cause, please?
Also if @andreaTP could join the conversation for this one, I'd appreciate it.

Thanks for getting me in the loop @baywet , honestly I'm not a java modules expert.
The best I can do is try to summon @aalmiray as he is usually of great help and knowledgeable about the subject.
🙏

This is know as "split packages" and they are indeed forbidden in the Java Module System.
A given package name can only be found inside an specific module.
Currently a JAR file contains a single module.
Therefore there can only be a given package name in a JAR file.
There are tools that can help you find packages split across JAR/module boundaries. I can recommend  https://github.com/kordamp/jarviz 😅😉

Thanks for chiming in @aalmiray !!!
@Sineaggi while I understand that modules would not load, which limits which platforms kiota java can be used with, changing this now would be a source breaking change, and mandate a major rev of the libraries here but also the generator itself.
We're unlikely to make that change soon on itself as we'll want to coordinate with other breaking changes and batch them.


Align order of Actions in Menu

The order of the actions in the menu are not always aligned. The decision was made in in issue #107 to move "Delete" to the bottom of the action menu.
DoD

When an action item menu is opened, delete appears at the bottom of the menu

editor mode -> tab

editor mode -> chart action menu

Layout -> Tab layout -> action menu

User Profile -> Home page drafts -> Actions menu

User Profile -> Homepage published charts -> Action Menu

Originally posted by @sosiology in #107

Is your enhancement related to a problem? Please describe.
A clear and concise description of what the problem with the current state is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Usecases and impact
Examples of how the enhancement would be beneficial and an estimation of how much impact it would have.
Additional context
Add any other context or screenshots about the feature request here.
If the enhancement concerns the editor, please provide a dataset, class of datasets.
If the enhancement concerns publication, please provide an example of where the chart is published.

Wonderful, thanks @bprusinowski for the fix.
Editor Mode - Chart actions ✅
Editor Mode - Tab actions ✅
Layout Options ✅
User Profile - Drafts ✅
User Profile - Published Visualizations ✅


Merge from pfnet/master #2

Marge latest source from original master branch

Sorry, this PR is made by mistaken...
I'd like to discard this.