Docker symlink fixes

This pull request addresses an issue I found in the setup script that is run inside the docker container on startup. Due to how trivial it is there is no open issue for this.
What currently happens: On first run, the following symlinks are created:

/app/gogs/log -> /data/gogs/log
/app/gogs/data -> /data/gogs/data
/home/git -> /data/git

On second run (upgrade/restart) the following links are created because the existing target links are followed:

/data/gogs/log/log -> /data/gogs/log
/data/gogs/data/data -> /data/gogs/data
/data/git/git -> /data/git

These are circular links. This pull request uses the -n option (treat LINK_NAME as a normal file if it is a symbolic link to a directory) to prevent this from happening on container restart.

Thank you!


Rename converting-a-xen-image-to-ovf-for-use-in-the-tier-3-cloud.md t…

Rename converting-a-xen-image-to-ovf-for-use-in-the-tier-3-cloud.md to converting-a-xen-image-to-ovf-for-use-in-centurylinkcloud.md
Proposing file name change from tier3 cloud to CLC, as it is causing a travis conflict for me and should be renamed anyway (travis: File '/home/travis/build/CenturyLinkCloud/PublicKB/Servers/converting-a-xen-image-to-ovf-for-use-in-centurylinkcloud.md' not found)

see above re: renaming/travis error


Not handling syntax correctly with docker-machine

The command below is valid powershell syntax, but the highlighting does not believe the string is terminated:
$ErrMsg = $(docker-machine ls --filter name=MachineName --format "{{.Error}}")

Looks like https://github.com/PowerShell/EditorSyntax handles it correctly.
We are planning to switch to their grammar soon.
Stay tuned.


Smapp displays NaN GiB data size on Smesher screen

Environment

Smapp version: 1.2.1
OS: Windows

Describe the bug
Smapp displays Data Size: NaN GiB on the Smesher screen.

Smapp is synced,
Node config contains a valid numUnits field,
SmesherService.PostConfig returns a valid values

Steps to reproduce

Run Smapp (smeshing should be already set up)
Wait for Smapp to connect to Node
Go to the Smesher screen

Expected behavior
It should display the actual PoS size
Actual behavior
It displays NaN GiB instead

@maparr After multiple attempts, I still could not reproduce it. The user that reported it initially confirmed on Discord that it disappeared for him as well by itself after some time.

Another User reported it, Sentry report ID aaf4ce744f69481182eae00d950dec4c

another report: https://discord.com/channels/623195163510046732/981144592403537930/1163863347423363122

I wanted to share my thoughts on this particular issue. During the database compaction process introduced in go-spacemesh, there were instances where the node failed to respond correctly and provided inaccurate responses to smapp requests. Alternatively, it's possible that smapp had trouble interpreting the response correctly.
This problem was temporary and only affected users while they were compacting their databases, requiring them to wait for 4-24 hours for the process to complete.
While this issue bears some resemblance to issue 1474, it is a distinct problem.
In conclusion, this was a brief issue that primarily occurred when users had large state database sizes. Currently, the community is no longer experiencing this problem.
It's worth noting that we may encounter issues in any part of the system if it behaves differently from previous versions, such as longer response times from the node or the node waiting for certain conditions.
However, I haven't been able to reproduce this issue properly when my database state is not big, and the community hasn't reported the problem lately. In my opinion, we are in an acceptable state. Even if we were to attempt a fix, it would lack proper testing, which I strongly discourage.
cc: @lrettig , @brusherru , @monikasmolarek

@brusherru I have a similar problem but on the POS setup page:


Install Generator Fails: "No such middleware to insert after: ActionDispatch::ParamsParser"

