Links: Project Rome (2021-01)

Monthly links cleanup.

Docs Build status updates of commit 0fbbc2c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

project-rome-docs/devicerelay/how-to-guide-for-android.md
:bulb:Suggestion

Details

project-rome-docs/devicerelay/how-to-guide-for-ios.md
:bulb:Suggestion

Details

project-rome-docs/includes/windows/notifications-app-registration-onboarding.md
:bulb:Suggestion

Details

project-rome-docs/index.md
:bulb:Suggestion

Details

project-rome-docs/devicerelay/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-microsoft-graph.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notifications-app-registration-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notifications-notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/preliminary-setup.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/preliminary-setupActivities.md
:white_check_mark:Succeeded

project-rome-docs/includes/auth-scopes.md
:white_check_mark:Succeeded

project-rome-docs/includes/ios/notifications-app-registration-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/ios/preliminary-setup.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-dev-center-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-platform-init.md
:white_check_mark:Succeeded

project-rome-docs/nearby-sharing/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/notifications/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/notifications/index.md
:white_check_mark:Succeeded

project-rome-docs/notifications/sending-notifications.md
:white_check_mark:Succeeded

project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceConnectionStatus.md
:white_check_mark:Succeeded

project-rome-docs/objectivec-api/userdata.useractivities/index.md
:white_check_mark:Succeeded

project-rome-docs/remote-sessions/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-android.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-ios.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-microsoft-graph.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/index.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-android.md

Line 3, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This guide will show how to discover remote devices and apps and then launch apps or interact with app services.' is duplicated in 'devicerelay/how-to-guide-for-android.md(3,14)', 'devicerelay/how-to-guide-for-ios.md(3,14)'. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/devicerelay/how-to-guide-for-ios.md

Line 3, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This guide will show how to discover remote devices and apps and then launch apps or interact with app services.' is duplicated in 'devicerelay/how-to-guide-for-android.md(3,14)', 'devicerelay/how-to-guide-for-ios.md(3,14)'. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/includes/windows/notifications-app-registration-onboarding.md

Line 18, Column 1: [Suggestion-duplicate-alt-text] Alt text 'Required Permissions – Devices'(notifications/how-to-guide-for-windows.md(23,1) -> includes/windows/notifications-app-registration-onboarding.md(18,1)) is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 20, Column 1: [Suggestion-duplicate-alt-text] Alt text 'Required Permissions – Devices'(notifications/how-to-guide-for-windows.md(23,1) -> includes/windows/notifications-app-registration-onboarding.md(20,1)) is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/index.md

Line 76, Column 107: [Suggestion-duplicate-alt-text] Alt text 'Nuget' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 79, Column 107: [Suggestion-duplicate-alt-text] Alt text 'Nuget' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 208: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 153: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 107: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 0fbbc2c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

project-rome-docs/devicerelay/how-to-guide-for-android.md
:bulb:Suggestion

Details

project-rome-docs/devicerelay/how-to-guide-for-ios.md
:bulb:Suggestion

Details

project-rome-docs/includes/windows/notifications-app-registration-onboarding.md
:bulb:Suggestion

Details

project-rome-docs/index.md
:bulb:Suggestion

Details

project-rome-docs/devicerelay/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-microsoft-graph.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notifications-app-registration-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/notifications-notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/preliminary-setup.md
:white_check_mark:Succeeded

project-rome-docs/includes/android/preliminary-setupActivities.md
:white_check_mark:Succeeded

project-rome-docs/includes/auth-scopes.md
:white_check_mark:Succeeded

project-rome-docs/includes/ios/notifications-app-registration-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/ios/preliminary-setup.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-dev-center-onboarding.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-notification-init.md
:white_check_mark:Succeeded

project-rome-docs/includes/windows/notifications-platform-init.md
:white_check_mark:Succeeded

project-rome-docs/nearby-sharing/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/notifications/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/notifications/index.md
:white_check_mark:Succeeded

project-rome-docs/notifications/sending-notifications.md
:white_check_mark:Succeeded

project-rome-docs/objectivec-api/remotesystems.commanding/MCDAppServiceConnectionStatus.md
:white_check_mark:Succeeded

project-rome-docs/objectivec-api/userdata.useractivities/index.md
:white_check_mark:Succeeded

project-rome-docs/remote-sessions/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/api-reference-for-android.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-android.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-ios.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-microsoft-graph.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/how-to-guide-for-windows.md
:white_check_mark:Succeeded

project-rome-docs/user-activities/index.md
:white_check_mark:Succeeded

project-rome-docs/devicerelay/how-to-guide-for-android.md

Line 3, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This guide will show how to discover remote devices and apps and then launch apps or interact with app services.' is duplicated in 'devicerelay/how-to-guide-for-android.md(3,14)', 'devicerelay/how-to-guide-for-ios.md(3,14)'. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/devicerelay/how-to-guide-for-ios.md

Line 3, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This guide will show how to discover remote devices and apps and then launch apps or interact with app services.' is duplicated in 'devicerelay/how-to-guide-for-android.md(3,14)', 'devicerelay/how-to-guide-for-ios.md(3,14)'. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/includes/windows/notifications-app-registration-onboarding.md

Line 18, Column 1: [Suggestion-duplicate-alt-text] Alt text 'Required Permissions – Devices'(notifications/how-to-guide-for-windows.md(23,1) -> includes/windows/notifications-app-registration-onboarding.md(18,1)) is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 20, Column 1: [Suggestion-duplicate-alt-text] Alt text 'Required Permissions – Devices'(notifications/how-to-guide-for-windows.md(23,1) -> includes/windows/notifications-app-registration-onboarding.md(20,1)) is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.

project-rome-docs/index.md

Line 76, Column 107: [Suggestion-duplicate-alt-text] Alt text 'Nuget' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 79, Column 107: [Suggestion-duplicate-alt-text] Alt text 'Nuget' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 208: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 153: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 80, Column 107: [Suggestion-duplicate-alt-text] Alt text 'REST' is duplicated. Within an article, alt text must be unique. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Separate Db configuration for each tenant

Hi,
I am trying for a multi-tenant solution of IdentityServer where I could use separate database configuration for each of my tenants, I am using StructureMap for this purpose. But I am having an exception, which is due to the fact that the time control reaches the app.UseIdentityServer() middleware the bindings aren't done yet (i guess) , therefore it causes the exception.  Below is my code... any suggesstions or workarounds will be appreciated.
Startup.cs
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMultitenancy<AppTenant, AppTenantResolver>();
            services.AddMvc();

            var container = new Container();
            container.Populate(services,true);

            container.Configure(c =>
            {

            });

            container.ConfigureTenants<AppTenant>((tenant,cfg) =>
            {
                var t = TenantDataSource.GetTenants().FirstOrDefault(x => x.Name == tenant.Name);
                if(t != null)
                {
                    services.AddIdentityServer()
                            .AddDeveloperSigningCredential()
                            .AddInMemoryIdentityResources(t.IdentityResources)
                            .AddInMemoryClients(t.Clients)
                            .AddInMemoryApiResources(t.ApiResources)
                            .AddInMemoryPersistedGrants()
                            .AddTestUsers(t.Users.ToList());

                    cfg.For<IMessageService>().Singleton().Use<MessageService>();
                }

            });

            return container.GetInstance<IServiceProvider>();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseMultitenancy<AppTenant>();
            app.UseTenantContainers<AppTenant>();
            app.UseIdentityServer();
            app.UseMvc();

        }
    }

Exception

I never used StructureMap - but IIRC there issues with it and IdentityServer.

is it possible to achieve this using the .Net built-in DI?

You might need to design your own approach to the multi-tenant scenario, and not try to solve it via the DI system.

