GeneratePasswordResetTokenAsync generated token does not work from other domain

Describe the bug
Not sure it is a bug or a missing feature.
We have two identical websites using the same underlying database. The only difference is the language. For example www.example.fr and www.example.nl
I would like to have one admin location, generating users, or resetting passwords. However, when the token is created on one web site, it does not work on the other.
To Reproduce
Steps to reproduce the behavior:

Using ASP.NET Core 2.2

Run this code on domain: www.example.fr
var token = await _userManager.GeneratePasswordResetTokenAsync(user);

Construct a link for the token including the second domain:
var link = "https://www.example.nl/account/resettoken?token=token&email=email
Email this link to the user

On the other domain (/www.example.nl), when the link is clicked, get the user:
var user = await _userManager.FindByEmailAsync(email);
(Note: the database is the same, so the user is known here too)

and verify the token:
bool success = await _userManager.VerifyUserTokenAsync(user, Options.Tokens.PasswordResetTokenProvider, "ResetPassword", token);
The result is an invalid token.
If I take the link form the email and change the domain www.example.nl to www.example.fr, the token is validated successfully
Expected behavior
I did not expect the current domain on which the token is generated to be part of the check in the token.
Is this intended behavior? If so would it be possible to generate a verification token for another domain?
Thanks, Pieter

This is not the expected behaviour at all, which is very weird. Are you setting a static data protection app key here?

We're closing this issue as no response or updates have been provided in a timely manner. If you have more details and are encountering this issue please add a new reply and re-open the issue.

Sorry for the delay.
Yes, I am using a state data protection app key, which is generated if it is not there. Will it work if I copy the key from one to the other?

@blowdart I'm running into the exact same problem. Should I open a new issue for this since this one is closed?
Thanks,
Jennifer

@jbartolome Let's reopen this one.
Can I get the startup.cs, with any secrets removed as a starting point?

Here is mine:
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Mvc.Formatters;

using Microsoft.EntityFrameworkCore;
using System.IO;
using System.Linq;
using System.Net.Http.Headers;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using DTOWEB.Areas.api.Models;
using DTOWEB.Infrastructure;
using DTOWEBInfra;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using NLog;
using WebMarkupMin.AspNetCore2;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Rewrite;
using Microsoft.AspNetCore.SignalR;
using Microsoft.IdentityModel.Tokens;
using Joonasw.AspNetCore.SecurityHeaders;
using Microsoft.OpenApi.Models;
using Utility = DTOWEBInfra.Utility;

namespace DTOWEB
{
    //confirm e-mail should have a longer duration
    //from https://github.com/aspnet/Identity/issues/859
    public class ConfirmEmailDataProtectorTokenProvider<TUser> : DataProtectorTokenProvider<TUser> where TUser : class
    {
        public ConfirmEmailDataProtectorTokenProvider(IDataProtectionProvider dataProtectionProvider, IOptions<ConfirmEmailDataProtectionTokenProviderOptions> options) : base(dataProtectionProvider, options)
        {
        }
    }
    public class ConfirmEmailDataProtectionTokenProviderOptions : DataProtectionTokenProviderOptions { }

    public class Startup
    {
        private const string EmailConfirmationTokenProviderName = "ConfirmEmail";

        public Startup(IConfiguration configuration)
        {

            Configuration = configuration;
            var ver = Assembly.GetEntryAssembly().GetName().Version.ToString();
            var dir = Environment.CurrentDirectory;
            var sql = Configuration["AppSettings:sql"];

            //create the key, zet het in {production/development}-configurationstring

            var dbConnectionString = Configuration[$"settings:{sql}"];

            string[] hosts = Directory.GetCurrentDirectory().Split('\\');
            var host = hosts[hosts.Length - 1] == "httpdocs" ? hosts[hosts.Length - 2] : hosts[hosts.Length - 1];
            RootLanguage rootLanguage = new RootLanguage();
            Configuration.GetSection("RootLanguage").Bind(rootLanguage);
            RootLangBase rootLangBase = new RootLangBase();
            Configuration.GetSection("RootLangBase").Bind(rootLangBase);

            var appSettings = new AppSettings();
            Configuration.GetSection("AppSettings").Bind(appSettings);
            ;
            Config.Settings = new Config
            {
                Environment = Configuration["AppSettings:environment"].ToLower(),
                DropDirectory = Path.Combine(dir, "logs"),
                DebugLog = Utility.ToInt(Configuration["AppSettings:debugLog"]),
                MachineName = host,
                DtoVersion = ver,
                ConfigurationString = dbConnectionString,
                MaxFailedAccessAttempts = Utility.ToInt(Configuration["AppSettings:MaxFailedAccessAttempts"]),
                AppSettings = appSettings,
                LanguageNl = rootLanguage.LanguageNl,
                LanguageEn = rootLanguage.LanguageEn,
                LangBaseNl = rootLangBase.LanguageNl,
                LangBaseEn = rootLangBase.LanguageEn,
                SiteLanguage = Configuration["AppSettings:siteLanguageId"] == "en" ? rootLanguage.LanguageEn : rootLanguage.LanguageNl,
                SiteDto = Configuration["AppSettings:siteLanguageId"] == "nl" ? Configuration["AppSettings:siteDto"] : Configuration["AppSettings:siteDtoEn"]
            };

        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {

            //antiforgery working:
            services.AddDataProtection()
                .PersistKeysToFileSystem(new DirectoryInfo(Config.Settings.DropDirectory));

            //// Adds services required for using options.
            services.AddOptions();

            services.AddDistributedMemoryCache(); // Adds a default in-memory implementation of IDistributedCache
            services.AddSingleton(Configuration);
            // Register the IConfiguration instance which AppSettings binds against.
            services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
            services.Configure<RootLanguage>(Configuration.GetSection("RootLanguage"));

            services.AddWebMarkupMin(options =>
                {
                    options.AllowMinificationInDevelopmentEnvironment = true;
                    options.AllowCompressionInDevelopmentEnvironment = true;
                })
                .AddHtmlMinification()
                .AddXmlMinification();

            services.AddDbContext<DtoIdentityDbContext>(options =>
                options.UseSqlServer(Config.EntityConnectionString));

            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => false;
                options.MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.None;
            });

            //add class to inject the cookies in to the logged in user
            services.AddScoped<IUserClaimsPrincipalFactory<DtoUser>, DtoClaimsPrincipalFactory>();

            services.AddAuthorization(options =>
            {
                //only managers allowed
                options.AddPolicy("ManagersOnly", policy =>
                {
                    policy.RequireClaim(DtoClaimTypes.IsManager, "true");
                    policy.RequireRole(DtoRoles.Examiner);
                    policy.RequireAuthenticatedUser();
                });
                options.AddPolicy("ReadWriteOnly", policy =>
                {
                    policy.RequireClaim(DtoClaimTypes.IsReadWrite, "true");
                    policy.RequireRole(DtoRoles.Examiner);
                    policy.RequireAuthenticatedUser();
                });
                options.AddPolicy("EpdUser", policy => policy.RequireClaim(DtoClaimTypes.EpdUser, "true"));

            });

            services.AddIdentity<DtoUser, IdentityRole>(options =>
            // Password settings
            {
                options.Password.RequireDigit = true;
                options.Password.RequiredLength = 8;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase = true;
                // Lockout settings

                options.Lockout.DefaultLockoutTimeSpan =
                    TimeSpan.FromMinutes(Utility.ToInt(Configuration["AppSettings:DefaultLockoutTimeSpan"]));
                options.Lockout.MaxFailedAccessAttempts =
                    Utility.ToInt(Configuration["AppSettings:MaxFailedAccessAttempts"]);

                // User settings
                options.User.RequireUniqueEmail = true;

                options.Tokens.EmailConfirmationTokenProvider = EmailConfirmationTokenProviderName;
            })
                .AddEntityFrameworkStores<DtoIdentityDbContext>()
                .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options =>
            {
                options.AccessDeniedPath = "/index?relogin=1";
                options.ExpireTimeSpan =
                    TimeSpan.FromMinutes(Utility.ToInt(Configuration["AppSettings:ExpireTimeSpan"]));
                options.LoginPath = "/";

                options.SlidingExpiration = true;
                options.LoginPath = "/globalerr";
                options.LogoutPath = "/";
                options.AccessDeniedPath = "/globalerr";
                options.Cookie = new CookieBuilder
                {
                    Name = "Testmij",
                    HttpOnly = true,
                    SecurePolicy = CookieSecurePolicy.SameAsRequest,

                };

            });
            if (Configuration.GetChildren().Any(x => x.Key == "Authentication"))
            {
                services.AddAuthentication()
                    .AddFacebook(options =>
                    {
                        options.AppId = Configuration["Authentication:Facebook:AppId"];
                        options.AppSecret =Configuration["Authentication:Facebook:AppSecret"];
                    })
                    .AddTwitter(options =>
                    {
                        options.ConsumerKey =Configuration["Authentication:Twitter:ConsumerKey"];
                        options.ConsumerSecret =
                           Configuration["Authentication:Twitter:ConsumerSecret"];
                    })
                    .AddGoogle(options =>
                    {
                        options.ClientId = Configuration["Authentication:Google:ClientId"];
                        options.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
                    });
            }