Executing bundle exec rails generate bootsy:install on Rails 5.0.0.beta1.1 causes this error.
.rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.beta1.1/lib/
action_dispatch/middleware/
stack.rb:99:in `assert_index': No such middleware to
insert after: ActionDispatch::ParamsParser (RuntimeError))

I tried 4.2.5 which works just fine so definitely something that changed in Rails 5 that's causing this.

Maybe some :sparkling_heart: from @tenderlove could help solve this?

Thanks for reporting! I didn't yet started upgrading Bootsy to Rails 5 but this will be addressed shortly.

this comes from remotipart, see JangoSteve/remotipart#139

Thanks for the info!

Thanks all for your patience. This issue is now fixed as Bootsy no longer depends on Remotipart.


✏  fixed a typo

I just fixed a minor typo, so I decided not to create an issue for it.

Btw, great list, loving it 💛
Thanks for sharing it with the community.

Thank you so much for the PR, Dávid! Super excited that you find the booklist useful! Feel free to send any more suggestions my way via PR or Issue.


Callbacks/webhooks support

Hi, and thanks for all the great work on this package.
OpenAPI 3.x / Swagger supports callbacks, but I can't seem to find any docs or code related to that in Swashbuckle. I have an ASP.NET Core API with webhooks that I'd like to use with Swashbuckle and display in the Swagger UI page.

Does Swashbuckle.AspNetCore support callbacks?
If so, how can I set that up? Using attributes, XML documentation, etc.?
If not, I'd like to make a feature request for it.

PS: Let me know if this is belongs on StackOverflow instead of here as per the contributing guidelines, and I'll move it.

Any update on this issue? I'm also interested in it.

Me as well!

now that version 5.0 with openapi 3.0 support has been released, maybe we can revisit this?

Would also love to see this implemented.

I've no idea what this would even look like, bearing in mind that Swashbuckle generates API descriptions based on the information it can infer from static code constructs - routes, action signatures, attributes, class definitions, serializer configuration etc. I'm not aware of any such constructs that could be used to indicate which webhooks (if any) an action will support.
You could possibly go down the custom attribute approach, whereby you annotate operations with "documentation-specific" attributes to provide webhook metadata that can then be added to the generated document. Swashbuckle already has a Swashbuckle.AspNetCore.Annotations library that does something similar for other Swagger/OpenAPI metadata so extending this would be the approach I would recommend.
If someone on this thread is intereseted in taking on a POC, and putting together a proposed solution that would probably be the quickest approach to gaining traction on this feature?

Hope this solution helps someone along until native support is added.
Assumptions:

My API registers callbacks for different event types. These are always enum values in my system.
Create SwaggerCallbackSchemaAttribute that I apply to each enum value to indicate the callback payload schema for that event type
Operation filter that constructs the basic callback structure by reflection

Attribute
    [AttributeUsage(AttributeTargets.Field)]
    public class SwaggerCallbackSchemaAttribute : Attribute
    {
        public Type SchemaType { get; }

        public SwaggerCallbackSchemaAttribute(Type schemaType)
        {
            SchemaType = schemaType;
        }
    }

Operation filter
public class WebhookCallbacksOperationFilter : IOperationFilter
    {
        private readonly OpenApiResponses defaultCallbackResponses = new OpenApiResponses()
        {
            {"200", new OpenApiResponse(){Description = "Your server implementation should return this HTTP status code if the data was received successfully"}},
            {"4xx", new OpenApiResponse(){Description = "If your server returns an HTTP status code indicating it does not understand the format of the payload the delivery will be treated as a failure. No retries are attempted."}},
            {"5xx", new OpenApiResponse(){Description = "If your server returns an HTTP status code indicating a server-side error the delivery will be treated as a failure. No retries are attempted."}},
        };

        private class Callback
        {
            public string Name { get; set; }

            public OpenApiCallback CallbackObj { get; set; }
        }

        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            // Search the parameters of this method for any properties that may have the SwaggerCallbackSchemaAttribute applied
            // assign that field name to the callback section
            foreach (var parameterInfo in context.MethodInfo.GetParameters())
            {
                foreach (var callback in FindCallbacks(parameterInfo, context))
                {
                    operation.Callbacks.Add(callback.Name, callback.CallbackObj);
                }
            }
        }

        private IEnumerable<Callback> FindCallbacks(ParameterInfo parameterInfo, OperationFilterContext context)
        {
            // Iterate through all of the Properties on the parameter and see if any of their types contain the attribute
            foreach (var propInfo in parameterInfo.ParameterType.GetProperties())
            {
                if ((!propInfo.PropertyType.IsEnum )
                {
                    continue;
                }

                var enumType = propInfo.PropertyType;
                foreach (var pmInfo in enumType.GetMembers(BindingFlags.Public | BindingFlags.Static))
                {
                    var callbackAttrib = pmInfo.GetCustomAttribute<SwaggerCallbackSchemaAttribute>();
                    if (callbackAttrib == null)
                    {
                        continue;
                    }

                    var obsoleteAttrib = pmInfo.GetCustomAttribute<ObsoleteAttribute>();
                    var enumMemberAttrib = pmInfo.GetCustomAttribute<EnumMemberAttribute>();
                    var enumValue = enumMemberAttrib != null && !string.IsNullOrEmpty(enumMemberAttrib.Value) ? enumMemberAttrib.Value : pmInfo.Name;

                    var callbackObjRequest = new OpenApiRequestBody();
                    callbackObjRequest.Content.Add(
                        "application/json", new OpenApiMediaType()
                        {
                            Schema = new OpenApiSchema()
                            {
                                Reference = new OpenApiReference()
                                {
                                    Id = callbackAttrib.SchemaType.Name,
                                    Type = ReferenceType.Schema
                                }
                            }
                        }
                    );

                    var callbackObj = new OpenApiPathItem();
                    callbackObj.Operations.Add(
                        OperationType.Post, new OpenApiOperation()
                        {
                            Summary = enumValue,
                            RequestBody = callbackObjRequest,
                            Deprecated = obsoleteAttrib != null,
                            Responses = defaultCallbackResponses
                        }
                    );

                    yield return new Callback()
                    {
                        Name = enumValue,
                        CallbackObj = new OpenApiCallback()
                        {
                            PathItems = new Dictionary<RuntimeExpression, OpenApiPathItem>()
                            {
                                {
                                    RuntimeExpression.Build("https://YOUR-SERVER-URL/"), callbackObj
                                }
                            }
                        }
                    };
                }
            }
        }
    }

Usage
public enum WebhookEventType
    {
        [EnumMember(Value = "send.payload")]
        [SwaggerCallbackSchema(typeof(WebhookPayload))]
        SendPayload
}

Thanks Sverrirs.  Would you be able to post a link (or at list a screen capture) so we can see what the generated webhook entry looks like in the API docs?

Is someone doing a PR on this?

I have implemented Sverrirs suggested fix to this problem but I now get the error
Could not resolve reference: Could not resolve pointer: /components/schemas/WebhookPayload does not exist in document
Am I missing something?
My WebhookPayload class is
`public class WebhookPayload
{
///
///
///
public Guid OrderId { get; set; }
    /// <summary>
    ///
    /// </summary>
    public string OrderNumber { get; set; }
}`

And my webhook registration Model is
public class Webhook     {         public WebhookEventType EventType { get; set; }         public string WebhookUri { get; set; }         public bool Enabled { get; set; }         public string Secret { get; set; }     }
Swagger is outputting the POST endpoint and including the Callback tab but the example is blank.
Any help would be greatly appreciated

I have implemented Sverrirs suggested fix to this problem but I now get the error
Could not resolve reference: Could not resolve pointer: /components/schemas/WebhookPayload does not exist in document
Am I missing something?
My WebhookPayload class is
`public class WebhookPayload
{
///
///
///
public Guid OrderId { get; set; }
    /// <summary>
    ///
    /// </summary>
    public string OrderNumber { get; set; }
}`

And my webhook registration Model is
public class Webhook     {         public WebhookEventType EventType { get; set; }         public string WebhookUri { get; set; }         public bool Enabled { get; set; }         public string Secret { get; set; }     }
Swagger is outputting the POST endpoint and including the Callback tab but the example is blank.
Any help would be greatly appreciated

@briansboyd it looks like this. I can't seem to get the Request Body populated... any suggestions?

@sverrirs I have (slightly) improved upon your code and built a nuget library to do this. The package is here:
https://www.nuget.org/packages/Rocklan.SwaggerGen.Callbacks
Code is in github here:
https://github.com/rocklan/Rocklan.SwaggerGen.Callbacks
If anyone would like to contribute that would be great, or if @domaindrivendev would like to suggest a better approach or for it to be merged somewhere then I'm all ears.

@danielgradwell you're seeing this error, because generated schemas in swagger.json does not include definition for WebhookPayload.
You could use something like custom document filter to explicitly add WebhookPayload definition to the document.

So I took a bit of a different approach. I needed the ability to specify which callback would be executed for a given operation without a way of determining this from the request body. I did this using an Attribute on the controller Action and a custom operation filter. Below is my take on this.
WebApi Controller Action
        [HttpPost]
        [Consumes(MediaTypeNames.Application.Json)]
        [SwaggerResponse(201, "Created", typeof(MyResponseModel), MediaTypeNames.Application.Json)]
        [SwaggerCallbackSchema(WebhookEventType.EventTypeOne, typeof(CallBackPayloadDataDTO))]
        [SwaggerCallbackSchema(WebhookEventType.EventTypeTwo, typeof(CallBackPayloadDataDTO))]
        [Authorize]
        public async Task<IActionResult> Post(MyRequestModel request, CancellationToken cancellationToken)
        {
              // Your code here
              return Ok();
        }

Attribute
    /// <summary>
    /// Add this attribute to an action method to indicate the action (operation) publishes an callback.
    /// </summary>
    [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
    public class SwaggerCallbackSchemaAttribute : Attribute
    {
        /// <summary>
        /// Unique type (eg, an enum's property) of this callback
        /// </summary>
        public Type SchemaType { get; }

        /// <summary>
        /// Example URL to show on the swagger page
        /// </summary>
        public string Name { get; }

        /// <summary>
        /// Registers a Callback.
        /// </summary>
        /// <param name="name">A string or Enum to use as the name.</param>
        /// <param name="schemaType">The type of object being returned.</param>
        /// <exception cref="ArgumentNullException"></exception>
        public SwaggerCallbackSchemaAttribute(object name, Type schemaType)
        {
            if (name == null) throw new ArgumentNullException(nameof(name));
            if (schemaType == null) throw new ArgumentNullException(nameof(schemaType));

            Name = GetName(name);
            SchemaType = schemaType;
        }

        private static string GetName(object name)
        {
            if (name is string sName)
            {
                return sName;
            }
            else if (name is Enum eName)
            {
                return FromEnum(eName);
            }
            throw new ArgumentException($"{name.GetType().FullName} is not supported");
        }

        private static string FromEnum(Enum value)
        {
            var member = value.GetType().GetMember(value.ToString(),
                MemberTypes.Field, BindingFlags.Public | BindingFlags.Static).FirstOrDefault();
            if (member == null) return value.ToString();

            var attribute = member.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
            if (attribute == null) return value.ToString();
            return attribute.Value;
        }
    }

Operation Filter
    /// <summary>
    /// Adds support for callbacks to the swagger doc
    /// </summary>
    public class CallbacksOperationFilter : IOperationFilter
    {
        private static readonly OpenApiResponses _defaultCallbackResponses = new OpenApiResponses()
        {
            {"200", new OpenApiResponse(){
                Description = "Your server implementation should return this HTTP status " +
                "code if the data was received successfully"}},
            {"4xx", new OpenApiResponse(){
                Description = "If your server returns an HTTP status code indicating " +
                "it does not understand the format of the payload the delivery will be treated as a failure. No retries are attempted."}},
            {"5xx", new OpenApiResponse(){
                Description = "If your server returns an HTTP status code indicating " +
                "a server-side error the delivery will be treated as a failure. retries are attempted."}},
        };

        private readonly XPathNavigator _xmlNavigator;

        public CallbacksOperationFilter(XPathDocument xmlDocument)
        {
            _xmlNavigator = xmlDocument.CreateNavigator();
        }

        private class Callback
        {
            public string Name { get; set; }

            public OpenApiCallback CallbackObj { get; set; }
        }

        /// <summary>
        /// Modifies the operations section of the swagger page to add callbacks
        /// </summary>
        /// <param name="operation"></param>
        /// <param name="context"></param>
        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            foreach (var attribute in context.MethodInfo
                .GetCustomAttributes<SwaggerCallbackSchemaAttribute>())
            {
                context.SchemaGenerator.GenerateSchema(attribute.SchemaType, context.SchemaRepository);

                var callback = CreateCallback(attribute);
                operation.Callbacks.Add(callback.Name, callback.CallbackObj);
            }
        }

        private Callback CreateCallback(SwaggerCallbackSchemaAttribute attribute)
        {
            var obsoleteAttrib = attribute.SchemaType.GetCustomAttribute<ObsoleteAttribute>();

            var (summary, description) = GetContent(attribute);

            var callbackObj = new OpenApiPathItem()
            {
                Operations = new Dictionary<OperationType, OpenApiOperation>()
                {
                    { OperationType.Post, new OpenApiOperation()
                        {
                            Summary = summary,
                            Description = description,
                            RequestBody = new OpenApiRequestBody()
                            {
                                Content = new Dictionary<string, OpenApiMediaType>()
                                {
                                    { "application/json", new OpenApiMediaType()
                                        {
                                            Schema = new OpenApiSchema()
                                            {
                                                Reference = new OpenApiReference()
                                                {
                                                    Id = attribute.SchemaType.Name,
                                                    Type = ReferenceType.Schema
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            Deprecated = obsoleteAttrib != null,
                            Responses = _defaultCallbackResponses
                        }
                    }
                }
            };

            return new Callback()
            {
                Name = attribute.Name,
                CallbackObj = new OpenApiCallback()
                {
                    PathItems = new Dictionary<RuntimeExpression, OpenApiPathItem>()
                    {
                        {
                            RuntimeExpression.Build("http://www.thirdparty.com/webhook_endpoint"), callbackObj
                        }
                    }
                }
            };
        }

        private (string summary, string description) GetContent(SwaggerCallbackSchemaAttribute attribute)
        {
            // ref: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/v6.3.1/src/Swashbuckle.AspNetCore.SwaggerGen/XmlComments/XmlCommentsOperationFilter.cs#L39-L56
            var name = XmlCommentsNodeNameHelper.GetMemberNameForType(attribute.SchemaType);
            var typeNode = _xmlNavigator.SelectSingleNode($"/doc/members/member[@name='{name}']");

            string summary = null;
            string description = null;
            if (typeNode != null)
            {
                var summaryNode = typeNode.SelectSingleNode("summary");
                if (summaryNode != null)
                {
                    summary = XmlCommentsTextHelper.Humanize(summaryNode.InnerXml);
                }

                var remarksNode = typeNode.SelectSingleNode("remarks");
                if (remarksNode != null)
                {
                    description = XmlCommentsTextHelper.Humanize(remarksNode.InnerXml);
                }
            }

            return (summary, description);
        }
    }

@MattMinke I know its been a while but how did you instantiate the XPathDocument instance in your DI? Trying to use this now and that's the one thing not in your example

The question was asked and then deleted as to how I instantiated the XPathDocument in my DI. This is what I did. There are probably better ways to do this but it works for my needs.
services.AddSwaggerGen(c =>
{

    c.OperationFilter<CallbacksOperationFilter>(new XPathDocument(Path.Combine(System.AppContext.BaseDirectory, "MyProject.Domain.WebApi.xml")));
    c.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "MyProject.Domain.WebApi.xml"));
    c.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "MyProject.Common.xml"));

    // Remainder of the configuration for Swagger.
    //  ......
}

Maybe there could be a method to add this like?
builder.Services.AddSwaggerGen(c =>
{
    c.AddWebhook<PaymentNotification>("application/json");
    c.AddWebhook<PullRequestMergedNotification>("application/x-www-form-urlencoded");
}

It would need to document things such as the model send through POST, the content type, any headers (such as "Signature"), any query string parameters (such as "secret").

Any updates on this issue? I'm also interested in that. I don't think this is a low priority issue

It should be possible to implement this in Swashbuckle because the OpenAPI specification includes callbacks.
https://swagger.io/docs/specification/callbacks/

Might be worth having a read of this https://github.com/rocklan/Rocklan.SwaggerGen.Callbacks haven’t tested it myself but looks very positive.


minify code

storage is becoming increasingly expensive:

To save on storage, let's use a code minifier to make the python codebase nice and lean.

I have read the CLA Document and I hereby sign the CLA

How about using the C preprocessor to implement dictionary based compression?


Translation result is unexpected！

Hello, I used the pre-trained model of ProstT5 to convert the protein sequence into 3Di, but I found that the result is full of "d" and "p", if the sequence is short, there is only d and p, if the sequence is long, then the beginning parts are all d and p, what is the reason for this?

Hi; yes this is unfortunately, there is quite some class-imbalance within the original 3Di states with "d" and "p" being the 2nd and 3rd most abundant class (see Fig. S1D here: https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>0085v2.supplementary-material). Those 3Di states seem to encode mostly loopy/other regions without helix/strand content (see Fig. S1B here: https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>0085v2.supplementary-material).
So ProstT5 picked up the underlying bias in the 3Di states and might make it even a bit worse by always predicting stretches of d or p if it can not assign it to either helix/sheet.


fixExport does not support viewing clear error messages

Proposed changes
export does not support exporting views, but the submission can be successful. The information given to the user here is wrong. It should be clearly indicated that it is not supported, instead of allowing the user to view it through the show export command, and the information seen by the show export command is also inaccurate. Yes, but the prompt was canceled without knowing the specific reason。
Previous assignment submissions：

current job submission：

Issue Number: close #xxx

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

@BePPPower

Do not merge this, we will handle it in other PR

run buildall


AMI-1215 Integrate dynamic config

PLEASEREVIEW @MatthaeusHarris @instantlinux @ronniedada
Integrates dynamic config into sidecar.
REPLACES #5
RELATED: https://github.com/SplunkStorm/safonovo/pull/65
RELATED: https://github.com/SplunkStorm/amoeba/pull/18

:zap:


vmxt terminates when running on CentOS 7.5

$ uname -a
Linux ESXi.fritz.box 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[mwiget@ESXi vmx]$ cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
$

Tried vMX 18.3 and earlier versions and they don't get fpc up and running. RIOT is running but vmxt isn't. Seems to be a kernel related issue?
Ubuntu  uses kernel version 4.x and there vMX 18.3 (and earlier)versions run fine.
$ uname -a
Linux sb 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Hmm. Upgraded kernel to 4.x and the issue remains, vmxt doesn't run within the container:
$ uname -a
Linux ESXi.fritz.box 4.18.11-1.el7.elrepo.x86_64 #1 SMP Sat Sep 29 09:42:38 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/meminfo |grep Huge
AnonHugePages:   1423360 kB
ShmemHugePages:        0 kB
HugePages_Total:       5
HugePages_Free:        4
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB
Hugetlb:         5242880 kB
$ docker -v
Docker version 18.06.1-ce, build e68fc7a
]$

--- JUNOS 18.3R1.9 Kernel 64-bit  JNPR-11.0-20180816.8630ec5_buil
mwiget@vmx1> show chassis fpc
                     Temp  CPU Utilization (%)   CPU Utilization (%)  Memory    Utilization (%)
Slot State            (C)  Total  Interrupt      1min   5min   15min  DRAM (MB) Heap     Buffer
  0  Present          Absent
  1  Empty
  2  Empty
  3  Empty
  4  Empty
  5  Empty
  6  Empty
  7  Empty
  8  Empty
  9  Empty
 10  Empty
 11  Empty

Reading the core file with gdb:
mwiget@sb:~$ !gdb
gdb vmxt core.2673
GNU gdb (Ubuntu 8.1-0ubuntu3) <IP_ADDRESS>80409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from vmxt...(no debugging symbols found)...done.

warning: core file may not match specified executable file.
[New LWP 2673]
[New LWP 2676]
[New LWP 2675]
[New LWP 2674]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/share/pfe/vmxt -N -C 4'.
Program terminated with signal SIGABRT, Aborted.
#0  0xf7735430 in __kernel_vsyscall ()
[Current thread is 1 (Thread 0xf728a700 (LWP 2673))]
(gdb) where
#0  0xf7735430 in __kernel_vsyscall ()
#1  0xf72b9832 in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xf72bacc1 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0x08084650 in ?? ()
#4  0x080884bc in ?? ()
#5  0x08089366 in ?? ()
#6  0x080893e9 in ?? ()
#7  0x08080a25 in ?? ()
#8  0x0807c330 in ?? ()
#9  0x0807a2f0 in ?? ()
#10 0x080618a3 in ?? ()
#11 0xf72a4e81 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#12 0x08063a0d in ?? ()

Same issue with vmxt when running junos-vmx-x86-64-18.1R1.9.qcow2 on juniper/openjnpr-container-vmx:trusty, which is based on Ubuntu 14.04.5 LTS.


Restructure files under src directory

As planned in redesign doc, we are restructuring files to make room for GraphQL APIs. This is the prerequisite for #144 .
Changes include:

Introduce babel-plugin-module-resolver and pin resolve route to project root to make cross-directory import easier
Collect webhook related files and functions under src/webhook
Collect libraries that is going to use across webhook and GraphQL APIs into src/lib
Tidy up src/index so that it only takes sub-router from src/webhook (and in the future, src/graphql) and hook them into the correct route. Webhook route logics goes to src/webhook/index.js

Pull Request Test Coverage Report for Build 653

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.25%

Totals

Change from base Build 650:
0.0%

Covered Lines:
219

Relevant Lines:
225

💛  - Coveralls


Roll engine 3953c3ccd15a..9193d8ff8303 (25 commits)

git@github.com:flutter/engine.git/compare/3953c3ccd15a...9193d8ff8303
git log 3953c3ccd15a..9193d8ff8303 --first-parent --oneline
2020-05-08<EMAIL_ADDRESS>Roll src/third_party/skia 0dc207f836da..a14084ba1b41 (3 commits) (flutter/engine#18219)
2020-05-08<EMAIL_ADDRESS>Add FlValue (flutter/engine#18185)
2020-05-08<EMAIL_ADDRESS>[SkParagraph] Copy text height behavior to the Skia paragraph style (flutter/engine#18178)
2020-05-08<EMAIL_ADDRESS>[web] Implement matrix parameter for linear gradient (flutter/engine#18208)
2020-05-08<EMAIL_ADDRESS>Reland again "Remove layer integral offset snapping #17112" (flutter/engine#18160)
2020-05-08<EMAIL_ADDRESS>Roll src/third_party/skia c66cd987f7c0..0dc207f836da (5 commits) (flutter/engine#18212)
2020-05-08<EMAIL_ADDRESS>Refactor GLFW embedding to support headless mode (flutter/engine#18205)
2020-05-07<EMAIL_ADDRESS>Manual Roll of Dart 39e0e75fcf...ce62ad2e8b (flutter/engine#18211)
2020-05-07<EMAIL_ADDRESS>Support EventChannel C++ plugin API for Linux/Windows (flutter/engine#17015)
2020-05-07<EMAIL_ADDRESS>Handle leak of message handle when no engine present (flutter/engine#18157)
2020-05-07<EMAIL_ADDRESS>add docs to platformviewios (and some drive-by changes) (flutter/engine#17593)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia 0066adefa97d..c66cd987f7c0 (4 commits) (flutter/engine#18206)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia edea19858ccc..0066adefa97d (3 commits) (flutter/engine#18203)
2020-05-07<EMAIL_ADDRESS>Remove the global engine entry timestamp (flutter/engine#18182)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/dart e86e4d61834a..ce62ad2e8b40 (13 commits) (flutter/engine#18201)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia 2871ab0727bf..edea19858ccc (3 commits) (flutter/engine#18198)
2020-05-07<EMAIL_ADDRESS>Fixed ChildSceneLayer elevation issue on Fuchsia. (flutter/engine#18144)
2020-05-07<EMAIL_ADDRESS>[profiling] CPU Profiling support for iOS (flutter/engine#18087)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia e3d1de7c5281..2871ab0727bf (1 commits) (flutter/engine#18197)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/dart 733153eb517c..e86e4d61834a (6 commits) (flutter/engine#18195)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia 3b2db26c59d6..e3d1de7c5281 (4 commits) (flutter/engine#18192)
2020-05-07<EMAIL_ADDRESS>Roll fuchsia/sdk/core/mac-amd64 from jMJqf... to 1MVsE... (flutter/engine#18194)
2020-05-07<EMAIL_ADDRESS>Roll fuchsia/sdk/core/linux-amd64 from RpHTv... to MhpFP... (flutter/engine#18191)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/skia 88d04cb51acf..3b2db26c59d6 (1 commits) (flutter/engine#18190)
2020-05-07<EMAIL_ADDRESS>Roll src/third_party/dart 4da5b40fb6dc..733153eb517c (23 commits) (flutter/engine#18188)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

AutoRoller is stopped; closing the active roll.


Hexagonal Arch: add new test - secondary can call primary from another context

I'm trying to improve the HexagonalArchTest and I saw this issue.
In FileSystemJHipsterModulesRepository which is in secondary, we import a class from primary. We should use a port instead I think. Can you have a look and suggest a fix plz @DamnClin ?
package tech.jhipster.lite.module.infrastructure.secondary;

import org.springframework.stereotype.Repository;
import tech.jhipster.lite.error.domain.Assert;
import tech.jhipster.lite.module.domain.JHipsterModuleApplied;
import tech.jhipster.lite.module.domain.JHipsterModuleChanges;
import tech.jhipster.lite.module.domain.JHipsterModulesRepository;
import tech.jhipster.lite.module.domain.postaction.JHipsterModuleExecutionContext;
import tech.jhipster.lite.npm.domain.NpmVersions;
import tech.jhipster.lite.project.infrastructure.primary.JavaProjects; // <--- should not import a primary here
import tech.jhipster.lite.projectfile.domain.ProjectFilesReader;

This is not a bug, it's totally fine! A secondary from one context can call a primary from another context. Here we are doing a java adaptation.

Oh I see, tell me if I'm correct:

a secondary can't call a primary from the same context
a secondary can call a primary from another context

Yep

Then, I'm changing the ticket, because I wonder if we could write an arch unit test for that, I think it should not be so easy

I think it's not really hard to do, loop other the context packages and ensure that the secondary package have no dependency to the primary one

maybe the test could ensure that only primary classes containing Java could be called from a secondary package?

Adding a bounty as it's more work than expected, and need to think deeply to provide the good solution here


Add Support for functional Interface

When I try to create a job without having an explicit class defined, it fails and isn't able to find the class. Sample code:
       return JobBuilder
                .newJob(((Job) context -> {
                    log.debug("No class yay");
                }).getClass())
                .withIdentity("SampleJob1")
                .withDescription("SampleJob1")
                .storeDurably()
                .build();

I get the following error:
org.quartz.JobPersistenceException: Couldn't retrieve job because a required class was not found: com.example.common.cron.JobConfig$$Lambda$183/1691426065 [See nested exception: java.lang.ClassNotFoundException: com.example.common.cron.JobConfig$$Lambda$183/1691426065]

Job is an interface so needs to implement execute method. May be that could be the reason.

Yes but the lambda function takes care of that. I think it's more to do with a dynamic class generated rather than a precomputed   class.

Lambda expressions create abstract classes which are dynamically built at runtime using InvokeDynamic.
A good read
https://www.infoq.com/articles/Java-8-Lambdas-A-Peek-Under-the-Hood/


Roll Flutter Engine from 328a4b24e250 to 56af76d122cc (1 revision)

https://github.com/flutter/engine/compare/328a4b24e250...56af76d122cc
2022-07-27<EMAIL_ADDRESS>Third part of soft transition to async FragmentProgram.fromAsset (flutter/engine#34932)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

It looks like this may be blocked on https://github.com/flutter/flutter/issues/108463, when the tree is green it is ok to merge manually. cc @gaaclarke

@Piinks can you give this an approval, I can't merge it without one.

I did not know the bot could approve PRs - TIL! :)

whoa, weird, what triggered that?


Form is destroyed if async action creator is called in onSubmit

I'm trying to add submit validation to my form. When i follow the example in the docs, returning a promise and using setTimeout, everything works as it should. However, when i call an async action creator in my onSubmit function, additional redux-form/DESTROY action is dispatched before stop-submit action. Errors are correctly passed to the component, but the values and form state is destroyed. I want to keep the values in case the submit fails. Is this DESTROY action supposed to happen, and if yes, is there a way to prevent it?
My onSubmit handler:
handleSubmit (values) {
  return new Promise((resolve, reject) => {
    this.props.actions.signUp(values.name, values.email, values.password)
    .then(() => {
      resolve()
     })
    .catch(() => {
      reject({email: 'Email already in use', _error: 'Registation failed'})
    })
  })
}

The async action creator:
let signUp = (name, email, password) => {
  return function (dispatch) {
    dispatch(signupActions.signupRequest())
    return signUpReq(dispatch, name, email, password)
      .then(function (response) {
        dispatch(userFromData(response.data))
      })
  }
}

Although I haven't really understood how this happens (my component does not unmount when the action creator call happens), I was able to fix this setting destroyOnMount to false


GROOVY-9865: Add some DGM methods for primitive arrays

+1
How about  adding stream() too?

How about adding stream() too?

As in int[] arr; Arrays.stream(arr)?  I think org.codehaus.groovy.vmplugin.v8.PluginDefaultGroovyMethods covers the relevant cases.

Does it make sense to implement max(int[]) using IntStream's max method?  Like IntStream.of(self).max().orElseThrow(() -> new UnsupportedOperationException(...));?  And similarly for long and double arrays?  Essentially, the max DGM is just shorthand for ints.stream().max().getAsInt().

Yes, boxed streams are already covered. Possibly an unboxed variant, e.g. intStream(int[]), would also be useful.
As to using the stream-based max, we could certainly consider that. For small arrays the overheads of setting up the stream would be slower than the current implementation. For large streams, there might be a gain. I am inclined to leave as is and make it easy for folks to do that themselves. If we had something like intStream() they could choose between nums.max(), nums.intStream().max().asInt, and nums.intStream().parallel().max().asInt as they felt appropriate.

How about adding stream() too?

As in int[] arr; Arrays.stream(arr)? I think org.codehaus.groovy.vmplugin.v8.PluginDefaultGroovyMethods covers the relevant cases.

Thanks for your reminding. I forgot we had added stream()...

I added intStream(), longStream() and doubleStream() for int[], long[] and double[] respectively and refactored quite a few places that were making copies of arrays as lists when just iterating through them was all that was needed.

Oh, the stream() methods are returning Stream and not IntStream for int[].  Since you are in PluginDefaultGroovyMethods, can you add @since to orOptional?


Write a C program to find average of digits of a number by recursion

Description
Write a C program to find average of digits of a number by recursion
Average of digits of a number is the sum of digits of the number divided by the number of digits in the number. For example, the average of digits of 123 is 6. The sum of digits of 123 is 6 and the number of digits in 123 is 3. So, the average of digits of 123 is 6/3 = 2.
Input  : 123
Output : 2

How to contribute

Save the solution in FindAverageOfDigitsOfANumberByRecursion.c file
Add FindAverageOfDigitsOfANumberByRecursion.c file in program/find-average-of-digits-of-a-number-by-recursion folder

!assign

!assign


Let .com variant domain expire?

Hey all.
I'm 99% sure what the consensus answer to this is going to be, but I'll ask anyway:
Originally, Backbone was just registered under the correct backbonejs.org domain name. At some point, a good samaritan registered backbonejs.com to prevent anyone from squatting on it, and then eventually transferred it over to me.
At this point, I'm not sure that I really want to keep .com variants for all open source projects sitting there as redirects to the .orgs. Sure, it's only 30-50 bucks a year, but still, the principle of the thing.
How terrible of an idea would it be to allow backbonejs.com to expire?

Is there an easy way to see what kind of traffic the .com domains are getting?

Given that it's a permanent 301 redirect, it should be hardly anything — as some google searching for links appears to confirm.
I think that the vast majority of the potential harm here is for someone to grab the .com names and do something nasty with them, along with a much smaller impact to folks who just type backbonejs.com into their browser bars.

I think with the popularity of the framework you're almost guaranteed that someone is at least going to squat it and fill it with ads, I'm not sure if that's necessarily your problem though.
What might also happen is someone getting the domain, copy-paste the backbonejs.org html and inject some malicious stuff into the downloads. That's probably not only going to be a pain for the people who fall for that kind of stuff, but also for maintainers who probably will need to keep explaining to users that no, backbonejs.com is in fact not the actual backbone website.

The dot-org seems interesting for the framework itself.
But, we can take in account the MariaDB that has both dot-com & dot-env for instance.
So what?
I meant we can keep them up for many purposes.
Why?
We're a community. An international one. Look, I'm brazilian.
And..?
Many people and I would like to contribute more.
How?
We can establish a branding and improve the network.

I'd like to gain hakuno[at]backbone[dot]com
I'd like to have one directory on dot-com for my BB chapter (see example)
I'd like to put in my curriculum vitae any special involvement

Mr. @jashkenas Many ones love BackboneJS. So you've the opportunity of make the community stronger. Use your power to create one team to manage it for free. We can do it.
Ps.: My above examples even are capable of generating jobs around the world :stuck_out_tongue:

sdffsdfsdf## sddsd

I don't think we need .com domain, but FYI, you're paying 2.5x - 4x the market rate for .com registrations.

The domain has already expired and you can make an offer of a minimum of $2500 so this issue can be closed.

Oh well, it's interesting to see what will happen with the domain now :)


Merge audio and video

I need to download a video from Vimeo, but currently, when I set
{
allFormats = true
}
to merge into one file, but there is no sound. Can anyone help me?

I have tried many different methods, but it still doesn't work. {verbose: true} doesn't show any error information either.

This is more related with yt-dlp itself; try to run yt-dlp standalone and find the right combination of parameters.
After that, do the same but using this library: running the CLI or using this package should be expect the same output under the same parameters.


Remote-FTP can't open the downloaded files

Remote-FTP connects to FTP server, shows the file tree, downloads files at open, but can't open the downloaded file. No error, only an empty tab.
Files are downloaded to $HOME/atom:/about/ but editor try to open from /atom:/about/atom:/about/atom:/about/

Why is your directory called "atom:"? Please try to use a name without ":" and tell me if the issue persists.

This local directory is created by Remote-FTP for temporary files. When I want to edit a file on FTP server, Remote-FTP downloads automatically that file to this local directory and open it for editing.
(Ubuntu 15.10, Atom 1.3)

And whats the project/working directory?

Hmm... Atom forgot my project directory so Remote-FTP tries to solve this problem with an atom: directory. Re-opening of project directory solves the "bug". Thank you!


shell: Fix invalid assert

It is valid to pass NULL as command to cmd_get, in fact this seems to
always happens when using tab to complete.
Signed-off-by: Luiz Augusto von Dentz<EMAIL_ADDRESS>

Codecov Report

Merging #10206 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #10206   +/-   ##
=======================================
  Coverage   53.03%   53.03%
=======================================
  Files         214      214
  Lines       26176    26176
  Branches     5642     5642
=======================================
  Hits        13883    13883
  Misses      10024    10024
  Partials     2269     2269

Continue to review full report at Codecov.

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


Updates to Quick Links on landing pages

Task
Description:
We need to add new and update some existing items under the Quick Links section on our extension's landing pages as follow

Learn more about PSAT
Join the discussions
Report a bug
Report a breakage

cc @prasadnevase

Hi @mayan-000, Verified the newly updated link and it is looking and working fine.

Released as a part of v0.4.0, closing this issue.


Fix minor typo (screeen –> screen)

Could you make this change to the markdown files on the master branch?

@laurilehmijoki you need to change this file: https://github.com/facebook/react-native/blob/master/Libraries/vendor/react/browser/eventPlugins/PanResponder.js#L30-L42

Replaced with https://github.com/facebook/react-native/pull/4469


Supports specifying the environment when stopping/starting the environment

Is your enhancement related to a problem? Please describe.

Cannot specify the environment when stopping/starting the entire environment.
 ~/seal/cli_yaml/ w environment start -h
Usage:
  walrus environment start [flags]

Flags:
  -o, --output string   Output format [table, json, yaml] (default "table")

Global Flags:
  -d, --debug   Enable debug log
  -h, --help    Help for this command

Describe the solution you'd like

Supports specifying the environment when stopping/starting the environment, e.g.
walrus environment stop -e <environment name>

Describe alternatives you've considered

Additional context

Environment

Walrus version: main 7428401fef1d1a45e433c2e7722597a5e12830ef

Test Result: pass
 ~/ w environment start -h
Usage:
  walrus environment start <environment> [flags]

Flags:
  -o, --output string   Output format [table, json, yaml] (default "table")

Global Flags:
  -d, --debug   Enable debug log
  -h, --help    Help for this command

 ~/ w context current
Current Project: default
Current Environment: env3

 ~/ w environment stop local -d
...
> POST /v1/projects/default/environments/local/stop HTTP/1.1;;;
...


Simple UI

What is the problem you're trying to solve?.
Have a very quick way to jump into a container to try something out.
Describe the feature you'd like
I want a simpler way to do this:

Which (along with several like this) gives me a quick way to launch a container from my Shortcuts menu to have as a place to go and get a terminal up, starting finch if needed, and jump into one of my commonly used containers.
I use a custom profile in iTerm so that I get a window with a slightly different background color than any terminal on a local machine, or anything that even remotely looks like production systems.
Additional context
While the full Podman-style UI may not be needed, something small like this could go a long way, re-using existing terminals and settings that someone has.

@stewartsmith

While the full Podman-style UI may not be needed,
I disagree, I think the Podman UI is already a simple UI

There should be an UI from finch with similar capabilities in terms of container build/push and running kind, or contribute to Podman UI project to add finch as an "Extension" or "Machine/Resource"
Podman UI release 1.0 GA  this week https://developers.redhat.com/articles/2023/05/23/podman-desktop-now-generally-available
cc @estesp


feat(resolver): don't build new clauses for weights

Description of the change:
This builds a sorting network with multiple entries to signal weight, instead of explicit weight literals and constraints on them.
For example:
Prior to this change:
Installable x of weight 3 and y of weight 2 would give:
(x, w0, w1, w2, y, wy0, wy1) literals (cardinality is minimized)
(x -> w0,  x -> w1,  x-> w2, y -> wy0, y -> wy1) constraints
so the cardinality of picking x is 3 and the cardinality of picking y is 2
Benchmarks:
BenchmarkCompileDict-12    	      18	  55723828 ns/op
BenchmarkDictSolve-12      	       1<PHONE_NUMBER> ns/op
PASS

After this change:
Installable x of weight 3 and y of weight 2 would give:
(x, x, x, y, y) literals (cardinality is minimized)
no constraints
so the cardinality of picking x is 3 and the cardinality of picking y is 2
Benchmarks:
BenchmarkCompileDict-12    	   12636	     90925 ns/op
BenchmarkDictSolve-12      	      22	  52780348 ns/op
PASS

Motivation for the change:
Speed up resolution.
Source: page 13 of Translating Pseudo-Boolean Constraints into SAT
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /docs
[ ] Commit messages sensible and descriptive

/lgtm


[BUG] Live video plays then stops

Bug Description
If a live video link is played, the music plays for about 5 seconds then it stops. There are no errors thrown. The bot still functions as normal as adding tracks to queue and skipping tracks function normally.
Reproduction Steps
Steps to reproduce the behavior:

Play a live video link from YouTube with either the play() or addToQueue() function.
The song plays momentarily.
The song stops

Expected Result
The music continues to play
Versioning:

Module Version : 7.0.0

Additional Comments
No other error is thrown. If other functions like skip() are used, it skips the current song and continues to play the next song in the queue.

We don't support live streams, I will add a error handler for it

I released a v7.0.0-fix1 update on NPM, that will emit a Player#error with a LiveUnsupported error parameter (check events).
https://www.npmjs.com/package/discord-music-player


apt::source: Merge include_* options into hash.

This makes its behaviour similar to the update, proxy and purge hashes on the main classes bringing its API more in line with the rest of the module.

It also makes for slightly more pretty everything in Hiera:
apt:
  sources:
    'herpderp':
      include:
        src: true
    'herpmorederp':
      include:
        src: true

I love merging hashes :smile:.


[Model Update]:  Updating io.catenax.vehicle.product_description to version 3.0.0

Update Reason
The issue https://github.com/eclipse-tractusx/sldt-semantic-models/issues/163
uses as external reference io.catenax.vehicle.product_description
The new model of  issue 163 already uses SAMM 2.0.0 as language. Unfortunately I cannot reference a model written in bamm:2.0.0 in a modell written in samm:2.0.0.
Therefore:

Request is to upgrade existing model io.catenax.vehicle.product_description:2.0.0(bamm:2.0.0) to io.catenax.vehicle.product_description:3.0.0 (written in samm:2.0.0)

Proposal:
Use case quality (QAX) is switching to io.catenax.vehicle.product_description:3.0.0
All other use cases can stay with io.catenax.vehicle.product_description:2.0.0
MS1 Criteria

[x] The model that should be updated exists
[x] The referenced use case exists
[x] The potential updates are discussed with all stakeholders
[ ] The potential update will be either

[ ] backward compatible or
[x] a (chain of) migration strategy(-ies) from all non-deprecated previous versions to the new model will be developed

fixed by https://github.com/eclipse-tractusx/sldt-semantic-models/pull/178


Tag ignored second (correcty) register() call

This tag
https://github.com/JuliaApproximation/DomainSets.jl/releases/tag/v0.0.2
was put on the wrong commit. The actual release
https://github.com/JuliaRegistries/General/pull/220
was attached to a second call to register() associated with a different commit.

This is more of a Registrator bug, all TagBot does is read the commit hash that's mentioned in the PR body. Registrator however does not update the hash when it updates itself.

OK I'll create a cross-ref issue.

Looks like this will no longer be an issue as soon as the new Registrator version is deployed.


When resizeMode.contain is it possible not "center" the image?

Describe the bug
I'm not sure if this is a bug, but following the code and image bellow, I notice that there's always a white space between the image, like the image it's been centered some how. I tried flex alignments but noting seems to work.
Using resizeMode.contain I got the white spaces; using resizeMode.cover I loose a little of the width.
The white space increase as the image gets taller (huge height).
To Reproduce
Follow the code:
<FastImage
    style={{ flex: 1 }}
    source={{
        priority: FastImage.priority.normal,
        uri: this.props.src
    }}
    resizeMode={this.props.resizeMode || FastImage.resizeMode.contain}
/>

Expected behavior
The image should not have those white spaces at top and bottom of the element <FastImage.
Screenshots

Dependency versions

React Native version: 0.59.9
React version: 16.8.3
React Native Fast Image version: 6.0.3

Note: if these are not the latest versions of each I recommend updating as extra effort will not be taken to be backwards compatible, and updating might resolving your issue.

I think you need to assign width and height to your image

Like this?
const style: any = {
      backgroundColor: 'red',
      flex: 1,
      height: this.props.height,
      width: this.props.width,
    };

Nothing changes.

I believe that StyleSheet.absoluteFill it's centering the image, now I just don't no how to put it on top.

Hey @rochapablo did you end up solving this?

I'm having the same issue, I don't want my image to center with the contain resize mode. Have you figured it out?

Hey @rochapablo ,
Any update on this issue, It is really breaking design when we need to show wide images

I just faced the same issue, - an image with resizeMode="contain" gets centered and ignored the justifyContent="flex-end" setting of the outer container.
I managed to "fix" this by setting both width and height of the image to undefined and also specifying its aspectRatio, just like this:
    <View
      style={
          justifyContent: 'flex-end',
        }}
    >
      <Image
        source={require('./img/source.png')}
        style={{
          // This is as strange as it gets. The `flex-end` setting works _only_ if I pass the image's aspect ratio
          // and `undefined` for width and height properties. If any of these are missing, the image with `resizeMode="contain"
          // will be centered vertically and ignore the `justifyContent` setting of the outer container.
          aspectRatio: 0.5622, // In my case
          width: undefined,
          height: undefined,
          resizeMode: 'contain',
        }}
      />
    </View>