All set on this issue -- can we close?

sure


The bounary select subcommand sets a Nomad token

The selectBoundaryCmd sets a NOMAD_TOKEN environment variable:
https://github.com/devops-rob/target-cli/blob/7a10f70ca7b6f6da387f82a00136414b66ff0ba4/cmd/select.go#L400-L405

FWIW, additionally, the logic could be simplified to:
 if context.Token != "" {
 	// TODO - Double check if this is needed
 	exportCommandStr = append(exportCommandStr, fmt.Sprintf("export BOUNDARY_TOKEN=%s", context.Token))
 }

Instead of using the (temporary) shellCommandToken variable, which is only ever used in that small section. This pattern is used several times in the various product subcommands, but could be simplified quite a bit, and avoid unnecessary string allocations.


[MM-18536] /jira subscribe list command

Summary
This PR adds functionality to list out subscriptions of all channels. It is only accessible to sys admins.
Ticket Link
https://mattermost.atlassian.net/browse/MM-18536
Example Output:
~some-channel-name (2):
* PROJ1 - Subscription X
* PROJ1 - Subscription Y

~some-other-channel-name (1):
* PROJ2 - Subscription Z

The channels name are converted to markdown, and so they are clickable links to the channel.

@mickmister a couple questions on this one...

Using list to pull up subscriptions on GMs and DMs shows the channel ID instead of the name. Will this be resolved with https://mattermost.atlassian.net/browse/MM-19639 or, do we need a separate code change as part of this PR?
For Subscriptions where the admin is not a channel member, the channel link ~subscribe-test is not clickable was this a deliberate design decision? Note, if we change this we would need special handling of DM and GM channels
Using list to pull up subscriptions on GMs and DMs the channel name is not hyperlinked. I'm assuming this is by design. Do we need a UX task to add fee

Using list to pull up subscriptions on GMs and DMs shows the channel ID instead of the name.

The problem is that the channel.Name for DMs and GMs are a hash instead of a readable name. I'm not sure how we combat this, other than not displaying subscriptions for DMs and GMs.

Will this be resolved with mattermost.atlassian.net/browse/MM-19639 or, do we need a separate code change as part of this PR?

The issue for that ticket is that channel.DisplayName should be used (which is blank for DMs and GMs) instead of channel.Name. You'll notice that if you make a channel subscription for a regular channel, that the shorthand channel name displays in the modal.
I'm thinking we should maybe avoid making channel subscriptions in DMs and GMs, though users may have already started doing this. Displaying a readable name seems to be the only hurdle at the moment, so it is probably best to allow subscribing to DMs and GMs. Do you have thoughts on this @aaronrothschild?

For Subscriptions where the admin is not a channel member, the channel link ~subscribe-test is not clickable was this a deliberate design decision?

I believe this is because of how the application processes the ~channel-name markdown. What do you think the behavior should be?
I think this may need some more design around the access control etc. Also something to think about is having subscriptions across different teams.

@mickmister  on 2. I was actually mistaken about something. This does work as I would expect. The behavior I'm seeing is the the channel link displays as a link when the channel is visible by the current user (regardless of if they're already a member) or, if the channel is private but they are a member. This is consistent with how channel links work when you post them so I see no issues there. It is limiting that admins can't use the link to join private channels shown but, that's not new.
I was confused earlier because the public channel link form a different team was not clickable. This is also consistent with the behavior when you post a link. But, I feel like we need some UX polish to avoid the confusion I had. Subscription list should show me the team that the channels belongs to. Possibly sort the list by team. Right now, there is no feedback of which team the channel is on which makes it confusing to look through and its is unclear why some public channels from other teams are listed and not clickable.
@aaronrothschild should I add a story to have subscribe list show team information?
Also please confirm we're okay to use the channel link functionality exactly as it exists today. Sysadmins will see all channel that contain subscription but, links to private channels they don't belong to will not be clickable and link to any channel on a different team will not be clickable.

0/5 - add this "as is" then file more help wanted tickets for presentation improvements?

I was confused earlier because the public channel link form a different team was not clickable. This is also consistent with the behavior when you post a link. But, I feel like we need some UX polish to avoid the confusion I had. Subscription list should show me the team that the channels belongs to. Possibly sort the list by team. Right now, there is no feedback of which team the channel is on which makes it confusing to look through and its is unclear why some public channels from other teams are listed and not clickable.

Can you share a screenhot?

@aaronrothschild should I add a story to have subscribe list show team information?

Ya, think that makes sense.

Also please confirm we're okay to use the channel link functionality exactly as it exists today. Sysadmins will see all channel that contain subscription but, links to private channels they don't belong to will not be clickable and link to any channel on a different team will not be clickable.

Yes, I think that's reasonable.  HOwever, to your point above - I do think we should consider adding a UI element (perhaps just text) that clarifies why it's not clickable.

@aaronrothschild here is a sample of what a subscription looks like now.

I can add a story for UI polish.

@aaronrothschild gentle reminder to re-review this


Lazy loaded modules conflict (Micro Frontend )

Bug report

What is the current behavior?
I have three angular (version 7 and above) applications let's say:

shell application
sub application (client A)
sub application (client  B)

In my senario i wanted to load this sub applicaiton (A&B) into (shell) application.
so i have bundled my sub applications (A&B) with webpack configuration.
(you can find my webpack configuration files below)
STEP 1: I have bundled sub applications (A) with webpack configuration. Now following are the bundle.js files generated after building my angular sub application(A)
main.bundle.js
1.main.bundle.js --> for lazyloaded modules (eg: angular login Module)
STEP 2: I have repeated same for sub application (B) also so it also produced following files
main.bundle.js
1.main.bundle.js --> for lazyloaded modules (eg: angular signup Module)
STEP 3: Now i have created a navbar with nav links for app1 & app2 in shell angular application and i am appending the main.bundle.js file of each sub application on demand.
As a result i am able to load both the sub applications into shell application successfully.
STEP 4: when it comes to serve the lazyload module form sub application (A) it is serving the content but fom sub application(B)   when i am loading lazyload module it't throwing following error as it referring already loaded 1.main.bundle.js of loginModule of sub application (A).
I could see this on network tab of chrome developer tool.
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined
Reason behind error:
when i am loading lazyload module (login Module) form sub application(A) in angular shell  application 1.main.bundle.js file loading and it is serving the purpose.
when i am loading azyload module (signup Module) form sub application (B) in angular shell  application it is also referring previous 1.main.bundle.js so as a name conflict it is throwing following error.
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined
Webpack config file for sub application A:
const AotPlugin = require('@ngtools/webpack').AngularCompilerPlugin;
const environment = 'http://localhost:4300/assets/';
const path = require('path');
const webpack = require('webpack');

const clientA = {
    entry: './src/main.ts',
    resolve: {
        mainFields: ['browser', 'module', 'main']
    },
    module: {
        rules: [
            { test: /\.ts$/, loaders: ['@ngtools/webpack'] },
            {
                test: /\.html$/,
                use: 'raw-loader'

            },
            {
                test: /\.js$/,
                loader: '@angular-devkit/build-optimizer/webpack-loader',
                options: {
                    sourceMap: true
                }
            }

        ]
    },
    plugins: [

        new AotPlugin({
            skipCodeGeneration: false,
            tsConfigPath: './tsconfig.app.json',
            hostReplacementPaths: {
                "./src/environments/environment.ts": "./src/environments/environment.prod.ts"
            },
            entryModule: path.resolve(__dirname, './src/app/app.module#AppModule')
        }),
        new webpack.DefinePlugin({
            ngDevMode: true,
            ngI18nClosureMode: false
        })

    ],
    output: {
        path: __dirname + '/src/assets',
        filename: 'main.bundle.js',
        publicPath: environment
    },
    mode: 'production'
};

