Duplicated foreign keys after restoring missing IdentityUser and IdentityRole navigation properties

Previously on 1.1.2 IdentityUser and IdentityRole provided the following navigation properties:
User
public virtual ICollection<UserRole> Roles { get; } = new List<UserRole>();
public virtual ICollection<UserClaim> Claims { get; } = new List<UserClaim>();
public virtual ICollection<UserLogin> Logins { get; } = new List<UserLogin>();

Role
public virtual ICollection<UserRole> Users { get; } = new List<UserRole>();
public virtual ICollection<RoleClaim> Claims { get; } = new List<RoleClaim>();

Now if I manually add them (like it's written in 1.x to 2.0 migration docs) I get this when running migrations script:
CREATE TABLE [UserClaims] (
    [Id] int NOT NULL IDENTITY,
    [ClaimType] nvarchar(max) NULL,
    [ClaimValue] nvarchar(max) NULL,
    [UserId] int NOT NULL,
    [UserId1] int NULL,
    CONSTRAINT [PK_UserClaims] PRIMARY KEY ([Id]),
    CONSTRAINT [FK_UserClaims_Users_UserId] FOREIGN KEY ([UserId]) REFERENCES [Users] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_UserClaims_Users_UserId1] FOREIGN KEY ([UserId1]) REFERENCES [Users] ([Id]) ON DELETE NO ACTION
);

CREATE TABLE [UserLogins] (
    [LoginProvider] nvarchar(450) NOT NULL,
    [ProviderKey] nvarchar(450) NOT NULL,
    [ProviderDisplayName] nvarchar(max) NULL,
    [UserId] int NOT NULL,
    [UserId1] int NULL,
    CONSTRAINT [PK_UserLogins] PRIMARY KEY ([LoginProvider], [ProviderKey]),
    CONSTRAINT [FK_UserLogins_Users_UserId] FOREIGN KEY ([UserId]) REFERENCES [Users] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_UserLogins_Users_UserId1] FOREIGN KEY ([UserId1]) REFERENCES [Users] ([Id]) ON DELETE NO ACTION
);

CREATE TABLE [UserRoles] (
    [UserId] int NOT NULL,
    [RoleId] int NOT NULL,
    [RoleId1] int NULL,
    [UserId1] int NULL,
    CONSTRAINT [PK_UserRoles] PRIMARY KEY ([UserId], [RoleId]),
    CONSTRAINT [FK_UserRoles_Roles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [Roles] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_UserRoles_Roles_RoleId1] FOREIGN KEY ([RoleId1]) REFERENCES [Roles] ([Id]) ON DELETE NO ACTION,
    CONSTRAINT [FK_UserRoles_Users_UserId] FOREIGN KEY ([UserId]) REFERENCES [Users] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_UserRoles_Users_UserId1] FOREIGN KEY ([UserId1]) REFERENCES [Users] ([Id]) ON DELETE NO ACTION
);

