Doesn't support Asp.Net Core 1.1 projects

This tool looks fantastic and exactly what I've been looking for; however, I'm having a tough time figuring out why it isn't working for me. I've got a simple Asp.Net Core 1.1 app, i've added the bits noted in your Installation instructions, but when I run dotnet tsd, it ensures the app is built and that seems to be it. No errors. It seems as though the ConfigureDefinitions method on my Startup class isn't getting called at all. Any ideas?

After cloning your repo and stepping through, it seems that your tool throws an exception when calling the Invoke method and when trying to create an instance of my Startup class:
"Unable to resolve service for type 'Microsoft.AspNetCore.Hosting.IHostingEnvironment' while attempting to activate 'LadybugWorks.WebApp.Startup'."

Honestly I should have released this project as a preview release just like the other dotnet tools. The toolchain is still under development and with there now being two build systems (VS2017 - msbuild, VS2015 - project.json) I haven't had the time to make the updates necessary to make this project work across all the current options.
I believe I attempted to get a 1.1 release working and was able to do so but only for VS2015 and the project.json layout. I'll double check and if it works Ill push another release.

I appreciate it. I think you have the right idea.

What changes where necessary for running it on 1.1 with project.json?

Unfortunately I still haven't been able to get this to work. I attempted updating all packages to the latest and tried a few things I thought might be the issue (removed some packages, etc) but I still get some errors when trying to use it in a test 1.1 project. The error's refer to an incorrect version of an AspNetCore lib.
I'm going to have to take a look at some other examples to see what they are doing and perhaps get a clue as to what I am doing incorrectly. I haven't really been able to find any documentation on these type of tools projects and how to exactly get them setup properly.
I'll happily accept pull requests if anyone is able to figure this out. With work where it's at right now I probably won't be able to spend any real time on this problem for a while.

I don't get any errors after updating the packages. However I still get the "Unable to resolve service..." exception. If I replace the assembly in Program.cs's Main by AssemblyLoadContext.Default.LoadFromAssemblyPath('...') it works. Therefore it seems like the error is hiding within ProjectContextFactory.

I don't get any errors after updating the packages. However I still get the "Unable to resolve service..." exception.

Yep that's what I was getting as well.

If I replace the assembly in Program.cs's Main by AssemblyLoadContext.Default.LoadFromAssemblyPath('...') it works. Therefore it seems like the error is hiding within ProjectContextFactory.

Thanks! I took a quick look and I think I found what I need to change to get it working. I'll give it a shot during my lunch break and see how it goes. With any luck I'll be able to publish a 1.1 preview release this afternoon.

@stephtr Since you have the project pulled down and running with AssemblyLoadContext.Default.LoadFromAssemblyPath('...') you could give the change a try yourself. In ProjectContextFactory.cs take a look at line 28. I believe the problem is after updating the packages you need to also update FrameworkConstants.CommonFrameworks.NetCoreApp11

accidentally clicked close

I actually did try that, but it didn't work.
Debuging return NuGetFrameworkUtility.GetNearest(contexts, target ?? FrameworkConstants.CommonFrameworks.NetCoreApp10, f => f.TargetFramework) ?? contexts.First(); it showed that target is null, therefore it doesn't make a difference.
I will try it a second time.

So I thought I'd give it a try real quick this morning and when I switched to using AssemblyLoadContext.Default.LoadFromAssemblyPath I get the following error.
Could not load file or assembly 'Microsoft.Extensions.Configuration, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
When I use the existing assembly I get the following error.
Unable to resolve service for type 'Microsoft.AspNetCore.Hosting.IHostingEnvironment' while attempting to activate 'TypescriptToolsTestingProject.Startup'.

It works for projects with no additional dependencies.
It seems like the IHostingEnvironment in this project is different than the one loaded using the LoadContext of the source project: typeof(IHostingEnvironment).IsAssignableFrom(typeof(HostingEnvironment)); returns true, but false, if I take the HostingEnvironment Type from the Microsoft.AspNetCore.Hosting assembly loaded using the source project's LoadContext.
Maybe it is better to focus on supporting csproj.

It seems like the IHostingEnvironment in this project is different than the one loaded using the LoadContext of the destination project: typeof(IHostingEnvironment).IsAssignableFrom(typeof(HostingEnvironment)); returns true, but false, if I take the HostingEnvironment Type from the Microsoft.AspNetCore.Hosting assembly loaded using the destination project's LoadContext.

This is the conclusion I came to as well. One thought I had was that in order to get it to work you need a separate library project for any code that has a dependency (Microsoft.AspNetCore.Hosting for example). If you look at EFCore tools, the tools project doesn't actually do anything, all it does is load the code to run from Microsoft.EntityFrameworkCore.Design which would be available in the destination project through the efcore dependency.

Maybe it is better to focus on supporting csproj.

I think this is what I am going to do if splitting the project out into two packages doesn't work.

Since the issue is being caused by the IHostingEnvironment of the startup constructor I decided why not require the definitions in a separate class. The tool doesn't really need access to the Configuration object anyways. I gave it a quick try and it worked with the test project I used. I'll push out a release shortly and update the readme with what needs changed.

Version 1.1.0-preview1-final has been published. You can use this in net core 1.1 projects. I have updated the readme to show how to get it setup. If you want to see the code changes they are under the 1.1.0-preview1 branch.

That approach looks clean.
However by using AssemblyLoadContext.Default.LoadFromAssemblyPath(startupProject.Assembly.Location); it now doesn't work using shared projects, because that way startupProject's dependencies doesn't get loaded.
Using the old way typeof(ITypedef).IsAssignableFrom(t.AsType()) returns false, like with the IHostingEnvironment.

And if I solve those errors, I still get Object of type 'Typescript.Definitions.Tools.TypescriptDefinitionBuilder' cannot be converted to type 'Typescript.Definitions.Tools.IDefinitionBuilder'
I guess I will wait for the official release of 1.0.0 and then try to migrate it to csproj.

That approach looks clean.
However by using AssemblyLoadContext.Default.LoadFromAssemblyPath(startupProject.Assembly.Location); it now doesn't work using shared projects, because that way startupProject's dependencies doesn't get loaded.
Using the old way typeof(ITypedef).IsAssignableFrom(t.AsType()) returns false, like with the IHostingEnvironment.