module.exports = [clientA];

Webpack config file for sub application B:
const AotPlugin = require('@ngtools/webpack').AngularCompilerPlugin;
const environment = 'http://localhost:4300/assets/';
const path = require('path');
const webpack = require('webpack');

const clientB = {
    entry: './src/main.ts',
    resolve: {
        mainFields: ['browser', 'module', 'main']
    },
    module: {
        rules: [
            { test: /\.ts$/, loaders: ['@ngtools/webpack'] },
            {
                test: /\.html$/,
                use: 'raw-loader'

            },
            {
                test: /\.js$/,
                loader: '@angular-devkit/build-optimizer/webpack-loader',
                options: {
                    sourceMap: true
                }
            }

        ]
    },
    plugins: [

        new AotPlugin({
            skipCodeGeneration: false,
            tsConfigPath: './tsconfig.app.json',
            hostReplacementPaths: {
                "./src/environments/environment.ts": "./src/environments/environment.prod.ts"
            },
            entryModule: path.resolve(__dirname, './src/app/app.module#AppModule')
        }),
        new webpack.DefinePlugin({
            ngDevMode: true,
            ngI18nClosureMode: false
        })

    ],
    output: {
        path: __dirname + '/src/assets',
        filename: 'main.bundle.js',
        publicPath: environment
    },
    mode: 'production'
};

module.exports = [clientB];

If the current behavior is a bug, please provide the steps to reproduce.
try to load webpack lazyload bundle js files of same naming convention

What is the expected behavior?

Other relevant information:
webpack version:  3.3.10
Node.js version: 12.13.0
Operating System: windows 10
Additional tools: none

Any Help to fix this i am struggling from last one week to resolve.
Thanks in Advance.

Have you tried changing the names of the chunks?

@montogeek No i have not tried. In fact i don't know how to do that as i am new to webpack.
It will be helpful if you guide me. I will try with it.

Try to use a unique output.jsonpFunction for each application.

Thank you! @sokra
I have mentioned output.jsonpFunction in my webpack.config.js this solved my problem.

Want to ask a question, is your micro front terminal application independently deployed? How to load sub applications? If not, how to ensure that components can be referenced asynchronously in a sub application


Under WebLogic <IP_ADDRESS> does not find annotated classes in ear.

Message: Could not find a ClassLoaderHandler that can handle weblogic.utils.classloaders.GenericClassLoader@f98af41 finder: weblogic.utils.classloaders.CodeGenClassFinder@2cadac89 annotation: xxx-ear@ -- please report this at https://github.com/lukehutch/fast-classpath-scanner/issues

Hi @yohannes911 ,
Thanks for the report. It look likes there are several additional classloaders that may need to be supported:

weblogic.utils.classloaders.GenericClassLoader
weblogic.utils.classloaders.FilteringClassLoader
weblogic.utils.classloaders.ChangeAwareClassLoader
weblogic.servlet.jsp.JspClassLoader
weblogic.servlet.jsp.TagFileClassLoader

Unfortunately these are closed-source, and I don't know anything about WebLogic. Do you have the time and ability to step through the fields of at least GenericClassLoader to find out which fields or methods need to be introspected to find the URLs or files containing the EAR / WAR? You can follow the patterns here:
https://github.com/lukehutch/fast-classpath-scanner/tree/master/src/main/java/io/github/lukehutch/fastclasspathscanner/classloaderhandler
Based on the fact that ChangeAwareClassLoader only requires a call to getClassPath(), I'll take a leap of faith and guess that GenericClassLoader and FilteringClassLoader have the same API call -- see the change below. Please test that change, at least, and let me know if that solves the problem.
If it doesn't solve the problem, and you are not able to step through the fields of GenericClassLoader in a debugger to figure out what reflection calls are needed, can you please provide a small test project that illustrates the problem? Thank you!

@lukehutch with your last modification I got an error:
Could not canonicalize path: ...
ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ java.io.IOException: File name too long ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.io.UnixFileSystem.canonicalize0(Native Method) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:172) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.io.File.getCanonicalPath(File.java:618) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.io.File.getCanonicalFile(File.java:643) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.scanner.RelativePath.getFile(RelativePath.java:239) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.scanner.RelativePath.exists(RelativePath.java:299) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.scanner.RelativePath.isValidClasspathElement(RelativePath.java:322) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.scanner.Scanner$1.processWorkUnit(Scanner.java:236) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.scanner.Scanner$1.processWorkUnit(Scanner.java:225) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.utils.WorkQueue.runWorkLoop(WorkQueue.java:182) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.utils.WorkQueue$1.call(WorkQueue.java:147) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at io.github.lukehutch.fastclasspathscanner.utils.WorkQueue$1.call(WorkQueue.java:144) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ws-server1    | 2017-11-11T09:44:07.124+0000	FastClasspathScanner	------ 	at java.lang.Thread.run(Thread.java:748)
I will try to write a new handler for GenericClassLoader...

@yohannes911 Great, if you see the list of jars, that means that at least one of the additional WebSphere classloaders does support the same getClassPath() method call as the ClassLoader that was originally supported.
I just pushed a change that will add the path to the exception message, so we can see what path is giving the "too long" message. Can you please try again with the latest master version? It is possible that the path is not being correctly split at the path separator character or something.

@lukehutch please take a look to this code snippet, this worked for me. I will check your code about 15-20 min.
`
public class WeblogicClassLoaderHandler implements ClassLoaderHandler {
private static final String GENERIC_CLASS_LOADER = "weblogic.utils.classloaders.GenericClassLoader";
public static final String[] HANDLED_CLASSLOADERS = { //
"weblogic.utils.classloaders.ChangeAwareClassLoader", //
GENERIC_CLASS_LOADER, //
"weblogic.utils.classloaders.FilteringClassLoader", //
};
@Override
public DelegationOrder getDelegationOrder(final ClassLoader classLoaderInstance) {
    return DelegationOrder.PARENT_FIRST;
}

@Override
public void handle(final ClassLoader classLoader, final ClasspathFinder classpathFinder,
        final ScanSpec scanSpec, final LogNode log) throws Exception {
    if (GENERIC_CLASS_LOADER.equals(classLoader.getClass().getName())) {
        final String classpath = (String) ReflectionUtils.invokeMethod(classLoader, "getFinderClassPath");
        if (classpath != null) {
            for (StringTokenizer st = new StringTokenizer(classpath, ":"); st.hasMoreTokens(); ) {
                classpathFinder.addClasspathElements(st.nextToken(), classLoader, log);
            }
        }
    } else {
        final String classpath = (String) ReflectionUtils.invokeMethod(classLoader, "getClassPath");
        if (classpath != null) {
            classpathFinder.addClasspathElements(classpath, classLoader, log);
        }
    }
}

}`

I've rolled back my q&d solution, pulled your last changes, and no annotated classes found from jars in my ear, but when I apply my previus changes to the WeblogicClassLoaderHandler class, a scanner finds my classes correctly again.

@yohannes911 Please try the latest master version. There was a bug in addClasspathElements(), it was adding the path as a single classpath URL, rather than splitting at the path separator. Your code that was tokenizing on ":" alerted me to this fact. With the change in fd70d19, I was able to eliminate the tokenizing code. Also, I modified the code to try calling getFinderPath() and then getPath() on all three ClassLoaders, since no harm is done if they don't support those methods (the ReflectionUtils.invokeMethod() call will return null, then classpathFinder.addClasspathElements() will ignore the null value).  I assume the latest version should still work for you.

It's working! Many thanks for You.

Until you release this I will use the SNAPSHOT version from the master. If I can help for you about stabilize a Weblogic classloadear "magic" just ask me, I will make a test as soon as possible! :)