Hope this may help somebody.

Hey @Valeriy-Burlaka, For me, Images are coming from url. I need to set every image's aspect ratio differently somehow. 🤔

I just faced the same issue, - an image with resizeMode="contain" gets centered and ignored the justifyContent="flex-end" setting of the outer container. I managed to "fix" this by setting both width and height of the image to undefined and also specifying its aspectRatio, just like this:
    <View
      style={
          justifyContent: 'flex-end',
        }}
    >
      <Image
        source={require('./img/source.png')}
        style={{
          // This is as strange as it gets. The `flex-end` setting works _only_ if I pass the image's aspect ratio
          // and `undefined` for width and height properties. If any of these are missing, the image with `resizeMode="contain"
          // will be centered vertically and ignore the `justifyContent` setting of the outer container.
          aspectRatio: 0.5622, // In my case
          width: undefined,
          height: undefined,
          resizeMode: 'contain',
        }}
      />
    </View>

Hope this may help somebody.

No idea how, but this works! :100:


Don't test on Ubuntu 14.04

Ubuntu 14.04 is about to be end-of-life and Bazel CI will stop supporting it shortly afterwards.
Context: https://groups.google.com/d/msg/bazel-dev/_D6XzfNkQQE/8TNKiNmsCAAJ

Thanks Phil!