I didn't realize I kept the AssemblyLoadContext line in there. I think I know what I can do to fix it but I probably won't have time until this weekend. I believe all I have to do is pull ITypedef and IDefinitionBuilder into their own package (I'll probably call it Typescript.Definitions.Abstractions). I believe this is the missing piece of the puzzle. That way the target project would pull in the interfaces in it's dependencies and the tool separately in the tools. Not sure if it will work but it's worth a shot.

At this point I think I have decided to abandon this project.
I recently found Typewriter and it has more than suited my needs. It uses template's and special syntax to allow you to create truly custom definitions (or even full ts files) from your cs files.
If anyone would like to fork and take over the project feel free, but seeing as how it was mainly a clone of TypeLite I don't think that's really necessary.

Thank you for your work!
Unfortunately Typewriter is limited to Windows and VS, but for other platforms there are alternatives, like typescript-cs-poco. In the long term I hope that TypeLite eventually catches up with this project by supporting dotnet core.


What is the purpose of Plugin Helper: Server?

Without creating any certificates using the below config worked for me. But I am not sure about the logs are really encrypted in the transit from fluent bit to fluentd or not.
Fluentd.conf

generate_private_key_length 2048
generate_cert_country US
generate_cert_state CA
generate_cert_locality Mountain View
generate_cert_common_name "Common Name"
generate_cert_expiration "#{10 * 365 * 86400}"
generate_cert_digest sha256

Fluentbit.conf
[OUTPUT]
Name            forward
Match           *
Host            ${FORWARD_HOST}
Port            ${FORWARD_PORT}
tls             On
# see fluentd  config
tls.verify      Off
tls.debug       1
shared_key      ${FLUENT_SHARED_KEY}
# Setting the retry counts to unlimited, see fluentd scheduler configuration (https://docs.fluentbit.io/manual/configuration/scheduler)
Retry_Limit     False
Could please explain the difference between using openssl certificates from both sides (fluent bit and fluentd) and using the above config?

Is this fluent-bit question? the please post it to https://github.com/fluent/fluent-bit


⚠ Fetchers has degraded performance

In 811610d, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 266 ms

Resolved: Fetchers performance has improved in 71185b5.


📎 Replace Clippy allow with expect

Description
Rust 1.81 stabilizes Clippy's  expect attribute. This attribute ensures that a lint diagnostic is emitted where the attribute appears.
We should replace allow attribute with expect.
We should also retsrict the use of allow by denying clippy::allow_attributes.

I just noticed you don't use 1.81.0 yet, so this task needs to wait until to move to 1.81

so this task needs to wait until to move to 1.81

Done in #3972


Enable eslint flat config

Eslint provides a new config file format with a better granularity. It could be great to use this new feature
https://eslint.org/docs/latest/use/configure/configuration-files-new

I checked the documentation, as it is not enabled by default by ESLint, I prefer to stay on the conventional and old config at the moment.
I'll discuss this ticket with some other contributors to have their opinion on that.


hash_types: add unit tests for display of all hash types in the library

This can be checked against the 0.29.x branch, and against the commit prior to #1659 (40c246743b^) and you will see that it is consistent EXCEPT:

In rust-bitcoin 0.29.x we did not have multiple sighash types, only Sighash; we now have LegacySighash, SegwitV0Sighash, and TapSighash.
In #1565 we deliberately changed the display direction of the sighashes, to match BIP 143.

Fixes #2495.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

67 of 67 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 83.904%

Totals

Change from base Build<PHONE_NUMBER>:
0.05%

Covered Lines:
19527

Relevant Lines:
23273

💛  - Coveralls

This an go in by way of the carve out, its been open and ack'd for more than 2 weeks.

Sounds good. And you could argue that adding unit tests is "CI only".


Add ApplicationInsights Details through XML Configuration

How to set the key when using Serilog.Settings.appsettings
Tried this way :
<add key="serilog:using:ApplicationInsights" value="Serilog.Sinks.ApplicationInsights" />
<add key="serilog:write-to:ApplicationInsightsEvents" value="<my key value>" />

But that doesn't work.
Any help would be appreciated.

You can specify the properties on the ApplicationInsightsEvents() constructor also in the xml file. If you check, one of the overloads accepts a instrumentationKey parameter. So, you can do this:
<add key="serilog:using:ApplicationInsights" value="Serilog.Sinks.ApplicationInsights" />
<add key="serilog:write-to:ApplicationInsightsEvents.instrumentationKey" value="d89a4f1d-e3f8-4c22-ba34-2fee8cb4dd4f" />

Every parameter on the constructor can be added that way.

You can specify the properties on the ApplicationInsightsEvents() constructor also in the xml file. If you check, one of the overloads accepts a instrumentationKey parameter. So, you can do this:
<add key="serilog:using:ApplicationInsights" value="Serilog.Sinks.ApplicationInsights" />
<add key="serilog:write-to:ApplicationInsightsEvents.instrumentationKey" value="your key" />

Every parameter on the constructor can be added that way.


adding application approval cypress test

Cypress test for LTD-1805 Approve a newly created case and verify it moved queues

LGTM


Backport 2.x: Add missing PSA macros

Backport of https://github.com/ARMmbed/mbedtls/pull/4966
Differences with the 3.x version:

Add/add conflict in "Add missing PSA_ALG_NONE macro."
Update stored generated file in "Add missing PSA_ALG_NONE macro."
Add support for MD2 and MD4 in "Add missing PSA_HASH_BLOCK_LENGTH macro."
Remove the MD2/MD4 lines as well in "Use the new macro PSA_HASH_BLOCK_LENGTH"

This now has conflicts and needs rebasing.

I rebased due to a merge conflict due to interactions with #5010/#5117 (new PSS variant). The previous version ishttps://github.com/gilles-peskine-arm/mbedtls/tree/missing-psa-macros-2.x-1 . Rebase notes:

"Untangle PSA_ALG_IS_HASH_AND_SIGN and PSA_ALG_IS_SIGN_HASH": this commit replaces ALG_IS_HASH_AND_SIGN by ALG_IS_SIGN_HASH. Do it in the places in tests/suites/test_suite_psa_crypto_metadata.data and tests/suites/test_suite_psa_crypto_metadata.function affected by the changes for the new PSS variant.
"Add PSA_ALG_IS_HASH_AND_SIGN to the metadata tests": do it for the two PSS test cases in tests/suites/test_suite_psa_crypto_metadata.data affected by the changes for the new PSS variant. In tests/suites/test_suite_psa_crypto_metadata.function, both this commit and the PSS PR added entries to the list of classification macros, so modify this commit due to the numbers being shifted.

While rebasing, I noticed a preexisting bug in the test code that led to an unintended test gap. I added two new commits: "Ensure that all flags are actually tested" is a non-regression test and "Fix test bug: some classification flags were not tested" fixes the bug.


Docs 197 general fixes

This PR includes:

General fixes to pages that weren't quite right.
merging/rewriting content from community/old-setup/architecture.md into /community/com-home
fix for DOCS-190 > bold/code highlighting illegible in table headers

Good to go :)


Upgrade requests

see https://GHE/CFGOV/platform/issues/3104 for details
there are several other out of date dependencies in this project, I will address them in future requests. One PR for django, another grouping the remaining.
Test this PR

run python manage.py test

hmm, so this fails on 2.6, i guess because requests doesn't support python 2.6 since version 2.19.0.


Is activation get quantized on-the-fly?

In inference, the scales and zero points in activation are adjusted dynamically according to inputs. They do not get fixed in inference. Does it?

@XA23i Yes, I believe you are right. Activations are really quantized on the fly...
So, personally, I quantized only weights (w4a16g128 setting). Also, even if scales and zero points were fixed, it seems that GPTQ does not support activation quantization at all...

thanks. By the way,  if Activations are quantized on the fly, how will the latency be compared to fixed activation quantization?

@XA23i
We only explore the deployment of weight-only quantization in this study due to that W4A4 and W6A6 quantization methods lack out-of-the-box hardware support.

I seem, thank you.


Change threading model from classic Thread to ExecutorService

Refactoring sink endpoint in order to use ExecutorService threading model instead of classic Thread for the KafkaConsumerRunner

It's not needed because we don't need pool of reusable thread but single thread for every Kafka consumer due to its synchronous nature and heartbeat/session related activities


Update image ghcr.io/gimlet-io/capacitor to v0.4.6

This PR contains the following updates:

Package
Update
Change

ghcr.io/gimlet-io/capacitor
patch
v0.4.5 -> v0.4.6

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Toolbar fixes

Top button with no chindren now hidden.
Removed the temporary separator between top toolbar buttons as the proper markup was not yet implemented (as discussed in https://github.com/ManageIQ/manageiq/pull/4853)

Before:

After:

@epwinchell : please, check.
I will now work on splitting the toolbars where the separators should be and when that is done make the view button toolbar changes on top of that.

@h-kataria looks good, pls merge


WFLY-14902 Clustering TS: Enable authentication and authorization for Infinispan Server tests

Resolves
https://issues.redhat.com/browse/WFLY-14902
https://issues.redhat.com/browse/WFLY-13883
https://issues.redhat.com/browse/WFLY-13897

Looks like this requires https://github.com/wildfly/wildfly/pull/14345 - rebased on top of it for now.

/retest

I ll reopen with a fix for https://issues.redhat.com/browse/WFLY-15012 'FineHotRodSessionExpirationTestCase fails intermittently' which is failing in master branch as well.


Must specialize, e.g. recursion, addition for Nats

The generality of Lean and ProvingGround conspire to make very complicated recursive definitions, e.g. for char_sz using bit1

First, parse with timeouts using Task.timeout and Task.onErrorRecoverWith to allow for timeouts as well as UnparsedException triggered by a component having timed out.

With memoization performance is reasonable. It is also a natural part of the plan to integrate various definitions.


ApiServer: signature v3 to accept more formats

Description

The format expected by signatureVersion=3&expires=.... is quite limited.
It should accepts the following formats that are containing a timezone and/or milliseconds.

2018-10-01T08:12:14Z
2018-10-01T08:12:14+01:00
2018-10-01T08:12:14+0100
2018-10-01T08:12:14.000Z
2018-10-01T08:12:14.000+01:00
2018-10-01T08:12:14.000+0100

afaik only 2018-10-01T08:12:14+0100 is accepted by the current codebase.
This PR echoes another pull requests I made earlier this year. https://github.com/apache/cloudstack/pull/2392 and https://github.com/apache/cloudstack/pull/2867
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

GitHub Issue/PRs

n/a
Screenshots (if appropriate):
n/a
How Has This Been Tested?

the Java unit tests. If anyone want to help with the marvin work... cs does it already.
Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
Testing
[x] I have added tests to cover my changes.
[ ] All relevant new and existing integration tests have passed.
 I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✖debian. JID-2347

@blueorangutan package

@rafaelweingartner a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian.  I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✖centos7 ✖debian.  I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-2395

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2396

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3135)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 23046 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2893-t3135-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_multipleips_per_nic.py
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_host_maintenance.py
Smoke tests completed. 66 look OK, 3 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_nic_secondaryip_add_remove
Error
35.14
test_multipleips_per_nic.py

test_04_rvpc_network_garbage_collector_nics
Failure
461.59
test_vpc_redundant.py

runTest
Error
0.00
test_vm_life_cycle.py