@yohannes911 Thank you for the offer! Quite frequently I need an expert on a specific runtime environment, when there's a classloader issue to figure out, so I'll let you know if something like that comes up for WebLogic in the future. Much appreciated!

@yohannes911 One more thing -- the following two classloader types are not yet supported. Do you think they need to be supported? If so, could you please try to submit a PR for them?:

weblogic.servlet.jsp.JspClassLoader
weblogic.servlet.jsp.TagFileClassLoader

Thank you!

I think this two classloader used only in a web application (war) that has jsp and uses jsp tag libraries. I don't like this techniques but I will take a look in a small POC app for you in next few days.

@yohannes911 Thanks for offering to put together a POC for this. Any progress, by chance? If not, I will be unlikely to do this myself, so maybe I should close this bug report until somebody complains about missing support for the Weblogic JSP classloader?


Rename steps

As discussed on Slack, we could rename two of the steps:

skippreprocessing → variantcalling
preprocessing → mapping

The semantics should also be made a bit clearer: The --step gives the step at which the pipeline starts.

I think it's a great idea

But I think that if we do that we're breaking retro-compatibility, and need to move forward 1.2


Course discovery is not working properly

Description
LEARNER-6487
Add a description of your changes here.
Notes
How to test this PR

@saeedbashir Please check the test cases are failing.


Global Table regions

Does this module support creating replica table(s) in another region? How?

Looks like all we need to do is add support for the  replica attribute?


Build on Windows 8.1 with msysgit

More detailed documentation on how to build on windows 8.1 with msysgit. One issue I've found with this is that the package manager doesn't download packages right because of git not being on the path. I'll update as I figure it out.
If anyone knows how to specify the location of git binaries without having it on the path, please let me know.

I'm going through old PRs to see if they can be salvaged or should be closed. Is this something that should still be in the build instructions?

Do we want to support building with msysgit? It's quite a niche target and another thing to add to the test matrix.

:-1:

Thanks for the feedback, guys.
@damccull Thank you very much for contributing.


Remove all banned words from the AI's memory

this needs to happen at some point to avoid having to query the DB twice before sending an AI's word off to be played. Not super critical, just removes some query time and some error checking. Also this will stop the AI from swearing, so there is that.

Isn't engine in control of the AI's word dictionary?

@DKear The word list is from the DB, ultimately it comes back to you guys.  We need the foul language list.

Yeah, I was also under the impression Engine was on this issue, especially since everything with AI word validation is being done engine-side. If this issue is critical and needs to be done by database, you really should have communicated that to us and told us sooner.

Again, as stated, all we need is the bad word list.  Is it on the repo?

Also, are we to remove the 2 letter words as well? Those are not suppose to
be valid.
On Wed, Feb 28, 2018 at 10:30 AM Landon Patmore<EMAIL_ADDRESS>wrote:

Again, as stated, all we need is the bad word list. Is it on the repo?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/CSC480-18S/Red-Team/issues/92#issuecomment-369275669,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXXFKDGhi01Lz5FZpYA7jQK0h-paNKx-ks5tZXD4gaJpZM4SSxHq
.

--
Kenneth Pembleton
*SUNY Oswego, *
Class of 2018Human Computer Interaction MA
Information Science BA '16
Computer Science Minor '16
Cognitive Science Minor '16
Analytical-Woo-Communication-Input-Futuristic-ENFJ

I believe that is a usability call/Bastian call?

@landonp1203 The bad word list is on the repo, in the folder Database/BadWordDictionary/src/main/resources
The dictionaries read from text files so it should all be right there.

Thank you @DKear

@cking20 Look in the folder Database/BadWordDictionary/src/main/resources for the bad word list.


Display custom dev container in the configuration file list in local VS Code UI

Hi Team, I like to contribute a dev container definition by following this document: https://github.com/microsoft/vscode-dev-containers/blob/main/CONTRIBUTING.md#contributing-dev-container-definitions
This document clear teaches me how to create a dev container definition. But my question is how to make my own dev container visible in my local VS Code UI. I like to see my container in the container list if I execute "Dev Containers: Add Dev Container Configurate File" in VS Code, so that I can try the E2E UI flow before I really publish it. Any instruction?

The process of contributing templates and features has changed. You can now self-publish both rather than contributing to this repository.
Check out these two starter repositories to get going:

https://github.com/devcontainers/feature-starter
https://github.com/devcontainers/template-starter


No date field error when log entry has to many rows

Some of my logs contain stacktraces as long as 65 rows. When this happen in a logfile, log-viewer cannot correctly identify the next log entry. It returns a No date field, log cannot be merged error. When I remove the log entries in the log it returns to function correctly. I assume this is due to a maximum number of rows an entry is allowed to take. Maybe an option to add this as a config variable to set?
Example:
2022-01-19 14:41:44,459 DEBUG {  } http-nio-XXX-7070-exec-9 [XXX.DefaultTokenService]: Fout bij verifieren token.
java.security.SignatureException: token expired at X, now is 202X44.459Z
at net.oauth.jsontoken.JsonTokenParser.verifyAndDeserialize(JsonTokenParser.java:132) ~[jsontoken-1.0.jar!/:?]
..... 63 rows
2022-01-19 14:41:44,461 ERROR {  } X [XTokenRestController]: Foutcode: X
Thanks, and I like your tool!

There is no limit for rows in an entity. Should work fine.
could you attach a log file? I cannot reproduce.

The reason is probably due to line 2 not having a date.
2022-01-17 09:44:43,985 DEBUG {  } httX-7070-exec-3 [XDefaultTokenService]: Fout bij verifieren token.
java.security.SignatureException: token expired at 2022-01-15T03:18:49.000Z, now is 2022-01-17T08:44:43.985Z
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.43.jar!/:8.5.43]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_291]
2022-01-17 09:44:43,988 ERROR {  } htX70-exec-3 [XTokenRestController]: Foutcode: FOUT_BIJ_VERIFIEREN_TOKEN
Weird, because the following works:
2022-01-13 10:10:26,744 DEBUG {  } http-nio-X-exec-5 [XDefaultTokenService]: Fout bij verifieren token.
java.security.SignatureException: Signature verification failed for issuer: X
at net.oauth.jsontoken.JsonTokenParser.verifyAndDeserialize(JsonTokenParser.java:126) ~[jsontoken-1.0.jar!/:?]

The format detector ignores lines started with " at", so there are 2 lines with a date and one line without a date (java.security.SignatureException: token ...). The format detector decided that the format is correct if the recognized line number is more than not recognized lines * 2/3 .
You have to specify log format manually in "config.conf". Add lines like the following into logs=[ .. ] section:
  {
    path: ${HOME}"/my-app/logs/*.log"
    format: {
      type: LogbackLogFormat
      pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS} %level %m%n"
    }
  }

yes, logs=[ .. ] section is used for format detection and checking accessibility even you open a log using a shortcut in  log-paths = {}. When you are opening a shortcut, the system resolves the shortcut to the real file path, then searches for the path in logs=[ .. ]

I got it working up to a point but not yet how I want.
For example take the following log row:
2022-01-19 17:20:53,917 INFO  {  } main [org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer]: Tomcat started on port(s): 7070 (http)
It correctly detects the log with the following config:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}%m%n"
But not this:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS} %level %m%n"
The problem seems to be with the subseconds SSS, with auto format detector it does capture the subseconds but not with a manual pattern. My working filter results in the detection of the time and merging of the logs but not for the subseconds or loglevel(DEBUG, INFO, etc..). For your info, the pattern specified in log4j.xml for the logs, which does not work in log-viewer, is:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p {%X{username} %X{client} %X{location}} %t [%c]: %m%n"