@brendandouglas Thanks for the quick review!
I noticed that the tests for intellij are failing with a checksum mismatch:
ERROR: /workdir/intellij_platform_sdk/BUILD:374:1: no such package '@intellij_ce_2019_1//': java.io.IOException: Error downloading [https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/2019.1.1/ideaIC-2019.1.1.zip] to /home/bazel/.cache/bazel/_bazel_bazel/ec321eb2cc2d0f8f91b676b6d4c66c29/external/intellij_ce_2019_1/ideaIC-2019.1.1.zip: Checksum was d05abcfd50673c542558bcbd2c4853386e1e45b72759b8ed9bd374b87dc3a391 but wanted 600bfa4e334d7a03162a04deb9849be210cd34318efd76d83473171f221a8d27 and referenced by '//intellij_platform_sdk:application_info_jar'
 ```

Should we update the checksum?

I'm not sure why it's failing... I just changed the checksum from d05abcfd5 to 600bfa4e (cr/244664722), which matches what's currently available at that url. I also can't reproduce the error at head.
Are the CI tests accessing an old version of that zip rather than downloading it from scratch?

The Linux workers don't have a persistent repository cache, so an old version of that zip shouldn't be the cause.
I reran the tasks on CI and now they worked. It's strange that both machines downloaded the file and got to the identical wrong checksum, which should rule out a network issue. Maybe a temporary issue on the server, serving a wrong file?
Anyway, it's fine now, so we should be good. :)


#24 Trigger browser to use GPU acceleration

Using the translationZ(0) triggers GPU acceleration in modern desktop and mobile browsers.
http://blog.teamtreehouse.com/increase-your-sites-performance-with-hardware-accelerated-css

Thanks! I'm a bit swamped with work this weekend but I'll try to get this merged in next week.

Awesome! :+1:

This is released to npm as version 2.2.0.
I did get this warning when running the tests:
Warning: Unsupported vendor-prefixed style property oTransition. Did you mean OTransition?
Warning: Unsupported vendor-prefixed style property oTransform. Did you mean OTransform?

I'm assuming that is something to fix, but I have never used vendor prefixes with React inline styles—will defer to you.

Oh I see. I will fix that tonight. I am currently away from my computer.

I actually fixed it in a commit earlier today. No worries.

On Sep 4, 2015, at 3:13 PM, Oscar Persson<EMAIL_ADDRESS>wrote:
Oh I see. I will fix that tonight. I am currently away from my computer.
—
Reply to this email directly or view it on GitHub https://github.com/pburtchaell/react-notification/pull/27#issuecomment-137828170.

Great!


UAT | Round 2 | Adding advocate crashes system

Clicking Yes on Do you have an advocate leads to this error:

Hi @anshumanth-egov Not able to reproduce this bug PLease find the below video reference.
https://jam.dev/c/4c236693-aebc-4c7b-967a-70d0223defb9

Issue still happening at my end

This issue is happening due to bad data.
Now it's working fine.


Breaking change notification: Remoting APIs are obsolete

Remoting APIs are obsolete
The APIs MarshalByRefObject.GetLifetimeService and MarshalByRefObject.InitializeLifetimeService are obsolete as warning as of .NET 5.0.
Version introduced
.NET 5.0 RC1
Old behavior
In .NET Framework 2.x - 4.x, the GetLifetimeService and InitializeLifetimeService methods would control the lifetime of instances involved with .NET remoting.
In .NET Core 2.x and .NET Core 3.x, the GetLifetimeService and InitializeLifetimeService methods always throw PlatformNotSupportedException at runtime.
New behavior
In .NET 5.0+, the MarshalByRefObject.GetLifetimeService and MarshalByRefObject.InitializeLifetimeService methods continue to throw PlatformNotSupportedException. However, the methods are now also marked obsolete (as warning).
MemoryStream stream = new MemoryStream(); // MemoryStream, like all Stream instances, subclasses MarshalByRefObject
obj.InitializeLifetimeService(); // throws PlatformNotSupportedException; also produces warning SYSLIB0010

This is a compile-time only change. There is no runtime change from previous versions of .NET Core.
Reason for change
.NET remoting is a legacy technology which allows instantiating an object in another process (potentially even on a different machine) and interacting with that object as if it were an ordinary in-process .NET object instance. The .NET remoting infrastructure only exists in .NET Framework 2.x - 4.x. .NET Core and .NET 5.0+ do not have support for .NET remoting, and the remoting APIs either do not exist or always throw exceptions on these runtimes.
To help steer developers away from these APIs, we are obsoleting select remoting-related APIs. These APIs may be removed entirely in a future version of .NET.
Recommended action
Consider using WCF or HTTP-based REST services to communicate with objects in other applications or across machines. The document .NET Framework technologies unavailable on .NET Core provides further guidance on choosing an alternative technology.
If you must continue calling the GetLifetimeService or InitializeLifetimeService APIs, you can suppress the SYSLIB0010 warning in code, as shown below.
MarshalByRefObject obj = GetMarshalByRefObj();
#pragma warning disable SYSLIB0010 // disable the warning
obj.InitializeLifetimeService(); // will still throw PNSE
obj.GetLifetimeService(); // will still throw PNSE
#pragma warning restore SYSLIB0010 // re-enable the warning

The warning can also be suppressed within the .csproj. Doing so will disable the warning for all source files within the project.
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net5.0</TargetFramework>
   <!-- NoWarn below will suppress SYSLIB0010 project-wide -->
   <NoWarn>$(NoWarn);SYSLIB0010</NoWarn>
  </PropertyGroup>
</Project>

Suppressing SYSLIB0010 disables only the MarshalByRefObject.GetLifetimeService and MarshalByRefObject.InitializeLifetimeService obsoletion warnings. It does not disable any other warnings. Additionally, suppressing the warning will not change the hardcoded runtime behavior of always throwing PlatformNotSupportedException.

Category

Core .NET libraries

Affected APIs
The following APIs are now obsolete as warning but have no behavioral changes from previous versions of .NET Core:

[x]  MarshalByRefObject.GetLifetimeService - 5.0 RC1

[x]  MarshalByRefObject.InitializeLifetimeService - 5.0 RC1

Issue metadata

Issue type: breaking-change

Should gRPC be a recommended alternative?


Tests : Propose some invalid proposals

Multiples stuff with low importance here that I still wanted to make aware of with gobject check :

dean-millerà-5493 : It returns "Invalid object type only proposals can be validated". The error is misleading here.

url : "http://dashcentralisé.org/dean-miller-5493", returns  Invalid proposal data, error messages:vector::_M_range_check: __n (which is 6) >= this->size() (which is 6);url field not found;Invalid URL;'. While I'm not sure how we handle internationalized domain name (punnycode only ?), I'm still thinking that this error might not be the one we expect. I also wonders if we can inject something here ?

with ```