@bwsw a quick hack of mine:
    @Test
    public void zonedTimeFormatIsoNoColonZMs() throws ParseException {
        Date time = new Date();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");
        String str = OffsetDateTime.of(time.getYear(),time.getMonth(),time.getDay(),time.getHours(),time.getMinutes(),time.getSeconds(),0,ZoneOffset.ofHours(time.getTimezoneOffset())).format(formatter);

        Date dtParsed = DateUtil.parseTZDateString(str);

        assertEquals(str, time.toString(), dtParsed.toString());
    }

ugly quick hack but should do what is intended without losing test quality or time skew bug as you reported.
thoughts?

@DaanHoogland Looks good to me. May be imperfect, but should work, at least.

strangely this works:
    @Test
    public void zonedTimeFormatIsoNoColonZMs() throws ParseException {
        Date time = new Date();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");
        String str = OffsetDateTime.of(time.getYear()+1900,time.getMonth()+1,time.getDate(),time.getHours(),time.getMinutes(),time.getSeconds(),0,ZoneOffset.ofHours(-1*time.getTimezoneOffset()/60)).format(formatter);

        Date dtParsed = DateUtil.parseTZDateString(str);

        assertEquals(str, time.toString(), dtParsed.toString());
    }

not sure if it is valid in all cases though, can you test @bwsw
@nvazquez could you test from the western hemisphere, please?

Tested on latest master: first tested running every test and passed successfully. Then replaced the last one for the code @DaanHoogland provided above and also succeeded

@DaanHoogland
@nvazquez
There are five tests like the one above in that unit test module. All of them must be reworked. I think it's either to revert PR or to open a separate issue for fixing each of them.


Add docs for IHostedService

To do background tasks in ASP.NET Core you use IHostedService. We should document that.

@danroth27 which dev should we work with?

@muratg Who can help us out for this doc?

@muratg can we get a sample doing this?

@Rick-Anderson Chris can help with it after Preview2 work winds down.

cc @Tratcher

@Tratcher can you come up with a sample app?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace WebApplication87
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<IHostedService, MyBackgroundServiceA>();
            services.AddSingleton<IHostedService, MyBackgroundServiceB>();
        }

        // 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.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }
    }

    internal class MyBackgroundServiceA : IHostedService
    {
        private Timer _timer;

        public Task StartAsync(CancellationToken cancellationToken)
        {
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(2));
            return Task.CompletedTask;
        }

        private void DoWork(object state)
        {
            Console.WriteLine("My background service A is doing work.");
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _timer.Dispose();
            return Task.CompletedTask;
        }
    }

    internal class MyBackgroundServiceB : IHostedService
    {
        private Timer _timer;

        public Task StartAsync(CancellationToken cancellationToken)
        {
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(4));
            return Task.CompletedTask;
        }

        private void DoWork(object state)
        {
            Console.WriteLine("My background service B is doing work.");
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _timer.Dispose();
            return Task.CompletedTask;
        }
    }
}

@Tratcher  Thanks. I plugged your code into the Razor Pages project. I'd like to use the CancellationToken from the About page to cancel the work.  Fowler has a sample here
My sample is here - can you show me how to cancel?
Should I set up a meeting with you or @muratg  or both on the outline of the article?

Fowler abandoned that approach, it has too many threading and cancellation issues.
I don't know that cancellation from the About page makes sense. These services have the same lifetime as your application, you don't spin them up and down dynamically.
You could communicate with the background service from the About page though to do things like change the output message. Inject a shared singleton dependency like MyBackgroundServiceData that holds the message to write into both the background service and the about page.

We should discuss what we want to document. Right now in the box is an extremely low level building block API. 2.1 will have more goodies that make it easier to implement common scenarios but showing something like a timer would be good.
We should also discuss some issues that will be extremely common like doing DI in one of these services. One big issues people will end up having to deal with with is scoped objects (like a db context). When you using this API we'll activate your service once at startup and never again. You'll need to manually create scopes during execution to do anything with say your db context in the timer callback.

@Rick-Anderson let's get some time on the calendar then with the right folks

@danroth27  who are the right folks for the meeting?

Probably @davidfowl  and @Tratcher and whoever else they think should be there.

Here's a sample for consuming scoped services in a hosted service:
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace WebApplication88
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureServices(services =>
                {
                    services.AddSingleton<IHostedService, HostedServiceScopingSample>();
                    services.AddScoped<IFoo, MyFoo>();
                })
                .Build();
    }

    internal interface IFoo
    {
        void DoWork();
    }

    internal class MyFoo : IFoo
    {
        public void DoWork()
        {
            Console.WriteLine("Doing scoped work");
        }
    }

    internal class HostedServiceScopingSample : IHostedService
    {
        public HostedServiceScopingSample(IServiceProvider services)
        {
            Services = services ?? throw new ArgumentNullException(nameof(services));
        }

        public IServiceProvider Services { get; }

        public Task StartAsync(CancellationToken cancellationToken)
        {
            using (var scope = Services.CreateScope())
            {
                var foo = scope.ServiceProvider.GetRequiredService<IFoo>();
                foo.DoWork();
            }
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            return Task.CompletedTask;
        }
    }
}

I owe you one more sample for queuing background tasks.

@davidfowl how's this?
using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace WebApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureServices(services =>
                {
                    services.AddSingleton<IHostedService, BackgroundTaskService>();
                    services.AddSingleton<IBackgroundTaskQueue, BackgroundTaskQueue>();
                })
                .Build();
    }

    public interface IBackgroundTaskQueue
    {
        /// <summary>
        /// https://msdn.microsoft.com/en-us/library/dn636893(v=vs.110).aspx
        /// Differs from a normal ThreadPool work item in that ASP.NET can keep track of how many work items registered through
        /// this API are currently running, and the ASP.NET runtime will try to delay AppDomain shutdown until these work items
        /// have finished executing. This API cannot be called outside of an ASP.NET-managed AppDomain. The provided CancellationToken
        /// will be signaled when the application is shutting down.
        /// </summary>
        /// <param name="workItem"></param>
        void QueueBackgroundWorkItem(Func<CancellationToken, Task> workItem);

        Task<Func<CancellationToken, Task>> DequeueAsync(CancellationToken cancellationToken);
    }

    public class BackgroundTaskQueue : IBackgroundTaskQueue
    {
        private ConcurrentQueue<Func<CancellationToken, Task>> _workItems = new ConcurrentQueue<Func<CancellationToken, Task>>();
        private SemaphoreSlim _signal = new SemaphoreSlim(0);

        public void QueueBackgroundWorkItem(Func<CancellationToken, Task> workItem)
        {
            if (workItem == null)
            {
                throw new ArgumentNullException(nameof(workItem));
            }

            _workItems.Enqueue(workItem);
            _signal.Release();
        }

        public async Task<Func<CancellationToken, Task>> DequeueAsync(CancellationToken cancellationToken)
        {
            await _signal.WaitAsync(cancellationToken);
            _workItems.TryDequeue(out var workItem);
            return workItem;
        }
    }

    public class BackgroundTaskService : IHostedService
    {
        private CancellationTokenSource _shutdown = new CancellationTokenSource();
        private Task _backgroundTask;

        public BackgroundTaskService(IBackgroundTaskQueue taskQueue)
        {
            TaskQueue = taskQueue ?? throw new ArgumentNullException(nameof(taskQueue));
        }

        public IBackgroundTaskQueue TaskQueue { get; }

        public Task StartAsync(CancellationToken cancellationToken)
        {
            _backgroundTask = Task.Run(BackgroundProceessing);
            return Task.CompletedTask;
        }

        private async Task BackgroundProceessing()
        {
            while (!_shutdown.IsCancellationRequested)
            {
                var workItem = await TaskQueue.DequeueAsync(_shutdown.Token);

                try
                {
                    await workItem(_shutdown.Token);
                }
                catch (Exception) { } // TODO: Log
            }
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            _shutdown.Cancel();
            return Task.WhenAny(_backgroundTask, Task.Delay(Timeout.Infinite, cancellationToken));
        }
    }
}