I tried to open the provided line. 2022-01-19 17:20:53,917 INFO { } main [org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer]: Tomcat started on port(s): 7070 (http)
It was detected as %d{yyyy-MM-dd HH:mm:ss,SSS} %level %m%n and shown correctly.

pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p {%X{username} %X{client} %X{location}} %t [%c]: %m%n"

This pattern really doesn't work. There is a bug in parsing {%X{username} %X{client} %X{location}}. As a workaround, you can add commas between the fields: {%X{username},%X{client},%X{location}}

1.0.3 release contains a fix for parsing using %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p {%X{username} %X{client} %X{location}} %t [%c]: %m%n pattern

I will update my version and configuration and test the new release


Serial Transport on Ubuntu?

Can you please try pinging Pebble from Ubuntu directly via bluetooth serial connection? I'm having trouble with that. Much appreciated.

http://askubuntu.com/a/252235, except give /dev/rfcomm0 to libpebble2 instead of screen.

Thanks. I'll try that.

So that instruction works on Debian but not Ubuntu. Well, that was close enough I guess.


Crash when attempting to open some libraries

Explain the bug
I have noticed that attempting to navigate to the "saved pictures library" is causing a crash for me. This does not occur with any other library.
To reproduce

Open "saved pictures library"
Files crashes

Logfile
2021-04-27 09:20:04.9285|ERROR|.ctor|Collection was modified; enumeration operation may not execute.|System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare() + 0x50
   at System.Collections.Generic.List`1.Enumerator.MoveNext() + 0x4b
   at System.Collections.Generic.List`1.Enumerator.MoveNext() + 0x14
   at Files.UserControls.Widgets.LibraryCards.<ReloadLibraryItems>d__56.MoveNext() + 0x4f1
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__7_0(Object) + 0x1e
   at System.Action`1.Invoke(T) + 0x28
   at System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore() + 0x33
   at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32, RuntimeTypeHandle) + 0x21
   at __Interop.ComCallHelpers.Call(__ComObject, RuntimeTypeHandle, Int32) + 0xb8
   at __Interop.ForwardComStubs.Stub_19[TThis](__ComObject, Int32) + 0x24
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x3d
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelper.<.ctor>b__17_1(Object, UnhandledErrorDetectedEventArgs) + 0x75
   at System.EventHandler`1.Invoke(Object, TEventArgs) + 0x2e
   at __Interop.Intrinsics.HasThisCall__24[TArg0](Object, IntPtr, Object, TArg0) + 0x36
   at Files!<BaseAddress>+0x16715b0

Screenshots
https://user-images.githubusercontent.com/59544401/116277318-3390c700-a73a-11eb-866f-04acd47b9b25.mp4
System Information

OS Version: 19043.962
App version: <IP_ADDRESS>

Additional comment
The library does disappear from the sidebar before the crash, that may explain the "Collection was modified" error. However, the "Videos" library also disappears when navigating to it, but does not crash.

I also have this problem.

Hey, if you see this, the issue was fixed when I reset the app from Windows 10 settings. Hope this helps.

This problem is only fixed the first time you use it after resetting. The next time you open Files, the program crashes when opening a folder with a large number of items.

@winston-de is this still an issue in v2.0.34?

No, seems to be resolved


[Core] Consider removing reflection code from HttpPipelineSynchronousPolicy

Library name
Azure.Core
Please describe the feature.
The following code in the constructor of HttpPipelineSynchronousPolicy is incorrect:
var onReceivedResponseMethod = GetType().GetMethod(nameof(OnReceivedResponse), BindingFlags.Instance | BindingFlags.Public, null, _onReceivedResponseParameters, null);
            if (onReceivedResponseMethod != null)
            {
                _hasOnReceivedResponse = onReceivedResponseMethod.GetBaseDefinition().DeclaringType != onReceivedResponseMethod.DeclaringType;
            }

It was added initially in the following PR: https://github.com/Azure/azure-sdk-for-net/pull/18197
Please see the discussion here for more context: https://github.com/Azure/azure-sdk-for-net/pull/37734#discussion_r1283609354
Full performance analysis will need to be done before reverting this change. If no noticeable performance regression is recorded, then strongly consider reverting this change and removing the DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)] ] attribute.

I did a performance analysis on this code using our performance benchmarks and decided that the negative performance impacts weren't worth making this change. The performance impacts were not significant but were consistent across runs.

Benchmark 0
// * Summary *
BenchmarkDotNet=v0.13.4, OS=Windows 11 (10.0.22621.2861)
Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores
.NET SDK=7.0.404
[Host]     : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Job-HUNTYF : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Job-LZLJGH : .NET Core 3.1.32 (CoreCLR 4.700.22.55902, CoreFX 4.700.22.56512), X64 RyuJIT AVX2
Job-LYSFCK : .NET Framework 4.8.1 (4.8.9181.0), X64 RyuJIT VectorSize=256
IterationTime=250.0000 ms  MaxIterationCount=20  MinIterationCount=15
WarmupCount=1

Method
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen0
Allocated
Alloc Ratio

DeserializeWithObject
.NET 6.0
850.9 ns
86.22 ns
95.84 ns
0.79
0.14
0.0216
768 B
1.02

DeserializeWithObject
.NET Core 3.1
1,100.5 ns
125.41 ns
144.42 ns
1.00
0.00
0.0169
752 B
1.00

DeserializeWithObject
.NET Framework 4.6.2
1,826.0 ns
171.66 ns
183.67 ns
1.70
0.18
0.1826
786 B
1.05

DeserializeWithObjectAndAccess
.NET 6.0
714.5 ns
40.82 ns
45.37 ns
0.69
0.08
0.0219
768 B
1.02

DeserializeWithObjectAndAccess
.NET Core 3.1
1,053.7 ns
84.80 ns
97.66 ns
1.00
0.00
0.0165
752 B
1.00

DeserializeWithObjectAndAccess
.NET Framework 4.6.2
1,755.8 ns
147.24 ns
169.57 ns
1.68
0.21
0.1871
786 B
1.05

SerializeWithObject
.NET 6.0
743.3 ns
48.69 ns
56.07 ns
0.66
0.08
0.0258
888 B
0.99

SerializeWithObject
.NET Core 3.1
1,131.1 ns
118.34 ns
136.28 ns
1.00
0.00
0.0228
896 B
1.00

SerializeWithObject
.NET Framework 4.6.2
1,940.2 ns
206.12 ns
237.37 ns
1.74
0.28
0.2121
931 B
1.04

DeserializeWithBinaryData
.NET 6.0
293.0 ns
16.72 ns
17.89 ns
0.85
0.08
0.0114
416 B
1.11

DeserializeWithBinaryData
.NET Core 3.1
350.3 ns
22.09 ns
24.56 ns
1.00
0.00
0.0091
376 B
1.00

DeserializeWithBinaryData
.NET Framework 4.6.2
847.4 ns
100.08 ns
111.24 ns
2.43
0.31
0.0868
377 B
1.00

DeserializeWithBinaryDataAndAccess
.NET 6.0
2,026.5 ns
230.87 ns
265.87 ns
0.76
0.10
0.0425
1464 B
0.98

DeserializeWithBinaryDataAndAccess
.NET Core 3.1
2,693.9 ns
100.87 ns
107.94 ns
1.00
0.00
0.0370
1496 B
1.00

DeserializeWithBinaryDataAndAccess
.NET Framework 4.6.2
4,857.7 ns
335.95 ns
386.88 ns
1.82
0.14
0.3577
1533 B
1.02

SerializeWithBinaryData
.NET 6.0
592.9 ns
42.06 ns
48.44 ns
0.29
0.03
0.0226
776 B
0.55