Superseded by #2044. Closing.


always trigger prefetch by default

@arewm I added these changes to my existing pull request - as well as updates to the labels in the Dockerfile. Thanks for the contribution though!


Apply fix does not work on Windows

(node:8144) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Trying to send an unexpected type of value through port onFileContentWithShas:
Expecting a String at _[0][0] but instead got: null

@pacbeckh. Can you verify if this is still a problem?

pacbeckh told me personally it seems to work.


.NET sample code needs updated to support the new version of the RestSharp open source library

Expected Behaviour
Code should compile and run
Actual Behaviour
The current sample code generates three errors:

“Argument 1:cannot convert from ‘RestSharp.Method’ to ‘string?’”  <- syntax error reported for line 52 of Program.cs (where it says "var request = new RestRequest(Method.POST);").

"The type or namespace ‘IRestResponse’ could not be found (are you missing a using directive or an assembly reference?)”   <-- syntax error reported for line 62 of Program.cs (where it says "“IRestResponse response = client.Execute(request);”").

"An error has occured: The format of value 'multipart/form-data; boundary=----boundary' is invalid"   <-- runtime error generated seemingly for the parameter added via line 55 (via a request.AddParameter() method call).

Reproduce Scenario (including but not limited to)
Simply try to compile and run.
Steps to Reproduce
For the first two errors, simply try to compile.
For the third error, you'd need to tweak the code (as a workaround to get it to compile) ... but then run the program.
Platform and Version
Windows 10 running Microsoft Visual Studio 2019.
Sample Code that illustrates the problem
Current code leveraging the latest version of the RestSharp library (i.e., v108.0.2).
NOTE:  All three of these issues can be resolved by instead leveraging the old 106.13.0 version of the RestSharp library; however, for vulnerability reduction reasons, we need to be using the latest version of all such open source libraries.  Additional information can be found at the RestSharp documentation page (https://restsharp.dev/intro.html#introduction) which says, "WARNING - RestSharp v107 changes the library API surface and its behaviour significantly. We advise looking at v107 docs to understand how to migrate to the latest version of RestSharp.".
Logs taken while reproducing problem
n/a

Hello, seems like this issue relates to sample code provided for the deprecated Service Account (JWT) credentials. We are no longer enhancing the documentation surrounding the deprecated credentials.


[asio] update to v1.18.0

Describe the pull request

What does your PR fix?
updates the library asio to version 1.18.0

Which triplets are supported/not supported? Have you updated the CI baseline? No

Does your PR follow the maintainer guide?
hope so

/azp run

Hi @mathisloge
Thanks for posting this issue.
The regressions caused by this changes are like this:
For restbed
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(56): error C2039: 'get_io_service': is not a member of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\installed\x86-windows\include\asio/ip/tcp.hpp(82): note: see declaration of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(56): error C2672: 'std::make_shared': no matching overloaded function found
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(57): error C2039: 'get_io_service': is not a member of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\installed\x86-windows\include\asio/ip/tcp.hpp(82): note: see declaration of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(57): error C2672: 'std::make_shared': no matching overloaded function found
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(125): error C2039: 'get_io_service': is not a member of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\installed\x86-windows\include\asio/ip/tcp.hpp(82): note: see declaration of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(125): error C2530: 'io_service': references must be initialized
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(127): error C3536: 'io_service': cannot be used before it is initialized
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(448): error C2039: 'get_io_service': is not a member of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\installed\x86-windows\include\asio/ip/tcp.hpp(82): note: see declaration of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(448): error C2530: 'io_service': references must be initialized
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(450): error C3536: 'io_service': cannot be used before it is initialized
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(597): error C2039: 'get_io_service': is not a member of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\installed\x86-windows\include\asio/ip/tcp.hpp(82): note: see declaration of 'asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>'
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(597): error C2530: 'io_service': references must be initialized
D:\buildtrees\restbed\src\80d5d74d1e-eb47e978c1.clean\source\corvusoft\restbed\detail\socket_impl.cpp(599): error C3536: 'io_service': cannot be used before it is initialized

For opendnp3
D:\buildtrees\opendnp3\src\2.3.2-0b9dada440.clean\cpp\libs\src\asiopal\SerialChannel.cpp(35): error C2039: 'get_io_context': is not a member of 'asio::io_context::strand'
D:\installed\x64-windows\include\asio/io_context.hpp(239): note: see declaration of 'asio::io_context::strand'
D:\buildtrees\opendnp3\src\2.3.2-0b9dada440.clean\cpp\libs\src\asiopal\SerialChannel.cpp(35): error C2512: 'asio::basic_serial_port<asio::any_io_executor>::basic_serial_port': no appropriate default constructor available

Could you please try to fix these regressions?
For opendnp3, the latest release seems fix this problem. You just need to update it. Please see https://github.com/dnp3/opendnp3/issues/373
For restbed,  the fix has not been merged to master yet. Please see https://github.com/Corvusoft/restbed/pull/444

Hi @NancyLi1013,
Thanks for the Feedback.
Both Regression should be fixed in its own pull request correct?
Should base these new pull requests on this pull request or base them on master?

For opendnp3, just need to update to the latest release, which has included this fix.
For restbed, please update to the latest version and make a patch to fix this issue based on the pull request.

@NancyLi1013 i should have clarified this better. I mean if I have to create to new pull requests in vcpkg for the port updates and base these on the asio pull request or should I update both ports in the asio pull request?

@NancyLi1013 i should have clarified this better. I mean if I have to create two new pull requests in vcpkg for the port updates and base these on the asio pull request or should I update both ports in the asio pull request?

Update these two ports in asio pull request. Just add the changes in this PR.

okay, I've messed this up. After the rebase everything showed up as changed...
Opendp3 is fixed.
Should i close this PR and make a new clean PR?

If you're not clear about how to revert the changes, it would be better to make a new PR to update these ports.


Add moving least squares functions for pointclouds and surfaces

This PR partially addresses #64.
It adds the functions smooth_surface_moving_least_squares_2D, smooth_surface_moving_least_squares_2D_radius, smooth_pointcloud_moving_least_squares_2D and smooth_pointcloud_moving_least_squares_2D_radius.
Steps to verify quality:

[x] Automated tests are passing
[x] Tested all functions manually in the viewer
[x] Added functions to demo notebook

Awesome, thanks!

Just a minor remark. My IDE proposes this:

@haesleinhuepf
you mean regarding the line "The radius is used to determine the number of points [...]"? I could change the points to vertices? That would be technically more correct.

@jo-mueller I'm referring to the error message Function name should be lowercase.


Dedicated method for creating circuit from op tree with EARLIEST strategy

We keep track of the latest moment that contains each qubit and measurement key. Then we know where to put each operation in constant time. We don't create the actual Moments until the very end, when we know where everything goes. Also added explicit key protocol impls for EigenGate, preempting the protocol from attempting a bunch of fallback options. On my laptop this speeds up creating circuits with EARLIEST strategy by almost infinity percent. (On my laptop, the circuit in the new test goes from 29.00s on master to 0.13s here).

@dstrain115 I updated the documentation. Should this be merged before 0.15?

Merge label? I don't have authz


Add support for wildcard handling of file matching in codeowners library

See comment https://github.com/Azure/azure-sdk-for-js/pull/20354#discussion_r806177441.
It would be helpful to support some basic wildcard matching in our code owners file library. Maybe we cannot easily support all wildcard patterns but we could probably support ** for something like /sdk/**/ci.mgmt.yml.

@weshaggard I analyzed the relevant code and here is my plan of action. Sharing with you in case you have any concerns or suggestions.
What code needs to change
Principally, there are two places that need to be modified:

CodeOwnersFile.FindOwnersForClosestMatch:

// We want to find the match closest to the bottom of the codeowners file.
// CODEOWNERS sorts the paths in order of 'RepoPath', 'ServicePath' and then 'PackagePath'.
for (int i = codeOwnerEntries.Count - 1; i >= 0; i--)
{
    string codeOwnerPath = codeOwnerEntries[i].PathExpression.Trim('/');
    // Note that this only matches on paths without glob patterns which is good enough
    // for our current scenarios but in the future might need to support globs
    if (targetPath.StartsWith(codeOwnerPath, StringComparison.OrdinalIgnoreCase))
    {
        return codeOwnerEntries[i];
    }
}

PullRequestLabelFolderCapability.ReadConfigurationFromFile:

// Entries with wildcards are not yet supported
if (entries[i].ContainsWildcard)
{
    // log a warning there

    if (entries[i].PRLabels.Any())
    {
        Colorizer.WriteLine("[Yellow!Warning]: The path '[Cyan!{0}]' contains a wildcard and a label '[Magenta!{1}]' which is not supported!", entries[i].PathExpression, string.Join(',', entries[i].PRLabels));
    }

    continue; //TODO: regex expressions are not yet supported
}

Proposed modifications
In the two places that require modification listed above, I will make a check for CodeOwnerEntry.ContainsWildcard. If it is true, I will call a newly introduced method, like CodeOwnerEntry.ExpandWildcard that will return a List of CodeOwnerEntry, after expanding the wildcards.
Such expanded non-wildcard entries will be matched reverse-alphabetically, to retain the property of entries being matched bottom-to-top [1], as defined in CODEOWNERS. Here I am making an implicit assumption that wildcard means all the entries represented by wildcard would have been listed alphabetically in the CODEOWNERS file. If the author wants different order of matching, they need to list the entries explicitly.
Expanding the wildcards will require for the logic to be able to access the contents of the repository in which the CODEOWNERS file is located, to pattern-match the file paths against the wildcards. Having a handle to that file only will no longer be enough.
The GitHub doc on CODEOWNERS syntax states:

A CODEOWNERS file uses a pattern that follows most of the same rules used in gitignore files.

Per this issue description, only this pattern has to be supported, as explained in the gitignore doc:

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.

However, if it will turn out that ROI on supporting other patterns too will be good, I will do so too.
Footnotes
[1] per this comment:

// We want to find the match closest to the bottom of the codeowners file.

and our CODEOWNERS documentation:

Place more general rules higher in the file and more specific rules lower in the file as GitHub uses the last matching expression

Why do I think these are the places to modify, and no other?
The parsing logic lives in CodeOwnersFile.ParseContent. It returns a value of type List<CodeOwnerEntry>. Each CODEOWNERS entry is parsed into an aptly named class CodeOwnerEntry.
CodeOwnerEntry CODEOWNERS file line parsing logic already supports reading paths with wildcards into CodeOwnerEntry.PathExpression, as seen in CodeOwnerEntry.ParsePath.
This means that any limitations of supporting wildcards need to be present downstream of a call to CodeOwnersFile.ParseContent and hence I analyzed where the value output of this method flows to.
I made the analysis by loading in VS Code the entire repository and doing Find all references on CodeOwnersFile.ParseContent, and also by using GitHub web code browser navigation.
In addition, I also looked at references to CodeOwnerEntry.PathExpression and CodeOwnerEntry.ContainsWildcard.
Here are all the use cases I have identified:
Use case 1: The code-owners-parser
CodeOwnersFile.ParseContent is called by
CodeOwnersFile.ParseFile which is called by
CodeOwnersFile.ParseAndFindOwnersForClosestMatch which is called by
Azure.Sdk.Tools.RetrieveCodeOwners.Program.Main
which, in turn, ends up taking one CodeOwnerEntry (not a list, just one), serializing it to JSON, and outputting it to STDOUT, as seen in the Program.cs, here:
var codeOwnerJson = JsonSerializer.Serialize<CodeOwnerEntry>(codeOwnerEntry, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(codeOwnerJson);

This tool is also run via the pipeline azure-sdk / internal / tools / tools - code-owners-parser.
This pipeline can be used to publish a NuGet package, e.g.:
Pushing Azure.Sdk.Tools.RetrieveCodeOwners.1.0.0-dev.20221205.3.nupkg to 'https://pkgs.dev.azure.com/azure-sdk/29ec6040-b234-4e31-b139-33dc4287b756/_packaging/f9f4dcc6-8e73-7147-a0d8-8c14278093ff/nuget/v2/'...
  PUT https://pkgs.dev.azure.com/azure-sdk/29ec6040-b234-4e31-b139-33dc4287b756/_packaging/f9f4dcc6-8e73-7147-a0d8-8c14278093ff/nuget/v2/

The call to ParseAndFindOwnersForClosestMatch does the following:
public static CodeOwnerEntry ParseAndFindOwnersForClosestMatch(string codeOwnersFilePathOrUrl, string targetPath)
{
    var codeOwnerEntries = ParseFile(codeOwnersFilePathOrUrl);
    return FindOwnersForClosestMatch(codeOwnerEntries, targetPath);
}

where FindOwnersForClosestMatch has the first of two places that require modification, as mentioned in the beginning of this post. This method is also public, so it may be depended upon by the consumers of the NuGet package.
Use case 2: notification-configuration
CodeOwnersFile.ParseContent is called by
CodeOwnersFile.ParseFile which is called by
GitHubService.GetCodeownersFileImpl which is called by
GitHubService.GetCodeownersFile which is called by
NotificationConfigurator.SyncTeamWithCodeOwnerFile
This method then ends up calling later in the same method the CodeOwnersFile.FindOwnersForClosestMatch, for each processed input build definition pipeline. The execution of this tool is triggered by the pipeline internal / automation /
automation - build-failure-notification-subscriptions. It processes the pipeline to hook-up ADO email configurations on build failure. I elaborated on that in https://github.com/Azure/azure-sdk-tools/issues/4859#issue-1472442836
Use case 3: pipeline-owners-extraction
CodeOwnersFile.ParseContent is called by
CodeOwnersFile.ParseFile which is called by
GitHubService.GetCodeownersFileImpl which is called by
GitHubService.GetCodeownersFile which is called by
PipelineOwnersExtractor.Processor.GetCodeOwnerEntriesAsync which is called by
PipelineOwnersExtractor.Processor.ExecuteAsync.
The data returned to ExecuteAsync then flows to AssociateOwnersToPipelinesAsync which invokes CodeOwnersFile.FindOwnersForClosestMatch from this line.
Cursory analysis tells me the situation is similar to use case 2, i.e. each pipeline is being used as input to return relevant CodeOwnersEntry. The relevant pipeline triggering it is internal / automation / automation - pipeline-owners-extraction.
Use case 4: FabricBot - PR labels
CodeOwnersFile.ParseContent is called by
CodeOwnersFile.ParseFile which is called by
CreateRuleFabricBot.Rules.PullRequestLabel.PullRequestLabelFolderCapability.ReadConfigurationFromFile
which is the second code location that needs to be modified.
Use case 5: FabricBot - service routing labels
CodeOwnersFile.ParseContent is called by
CodeOwnersFile.ParseFile which is called by
CreateRuleFabricBot.Rules.IssueRouting.IssueRoutingCapability.ReadConfigurationFromFile which then doesn't do anything related to wildcard matching.

Expanding the wildcards will require for the logic to be able to access the contents of the repository in which the CODEOWNERS file is located, to pattern-match the file paths against the wildcards. Having a handle to that file only will no longer be enough.

What do you mean by expand here? Do you plan to use some sort of regex patterns to replace the gitignore patterns so you can do a match? That is sort of what I had in mind for implementing this.
Other than the one clarification the other logic and searching seems correct. Thanks for the detailed investigation.

What do you mean by expand here? Do you plan to use some sort of regex patterns to replace the gitignore patterns so you can do a match? That is sort of what I had in mind for implementing this.
Other than the one clarification the other logic and searching seems correct. Thanks for the detailed investigation.

@weshaggard let me summarize our in-person follow-up discussion here. I also discovered another limitation, and I would appreciate your input.
We observed that the usage in CodeOwnersFile.FindOwnersForClosestMatch is matching specific file names against the CODEOWNERS entry, so indeed changing the logic from "does this fileName start with this codeownersEntry path" to "does this fileName match the codeowners path-with-wildcards regex" should cover all the cases we care about, which are all the cases that involve * or ** but not ! or ?.
However!
The second use case is FabricBot, and there is a problem with it, as it does not support wildcards. The CODEOWNERS path entry gets converted to FabricBot's pathFilter. For example, azure-sdk-net-for-net/CODEOWNERS has this entry:
# PRLabel: %Azure.Core
/sdk/core/                                      @JoshLove-msft @christothes @annelo-msft @KrzysztofCwalina

which ends up being converted to this pathFilter in fabricbot.json:
"label": "Azure.Core",
"pathFilter": [
  "sdk/core/"
],

Our relevant code doing this is in CreateRuleFabricBot/Rules/PullRequestLabel/PathConfig.cs and around it, in PullRequestLabelFolderCapability class.
I believe the FabricBot logic matching paths against pathFilter is this (Microsoft-internal):
/**
 * Checks whether the given file name matches any of the given set of path filters.
 * @param fileName File name to check.
 * @param pathFilters Optional set of path filters.
 */
export function doesFileNameMatchPathFilters(fileName: string, pathFilters?: string[]): boolean {
  if (!pathFilters) {
    return false;
  }

  for (const pathFilter of pathFilters) {
    if (fileName.startsWith(pathFilter)) {
      return true;
    }
  }

  return false;
}

as it appears to be called from here (Microsoft-internal).
As you can see, this logic is doing plain fileName.startsWith(pathFilter).
I see two options going forward:

Clarify that paths in CODEOWNERS that have wildcards on them cannot have # PRLabel: comments. This could be enforced by the upcoming validation: https://github.com/Azure/azure-sdk-tools/issues/4859
Reach out to FabricBot maintainers and ask them if it would be feasible for us to implement support of wildcards into this method. I know who to reach out to.

Given that we plan to move away from FabricBot anyway, per https://github.com/Azure/azure-sdk-tools/issues/4478, I am leaning towards option no 1.
@weshaggard let me know what you think. Also CC @JimSuplizio as possibly relevant to his work.

I agree that for now we can ignore fabricbot and any wildcard paths will just not work there. Once @JimSuplizio does his work to move to github actions for this work he will be using our library here so any file path match should work.

@konrad-jamrozik , Ignore the FabricBot work, right now they have what they have hard coded inside of the repository specific FabricBot.json files. I need similar things but what I'd ended up doing was including the code-owners-parser to my project and writing some utils. We should, however, have a chat about how I'm using it.

This functionality has been enabled as of:

https://github.com/Azure/azure-sdk-tools/pull/5488


hide lab import failures of community codes

make a place holder class with error message instead

hermite and phigrape renames are anticipated upon, MMAMS needs to be fixed

MMAMS rename fixed


feature preview vs alpha API

I'd like to raise a question about having a preview feature vs alpha API.
In both cases it indicates that the feature is not stable and there might be breaking changes.
So, why do we have both? Why not to have a uniformed way of indication of feature maturity?
I will give a concrete example.
Recently I delivered State Store Query API. After some deliberations it has been decided to release it as alpha API, i.e the invocation URL looks like v1.0-alpha1/state/<store name>/query
I'd like to argue that having this feature as the preview would make more sense.
My main argument is that when this API becomes stable, we would need to update every SDK that implements this API (as opposed to simply changing one field in dapr config). Potentially, changing an SDK might break existing user application.
So, to mitigate this problem we might need to gradually deprecate alpha API, i.e. maintaining both versions in our code.
All this make development more complicated and prone to bugs.
All this could be eliminated by using the preview flag.
I would like to get feedback from the community.
If there is a consensus, I would gladly change State Store Query API from alpha API to preview feature.
Please comment.
Thanks!

I agree to use feature flag for alpha APIs so minimize breaking changes.

I do not agree. The usage of a preview flag for APIs creates a horrible implicit behavior and inconsistency in almost all cases.
APIs need explicit maturity because URL paths, parameters, expected headers and data formats can change. You cannot reason about a transition from alpha to beta to stable based on a feature flag, nor can't you create multiple iterations of the API with a feature flag. (for example, v1.0-beta1 and v1.0 operating in parallel to give users the ability to migrate from beta to stable)
Once the API endpoint is v1.0, it means it cannot change its params, headers, format etc - certainly not the case for the query API specifically, and for any other API.
In terms of explicitness, I would rather be as explicit as possible and adhere to API versioning guidelines and industry standards which specify API versioning should occur on the endpoint itself (either in the path or as headers).

I agree with Yaron's opinion.


Skipping deserializing

With the following I get an unknown field error:
#[derive(Serialize, Deserialize, Debug)]
struct Point {
    x: i32,
    y: i32,

    #[serde(skip_deserializing)]
    z: Option<Arc<Mutex<i32>>>,
}

src/main.rs:17:13: 17:31 error: unknown serde field attribute `skip_deserializing`
src/main.rs:17     #[serde(skip_deserializing)]

Just wondering why that is?
I'm using the latest Rust nightly and the following in Cargo.toml
[dependencies]
serde = "*"
serde_json = "*"
serde_macros = "*"

cheers
Chris

This was merged in 7 days ago (#265) and has not been in a release yet, so serde_macros = "*" will not pick it up. You can try having Cargo pull in serde_macros from git if you are feeling brave.

Awesome! I've give that a shot cheers


Handling of complex types at the interfaces between internal and external contexts.

(The below is as of forc v0.12.1)
Overview
I'm creating this issue to keep track of the current state of the interfaces between internal and external contexts. Specifically, this includes two types of interfaces:

Contract method arguments
Contract method return data

Contract Method Arguments
In an internal context (the contract itself), the method arguments are loaded from the call frame. Specifically param2 here which may contain the actual data passed into the contract or a pointer to the data. To load param2, we use lw $rA $fp i74.
The agreed on implementation of the above is as follows: if the data passed into the contract method is an integer or a boolean, then the data itself should be stored in param2. Otherwise, param2 should simply contain a pointer to the data in memory. Below is a summary of the possible cases in Swayland, the desired behavior, and the current behavior. In the table, "value" means param2 contains the actual data while "pointer" means param2 contains a pointer to the data.
Case 1: Single Argument

Type
Desired Behavior
Compiler Behavior
Scripts Behavior
Rust SDK Behavior

u8, u16, u32, u64, bool
value
value

value

str[1], ..., str[8]
pointer
pointer

value (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

struct of size <= 8 bytes
pointer
pointer

pointer

tuple of size <= 8 bytes
pointer
pointer

pointer

array of size <= 8 bytes
pointer
pointer

value (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

enum of size <= 8 bytes
pointer
pointer

pointer

b256
pointer
pointer

pointer

str[9], ...
pointer
pointer

value (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

struct of size > 8 bytes
pointer
pointer

pointer

tuple of size > 8 bytes
pointer
pointer

pointer

array of size > 8 bytes
pointer
pointer

value (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

enum of size > 8 bytes
pointer
pointer

pointer

Case 2: Multiple Arguments
param2 should always contain a pointer to the data. This behavior is currently consistent between the compiler
and the Rust SDK.
Contract Method Return Data
There are two ways to return from a contract method.

ret $rA which returns with value $rA.
retd $rA, $rB which returns with value MEM[$rA, $rB].
Following the logic we used for arguments, ret should be used if the data we want to return is an integer or a boolean. retd should be used otherwise. Again, here's a summary of the possible cases in Swayland, the desired behavior, and the current behavior:

Type
Desired Behavior
Compiler Behavior
Scripts Behavior
Rust SDK Behavior

u8, u16, u32, u64, bool
ret
ret

ret

str[1], ..., str[8]
retd
retd

ret (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

struct of size <= 8 bytes
retd
retd

ret (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

tuple of size <= 8 bytes
retd
retd

ret (to fix: https://github.com/FuelLabs/fuels-rs/issues/239)

array of size <= 8 bytes
retd
retd

retd

enum of size <= 8 bytes
retd
retd

retd

b256
retd
retd

retd

str[9], ...
retd
retd

retd

struct of size > 8 bytes
retd
retd

retd

tuple of size > 8 bytes
retd
retd

retd

array of size > 8 bytes
retd
retd

retd

enum of size > 8 bytes
retd
retd

retd

Oh man, thanks so much for this. ❤🔥

I think it's safe to close this issue now.


Audio doesn't work under Windows Subsystem for Linux (WSL) without .asoundrc changes

Problem
When attempting to run the rl-audio-player example program under a recent Windows Subsystem for Linux (WSL) environment, the audio playback doesn't work out of the box. You encounter the following error:
Reading file.
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM default
Total duration: 60.00 seconds
Segmentation fault

Workaround
To get audio working, you need to install the alsa-pulse-plugin and update the ALSA configuration in the ~/.asoundrc file to use the PulseAudio compatible WSL backend.
Install ALSA plugins:
sudo apt install libasound2-plugins

Add the following lines to your ~/.asoundrc file:
pcm.!default { type pulse fallback "sysdefault" }
ctl.!default { type pulse }

This configures ALSA to connect to a PulseAudio server as the default device. The PulseAudio WSL daemon acts as a bridge to transmit audio from the WSL environment to the Windows host.
After applying this configuration change, audio should work when running the rl-audio-player example program.
Additional Context
WSL doesn't have direct access to Windows audio devices. Instead, it relies on an audio transport service like PulseAudio to send audio from the Linux environment to Windows for playback.
Microsoft provides a PulseAudio server that works seamlessly with WSL. Many Linux GUI apps rely on this PulseAudio transport for audio support under WSL.
The ~/.asoundrc configuration change tells ALSA to use this PulseAudio server by default, instead of trying to directly access an audio device (which fails in the WSL context).
Suggested Improvement
It might be helpful to document this necessary WSL-specific workaround in the README, so that developers using WSL can quickly get the program running.
I can open a separate PR to add a "Windows Subsystem for Linux (WSL)" section to the README that explains the ~/.asoundrc change, but I wanted to start with an issue to see if you would find that documentation valuable first.
Even if not, I'm happy for any developer who is developing on this project under WSL who finds this Issue helpful and can save themselves all the hassle I had.

Thank you for your contribution and research. The target system for this software is a Raspberry Pi where this workaround is not necessary. However espsecially for developers working on windows machines this can be a huge relief. So feel free to open a PR.

done :)