// HomeController.cs
        public IBackgroundTaskQueue Queue { get; }

        public HomeController(IBackgroundTaskQueue queue)
        {
            Queue = queue ?? throw new ArgumentNullException(nameof(queue));
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult About()
        {
            ViewData["Message"] = "Adding a task to the queue";

            Queue.QueueBackgroundWorkItem(async token =>
            {
                for (int i = 0; i < 5; i++)
                {
                    Console.WriteLine($"A background Task is running {i}/5");
                    await Task.Delay(TimeSpan.FromSeconds(5), token);
                }
                Console.WriteLine($"A background Task is complete.");
            });

            return View();
        }

@Tratcher your BackgroundTaskService does not really touch the passed in CancellationToken except in StopAsync(), whereas @davidfowl used
CancellationTokenSource.CreateLinkedTokenSource(cancellationToken)
in his implementation.
Is this an example of one of those threading/cancellation issues you mentioned upthread?

What other token am I missing? The one from StartAsync? That one is not relevant in this scenario, the service starts instantly.

@Tratcher I was messing around with this today :point_right: https://github.com/guardrex/HostedServiceSample
That's an RP app. It does deal with scopes and the dB context to allow the background tasks to interact with the dB. It does offer the ability to shutdown background tasks from a page model method. It uses BackgroundService from 2.1 and registers a couple of IHostedService instances.
Anywho .... Question: Is there a better way to get a hold of the background task service to stop it than this horribly inelegant approach? ...
public async Task<IActionResult> OnPostStopMessageProcessingServiceAsync()
{
    var hostedServices = HttpContext.RequestServices.GetServices<IHostedService>();

    foreach (var service in hostedServices)
    {
        if (service.GetType() == typeof(MessageProcessingService))
        {
            var castedService = (MessageProcessingService)service;
            await service.StopAsync(castedService.StoppingToken);
            break;
        }
    }

    return RedirectToPage();
}

public async Task<IActionResult> OnPostStopWordCountingServiceAsync()
{
    var hostedServices = HttpContext.RequestServices.GetServices<IHostedService>();

    foreach (var service in hostedServices)
    {
        if (service.GetType() == typeof(WordCountingService))
        {
            var castedService = (WordCountingService)service;
            await service.StopAsync(castedService.StoppingToken);
            break;
        }
    }

    return RedirectToPage();
}

You see ... I have two background task services running. That approach seemed to be the only way to figure out which one to hit on a UI button click to just shut down the correct one.

You can use a separate control service for each like IBackgroundTaskQueue above.

I see. I broke some of the rules here. :grinning:

"Low level component for running long running tasks." I show timed, intermittent, fast-running tasks are possible on any schedule.
"Runs a job once at startup and runs for the life of the app." -AND- "Not something you create/destroy while app is running." I show it runs a job if conditions are met and that you could start and stop it on-demand ... well ... so far, stop it anyway.
"Sample goes with controller, not RP. RP are for UI." I use it in an RP app, and I don't see why this wouldn't be useful to devs using RP apps to run a few low-demand background services in their web apps.

In addition to stopping (and possibly starting) services the way I am, I'm also concerned about scoping the dB as a singleton like that. Idk if that's a :bomb: or not.
I'm aware of QBWI, but QBWI feels so much more focused on individual tasks that one creates to process specific operations at specific times; whereas for BackgroundService/IHostedService, it truly feels more like a constantly running background service on any schedule you like processing anything you want. I speculate there's a great usefulness for this in web apps; and except for the two problem areas I came across, this is a snap to understand and use. I guess it just was never intended to be used this way.

https://blogs.msdn.microsoft.com/cesardelatorre/2017/11/18/implementing-background-tasks-in-microservices-with-ihostedservice-and-the-backgroundservice-class-net-core-2-x/

@Rick-Anderson @scottaddie While working through the Antares-IIS PR reviews over the next few days (the work is done; just passing the PRs in one-at-a-time), I'll start working on this issue.
Unless you want to go a different way, I plan to package the three @Tratcher-supplied samples :point_up: into the topic.
Title: Background tasks with IHostedService in ASP.NET Core
TOC: performance/ihostedservice.md
UID: performance/ihostedservice
Outline

Introduction

Purpose statement
Sample links

IHostedService interface
Timed tasks + sample
Scoped-service injection + sample
Queuing background tasks + sample
Additional resources

Right now in the box is an extremely low level building block API. 2.1 will have more goodies that make it easier to implement common scenarios but showing something like a timer would be good.

I'll keep that in mind. I won't spend a massive amount of time here if "goodies" are on the way to a framework near you that will require a significant update.

TOC: performance/ihostedservice.md

I wouldn't look in perf.  Wouldn't fundamentals be a better fit?

I wondered ... but do you want to clutter fundamentals with low-traffic topics? If it's a "primitive," it could go there next to the Change Tokens topic. I thought "performance," since that's what background tasks help solve.

Plan on fundamentals and we can ask @Tratcher and dan.roth when it's in review.

I'm ok with putting this in the fundamentals section

@Tratcher I left this open following the topic going live on #5440 because there was a remark that 2.1 would (or might) change some (or a lot of) IHostedService scenarios.
Here's the topic: https://docs.microsoft.com/aspnet/core/fundamentals/hosted-services
Here's a list of issues that reference the interface: https://github.com/aspnet/Hosting/issues?utf8=✓&q=is%3Aissue+IHostedService
Do any of those pertain to 2.1 updates for the topic? If not, we can close this issue. If so, I should get to this shortly (Thursday perhaps).

The only change here is the introduction of the new generic Host API where IHostedService becomes the primary unit of work. See https://github.com/aspnet/Hosting/blob/dev/samples/GenericHostSample/ProgramHelloWorld.cs

@Tratcher I hacked up a version of the Hosted Services topic sample (HostedServicesTopicSample) that runs on the Generic Host (the usual 🔪 Dino Hacks:tm: 🔪 ... u know the drill! 😀) . A few questions ...

The original app registers the services Singleton and Scoped, but AddHostedService registers Transient. What's important to understand about that difference? Should HostedServicesTopicSample be left as I have it, or should it be using AddHostedService and Transient registrations?
The sample runs fine registering the services as I do, but I can't seem to invoke AddHostedService in my Generic Host version ... it claims it can't find it on the service collection. I might be missing an assembly.
The Generic Host version of the sample isn't interactive, so we need to do something other than a user tapping a button on a page to put tasks in the BackgroundTaskQueue. Any idears??
Is the plan going to be to offer two samples here (at least until WebHostBuilder goes away at some point in the future)? We'd have the current sample (WebHostBuilder-based; RP app) SxS with a new sample (Generic Host-based; non-interactive/non-web). I imagine that this topic won't really get into the nuts and bolts of the Generic Host too much given that it's so focused on the background tasks scenario. It can link out to content on the Generic Host after the Generic Host issue is addressed.

This last bit pertains to the overall planning for this topic and the docs work on Generic Host in general:

This issue (3352) pertains to 2.1 updates for the current Hosted Services topic, which focuses on background tasks. The issue pertaining to the subject of Generic Hosts in general is https://github.com/aspnet/Docs/issues/5798. I think we should discuss how to organize all of the hosting content over on #5798.
Before working this issue (3352), it seems like we might want to work issue #5798 first. Then, we come back over here, drop in the new samp, and link out to that new content. For one thing, we may end up with a Hosting node in the TOC that can hold several Generic Host-related topics, this one (background tasks) being just one of those.

The lifetime of IHostedService registrations doesn't really matter, they're only ever resolved once at startup. Using AddHostedService would be better for the sample.
Add some command line UI? E.g. "Press 'A' to add a work item."
Until 3.0 we'll need separate samples. Assume that's at least a year. That said, we don't need as much coverage for generic host, it's more of a forward looking prototype, not something most of our customers will adopt anytime soon.

I agree that we should get the basic docs up for Generic Host and then come back and sort out the samples.

Seems without the sample that it would be kind'a random to toss in Generic Host comments now. I have a feeling devs won't understand the implementation without the sample. If we are going to hold off, then we can close this issue and take it up again at 2.2.

Nevermind ... "Until 3.0 we'll need separate samples." ... interpreted as 'yes' ... we'll add the sample now.

Yes, do add the sample, but get the basic docs done first.

The new (draft) sample has been updated for use when we get back to this issue: HostedServicesTopicSample. Console bits added to deal with enqueuing background work items can be seen in the Program.cs file ...
https://github.com/guardrex/HostedServicesTopicSample/blob/master/Program.cs
We'll need to address the terminal choice for running the sample because the keystroke capture fails in a redirected console (e.g., such as with VSC's internalConsole ... the dev must use either the externalTerminal or integratedTerminal ... a similar situation is probably true for VS as well).

@guardrex did we add the call to the new AddHostedService method?

@davidfowl It's in the Generic Host topic: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-2.1#configureservices
... and it appears in the Generic Host sample of this topic (the background services topic). We planned to have the background services topic text call it out when the Generic Host takes over.
https://github.com/aspnet/Docs/blob/master/aspnetcore/fundamentals/host/hosted-services/samples/2.x/BackgroundTasksSample-GenericHost/Program.cs


fix: swap toRemove & toAdd in deltaExtensions

When we try to remove & add the same extension in a very short timeframe, it does not get initialized properly because it gets both added to toRemove and toAdd. When that happens, the extension is first added, and then immediately removed. By swapping toRemove and toAdd we ensure that the extension is first removed, and then newly added.
Here's similar code in VSCode where I think they encountered the same condition:

Thank you!

Let wait until all PRs are merged before releasing a new version


Strange indices names in ES