SerializeWithBinaryData
.NET Core 3.1
2,033.4 ns
105.98 ns
122.04 ns
1.00
0.00
0.0332
1400 B
1.00

SerializeWithBinaryData
.NET Framework 4.6.2
3,566.1 ns
157.84 ns
168.89 ns
1.76
0.16
0.3368
1436 B
1.03

// * Warnings *
MultimodalDistribution
DynamicObjectBenchmark.DeserializeWithObject: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1               -> It seems that the distribution can have several modes (mValue = 2.89)
DynamicObjectBenchmark.DeserializeWithObject: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1          -> It seems that the distribution can have several modes (mValue = 3)
DynamicObjectBenchmark.DeserializeWithObjectAndAccess: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> It seems that the distribution can have several modes (mValue = 3.11)
DynamicObjectBenchmark.DeserializeWithBinaryData: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> It seems that the distribution is bimodal (mValue = 3.75)
DynamicObjectBenchmark.SerializeWithBinaryData: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1             -> It seems that the distribution can have several modes (mValue = 3.2)
DynamicObjectBenchmark.SerializeWithBinaryData: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1        -> It seems that the distribution is bimodal (mValue = 3.33)
// * Hints *
Outliers
DynamicObjectBenchmark.DeserializeWithObject: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1                   -> 1 outlier  was  removed (1.12 us)
DynamicObjectBenchmark.DeserializeWithObject: Runtime=.NET Framework 4.6.2, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1       -> 2 outliers were removed (2.46 us, 2.51 us)
DynamicObjectBenchmark.DeserializeWithObjectAndAccess: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1          -> 1 outlier  was  removed (890.07 ns)
DynamicObjectBenchmark.DeserializeWithBinaryData: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1               -> 2 outliers were removed (345.25 ns, 349.98 ns)
DynamicObjectBenchmark.DeserializeWithBinaryData: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1          -> 1 outlier  was  removed (466.47 ns)
DynamicObjectBenchmark.DeserializeWithBinaryData: Runtime=.NET Framework 4.6.2, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1   -> 1 outlier  was  removed (1.21 us)
DynamicObjectBenchmark.DeserializeWithBinaryDataAndAccess: Runtime=.NET Core 3.1, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> 2 outliers were removed (3.39 us, 3.44 us)
DynamicObjectBenchmark.SerializeWithBinaryData: Runtime=.NET Framework 4.6.2, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1     -> 2 outliers were removed (4.18 us, 4.33 us)
// * Legends *
Mean        : Arithmetic mean of all measurements
Error       : Half of 99.9% confidence interval
StdDev      : Standard deviation of all measurements
Ratio       : Mean of the ratio distribution ([Current]/[Baseline])
RatioSD     : Standard deviation of the ratio distribution ([Current]/[Baseline])
Gen0        : GC Generation 0 collects per 1000 operations
Allocated   : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
1 ns        : 1 Nanosecond (0.000000001 sec)
// * Diagnostic Output - MemoryDiagnoser *
// ***** BenchmarkRunner: End *****
Global total time: 00:04:06 (246.45 sec), executed benchmarks: 18
Download Test benchmark
PS C:\Users\mredding\source\repos\azure-sdk-for-net\sdk\core\Azure.Core\perf> dotnet run -c Release -f net6.0 --no-build Download
=== Environment ===
GCSettings.IsServerGC: True
Environment.ProcessorCount: 8
Environment.Is64BitProcess: True
ThreadPool.MinWorkerThreads: 8
ThreadPool.MinCompletionPortThreads: 8
ThreadPool.MaxWorkerThreads: 32767
ThreadPool.MaxCompletionPortThreads: 1000
=== Setup ===
..
=== Post Setup ===
.
=== Warmup ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
4,172             4,172         4,109.78     4.94%        76.92M           92.61M
5,802             9,974         4,875.33     5.32%        84.33M           99.27M
7,029            17,003         5,554.33     3.85%        89.67M          104.57M
6,996            23,999         5,884.29     4.03%        90.78M          105.72M
6,459            30,458         6,105.27     5.05%        91.81M          106.89M
=== Results ===
Completed 30,458 operations in a weighted-average of 4.989s (6,105 ops/s, 0.0001638 s/op, 4.6% CPU)
=== Test ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
6,723             6,723         6,628.45     4.81%        93.06M          108.14M
5,680            12,403         6,118.52     6.17%        93.69M          108.78M
5,805            18,208         5,984.20     3.65%        93.69M          108.78M
5,322            23,530         5,781.33     4.75%        93.74M          108.84M
6,231            29,761         5,837.56     3.61%        93.79M          108.86M
6,316            36,077         5,889.13     4.37%        88.19M          103.58M
5,281            41,358         5,792.81     4.62%        88.52M          103.95M
4,229            45,587         5,578.94     4.92%        88.52M          104.02M
6,266            51,853         5,645.67     4.63%        88.52M          104.02M
4,975            56,828         5,676.83     3.25%        88.06M          104.38M
=== Results ===
Completed 56,828 operations in a weighted-average of 10.01s (5,677 ops/s, 0.0001762 s/op, 4.5% CPU)
Download Http Client Test benchmark
=== Environment ===
GCSettings.IsServerGC: True
Environment.ProcessorCount: 8
Environment.Is64BitProcess: True
ThreadPool.MinWorkerThreads: 8
ThreadPool.MinCompletionPortThreads: 8
ThreadPool.MaxWorkerThreads: 32767
ThreadPool.MaxCompletionPortThreads: 1000
=== Setup ===
.
=== Post Setup ===
.
=== Warmup ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
4,148             4,148         4,078.20     4.93%        63.69M           79.33M
6,004            10,152         4,959.53     6.09%        82.25M           97.22M
6,822            16,974         5,538.68     7.10%        87.01M          101.61M
6,997            23,971         5,856.09     5.13%        87.60M          102.22M
5,722            29,693         5,942.76     4.88%        87.84M          102.50M
=== Results ===
Completed 29,693 operations in a weighted-average of 4.997s (5,943 ops/s, 0.0001683 s/op, 5.6% CPU)
=== Test ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
6,596             6,596         6,577.32     7.20%        82.98M           98.00M
7,282            13,878         6,878.20     4.04%        84.69M           99.71M
6,727            20,605         6,800.10     5.79%        84.69M           99.72M
6,052            26,657         6,592.78     3.28%        85.62M          100.66M
6,531            33,188         6,562.73     3.28%        86.01M          101.41M
6,708            39,896         6,557.63     4.37%        86.35M          101.49M
6,461            46,357         6,530.62     5.20%        86.36M          101.49M
5,703            52,060         6,419.01     5.01%        86.36M          101.49M
6,185            58,245         6,373.05     4.94%        86.42M          101.57M
5,168            63,413         6,332.90     7.45%        86.52M          101.67M
=== Results ===
Completed 63,413 operations in a weighted-average of 10.01s (6,333 ops/s, 0.0001579 s/op, 5.0% CPU)
Download Http Client test after changes:
=== Warmup ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
3,510             3,510         3,437.89     4.52%        62.65M           77.86M
5,868             9,378         4,584.93     6.88%        78.74M           93.02M
6,947            16,325         5,338.98     4.44%        80.73M           95.01M
7,009            23,334         5,730.38     2.70%        88.30M          102.60M
6,243            29,577         5,902.13     4.36%        88.81M          103.11M
=== Results ===
Completed 29,577 operations in a weighted-average of 5.011s (5,902 ops/s, 0.0001694 s/op, 4.6% CPU)
=== Test ===
Current             Total          Average       CPU    WorkingSet    PrivateMemory
6,256             6,256         6,255.39     3.51%        86.77M          101.56M
6,379            12,635         6,241.25     4.00%        86.79M          101.57M
7,003            19,638         6,438.37     2.86%        86.83M          101.67M
6,682            26,320         6,474.66     3.66%        87.04M          101.86M
6,655            32,975         6,486.97     4.41%        86.11M          101.40M
6,605            39,580         6,475.84     4.56%        86.70M          101.96M
5,843            45,423         6,374.50     5.20%        86.71M          101.99M
6,435            51,858         6,370.45     3.85%        86.48M          100.74M
6,604            58,462         6,378.27     4.38%        86.51M          100.77M
5,526            63,988         6,395.39     3.02%        86.57M          100.81M
=== Results ===
Completed 63,988 operations in a weighted-average of 10.01s (6,395 ops/s, 0.0001564 s/op, 4.0% CPU)
Benchmark 4
// * Summary *
BenchmarkDotNet=v0.13.4, OS=Windows 11 (10.0.22621.2861)
Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores
.NET SDK=7.0.404
[Host]     : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Job-MEVJSK : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Runtime=.NET 6.0  IterationTime=250.0000 ms  MaxIterationCount=20
MinIterationCount=15  WarmupCount=1