Manual workaround:
builder.Entity<Role>()
    .HasMany(e => e.Claims)
    .WithOne()
    .HasForeignKey(e => e.RoleId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

builder.Entity<Role>()
    .HasMany(e => e.Users)
    .WithOne()
    .HasForeignKey(e => e.RoleId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

builder.Entity<User>()
    .HasMany(e => e.Claims)
    .WithOne()
    .HasForeignKey(e => e.UserId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

builder.Entity<User>()
    .HasMany(e => e.Logins)
    .WithOne()
    .HasForeignKey(e => e.UserId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

builder.Entity<User>()
    .HasMany(e => e.Roles)
    .WithOne()
    .HasForeignKey(e => e.UserId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

Further technical details
EF Core version: 2.0
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Visual Studio 2017

@bdominguez Are you saying that when you configure the navigations in the EF model (Labeled as "manual workaround" above) then there are still duplicated FKs? Or only if you add the navigation properties but don't explicitly configure them?

I mean the second case. If I don't put that workaround code (explicit relationships) I get duplicated FKs because it seems that it doesn't resolve relationships correctly.

This is an issue with the Identity documentation, as discussed in https://github.com/aspnet/Identity/issues/1364. When adding navigations, the existing relationships in the model need to be configured to use the navigations, which requires the code above. If this is not done, then the naigations form a second set of relationships with a new FK.

I added following navigation keys in the UserRole : IdentityUserRole model, it adds duplicate foreign keys in AspNetUserRoles table even after setting the relationship in modelbuilder:
    public class UserRole : IdentityUserRole<string>
    {
        public User User { get; set; }
        public Role Role { get; set; }
    }

     modelBuilder.Entity<UserRole>().HasOne<User>(e => e.User)
                .WithOne().HasForeignKey<UserRole>(e => e.UserId);
            modelBuilder.Entity<UserRole>().HasOne<Role>(e => e.Role)
                .WithOne().HasForeignKey<UserRole>(e => e.RoleId);

@adnan-kamili the following parts of the original workaround are already configuring the relationships of UserRole:
builder.Entity<Role>()
    .HasMany(e => e.Users)
    .WithOne()
    .HasForeignKey(e => e.RoleId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);
...

builder.Entity<User>()
    .HasMany(e => e.Roles)
    .WithOne()
    .HasForeignKey(e => e.UserId)
    .IsRequired()
    .OnDelete(DeleteBehavior.Cascade);

You should be able to map the navigation properties you created by referencing them in the calls to WithOne() in this code.
It seems you are trying to configure the same relationships from the other side, but you are using the wrong cardinality (one-to-one as opposed to one-to-many).
Since you are specifying two conflicting associations on each of the FKs, I assume EF Core let's the last one specified get the FK and resorts to creating an extra FK in shadow state for the original one.
cc @AndriySvyryd

If I comment the code, as you said, It creates two additional foreign keys with names RoleId1 & UserId2
       protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Role>()
                .HasMany(e => e.Claims)
                .WithOne()
                .HasForeignKey(e => e.RoleId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            modelBuilder.Entity<User>()
                .HasMany(e => e.Roles)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            // modelBuilder.Entity<UserRole>().HasOne<User>(e => e.User)
            //     .WithOne().HasForeignKey<UserRole>(e => e.UserId);
            // modelBuilder.Entity<UserRole>().HasOne<Role>(e => e.Role)
            //     .WithOne().HasForeignKey<UserRole>(e => e.RoleId);

            modelBuilder.Entity<Role>(model =>
            {
                model.HasIndex(r => r.NormalizedName).HasName("RoleNameIndex").IsUnique(false);
                model.HasIndex(r => new { r.NormalizedName, r.TenantId }).HasName("TenantRoleNameIndex").IsUnique();
            });
        }

@adnan-kamili what I suggested was actually not just to comment the code but to reference your new navigations in the WithOne() calls. Did you try that?
The empty WithOnes() are otherwise specifying that those those navigation properties do not represent that relationship, and hence EF Core must assume they represent a separate relationship.

Thanks, it worked. So following is the final setting required:
           modelBuilder.Entity<Role>()
                .HasMany(e => e.Claims)
                .WithOne()
                .HasForeignKey(e => e.RoleId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            modelBuilder.Entity<User>()
                .HasMany(e => e.Roles)
                .WithOne("User")
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            modelBuilder.Entity<Role>()
                .HasMany(e => e.Users)
                .WithOne("Role")
                .HasForeignKey(e => e.RoleId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

can someone explain specifically where to add these? I am at a loss here sorry I thought I could figure it out but I am stuck.

@snibe See Add IdentityUser navigation properties here: https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x

@ajvickers  thanks!  Guess I am dense today because i can't figure out where the following lines of code need to go.  the rest seems clear to me
Copy
///
/// Navigation property for the roles this user belongs to.
///
public virtual ICollection<IdentityUserRole> Roles { get; } = new List<IdentityUserRole>();
///
/// Navigation property for the claims this user possesses.
///
public virtual ICollection<IdentityUserClaim> Claims { get; } = new List<IdentityUserClaim>();
///
/// Navigation property for this users login accounts.
///
public virtual ICollection<IdentityUserLogin> Logins { get; } = new List<IdentityUserLogin>();

@snibe In ApplicationUser.

ok i think i got it.. still stuck on this error though  "	'ApplicationRole' does not contain a definition for 'Users' and no extension method 'Users' accepting a first argument of type 'ApplicationRole' could be found"

sorry i am still at a loss with this stuff.   I am now getting this error when trying to run in debug or add migrations.
The entity type 'IdentityUserLogin' requires a primary key to be defined.
is there a better walk through of trying to do this?
I am trying to convert this project >>  https://code.msdn.microsoft.com/ASPNET-Core-MVC-Authenticat-ef5942f5
from 1.1 to 2.0 and i have followed >> https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x
with adding the IdentityUser POCO section...  I just can't seem to get passed this.

Hi @ajcvickers
I followed your instructions:
in user.cs
public class User : IdentityUser<Guid>{
            [...]
        //I added:
        public virtual ICollection<IdentityUserRole<Guid>> Roles { get; } = new List<IdentityUserRole<Guid>>();
            [...]
}

in apidbcontext.cs:
public class AppDbContext : IdentityDbContext<User, Role, Guid>{
        protected override void OnModelCreating(ModelBuilder builder)
        {
            [...]
            //I added:
            builder.Entity<User>()
                .HasMany(e => e.Roles)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            [...]
        }
}

But each time I add-migration I have:
```
migrationBuilder.AddColumn(
name: "UserId1",
table: "AspNetUserRoles",
nullable: true);
        migrationBuilder.CreateIndex(
            name: "IX_AspNetUserRoles_UserId1",
            table: "AspNetUserRoles",
            column: "UserId1");

        migrationBuilder.AddForeignKey(
            name: "FK_AspNetUserRoles_AspNetUsers_UserId1",
            table: "AspNetUserRoles",
            column: "UserId1",
            principalTable: "AspNetUsers",
            principalColumn: "Id",
            onDelete: ReferentialAction.Restrict);

I m using:
`
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.2" />
`

Maybe you fix doesn t work anymore with the new version of Microsoft.EntityFrameworkCore.Tools?
Or most probably, I missed something in my code :)

How can I add the list of Roles to User?

Hi @adnan-kamili
I followed your instructions:
in ApiDbContext:
            modelBuilder.Entity<User>()
                .HasMany(e => e.Roles)
                .WithOne("User")
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

But as I said previously I have UserId1 created in AspNetUserRoles.
Can you give more details about what you have done to fix the issue?
Thanks

Hi,
Still not working.
Is there someone who found a fix?

Same issue here.
I have been banging my head into the wall for hours now, getting nowhere.
Someone please help me. You will have my eternal grattitude.
After setting up ApplicationRole <-> ApplicationUser mmany-toMany relation as follows:
            builder.Entity<ApplicationRole>()
                .HasMany(e => e.Users)
                .WithOne()
                .HasForeignKey(e => e.RoleId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);
            builder.Entity<ApplicationUser>()
                .HasMany(e => e.Roles)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

I keep gettign this in my migration:
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddForeignKey(
                name: "FK_AspNetUserRoles_AspNetRoles_RoleId1",
                table: "AspNetUserRoles",
                column: "RoleId",
                principalTable: "AspNetRoles",
                principalColumn: "Id",
                onDelete: ReferentialAction.Cascade);
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropForeignKey(
                name: "FK_AspNetUserRoles_AspNetRoles_RoleId1",
                table: "AspNetUserRoles");
        }

@MaverickMartyn @ranouf I have written the first draft of a document describing how to customize the Identity model--the PR is here: https://github.com/aspnet/Docs/pull/7288
I was not able to reproduce the issues you are seeing when following the steps from the document.

My the problem was solved after the transfer base.OnModelCreating(modelBuilder); at beginning of method override OnModelCreating

This is correct like this
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/customize-identity-model?view=aspnetcore-2.2

having with this issue. doing the above,
ef 3.1
cant get this right, please help
 protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.ApplyConfiguration(new ApplicationUserMap());
            modelBuilder.ApplyConfiguration(new ApplicationRoleMap());
        }

 public class ApplicationUserMap : IEntityTypeConfiguration<ApplicationUser>
    {
        public void Configure(EntityTypeBuilder<ApplicationUser> entity)
        {
    entity
                .HasMany(e => e.Claims)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            entity
                .HasMany(e => e.Logins)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            entity
                .HasMany(e => e.UserRoles)
                .WithOne()
                .HasForeignKey(e => e.UserId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

        }
    }

and
 public class ApplicationRoleMap : IEntityTypeConfiguration<ApplicationRole>
    {

        public void Configure(EntityTypeBuilder<ApplicationRole> entity)
        {

          entity
                .HasMany(e => e.RoleClaims)
                .WithOne("Role")
                .HasForeignKey(e => e.RoleId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Cascade);

            entity
                 .HasMany(e => e.UserRoles)
                 .WithOne("Role")
                 .HasForeignKey(e => e.RoleId)
                 .IsRequired()
                 .OnDelete(DeleteBehavior.Cascade);
        }
    }

I had the same problem with .net core 3.1, with the creation of duplicated Foreign Keys in the migration.
The solution was this:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string> { ... }
I was missing this part <ApplicationUser, ApplicationRole, string>  where i specify the customized user and role classes.


Support for custom extension

Context
The MyST-NB tool rely on MyST parser and support some pre-defined extensions.
The markdown-it-py parser let it possible for user to create custom extensions, MyST inherit from this possibility using the use method.
In a current work, I developed some custom markdown extension for generating tables and figures for a data science report which rely on the Jupyter Book library.
My main issue is that I cannot declare my extension in Sphinx which rely on MyST-NB.
I actually from with a kind of dirty fork of MyST-NB which load my custom extension directly in the parser.py file.
Proposal

Let the user declare custom extension in the myst_enable_extensions parameter.
Each custom extension should be named as: package.extension_name
The parser should dynamically import the package and incorporate the extension named extension_name

Tasks and updates
No response

Heya, I would be hesitant to tie myst-parser/myst-nb to markdown-it-py: the use of markdown-it-py is a design implementation that could change in the future and, as such, is not exposed to the user.
More generally, I would prefer to ultimately allow for the user just to provide the actual parser.
The parser would be "loaded" with the configuration, then convert a source text to a JSON AST in a specified format (this is essentially what happens now). Then the myst-parser render would handle converting that JSON to the docutils/sphinx doctree.
Note, its normally more difficult than this though, to add a markdown-it extension, because there usually also has to be some logic added to themyst-parser renderer, to handle the new tokens created.


Do not request container size when listing all containers

Requesting container size in ListContainers is an expensive operation.
The list-size operation is blocking the docker daemon from doing other
container list operations (i.e. docker ps`). Even worse, the
network-daemon is also blocked from attaching weave to new containers
during this time. On my setup the list call with size takes over 5
minutes, rendering the entire setup practically useless.
There is absolutely no need for the network-daemon to know the size of
the containers, I do not know why it was set to true in the first place
but it should most definitely not be requested.

Ok, I'll give it a try, we're currently refactoring that part as well

@MaximeHeckel: I'm quite surprised I'm the first one to get bit by this. Makes me think that I'm the by far largest site that has (tried to) go live on Docker Cloud! Your backend is trying to push out the original version of the network-daemon to my system so any direction on how to get it to stop pushing that one or just merging in my fix and deploying it is appreciated!

If it's still deploying the same container over and over again, that's normal, we're syncing your nodes to check if all the system containers are still running. I'll merge your PR, I tested it, but I guess your stack must be drastically bigger than the one I tested with

Can you please do this PR against staging?

Closing in lieu for pr #4 against staging.


⚠ Secret Website 3 has degraded performance

In cc1e89a, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 2767 ms

Resolved: Secret Website 3 performance has improved in 4d3f93a.


[CP] [Stable] Cherry pick request for 09da512b67d24d542468a61c28fc5ef2a53ae75b

Commit(s) to merge
09da512b67d24d542468a61c28fc5ef2a53ae75b
Target
stable
Prepared changelist for beta/stable
https://dart-review.googlesource.com/c/sdk/+/339345
Issue Description
new AOT snapshots in the SDK fail with SIGILL in ARM environments that don't support the integer division instructions
What is the fix
Consistently apply --target_unknown_cpu to AOT compilation
Why cherry-pick
We have some users that are observing a crash when running gen_snapshot
Risk
low
Issue link(s)
https://github.com/dart-lang/sdk/issues/54198
Extra Info
No response

//cc @rmacnak-google

//cc @itsjustkevin @athomas can we get approval for this cherry pick request, some Flutter users are also running into it, please see https://github.com/flutter/flutter/issues/138693

approving change as it fairly low risk.

Released in 3.2.3.
@a-siva should we also CP this to beta? If yes, please add a CL for beta, if no, just close this issue.

I have created https://dart-review.googlesource.com/c/sdk/+/340286 for the cherry pick into the beta branch


icon is looking for a maintainer

https://github.com/C2SM/spack-c2sm/blob/03bf4aa20ef791b4a565a707441382584a4bf8f6/repos/c2sm/packages/icon/package.py#L29-L34

@dominichofer @jonasjucker  will take ownership


Compatible laser properties?

I assume this is a general alignment system that can be used with many lasers? Are there any upper/lower limits on properties such as laser power, wavelength or beam size?  Details on the hardware limitations would be useful.
Daniel - Team 13

Thanks for your comment. We have mentioned the applicability of this set-up to any laser system by switching out the mirrors and photodiode.


Error on Server load with latest docker image

fail to load the game
   0.000 Error Util.cpp:83: filesystem error: cannot make canonical path: Operation not permitted [/opt/factorio/bin/x64/../../config/config.ini]

Having the same issue!

Is there any fix for this issue?

Will look into this tomorrow

We're having the same issue as well. The save worked fine in 1.1.38, and we're using the following mods:

Bottleneck 0.11.7
Even Distribution 1.0.10
Far Reach 1.1.0
Factorio Library 0.8.3
Factory Planner 1.1.25
Squeak Through 1.8.2

Unfortunately it seems that a new autosave is created every time the server crashes, and therefore our old autosaves have been overwritten with 1.1.39 ones, so we can't continue playing by reverting to an older version, as the 1.1.39 saves can't be loaded in 1.1.38. Therefore it might be a good idea to add such a feature to the container that it would create a copy of the saves directory when it detects that it has been updated. (Our container was accidentally updated automatically by an unrelated Ouroboros container running on the same host, so we didn't manage to create backups before the upgrade.)
Here's our docker-compose.yml.
version: "3"
services:
  factorio:
    image: factoriotools/factorio
    ports:
      - "34197:34197/udp"
      - "27015:27015/tcp"
    volumes:
      - "./data:/factorio"
    restart: always

I'm having the same issue. The error I am receiving is (full logs found in Pastebin):
sg-factorio |    0.000 Error Util.cpp:83: filesystem error: cannot make canonical path: Operation not permitted [/opt/factorio/bin/x64/../../config/config.ini]

I'm running:

Docker Hub image - factoriotools/factorio:1.139, digest 1728560e0470
Docker Version - 19.03.8 CE
Docker Storage Driver: overlay2
OS - Ubuntu 20.04 LTS (Focal Fossa) Server

I have reproduced the error by using an existing save, and by attempting to generate a new save using the following Docker Compose file:
version: "3.3"
services:
    factorio:
        container_name: sg-factorio
        image: factoriotools/factorio:stable
        restart: unless-stopped
        ports:
            - "34197:34197/udp"
            - "27015:27015/tcp"
        volumes:
            - "/opt/factorio:/factorio"
        environment:
            SAVE_NAME: testsave
            GENERATE_NEW_SAVE: 'true'
            LOAD_LATEST_SAVE: 'false'

Actions I have taken:

Set the /opt/factorio directory ownership is set to 845:845 (required by default)
Tested on 1.1.38 save
Tested by generating a new save
Removed all factoriotools/factorio images
Rebooted host

I did some testing, it looks like there is an issue with parsing relative paths and symlinks in the Docker image frolvlad/alpine-glibc:alpine-3.13+.
I was able to resolve the errors by switching the Docker image back to frolvlad/alpine-glibc:alpine-3.12

Thx, patching dow is easy

I am sure its causes by https://github.com/factoriotools/factorio-docker/pull/410

Not OP, but I was having this problem yesterday and now I am not!

I can confirm, it is working now.


Use docker buildx to build multi-platform images

Closes #940

Pull Request Test Coverage Report for Build a9612b82f-PR-941

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

Totals

Change from base Build 7e316eb16:
0.0%

Covered Lines:
6556

Relevant Lines:
13977

💛  - Coveralls

Looks like the build is successful!

I will get a version cut this week so we can use a version tag other than edge.


chore: remove unused generic parameters

These generic parameters are not used by these functions so we can just remove them.

Benchmark results
Metrics with a significant change:

avm_simulation_time_ms (Token:mint_public): 70.8 (+58%)
avm_simulation_time_ms (Token:transfer_public): 32.0 (+49%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,754 (-3%)
1,559 (-3%)
715 (-2%)
769 (-3%)
776 (-2%)

proof_construction_time_sha256_30_ms
11,450 (-3%)
3,106 (-3%)
1,377 (-2%)
1,415 (-3%)
1,479 (-2%)

proof_construction_time_sha256_100_ms
44,114 (-3%)
11,839 (-2%)
5,435 (-2%)
5,686
5,721 (+1%)

proof_construction_time_poseidon_hash_ms
78.0 (-4%)
34.0 (-3%)
34.0 (-3%)
59.0 (+2%)
88.0 (-2%)

proof_construction_time_poseidon_hash_30_ms
1,527 (-3%)
421 (-3%)
202 (-2%)
229
269 (-3%)

proof_construction_time_poseidon_hash_100_ms
5,641 (-3%)
1,514 (-3%)
676 (-1%)
735 (-1%)
754 (-1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,356
7,876
14,884

l1_rollup_calldata_gas
50,208
92,882
178,180

l1_rollup_execution_gas
842,868
1,576,438
3,361,792

l2_block_processing_time_in_ms
263 (+5%)
460 (+2%)
847

l2_block_building_time_in_ms
11,396
22,358
44,419 (-1%)

l2_block_rollup_simulation_time_in_ms
11,396
22,357
44,419 (-1%)

l2_block_public_tx_process_time_in_ms
9,695 (+1%)
20,531
42,559 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
3,062 (+1%)
4,115 (+4%)

node_database_size_in_bytes
12,632,144
16,740,432

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit
simulation_time_in_ms
witness_generation_time_in_ms
input_size_in_bytes
output_size_in_bytes
proving_time_in_ms

private-kernel-init
98.9 (+3%)
399 (-4%)
21,735
44,860
N/A

private-kernel-inner
192 (+11%)
707 (+1%)
72,544
45,007
N/A

private-kernel-reset-tiny
314 (+2%)
723 (-1%)
65,593
44,846
N/A

private-kernel-tail
167
148 (+10%)
50,644
52,257
N/A

base-parity
5.64 (+1%)
N/A
160
96.0
N/A

root-parity
35.7
N/A
73,948
96.0
N/A

base-rollup
3,452
N/A
189,136
664
N/A

block-root-rollup
41.5
N/A
58,205
2,448
N/A

public-kernel-setup
85.9 (+1%)
N/A
105,085
71,222
N/A

public-kernel-app-logic
98.3 (+1%)
N/A
104,911
71,222
N/A

public-kernel-tail
861 (-1%)
N/A
390,582
16,414
N/A

private-kernel-reset-small
312 (+1%)
N/A
66,341
45,629
N/A

private-kernel-tail-to-public
1,406
618 (+1%)
455,400
1,825
N/A

public-kernel-teardown
84.3
N/A
105,349
71,222
N/A

merge-rollup
20.4 (-1%)
N/A
38,174
664
N/A

undefined
N/A
N/A
N/A
N/A
77,526 (-1%)

Stats on running time collected for app circuits

Function
input_size_in_bytes
output_size_in_bytes
witness_generation_time_in_ms

ContractClassRegisterer:register
1,344
11,731
341 (-1%)

ContractInstanceDeployer:deploy
1,408
11,731
18.5

MultiCallEntrypoint:entrypoint
1,920
11,731
405

FeeJuice:deploy
1,376
11,731
393 (+1%)

SchnorrAccount:constructor
1,312
11,731
73.6

SchnorrAccount:entrypoint
2,304
11,731
395

Token:privately_mint_private_note
1,280
11,731
106

FPC:fee_entrypoint_public
1,344
11,731
25.9 (-8%)

Token:transfer
1,312
11,731
226 (+1%)

Benchmarking:create_note
1,344
11,731
88.2 (+2%)

SchnorrAccount:verify_private_authwit
1,280
11,731
27.9 (+1%)

Token:unshield
1,376
11,731
527

FPC:fee_entrypoint_private
1,376
11,731
707 (+2%)

AVM Simulation
Time to simulate various public functions in the AVM.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
56.4 (-5%)
7,101

FeeJuice:set_portal
10.8 (-4%)
2,128

Token:constructor
82.1 (+2%)
25,285

FPC:constructor
54.1 (-1%)
17,853

FeeJuice:mint_public
40.7 (+5%)
5,415

Token:mint_public
:warning: 70.8 (+58%)
10,101

Token:assert_minter_and_mint
40.9 (-28%)
6,844

AuthRegistry:set_authorized
37.9 (-6%)
3,969

FPC:prepare_fee
233 (+1%)
6,747

Token:transfer_public
:warning: 32.0 (+49%)
38,126

FPC:pay_refund
56.2 (+10%)
9,398

Benchmarking:increment_balance
1,206
6,179

Token:_increase_public_balance
40.4 (-3%)
7,705

FPC:pay_refund_with_shielded_rebate
63.9 (-2%)
9,881

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.162 (+2%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.27 (+4%)
4.15 (+7%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.117 (+3%)
0.118 (+8%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.5 (+1%)
18.0 (+1%)
32.2 (+1%)
60.2 (+1%)
118 (+1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.110 (+1%)
0.105 (+1%)
0.105 (+2%)
0.103 (+1%)
0.106 (+1%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.6 (+1%)
26.4 (+2%)
45.4
83.3 (+1%)
169 (+1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.111 (+1%)
0.107 (+2%)
0.110 (+1%)
0.103 (+1%)
0.107

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.9
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.108
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,779
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |


Role name incorrect in README.md for syslog-ng

The README.md starts with a loud and clear message that the role name is syslog-ng:
https://github.com/bodsch/ansible-collection-core/blob/0a595f754b78dcbd8121751ae840d74e739e9d74/roles/syslog_ng/README.md?plain=1#L2
While in fact it's actually called syslog_ng in accordance with the metadata:
https://github.com/bodsch/ansible-collection-core/blob/0a595f754b78dcbd8121751ae840d74e739e9d74/roles/syslog_ng/meta/main.yml#L3

fixed with https://github.com/bodsch/ansible-collection-core/commit/64511883be965a29039d6ca1da811a4b0ef75d64


the evaluation of class relevance in BFCL maybe unfair

In BFCL evaluation, the assessment of relevance is unreasonable: the function  single_relevance_file_runner in eval_runner.py file, all Exceptions encountered when parsing last_decode are treated as correct samples, which is unreasonable. This is because models may produce format errors leading to parsing failures.

Hi @zhangyingerjelly，
Great point!
The idea of the relevance category is to ensure that the model does not produce a valid function call when the prompt does not ask for one or when the provided information is insufficient. An "invalid function call" includes not only the situation where the model produces an error message that doesn't have a function call,  but also the cases when the model outputs a code snippet that cannot be executed (e.g., incomplete function calls like func(x=) or incorrect syntax such as func(x=new String("Hello")) when the test is in Python syntax).
As you mentioned, if the model attempts to generate a function call but the Python decoder fails to parse it, we treat it as an invalid function call, which can indeed lead to false positives. This issue is more pronounced in weaker models. In extreme cases, a model that consistently returns abc would get a perfect score in the relevance category, which could misleadingly suggest high performance (if the user doesn't see their score in the AST category).
We plan to address this limitation by incorporating the other side of relevance detection into BFCL evaluation as well (this has been on our TODO list for a while, sorry :/ ). In other words, we also want to check the model's ability to produce a valid function call when the prompt asks for one. For example, if the prompt expects func1(x=1), we consider it a pass even when the model outputs func2(y=10, z=20) (as that's still a valid function call format), but not an incomplete or malformed call such as func2(y=). By taking both aspects into consideration, we hope to make the test scores more reflective of the model's true capabilities and avoid biases that favour weaker models.


[WFRP4e Core] add xp error

Hi,
i use a macro for adding xp to characters, teh macro work for more session, but at last time, at the start of teh session it wors perfecti, but at the end i have this error:
cannot read properties of undefined (reading 'data')
one charachter from the group recive the xp, but all other doesn't, i try it in other wfrp4e world and in that world at all charchter i have this error message.
I make a new test world for this problem, and have this error for all charachter (new, or imported) but if i import that character, that works fine, the imported version is working fine too
all of my things ar up-to-date
Thy for the help!
This is the macro: (its from the gm-tools module)
addXP();
async function addXP() {
// setup: determine group of actors to be awarded experience
if (game.user.targets.size < 1) {
// (1) all player characters if no tokens are selected
awardees = Array.from(game.actors).filter(pc => pc.hasPlayerOwner && pc.type == "character");
} else {
// (2) otherwise, all targeted player character tokens
awardees = Array.from(game.user.targets).filter(pc => pc.actor.hasPlayerOwner && pc.actor.type == "character");
}
// setup: exit with notice if there are no player-owned characters
if (awardees.length < 1) return ui.notifications.error(game.i18n.localize("GMTOOLKIT.Token.TargetPCs"), {});
// Get  session ID/date, default XP award and default reason
let XP = Number(game.settings.get("wfrp4e-gm-toolkit", "addXPDefaultAmount"))
let reason = (game.settings.get("wfrp4e-gm-toolkit", "addXPDefaultReason"))
if (reason == "null") {
reason = ""
} else {
reason = (game.settings.get("wfrp4e-gm-toolkit", "addXPDefaultReason"))
let session = game.gmtoolkit.utility.getSession()
reason = reason.replace("%date%", session.date)
if (session.id != "null" ) reason = reason.replace("%session%", session.id)
}
// Prompt for XP if option is set
if (game.settings.get("wfrp4e-gm-toolkit", "addXPPrompt")) {
let awardeeList = ""
awardees.forEach (pc => {
awardeeList +=
${pc?.actor?.name || pc.name}

})
awardeeList += ""
const dialog = new Dialog({
title: (game.i18n.localize('GMTOOLKIT.Dialog.AddXP.Title')),
content: <form>
${game.i18n.format("GMTOOLKIT.Dialog.AddXP.Recipients", {recipients : awardeeList})}

                 ${game.i18n.localize("GMTOOLKIT.Dialog.AddXP.Prompt")}                  <input type="text" id="add-xp" name="add-xp" value="${XP}" />

                 ${game.i18n.localize("GMTOOLKIT.Dialog.AddXP.Reason")}                  <input type="text" id="xp-reason" name="xp-reason" value="${reason}" />
           </form>,
buttons: {
yes: {
icon: "",
label: game.i18n.localize("GMTOOLKIT.Dialog.Apply"),
callback: (html) => {
let XP = Math.round(html.find('#add-xp').val());
if (isNaN(XP)) return ui.notifications.error(game.i18n.localize("GMTOOLKIT.Dialog.AddXP.InvalidXP"))
let reason =  html.find('#xp-reason').val();
updateXP(awardees, XP, reason);
}
},
no: {
icon: "",
label: game.i18n.localize("GMTOOLKIT.Dialog.Cancel"),
},
},
default: "yes"
}).render(true);
} else {
updateXP(awardees, XP, reason)
}
} // END: addXP
function updateXP(awardees, XP, reason) {
let chatContent = ""
// cycle through player characters, gathering experience change data for report message
awardees.forEach ( pc  => {
recipient = pc?.actor?.name || pc.name
XPTotal = pc?.details?.experience?.total || pc.actor.data.data.details.experience.total;
newXPTotal = Math.max(XPTotal + XP,0);
XPCurrent = pc?.details?.experience?.current  || pc.actor.data.data.details.experience.current;
newXPCurrent = Math.max(XPCurrent + XP,0);
// update token actor or actor
pc?.actor ? pc.actor.awardExp(XP, reason) : pc.awardExp(XP, reason)

// build report message
chatContent += game.i18n.format("GMTOOLKIT.AddXP.Success", {recipient, XPTotal, newXPTotal, XPCurrent, newXPCurrent} )

}); // end cycle
// confirm changes made in whisper to GM
let chatData = game.wfrp4e.utility.chatDataSetup(chatContent, "gmroll", false)
chatData.flavor = game.i18n.format("GMTOOLKIT.AddXP.Flavor", {XP, reason})
ChatMessage.create(chatData, {});
console.log(chatContent)
} // END: updateXP
/* ==========

MACRO: Add XP
VERSION: 0.8.0
UPDATED: 2021-12-30
DESCRIPTION: Adds a set amount of XP to all or targeted player character(s). Adds XP update note to the Chat log.
TIP: Characters must have a player assigned.
TIP: Default XP amount and reason can be preset in module settings, along with option to bypass prompt for XP amount each time.
TIP: Non-whole numbers are rounded off. Negative numbers are subtracted.
========== */
From: Bill#6288foundry: 9.255wfrp4e: 5.2.0wfrp4e-core: 2.4.2wfrp4e-eis: 2.3.2wfrp4e-rnhd: 2.4.1wfrp4e-starter-set: 2.3.2

This is resolved in the next version of the GM Toolkit module. The fix is available on the development branch if needed before a proper release.


advanced_server_flex example questions

class queue

        template<bool isRequest, class Body, class Fields>
        void
        operator()(http::message<isRequest, Body, Fields>&& msg)

Is it correct that in the context of the queue, isRequest shall always be false?

class http_session

on_read() function has only one path for error code checking, but within the logic of this example, timeout is also a valid path and correct way to behave in this case is to just return. Is it correct?
        // This means they closed the connection
        if(ec == http::error::end_of_stream)
            return derived().do_eof();

        // ~Timeout path~
        if(ec == beast::condition::timeout)
        {
            // do_eof() is not applicable here - we already dropped this connection
            return;
        }

        if(ec)
            return fail(ec, "read");

Q1: In this case, yes. The queue is probably over-engineered for this example as it is designed to queue any kind of message.
Q2: you could certainly add another path for handling timeouts. Unlike the queue, the example is taking a simple approach to error handling.

it is designed to queue any kind of message.
Yes precisely

Thanks. I'll close the issue, but timeout branch in example will likely help with understanding of correct execution flow.


natvis diagnostics

Diagnostics are crucial to figure out why visualizations aren't working.
But with remote debugging they aren't printed to the Debug Output pane.

Not sure, if this is related, but it seems MiEngine doesn't respect Visual Studio option "Natvis diagnostic messages" in Options->Debugging->Output Window

For the record in VSCode the only way to get some diagnostics at all is add this to launch.json:
"logging": {
	"engineLogging": true
}

But the natvis lines are drowning in all the other logs.
And they are not very helpful either:
(24601) <-1207-var-create - * "this"
(24601) ->1207^done,name="var17",numchild="1",value="0x5555557d3aa0",type="const class {...} *"
(24602) ->1208^done,name="var18",numchild="2",value="{...}",type="const (anonymous namespace)::...."
(24746) Natvis failed to parse typename: const class {...} *

You don't get anything about why a visualizer has been applied or why not like in VS.


chore: remove binary from root and update LICENSE copyright year

The traefik-config-validator binary was accidentally pushed to this repo and your workflow is failing because go-header now expects the year 2022 in your headers.

@kunzese Thank you very much for your contribution! Sorry for the delay :)


Enhanced report pages

PR Checklist

Please check all that apply to this PR using "x":

[x] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[x] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes)
[ ] Documentation changes
[ ] Other - Please describe:

Fixes
Issue Number:
What is the current behavior?
Currently report pages are not as efficient as it needs to be The report options are not enough for a clear review
What is the new behavior?
New radio buttons. Separate page for DMCA . A dropdown menu for report button
Other information

Markup doesn't need to be changed as already those were copied during merging
Testings are pending
May do a new writeup for a desclaimer and with some formatting


Remove/replace deprecated code

There is deprecated code in various places, like the methods to set an URIResolver, a MessageListener on the XSLT transformer are now deprecated:
 ....
  transformer.setURIResolver(new ChainedURIResolver(job.getStore(), CatalogUtils.getCatalogResolver()));
  transformer.setMessageListener(toMessageListener(logger, processingMode));

Also the XMLUtil class has 6 deprecated and unused "transform*" methods.

Usually we're removed deprecated code in major releases. So this will likely be removed in 5.0. @robander any preference? This is more or less private/internal code, so we could also remove it in 4.2.

In my opinion the code which is deprecated and unused could be removed at any time.


SpatialConvolution running in fully-connected mode is very slow, even with R4

cudnnR4 doesn't choose the optimal algorithm in the fully-connected mode, even with cudnn.benchmark = true, which results in ~20x slower backward pass compared to MatConvNet.
Torch:
--TORCH OUTPUT (in seconds)
--forward	0.24779605865479
--backward	4.5414280891418
--forward	0.051395893096924
--backward	4.5211651325226
--forward	0.054457902908325
--backward	4.5210771560669

-- with cudnn.benchmark = true
--forward	14.457499027252
--backward	0.98335909843445
--forward	0.045572996139526
--backward	0.98773503303528
--forward	0.045454025268555
--backward	0.98268413543701

require 'cudnn'
require 'hdf5'

function gpuTicToc(f)
    cutorch.synchronize()
    local tic = torch.tic()
    f()
    cutorch.synchronize()
    return torch.toc(tic)
end

model = cudnn.SpatialConvolution(256, 4096, 6, 6, 1, 1):cuda(); model.weight:fill(1); model.bias:fill(1)
input = torch.CudaTensor(1600, 256, 6, 6):fill(1):cuda()

for i = 1, 3 do
  model:zeroGradParameters()
  print('forward', gpuTicToc(function()
      model:forward(input)
  end))

  one = torch.CudaTensor():resize(model.output:size()):fill(1)
  print('backward', gpuTicToc(function()
      model:backward(input, one)
  end))
end

model:float()

h = hdf5.open('test.h5', 'w')
h:write('/output', model.output)
h:write('/gradInput', model.gradInput)
h:write('/gradWeight', model.gradWeight)
h:write('/gradBias', model.gradBias)
h:close()

MatConvNet:
%MATLAB OUTPUT (in seconds)
%
%forward 0.224209
%backward 0.046167
%forward 0.045812
%backward 0.044633
%forward 0.043401
%backward 0.044506
%
%output diff: 0.000000
%gradInput diff: 0.000000
%gradWeight diff: 0.000000
%gradBias diff: 0.000000

%addpath('matconvnet-1.0-beta18/matlab'); vl_compilenn('EnableGpu', true, 'EnableCudnn', true, 'CudnnRoot', '/home/kantorov/cudnnR4');
run('matconvnet-1.0-beta18/matlab/vl_setupnn.m');

weight = gpuArray(ones(6, 6, 256, 4096, 'single'));
bias = gpuArray(ones(1, 4096, 'single'));

input = gpuArray(ones(6, 6, 256, 1600, 'single'));
one = gpuArray(single(ones(1, 1, 4096, 1600)));

for i = 1:3
    wait(gpuDevice); tic;
    output = vl_nnconv(input, weight, bias);
    wait(gpuDevice); fprintf('forward %f\n', toc);

    wait(gpuDevice); tic;
    [dzdx, dzdf dzdb] = vl_nnconv(input, weight, bias, one);
    wait(gpuDevice); fprintf('backward %f\n', toc);
end

torch_output = h5read('test.h5', '/output');
torch_gradInput = h5read('test.h5', '/gradInput');
torch_gradWeight = h5read('test.h5', '/gradWeight');
torch_gradBias = h5read('test.h5', '/gradBias');

fprintf('output diff: %f\n', sum(abs(reshape(torch_output, [], 1) - reshape(output, [], 1))));
fprintf('gradInput diff: %f\n', sum(abs(reshape(torch_gradInput, [], 1) - reshape(dzdx, [], 1))));
fprintf('gradWeight diff: %f\n', sum(abs(reshape(torch_gradWeight, [], 1) - reshape(dzdf, [], 1))));
fprintf('gradBias diff: %f\n', sum(abs(reshape(torch_gradBias, [], 1) - reshape(dzdb, [], 1))));

Replacing cudnn.SpatialConvolution with nn.Linear makes Torch and MatConvNet even:
--TORCH OUTPUT (in seconds) with nn.Linear
--forward	0.046329975128174
--backward	0.048556089401245
--forward	0.045660018920898
--backward	0.046145915985107
--forward	0.045567989349365
--backward	0.043753862380981

Actually MatConvNet's Convolution layer automatically will switch to fully-connected layer if input size==kernal size.
You can manually do the same thing in torch:
example: (if input size (HWC) = 7x7x512, output = 1x1x4096)
model:add(nn.View(512))
model:add(nn.Linear(512,4096))

This is actually surprising, because the cudnn team has implicit, explicit gemms, as well as a bunch of other algorithms. Maybe their gemm is lagging behind the CUDA gemm.
Would you know anything about this @ngimel ?

For backward, the selection of algorithms is smaller (in particular, there is no explicit gemm), and they are not particularly optimized for the case where input size = kernel size. cudnn does not have a runtime dependency on cublas, and includes only a limited subset of cublas gemm kernels, so even if explicit gemm algorithms were added to backward path, there conceivably could be many situations where cudnn would be slower than cublas. I think it is best (as suggested by @vadimkantorov and @Jerrynet) to convert SpatialConvolution to Linear when input size = kernel size.

thanks Natalia! it is often convenient to keep SpatialConvolution for 1x1, I think we should add nn.Linear.updateOutput(self,input) like-calls with views around for this special case

Sergey, please note that 1x1 SpatialConvolution in NCHW does not map directly onto Linear (it would for NHWC layout for images, and similar for filters), and for Maxwell cudnn performance for this case (NCHW) should be pretty similar to cublas anyway. I don't remember Kepler benchmarks off the top of my head. The original issue was about convolution where image HW = kHhW, where cudnn  performance can be pretty bad. It generally does not do too good with odd (as in: not small, not square) filter sizes, especially on backward.

@ngimel afaik 1x1 SpatialConvolution in NCHW DOES map to Linear. We have used this trick many times. I think it is because gemm allows transpose as a mode.
Here's a simple test case:
require 'nn'

a = nn.Linear(128, 32)

b = nn.SpatialConvolution(128, 32, 1, 1)
b.weight:copy(a.weight);
b.bias:copy(a.bias);

input = torch.randn(16, 128, 1, 1)

outlinear = a:forward(input:view(16,128))
outconv = b:forward(input)

print((outlinear - outconv):abs():max())

And the output is 8.8817841970013e-16

ohh, i assume that you are talking for larger inputs. Yes, indeed it does not map. It only maps correctly as you said, when H*W = kH*kW. sorry for the confusion.


print cert-extensions if any in verification message

Description
In the PrintVerification function, we do not print the cert extensions to the output, it'd be nice to print them if we have any.
Source👇https://github.com/sigstore/cosign/blob/68e8d9375a246a5fbc3607f8a919551164fa8cbf/cmd/cosign/cli/verify/verify.go#L237

Closed in https://github.com/sigstore/cosign/pull/1626 ?

Closed in https://github.com/sigstore/cosign/pull/1626 ?

Yep, closed with #1626

Thanks @chipzoller for bringing this into my attention 🙋🏻♂


How is the model trained when labeled target domain data is available?

Hi,
I found that in the cnn_rel_adv_syn.py file the created t_train_batches variable, i.e. labeled target domain data, is never used elsewhere even if it's already given. I guess maybe this was a mistake? And also, when there is much more unlabeled data than the labeled for the source domain, how to schedule the training procedure? Or just simply discard the extra part to match the same size? Thank you.

Thanks for the question! In the current implementation I'm not using the labeled target domain data. This is because I didn't plan to do that semi-supervised experiment before. Perhaps I will add that later.
Yes, the unlabeled data is larger than the labeled data. Say there are 2000 unlabeled docs and 1000 labeled docs. The schedule is simply alternating between the labeled and the unlabeled set, and moving the batch pointer of each set (see s_train_ptr and t_ul_batch_ptr). So when the training procedure passes through the unlabeled data once, it will pass through the labeled data twice. Hope it's clear. Thanks!

Thanks for the question! In the current implementation I'm not using the labeled target domain data. This is because I didn't plan to do that semi-supervised experiment before. Perhaps I will add that later.
Yes, the unlabeled data is larger than the labeled data. Say there are 2000 unlabeled docs and 1000 labeled docs. The schedule is simply alternating between the labeled and the unlabeled set, and moving the batch pointer of each set (see s_train_ptr and t_ul_batch_ptr). So when the training procedure passes through the unlabeled data once, it will pass through the labeled data twice. Hope it's clear. Thanks!

@yuanzh Hi, thanks for your detailed reply. Assuming there are 20,000 unlabeled docs and 1000 labeled docs, will the domain classifier and thus corresponding document encoder part be over-trained? If so, to avoid this situation, is it necessary to drop some unlabeled docs used in the training procedure? Thank you.

@QueenT Yes, over-fitting is a possible issue. One option is to directly limit the number of iterations over the labeled data, such as 20 iterations, and this means the unlabeled data are used only once. Another option is to use a different batch size, like 10 for labeled and 200 for unlabeled.

@yuanzh Thank you! Now it's much more clear to me.


Slow CI builds

Our CI builds are very slow (can take up to an hour). #1783 will help, but that will only reduce the durations of some CI builds (and those builds will still take >20 minutes).
make release usually takes about 20 minutes to complete in Drone. Is it absolutely necessary for us to compile to every supported architecture in every build? What is running make release supposed to ensure/accomplish?

for Pull Request, make release is no need I think.

Only for tag builds?

@ethantkoenig Not only tags. Also master and other branches since we provides these downloads on https://dl.gitea.io

@tboerger @bkcsoft @appleboy

Is this linked to #1783? If yes, maybe we can close it.

@DblK @lunny I will make new PR to fix @tboerger comments https://github.com/go-gitea/gitea/pull/1783#issuecomment-304476001

Would it be possible to cache compiled vendor/ packages that are generated in make release, and reuse them across different builds? The contents of vendor/ rarely change, so it seems like a waste to repeatedly recompile them (multiple times, once for each supported architecture) every build.

This should has been resolved.


Won't compile for Arduino Portenta

I get the following errors when trying to compile the state machine example for the Arduino Portenta using the Arduino CLI:
"
arduino-cli compile ~/Arduino/libraries/StateMachine/examples/arduino_state_machine -b arduino:mbed_portenta:envie_m7 --libraries ~/Arduino/libraries/
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp: In member function 'void State::addTransition(bool ()(), State)':
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:19:16: error: 'class LinkedList<Transition*>' has no member named 'add'
transitions->add(t);
^~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp: In member function 'void State::addTransition(bool ()(), int)':
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:32:16: error: 'class LinkedList<Transition>' has no member named 'add'
transitions->add(t);
^~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp: In member function 'int State::evalTransitions()':
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:42:19: error: 'class LinkedList<Transition*>' has no member named 'size'
if(transitions->size() == 0) return index;
^~~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:45:30: error: 'class LinkedList<Transition*>' has no member named 'size'
for(int i=0;isize();i++){
^~~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:46:27: error: 'class LinkedList<Transition*>' has no member named 'get'
result = transitions->get(i)->conditionFunction();
^~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:48:27: error: 'class LinkedList<Transition*>' has no member named 'get'
return transitions->get(i)->stateNumber;
^~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp: In member function 'int State::setTransition(int, int)':
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:68:18: error: 'class LinkedList<Transition*>' has no member named 'size'
if(transitions->size() == 0) return -1;
^~~~
/home/cellula/Arduino/libraries/StateMachine/src/State.cpp:69:15: error: 'class LinkedList<Transition*>' has no member named 'get'
transitions->get(index)->stateNumber = stateNo;
^~~
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp: In member function 'void StateMachine::run()':
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp:20:17: error: 'class LinkedList<State*>' has no member named 'size'
if(stateList->size() == 0) return;
^~~~
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp:32:25: error: 'class LinkedList<State*>' has no member named 'get'
int next = stateList->get(currentState)->execute();
^~~
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp: In member function 'State* StateMachine::addState(void ()())':
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp:46:14: error: 'class LinkedList<State>' has no member named 'add'
stateList->add(s);
^~~
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp:47:25: error: 'class LinkedList<State*>' has no member named 'size'
s->index = stateList->size()-1;
^~~~
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp: In member function 'int StateMachine::transitionTo(int)':
/home/cellula/Arduino/libraries/StateMachine/src/StateMachine.cpp:66:21: error: 'class LinkedList<State*>' has no member named 'size'
if(i < stateList->size()){
^~~~
Error during build: exit status 1
"
Arduino CLI version 0.20.2
Arduino Portenta core version 2.6.1
StateMachine library version 1.0.13
LinkedList library version 1.3.2
I tried LinkedList library version 1.2.3 and get the same errors.
I tried compiling this for the Arduino Mega and get the same errors as in this issue

I realized this is an issue with LinkedList, not StateMachine. My apologies. I have created an issue there instead: https://github.com/ivanseidel/LinkedList/issues/58


cirq.PauliSumCollector() shows error if it is called in a thread.

By default policy of asyncio, it creates its event loop only if it is called by the main thread. When this cirq.PauliSumCollector() is called by another thread, it doesnt create its event loop and raises RuntimeError.
So I suggest adding new event loop explicitly inside Collector (here)
asyncio.set_event_loop(asyncio.new_event_loop())

From what I'm gathering this is the calling threads' responsibility to bind an event_loop. Cirq is a library - I don't think it should create new event loops. How are you calling cirq.PauliSumCollector?


Buffers and textures don't work in materials.

I think this can easily be fixed by putting resources like buffers or textures into rgroup PerMaterial and using the stage keyword:
rgroup PerMaterial
{
    stage Texture2D InputTexture;
}

for reference: VL.Stride.Runtime/src/Effects/ShaderFX/Texture/DeclTexture.sdsl
everyoneishappy:
Yes indeed that should work and does not. Actually anything texture sampling related seems to have trouble when fed into the material system via ToShaderFX. tebjan I think this is the same cause as the SDF volume not working correctly in the material system (and probably some other things like the VAT stuff)
is there some resource registration or manegment that needs to be taken care for on the VL side?
looking at the emitted sdsl in the log folder for this and also the shaderFX sample level, which does work
the actual sdsl lines to sample the texture seem the same in both, but I can see in the debug info on the ShderFX one it lists the resources for the texture and sampler as being bound.  It does not list these in the Fuse based one.  The variable declaration for texture and sampler looks the same though

Looks like there is an another problem
shader Shader_1125817681 : VS_PS_Base, ComputeFloat4
{
    rgroup PerMaterial{

        [Link("input_258")]
        stage Texture2D input_258;

        [Link("input_260")]
        stage SamplerState input_260;

    }

    override float4 Compute()
    {
        float4 result_263 = input_258.SampleLevel(input_260,streams.TexCoord, 0);
        float4 outputParam_1435 = result_263;

        return outputParam_1435;
    }
};

this shader is not working guess we need to investigate further with tebjan

Added a testpatch 55#Buffers and textures in materialsl.vl in R&D/_Issues

Basically have been two problems Texturing Mixin was missing and rgroup, added input handling to put resources into rgroup and values into cbuffer seems to work now

awesome, thanks for looking in to this!  Nice to name the demo files like that too- I think we should adopt this as standard operating procedure


[WIP] Prefer use of auto commit if transaction is unnecessary

Use of transaction increases potential risk of nested transaction or
not-in-transaction issues. autoCommit can avoid it.

I will close this PR because no progress for long time. Feel free to reopen, if needed.


[DOC-2760] Updated images for Windows faults

Added updated images for AWS Windows faults
Signed-off-by: Smriti S<EMAIL_ADDRESS>

Preview environment: https://hdh.pr.harness.io/pr-964


[Backport] Startup scripts: verify Java 8 (exactly), improve port/java verification messages. (#8794)

Backport of #8794 to 0.16.1-incubating

TeamCity failures are unrelated, merging


fix: fonts for tailwind #315

This should solve issue #315 by using the correct font-family.

@nmerget I've already approved this, but probably you've had something different in mind with this implementation previously. Could you please check as well?


Use/allow U+2212 MINUS SIGN instead of U+002D HYPHEN MINUS everywhere

This PR is the second take of  #1822.
Fixes #1762.
A U+2212 MINUS SIGN is now used:

when displayed any numeric value,
in the repr of any numeric value,
to replace a U+002D HYPHEN MINUS in text mode, when before a digit,[^1] but not right after a digit.

In code, a U+2212 MINUS SIGN is now allowed in place of a minus sign as the unary negation or binary subtraction operator, and in -=. Using a U+002D HYPHEN MINUS in those places is still possible, of course.
It is also possible to use a U+2212 MINUS SIGN as the negative sign in the string argument of an int or float constructor (e.g., int("−123")), although it is not currently possible to use it for the exponent of a float (e.g., float("31.4e−1") results in an error).
[^1]: According to char::is_numeric.

Note that the int and float constructors currently do not handle U+2212 MINUS SIGN properly when passed a str.

to replace a U+002D HYPHEN MINUS in text mode

What about the case of ranges such as "5-6 bananas"? Typographically this should probably be a FIGURE DASH, but replacing the multi-purpose HYPHEN MINUS with the much more specific MINUS SIGN makes it objectively farther from ideal, not closer.
Dash Punctuation

In text mode, if a U+002D HYPHEN MINUS comes right after a digit, it is not converted to a U+2212 MINUS SIGN.[^1]
If you want an en dash here,[^2] you can still use the -- shorthand:
2022--2023

[^1]: See this comment for more information.
[^2]: According to the Wikipedia Dash article, an en dash should be used for ranges of numbers, not a figure dash.

int and float constructors now allow the use of a U+2212 MINUS SIGN as the negative sign when passed a str.
However, this is currently only possible for the initial negative sign. So the exponent of a float must use a U+002D HYPHEN MINUS. I am not sure how to fix this issue without memory allocation, or reimplementing float parsing entierly…

I am not sure how to fix this issue without memory allocation, or reimplementing float parsing entierly…

I think consistency might be more important here than performance, also since we can always improve the implementation later. If you do something with EcoString, likely there will be no allocation anyway because it's inline if <= 15 bytes.

I think this is now safe to merge.

Thanks for your work and endurance with this! In the end, this change still feels slightly dangerous (we're really living in an ASCII-dominated world ...), but I think it's the right call.


Refactor dataservice to reduce numbers of http loads of json file

Only import jsonfile once into dataservice and not every time it is called

Also merging select message ID service into dataservice


MySqlHelper is null

Hello,
I changed the code, to use the name Instances.
If I debug my code, everything works fine, if not I am getting the following error:
FATAL EXCEPTION: Thread-11
                                                          Process: ro.allkids, PID: 5285
                                                          java.lang.IllegalStateException: Database helper was null.
                                                              at com.afollestad.inquiry.Query.getInternal(Query.java:326)
                                                              at com.afollestad.inquiry.Query.all(Query.java:401)
                                                              at com.afollestad.inquiry.Query$1.run(Query.java:408)
                                                              at java.lang.Thread.run(Thread.java:761)

This is the code segment what I am using:
Inquiry inquiry = Inquiry.get(App.DATA_BASE_INSTANCE_NAME);
            inquiry.select(Product.class)
                    .where("categoryid = ? ", category.categoryId)
                    .orWhere("categoryid = ? ", category.getFirstSubCategory())
                    .sort(orderBy)
                    .sortByAsc("id")
                    .all(result -> {
                        if (result != null) {
                            adapter.setItems(new ArrayList<>(Arrays.asList(result)));
                            adapter.notifyDataSetChanged();
                        } else {
                            List<Product> productList = new ArrayList<>();
                            adapter.setItems(productList);
                            adapter.notifyDataSetChanged();
                        }
                        categoryDataLoadedListener.onCategoryDataWasLoaded();

                    });

Thank you :)

You need to initialize Inquiry instances with a database name.
https://github.com/afollestad/inquiry#instances

I am initializing the Instances like this :
      Inquiry.newInstance(MainActivity.this, AllKidsApp.DATA_BASE)
                .instanceName(AllKidsApp.DATA_BASE_INSTANCE_NAME)
                .build();

Where:
 public final static String DATA_BASE = "all_kids_database_first";

    public final static String DATA_BASE_INSTANCE_NAME = "mainInstance";

Weird. There must be something else wrong in your code, I use this library in multiple production apps and haven't had any issues like this.

Oh, it's because you gave the instance a name. You need to use Inquiry.get("instance-name");

I did everything what you told me. The weird part of it is, that if i debug the code line by line, at the and everything works fine. If not, I am getting the same error again and again.

That sounds like it could me a threading issue, you may be accessing the DB before it's initialized or something.

Or after the instance is destroyed.


Added Weather-App

Related Issue

Added  new Weather-app

Closes: #[1774will be closed through this PR](Add New version of weather app with good ui #1774)
Describe the changes you've made
I've added a new weather app using unsplash api for dynamic changing of background and openweather api for the weather forecast
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
NA
Checklist:

[✔ ] My code follows the style guidelines of this project.
[ ✔] I have performed a self-review of my own code.
[ ✔] I have commented my code, particularly in hard-to-understand areas.
[ ✔] I have made corresponding changes to the documentation.
[ ✔] New and existing unit tests pass locally with my changes.

Screenshots

Please Review my PR @Ankita297 @Rizwan-S

@Atif0604  nice work . Keep going .

@Atif0604 nice work . Keep going .

@Ankita297 @Rizwan-S
This Commits is not listed in the contributors Commit

@Atif0604 nice work . Keep going .

@Ankita297 @Rizwan-S I have made more than 3 commits as 2 PR are merged but it shows only 3 commits of the latest PR merged

Hello @Atif0604 ! Can you please elaborate about what is missing according to you? I have checked the commit history of recent past and it looks correct. I'm attaching the commits history by you.

Hello @Atif0604 ! Can you please elaborate about what is missing according to you? I have checked the commit history of recent past and it looks correct. I'm attaching the commits history by you.

yeah its fine
@Rizwan-S


Gen-Payload creating invalid Tracer strings - websocket

When you create a payload on the websocket version it creates an invalid payload and then the payload seems to never be matched.

refreshing fixed the payloads but it still does not match

It seems to have something to do with the XSS game. It seems to be creating errors.

Fixed in 613c9c45f011bde507053c07b0adcddc5f2147b3


Can't create file with base64 code in it

Can't create base64 file with createFile method
Base64 code that I'm trying to save is cropped image
The same base64 code, that I can't save, this app understands without problems
So in the endRNFB.fs.createFile() creates just empty file.
What restrictions on base64 code could possibly be that could impede for saving info in it?
Base64 code that I'm trying to save:
https://hastebin.com/odugonivut.go
P.S. I'm using<EMAIL_ADDRESS>

I have problem with creating image file too with RNFB.fs.createFile().
The file success to create and have the base64 data but when i try to render the file i can't see the image:
<Image style={{width: 250, height: 250}} source={{uri:FILE_PATH}}/>

The problem solved! ReadSrteam method helped with that.
Because:

Read the file from the given path, if the file is large, you should consider use readStream instead.

Final version of code:
RNFB.fs.createFile(path, '', 'utf8').then((res) => {                     RNFB.fs.writeStream(path, 'base64').then((stream) => { 						stream.write(base64Data.substr(index + 1)); 						return stream.close();                     })

index???

Cat.
(I too know words.)

Look, @niros001, downvoting me won't help you. If you are unable to provide a USEFUL comment that lets us know what on earth you actually want than please stay away and don't waste our time!
I had written:
Cat.
I too know words. Most humans prefer whole sentences though, enhances the potential benefits of conversations tremendously. Efficiency through brevity is nice - but useless if efficacy goes towards zero.


using JSX syntax instead of js expressions

using JSX syntax is more readable than js expressions, as we don't have to write js expressions because the render property just accepts a pure functional component that we can call with JSX syntax.

Duplicate of

https://github.com/reactjs/reactjs.org/pull/4259


fix(owc-dev-server): use current working directory for app index

fixes the app-index path by using the current working directory instead of the __dirname path which locates to the module path.

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

Looks good! If you sign the CLA we can merge this. Thanks for the conteibution

Alright, it’s signed. :)

awesome thxxx ❤


v0.11.0 - Testing punchlist

[ ] Bare Metal Tests

[ ] Ubunut 16.04
[ ] CentOS 7.4

[ ] Cloud Provider Hosted Services

[ ] AKS
[ ] GKE
[ ] EKS

[ ] Cloud provider tests

[ ] aws quickstart
[ ] gcp kubeadm
[ ] azure kubeadm

/cc @chuckha @rbankston @liztio

I'd also add managed kubernetes in azure (in addition to a kubeadm one)

We don't need to run conformance on everything, not until 1.10 i think, this is a test to make sure the sonobuoy command line can talk to each of these clusters types, is that right?

Ran from my MacBook Pro against a bare metal CentOS 7.4 cluster. Everything seems to work except the retrieve command:
kris-mbp:~ kris$ sonobuoy status
PLUGIN		STATUS		COUNT
e2e		complete	1
systemd_logs	complete	3

Sonobuoy has completed. Use `sonobuoy retrieve` to get results.

kris-mbp:~ kris$ sonobuoy retrieve .
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xd8 pc=0x1bdc65b]

goroutine 1 [running]:
github.com/heptio/sonobuoy/pkg/client.(*SonobuoyClient).RetrieveResults(0xc42053dcf0, 0xc42053dcd0, 0x0, 0x0, 0xc42053dd18, 0x1be8cf3)
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/pkg/client/retrieve.go:38 +0x3b
github.com/heptio/sonobuoy/cmd/sonobuoy/app.retrieveResults(0xc4202138c0, 0xc420117c10, 0x1, 0x1)
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/cmd/sonobuoy/app/retrieve.go:74 +0x1d0
github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra.(*Command).execute(0xc4202138c0, 0xc420117be0, 0x1, 0x1, 0xc4202138c0, 0xc420117be0)
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra/command.go:702 +0x2bd
github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x266b220, 0x1c, 0x0, 0x0)
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra/command.go:783 +0x349
github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra.(*Command).Execute(0x266b220, 0xc4200001a0, 0xc4200001a0)
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/vendor/github.com/spf13/cobra/command.go:736 +0x2b
main.main()
	/Users/kris/Workspace/Go/src/github.com/heptio/sonobuoy/main.go:27 +0x2d

@krisdock thanks for the report, we just fixed that in master! Please pull. So sorry about that!

Ran on a 16.04 cluster.  Runs can take up to 60 minutes.

This is the second run after verifying that sonobuoy delete worked as expected.

everything's good on AKS!

EKS only supports v1.7.10 so let's cross that off this list.

quickstart is all good. Spun up a fresh cluster off master:
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-07T11:55:20Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}

 $ sonobuoy e2e<PHONE_NUMBER>31_sonobuoy_cdb80ea4-853a-4280-8f4a-a88f6d72b7ca.tar.gz
failed tests

GKE looks good!

GCP + Kubeadm tested too. sonobuoy run, status, logs, retrieve, e2e, delete.

Azure + Kubeadm: sonobuoy run, status, logs, retrieve, e2e, delete


Release 1 11 branch

As requested by Gary D. Gregory in https://issues.apache.org/jira/browse/CONFIGURATION-788 I'm providing my changes to release 1.10 as a pull request. The commits address the write hole which arises when saving the configuration. In our scenario customers have a habit of unplugging devices to shut them down. Every once in a while they manage to do this just when the configuration file has been emptied but before serialization of the new data has happened.
The patch provides means to manage backup files for each configuration transparently. The usage of theses files can be enabled and disabled through a global switch. No further code is required to make use of this new feature.

Closing, only working on 2.x.


Don't allow superfluous parenthesis

Adding this rule disallows superfluous parenthesis, which will help us a lot when running codemods against our older JS.
Example of what is disallowed, and the autocorrection (most convenient part!)
diff --git a/app/assets/javascripts/views/user_selector_view.js b/app/assets/javascripts/views/user_selector_view.js
index 1682cae866..b90201306d 100644
--- a/app/assets/javascripts/views/user_selector_view.js
+++ b/app/assets/javascripts/views/user_selector_view.js
@@ -56,8 +56,8 @@ export default UserSelectorView = class UserSelectorView extends View {
     this.onChangeClick = this.onChangeClick.bind(this);
     this.selectUser = this.selectUser.bind(this);

-    (((({ type: this.type } = options))));
-    (((({ label: this.label } = options))));
+    ({ type: this.type } = options);
+    ({ label: this.label } = options);

     this.$el.html(this.template()).hide();

Example of autofix running on TC: https://github.com/conversation/tc/pull/7980
Why this is an important rule to add: https://github.com/conversation/tc/pull/7978#discussion_r176611764

 [eslint] Don't allow superfluous parenthesis

Ain't nobody got time for extra punctuation :+1:


fix: negated restriction check

Fix issue with restriction check on proof request.

Pushed to the wrong org. Fixing.


[ci] Use passwordless auth for darc/maestro

Fixes: https://github.com/dotnet/android/issues/9164
Migrates darc/maestro commands to use a passwordless auth flow, as token
based authentication is deprecated and will be removed in the future.

Latest test build here looks good: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=10038191&view=logs&j=eb25f413-ca87-5c19-5771-4d468e727396&t=9478cd6f-821d-5460-275d-8c24c4c59532


Handle NullPointerException with updateButtonNextDrawable

If the adapter is null, exit the function rather than crash
Last 30 days have had 17 unique device crashes due to a NullPointerException on line:
if (realPosition >= adapter.getCount() - 1) {

The adapter is set in initView() which is called in onCreate(). How is this caused in the first place? Can you post the stacktrace, please.

I've applied the above one line of code and the crash went away.
Stack traces are only available from the last 90 days, not from >180 days ago.
I have two lines of the stack trace in my notes:
com.heinrichreimersoftware.materialintro.app.IntroActivity.updateButtonNextDrawable (SourceFile:868)
com.heinrichreimersoftware.materialintro.app.IntroActivity.onPostCreate (SourceFile:181)

@MFlisar Could you please merge https://github.com/joeykrim/material-intro/pull/1 to fix issues with the Travis CI build?

Hello, new maintainer here!
As @meierjan wrote in #issuecomment-377014558, I would like to see a stack trace to see why this is happening. Without knowing the root cause, simply returning if null may hide another serious issue.

@joeykrim Could you please merge joeykrim#1 to fix issues with the Travis CI build?

I've merged it but don't see how to re-trigger the Travis CI?

Hello, new maintainer here!
As @meierjan wrote in #issuecomment-377014558, I would like to see a stack trace to see why this is happening. Without knowing the root cause, simply returning if null may hide another serious issue.

Unfortunately, the issue is from 1.5 years ago and Crashlytics doesn't have the data for this anymore. I applied the fix to my own build and the issue isn't reported anymore.
The only remaining details I have from the stacktrace are the below two lines provided a year ago

I have two lines of the stack trace in my notes:
com.heinrichreimersoftware.materialintro.app.IntroActivity.updateButtonNextDrawable (SourceFile:868)
com.heinrichreimersoftware.materialintro.app.IntroActivity.onPostCreate (SourceFile:181)
the updateButtonNextDrawable method referencing the specific line is: if (realPosition >= adapter.getCount() - 1) {

I’m a bit reluctant to accept this PR without fully understanding why this happens. As I wrote above, this is a pretty straightforward null check, so definitely nothing harmful, but adding null checks for variables that should never be null should be investigated first before blindly changing behavior.


memo seems to no longer be limited to 255 characters

The IPNs fail to process due to this. Can verify that the memo field in the POST dump is 308 characters long.

Can we find out what the new limit is?

I looked at the documentation: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/#
And it still says 255, so might be worth contacting Paypal about it?

Yes, if you could contact PayPal that would be great.

I have a ticket in with Paypal, they told me that the memo field is supposed to be limited to that length so they're going to investigate the transactions in question. I'll let you know when I hear more.

They've been diligently emailing me every two weeks to let me know that the engineers are still "investigating", so I'm not sure what to expect at this point.


Can you npm publish 0.4.2?

I think you forgot to npm publish 0.4.2. The tag exist in git but not on npm. Latest version on npm is 0.4.1.
https://www.npmjs.com/package/@inlet/react-pixi

Thanks for letting me know, I just published it to npm as well. Sorry for the inconvenience.


Implement variable wind at KSFO

Here's an approach for fixing #68.  The basic principal is to build a wind rose for the given airport, I used data from http://www.enviroware.com/METAR/METAR_WindRoses_2014_maps.html for KSFO.
A wind direction and speed are selected with with weightings, then over a 3 hour period the wind shifts to a new direction and speed, repeat.
I increased the crosswind limit from 10 to 15 for normal and 20 to 25 for major.  (Of course this can't generate cross winds over 24 knots so I'll need to fix that, I had planned to make the top tier 20-40 knots but forgot.)
Any feedback appreciated.

What do you think about making the delay more like 30 minutes or so? I honestly don't see anybody playing the game for three hours and watching the wind direction move.

I initially had a 60 minute delay, that seemed too fast to be realistic.  It also made the wind switch fast enough that by the time an aircraft had made it's way from the center boundary to a runway that runway could be already unusable.
Looking at it now, I think there should be two different variation methods, one which slowly varies the speed and direction and one which causes quick and drastic changes.  This is something which would probably benefit from some sort of configuration where the player can choose whether a drastic wind change is common (50% of games or better) or rare (5% of games or less) for example.

My two cents - I think this is a terrific idea in general, but I worry a bit about timing and introducing a feature like this before the baseline is more stable. With #156, #134 and #128 (and #147 should we decide to do it) does it make sense to try and reach a stable place in terms of playable arrival/departure rates first?

@glangford, that's a very good point about timing.  I'll leave this for now and come back to it later.

I am trying the enviroware link above, and getting very slow response. Here is another data candidate:
http://windhistory.com/station.html?KSFO

The ATC repository is being migrated to it's new home at https://github.com/openscope/openscope, and thus, all pull requests are being closed. If you would still like to see this merged into the simulator, please reopen the pull request at the new repo. Thank you!
Closing this PR.


rbd: support pvc-pvc clone with different sc & encryption

This commit makes modification so as to allow pvc-pvc clone
with different storageclass having different encryption
configs.
refer: kubernetes-csi/external-provisioner#699
Signed-off-by: Rakshith R<EMAIL_ADDRESS>

@Rakshith-R add E2E testing with the canary csi-provisioner image to make sure we have covered this case in CI?

@Rakshith-R add E2E testing with the canary csi-provisioner image to make sure we have covered this case in CI?

i did not find canary/latest csi-provisioner image.
I'll open another pr with e2e, we can merged that when csi-provisioner release comes out.

@Rakshith-R add E2E testing with the canary csi-provisioner image to make sure we have covered this case in CI?

i did not find canary/latest csi-provisioner image. I'll open another pr with e2e and custom built csi-prov image, we can merged that when csi-provisioner release comes out.

gcr.io/k8s-staging-sig-storage/csi-provisioner:canary is the canary image.

/retest all

/retest all

Jenkins failure
https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/upgrade-tests-cephfs/detail/upgrade-tests-cephfs/5353/pipeline/13

/retest ci/centos/upgrade-tests-rbd
/retest ci/centos/mini-e2e-helm/k8s-1.22

Failed during rook deployment
https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/upgrade-tests-rbd/detail/upgrade-tests-rbd/5367/pipeline#step-77-log-1875
https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/mini-e2e-helm_k8s-1.22/detail/mini-e2e-helm_k8s-1.22/2871/pipeline#step-77-log-1763

/retest ci/centos/mini-e2e-helm/k8s-1.23

/retest ci/centos/mini-e2e/k8s-1.21

/retest ci/centos/mini-e2e-helm/k8s-1.23
/retest ci/centos/mini-e2e/k8s-1.21

cephfs prov deployment failed

ci/centos/mini-e2e/k8s-1.21 failed to deploy Rook, rebase once #3069 is merged

@mergifyio rebase

/retest ci/centos/mini-e2e-helm/k8s-1.22

/retest ci/centos/mini-e2e-helm/k8s-1.22

Failed due to

backend image

Others tests passed PTAL @Madhu-1 @nixpanic

@mergifyio rebase

@mergifyio rebase

@mergifyio rebase


Is there a simpler way to customize the configuration if generics are supported

What should we add or change to make your life better?
Configure inverse sequences and get support generics
Why is this important to you?
At present, when you want to customize the proxy behavior or middleware, some customization items can only be obtained from metadata. If it is a complex object, each request also needs to be deserialized.
Possible related APIs:
  public interface IProxyConfigProvider<TRouteConfig,TClusterConfig> where TRouteConfig:RouteConfig,where TClusterConfig:ClusterConfig
    {
        IProxyConfig<TRouteConfig,TClusterConfig> GetConfig();
    }

  HttpContext.GetReverseProxyFeature<CustomizeRouteConfig,CustomizeClusterConfig>()

Or is there any other recommended implementation method?

Design: That generic would be viral through the entire code base.
One compromise we've tried is to cache the deserialized metadata. See:
https://github.com/microsoft/reverse-proxy/blob/d31b3886d3c5150ed46b2c1ffb4813e6c77b0588/src/ReverseProxy/Utilities/ParsedMetadataEntry.cs#L9
https://github.com/microsoft/reverse-proxy/blob/c68da3c0c8df08a1f661fec6ace9fa54aa16da5a/src/ReverseProxy/Health/TransportFailureRateHealthPolicy.cs#L32
https://github.com/microsoft/reverse-proxy/blob/c68da3c0c8df08a1f661fec6ace9fa54aa16da5a/src/ReverseProxy/Health/TransportFailureRateHealthPolicy.cs#L60


GoMod: Remove unused packages from the dependency graph

The current implementation makes use of the "go mod graph" command to
obtain all the dependencies of a project. This command, however,
yields a full dependency graph that might contain packages, which are
not directly used by the main module.
To fix this, run the "go mod why" command on the found packages and
filter out those packages that are reported to be unused.
This is a fix for #3934.

LGTM now, but I'll leave the approval to @fviernau who did a more thorough review than I.

@fviernau regarding the changes proposed for the constructors of the Graph class: If it was a public, exposed class, I would directly go for it; but as it is used only as an internal data structure, I do not think that additional checks are necessary. The logic to construct and update the graph should ensure that the map passed to the constructor is consistent.


Changing tab bar controller orientation to portrait

Summary:
Applying orientation from navigationOptions to the TabBarController
Changelog
[iOS][Added] - Added conversion helper for UIInterfaceOrientationMask to RCTConvert
Reviewed By: philIip
Differential Revision: D44553533

Landed as https://github.com/facebook/react-native/commit/2ab750f7bbcfcc81714054cabb574442f33298bf


postgres: schema update for graphQL

Adding foreign keys and comments where they are necessary for postgraphile.
I tested that it seems to work fine in GraphiQL.
I also did some perf testing and under heavy load request latency can easily spike to ~1 sec when reading many segments while links are being written concurrently to the same map.
We'll need to monitor the metrics during pilot to see if we need to do some performance improvements to the SQL queries.

This change is

@jeremie-stratumn from what I understand of the postgraphile doc I only need foreign keys and to disable mutations, is there something else you had in mind?

postgresstore/stmts.go, line 206 at r1 (raw file):

	`comment on table links_degree is E'@omit create,update,delete'`,
	`comment on table evidences is E'@omit create,update,delete'`,
	`comment on table process_maps is E'@omit create,update,delete'`,

you can directly put E'@omit' to disable everything on link_degree and process_maps as we don't even need to query on them


Ignore mouse position in typeahead selection until mouse is moved

At present, if the mouse is positioned somewhere on a typeahead menu (e.g. for @-mentions, topic/stream references, search), the option at the mouse position is immediately selected. This is unexpected/confusing, as the user may have unintentionally left the mouse cursor in a location that happened to be where the typeahead menu appeared.
Instead, the mouse location should only be used if the user moves the mouse. This will make sure that the mouse doesn't interfere with the workflow for keyboard users.

@zulipbot claim

@zulipbot claim


Changed to use appveyor build number instead of version

Due to incorrect documentation in the Cake.Codecov library, Appveyor.Version was incorrectly used instead of Appveyor.Number.
This Pull Request changes that to the correct variant.

:x: Build Colore 6.1.0-pr0272.2.build.177 failed (commit https://github.com/chroma-sdk/Colore/commit/8cab302970 by @AdmiringWorm)

:white_check_mark: Build Colore 6.1.0-pr0272.3.build.177 completed (commit https://github.com/chroma-sdk/Colore/commit/71ea5133f5 by @AdmiringWorm)

Codecov Report

Merging #272 into release/6.0.0 will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           release/6.0.0     #272   +/-   ##
==============================================
  Coverage          55.76%   55.76%
==============================================
  Files                 72       72
  Lines               1820     1820
  Branches             404      404
==============================================
  Hits                1015     1015
  Misses               736      736
  Partials              69       69

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 e11bca6...3abe497. Read the comment docs.

:x: Build Colore 177-smhdinbl failed (commit https://github.com/chroma-sdk/Colore/commit/e4b61fc455 by @AdmiringWorm)

:x: Build Colore 177-yotqmrbm failed (commit https://github.com/chroma-sdk/Colore/commit/9f42a0703a by @AdmiringWorm)

The failure is due to what seems like a connection problem with GitVersion and AppVeyor (when updating build version).

:x: Build Colore 177-pvfscqrg failed (commit https://github.com/chroma-sdk/Colore/commit/ebcb44b3f4 by @AdmiringWorm)

Could be the force pushes confusing GitVersion, not sure. It has a tendency to break in some situations.
Thanks for looking into this and taking your time to find the issue! I'll merge this and ask for a rebase in the other PR and see if it works now :)

Could be the force pushes confusing GitVersion, not sure. It has a tendency to break in some situations.

That is certainly possible.

Thanks for looking into this and taking your time to find the issue!

Not a problem at all.


Stucked following the host in a Jupyter Notebook, Coediting Assertion Violation.

Product and Version [VS/VSCode]: VSCode
OS Version [macOS/Windows]: Windows
Live Share Extension Version:  v1.0.5834
Target Platform or Language [e.g. Node.js]: Jupyter Notebook with Python kernel ??
Steps to Reproduce / Scenario:
In a Jupyter Notebook console, the following errors are appearing to us. My friend (not the host) is always bound to follow me.
It happens every time we start a live share in a notebook.
Could it be because of some extension?
reports_live_share.zip
Thanks.
The Live Share logs are:
[2023-04-01 15:14:41.752 Contact.Manager E] Failed to register Git provider error:TypeError: Cannot read properties of undefined (reading 'git')
[2023-04-01 15:15:22.364 API W] shareService(vscode-r) not permitted.
[2023-04-01 15:16:49.700 Client.CoEditing E] Assertion Violation: Buffer contents - with line endings - should match VS Code document text
[2023-04-01 15:16:49.729 Client.CoEditing E] Assertion Violation: Buffer contents - with line endings - should match VS Code document text
... (and so more)
Also attached.
Thanks again.
reports_live_share.zip

This looks like the same as https://github.com/MicrosoftDocs/live-share/issues/4819 so closing this in favor of that.


Support sinon 2.0

The current version of the package doesn't support sinon 2.
npm WARN<EMAIL_ADDRESS>requires a peer of sinon@1 but none was installed.

#53


Consulting

We struggle a lot with the performance of the GNU/posix port at work and I was looking for consulting in that area.
I think it would be great to have a list of people which sell support and consulting for ThreadX.
(I'm not really sure where this request fits best, in case it's not this repo im sorry)

Hi,
If you are interesting to buy support for ThreadX, you can ask here.
Jan

I already tried the rtosx people :sweat_smile: , but they did not get back to me so if anyone has any other leads i would be very interested

@billlamiework

We (RTOSX) haven't seen your request. Please send an e-mail to<EMAIL_ADDRESS>or me directly at<EMAIL_ADDRESS>

closing as answered 😉


⚠ Turnos 24x7 has degraded performance

In 767fa9a, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 968 ms

Resolved: Turnos 24x7 performance has improved in 37aab87.


Use run not shell for --md and --html. Use POSIX shell compatible redirection for error log for PDF

Use run instead of shell so that MD conversions work to names with
spaces

Before we used shell, and used shell piping to pipe it to the new file.
Previously just the supplied name was single quoted (this would break if
there were single quotes in the name), and the saved file was not quoted at
all, breaking it when spaces were in the name.

This change also should hopefully work on Windows too, since Windows
doesn't have shell piping.

I was not able to get this working with run instead of shell, but I have
at least made it use POSIX compatible shell redirection so it actually
functions for me.

&> in POSIX shell means & > so it puts the program to the background which
is not what was wanted.

Use run instead of shell for --html conversion too

Sorry for not noticing the request, but thanks for the changes, I haven't noticed the mistake in the redirection. BTW, I am now able to let the background process finish before the program finishes. showing the command prompt on the right time and place (in the case of pdf rendering).

The redirection problem only shows up if your system shell is not bash. My system shell sh is set to dash and so it did not fully work how it was before.


Assignment 3

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
For the good visualization (Van Gogh in 37 Self-Portraits), I am trying to improve accessibility, reproducibility, and equity. This includes adding alternative text for screen readers, incorporating a colorblind-friendly palette, and sharing the underlying data and code to make the visualization reproducible. For the bad visualization (Heat Map), I am simplifying the design, replacing the confusing color scheme, adding descriptive labels and legends, and ensuring it can be reproduced programmatically with clear documentation.
What did you learn from the changes you have made?
Through these changes, I learned the importance of making data visualizations accessible to all audiences, regardless of their abilities or familiarity with the topic. I realized that even small adjustments, like adding clear labels or using inclusive color palettes, can significantly improve usability and comprehension. Additionally, I gained a deeper understanding of how sharing data and methodologies fosters trust and allows others to validate or build on the work.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
For the good visualization, I considered creating a completely new interactive version to enhance user engagement further. For the bad visualization, I thought about replacing the heat map entirely with a bar chart or scatter plot to better communicate the data. However, I decided to focus on improving the original designs to stay within the scope of the assignment and highlight how small changes can make a big difference in visualization effectiveness.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
N/A
How were these changes tested?
N/A
A reference to a related issue in your repository (if applicable)
N/A
Checklist

[ ] I can confirm that my changes are working as intended

Great job! A3 complete


Elias: Workflows week 2

Week 2

[x] I have pushed my progress to my fork of exercises repo

I Need Help With:
So far everything is clear with the exception of how to control the size of an image when you use the following code
![alt text for your image](/path/to/image.png) I would like to know how do you do it.
What went well?
Pulling a request, git pulling and git pushing, and running the npm commands in order to check my codification
What went less well?
the cspell.json it has been a problem since the beginning, though I could upload my file because I ran the rpm commands, I needed first add words to this section to avoid conflicts with my files.
Lessons Learned

I know where I am know, I have been practicing a lot by myself and did a lot of mistakes but now is more clear, practicing helps more than reading.
I fully understand how npm works and how to run the commands in a logic sequence.
I now know that in order to avoid conflicts with the spell check I have to update our spell.json

#Sunday Prep Work
Preparing myself studying and watching material related to HTML codification.

@EliasMlopez99 you only need 1 check-in issue per module, as had been discussed. please put the above comment in your previous issue as a new comment. I will close this now.

also, you only add the check-in and week-x labels..we add the checked-x label, once we respond to it 🙂


Adds orWhere, orWhereIn, minimumShouldMatch, upsert clause

hi @ddragas,
please provide the usage of these methods in README file.