            services.AddAuthentication().AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata = true;
                options.SaveToken = true;
                options.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidIssuer = Configuration["JwtAuthentication:ValidAudience"],
                    ValidAudience = Configuration["JwtAuthentication:ValidIssuer"],
                    ValidateIssuerSigningKey = true,
                    ValidateLifetime = true,
                    IssuerSigningKey =
                        new SymmetricSecurityKey(
                            Encoding.UTF8.GetBytes(Configuration["JwtAuthentication:SecurityKey"])),
                };

            });
            services.AddHttpClient();
            services.AddHttpClient("zorgmail", c =>
            {
                c.BaseAddress = new Uri(Configuration["zorgmail:url"]);
                c.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("text/xml"));

            });
            services.AddSignalR(); //Communication with the client

            //Get who the owner is when creating the connection, with a custom provider (OwnerIdProvider)
            services.AddSingleton<IUserIdProvider, OwnerIdProvider>(); //register the custom userId provider for owners

            services.Configure<ConfirmEmailDataProtectionTokenProviderOptions>(options =>
                {
                    options.TokenLifespan =
                        TimeSpan.FromDays(Utility.ToInt(Configuration["AppSettings:EmailTokenLifespanDays"]));
                });
            services.Configure<JwtAuthentication>(Configuration.GetSection("JwtAuthentication"));

            //add the hosted background service and queue
            services.AddSingleton<IBackgroundTaskQueue, BackgroundTaskQueue>();
            services.AddHostedService<QueuedHostedService>();

            // Add MVC services to the services container.
            services.AddMvc(options =>
                {
                    options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
                    options.EnableEndpointRouting = false;  //DTO-255 https://github.com/aspnet/AspNetCore/issues/6415
                    options.Filters.Add<OperationCancelledExceptionFilterAttribute>(); //globally handle cancellation
                     options.Conventions.Add(new ApiExplorerGroupPerVersionConvention()); //ApiExplorerGroupPerVersionConvention.cs used by SwashBuckle

                })
                .AddXmlSerializerFormatters()
                .AddXmlDataContractSerializerFormatters()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            string xmlPath;
            services.AddSwaggerGen(c =>
            {

                c.SwaggerDoc("v1", new OpenApiInfo { Title = "EPD V1", Version = "v1", Description = "EPD API gebruikt door de SOAP layer" });
                c.SwaggerDoc("v2", new OpenApiInfo { Title = "EPD V2", Version = "v2", Description = "EPD Api met JWT Tokens en TokenRefresh" });

                c.DescribeAllEnumsAsStrings();
                c.DescribeStringEnumsInCamelCase();

                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                 xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {

            app.UseAuthentication();
            app.UseExceptionHandler("/globalerr/{0}");

            //Register Syncfusion license
            Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(Configuration["Syncfusion:license"]);

            if (!env.IsDevelopment())
            {
                app.UseHsts(new HstsOptions(TimeSpan.FromDays(366), includeSubDomains: false, preload: false));
                var options = new RewriteOptions()
                    .AddRedirectToHttpsPermanent();

                app.UseRewriter(options);
            }
            else
            {
                app.UseHttpsRedirection();
            }

            //https://securityheaders.com :
            app.UseCsp(csp =>
            {  //https://github.com/juunas11/aspnetcore-security-headers

                // Allow JavaScript from:
                csp.AllowScripts
                    .FromSelf() //This domain
                    .From("www.googletagmanager.com")
                    .From("www.google-analytics.com")
                    .From("embed.tawk.to")
                    .From("cdn.jsdelivr.net")
                    .From("code.jquery.com")
                    .From("www.islonline.com");

                // CSS allowed from:
                csp.AllowStyles
                    .FromSelf()
                    .From("cdn.jsdelivr.net")
                    .From("fonts.googleapis.com")
                    .From("maxcdn.bootstrapcdn.com")
                    .AllowUnsafeInline();
                csp.AllowFonts
                    .From("fonts.gstatic.com")
                    .From("static-v.tawk.to");
                csp.AllowFrames
                    .From("va.tawk.to");

                csp.OnSendingHeader = context =>
                {
                    context.ShouldNotSend = context.HttpContext.Request.Path.StartsWithSegments("/api") || context.HttpContext.Request.Path.StartsWithSegments("/css")
                                                                                || context.HttpContext.Request.Path.StartsWithSegments("/js");
                    return Task.CompletedTask;
                };

            });
            app.Use(async (context, next) =>
            {

                //set standard security headers
                context.Response.Headers.Append("X-XSS-Protection", "1; mode=block");
                context.Response.Headers.Append("X-Content-Type-Options", "nosniff");
                context.Response.Headers.Append("X-Frame-Options", "ALLOW-FROM datec.nl va.tawk.to");

                context.Response.Headers.Remove("x-powered-by");  //doet het niet

                context.Response.Headers.Add(
                    "Referrer-Policy", "strict-origin-when-cross-origin"); //only send referrers when going to our own site on https
                context.Response.Headers.Add(
                    "Feature-Policy", "geolocation 'none'; camera 'none'; microphone 'none' "); //we do not need features
                await next.Invoke();
            });
            if (Configuration["AppSettings:UseWebMarkupMin"] == "true")
            {
                app.UseWebMarkupMin();
            }

            app.UseStaticFiles(new StaticFileOptions
            {

                OnPrepareResponse = context =>
                {
                    const int durationInSeconds = 15778463; // 6 months //31556926; //1 year
                    context.Context.Response.Headers.Append("Cache-Control", $"public, max-age={durationInSeconds}");
                }
            });

            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {

                routes.MapRoute(
                    "online",
                    "{area:exists}/{action=Index}",
                    new { controller = "Home" });
                routes.MapRoute(
                     "areas",
                     "{area:exists}/{controller}/{action=Index}");
                routes.MapRoute(
                     "base",
                    "{action}",
                    new { controller = "Base", action = "Index" });

            });

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v2/swagger.json", "Testmij api V2");

                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Testmij api V1");

            });

            app.UseSignalR(route =>
            {
                route.MapHub<StatusHub>("/statushub");
            });
            try
            {
                StartupDataProtection instance = ActivatorUtilities.CreateInstance<StartupDataProtection>(app.ApplicationServices);
				//added as recommended here: https://github.com/aspnet/DataProtection/issues/233
                instance.Init();
            }
            catch (Exception ex)
            {
                Logger logger = LogManager.GetCurrentClassLogger();
                logger.Fatal(ex);

            }
        }
    }
}

@vankampenp Did you try setting a static application name? I want to rule out the easy stuff first
    services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(Config.Settings.DropDirectory));
        .SetApplicationName("MyStaticAppName");

You shouldn't need StartupDataProtection instance = ActivatorUtilities.CreateInstance<StartupDataProtection>(app.ApplicationServices); any more unless you're on 1.x which went out of support this month. If that's the case please consider upgrading to 2.1 or 2.2 as quickly as you can.

Thanks Barry. I am on 2.2. (2.2.6 after the security advisory yesterday).
I will give that a try. The part was inserted in 1.1 after we had some issues. I tried removing it later, but it still occurred. I will report back whether the static application name helps eliminating the GeneratePasswordResetToken issue.

@blowdart I removed the CreateInstance, and just added the code above in ConfigureServices, with my own application name. I posted identical code to the two sites. Unfortunately, the issue still occurs, the token is not recognized when created on site A, for use on site B.

This is so weird. OK, we'll investigate some more.

This is the code for admin to reset a user password:
   ```
   /// <summary>
    /// Request to reset the password of a user
    /// </summary>
    /// <param name="examiner"></param>
    [HttpPost]
    public async Task<string[]> AdminResetPwd([FromBody] DtoExaminer examiner)
    {

        DtoUser user = await _userManager.FindByNameAsync(examiner.Examiner);
        await _userManager.AddToRoleAsync(user, DtoRoles.Examiner);
        string site = Url.Action("", "home", new {Area = "online"}, HttpContext.Request.Scheme);
        var token = await _userManager.GeneratePasswordResetTokenAsync(user);

        var err = await UserMails.SendResetEmail(token,site,user.LanguageId,user.DisplayName,user.Email);
        if (err != "") return new[] { "messagebad", err };
        TempCookie("MessageGood", "Een reset email is gestuurd");
        return new[] { "/online/admin?tab=1" };
    }

And this is where the link points to:

    /// <summary>
    /// called from the link in the email,
    /// first verify if the token is still valid
    /// if so redirect to Reset
    /// </summary>
    /// <param name="token"></param>
    /// <param name="email"></param>
    [AllowAnonymous]
    [HttpGet]
    public async Task<IActionResult> ResetToken([FromQuery] string token, [FromQuery] string email)
    {
        if (string.IsNullOrEmpty(email))
        {
            Logger.Warn("No user email for token request ");
            return Redirect(Url.Action(nameof(ForgotPassword).ToLower(), "account", new { Area = "online", isInvalidToken = true }, HttpContext.Request.Scheme)); //try another time
        }

        email = email.Clean();
        Logger.Warn("User {0} is resetting the password from the token ", email);
        try
        {
            DtoUser user = await _userManager.FindByEmailAsync(email);
            if (user == null)
            {
                Logger.Warn("Invalid user email for token request '{0}'", email);
                return Redirect(Url.Action(nameof(ForgotPassword).ToLower(), "account", new { Area = "online", isInvalidToken = true }, HttpContext.Request.Scheme)); //try another time
            }
            var userAgent = Request.Headers["User-Agent"].ToString();
            if (string.IsNullOrEmpty(userAgent)) Logger.Error("User-Agent empty");

            var ua = new UserAgent(userAgent ?? "");
            var userDetails = new
            {
                User = email,
                Host = HttpContext.Request.Host,
                Browser = ua.Browser.Name,
                BrowserVersion = ua.Browser.Version,
                OS = ua.Os.Name,
                OSversion = ua.Os.Version,
                siteVersion = Config.Settings.DtoVersion
            };
            bool success = await _userManager.VerifyUserTokenAsync(user, Options.Tokens.PasswordResetTokenProvider, "ResetPassword", token);
            if (!success)
            {
                Logger.Warn("Invalid Token receved for '{0}'", userDetails);
                return Redirect(Url.Action(nameof(ForgotPassword).ToLower(), "account", new { Area = "online", isInvalidToken = true }, HttpContext.Request.Scheme)); //try another time
            }

            Logger.Trace("Received Token for {0}", userDetails);
        }
        catch (Exception e)
        {
            Logger.Error(e);

            return LocalRedirect(Url.Action(nameof(HomeController.Index).ToLower(), "home", new { Area = "online", message = _siteLanguage.UnknownError, messageIsGood = false }));
        }
        return LocalRedirect(Url.Action(nameof(Reset).ToLower(), "account", new
        {
            Area = "online",
            message = _siteLanguage.AccountRedirect,
            messageIsGood = true,
            token,
            email
        }));
    }

userManager.VerifyUserTokenAsync returns false

Can you slim this down to the smallest repo possible for Hao to look at?

@blowdart I will try to do this next week

@HaoK Attached the repo as promised.
This repo demonstrates the issue that when using a different domain url, the token no longer works.
The demo simulates the process where a user registers an account, and is sent a token via email that is generated through userManager.GeneratePasswordResetTokenAsync(user). In stead of mailing the link, the link is just displayed on the site. After clicking the link, the token is verified against the user.
Launch the project using Kestrel server. Configure the host address that you use in application.json Host. Default is https://localhost:5001. On the first launch execute the migrations to populate the Identity database.
Step 1: click on Register, and enter an email address (it is not used to email, just as the user name and registered email address)
Step 2: The link is displayed (as if you are in your email app). Click the link.
Step 3: your token is verified, if correct, you can now set your password (Upper/Lower case, numeric and non-alphanumeric character). Press Set Password. You are now logged in.
You can change the password by clicking on your email address in the home page, or by logging out and clicking on Register again.
Step 4: Stop the app, and now copy the repo in to a new folder. Do not change anything. Start the app with a different port, for example by starting it using IIS Express this time. If needed, you can change the port number in this second repo.
Step 5: start the original repo and the copied repo. Both have the Host configured to point to the first repo executable.
Step 6: In the second repo login with your registered email address. Note that this is possible because both repo's use the same underlying data store.
Step 7: In the second repo click on your email address (Forgot Password), to reset your password.
Step 8: You get a link with the generated token, pointing to the url of the first repo. Click it.
Step 9: Notice you are redirected to the first repo, your token is checked, but it returns an error. The app shows the message "Invalid Token".
GeneratePasswordResetTokenAsync1.zip

@blowdart can you confirm what's the default behavior of dataprotection?  This app isn't doing any configuration of dataprotection, so I'm assuming the issue is that copying the app results in differences in the two apps dataprotection keys since they aren't configured to share the same keys.

Apps are isolated by default, even if they share the keyring.

Okay so everything is working by design here then.

@vankampenp If these are indeed separate instances on separate domain names you need to configure the application name to be a fixed value in all instances;
public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .SetApplicationName("example");
}

Thanks @blowdart,
After making the sample, I found that. But still no luck. But by also persisting the keys to the same UNC location did the trick.
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(Configuration["AppSettings:keydir"]))
.SetApplicationName(Configuration["AppSettings:keyname"]);
This now works!


D2e- Individual Hero Exp points

Description of Problem or Question
Hi all!!
Awesome work Bruce.
I`d like to know if its posible to give individual experience points to certain heroes. I cant see any individual exp var into the pool var.
I remenber seen that in RTL campaing its posible.
Thanks a lot for the answers..
Valkyrie Version
2.0.1
Attach Save, Quest or Scenario
Saves:
%appdata%/Valkyrie/MoM/Save
%appdata%/Valkyrie/D2E/Save
Quest:
%appdata%/Valkyrie/D2E/Editor
Scenario:
%appdata%/Valkyrie/MoM/Editor