I have a strange situation with my Jaeger Elasticsearch setup. After listing all ES indexes I see next picture:
# curl -s -XGET 'http://localhost:9200/_cat/indices?v'
...
green  open   jaeger-service-18403-09-26      K585jgOASWKjKPSMbRn7FA   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-service-14286-12-03      3_o_-KyJS8m8rmoKYDsX7g   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-service-14072-09-22      n6KpLxcoQfCbuTCHEcnq0g   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-span-27633-07-05         SM3Lm5agSbOA7urq_h3wLg   5   1          0            0      2.3kb          1.2kb
green  open   jaeger-span-14074-08-19         __ZVDwtKSS2lvHy1J_h1Dw   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-service-12864-07-22      0e8C0GqMSoOSjhR8NeXYRA   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-service-11936-02-07      Ll-Co7A6QYeD0M5AbfRSZQ   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-service-12866-01-24      vC0ntR5IR5yU-TivFbFsOw   5   1          0            0      2.5kb          1.2kb
green  open   jaeger-span-11926-02-05         6d23haSkS5KbJsEIYjWLZw   5   1         80            0     79.8kb         39.9kb
...

So there are a lot of such indexes with a very small size, near 1-50 KBs and the amount of them is very big (~1000-10000). It's critical for Elasticsearch's health to have such many indexes. I suppose that only one correct name of such indexes is jaeger-span-YY-MM-DD.
Maybe I am doing something wrong? Could you help somehow or link me to a some helpful url? Thanks.
PS. ES v.6.3.1, jaeger-collector/query v1.13.1, Amazon Linux AMI 2018.03, Docker version 18.06.1-ce (ES and jaeger is working in Docker).

The date in indices is  span start time from incoming data. So it seems you the instrumentation is submitting data with a wrong timestamps, perhaps the time on your machines is not correctly configured.
The related issue is https://github.com/jaegertracing/jaeger/issues/841

@pavolloffay thanks. At least I know why that occurs.

it would be great to hear why it happens in your system. If it is by accident or you have to use different times.
I will close this issue as it is a duplicate of #841. Feel free to continue commenting.


fix: instantiate canvas with width and height

fixes #20
canvas requires a width and height for pngStream to work

thanks!


Pr tests reduction

From long time point of view is not possible to run all of our tests against each PR, right now it takes more then 6 hours. So we made a decision to remove all SmokeTests (because these are running in Travis) and few other tests that should be at least partly covered by another tests. So it doesn't mean that some of our tests are redundant. These tests just verify SUT functionality deeper. Anyway full tests suite will be executed against master, so there are no tests that shouldn't be used. (except list of disabled tests).
After our changes full PR pipeline take 4h 30m. I would like to keep this time under 5 hours if possible.


Footer updates

Description
As discussed we're going to keep the footer the same but only add a Jira link to it. https://jira.mesosphere.com/browse/DCOS_SITE-176
Urgency

[ ] Blocker
[ ] High
[ ] Medium

Requirements

Test all commands and procedures.
Build content locally and test for formatting/links.
Add redirects to dcos-website/redirect-files.
Change all affected versions (e.g. 1.7, 1.8, and 1.9).
See the contribution guidelines.

@daveyheuser do you want me to merge this now, or wait for the other features of the footer that we discussed in the JIRA ticket here https://jira.mesosphere.com/browse/DCOS_SITE-176, and on our video call, specifically:

Add "contact us" link that sends email to<EMAIL_ADDRESS>Remove releases link once it is added to the top-level header
Remove the large text and "get started" button
Reduce the size of the Purple section of the footer

Oh, is the purple section on the home page actually part of the home page and not the footer?

I can add those things tomorrow but I think the footer can be merged without the navigation change. I think everything related to the navigation change should live in its own branch.
And yes the purple footer is part of the homepage (and install if I'm right). The footer itself is just as small as it is on other pages.

The contact us link appears to be working correctly and also doesn't break on mobile so this one should be good to go too.


SubCollection does not create

darmie commented on Oct 2, 2022

subCollection.create does not create the subcollection inside of the parent collection.

This used to work before, I am not sure what changed.

Original Issue

Found in /test/functional/3-subcollections.spec.ts
    const batch = repo.albums.createBatch();

    await rush.albums.create(secondAlbum);
    batch.create(fourthAlbum);
    batch.create(eighthAlbum);

    await batch.commit();

As of 6ad447a I can't reproduce this problem. The integration test suggests this functionality is operational.


License

Hi,
Thanks for releasing Enchanted! Would you mind adding an open source license to this project?
Thank you!

Apache license implemented ;)

Thanks!


Update merge homebrew

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?

minor improvements preventing merge if there is no "homebrew" or "origin" repo, and also adds an explicit "--no-ff" flag to the merge.

Please squash these two commits. Are you familiar with git commit --amend and git rebase -i?

yes, master!

Thanks, Maxim.


Flutter Web - [Momentum]: Failed to initialize your app.

Momentum is throwing me this error when I do flutter run -d chrome.
======== Exception caught by widgets library =======================================================
The following MomentumError was thrown building _MomentumRoot(dirty, dependencies: [Momentum], state: _MomentumRootState#6afe7):
[Momentum]: Failed to initialize your app. Check the above stacktrace for details.

The relevant error-causing widget was:
  _MomentumRoot file:///C:/tools/flutter/.pub-cache/hosted/pub.dartlang.org/momentum-2.0.1/lib/src/momentum_base.dart:1368:14
When the exception was thrown, this was the stack:
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
packages/momentum/src/momentum_base.dart 1279:7                                                                            build
packages/flutter/src/widgets/framework.dart 4612:27                                                                        build
packages/flutter/src/widgets/framework.dart 4495:15                                                                        performRebuild
packages/flutter/src/widgets/framework.dart 4667:11                                                                        performRebuild
...
====================================================================================================

Flutter doctor
[√] Flutter (Channel stable, 2.0.4, on Microsoft Windows [VersiÃ³n 10.0.19042.867], locale es-ES)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] IntelliJ IDEA Community Edition (version 2020.3)
[√] VS Code (version 1.55.1)
[√] Connected device (2 available)

! Doctor found issues in 1 category.

flutter --version
Flutter 2.0.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b1395592de (8 days ago) • 2021-04-01 14:25:01 -0700
Engine • revision 2dce47073a
Tools • Dart 2.12.2

are you using bootstrap() or bootstrapAsync() ?
this error can happen if these method throws an error.

also can you show me your controllers: and services: parameter in Momentum root widget?

@xamantra yes, I do user bootstrapAsync().
You mean this?
controllers: [
                          ShoppingCartController(
                            shoppingCartClient: ShoppingCartClient.instance,
                            configLocal: ConfigLocal.instance,
                          )..config(lazy: false),
                          RestaurantCartController(
                            restaurantClient: RestaurantClient.instance,
                          ),
                        ],

Ok, I just removed ..config(lazy: false) and it works now.
I think we might close this issue :). Thanks @xamantra


builtin vs. latest in help output of psl cli

The way I understand https://github.com/rockdaboot/libpsl/commit/ff29f13d8fd3a18ded5145ca61fb69e52ab9a9d7#diff-6f75143751c2304faf253f5f89a0b441 is that this changes the default from using the built-in file to the latest
  --use-builtin-data           use the builtin PSL data [default]
Is the built-in data still the default?

Oh. I did that change without thinking enough, I guess.
Regarding docs and backwards compatibility the commit is a bug.
With psl_latest() available, the builtin data became a 'fallback' when there is no or only outdated PSL data available otherwise. I guess a --use-latest-data should be added as default. WDYT ?


Turn down password requirements

Description
I'd like the ability to turn down password requirements on your new authentication implementation.
Priority
Medium (Would be very useful)

Description
I'd like the ability to turn down password requirements on your new authentication implementation.
Priority
Medium (Would be very useful)

You mean for the admin account ? I’m not sure of the requirements are actually enforced apart from the 8+ characters one

Specifically for additional users.  I attempted to create a new user and the same requirements showed up.

Agree, it's a little backwards that admin accounts have turned down settings, but regular users need to hit all criteria

Yeah I agree, the admin not having requirements is a bug that we decided to keep because it was quite annoying to hit all these requirements.
You guys are talking about creating a new user by hand or by creating an invite ?
So the solution you suggest is to just have the password strength meter as an indicator to help you gauge the safety, not as a rule to follow ?

Yeah I agree, the admin not having requirements is a bug that we decided to keep because it was quite annoying to hit all these requirements.
You guys are talking about creating a new user by hand or by creating an invite ?
So the solution you suggest is to just have the password strength meter as an indicator to help you gauge the safety, not as a rule to follow ?

Unless you have a global option to turn of/on password complexity enforcement, what you propose would be best.

Yes it's still relevant

Unless Homarr is trying to be an authentication system, I don't see the point of enforcing password requirements.
If someone was using Homarr for production, the last thing they would use for authentication would be this. This just makes it much harder to get a unified system with set-and-forget schematics.
If this is hosted purely on a private network, the requirements are a PITA as well, if what they want is a homepage.


NEXT: Update components to use Zag.js

This PR integrates Zag into our existing suite of Svelte and React components. This also updates the respective documentation and examples for each component.
The following indicates the status of updates per components:

Component
Svelte
React
Docs
Owner

Accordion
✅
✅
✅
Hugo