Method
Categories
count
Mean
Error
StdDev
Ratio
RatioSD
Gen0
Allocated
Alloc Ratio

CreateHttpRequestMessage_HttpRequestHeader
CreateHttpRequestMessage
2
623.0 ns
47.96 ns
53.31 ns
1.00
0.00
0.0145
496 B
1.00

CreateHttpRequestMessage_ArrayBackedHeader
CreateHttpRequestMessage
2
452.3 ns
12.04 ns
13.38 ns
0.73
0.05
0.0137
496 B
1.00

CreateHttpRequestMessage_HttpRequestHeader
CreateHttpRequestMessage
3
688.0 ns
13.53 ns
13.29 ns
1.00
0.00
0.0131
496 B
1.00

CreateHttpRequestMessage_ArrayBackedHeader
CreateHttpRequestMessage
3
543.5 ns
25.40 ns
29.25 ns
0.79
0.04
0.0210
776 B
1.56

CreateHttpRequestMessage_HttpRequestHeader
CreateHttpRequestMessage
8
1,216.0 ns
29.27 ns
33.70 ns
1.00
0.00
0.0286
1104 B
1.00

CreateHttpRequestMessage_ArrayBackedHeader
CreateHttpRequestMessage
8
1,064.8 ns
35.73 ns
39.71 ns
0.88
0.04
0.0368
1384 B
1.25

CreateHttpRequestMessage_HttpRequestHeader
CreateHttpRequestMessage
16
2,369.5 ns
156.74 ns
174.22 ns
1.00
0.00
0.0797
2736 B
1.00

CreateHttpRequestMessage_ArrayBackedHeader
CreateHttpRequestMessage
16
2,141.9 ns
37.51 ns
29.28 ns
0.91
0.06
0.0840
3016 B
1.10

CreateHttpRequestMessage_HttpRequestHeader
CreateHttpRequestMessage
32
3,868.4 ns
126.13 ns
145.25 ns
1.00
0.00
0.1170
4120 B
1.00

CreateHttpRequestMessage_ArrayBackedHeader
CreateHttpRequestMessage
32
4,849.4 ns
131.22 ns
151.11 ns
1.26
0.06
0.1305
4656 B
1.13

CreateHttpRequestMessageTwice_HttpRequestHeader
CreateHttpRequestMessageTwice
2
1,258.4 ns
31.90 ns
36.74 ns
1.00
0.00
0.0345
1256 B
1.00

CreateHttpRequestMessageTwice_ArrayBackedHeader
CreateHttpRequestMessageTwice
2
835.3 ns
22.82 ns
23.43 ns
0.66
0.03
0.0302
1032 B
0.82

CreateHttpRequestMessageTwice_HttpRequestHeader
CreateHttpRequestMessageTwice
3
2,026.0 ns
237.86 ns
273.92 ns
1.00
0.00
0.0370
1336 B
1.00

CreateHttpRequestMessageTwice_ArrayBackedHeader
CreateHttpRequestMessageTwice
3
1,473.5 ns
251.80 ns
289.97 ns
0.74
0.17
0.0360
1312 B
0.98

CreateHttpRequestMessageTwice_HttpRequestHeader
CreateHttpRequestMessageTwice
8
2,816.2 ns
53.68 ns
55.12 ns
1.00
0.00
0.0778
2888 B
1.00

CreateHttpRequestMessageTwice_ArrayBackedHeader
CreateHttpRequestMessageTwice
8
2,034.7 ns
66.24 ns
76.29 ns
0.72
0.03
0.0733
2528 B
0.88

CreateHttpRequestMessageTwice_HttpRequestHeader
CreateHttpRequestMessageTwice
16
5,672.0 ns
310.20 ns
331.91 ns
1.00
0.00
0.1824
6792 B
1.00

CreateHttpRequestMessageTwice_ArrayBackedHeader
CreateHttpRequestMessageTwice
16
4,068.9 ns
133.98 ns
154.29 ns
0.72
0.05
0.1578
5792 B
0.85

CreateHttpRequestMessageTwice_HttpRequestHeader
CreateHttpRequestMessageTwice
32
10,407.2 ns
1,170.73 ns
1,348.21 ns
1.00
0.00
0.3139
10840 B
1.00

CreateHttpRequestMessageTwice_ArrayBackedHeader
CreateHttpRequestMessageTwice
32
7,879.8 ns
270.92 ns
311.99 ns
0.77
0.10
0.2402
8816 B
0.81

MultipleReads_HttpRequestHeader
MultipleReads
8
2,917.8 ns
63.85 ns
65.57 ns
1.00
0.00
0.0714
2472 B
1.00

MultipleReads_ArrayBackedHeader
MultipleReads
8
1,324.2 ns
74.41 ns
85.69 ns
0.45
0.03
0.0416
1472 B
0.60

MultipleReads_HttpRequestHeader
MultipleReads
16
5,541.1 ns
100.81 ns
94.30 ns
1.00
0.00
0.1554
5448 B
1.00

MultipleReads_ArrayBackedHeader
MultipleReads
16
2,896.1 ns
67.94 ns
75.52 ns
0.52
0.02
0.0901
3168 B
0.58

MultipleReads_HttpRequestHeader
MultipleReads
32
10,511.7 ns
272.66 ns
314.00 ns
1.00
0.00
0.2773
9520 B
1.00

MultipleReads_ArrayBackedHeader
MultipleReads
32
7,036.1 ns
152.56 ns
175.69 ns
0.67
0.02
0.1439
4937 B
0.52

// * Warnings *
MultimodalDistribution
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> It seems that the distribution is bimodal (mValue = 3.78)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessageTwice_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> It seems that the distribution is bimodal (mValue = 3.45)
// * Hints *
Outliers
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> 1 outlier  was  removed (822.00 ns)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> 1 outlier  was  removed (493.86 ns)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> 1 outlier  was  removed (1.27 us)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> 1 outlier  was  removed (3.05 us)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessage_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1      -> 3 outliers were removed, 6 outliers were detected (2.08 us..2.12 us, 2.19 us..2.31 us)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessageTwice_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> 3 outliers were removed (944.08 ns..1.27 us)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessageTwice_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> 2 outliers were removed (3.24 us, 3.39 us)
HttpRequestHeaderVsPipelineHeader.CreateHttpRequestMessageTwice_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1 -> 2 outliers were removed (6.59 us, 6.74 us)
HttpRequestHeaderVsPipelineHeader.MultipleReads_HttpRequestHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1                 -> 3 outliers were removed (3.19 us..4.17 us)
HttpRequestHeaderVsPipelineHeader.MultipleReads_ArrayBackedHeader: Runtime=.NET 6.0, IterationTime=250.0000 ms, MaxIterationCount=20, MinIterationCount=15, WarmupCount=1                 -> 1 outlier  was  removed (3.30 us)
// * Legends *
Categories  : All categories of the corresponded method, class, and assembly
count       : Value of the 'count' parameter
Mean        : Arithmetic mean of all measurements
Error       : Half of 99.9% confidence interval
StdDev      : Standard deviation of all measurements
Ratio       : Mean of the ratio distribution ([Current]/[Baseline])
RatioSD     : Standard deviation of the ratio distribution ([Current]/[Baseline])
Gen0        : GC Generation 0 collects per 1000 operations
Allocated   : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
1 ns        : 1 Nanosecond (0.000000001 sec)
// * Diagnostic Output - MemoryDiagnoser *
// ***** BenchmarkRunner: End *****
Global total time: 00:03:56 (236.12 sec), executed benchmarks: 26