Currently no way to do this, feature is being tracked here:
https://github.com/NPBruce/valkyrie/issues/375


[Windows] When I restart the container, the container's ip will change

Rancher versions:
rancher/server: v1.6.14
Docker version: (docker version,docker info preferred)
17.06.2-ee-6
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
Windows 2-16
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
AWS
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
All
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Windows
Steps to Reproduce:

Create a service, view the IP of the container is "<IP_ADDRESS>"
Restart this container and view the container IP
Results:
Container IP has changed

Thanks for your report!
With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.
If you think we should keep this issue open, please let me know.


fix: use default entitlements

Summary
There has been a case some of the functionalities don't work since #290 is merged
The only part that can affect this seems to be updated entitlements.
I will revert back to the previous setting which uses the default entitlements list provided by electron-osx-sign
How to validate this change
Build the apps from this branch and test all of the mac artifacts, then verifyTest feature works

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-09-28T03:41:40.908+0000

Duration: 10 min 58 sec

:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

/test all : Re-trigger the build for all the stages.

Closing as entitlements are not an issue, and the default entitlements require extra permissions than we need.


[Docs|DETS] : Arc42 document update

Description
Changed

ARC42 document update for the EDC 7 support

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

@adkumar1 @sachinargade123 Please review


Fixes React.PropTypes deprecated into its own package since RN 0.45

fixes #76
Also adopted yarn

Why has this never been merged? :disappointed:


Implement test executor

Test executor is responsible for the actual test execution, following the specification provided by test scheduler.
Test scheduler typically produces multiple YAML files with test execution specification and test executor is supposed to execute all of them in parallel and gather test results.
Workflow is also briefly captured in https://miro.com/app/board/uXjVN67jOho=/

Implemented in https://github.com/RedHatQE/newa/pull/26


[windows] crypto/buildinf.h is generated incorrectly if path to compiler has spaces

For example if CC is defined is Makefile as:
CC="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\HostX64\ARM64\cl.exe"

Then generated crypto/buildinf.h will be:
/*
 * WARNING: do not edit!
 * Generated by util/mkbuildinf.pl
 *
 * Copyright 2014-2024 The OpenSSL Project Authors. All Rights Reserved.
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */

#define PLATFORM "platform: Files\Microsoft"
#define DATE "built on: Mon Dec 23 22:44:48 2024 UTC"

/*
 * Generate compiler_flags as an array of individual characters. This is a
 * workaround for the situation where CFLAGS gets too long for a C90 string
 * literal
 */
static const char compiler_flags[] = {
    'c','o','m','p','i','l','e','r',':',' ','C',':','\\','P','r','o',
    'g','r','a','m','\0'
};

It can also lead to compilation errors due to presence of backslashes in a string literal.

I think the issue here is that CC macro in makefile is enclosed in quotes:
CC="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\arm64\cl.exe"

And then it is expanded also inside quotes:
crypto\buildinf.h: "util\mkbuildinf.pl"
   "$(PERL)" "util\mkbuildinf.pl" "$(CC) $(LIB_CFLAGS) $(CPPFLAGS_Q)" "$(PLATFORM)" > $@

This cancels the quotes out and causes nmake to split $(CC) on spaces, and pass its parts as separates arguments to the mkbuildinf.pl script.
I'm not sure what the correct solution here. $(CC) is used both with quotes and without them in the makefile and I don't know whether it's safe to remove quotes in its definition.

If I modify mkbuildinf.pl to just print arguments via print join("\n", @ARGV); then this is written in buildinf.h:
C:\Program
Files\Microsoft
Visual
Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\arm64\cl.exe /Zi /Fdossl_static.pdb /MT /Zl /Gs0 /GF /Gy /W3 /wd4090 /nologo /O2 -DL_ENDIAN -DOPENSSL_PIC -D"OPENSSL_BUILDING_OPENSSL" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE" -D"OPENSSL_SYS_WIN_CORE" -D"NDEBUG"
VC-WIN64-CLANGASM-ARM


Gnome 41 support

I am still learning how to make extensions so i haven't figured out how to fix this one.
Are you working on support for 41? Do you need help if so?

It is not showing up even though i placed it in ~/.local/share/gnome-shell/extensions/ with the updated metadata file


How resolve EXE_in_LNK false positive on my project

Sorry for this question a little out of context, but I would like to understand how to fix errors found as EXE_in_LNK by Yara;
This is the role in my .github/workflows/rules.yar :
rule EXE_in_LNK
{
    meta:
        id = "3SSZmnnXU0l4qoc9wubdhN"
        fingerprint = "f169fab39da34f827cdff5ee022374f7c1cc0b171da9c2bb718d8fee9657d7a3"
        version = "1.0"
        creation_date = "2020-01-01"
        first_imported = "2021-12-30"
        last_modified = "2021-12-30"
        status = "RELEASED"
        sharing = "TLP:WHITE"
        source = "BARTBLAZE"
        author = "@bartblaze"
        description = "Identifies executable artefacts in shortcut (LNK) files."
        category = "INFO"

    strings:
        $ = ".exe" ascii wide nocase
        $ = ".dll" ascii wide nocase
        $ = ".scr" ascii wide nocase
        $ = ".pif" ascii wide nocase
        $ = "This program" ascii wide nocase
        $ = "TVqQAA" ascii wide nocase

    condition:
        isLNK and any of them
}

This is the error detected by VirusTotal YARA-CI

How do I solve this problem detected in my project?

Hi FrenkyDema,
It's not really clear what you want to achieve - do you want to avoid that rule running on VirusTotal?
If so, add it to the list to be ignored as I've done similarly in the yara-ci.yml file:
https://github.com/bartblaze/Yara-rules/blob/master/.yara-ci.yml

Hi, thanks for the reply;
In specific I would like to solve this error so that it is no longer detected by VirusTotal

Hi,
The rule you mention above is part of the Generic Yara rule set - refer to the following:
https://github.com/bartblaze/Yara-rules#help-a-generic-rule-is-hitting-my-software
If you do not want this to appear again in VT, add it to the Ignore list, or comment the Yara rule so it is not active.

Hi,
In particular, I would not like to deactivate the rule but try to solve the problem that makes it triggered if it is possible;
Thanks

Hi,
The rule is expected to have several False Positives - that's why it's a generic rule 😄 However, you're likely to reduce this rate a lot by removing this line:
$ = ".exe" ascii wide nocase
Let me know how that worked out.

So this rule is triggered when it detects some form of problem in my app code, right?

Hi,
The rule does exactly what it says: Identifies executable artefacts in shortcut (LNK) files.
As it's a generic rule, it can hit even on innocent shortcut files - that's why it's a generic rule. You can tweak the rule further until it doesn't hit, but that also defeats the purpose. 😄


FR: Provide a way to borrow data from a slice.

For example,
let serialised: &[u8] = todo!();
let slice = <&[u8]>::try_from_slice(serialised)?;

#[derive(BorshDeserialise)]
enum Record<'a> {
    JustKey(&'a [u8]),
    KeyAndValue(&'a [u8], &'a [u8]),
}