Avatar
✅
✅
✅
Chris

Progress
✅
✅
🔄
Hugo

Progress Ring
✅
✅
✅
Chris

Rating
✅
✅
❌
Hugo

Seg. Control
✅
✅
✅
Chris

Switch
✅
✅
✅
Chris

Tabs
❌
🔄
❌
Chris

NOTE: AppBar and Navigation components will not use Zag.

Also implements:

[x] useId() local utility function for skeleton-svelte

Checklist
Please read and apply all contribution requirements.

[x] Your branch should be prefixed with: docs/, feature/, chore/, bugfix/
[x] Skeleton v3 contributions must target the next branch (NEVER dev or master)
[ ] Documentation should be updated to describe all relevant changes
[ ] Run pnpm check in the root of the monorepo
[ ] Run pnpm format in the root of the monorepo
[ ] Run pnpm lint in the root of the monorepo
[ ] Run pnpm test in the root of the monorepo
[ ] If you modify /package projects, please supply a Changeset

Changsets
View our documentation to learn more about Changesets. To create a Changeset:

Navigate to the root of the monorepo in your terminal
Run pnpm changeset and follow the prompts
Commit and push the changeset before flagging your PR review for review.

@hugos68 I've pushed my changes. The disabled and readme modes should work as you described above. Just with three Svelte-specific bugs:

Using ctx.api.getItemState(zagProps) has a type error not present in React (see the FIXME comment)
Using state.checked doesn't work (see the FIXME comment)
Multiple components that bind to the same $state() rune do not stay in sync. Try the sm/md/lg example for React and Svelte to see what I mean.

@Hugos68 logging this so we don't miss it - but we'll need one of the following changes for Astro to return to a working state:

Roll back to these dependency versions, which will break support for createRawSnippet(). Used for Rating SVG icons.
Update to the latest version of Astro once they merge this PR fix.

@Hugos68 I've pushed my changes. The disabled and readme modes should discussed.
Note I'm running into three Svelte-specific bugs in Segment.svelte:

Using ctx.api.getItemState(zagProps) has a type error not present in React (see the FIXME comment)
Using state.checked doesn't work (see the FIXME comment)
~Multiple components that bind to the same $state() rune do not stay in sync. Try the sm/md/lg example for React and Svelte to see what I mean.~

#3 was fixed by moving value to the Zag context: {}

All of these are solved now:
The first issue had a type error because there was an extra type labelStatusText that wasn't used and thus was added to the ...zagProps since it wasn't explicitely destructured. I didn' see this prop anywhere in the React implementation so I removed it entirely.
The second issue was because we weren't using $derived so state got out of sync. In React you ofcourse don't have to do this because in React the entire component reruns on every rerender.

I've done some clicking through, here are some things I've noticed:
Accordion (React):