Create a score gauge component

v1

Correctly import highcharts to handle solid gauges
Create component with correct configuration for solid gauge chart to match our intended designs for a health score
Add optional, light customizations to the gauge chart
Skip a currently failing test to be investigated

ember test results:
skip 1 Chrome 68.0 - [0 ms] - Acceptance | datasets/dataset/comments: visiting /datasets/dataset/comments
skip 2 Chrome 68.0 - [0 ms] - Acceptance | datasets/dataset/ownership: visiting /datasets/dataset/ownership
...
ok 378 Chrome 68.0 - [2 ms] - Unit | Utility | validators/urn: buildLiUrn
ok 379 Chrome 68.0 - [1 ms] - ember-qunit: Ember.onerror validation: Ember.onerror is functioning properly

1..379
# tests 379
# pass  372
# skip  7
# fail  0

# ok

Reference for appearance with various states:

Closing to redo request with build fixes


Create deployment image

Create a dedicated build image wrapping contracts ABI, frontend and backend to be deployed in netlify

My fault, the problem is that build report warnings


[OCPCLOUD-1650] Ensure we replace deleted machines in the RollingUpdate strategy

We need to make sure that if there is a machine that has been marked for deletion, that we replace it appropriately.
Therefore, when creating machines, we must include deleting machines from the those we think need replacement and we must exclude deleting machines from the list we think could be replacing an already deleting machine.
This PR updates the rolling update strategy and tests to account for this.

Thanks for the review @damdo, let me know if you think the comments I've added capture the sentiment we discussed on the call

/approve


Painting Game

In this game user can paint or draw whatever he wants using different colors.

Easy to use
can select different shapes
can select different colors
can select width of pen

https://github.com/ssitvit/Code-Canvas/assets/119161467/294510cb-668c-49ec-96e1-2aed3612bd28
@Dharmesh177 I am writing to kindly request your attention and consideration in reviewing and accepting issue. I would greatly appreciate it if you could allocate some time to review the issue and provide your feedback. If there are any areas that require further attention or modifications, please let me know, and I will be more than willing to address them promptly

sure assign to u !! start working and complete it in 10 days
follow contributing.md guide for successful PR merge.
happy coding !!


[SYMFONY26] RedirectToRouteRector

Code example:
    public function index(): RedirectResponse
    {
        $routeBuilder = $this->get(AdminUrlGenerator::class);

        return $this->redirect($routeBuilder->setController(ExampleCrudController::class)->generateUrl());
    }

Rector want change this:
    ---------- begin diff ----------
@@ @@
     {
         $routeBuilder = $this->get(AdminUrlGenerator::class);

-        return $this->redirect($routeBuilder->setController(ExampleCrudController::class)->generateUrl());
+        return $this->redirectToRoute(null);
     }

     public function configureDashboard(): Dashboard
    ----------- end diff -----------

Applied rules:
 * RedirectToRouteRector

But this is ok:
    public function index(): RedirectResponse
    {
        $routeBuilder = $this->get(AdminUrlGenerator::class);
        $routeUrl = $routeBuilder->setController(ExampleCrudController::class)->generateUrl();

        return $this->redirect($routeUrl);
    }

I'll try to work out a solution, bugfix.

Yes you can add a test fixture for this rector rule


Increment version for identity releases

Increment version for identity releases

Can one of the admins verify this patch?


A feature to filter the Lineage graph by tags assigned to assets would be helpful, especially when the Lineage graph displays hundreds or thousands of nodes.

    A feature to filter the Lineage graph by tags assigned to assets would be helpful, especially when the Lineage graph displays hundreds or thousands of nodes.

Originally posted by @stevenspadotto in https://github.com/open-metadata/OpenMetadata/issues/8521#issuecomment-1307691648

Duplicate of #8685


Project Management Standards Page in Coda

Populating Project Management standards page in Coda

[ ] Describe goals and process of recurring meetings, both internal to DSE team and with external partners (like weekly sprint calls)
[ ] ...

The page was started here: https://coda.io/d/Data-Services-Engineering_dY5Oul8-jdi/Project-Management-Standards_suVYd#_luzLh
Currently only contains the issue Size and Priority definitions


Refactor ConsumerRecordHandler

This PR is meant as a first step for #589

Proposed Changes

:broom: Reimplemented ConsumerRecordHandler (now named RecordDispatcher) to return a Future when dispatch is completed
:broom: Some name changes and some classes moved
:gift: Now OffsetManager methods are async

/lgtm

/retest

/retest

/test pull-knative-sandbox-eventing-kafka-broker-integration-tests

/test pull-knative-sandbox-eventing-kafka-broker-integration-tests

/test pull-knative-sandbox-eventing-kafka-broker-integration-tests

/lgtm
/approve

/retest

@pierDipi I've rebased with your fix for the test flakyness :)

I don't see https://github.com/knative-sandbox/eventing-kafka-broker/pull/557/files#diff-f381c3ca71d3199724fad85a234c55b0b0cfecf7db83db13e1bd06c6e970f9bdR68
/lgtm

I'm sorry, you're right...

/retest


filename=[chunkhash] illegal only with HMR

I use output.filename = '[chunkhash:12].js' which works just fine (can't use plain [hash] because of multiple entries), but when I try to run the same config with hot/HMR enabled I get the following error:
Cannot use [chunkhash] for chunk in '[chunkhash].js' (use [hash] instead)

It's not really a problem, but it seems peculiar to me that it only applies to HMR.

Shouldn't it actually be the opposite ? Apparently you should use [hash] if multiple entries, and chunkhash if you are effectively using async loading/require.ensure (which create chunks). Multiple entries !== chunks.
Source : https://github.com/webpack/webpack/blob/master/test/Errors.test.js#L132

Apparently you should use [hash] if multiple entries

That doesn't make any sense to me, [hash] is the hash of the entire compilation so using it with multiple entries without anything else to differentiate means all entries will have the same filename.

Multiple entries !== chunks.

Sure, but I don't really care about semantics here, call it [filehash] or w/e, I'm interested in it for long-term caching (which means I'm currently fine because [chunkhash] works for non-hot right now)... but it would be nice to use the same method for my hot dev builds too.

You can use [hash]-[id].js for multiple entry points.
With HMR the entry chunk depends on the hash of the compilation and because of this [chunkhash] is not possible. (The filename must change with every recompilation not only when a module in the entry chunk changes)

@sokra Yep, that's what I'm using right now, I'll just keep using that then :)

This is really a problem. I used CommonsChunkPlugin, I hope it to keep not touched when I change any of my entries. Now I have two problems: 1 is for the CommonsChunkPlugin will always change the file(even if i restrict it to use some specific modules; 2 is that the HMR dont allow the CommonsChunkPlugin to use chunkhash...