match Record::try_from_slice(serialised) {
    Record::JustKey(key) => todo!(),
    Record::KeyAndValue(key, value) => todo!(),
}

This is definitely a great feature to have! Yet, I believe it is not going to be on Pagoda's plate any time soon, but I am happy to review a PR if someone will implement this feature.

this is a  example of a variant of how this could be done. https://github.com/dj8yfo/borrow_deserialize
It's not minimal enough to fit into a small gist.
It might be better to create a separate trait BorshBorrowDeserialize<'de> for this and not attempt to mix everything in one trait
https://github.com/dj8yfo/borrow_deserialize/blob/master/src/deserialize_trait.rs#L7

Well, adding a method and a lifetime to the existing public trait is going to be a major breaking change. I don't have the capacity right now to assess how cumbersome would a separate trait path be. I think overall, we may keep this issue in a backlog for now and think about it in the background while we are addressing other papercuts.


Add Feedback page done ! #363

Hello, PR
Add new Feature(Feedback page) done - #363

Type of change

Bug fix (non-breaking change which fixes an issue)
Chore (refactoring code, technical debt, workflow improvements)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
This change requires a documentation update

How should this be tested?

[x] Test A
[x] Test B

Mandatory Tasks

[x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.

@YadavAkhileshh

@YadavAkhileshh

@YadavAkhileshh

@YadavAkhileshh

@YadavAkhileshh please merge my pull request
otherwise I cannot start another task...

@YadavAkhileshh PA kindly upgrade the level 2 to 3, because I have added a lot and also made so many changes... you can check my code & screenshots/video..
Thank You

@YadavAkhileshh PA kindly upgrade the level 2 to 3, because I have added a lot and also made so many changes... you can check my code & screenshots..
Level 2 is too low for this work, if you check other projects, they are giving level 3 for this.
If you give me level 3 it will be very helpful..
Thank You

@YadavAkhileshh PA kindly upgrade the level 2 to 3, because I have added a lot and also made so many changes... you can check my code & screenshots..
Level 2 is too low for this work, if you check other projects, they are giving level 3 for this. If you give me level 3 it will be very helpful..
Thank You 🙏🏻

@YadavAkhileshh kindly upgrade the level 2 to 3 🙏🏻
See in other projects they are giving level 2 only for "Star rating widget"...
and I added a new feedback page with "Star rating widget"

@YadavAkhileshh PA kindly upgrade the level 2 to 3, because I have added a lot and also made so many changes... you can check my code & screenshots..
Level 2 is too low for this work, if you check other projects, they are giving level 3 for this. If you give me level 3 it will be very helpful..
Thank You 🙏🏻

@YadavAkhileshh kindly upgrade the level 2 to 3 🙏🏻
See in other projects they are giving me level 2 only for "Star rating widget"... and I added a new feedback page with "Star rating widget"

@YadavAkhileshh


oAuth Example

Can somebody provide an example of how to authorize? I dont know what to use for redirect URL

@objectiveSee I will do that soon. Thanks

@shernshiou - thanks for the awesome library.
@objectiveSee - I created a basic example here: https://github.com/scottdixon/node-express-uber-example

@shernshiou do you still need help with that? I have another sample here

@agraebe @scottdixon yeah help is greatly needed

@scottdixon I got inspired by your example and updated the README: https://github.com/shernshiou/node-uber/blob/master/README.md. Do you have any other suggestions for improvement?
@objectiveSee I hope this will be help for you. Let us know otherwise!

@agraebe Are you aware of any issues with creating/requesting a ride?
I seem to get a 401 (unauthorized) on every uber.requests.create() call -- all other API calls requiring access_token are functioning fine.

@aleksdao I'm not aware of any issues... let me double check in a few hours... Would you mind sharing your code within a new issue? And also, did you request the required scope (and enabled it for your app in the Uber Developer Dashboard)?


Breaking changes not showing in addon update changelog in HA

Problem/Motivation
For some reason not all information of the changelog is shown in the HA addon update screen.
After updating AppDaemon to 0.15.2 it no longer started. After googling a while I found #287 and after fixing it I've noticed that actually the breaking change is mentioned in the changelog.
But since I only read it directly in HA, it wasn't displayed there and I assumed this was just some small update without anything breaking.
I don't know exactly if this is a HA problem or an issue with this specific Addon. But it should get fixed so we no longer miss important details.

Expected behavior
Showing all information of the changelog
Actual behavior
Some very important details are missing
Steps to reproduce
Have e.g. AD 0.15.1 installed whilst showing an update to version 0.15.2
Proposed changes
Workaround:
Always do some extra steps and go to Github to check the changelogs.

May I add to this?... I just spent 1-2 hours debugging this issue. Thanks for creating this one to put me on the right track. But there is an annoying follow-up error resulting from the secrets thing. After the update, the files get moved around, all fine and good - mostly. Mine got moved with the secrets: /config/secrets.yaml still in place, which causes this error:
[19:51:04] INFO: Starting AppDaemon...
Traceback (most recent call last):
  File "/usr/bin/appdaemon", line 8, in <module>
    sys.exit(main())
ERROR Error loading secrets file: /config/secrets.yaml
             ^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/__main__.py", line 417, in main
    admain.main()
  File "/usr/lib/python3.11/site-packages/appdaemon/__main__.py", line 276, in main
    if "appdaemon" not in config:
       ^^^^^^^^^^^^^^^^^^^^^^^^^

(I accidentally truncated this log... sorry... it exits with None type not iterable)
Thanks to this issue, I was able to fix the issue by logging in on the backend and issueing:

To edit the line in question. This fixed the issue. However, I would propose a graceful recovery in case the secrets-file cannot be loaded, especially because the config files were moved and it is unclear how to edit them. Maybe just leave it at an error and continue, not allowing secrets to be interpreted?
Anyway, thanks for the work from my side! I can only imagine how hard it is to maintain a popular plugin with so many moving parts...

I feel the need to clarify: It would also be great if the update tries to move the files again if it finds them still present in the /config/ folder and overwrite them in the target location. That offers an easy route for people to recover from the issue should they be hit without figuring out the path above...

same here

This isn't incorrect, it shows the latest change.
The missing part highlighted was later added to the release notes, that doesn't change what is already shipped out.
../Frenck


[perf] Add flag to fix missing store paths

Summary
Adds new --fix-missing-store-paths flag that can be used with install. It fills in any missing store paths in lockfile, improving future performance.
I'm not 100% convinced this works in all cases. My two biggest concerns would be:

I'm setting all outputs to default.
re derivation name parsing: Not 100% sure we can rely on versions never having dashes.

How was it tested?

unit test
Manually removed store paths form lockfile and tried to install. Got warning, ran with flag.

@Lagoja @gcurtis made updates we talked about:

Better copy when missing store paths.
Only show message for devbox packages (i.e. pkg@version)
Fix store paths on update

Running this, I get:
Warning: Outputs for libiconv@latest are not in lockfile. Fetching store paths from nix
To fix this issue and improve performance, please run `devbox install --fix-missing-store-paths

Are we fetching the store paths at the time that I get this message? Or do I need to run the command with the flag

@Lagoja I need to hide the message when using the flag. Will do.

Should we name the flag --tidy-lockfile? Are missing store paths in the lockfile a problem? I thought it just made things slower.

I like that name. Will change. It gives us flexibility to do more stuff.
missing store paths from lockfile can be a big perf drag, especially if all packages are in cache. If the store paths are missing we end up having to download nixpkgs every time (which adds 40s for each nixpkgs). Particularly painful on CICD because env is fresh every time.


Add contributor page and fix some minor issues

issue solved: #648
https://github.com/narayan954/dummygram/assets/94003231/77f1da07-5ceb-4979-ac15-d128b9da7b2d
I also fix some minor issues in the setting the About page and privacy and policy page link are incorrect. I also fixed this

Thanks @SubhamB2003 reviewing

Also, as a tip... @SubhamB2003 if you write something like solves #648 instead of issue solved: #648  in the pull request comment, you can directly link your issue to the pull request :)


Clean up & improve execution tests

The goal of this PR are:

[X] Clean up the remnants of ROS1 tests stil present in the driver
[X] Start ursim as part of the execution test
[x] Get rid of custom docker images in favor of upstream ursim
[x] Clean up tests so they are reasonably maintainable

Oh, and the github/dockerursim folder could probably be deleted in this PR, as well.

dockerursim is still used by galactic, so it cannot be removed now. As galactic EOL is already pretty close i would not touch that for now but remove it afterwards.

The humble binary failure should be fixed with the next humble sync. I think this is ready to get merged in.

Our tests seem still to be randomly timing out... Which is odd, since the tests should only take about 1.5 minutes, as seen here and our timeout is currently at 500 seconds.


fix: Rename cmd to command in OProc.repr

Fix the AttributeError raised when using repr in "OProc".
This issue is annoying when you use a debugger and it tries to represent every object in the frame.

The tests are failing.

Thanks @DarkaMaul. Can you give me an example/screenshot of the output difference that this makes to help me better understand the problem?

Actually, I think the problem is coming from my IDE and not sh.
I will try to investigate and report later.


Bind the flask application server to a real HTTP server (e.g. NGINX or Apache2)

https://www.digitalocean.com/community/tutorials/how-to-build-and-deploy-a-flask-application-using-docker-on-ubuntu-20-04


docker image size is too large

docker size is tooooo large.
can you make it smaller?

Wechaty docker image is based on the Ubuntu standard version and it also pre-installed all the puppets and the related NPM modules, the compressed size is arount 400~500MB.
It is possible to reduce the size, but it will cause the cost of the maintainment to be high.
So I'd like to keep the things simple: use the standard base image and install everything for easy maintain and use.
If you need a smaller image, please feel free to write a better Dockerfile by yourself.
Good luck!


Screen capture not working (Android & iOS)

Godot version:
3.0-stable
OS/device including version:

Android 7.0,  GPU: Mali-T860MP2
Issue description:
The screen capture official demo is not working on my device. After some debugging I've found that the img var is returning null at this point:
	get_viewport().set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)
	# Let two frames pass to make sure the screen was captured
	yield(get_tree(), "idle_frame")
	yield(get_tree(), "idle_frame")

	# Retrieve the captured image
	var img = get_viewport().get_texture().get_data()

Steps to reproduce:
Just run the demo on a mobile device and press the "Capture screen" button.
Minimal reproduction project:
https://github.com/godotengine/godot-demo-projects/tree/master/viewport/screen_capture

As additional note, it's working fine on my PC (Windows 10).

extends Sprite3D

func _ready():
	var view = $"Viewport"

	yield(get_tree(), "idle_frame")
	yield(get_tree(), "idle_frame")

	print("view.get_texture() = ",view.get_texture())
	print("view.get_texture().get_data() = ",view.get_texture().get_data())

02-26 06:15:30.276: I/godot(3112): view.get_texture() = [ViewportTexture:1815]
02-26 06:15:30.276: I/godot(3112): view.get_texture().get_data() = [Object:null]

it happens also with Viewport node which added in scene tree.
it works on x11 but not on Android device.

Not working on iPhone X simulator too. Same behavior,
var img = get_viewport().get_texture().get_data()
is returning null.

I've tried everything, and the problem is to get_data on any texture, besides being the viewport one or not. (On pc/Linux works, on android it doesn't) I've also tried with the nightly build from https://hugo.pro/projects/godot-builds/, but no luck.

Hi, how is this issue going on? this is a really important part for the game I'm finishing and I understand the issue is in saving the image, isn't it?

I can confirm that Texture.get_data() doesn't work on Android. It always returns null.

get_data isn't working with ViewportTexture, it's working with ImageTexture though.

Nope, for me it fails for ImageTextures too. Maybe it has something to do with the texture format or compression?

@ProbDenis it's strange, because it worked for me... I have no idea what is hapenning here :(

I could solve this making a custom module for android and recomoiling templates... I dunno how yo share the code or push it in the git... any suggestions?

It's a core feature and should work on all platforms (as it always worked). The module solution can be used just as a workaround.

Adding a me too here. I'm calling .get_data on an ImageTexture. Works fine on windows but returns null on Android.

Also having this same issue using Godot v3 (master); Shin-NiL Godot-Share module example works perfectly fine on PC (it uses Screen-Capture), but it won't work on Android as .get_data returns null.
There still no workaround for screen capture yet? This is somewhat crucial for mobile games sharing systems.

This is one of the reasons why I'm stuck in version 2.1.* :(

I will try to fix this for Godot 3.1

An option can be get back the Godot 2 function: Viewport.get_screen_capture() by copying the image that is being displayed in the screen here:
https://github.com/godotengine/godot/blob/d488c35efabee9d9317a91cdb905a460e7fce0af/servers/visual/visual_server_viewport.cpp#L320

I've been trying to port code from 2.0 to 3.0, to try to get screenshot functionality into old android phones that don't support GLES3.
I've done this quick hack into viewport.cpp just to see if it works, but glReadPixels segfaults about one in six times.
I'm using the OP's MRP to test it.
I'd be grateful if anyone could give me some help.
Ref<Image> ViewportTexture::get_data() const {
	// 1 == GLES2
	if (OS::get_singleton()->get_current_video_driver() == 1){
		int width = this->get_width();
		int height = this->get_height();
		int size = width * height * 4;
		glPixelStorei(GL_PACK_ALIGNMENT, 4);
		Image *img = new Image(width, height, false , Image::FORMAT_RGBA8);
		img->lock();
		glReadPixels(3,3,width, height, GL_RGBA, GL_UNSIGNED_BYTE, img->write_lock.ptr());
		img->unlock();
		return Ref<Image>(img);
	}
	else{
		ERR_FAIL_COND_V(!vp, Ref<Image>());
		return VS::get_singleton()->texture_get_data(vp->texture_rid);
	}
}

I've been following this SO question: https://stackoverflow.com/questions/1024603/opengl-es-render-to-texture#1024634
I noticed that most of this code is already implemented on render_target_create and render_target_set_size(). However, I'm stuck here. What function can I call that renders everything to the set render_target without resetting it?

I feel like this should be working.
https://pastebin.com/3DrPr9dS
Any pointers?

@JFosnS That's great to hear!
It's in the GLES part of rasterizer_storage_gles2:

This is related so I'm commenting to this issue rather than opening a new one.
The issue is viewport.get_texture().get_data() can actually crash the game even in Windows.
It is somehow related to instancing a scene (not sure).
Anyways, here is reproduction code:
viewport_texture.zip
Just press the button.
Result is:
ERROR: CowData<class Ref<class Image> >::get: FATAL: Index p_index=0 out of size (size()=0)
   At: D:\godot\core/cowdata.h:146
CrashHandlerException: Program crashed
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] RasterizerStorageGLES3::texture_get_data (d:\godot\drivers\gles3\rasterizer_storage_gles3.cpp:1016)
[1] RasterizerStorageGLES3::texture_get_data (d:\godot\drivers\gles3\rasterizer_storage_gles3.cpp:1016)
[2] VisualServerRaster::texture_get_data (d:\godot\servers\visual\visual_server_raster.h:154)
[3] VisualServerWrapMT::texture_get_data (d:\godot\servers\visual\visual_server_wrap_mt.h:88)
[4] ViewportTexture::get_data (d:\godot\scene\main\viewport.cpp:129)
[5] MethodBind0RC<Texture,Ref<Image> >::call (d:\godot\core\method_bind.gen.inc:641)
[6] Object::call (d:\godot\core\object.cpp:968)
[7] Variant::call_ptr (d:\godot\core\variant_call.cpp:1049)
[8] GDScriptFunction::call (d:\godot\modules\gdscript\gdscript_function.cpp:1070)
[9] GDScriptInstance::call_multilevel (d:\godot\modules\gdscript\gdscript.cpp:1174)
[10] Node::_notification (d:\godot\scene\main\node.cpp:63)
[11] CanvasItem::_notificationv (d:\godot\scene\2d\canvas_item.h:140)
[12] Control::_notificationv (d:\godot\scene\gui\control.h:51)
[13] Object::notification (d:\godot\core\object.cpp:980)
[14] SceneTree::_notify_group_pause (d:\godot\scene\main\scene_tree.cpp:947)
[15] SceneTree::iteration (d:\godot\scene\main\scene_tree.cpp:474)
[16] Main::iteration (d:\godot\main\main.cpp:1818)
[17] OS_Windows::run (d:\godot\platform\windows\os_windows.cpp:2740)
[18] widechar_main (d:\godot\platform\windows\godot_win.cpp:150)
[19] _main (d:\godot\platform\windows\godot_win.cpp:174)
[20] main (d:\godot\platform\windows\godot_win.cpp:184)
[21] __scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283)
[22] BaseThreadInitThunk
-- END OF BACKTRACE --
ERROR: NetSocketPosix::_get_socket_error: Socket error: 10054
   At: drivers\unix\net_socket_posix.cpp:195

Thanks @JFonS , I've tested your changes on my Android device using the official screen capture demo.
GLES 2
Worked just fine ;D

GLES 3
Almost there

* as a side note, the booting stage using GLES 2 is extremely slow (about 15s to open the app), but that's most likely another issue.

@JFonS We are working in an alternative implementation (nothing pull-requestable yet) and it looks very different than yours.
And here is how we are doing the screenshot: https://github.com/jahd2602/godot/commit/42fbfa7db13ba9ff675a20680ab7638c8067cc43

Thanks for testing @Shin-NiL.
I'm not sure about the cause of the GLES3 mess. It looks like the shape is fine but the colors are interpreted in a wrong format. I will do some some changes later today to try and fix this.
@jahd2602 I'm by no means an OpenGL ES expert, I just implemented what reduz wrote:

The way to do this properly, IMO, when running on mobile, is to

Create a framebuffer and a texture, it could be an existing texture but I advise a new RGBA one, else many formats, like the compressed ones, can't be obtained.
Render the texture to it, and then reconvert the texture to the format. (if compressed, do not recompress)
Delete the framebuffer and newly created texture

If you solution works it will probably be better, since my PR is basically a hack.

@JFonS our version (jahd2602, vnen and mine) works like it used to in Godot 2, which means it captures the whole framebuffer, and not a specific texture.
texture_get_data() should work for any texture, and not just viewports, right?

@jabcross Yes, that's the idea. Although it still lacks support for mipmaps and compressed textures.
It looks like it works fine for screen caputre in GLES2 but I'm having some trouble getting it to work in GLES3.

As I had previously reported, it's not working properly with GLES3. So I believe this issue should not be closed.

@Shin-NiL I updated my PR and it worked fine for me in GLES3. Have you tested the screen capture demo using a build from current master?

I'm sorry @JFonS it was my fault. I thought it was merged on alpha2. I've tested with master now and it's working fine with GLES2 and GLES3.
Thank you very much for your hard work ;)

Doesn't work for me at all in 3.1.1 (Linux or android) if I try to capture a viewport other than the default one. Just modify the screen capture demo by adding a new "VP" viewport and moving BG TextureRect as a child of that viewport. Then replace get_viewport() in the code with $VP.

My version of Godot is 3.1.1 and it is not working on my iOS device, is it not fixed?


Test Objective-C in Jenkins

Travis doesn't have Macs for us, but soon we'll have dedicated ones for our Jenkins instance. By then, we should have a script to:

Install cocoapods and homebrew (or we have them permanently installed?).
Install protoc and the gRPC plugins from head.
pod install in the Objective-C tests directory.
Compile and run locally a RouteGuide server.
xcodebuild test

Recommend developing a way to test this that doesn't require root access to
help keep everything as hermetic as possible.
On Wed, Jun 17, 2015, 9:38 PM Jorge Canizales<EMAIL_ADDRESS>wrote:

Travis doesn't have Macs for us, but soon we'll have dedicated ones for
our Jenkins instance. By then, we should have a script to:

Install cocoapods and homebrew (or we have them permanently
installed?).
Install protoc and the gRPC plugins from head.
pod install in the Objective-C tests directory.
Compile and run locally a RouteGuide server.
xcodebuild test

—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/2119.

Notes.
To install Cocoapods locally: https://guides.cocoapods.org/using/getting-started.html#sudo-less-installation
To install Homebrew locally:
cd ~
mkdir homebrew && curl -L https://github.com/Homebrew/homebrew/tarball/master | tar xz --strip 1 -C homebrew
export PATH=$HOME/homebrew/bin:$PATH

To configure an XCode project properly for CI (plus troubleshooting): https://github.com/facebook/xctool#continuous-integration

Blocks https://github.com/grpc/grpc/issues/2127 and https://github.com/grpc/grpc/issues/2128

I think we should have this for beta.

s/should/must, in my view
On Mon, Jul 13, 2015 at 10:11 PM Jan Tattermusch<EMAIL_ADDRESS>wrote:

I think we should have this for beta.
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/2119#issuecomment-121134231.

Yes, as we decided yesterday, testing coverage is a requirement for Beta.
On Tue, Jul 14, 2015 at 9:53 AM Craig Tiller<EMAIL_ADDRESS>wrote:

s/should/must, in my view
On Mon, Jul 13, 2015 at 10:11 PM Jan Tattermusch<EMAIL_ADDRESS>
wrote:

I think we should have this for beta.
—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/2119#issuecomment-121134231.

—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/issues/2119#issuecomment-121306603.

What I need from you is the list of softwares to install on MacOS, and a script that builds and run the tests.

Nico: software that needs to be installed in the Mac:

XCode
XCode's "Command Line Tools": From Xcode, install via Xcode → Preferences → Downloads.
Cocoapods

The current script I have in #2538 expects protoc to be installed and on the path. I can adjust it so that it compiles protoc from the submodule and runs the resulting binary. But I expect running a local gRPC server will require it "installed and on the path" anyway, right?

Also, note that that script is not what we should run on Jenkins. I'll update you when that's ready.

./tools/run_tests/run_tests.py -l objc can now be used by Jenkins.
It still expects protoc to be installed.

Ok, xcodebuild and cocoapods are installed in the Mac Jenkins machine. Now I only need to fix the build scripts to use protoc from bins/$CONFIG/protobuf/ if it's not installed (it won't be installed in the machine).

The tests are still failing, and looking into it via ssh it seems XCode isn't installed on the machine :) (only XCode's command line tools are). Because installation is via iTunes, I can't do it myself via ssh, though.

This is blocked on issue #2807.

We're currently trying to have them on Travis. They're failing there, so I need to debug what's going on.

Fixed by #3998 :) :)


merge package template from Kronos-Tools/npm-package-template

package.json

chore(devDependencies): update<EMAIL_ADDRESS>from template
chore(engines): update<EMAIL_ADDRESS>from template

.travis.yml

chore(travis): merge from template .travis.yml

Coverage remained the same at 80.22% when pulling fdcad1a2032af51a756ca7406d1de05079f30b68 on template-sync-1 into 684b64b3fcbc8ca4b36f116c56c650d024d29875 on master.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #162   +/-   ##
=======================================
  Coverage   84.21%   84.21%
=======================================
  Files           1        1
  Lines          57       57
=======================================
  Hits           48       48
  Misses          9        9

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 684b64b...fdcad1a. Read the comment docs.


bump rke to v1.5.11-rc5

https://github.com/rancher/rancher/issues/46117

LGTM though not sure why there were extra bumps for golang.org/x/exp in the autogenerated PR (#46118 (files)). @jiaqiluo ?

It turns out that the workflow executes the command go get<EMAIL_ADDRESS>then go mod tidy and go mod verify, which results in bumping the golang.org/x/expgolang.org/x/exp module (code).  When I prepared the PR I did not run the go get so that change does not appear in this PR.
Now, the PR is updated to include the bump of golang.org/x/exp although  I don't think it affects anything without bumping the golang.org/x/expgolang.org/x/exp module based on my experience.

Merging with failing v2prov tests as change to bump RKE1 has absolutely zero effect on v2prov tests.


Adds Crashlytics build phase

This is just for the non-develop scheme's right?

yeah
if [ "${CONFIGURATION}" != "Debug" ]; then
     "${PODS_ROOT}/Fabric/run" ${FABRIC_API_KEY} ${FABRIC_BUILD_SECRET}
fi


fix: add action buttons to time series column popover

SUMMARY
Fixes #12672.
Improves the layout of the elements.
@rusackas will open another PR to globally fix the tooltip wrap. I increased the spacing to avoid wrapping.
@junlincc @zuzana-vej
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN
1 - Create a Time Series table
2 - Check Times Series Columns control
ADDITIONAL INFORMATION

[x] Has associated issue:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

tested locally. LGTM. Thanks again!


CFP models and forms

Updates the CFP (proposal and speaker profile) models and forms to match what ZK had -- fixes #17

Tested. Working. Great job.


Release 2.0

Like in https://github.com/sanger-tol/insdcdownload/pull/16, this PR is to finally release all the code that's been sitting on the dev branch for a while. All the individual changes have been reviewed in previous pull-requests and the only extra commits I've added are to update the changelog and the version numbers

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

https://github.com/sanger-tol/ensemblrepeatdownload/pull/12

Done


MySQL backend do not work

Backend do not pass authentication credentials.

I just did a new release for Django 1.8 where I could not reproduce this issue. Please try it out and just reopen the isses if it is still not working for you.
Thanks!


Support for sh:closed

From @hmottestad on March 27, 2018 11:49
Add support for sh:closed
sh:closed is quite hard to validate. Essentially it allows someone to specify that a node of type X is only allowed to use certain predicates. In other words, any predicates on a node that have not been used when evaluating a SHACL rule, are violations.
Possible way to handle this is to collect all statements in a hashmap that have been used for evaluating  rules, or to add a field to the statements to keep track of if they were validated or not.
sh:closed might also open up some new ways of optimizing validation.
Related feature to implement: sh:ignoredProperties
Copied from original issue: eclipse/rdf4j-storage#61

@hmottestad this still relevant?

Yes, this is still not implemented.


Vagrant setup

Changes
Added vagrant to the project, follow the readme in the vagrant folder.

@EaseApp/hackers if no one sees any glaring issues I'll merge this in.

Updated the readme and made ti so it hosts on local host.


Interactive real-time user.js: Stage 1 [Data Collection] Part 2

We're trying to build an online, interactive, real-time user.js as an extension of this repository.

The prototype is here: https://nwmviewer.shinyapps.io/ghacks_userjs/
Previous waffling was in #569, and then in #574
Feedback and suggestions for what people would find useful to have are always welcome.

This issue will focus on

what data we want to include
simplifying data collection
ensuring the quality and accuracy of the data being pulled
the table structure to facilitate layout

:small_red_triangle_down: DATA COLLECTED
x100s section info

[x] section No.
[x] section title
[x] section header
[x] ?? multi-line sub-section headers /**  - there are only 2

/** safe browsing (sb) <- good info
/** tracking protection (tb) <- 2 lines not important

always between /* number and ***/

[x] pref number
[x] Description: first line

[ ] description & subsequent data not picked up if first pref is commented out: see 1202, 2508, but subsequent pref(s) are active

[x] Info
[x] Notes
[x] Warning
[x] Setup tags
[x] Settings
[x] Tests
[x] Reference Links

always after /* number and ***/

[x] pref Name
[x] pref Value

only on user_pref lines, at end after ; //

[x] [HIDDEN* (icon)
[x] [DEFAULT* (includes value and optional text)
[ ] ?? comments (do we need them, lets do a count and see what they contain)

always after /* number on the first line (applies to all prefs for that number) OR on user_pref lines, not both

[x] [FF* (includes number or numbers, eg [FF60+] or [FF40-49]
[x] [WINDOWS] [MAC] [LINUX] [ANDROID]

:small_red_triangle_down: DATA QUALITY / COLLECTION

[x] get tags out of section headers
[ ] first line cleanups

:small_red_triangle_down: THINGS TO THINK ABOUT

[ ] sections that don't have a pref but do have kids

I think 0105 -> 0105a/b/c/d is the only one. We should check this. If this is the only one, if so we're OK We don't want to propagate the setting tags anyway and the info isn't needed

[ ] propagation of something from  /* ... ***/  to each pref when a number is multi-pref

not good when filtering and the first pref falls off, leaving a blank
propagate something like see parent pref xxxx for info? Doesn't always work

[ ] how to pull thru sections like 4600 that use a one-switch char and different syntax

Here's a turtle :turtle:
:small_orange_diamond:  UI THINGS we've spotted (not important yet)

[ ] count includes displayed section titles (i.e it shows rows displayed)

That's me for now.  It'll be a totally "no pants" episode with loud music and me running naked thru the house yelling and singing. See you in 24 hrs (if I survive)
@earthlng , sorry mate, about the PR. But when you get the time, if you're OK with it, feel free to squash and commit it. (then we can get on with diffs). Oh, and your thoughts would be super welcome on all of this :kiss: :suckingup:
@overdodactyl Take a break buddy, drink some wine ... what can wrong, they said! See if you work out how to propagate from always between /* number and ***/ to each user_pref for these four items

has [test
has [warning
has [setting
has [setup* - differentiate between each type, and allow for future appendages (e.g. [setup-harden] )

^ I'd rather do that than pollute each user_pref with [T], [W] etc.
This would then get us two clearly defined sets of data

number, first line, links, all the text (info+notes+warning+setup*+tests+settings)

pref number, pref first line, pref value, and all the icons we need

oooh, just checked the prototype ... I love it, the expand etc. See how combining all that text into one field is better - but we still want to propagate some stuff to each user_pref line, basically as already said, so filtering doesn't drop things

Where are you pulling this from.. 0303 has a windows tag in the first line, but not in the PR.

Definitely is improving!  Propagating the info shouldn't be too difficult.

Where are you pulling this from.. 0303 has a windows tag.

That admittedly took way too long to figure out haha.  I thought the url for the file stayed consistent within a PR, but nope.  It was pulling from the original commit there, but it's updated to the latest version and the windows tag is gone.

I don't think we should pull any section header info into the table, or break it up with any extra lines. So don't work on that. If there is any section header text, we can just add it to the index. Single table, one line each pref, it's all fitting in and looks awesome

Perfect! That will be much simpler to implement anyways :)

^^ well, at least not in Phase 1. Maybe in six months time when we work thru all the wishlists :grin:

Thinking ahead about filters. When we filter by FF version, users could select from a combo-box. But we only want to provide when that pref was added to FF (or became compatible), so when we build the combo-box data, [FF52+] -> FF52 and [FF52-59] -> FF52. Note that we display the full string. So does that affect how you apply the filter, or do you need to build in a hidden column with the truncated version?
Note, we can use the same method for [SETUP*, one column for display (hasSetup=icon) and a hidden one with the full string. Combo-box would all setup tags (eg setup-web, etc) and a custom one for ALL of them.
Am I making sense?

change display of [FF from icon to (bold dark orange?) text

Where do we want to put this info? Do we want it as text in the info column, or just in the dropdown?

Section header info is now in the index - needs some formatting work, but it's there

In the info column it's never hidden (and I hate hiding shit).  But we can talk formatting later :) I know it will look weird with text among icons , but color coding man... you'll see later on. Its just an idea but the icons would be in set columns, rather than concatenated and left aligned, and they would be colored. And the FF version would look like this, you could even strip the FF part

^^ that's the kind of look I want for setting, test, warning, setup* etc in the dropdown. because its the background, it allows for lighter and a broader range of colors.
Just need to come up with some light/pale colors (not too wish washy). And since our order is always consistent, we should take that into account as well.

Section header info is now in the index - needs some formatting work, but it's there

Sweet, I was going to ask how hard it would be to put a demarcation line between sections, but since we got stuff in there now, no need. Formatting it will do.
What happens to them when you filter? Does it hide the ones that don't apply? eg if my filter shows nothing from section 1000, does the 1000 section header still show? I know .. jumping the gun.

Ahh, I misread that. header info into the index

I like the formatting idea - once we get all the info we want there I'll work out the best way to implement that (not sure if we would want actual columns for each, or just align each type of tag with spacing).

Ahh, I misread that. header info into the index

I thought that's what you meant with earlier...did you want that info to stay in the table?

Ooh, I see color in some icons.
The header info I think is good in the index, because it gets bulky. But collapsed would be good.
As for the table, in an ideal world, we would want to demarcate each section with the section title (bold, bigger font or whatever, and if there are no items displayed for that section, the section header would be auto hidden. It's always been that way for the last 25+ years in reports - crystal reports, even access 95! showing my age now...
But we're working with what you have, and it's not built in. For now, it's a wishlist item

Sounds good! Since I removed the sorting ability, that should be a lot easier to implement

Well, to be honest. if/when we have section titles in the table at some stage, then a collapsed header would fit best there, so its right next to the relevant prefs. Prototyping lols .. always changing ~our~ my mind. (and the section column would be hidden, it's just used as a foreign key)

Works for me - I've changed the index so the descriptions are collapsible, but the same code can be used to create the collapsible elements for the table later on

heh .. containers has a lot of stuff in the header ...

Section details are now rows in the table.
It doesn't work with searching yet, but that will come later.

PS: Looking awesome .. but take a break buddy ... don't you need to like eat, sleep and pray make sweet sweet love ?

PS: active count shows all count

we need to talk about that and decide what it's actually meant to do, and filtering

Sounds good - for now I've removed the search box and added a sample filter for "Settings"

I kinda liked filter... its easier and faster to find stuff where when filtered are conveniently listed together without needing to jump around the page.
Also list of all prefs (active and inactive) would be nice with an icon or perhaps italic font for inactive prefs.

Filtering is definitely still a to-do item.  There is a sample at the top with the checkbox "Settings".
Inactive prefs can be included using the "Show Inactive Prefs" checkbox, and are indicated by an icon.  Though I think I might prefer either dimming them out or changing to italic font or something of that nature to avoid adding an additional column

^^ slow down there crssi. We'll fine tune function a little later, and formatting after that. But I expect the filter line to look like this (we can pretty it up later) .. and search is a word(s) filter, not a search IMO
Setting `[x]` Warning `[ ]` Test `[ ]` OS` [▼dropdown ]` Version `[▼dropdown ]` Setup `[▼dropdown ]`  Keywords `[....comma delimited? string?...]` `[APPLY]`

Changes could be auto-refresh of the data, or like tortrac, require hitting an update button (so users can make multiple choices before committing)

^^ We'll also have to decide how that filter should work.  i.e. do we have to meet all selected conditions or any condition

@Thorin-Oakenpants don't worry, I am not rushing anywhere and I do not try to persuade into anything... just saying. :wink:

Just some things to think about: ass to OP if you want under UI things

expand doesn't seem to be sticky when you toggle other items, eg active or settings
expand controls all lines. Would it be an idea to split section vs prefs. Section headers can be quite

just FYI (not saying anything needs to be done about it!)
https://nwmviewer.shinyapps.io/ghacks_userjs/ doesn't like Tor users: 403 Forbidden

403 Forbidden

I got this the first time I tested, but I switched circuits and it was fine

oh okay, well I must be very unlucky then because every circuit I tried was blocked. But yeah it's no biggie

Hmm, or perhaps I was just lucky.  I just tried several more and it worked 2/15 times.
Here's a screen grab to show I'm not totally making it up haha:

Ideally we could get it working, but with the free tier of shinyapps.io you have limited server control.

^^ FFS @overdodactyl .. that's a sloppy PS job if I ever saw one :trollface:
https://metrics.torproject.org/bubbles.html#country - not much to hide in. Yeah, I get it, they probably block by ip

So thinking about that, when you output the result, read until you find a comma or ], strip multiple FF's. Is that easy enough to do? Examples above

That's easy to do and sounds like a good approach!
PS: Just as a heads up, I've got a busy week ahead, so I may not be able work a ton on it over the next several days, but I'm not giving up on it!

2508 lost it's description because it has multiple prefs, but the first one is commented out
/* 2508: disable hardware acceleration to reduce graphics fingerprinting
 * blah blah ***/
   // user_pref("gfx.direct2d.disabled", true); // [WINDOWS]
user_pref("layers.acceleration.disabled", true);

These two seem to be the only ones. Should we code around it, or change the order of the prefs so the active one is first (and we'd have to remember to not fuck that up in future edits)

I think it depends on how we want to handle propagating info from one item to the next.
I'm still not sure what should be done with that.  i.e. for multiple items with the same description, should we have the description written for each one, or only the first and have a ref to the pref with the description or what?
I don't love the idea of repeating so much info, but when taking into account things like filtering, it might be the best thing to do...
Thoughts?

I don't love the idea of repeating so much info, but when taking into account things like filtering, it might be the best thing to do

Me too.  I dunno right now, it's listed in OP, so we can come back to it.
Are you at a bottleneck waiting for a decision yet?

Are you at a bottleneck waiting for a decision yet?

Unfortunately I think I am a bit :/ I've got some other small things, but that's the biggest thing at this point (which will also have a big impact on how we are able to filter...without duplicating info that will become more tricky as well)

Possibles for duplicating /* to ***/ data except for items we display as an icon (each filter has an icon).

1 - leave empty and at top of doc in short blurb where we say a few things explain if a description is empty, look up.
2 - everything else looks naff (e.g I thought about just saying see xxxx or tooltip'ing the info) and can be problematic to code (several examples which wouldn't follow the rules)

I say we don't propagate info to empty description fields

closing .. I think the :cat2: caught and ate the :bird:


fix: adapt toString tests to introduction of java.time in gax

to be merged once gapic-genreator-java is updated to >2.42.0
Adapts the toString tests of *SettingsTest given the new internal variables using java.time in gax (introduced by https://github.com/googleapis/sdk-platform-java/pull/1872)
Confirmed it works by using gax 2.51.1-SNAPSHOT

BEGIN_COMMIT_OVERRIDE
fix: adapt toString tests to introduction of java.time in gax
deps: update shared dependencies
END_COMMIT_OVERRIDE

@igorbernstein2 I merged https://github.com/googleapis/java-bigtable/pull/2274 into this PR. I believe this PR will need the latest shared-deps to pass. This fix should resolve the failing unit tests in the other PRs.


Update access-mssp-portal.md

Changed word Directory with Tenant.
Other minor markdown clean up.

Learn Build status updates of commit 45ef777:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/access-mssp-portal.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 7426f4c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/access-mssp-portal.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@mjcaparas Please merge this PR. Thanks

Learn Build status updates of commit aa74e71:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/access-mssp-portal.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 3853b6f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/access-mssp-portal.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit f0d1d25:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/defender-endpoint/access-mssp-portal.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Add ParseProposalIDFromEvents func to ibctesting pkg

Add ParseProposalIDFromEvents utility function to the testing pkg.

we could sweep this under a ibctesting.ParseProposalIDFromEvents() func but can be a future improvement 👍

Originally posted by @damiannolan in https://github.com/cosmos/ibc-go/pull/4773#discussion_r1347004935

@damiannolan we had already this issue opened for the same thing. I will close this as duplicate then, ok?


fix GitHub Actions badge

Thanks for making me aware of the breaking aeson release :sweat_smile:

Thank you for all your work on this library!

Via fd575fcd7370274fffac0380b4224cfc9abc8e9b


Update opam-repository hash to latest version

There is no issue updating this, but it won't address the deployability issue with https://github.com/ocurrent/opam-repo-ci/pull/350.

That makes sense. Thanks for the review! Closing this PR for now.


F1 Macro score wrong(?) when label never appears

🐛 Bug
When F1 (Macro) is calculated on a batch where one (or more) labels never appear, the result is <1.0 even when all predictions are correct. This seems very counterintuitive. Is it expected?
To Reproduce
import torch
from torchmetrics import F1

f1=F1(num_classes=2, average='macro')(preds=torch.tensor([0,0]), target=torch.tensor([0,0]))
print(f1)

Output: 0.5.
This occurs if one of my batches lacks one (or more) of the labels (my real use-case has many more classes).
Expected behavior
I'm not an expert on how F1 is calculated, but I would expect the output to be 1.0.
Environment
pytorch-lightning==1.3.1
torch==1.8.1+cu111
torchmetrics==0.2.0
torchvision==0.9.1+cu111

seems related to #295


support -t flag for tk eval

It would be useful if the target flag could be used with tk eval so that it could be used to see the result of any changes for a given resource without having to apply and then kubectl describe the resource, or alternatively pipe the tk eval output to cli tools like jq and sed.
cc @gotjosh

discussed with @sh0rez on slack, closing


Remove unused solution configurations (Debug and Release)

For external editor Tools should be active configuration and Debug and Release are not actually working.

These are used for exported games. Would this change break those builds?

Let me check, maybe reordering configurations would be enough, instead of remove.

Please consider this work in progress, I need to test.

@neikeq , please consider updated logic.

The new configuration are good but we also need to update the project generator and existing code that uses the old configuration names. Ideally we also add some checks to fix old projects, like we did when we changed the hint paths:
https://github.com/godotengine/godot/blob/234fab949a1ff7214c4de91c66c897535d28e5a7/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs#L404-L405
https://github.com/godotengine/godot/blob/24e1039eb6fe32115e8d1a62a84965e9be19a2ed/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs#L78-L173
I can take care of this in a week.

I will try to add the migration code for existing solutions, similar to FixApiHintPath. Looks doable.
But I haven't found code which relies on Debug/Release names of solution configurations for export. So would be cool, if you add that.
Thanks!

@neikeq I have added the migration and force-pushed. Let me know, if I can do anything else please.

I've changed the name of the Tools configuration to Debug as that's what most IDEs/editors default to. Added a check to migrate old csprojs as well, and fixed places where the old Configuration names were being used.
This is good to merge now. Let me know if everything looks good.

Looks good to me.

Thanks!

Cherry-picked for 3.2.2.

@neikeq In one of the user projects I saw
<Reference Include="GodotSharpEditor" Condition=" '$(Configuration)' == 'Tools' ">
      <HintPath>$(ProjectDir)/.mono/assemblies/$(ApiConfiguration)/GodotSharpEditor.dll</HintPath>
      <Private>False</Private>
    </Reference>

https://gist.github.com/Meister1593/df3adc78e05229b09ee7932c516adc9e#file-gareo-csproj-L49
Not sure, maybe if it might break after update?

The migration code should replace such conditions in any PropertyGroup property or ItemGroup item.
I tested with a few projects of mine.


[New Process Improvement Need]: Open Source project management / personnel org.

Checked for duplicates
Yes - I've already checked
Category
Governance - people, personnel, organization, etc.
Describe the need
We have a need for best practices on setting up and maintaining open source project and personnel management (+1'd by @awdtinio)

@ewferg +1 on this task. Here is a recent attempt we are making to build a governance model for Aerie:
https://github.com/NASA-AMMOS/aerie/blob/develop/GOVERNANCE.md

Hi @ewferg - thanks for your support and reference to your governance model! It's excellent. I see it was based on some governance approaches for popular OSS projects. I particularly like the explanation of roles and the decision making process.
Couple questions:

Are there other files / docs other than your GOVERNANCE.md that help explain your project's management approach?
How do you feel about contributing a template version of your governance approach to SLIM so that it can be built-upon and shared for other projects? Happy to help with that as well!

Actually open question to all here (@MJJoyce, @galenatjpl, @jeffreypon, @sujen1412, @hookhua, @ewferg etc.): which information do you feel is important in describing your open source project management approach and personnel roles / org?
Some ideas gleaned from @ewferg's GOVERNANCE.md example earlier:

Roles
Teams
Decision making process

What else (if anything) are we missing?

Hey @riverma, great questions.

Right now there are not other documents specifically related to governance, but I envisioned a couple more that detailed out the operations of the two committees (TSC and PMC). Here is an example from node that I was planning to use as a guide, but I was hoping to modify the operations a bit to be more informal, at least for Aeire. I feel as though our community simply isn't large enough yet to have heavy bylaws that govern our operations, but I could be convinced otherwise. I would be interested to hear from folks who have experience working in other open source communities with involvement from sponsor orgs like AMMOS.
I would be happy to provide a template based on our version and would definitely be looking for feedback on it. We are just getting started as a community so I still can't tell you how well this governance model works.

@riverma, years ago, we conducted an open source path forward study that resulted in a document.  There is a section in this document that provides some description of a governance model, which was largely based on Apache.  The document resides internally in the MGSS document repo.  Let me dig that up and share it with you

Hi @ewferg - thanks for the responses! Definitely agree with you that the verbosity of governance recommendations can often scale against the size of the team considered. Also - excited to hear you're interested in contributing a template! I'd imagine we can be explicit about the size of the team that's appropriate for the template offered.
Perhaps a breakout chat on this topic between yourself, myself and other interested parties might be a good way to digest this info and brainstorm a community recommendation 😀

@riverma, years ago, we conducted an open source path forward study that resulted in a document.  There is a section in this document that provides some description of a governance model, which was largely based on Apache.  The document resides internally in the MGSS document repo.  Let me dig that up and share it with you

Hi @awdtinio - thanks for that reference! I'll scan that over. I'm sure there must be a lot of great lessons learned from that doc, especially the governance section.

Closing as work has been completed. Thanks again to @ewferg .


Null reference exception in ThreadLocalData::RunDestructors on Windows

Dart SDK Version (dart --version)
Dart VM version: 2.0.0-dev.58.0.flutter-f981f09760 (Sat May 26 03:16:14 2018 +0000) on "windows_x64"
[note it's the version that is bundled with any particular version of flutter]

Whether you are using Windows, MacOSX, or Linux (if applicable)
Windows

Whether you are using Chrome, Safari, Firefox, Edge (if applicable)
N/A  This is in conjunction with Dart Embedding (tracked by this issue: https://github.com/google/flutter-desktop-embedding/issues/101)

Missing some or all of the above might make the issue take longer or be
impossible to act on.
I've encountered this issue while developing a Windows version of Flutter Desktop Embedding.  Because loading flutter_engine.dll hooks thread termination, it is possible that a thread can be created and exit before Dart has been initialized.  This causes a null reference exception in ThreadLocalData::RunDestructors.  A reduced repro that shows it is as follows:
#include "stdafx.h"
#include "flutter_embedder.h"

DWORD WINAPI ThreadProc(CONST LPVOID lpParam) {
	return 0;
}

int __stdcall wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
{
	CreateThread(NULL, 0, &ThreadProc, 0, 0, NULL);

	Sleep(250);

	return 0;

	// FlutterEngineRun below will never get called but will cause flutter_engine.dll to be loaded on process start which will, in turn,
	// hook DLL_THREAD_DETACH via the PIMAGE_TLS_CALLBACK mechanism which in turn calls ThreadLocalData::RunDestructors when ThreadProc returns.
	// If you look in dart-lang\sdk\runtime\vm\os_thread_win.cc you will see that, in this case, ThreadLocalData::InitOnce hasn't been called yet
	// which will trigger a nullref exception in ThreadLocalData::RunDestructors.
	FlutterProjectArgs args{};
	FlutterRendererConfig render{ FlutterRendererType::kOpenGL };
	FlutterEngine mEngine{ nullptr };

	auto result = FlutterEngineRun(FLUTTER_ENGINE_VERSION, &render, &args, nullptr, &mEngine);
}

I've developed a fix here:
https://github.com/clarkezone/sdk/commit/42f67a7628ef98915989b7f46cf5a8722aa04bf1
Please let me know how to proceed from here,
thx
James

Is it really an issue? For general questions consider starting with Stack
Overflow:
https://stackoverflow.com/questions/tagged/dart
Also consider our Gitter channel for light-weight/quick discussions:
https://gitter.im/dart-lang/sdk

Should be fixed in this CL. Thanks @clarkezone!


StructTag("") no longer removes the comment entirely.

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When using StructTag("") prior to v0.6.0, this would remove the struct tag entirely.
Expected Behavior 🤔
Struct tag is set to the default `json:"thing,omitempty"`
Steps to Reproduce 🕹
Steps:

run ent init Thing
add []ent.Field{field.String("thing")} to Fields
run go generate ./ent
view ./ent/thing.go

Your Environment 🌎

Tech
Version

Go
1.16.0

Ent
0.6.0

Database
Postgres

Driver
https://github.com/lib/pq

I realize now that specifying `json:"-"` would be more correct for the behavior I am looking for, however, this was previously something you could do.

Hey @imle and thanks for reporting this issue.
I'm not able to reproduce this issue on v0.5.0 and v0.6.0, but like you said, the json:"-" option is the right way to go, if you want to explicitly remove the field from marshal/unmarshal.

Any update on this @imle? Can we close this issue?

Good to close this, sorry for not doing so when I made the second comment. I think I may have been misremembering, the previous code I wrote that did that was likely not functioning as expected.

Good to close this, sorry for not doing so when I made the second comment. I think I may have been misremembering, the previous code I wrote that did that was likely not functioning as expected.

👍


Fix import and signature variable name

Shouldn't the go.mod be updated with a different version of hermez-node?

Shouldn't the go.mod be updated with a different version of hermez-node?

@arnaubennassar was updated here -> https://github.com/hermeznetwork/hermez-go-sdk/pull/6


⚠ Redacted has degraded performance

In a844f41, Redacted ($RED) experienced degraded performance:

HTTP code: 200
Response time: 4562 ms

Resolved: Redacted performance has improved in ca3b0f1 after 22 minutes.


add option for approximate  point snapping to network

Current implementation is exact, but crawls when the network gets large. Adding an option to approximation which only uses the kd-tree for the segment nodes might be a compromise.

In addition, we might look at swapping the current rtree implementation for a cython implementation.  Could test, against the current implementation, for speed and accuracy of these different methods.

pysal/spaghetti#198