Avatars (React and Svelte) filter example on Safari (I know it's an example, but it might also be used as an example on the docs page - something to keep an eye out for)

Progess Rings: no comment
Segment Control (React and Svelte):
No indication which segment control is selected when pressing tab.
When you have tab focus and navigate with arrow up/down or arrow left/right, keep pressing left or right, it will not jump over from the last one to the first one (or from frist to last) on the first control. It will work on the second and third one.
Switch (React and Svelte)
No tab indication. When using keyboard navigation, there is no indication as to which one is focused.


Deprecated warnings are not shown in the console

We need SkateJS users to become aware of all the static methods that we deprecated.
Only when using a minified bundle we can suppress these deprecated warnings.
Currently DEBUG is only true when we run our Karma unit tests.

I believe this should be resolved now? In a recent updated I've opted to use process.env.NODE_ENV since Webpack 2 handles that automatically, thus simplifying it for us. I've checked the dist bundles and this should be fixed now. If I've closed this in error, please reopen :)


Form to add content doesn't work properly in Safari

If you add content in a Safari browser, there are a lot of tiny annoying errors. If you press enter, the enter appears on top of the content (even if you're at the end). Often you can't select text because the whole screen moves completely up or down and you have to scroll back to the text.
I don't have these errors in Chrome or Firefox, so I usually switch browser to add something. But that shouldn't be necessary, right? Any idea what this could be?

hey lisette, this is rather old.
From what I understood it was an issue with the rich text editor (tinymce).
Have you tried using it with the full screen/maximize option (next to source)?
I'll mark this as won't fix because this is likely a much broader issue between Safari and Drupal/tinymce (our wysiwyg editor).
I would be good if we could test it on another drupal site that also have this rich text editor and see if that works.


CB-3842. Add get DistroX api endpoint for internal CB user

What is the use case for this?

I think we already mentioned in the ticket this is not really a good solution for the problem

@doktoric , i'm recommending to do the integration tests in another PR as it requires a bit more work (CB client set with API keys, where you get a CRN, but for the internal api example it needs to work with the internal actor crn so it requires to intercept the client which is used for testing)

after the merge please implement  https://jira.cloudera.com/browse/CB-3982


Compilation error due to mismatch between compileDebugJavaWithJavac and compileDebugKotlin

This issue started happening after upgrading my Kotlin version to 1.9.20 and Gradle plugin to 8.3.
Whenever I try to run the app on Android devices or Android emulator (no issues with iOS), I get this error message during assembleDebug:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':flutter_contacts:compileDebugKotlin'.
> Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (1.8) and 'compileDebugKotlin' (17).

  Consider using JVM Toolchain: https://kotl.in/gradle/jvm/toolchain
  Learn more about JVM-target validation: https://kotl.in/gradle/jvm/target-validation

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 6s
Exception: Gradle task assembleDebug failed with exit code 1

I have tried to change the following in my app/build.gradle, but nothing seems to have any effect on the final result, I always get the same exact error:
    compileOptions {
        //sourceCompatibility JavaVersion.VERSION_1_8
        //targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        //jvmTarget = '1.8'
        jvmTarget = '17'
    }

This is the content of my android/build.gradle:
buildscript {
    ext.kotlin_version = '1.9.20'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.1.3'
        // START: FlutterFire Configuration
        classpath 'com.google.gms:google-services:4.4.0'
        // END: FlutterFire Configuration
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

This is the content of my app/build.gradle:
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
// START: FlutterFire Configuration
apply plugin: 'com.google.gms.google-services'
// END: FlutterFire Configuration
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    if (!project.hasProperty("namespace")) {
        namespace 'app.airplaza.airplaza'
    }

    // I had to change this to 33 to make it work with Firebase Messaging
    compileSdk 33
    ndkVersion flutter.ndkVersion

    compileOptions {
        //sourceCompatibility JavaVersion.VERSION_1_8
        //targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        //jvmTarget = '1.8'
        jvmTarget = '17'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "app.airplaza.airplaza"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion 31
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            // Add your own signing config for the release build.
            signingConfig signingConfigs.release
            // Signing with the debug keys for now, so `flutter run --release` works.
            //signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    // It seems like the following is not needed anymore:
    // https://stackoverflow.com/questions/49956051/warning-kotlin-plugin-version-is-not-the-same-as-library-version-but-it-is
    //implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    // Import the Firebase BoM
    implementation platform('com.google.firebase:firebase-bom:32.3.1')

    // Add the dependencies for Firebase products you want to use
    // https://firebase.google.com/docs/android/setup#available-libraries
    // When using the BoM, no need to specify versions in Firebase dependencies
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-auth'
    implementation 'com.google.firebase:firebase-database'
    implementation 'com.google.firebase:firebase-messaging'
    // I had to comment out the line below because it was giving me this build error:
    // Could not find com.google.firebase:firebase-ui-auth:. Required by: project :app
    // implementation 'com.google.firebase:firebase-ui-auth'

    // Branch.io Setup for DeepLinks
    // required for all Android apps
    implementation 'io.branch.sdk.android:library:5.+'
    // required if your app is in the Google Play Store (tip: avoid using bundled play services libs)
    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1+'
    // alternatively, use the following lib for getting the AAID
    // implementation 'com.google.android.gms:play-services-ads:17.2.0'
    // optional
    // Chrome Tab matching (enables 100% guaranteed matching based on cookies)
    implementation 'androidx.browser:browser:1.5.0'
    // Replace above with the line below if you do not support androidx
    // implementation 'com.android.support:customtabs:28.0.0'
}

This is the output of my flutter doctor -v:
➜  android git:(main) ✗ flutter doctor -v
[✓] Flutter (Channel stable, 3.16.0, on macOS 14.1.1 23B81 darwin-arm64, locale en-US)
    • Flutter version 3.16.0 on channel stable at /Users/valentino/Flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (28 hours ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc1)
    • Android SDK at /Users/valentino/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.76.0

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 14.1.1 23B81 darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 119.0.6045.159
    ! Error: Browsing on the local area network for iPhone XS Max. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!
➜  android git:(main) ✗ runner
The file /Users/valentino/AndroidStudioProjects/airplaza/android/ios/Runner.xcworkspace does not exist.
➜  android git:(main) ✗ cd ..
➜  airplaza git:(main) ✗ runner
➜  airplaza git:(main) ✗ flutter doctor -v
[✓] Flutter (Channel stable, 3.16.0, on macOS 14.1.1 23B81 darwin-arm64, locale en-US)
    • Flutter version 3.16.0 on channel stable at /Users/valentino/Flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (28 hours ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc1)
    • Android SDK at /Users/valentino/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.76.0

[✓] Connected device (4 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554             • android-arm64  • Android 13 (API 33) (emulator)
    • iPhone XS Max (mobile)      • 00008020-000130A82600013A • ios            • iOS 17.0.3 21A360
    • macOS (desktop)             • macos                     • darwin-arm64   • macOS 14.1.1 23B81 darwin-arm64
    • Chrome (web)                • chrome                    • web-javascript • Google Chrome 119.0.6045.159

[✓] Network resources
    • All expected network resources are available.

• No issues found!

I have also tried to comment out compileOptions and kotlinOptions in the app/build.gradle, replacing them with the jvmToolchain, but the error is still the same:
    kotlin {
        jvmToolchain(17)
    }

    //compileOptions {
    //    sourceCompatibility JavaVersion.VERSION_17
    //    targetCompatibility JavaVersion.VERSION_17
    //}

    //kotlinOptions {
    //    jvmTarget = '17'
    //}

Having same issues.
Execution failed for task ':flutter_contacts:compileDebugKotlin'.

'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

Having same issues.
Execution failed for task ':flutter_contacts:compileDebugKotlin'.

'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

My setup
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.16.0, on Microsoft Windows [Version 10.0.22635.2771], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.5)
[√] Android Studio (version 2022.3)
[√] VS Code (version 1.84.2)
[√] Connected device (4 available)
[√] Network resources
dependencies {
    classpath 'com.android.tools.build:gradle:8.1.3'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.4.0'
}

compileOptions {
    coreLibraryDesugaringEnabled true
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
    jvmTarget = '11'
}

and multi flavor implemented.

Nothing at all?

I fixed this by adding:
    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

to the build.gradle file. Please modify your build.gradle file as follows:
group 'co.quis.flutter_contacts'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.9.0'
    ext.kotlin_coroutines_version = '1.6.4'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.1.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

rootProject.allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 31

    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

    if (!project.hasProperty("namespace")) {
        namespace 'co.quis.flutter_contacts'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
}

Add below code in your project level build.gradle file. This worked for me. Also help me in other modules where same issue occurred.
rootProject.buildDir = '../build'
subprojects {
  afterEvaluate {
        if (project.plugins.hasPlugin("com.android.application")
                || project.plugins.hasPlugin("com.android.library")) {

            if (project.name == "flutter_contacts") {
                project.android.compileOptions {
                    sourceCompatibility = JavaVersion.VERSION_17
                    targetCompatibility = JavaVersion.VERSION_17
                }
            }
        }
    }
    project.buildDir = "${rootProject.buildDir}/${project.name}"
    project.evaluationDependsOn(':app')
}

I have already provided the solution, you simply need to implement it.
Add the following lines to your android/build.gradle:
    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

Please refer to my previous message:

I fixed this by adding:
    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

to the build.gradle file. Please modify your build.gradle file as follows:
group 'co.quis.flutter_contacts'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.9.0'
    ext.kotlin_coroutines_version = '1.6.4'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.1.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

rootProject.allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 31

    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

    if (!project.hasProperty("namespace")) {
        namespace 'co.quis.flutter_contacts'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
}

And yes, this is related to:
https://github.com/QuisApp/flutter_contacts/issues/147
And it still happens with version 1.1.8

OH cmon developer!!! we need real fix for this problem, can you please upgrade you package!!

I have already provided the solution, you simply need to implement it.
Add the following lines to your android/build.gradle:
    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

Please refer to my previous message:

I fixed this by adding:
    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

to the build.gradle file. Please modify your build.gradle file as follows:
group 'co.quis.flutter_contacts'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.9.0'
    ext.kotlin_coroutines_version = '1.6.4'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.1.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

rootProject.allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 31

    kotlin {
        jvmToolchain {
            languageVersion.set(JavaLanguageVersion.of(8))
        }
    }

    if (!project.hasProperty("namespace")) {
        namespace 'co.quis.flutter_contacts'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
}

Is there any negative effect on the project? I mean, is this affecting anything else in the project or breaking something?

Can you please simply update the build.gradle file with the changes I have shown? It really takes 30 seconds, and fixes the issue.

Can you please simply update the build.gradle file with the changes I have shown? It really takes 30 seconds, and fixes the issue.

This is what worked for me:
https://github.com/QuisApp/flutter_contacts/issues/142#issuecomment-1898946388

Hi @Valent1 - thank you for your suggestion and sorry for the delay.
I will push this change https://github.com/QuisApp/flutter_contacts/issues/142#issuecomment-1837259225 in the following version.
Question:

Is this https://github.com/QuisApp/flutter_contacts/issues/142#issuecomment-1898946388 still needed after your recommended changes? (I assume it's not?)
Is this https://github.com/QuisApp/flutter_contacts/pull/170/files still needed after your recommended changes? (I assume it's not?)

Hi all - thanks for your patience and the recommended solutions.
This should be fixed in version 1.1.9. If it is not, please let me know, and reopen this conversation.

Yes, it fixes the issue and the app now compiles fine on Android. Thanks!


How To?

How To merge Agarplus or Ogario Theme with my site ?
AgarCrew.tk
Like: Disable Auto zoom
Custom Food Color
Custom Map Color
You get it!

Client
Client
Client
https://github.com/Megabyte918/MultiOgar-Edited/issues/498
Client
Seriously, why do you have a website if you don't know how to change it.

@adib696 Please do not make issues not related to this project


Anchor test issue

Im having error when i run anchor test.
Failed to run test: mocha -t 1000000 tests/: No such file or directory (os error 2)
I have installed anchor and anchor cli globally.
Really appreciate any resolution

npm install @project-serum/anchor
this seemed to do the trick for me. Somehow my node couldnt get reference to the globally installed @project-serum/anchor

My anchor test is also failing but due to a different issue. Error: failed to send transaction: Transaction simulation failed: Attempt to load a program that does not exist ->> This is shown when i have a local test validator running
->> FetchError: request to http://localhost:8899/ failed, reason: socket hang up This is shown when i stop the test validator and run anchor test

Error: failed to send transaction: Transaction simulation failed: Attempt to load a program that does not exist
this error related to program_id and declared_id! ( in rust )
after first "anchor test" run you get program_id, make sure this address is same in lib.rs and Anchor.toml, if it's not same just put new program_id in both then run "anchor test"


Spiral Knights (99900)

Not going to merge this, you cannot get the game on Steam to run on Linux without adjusting things, developer doesn’t look interested in making this true.
This was likely someone having run the game outside of Steam +1ing the entry.


"Tag removed" event

I think an event which gets triggered, when the user deletes a tag, would be pretty useful. Not just for me.
So, please add such an event :)

You might be interested in testing this PR: https://github.com/alexgorbatchev/jquery-textext/pull/26

will be closed by #26, thank you!


does this connect to mongodb?

Hi I am looking for a preact script or demo that can show me how to set up mongodb to work in preact

@redimongo take a look at this project I created using preact-pwa. I use mongoose to connect to mongodb.


Suggestion

make it UI better instead of console !!

binder too

make it UI better instead of console !!

he left the project, there's no point in asking.


Fix LD path and plugin warning

Updating the install script environment vars, the older ones were breaking the newer install process

What was the issue with using LD_LIBRARY_PATH?

I'm not sure, but if it was set, then bap wouldn't be able to load z3. When I removed that environment variable, it all worked fine

Sounds good


new suggeted features

Hey Guys,
My friends and I have a list of features we would like to implement on dogecoin, and it would be great if i get some feedback to determine weather i should proceed with the development of these features :

Transaction history USD converter
to have a label next the amounts (eg: Total Balance,Transaction history) in USD

Recurring payment feature
to scehdule payments

Transaction label
to add a transaction label in the transaction history

Dynamic fee based on transaction amount

Automatic wallet backup

Import wallet (.dat file) rather than having to move it to the folder manually

balance history line chart
to display a line chart of the balance over time

Thank you,

Transaction history USD converter

Not all people live in the US, and implementing all currencies would end up with a massive amount of dependencies on centralized systems to be able to retrieve the price. Of course these can be updated, but this just seems like a feature that would require too much maintenance, checking and updating IMO.
How can you be sure that the price of all currencies are correct / valid?


tests: Stop bundle creation timing out tests

Previously, makeOCIBundle() would create a fresh bundle every time it
was called. However, since it uses docker to generate the rootfs, that
could take a while on slow systems meaning the tests could timeout.
To overcome this issue, the tests now create a full pristine bundle at
startup and makeOCIBundle() now just copies the pristine bundle to the
location requested by the calling test.
This change also removes the requirement that the bundle directory exist
before calling makeOCIBundle().
Fixes #461.
Signed-off-by: James O. D. Hunt<EMAIL_ADDRESS>

Coverage increased (+0.06%) to 66.156% when pulling de7cb3972a41db3d3f8e452b88597dfc9fe277d4 on jodh-intel:fix-rootfs-copy-test-timeout into 438daca920e443168c57834feca7fd451b131026 on clearcontainers:master.

@grahamwhaley - ta.


themes naming

would be nice to have the theme names for config behind the theme name
and whats the theme u are using in your examples? would love to have this star background :)

Your first comment is completely incomprehensible to me
I think the star one is "Weather_One". It would only show the stars at night which is pretty cool.
Please post feature requests on the MagicMirror forum


bower.herokuapp.com is down

It's down again... (#1385)
Check it out: http://www.websitedown.info/bower.herokuapp.com
https://bower.herokuapp.com/

Now working! Thanks!

bower jquery-placeholder#~2.0.7        EINVRES Request to https://bower.herokuapp.com/packages/jquery-placeholder failed with 500


Add the escape Liquid filter on user content used inside HTML attributes

It prevents breaking the HTML by closing the attribute when a title (or other user content) contains a double-quote.
Documentation for the escape filter: https://shopify.github.io/liquid/filters/escape/
I've added double-quotes in the 2012-05-22-readability-post.md post to illustrate.

Thanks for the PRs 👍

You're welcome, thanks for thus awesome theme!


使用@JsonInclude注解过滤无用属性前台不生效，请支持该属性

使用@JsonInclude注解过滤无用属性前台不生效，请支持该属性

Please provide an english translation

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


module name containing character not allowed in Python identifiers.

Rename this module to remove the offending character '-', or changing it to an underscore '_'.
jumpscale/install/codeserver-install.py
Reasons:

Python module with an invalid name cannot be imported unless using a special syntax (hack)
Nobody expects a module name with a dash
It's against the recommendations of the Python Style Guide

This can be renamed for sure, it was not intended to be a part of "jumpscale" library. Another option to it move it to scripts directory or so outside of "jumpscale" namespace.

This can be renamed for sure, it was not intended to be a part of "jumpscale" library. Another option to it move it to scripts directory or so outside of "jumpscale" namespace.

great, I'm with renaming it, whether it moved or not.

great, I'm with renaming it, whether it moved or not.


Example of multidimensional transform?

Hi, I have a case where I need to implement a 3D FFT. This crate doesn't seem to have an existing utility function for it. I figured I could potentially create my own by combining multiple 1D FFTs, but it seems to have resulted in garbage output. Could an example be added to the repository of how to do a multidimensional transform correctly with this crate? (Even better would be if there were wrapper functions provided by the crate.)
My current attempt looks like this:
// Applies a real-to-complex 3-dimensional FFT to `real`
fn real_to_complex_3d(
  &self, real: &[f32; BLOCK_VOLUME], output: &mut [Complex<f32>; CCNT],
) {
  let scratch_len = self
    .ft
    .0
    .get_inplace_scratch_len()
    .max(self.ft.1.get_inplace_scratch_len())
    .max(self.ft.2.get_inplace_scratch_len());
  let mut scratch = vec![Complex::default(); scratch_len];

  let mut complex =
    real.iter().map(|val| Complex::from(*val)).collect::<Vec<_>>();
  self.ft.0.process_with_scratch(&mut complex, &mut scratch);
  self.ft.1.process_with_scratch(&mut complex, &mut scratch);
  self.ft.2.process_with_scratch(&mut complex, &mut scratch);

  output.iter_mut().zip(complex.iter()).for_each(|(out, inn)| {
    *out = *inn;
  });
}

Your solution is not far off, you "just" need to transpose the data between the FFT steps so that each FFT runs along the correct axis.
But have you looked at ndrustfft? I haven't tried it but looks like it should be able to do what you need.
https://crates.io/crates/ndrustfft

I see, I'll "just" do that if I can. :laughing: Thanks. :slightly_smiling_face:
I did look at ndrustfft, but I wanted to avoid the dependency on ndarray. Last time I tried that crate, it was quite slow. Although that was some time ago, it looks like they've been iterating, so I guess that could also be worth trying once more.

Yeah there is quite a lot hidden in that "just" 😆
BTW roughly how large is your data? If it fits in the cpu cache, then you can get away with using simple transpose algorithms. But those get painfully slow for larger data. From a quick look I think ndrustfft is using something simple, could explain why you thought it was slow. Speeding up transposing is quite some work. This is for example what is used in RustFFT, and that's only for 2d! https://github.com/ejmahler/transpose/blob/master/src/out_of_place.rs

I can't remember anymore, this was quite some time ago when I was messing around with some ML stuff in Rust. ndrustfft itself doesn't quite have just a "xd_transform" function, but they did have examples showing how to do it, so I ended up using that. The data I'm working with can be several MB but the transforms are in 16x16x3 chunks, so not terribly large and easily doable in cache..

I think RustFFT would benefit from something built in that does this. It seems like a common request, and easy enough to get wrong that people would benefit from a central utility.
I unfortunately don't have a lot of motivation for side projects right now, but if someone else makes a PR for a n-d FFT, tests it, etc I'd be happy to accept.

Hi,
author of ndrustfft here; I crossed this issue by chance. The topic seems to be quite important because of its relevance to image processing and numerical computation, so I decided to do some tests.
Assuming we have a two-dimensional array of size n x n, the two approaches are:
"transpose"

Transpose data, if necessary
Compute 1 fft of size n x n
Transpose back, if necessary

The transpose is done out of place, hopefully effciently with transposes very similar to
https://github.com/ejmahler/transpose
I think multidimensional transposes can be done in a similar way by adjusting
the row and col sizes appropriately, however, I haven't thought too deeply about that.
"ndrustfft"

Iterate over 1d lanes -> Array1View
Copy data into slice, if 1d view is not contiguous,
Compute n ffts of size n

The code can be found here:
https://github.com/preiter93/ndfft_test
(This is only a proof of concept)
Here is a performance comparison (time in ms):
FFT along outer axis (transpose is not necessary)

N
ndrustfft
transpose

128
0.09
0.04

256
0.4
0.24

512
2.22
1.64

1024
10.3
4.77

FFT along inner axis (transpose is necessary)

N
ndrustfft
transpose

128
0.24
0.1

256
1.12
0.56

512
8.41
5.08

1024
42.92
19.49

So I think the transposition-based approach is promising. The advantages are
(1) Better Performance (~50%)
However, the disadvantages are
(1) more memory is needed if a out of place transpose. In-place transpose is less efficient,  see ejmahler/transpose#4.
(2) it is harder to parallelize, whereas ndrustfft is very easy to parallelize and scales quite well.
I don't know how much time I have to pursue this topic further, but I hope this has given a little insight.

hey I wasn't sure if I should post here or on #90 . Are you open to PRs for this? What are the constraints? I was thinking about doing something similar to how burn handles multiple tensor implementations: providing a trait that could be implemented on matrix/tensor types


The size value displays blank for one ADLS Gen2 blob with 0 B size

Storage Explorer Version: 1.26.0-dev
Build Number: 20220811.4
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 22.04/MacOS Monterey 12.5 (Apple M1 Pro)
Architecture: ia32/x64
How Found: Ad-hoc testing
Regression From: Previous release (1.24.1)
Steps to Reproduce

Expand one ADLS Gen2 storage account -> Blob Containers.
Create a blob container -> Upload one blob with 0 B.
Observe the blob in the editor.
Check the size value displays 0 B.

Expected Experience
The size value displays 0 B.

Actual Experience
The size value displays blank.

Verified this issue on the build main/20220825.4. Fixed. So, we are going to close it.


use cocoa pod to the project

i use cocoa pod to project ,the i found whatever i do ,there had a problem named 'mysql/client_plugin.h' file not found', so can u answer me why do the Xcode can not find the header file, ps:the search path is right(u can make a demo use cocoa pod then u will find the problem );

@MWangxj any progress?

I fixed that in https://github.com/oleghnidets/OHMySQL

ok  thanks , now i do not do the mac developer any more


Added stylings to landing page

Something I've been noodling on the side. Created a logo in Canva, and just added some CSS to the login page. This is how it currently looks. Haven't changed any of the CSS for the rest of the website. Hope you guys like it

!

Looks great! The background doesn't extend to the bottom of the page for me, not sure if that's intentional or not.

@phreid ah yes, there will be some whitespace at the bottom. This is due to me only adding background color for the container because to change the background image of the whole page, I'd have to target the HTML and body, which consequently affect the rest of the pages too. So for now it's this, and will try fixing the whitespace after getting done with the main map/location functionality


issue/5558-Logging-improvement-for-nullable-list (#6997)

Pull request opened by the merge tool on behalf of #6997

Merged into branches iso6 in 9144f721f3130471e5ca59066f1527249e9709df