DataAnnotations not working in UWP at design-time

I created the following minimal example, a new project in VS2015.3 on win10 with added dependencies and the App.Config like described in the tutorial. I called the project SQLMinimalTest. The following code is the only code I added to a fresh UWP template.
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Windows.UI.Xaml.Media;

namespace SQLMinimalTest
{
public class Blog
{
    [Key]
    public int BlogID { get; set; }
    public string RandomString { get; set; }

    [NotMapped]
    public SolidColorBrush Brush
    {
        get { return _Brush; }
        set { _Brush = value; }
    }
    [NotMapped]
    private SolidColorBrush _Brush;
}

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Filename=BloggingTest.db");
    }
}
}

When I now type Add-Migration mig1 -Verbose in Package Manager Console, I get the following Error:
PM> Add-Migration mig1 -Verbose
Using startup project 'SQLMinimalTest'.
Using project 'SQLMinimalTest'
Build started...
Build succeeded.
Using application base 'D:\Programmieren\C#\VS2015 Testprojects\SQLMinimalTest\SQLMinimalTest\bin\x86\Debug\'.
Using application configuration 'D:\Programmieren\C#\VS2015 Testprojects\SQLMinimalTest\SQLMinimalTest\App.Config'
Using current directory 'D:\Programmieren\C#\VS2015 Testprojects\SQLMinimalTest\SQLMinimalTest\bin\x86\Debug\'.
Finding DbContext classes...
Using context 'BloggingContext'.
System.InvalidOperationException: The key {'TempId'} contains properties in shadow state and is referenced by a relationship from 'SolidColorBrush' to 'Blog.Brush'. Configure a non-shadow principal key for this relationship.
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.KeyConvention.Apply(InternalModelBuilder modelBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelBuilt(InternalModelBuilder modelBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Internal.Model.Validate()
   at Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder.Validate()
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.<>c__DisplayClass14_0.<GetModel>b__0(Object k)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
   at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
   at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.<>c.<AddEntityFramework>b__0_4(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.FactoryService.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass12_0.<RealizeService>b__0(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.Design.Internal.DesignTimeServicesBuilder.<>c__DisplayClass7_0.<ConfigureContextServices>b__9(IServiceProvider _)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.FactoryService.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.TransientCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.TransientCallSite.Invoke(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass12_0.<RealizeService>b__0(ServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
The key {'TempId'} contains properties in shadow state and is referenced by a relationship from 'SolidColorBrush' to 'Blog.Brush'. Configure a non-shadow principal key for this relationship.

and the project.json:
{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.0"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

This is not the expected outcome. With the previous version I did not have this issue.

It seems to be specific to UWP. Probably due to reflection. Does any other data annotations work?

Ah well, I thought [Key] was working, because I used capital letters ID instead of Id. But it doesn't. Assuming the follwing code:
public class Blog
{
    public int BlogID { get; set; }
    public string RandomString { get; set; }
    [Key]
    public int custom { get; set; }
}

yields the following migration:
protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.CreateTable(
        name: "Blogs",
        columns: table => new
        {
            BlogID = table.Column<int>(nullable: false)
                .Annotation("Autoincrement", true),
            RandomString = table.Column<string>(nullable: true),
            custom = table.Column<int>(nullable: false)
        },
        constraints: table =>
        {
            table.PrimaryKey("PK_Blogs", x => x.BlogID);
        });
}

I can tell, that [NotMapped] was working in the previous version of EF Core Sqlite and Tools.

@natemcmaster we should understand the scope of this, and what the fix looks like, then discuss in triage whether it goes in 1.0.1

Well if it helps going back to Microsoft.EntityFrameworkCore.Tools v1.0.0-preview1-final, Microsoft.EntityFrameworkCore.Sqlite v1.0.0-rc2-final and Microsoft.NETCore.UniversalWindowsPlatform v5.1.0 as well as deleting the file app.config does not solve the issue and I'm kinda stuck in development. I tried quite some stuff, but do not know a workaround yet.

@minimalisticMe if it helps in the meantime, there is a Fluent API equivalent to all data annotations, so maybe you can swap to using that - https://docs.efproject.net/en/latest/modeling/index.html.

@rowanmiller this seems pretty serious. Data annotations will not be discovered at design time, even though they will work at runtime.
Although I'm not sure what the solution is, here is the problem:
UWP apps at runtime execute on .NET Core (which uses System.ComponentModel.Annotations), but at design time we use the .NET Framework (System.ComponentModel.DataAnnotations). These assemblies are slightly different. This means at design-time, typeof(KeyAttribute) != typeof(KeyAttribute).
To see this more clearly, run this code at design-time. You'll see the conventions don't work because they are looking for the wrong data annotations types.
var output = "";
var keyAttrConventionTypeArg =
    typeof(KeyAttributeConvention).GetTypeInfo().BaseType.GetGenericArguments()[0];

output += "typeof(TAttribute) in KeyAttributeConvention:\n    " + keyAttrConventionTypeArg.AssemblyQualifiedName;

var keyAttrType = typeof(Blog).GetProperty(nameof(Blog.BlogID))
    .GetCustomAttributes(true)
    .Single(a => a.GetType().Name.Contains("KeyAttribute"))
    .GetType();
output += "\ntypeof(KeyAttribute) on Blog.BlogID:\n    " + keyAttrType.AssemblyQualifiedName;

output += "\nAre they equal? " + keyAttrType.Equals(keyAttrConventionTypeArg);
throw new Exception(output);

This outputs:
typeof(TAttribute) in KeyAttributeConvention:
    System.ComponentModel.DataAnnotations.KeyAttribute, System.ComponentModel.DataAnnotations, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35
typeof(KeyAttribute) on Blog.BlogID:
    System.ComponentModel.DataAnnotations.KeyAttribute, System.ComponentModel.Annotations, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Are they equal? False

This:

UWP apps at runtime execute on .NET Core (which uses System.ComponentModel.Annotations), but at design time we use the .NET Framework (System.ComponentModel.DataAnnotations). These assemblies are slightly different. This means at design-time, typeof(KeyAttribute) != typeof(KeyAttribute).

seems to indicate that unification is not happening correctly. They should resolve to exactly the same thing.

Ideally, we could solve this with assembly redirects. But unless there is some xml magic I'm not familiar with, I don't think we can redirect to a different public key token and assembly name.
Two other ideas to solve this:

Change PropertyAnnotation<TAttribute> to use string comparisons on TAttribute.
Host UWP design time in the UWP app itself instead of a desktop .NET. (This would also resolve #5471). As UWP is sandboxed, it doesn't have access to the filesystem so we would probably follow how UWP test runners execute: create a network-based protocol and launching UWP with special flags to use a socket for design-time commands/responses.

@natemcmaster When we did the original work on the data annotations package it was supposed to unify for exactly the reasons here. I guess that must have changed. This is disappointing. I wonder if @bricelam has more context on this?

The previous version of System.ComponentModel.Annotations works. Users can workaround this by forcing a downgrade. Add this:
"dependencies": {
    "System.ComponentModel.Annotations": "4.0.10"
}

@minimalisticMe my guess is something in your other dependencies expects 4.1.0. This is my project.json and it works without redirects:
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.0",
    "System.ComponentModel.Annotations": "4.0.10"
  },

You can add a binding redirect manually to workaround this (issue #5471).

@natemcmaster you are right, it is working on a minimal example. Now I'll check up my code, where I went wrong.

@rowanmiller My understanding is the fluent api does not support check constraints (at least against SQLite). Data validation becomes problematic if data annotations don't work with EF commands, does it not? Or have I missed something?

@VagueGit the Fluent API allows you to do everything that can be done with data annotations. Could you share the specific example of the annotation you aren't sure how to express in the Fluent API?

Thank you for the prompt response @rowanmiller. As a Database Dude my preference is to apply check constraints to the database. I considered data annotations when it appeared EF does not support check constraints against SQLite.
As an example, we need to constrain the values of an integer column to 0-5. The data annotation equivalent is [Range(0,5)]. EF ignores this in UWP at design time so being able to express constraints in the fluent API becomes more important.

@VagueGit EF doesn't do anything with the [Range] attribute, so the EF model should be unaffected by this attribute being present or not.

@rowanmiller but wouldn't it be nice if it did especially as UWP ignores data annotations at runtime? I don't think we are alone in trying to migrate to EF from systems with lots of validation on the database. In trying to migrate to EF we seem to be giving up the ability to validate data on the database. It would be great if we could have something in OnModelCreating along the lines of .ForSQLiteCheckConstraint and we pass in some SQL eg "(Condition1 AND Condition2) OR Condition3 OR (Condition4 AND Condition5 OR Condition6)". All EF would have to do is add WITH CHECK and append the SQL.

As far as I know UWP doesn't ignore annotations at runtime. The issue being discussed here is that they are opaque to our design-time tooling because we load up the assembly in the Full .NET Framework after it was compiled against .NET Core. Agreed that translating [Range] into a CHECK constraint is a possibility - feel free to open a new issue for that feature request. You can also do this manually by using the SQL(...) method in migrations.

I suggested earlier modifying project.json to use a downgraded version of System.ComponentModel.Annotations, but after playing with this, there is a better workaround.
Add this binding redirect so that tooling unifies types correctly:
      <dependentAssembly>
        <assemblyIdentity name="System.ComponentModel.Annotations"
                          publicKeyToken="b03f5f7f11d50a3a"
                          culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>"
                         newVersion="<IP_ADDRESS>"/>
      </dependentAssembly>

Hopefully we can automate this with https://github.com/aspnet/EntityFramework/issues/5471

Apologies @rowanmiller I meant 'UWP ignores data annotations at design time'. I have edited my comment. What do you mean by 'You can also do this manually by using the SQL(...)' Can you point me toward some guidance please?

@VagueGit I guess what I meant is that the fact that EF Core doesn't pickup the [Range] attribute when it's creating migrations etc. should have zero impact on the application since that attribute doesn't have any impact on the EF model anyways. Even if we did pick it up, the result of the command would be the same.
When you are using migrations, you can edit a scaffolded migration to use the SQL(..) API to run any SQL command against the database. You could use this to issue the command to execute the CHECK constraint you want. Obviously this isn't happening automatically based on the attribute, but it allows you to get the schema you want.

@rowanmiller editing the migration doesn't quite solve the problem ... even though I do miss writing SQL :-) During development the migration is repeatedly being removed and recreated. It would be better if OnModelCreating gave us some method to have custom SQL applied to table creation; entity.HasSQL("..."), or entity.Property(...).HasSQL("...") could be a catch all for any functionality that ef does not yet support and allow us to apply whatever tweaks to the design that isn't ready available otherwise. Those tweaks would then apply to the scaffolded migration without the migration having to be edited repeatedly.

Moving out of 1.0.1, but @natemcmaster can you prioritize getting an issue handed off to DataAnnotations folks about unification not working (@divega can provide more context if needed).

@rowanmiller > the fact that EF Core doesn't pickup the [Range] attribute when it's creating migrations etc. should have zero impact on the application since that attribute doesn't have any impact on the EF model anyways
Does this mean we cannot look forward to EF applying data annotations as check constraints on a table design?

@VagueGit it's a reasonable feature request, feel free to open a new issue for it. It would be a lower priority than a number of other things on our backlog though. It is unrelated to the issue being tracked here though... so any further discussion should occur on a new issue.

Re the main issue here, @natemcmaster already helped me understand why this actually is a design-time issue in our tooling and not a unification issue with UWP. We should look into programmatically applying the binding redirect or at a long term solution like #6128.

Guess I have a simliar issue when trying to add ApplicationUser (inherited from IdentityUser) as foreignKey from another Model...
Example:
public class Demo
    {
        [Key]
        public int ID { get; set; }

        public Guid UserID { get; set; }

        [ForeignKey("UserID")]
        public virtual ApplicationUser User { get; set; }
    }

This causes the Add-Migration command to output:
The key {'UserID'} contains properties in shadow state and is referenced by a relationship from 'ApplicationUser' to 'Demo.User'. Configure a non-shadow principal key for this relationship
when using
Microsoft.EntityFrameworkCore.*": "1.0.0-rc2-final"

Workaround is to change the datatype from Guid to string in property UserID
public class Demo
    {
        [Key]
        public int ID { get; set; }

        public string UserID { get; set; }

        [ForeignKey("UserID")]
        public virtual ApplicationUser User { get; set; }
    }

After this the lambda .Include(9 is properly working:
var listOfDemoWithUser =  new ApplicationDbContext().Demo.Include(l => l.User).ToList();

@ole1986 - In the default ApplicationUser the PK is of string type so when creating the relationship targeting ApplicationUser as above, EF needs the foreign key property to be of type string. The ForeignKeyAttribute tells EF to use UserID as FK property. Now if UserID is of string type all works fine as you showed in your work-around. But as per the first model UserID is of type Guid. Since user specified it using annotation, EF will use it as foreign key property. But Guid type FK property needs to target Guid Principal key. Since PK of ApplicationUser is different type, EF will create shadow principal key temporarily while building model so that user can replace it using fluent API. If that is not done the exception as above is thrown during validation.

I've investigated more. This issue boils down the same bug covered by https://github.com/aspnet/EntityFramework/issues/5471. We talked to the .NET team to confirm this is not a bug in .NET itself, but rather in the way we use it at design-time. There are two solutions:
(1) manually use a binding redirect see https://github.com/aspnet/EntityFramework/issues/5945#issuecomment-234379644. This manually effort can be automated when we solve #5471.
(2) Use .NET Core for UWP design-time operations instead .NET Framework process. #6128 proposes a way to do this, but as this will take considerable effort, we'll get faster results that should be sufficient to solve the DataAnnotations bug by focusing effort on #5471.
Closing: ongoing work is already tracked in #5471 and #6128.


TensorFlow 1.3 build fails with OpenMPI

System information

OS Platform and Distribution: Linux Ubuntu 16.04
TensorFlow installed from (source or binary): source
TensorFlow version: 1.3.1
Python version: 3.5.2
Installed using virtualenv? pip? conda?: git
Bazel version (if compiling from source): 0.4.5
GCC/Compiler version (if compiling from source): 5.4.0
CUDA/cuDNN version: 8.0/6
GPU model and memory: none (explained below) and 8GB

Describe the problem
Building TensorFlow 1.3 leads to an error when MPI support is enabled:
In file included from ./tensorflow/contrib/mpi/mpi_utils.h:27:0,
                 from tensorflow/contrib/mpi/mpi_utils.cc:18:
./third_party/mpi/mpi.h:2673:41: fatal error: openmpi/ompi/mpi/cxx/mpicxx.h: No such file or directory
compilation terminated.

Provide the exact sequence of commands / steps that you executed before running into the problem
git clone git@github.com:tensorflow/tensorflow.git
cd tensorflow
git checkout v1.3.1
./configure # enable HDFS, CUDA and MPI support, full output in the next section
bazel build -s --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Any other info / logs
The full build output is there.
I am building TensorFlow in a VM for another system that has a CUDA-compatible GPU. That is why I have installed CUDA and enabled CUDA support, despite the VM not having access to my laptop's GPU (GTX 1050).
This is the output of ./configure, including my choices (I enabled HDFS, CUDA and MPI support):
...........
You have bazel 0.4.5 installed.
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3
Found possible Python library paths:
  /usr/lib/python3/dist-packages
  /usr/local/lib/python3.5/dist-packages
Please input the desired Python library path to use.  Default is [/usr/lib/python3/dist-packages]

Using python library path: /usr/lib/python3/dist-packages
Do you wish to build TensorFlow with MKL support? [y/N]
No MKL support will be enabled for TensorFlow
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:
Do you wish to use jemalloc as the malloc implementation? [Y/n]
jemalloc enabled
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with Hadoop File System support? [y/N] y
Hadoop File System support will be enabled for TensorFlow
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N]
No XLA support will be enabled for TensorFlow
Do you wish to build TensorFlow with VERBS support? [y/N]
No VERBS support will be enabled for TensorFlow
Do you wish to build TensorFlow with OpenCL support? [y/N]
No OpenCL support will be enabled for TensorFlow
Do you wish to build TensorFlow with CUDA support? [y/N] y
CUDA support will be enabled for TensorFlow
Do you want to use clang as CUDA compiler? [y/N]
nvcc will be used as CUDA compiler
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 8.0]:
Please specify the location where CUDA 8.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 6.0]:
Please specify the location where cuDNN 6 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.2
Do you wish to build TensorFlow with MPI support? [y/N] y
MPI support will be enabled for TensorFlow
Please specify the MPI toolkit folder. [Default is /usr]: /usr/lib/openmpi
Configuration finished

I have installed libopenmpi-dev.

I have tried to fix the build, as described in this question, without success. Setting CC=mpicc didn't help, as mentioned in the comments.

The build succeeds with MVAPICH installed from source, keeping the default MPI toolkit path /usr/local. The problem exists only when OpenMPI is used.

@a-gn Did you a get chance to look #26610 issue. Thanks!

@gadagashwini I saw this issue, but their problem seems different from mine: in my case, Bazel looks for headers in the wrong place and fails executing the //tensorflow/contrib/mpi:mpi_utils rule; in theirs, it fails during the //tensorflow:tf_python_api_gen_v1 genrule with a problem I don't really understand.

Do you get a chance to configure.py the OpenMPI path?

@byronyi Yes, I gave /usr/lib/openmpi. I tried other paths, but the configure script expects this directory to contain lib and include, and shows an error if it doesn't.
/usr is the default, but OpenMPI doesn't install in /usr/include and /usr/lib the files Bazel is looking for. It puts them in /usr/lib/openmpi instead.

Ping @jbedorf

Looks like the path/file detection during configure fails, similar to this issue: https://github.com/tensorflow/tensorflow/issues/11903
The fact that it tries to include the mpicxx.h file should mean you can prevent that by disabling those headers via: CC_OPT_FLAGS="-DOMPI_SKIP_MPICXX=1 as extra build line argument (see the previous mentioned issue)

@a-gn Did you check the @jbedorf comment. Thanks!

@gadagashwini Hi, I haven't yet, but I switched to building and installing MVAPICH from source instead of OpenMPI since I needed a working build.
I did try to set this variable like this: OMPI_SKIP_MPICXX=1 bazel build [...], but I still had the same error about mpicxx.h. I don't know if setting it like @jbedorf suggested fixes that.
For now I can work with MVAPICH, I will try in the next days again with that option. Thanks :)

@gadagashwini Hi, I haven't yet, but I switched to building and installing MVAPICH from source instead of OpenMPI since I needed a working build.
I did try to set this variable like this: OMPI_SKIP_MPICXX=1 bazel build [...], but I still had the same error about mpicxx.h. I don't know if setting it like @jbedorf suggested fixes that.
For now I can work with MVAPICH, I will try in the next days again with that option. Thanks :)

It is likely that your Bazel does sandboxing for its compilation, so setting it as a global ENV might not be as effective as passing it as an option.

@a-gn Can we close this issue now since you got workaround. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

Sure, thanks for your help.


Python 3.8.5 is not compatible with pytorch_lightning 1.8.3 version

Which python version did you use?

Also, there are two Pillow==9.5.0 Pillow==10.0.1 in requresments.txt. Which package is used?


BUG StdStorage: Unexpected 'find' function behavior when dynamic array length matches searched element value

For example, when setting the following dynamic array with length 3:
uint256[] public dynamicArray = [3, 3, 3];

The find function with key(0) should result in uint256(keccak256(abi.encode(uint256(<slot number>)))), but now returns <slot number>:
stdstore
    .target(someAddress)
    .sig("dynamicArray(uint256)")
    .with_key(uint256(0))
    .find();

@klkvr can you take a look at this one?

@klkvr
This occurred in a local test environment, not in real-world contracts.
Thanks for fixing it quickly.


Certificate issues

I've noticed occasional privacy errors with Free2z.com over the past few weeks.  Maybe it's a certificate issue?

we don't support www right now. I don't really want to TBH but it seems like some things like to add it sometimes.

ChatGPT said I don't need to serve www at all. So, I just pulled it. I think that's fine. Hopefully 😱


Add role and service account information

Signed-off-by: David Luong<EMAIL_ADDRESS>Related Issue:  stolostron/backlog#<ISSUE_NUMBER>
Description of Changes:
What resource is being added:  Add service account and role information for ACM and MCE
Is this a Hub or Managed cluster change?:
Hub Cluster
Notes:

/lgtm


[JAVA] Communication Identity | Granular Token feature GA release updates

Description
Granular Token feature GA release of the azure-communication-identity SDK - 1.5.0
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

/azp run java - azure-communication-identity - tests

API change check
API changes are not detected in this pull request.


Updated the Education section to be more mobile friendly/ added cards animations and new image.

Pull request description-
Updated the Education section to be more mobile friendly/ added cards animations and new image.
Fixes issue #263
Work Done-

Added new cards with animations to education.html
Added new image for the cards
Made cards responsive
Added CSS by updating education.css and style.css
Optimized them for dark mode as well.

Checkout out the video provided below where I have shown how the section works in desktop and mobile view and also in Light and Dark Mode
Video Reference for working of the page and responsiveness proofs-
Watch Video

Pull request description-
Updated the Education section to be more mobile friendly/ added cards animations and new image.
Fixes issue #263
Work Done-

Added new cards with animations to education.html
Added new image for the cards
Made cards responsive
Added CSS by updating education.css and style.css
Optimized them for dark mode as well.

Checkout out the video provided below where I have shown how the section works in desktop and mobile view and also in Light and Dark Mode
Video Reference for working of the page and responsiveness proofs-
Watch Video

Nice work @Pranav016 !
Suggested Changes

Could you please reduce the size of the education cards (college ones) by 75% of the current size
Instead of Lorem Ipsum, use the default details used in the  website
Each card should have:
- Name of Institution
- Degree
- Duration
- A space for logo or picture
- Activities there
Remove the Badge Section
Pull the changes for the addition of the carosoul

Pull request description-
Updated the Education section to be more mobile friendly/ added cards animations and new image.
Fixes issue #263
Work Done-

Added new cards with animations to education.html
Added new image for the cards
Made cards responsive
Added CSS by updating education.css and style.css
Optimized them for dark mode as well.

Checkout out the video provided below where I have shown how the section works in desktop and mobile view and also in Light and Dark Mode
Video Reference for working of the page and responsiveness proofs-
Watch Video

Nice work @Pranav016 !
Suggested Changes

Could you please reduce the size of the education cards (college ones) by 75% of the current size
Instead of Lorem Ipsum, use the default details used in the  website
Each card should have:

Name of Institution
Degree
Duration
A space for logo or picture
Activities there

Remove the Badge Section
Pull the changes for the addition of the carousel

Sure! I'll start working on the suggested changes 😄

Could you please reduce the size of the education cards (college ones) by 75% of the current size
Their size should be updated to 75% of their current size or reduced by 75%?

Could you please reduce the size of the education cards (college ones) by 75% of the current size

Their size should be updated to 75% of their current size or be reduced by 75%?

Updated to 75% of current size

https://codepen.io/RomanKl/pen/KyqaKx
https://codepen.io/clintabrown/pen/yoFcC
Or you add a fade slider which moves along references https://codepen.io/ReGGae/pen/povjKxV showing all the education with year

https://codepen.io/RomanKl/pen/KyqaKx
https://codepen.io/clintabrown/pen/yoFcC
Or you add a fade slider which moves along references https://codepen.io/ReGGae/pen/povjKxV showing all the education with year

@Pranav016 Any updates?

https://codepen.io/RomanKl/pen/KyqaKx
https://codepen.io/clintabrown/pen/yoFcC
Or you add a fade slider which moves along references https://codepen.io/ReGGae/pen/povjKxV showing all the education with year

@Pranav016 Any updates?

Yes, will make a PR today. Actually had an exam so couldn't work on it much. Exams are now over!

https://codepen.io/RomanKl/pen/KyqaKx
https://codepen.io/clintabrown/pen/yoFcC
Or you add a fade slider which moves along references https://codepen.io/ReGGae/pen/povjKxV showing all the education with year

@Pranav016 Any updates?

Yes, will make a PR today. Actually had an exam so couldn't work on it much. Exams are over now!

No worries. Take your time

My code was completely responsive (as you have seen in the video above) but I noticed the new carousel I pulled wasn't very responsive. I would like to raise another issue to fix that. Should I go for it?

Sure.
Also, I would suggest removing the certificate button for the education cards since most people visiting one's website won't be interested in seeing how one's college degree looks


Add support for Arm FHM

@malfet ping for review.

@pytorchbot rebase

@Maratyszcza addressed your comments. Thanks.

@malfet ,
/home/runner/work/cpuinfo/cpuinfo/src/arm/linux/cpuinfo.c:291:29: error: use of undeclared identifier 'CPUINFO_ARM_LINUX_FEATURE_ASIMDFHM'
[86](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:87)
                                        processor->features |= CPUINFO_ARM_LINUX_FEATURE_ASIMDFHM;
[87](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:88)
                                                               ^
[88](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:89)
1 error generated.
[89](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:90)
[7/239] Building C object CMakeFiles/cpuinfo.dir/src/arm/linux/init.c.o
[90](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:91)
ninja: build stopped: subcommand failed.
[91](https://github.com/pytorch/cpuinfo/runs/7395025124?check_suite_focus=true#step:6:92)
Error: Process completed with exit code 1.

This looks like genuine failure. Do we need to make this Mac arm specific ?

Fails on AArch32 because identifier is only defined on AArch64

Thanks, removed that line.


Unable to install sails on ubuntu 13.10

Hi
I've tried to install sails on fresh ubuntu 13.10, and I got the following error:
https://gist.github.com/saepia/7737047

Charming
Thanks Adam


Add support for pre-commit hooks that have file changing side-effects

See the discussion in my unworkable pull-request for more details on the motivation for this request.
https://github.com/brigade/overcommit/pull/235
Overcommit should allow pre-commit hooks to modify, add, or remove files in the working dir prior to a commit. Currently this is not possible and any changes made within the hook code will be silently wiped.
Native git hooks of course can do this so this is in some way a reduction in capability from native hooks.
For example, if a pre-commit hook wanted to automatically update a file with a version number or timestamp in it, this would not be possible since the modification to the file, even if added to the git index during the hook execution, would be removed with a git reset --hard after the pre-commit hooks finish running.

The more I think about what's involved here the more I'm lead to the conclusion that Overcommit's use of the stack to save/restore changes needs to be replaced by an entirely self-managed system. Not only do we have a lot of logic for dealing with edge cases when dealing with the stash, but it also makes any sort of solution for this feature request to be more difficult since we're ultimately going to need to save changes anyway.
Moving towards a model where the working tree is saved/restored manually will take a decent amount of work, but it seems like the right thing to do. I don't have a plan of attack just yet, but wanted to call out that this is certainly something we'd like to solve.

Glad to see you are interested in supporting this and doing it the right way.  I'll look forward to giving overcommit a more thorough try later.

Is there any estimate of when this enhancement might be complete?  We would really like to use overcommit on our repositories, but we need to be able to run autoformatters, such as prettier and autopep8, on our code, and that obviously requires files to be changed.  Alternatively, is there a work-around for this issue?

@rob-orr To my knowledge no one is currently working on this. Would happily welcome someone willing to tackle this and submit a pull request!

FYI: there is a hacky workaround for this problem
you need to run your custom script in which you will override git stash made by overcommit
for instance
  bundle exec rubocop -a $FILES # auto-correct and change files
  git stash pop .
  git add .
  git stash

There is one drawback of this workaround, I would not consider it as safe operation as if something goes wrong with stash you may lose your untracked files.
OFC you sould not pop stash but rather apply it but then yout stash will grow bigger each time you commit ;)

I've taken some of the ideas in this issue and written a pre-commit hook to update the REFERENCE.md file in a puppet module.
module Overcommit::Hook::PreCommit
  class PuppetStrings < Base
    def run
      result = execute(%w(puppet strings generate --format markdown 2>&1))
      return [:fail, result.stdout] if result.stdout.include? '[warn]' or ! result.stdout.include? '100.00% documented'
      stashed = execute(%w(git stash list)).stdout.include? 'stash@'
      execute(%w(git stash apply)) if stashed
      execute(%w(git add REFERENCE.md))
      execute(%w(git stash save --keep-index)) if stashed
      execute(%w(git stash drop 1)) if stashed
      :pass
    end
  end
end

It seems that lint-staged written in JS handles this issue properly: https://github.com/okonet/lint-staged
I wonder how different is overcommit and why is it they handle it in lint-staged while overcommit cannot. Is there any concept or idea we could copy from lint-staged?

Are there any plans to revisit this issue?

Open to a pull request!


Four Seasons Logo Permission?

The screenshot for "Kiosk setup experience" uses the Four Seasons Hotels logo (or something extremely similar) with the Contoso name. Do we have permission from them to use their logo in our documentation?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b3d6356b-87ff-8c3a-56ef-1270a823d3ab
Version Independent ID: 4d6ae878-66cf-0e10-bdf3-bdd6054cbc9d
Content: What's new in Windows 10, version 1809
Content Source: windows/whats-new/whats-new-windows-10-version-1809.md
Product: w10
Technology: windows
GitHub Login: @greg-lindsay
Microsoft Alias: trudyha

@officedocsbot assign @mypil

@totesfawkward  - Thank you for submitting this feedback.
I will get this over to @greg-lindsay for investigation. Thank you for reporting and making the docs better. Much appreciated.

@greg-lindsay - Can you please assist to answer the question in this issue?
Thank you.

@greg-lindsay - I would like to follow up on this. Can you please assist to answer the question in this issue?
Thank you.

@greg-lindsay - Do you have any updates on this?
Thank you.

@greg-lindsay - I would like to follow up on this.  Do you have any updates on this?
Thank you.

Just to make it slightly easier to look up the images in question:

https://www.bing.com/images/search?q=Four+Seasons+Hotels+logo&qpvt=Four+Seasons+Hotels+logo&FORM=IGRE
https://docs.microsoft.com/en-us/windows/whats-new/images/singleapp_contosohotel_inframe%402x.png
https://docs.microsoft.com/en-us/windows/whats-new/images/multi-app_kiosk_inframe.png

@totesfawkward - Thank you for pointing this out.
I have coordinated with the doc owner and the Four Seasons Logo has been removed from the screenshots. From our understanding, the issue has been resolved. If you feel it hasn't been resolved, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


iOS Adapter does not properly parse Advertisements for Service UUIDs

There is an issue in the iOS Adapter implementation of Xabre where the CBAdvertisement is not properly parsed for Service UUIDs. iOS lumps all the Service UUIDs received into a single CBAdvertisement regardless of whether or not they are 128-bit, 32-bit, or 16-bit. The UUIDs are placed in an NSArray of NSData (essentially making a jagged array). Xabre is putting all the data into a single list a then flattening it and only emits the advertisements to the upper layers as AdvertisementRecordType.UuidsComplete128Bit. So this means that the data in the advertisement records received, while using Xabre to perform the scan, could be any combination of 128-bit, 32-bit, and 16-bit service UUIDs that a device is advertising for.
Steps to reproduce

Use nRFConnect to create a new Advertiser on a device. Name the device: "Test UUIDs". Set the device up to advertise its name and two 16 bit services UUIDs (1234, 2345).

Use the Xabre BLE.Client App on an iOS device

Set a break in the OnDeviceDiscovered method of the DeviceListViewModel.cs

Continue through each device discovery until you find the device that you set up for advertising in nrfConnect.

The Service UUIDs will be in a single advertisement record with 4 bytes. of data. IT should be two records, each with 2 bytes of data and a type of UuidsComple16Bitor UuidsIncomple16Bit.

Expected behavior
Xabre needs to individually pares each NSData object in the CBAdvertisement and check its length. Then the appropriate advertisement type should be created (128, 32, 16) and forwarded to the upper App layers. That way each service UUID is received individually.
Actual behavior
The advertisement that is received from Xabre is always a UuidsComplete128Bit with the Data being the size the total bytes from all service UUIDs actually advertised by the device.
Configuration
Version of the Plugin: 2.1.1
Platform: iOS 13.3.1
Device: iPhone 8 Plus

Hi @jaredballen,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

@xabre, I wonder if this fix was released? I'm on v2.2.0-pre2 and here is what I see:
Android as a reference:

iOS:

Notice that all advertised services on iOS are under UuidsComplete128Bit which makes it impossible (?) to parse.

@xabre, I wonder if this fix was released? I'm on v2.2.0-pre2 and here is what I see:

The fix has not been released yet. Neither 2.1.1 nor 2.2.0-pre2 include it. But we're planning to prepare a release 2.1.2 soon which will include this ...

@janusw thanks for letting me know.

@janusw, I wonder if you have some kind of nightly builds? So I can test my code against until the 2.1.2 is released.

@janusw, I wonder if you have some kind of nightly builds?

I don't. There is an automatic build set up on Bitrise, but I'm not aware that it produces a nupkg (the build is not public and I don't have full access to it right now). Maybe @xabre can comment on that?
What I could possibly do is to set up an automatic build via GitHub Actions that spits out a nupkg for every new commit on master. Should be pretty straightforward (recently did that for another project).
Also, it's rather easy to build a nupkg yourself, as documented here. Those instructions were broken for quite a while, but after my fixes from #493, they should be working again.

I did, that was indeed really easy. But I'm getting a mysterious build error when trying to use the nuget that I've created (or .dll, or BLE projects directly) in my project.
Mono.Cecil.Cil.SymbolsNotMatchingException: Symbols were found but are not matching the assembly

Locally and on a clean CI machine. Everything compiles fine when I reference the official xamarin-bluetooth-le package. So I was hoping to check on a nightly build to see if this is something on my side or not.
Sorry for going off topic.

Sorry to continue off topic but a nighty build would be awesome. My company
had to fork the repo into BitBucket to get this change and we're adding
first class support for bonding/pairing on Android as well as automatic
gatt-cache clearing. We'd love to contribute back but everything we pull in
has to be a nuget.
On Sun, Apr 11, 2021, 12:01 PM Valeriy Kovalenko @.***>
wrote:

I did, that was indeed really easy. But I'm getting a mysterious build
error when trying to use the nuget that I've created (or .dll, or BLE
projects directly) in my project.
Mono.Cecil.Cil.SymbolsNotMatchingException: Symbols were found but are not matching the assembly
Locally and on a clean CI machine. Everything compiles fine when I
reference the official xamarin-bluetooth-le package. So I was hoping to
check on a nightly build to see if this is something on my side or not.
Sorry for going off topic.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/xabre/xamarin-bluetooth-le/issues/445#issuecomment-817330327,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB4JKZXYLCMDKY5KEU3GHBDTIHBVRANCNFSM4OWUVJZA
.

I did, that was indeed really easy. But I'm getting a mysterious build error when trying to use the nuget that I've created (or .dll, or BLE projects directly) in my project.
Mono.Cecil.Cil.SymbolsNotMatchingException: Symbols were found but are not matching the assembly

Locally and on a clean CI machine.

I actually played that game myself recently and had no problems.
But I also know that you can get into trouble with caching etc when using custom-built local packages. You should at least modify the package version, I think.

Sorry for going off topic.

No worries! You made a valid point.

Sorry to continue off topic but a nighty build would be awesome.

I agree that automatically-built packages would be nice. I'll discuss the status of the Bitrise builds with Adrian, and might possibly look into Github Actions for that purpose.

My company had to fork the repo into BitBucket to get this change and we're adding first class support for bonding/pairing on Android as well as automatic gatt-cache clearing. We'd love to contribute back but everything we pull in has to be a nuget.

That would be nice. This repo is suffering from too many forks recently.

Sorry to continue off topic but a nighty build would be awesome.

I agree that automatically-built packages would be nice. I'll discuss the status of the Bitrise builds with Adrian, and might possibly look into Github Actions for that purpose.

Also I have opened #501 for this, in order to avoid going too far off-topic in this dead issue.

Sorry to continue off topic but a nighty build would be awesome.

I agree that automatically-built packages would be nice. [..]

Also I have opened #501 for this

This ticket is solved by now. The nuget packages for the current master branch are available here:
https://github.com/xabre/xamarin-bluetooth-le/suites/2478813162/artifacts/53361185
@vecalion @jaredballen Could you please try those packages and let me know whether they work for you?


dead link

https://stereopy.readthedocs.io/en/latest/Tutorials/FormatConversion.html
need this info please

found the correct one ... https://github.com/STOmics/Stereopy/blob/main/docs/source/Tutorials/Format_Conversion.ipynb
the html was a link from the IO.ipynp file

https://stereopy.readthedocs.io/en/latest/Tutorials/FormatConversion.html
need this info please

The correct url is https://stereopy.readthedocs.io/en/latest/Tutorials/Format_Conversion.html, how did you get the url you mentioned?


Browser Biometrics don't work

Hey, its me again!
I think the browser biometrics do not work in goldwarden (in contrast to bw-bio-handler, where they work flawlessly).
One part of the problem could be (just a guess, though) that you set the AppID to com.8bit.bitwarden here, but to com.quexten.bw-bio-handler here.
But sadly, this doesn't seem to fix it for me, the BW chromium addon always tells me that "the browser integration in the Bitwarden Desktop app has not been activated", which is why I didn't open a PR for this yet.
Do you maybe have an idea what else the underlying problem could be?

Thanks once again for the report. For me - in Firefox - it seems to work on the latest version, but I will try to figure out what's going on. It's been a while since I reverse-engineered the communication so I don't recall the edge cases too well.

But sadly, this doesn't seem to fix it for me, the BW chromium addon always tells me that "the browser integration in the Bitwarden Desktop app has not been activated", which is why I didn't open a PR for this yet.

Does bw-bio-handler work in this case? (Just want to rule out that chromium is snap or flatpak, which do not work with either tool or the official desktop app due to sandboxing)

Also: Is goldwarden runnning as a daemon (f.e using systemd since you are on arch - this is not auto activated on setup), and if so are there any logs?

Is goldwarden runnning as a daemon (f.e using systemd since you are on arch - this is not auto activated on setup), and if so are there any logs?

I'm running chromium on arch. The systemd service is running as the same user chromium runs with. Hmm, the logs seem to be confusing to me. Have a look at the end, especially. I restarted the daemon and tried to activate biometrics in the chromium addon (again) with the same result as before, but there is no crash and no Warning, like before: https://pastebin.com/wxkFhmHc

Does bw-bio-handler work in this case? (Just want to rule out that chromium is snap or flatpak, which do not work with either tool or the official desktop app due to sandboxing)

Yes, that's what made wonder in the first place. I tried it out yesterday and it worked flawlessly. I even wanted to contribute an AUR pkg for it until I found out about goldwarden :grin:

Thanks, that log is very helpful. So the websocket warnings at the end are annoying, but unrelated. I only test against vaultwarden, since that's what I use. I'm guessing you are on the official server or self hosted official server and it has some slightly different messages?
Either way, that's untrelated. For the actual problem:

Dez 21 16:00:47 pc goldwarden[3400]: unexpected fault address 0x7f2300006fe0
Dez 21 16:00:47 pc goldwarden[3400]: fatal error: fault
Dez 21 16:00:47 pc goldwarden[3400]: [signal SIGSEGV: segmentation violation code=0x2 addr=0x7f2300006fe0 pc=0x55b027958ea4]
Dez 21 16:00:47 pc goldwarden[3400]: goroutine 171 [running]:
Dez 21 16:00:47 pc goldwarden[3400]: runtime.throw({0x55b027f38621?, 0x50?})
Dez 21 16:00:47 pc goldwarden[3400]:         runtime/panic.go:1077 +0x5e fp=0xc0006c2ce0 sp=0xc0006c2cb0 pc=0x55b0279254be
Dez 21 16:00:47 pc goldwarden[3400]: runtime.sigpanic()
Dez 21 16:00:47 pc goldwarden[3400]:         runtime/signal_unix.go:875 +0x285 fp=0xc0006c2d40 sp=0xc0006c2ce0 pc=0x55b02793ba05
Dez 21 16:00:47 pc goldwarden[3400]: runtime.memclrNoHeapPointers()
Dez 21 16:00:47 pc goldwarden[3400]:         runtime/memclr_amd64.s:182 +0x224 fp=0xc0006c2d48 sp=0xc0006c2d40 pc=0x55b027958ea4
Dez 21 16:00:47 pc goldwarden[3400]: github.com/awnumar/memguard/core.Wipe(...)
Dez 21 16:00:47 pc goldwarden[3400]:         github.com/awnumar/memguard@v0.22.3/core/crypto.go:101
Dez 21 16:00:47 pc goldwarden[3400]: github.com/awnumar/memguard.(*LockedBuffer).Wipe(0xc000226000)
Dez 21 16:00:47 pc goldwarden[3400]:         github.com/awnumar/memguard@v0.22.3/buffer.go:331 +0x9f fp=0xc0006c2db8 sp=0xc0006c2d48 pc=0x55b027a48f9f
Dez 21 16:00:47 pc goldwarden[3400]: github.com/quexten/goldwarden/agent/config.(*Config).Lock(0xc000656160)
Dez 21 16:00:47 pc goldwarden[3400]:         github.com/quexten/goldwarden/agent/config/config.go:142 +0xd7 fp=0xc0006c2e30 sp=0xc0006c2db8 pc=0x55b027b6d637

For memory protection, goldwarden uses the memguard library. This seems to be causing problems here. I've seen 2 circumstances under which this happens; running in the go debugger debugger (due to an unresolved bug in a dependency) or running on different architectures (since you are on regular arch, I'm guessing you are on x86_64 should be fine). If you are running under the debugger, the temporary solution is to run the debugger as root or setting the suid bit and chowning it to root.
If neither of the above is the case, then there is a different issue that's causing a conflict with the memory lockdown here. In that case I will go digging deeper, but might just add a no memory lockdown mode as a solution for cases like this.
On the second time the service was started in your logs - 16:23:08 - it seems to not have encountered any memguard related issues, did you attempt to setup biometrics then? (If so, the memguard issue might be entirely unrelated for this specific issue.
Could you also post your ~/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json

I'm guessing you are on the official server or self hosted official server and it has some slightly different messages?

Yes, I'm using the official BW (EU) servers.

running in the go debugger debugger (due to an unresolved bug in a dependency) or running on different architectures (since you are on regular arch, I'm guessing you are on x86_64 should be fine). If you are running under the debugger, the temporary solution is to run the debugger as root or setting the suid bit and chowning it to root.

Ah yes, I ran a go build . in the git root of goldwarden and cped the resulting bin to /usr/bin/ when I wanted to test my first guess (what I wrote in the first post). This should have embedded the debug info in the binary, right? So this might be why we see this. But: I now re-installed from the AUR, restarted the goldwarden systemd service, unlocked the vault and can see the same segfault (with the same address, even) in the logs.
Also, I'm running on x86_64 with the latest kernel:
$ uname -a
Linux pc 6.6.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 14 Dec 2023 03:45:42 +0000 x86_64 GNU/Linux

Could you also post your ~/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json

$ cat ~/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json                                                                       01:33
{
        "name": "com.8bit.bitwarden",
        "description": "Bitwarden desktop <-> browser bridge",
        "path": "/usr/bin/goldwarden",
        "type": "stdio",
        "allowed_origins": [
          "chrome-extension://nngceckbapebfimnlniiiahkandclblb/",
          "chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh/",
          "chrome-extension://ccnckbpmaceehanjmeomladnmlffdjgn/"
        ]
  }

Ah yes, I ran a go build . in the git root of goldwarden and cped the resulting bin to /usr/bin/ when I wanted to test my first guess (what I wrote in the first post). This should have embedded the debug info in the binary, right? So this might be why we see this. But: I now re-installed from the AUR, restarted the goldwarden systemd service, unlocked the vault and can see the same segfault (with the same address, even) in the logs.

No, that's entirely fine, the bug is related to using delve to debug (f.e if you run it in an IDE with breakpoints). Running go build and using that binary should not result in this issue. Adding a mode that does not use memguard might already resolve your issue. I will investigate this.
This also reminds me to add a status command to inspect vault status (there is no good way to see if your vault actually unlocks and syncs correctly right now I think), and some more debug logs.
One more request: Could you run cat ~/.config/goldwarden.json | jq and check that it has the structure:
"IdentityUrl": "URL_HERE",
  "ApiUrl": "URL_HERE",
  "NotificationsUrl": "URL_HERE",
  "DeviceUUID": "UUID_HERE",
  "ConfigKeyHash": "HEX_STRING_HERE",
  "EncryptedToken": "BASE64_TEXT_HERE",
  "EncryptedUserSymmetricKey": "BASE64_TEXT_HERE",
  "EncryptedMasterPasswordHash": "BASE64_TEXT_HERE",
  "EncryptedMasterKey": "BASE64_TEXT_HERE"
}

(Needless to say, do not post the config, even though it is encrypted).

No, that's entirely fine, the bug is related to using delve to debug (f.e if you run it in an IDE with breakpoints). Running go build and using that binary should not result in this issue.

Ah, okay! Good to know.

One more request: Could you run cat ~/.config/goldwarden.json | jq and check that it has the structure:
Yes, the structure seems to be right.

Thank you for investigating this! :smile:

@c4tz Could you check with https://github.com/quexten/goldwarden/pull/16 ?
Specifically, after installing it, you should also update your ~/.config/systemd/user/goldwarden.service and add:
Environment="GOLDWARDEN_NO_MEMGUARD=true"
The updated version should also have more logs relevant here to see if the biometrics request is reaching the daemon, or if there is some IPC issue to the browser extension.

Additionally, when the daemon is active try running:
goldwarden vault unlock
and then
goldwarden vault status
This will show whether the daemon was able to sync and decrypt the ciphers correctly.

Okay, I did what you wrote plus: I locked and unlocked the vault once again and afterwards tried to connect the BW Browser extension again.
Results:

Vault status:

$ goldwarden vault status
Locked:  false
Number of logins:  191
Number of notes:  0

Logs:

$ journalctl --user-unit goldwarden
Dez 22 12:23:08 pc systemd[1223]: Started "Goldwarden daemon".
Dez 22 12:23:08 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Keyring] >>> Creating new memory keyring
Dez 22 12:23:08 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Agent] >>> Agent listening on /home/c4tz/.goldwarden.sock...
Dez 22 12:23:08 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > SSH] >>> SSH Agent listening on /home/c4tz/.goldwarden-ssh-agent.sock
Dez 22 12:23:15 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Pinentry] >>> Asking for pin |Unlock Goldwarden|Enter the vault PIN|
Dez 22 12:23:18 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Pinentry] >>> Got pin from user
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Auth] >>> Refreshing token
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Auth] >>> Token refreshed
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Performing full sync...
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Sync successful, initializing keyring and vault...
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Reading  1 org keys...
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Initializing keyring from user symmetric key...
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Clearing vault...
Dez 22 12:23:19 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Bitwarden API] >>> Adding 196 ciphers to vault...
Dez 22 12:23:23 pc goldwarden[7721]: [INF] [12:23] [Goldwarden > Websocket] >>> Connected to websocket server...
Dez 22 12:23:39 pc goldwarden[7721]: [WRN] [12:23] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:23:54 pc goldwarden[7721]: [WRN] [12:23] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:23:58 pc goldwarden[7721]: [WRN] [12:23] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:24:10 pc goldwarden[7721]: [WRN] [12:24] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:24:26 pc goldwarden[7721]: [WRN] [12:24] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:24:42 pc goldwarden[7721]: [WRN] [12:24] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:24:57 pc goldwarden[7721]: [WRN] [12:24] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:25:08 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Keyring] >>> Locking keyring
Dez 22 12:25:13 pc goldwarden[7721]: [WRN] [12:25] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:25:13 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Pinentry] >>> Asking for pin |Unlock Goldwarden|Enter the vault PIN|
Dez 22 12:25:15 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Pinentry] >>> Got pin from user
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Auth] >>> Refreshing token
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Auth] >>> Token refreshed
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Performing full sync...
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Sync successful, initializing keyring and vault...
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Reading  1 org keys...
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Initializing keyring from user symmetric key...
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Clearing vault...
Dez 22 12:25:17 pc goldwarden[7721]: [INF] [12:25] [Goldwarden > Bitwarden API] >>> Adding 196 ciphers to vault...
Dez 22 12:25:29 pc goldwarden[7721]: [WRN] [12:25] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:25:45 pc goldwarden[7721]: [WRN] [12:25] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:25:58 pc goldwarden[7721]: [WRN] [12:25] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:26:01 pc goldwarden[7721]: [WRN] [12:26] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 12:26:17 pc goldwarden[7721]: [WRN] [12:26] [Goldwarden > Websocket] >>> Invalid message received, length too short

The browser extension still thinks Bitwarden has not activated biometrics.

Thank you again for your work on this! :)

Ok, so your vault unlocked correctly, what's not working is the Browser<->Goldwarden[Client-browserbiometrics] part, or the Goldwarden[Client-browserbiometrics]<->Goldwarden[Agent] part since this is missing:
[INF] [12:45] [Goldwarden > Actions] >>> Browser Biometrics: Key requested, verifying biometrics...
[INF] [12:45] [Goldwarden > Biometrics] >>> Checking biometrics for com.quexten.goldwarden.browserbiometrics
[INF] [12:45] [Goldwarden > Biometrics] >>> Biometrics result: true
[INF] [12:45] [Goldwarden > Actions] >>> Browser Biometrics: Biometrics verified, asking for approval...
[INF] [12:45] [Goldwarden > Pinentry] >>> Asking for approval |Approve Credential Access|quexten on gnome-shell>firefox-bin>goldwarden is trying to access your vault encryption key for browser biometric unlock.|
[INF] [12:45] [Goldwarden > Pinentry] >>> Got approval from user
[INF] [12:45] [Goldwarden > Actions] >>> Browser Biometrics: Approved, getting key...
[INF] [12:45] [Goldwarden > Actions] >>> Browser Biometrics: Sending key...

(from my agent's logs when unlocking).
Just to make sure, did you copy the updated build to "/usr/bin/goldwarden (or alternatively update ~/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json to point to the current build)?
Otherwise, I'll add logging to the browserbiometrics component to debug this further.

Yes, I copied the newly built binary to /usr/bin/ before I did all that. (Else I would also have to point the systemd service to it, right?)
The error in the browser extension also is display almost instantly, so I guess it doesn't even call the binary? Even though the path is correct in the native messaging host config :thinking:

Added logging to the [Client-browserbiometrics] part too now. This has to be stored separately, specifically in /tmp/DELETE_ME.log but it should clear up what's going on. Beware there are some sensitive parts in the log, I've made it so the ones to specifically pay attention to are marked as SENSITIVE in the log, but there might be other parts. Just make sure not to post any encryption keys accidentally :)
Also, when testing, please fully kill chrome after rebuilding. On Firefox, the process seems to keep the goldwarden instance used for IPC around for a while.

Hmm, I re-built the binary with your new commits, unlocked the vault, killed chomium, re-started it and re-tried activating biometrics in the BW extension.
The systemd unit has these logs (again):
$ journalctl --user-unit goldwarden
Dez 22 16:01:49 pc systemd[1223]: Started "Goldwarden daemon".
Dez 22 16:01:49 pc goldwarden[23688]: [INF] [16:01] [Goldwarden > Keyring] >>> Creating new memory keyring
Dez 22 16:01:49 pc goldwarden[23688]: [INF] [16:01] [Goldwarden > Agent] >>> Agent listening on /home/c4tz/.goldwarden.sock...
Dez 22 16:01:49 pc goldwarden[23688]: [INF] [16:01] [Goldwarden > SSH] >>> SSH Agent listening on /home/c4tz/.goldwarden-ssh-agent.sock
Dez 22 16:02:16 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Pinentry] >>> Asking for pin |Unlock Goldwarden|Enter the vault PIN|
Dez 22 16:02:18 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Pinentry] >>> Got pin from user
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Keyring] >>> Unlocking keyring with account key
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Auth] >>> Refreshing token
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Auth] >>> Token refreshed
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Performing full sync...
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Sync successful, initializing keyring and vault...
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Reading  1 org keys...
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Initializing keyring from user symmetric key...
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Keyring] >>> Unlocking keyring with account key
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Clearing vault...
Dez 22 16:02:19 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Bitwarden API] >>> Adding 196 ciphers to vault...
Dez 22 16:02:20 pc goldwarden[23688]: [INF] [16:02] [Goldwarden > Websocket] >>> Connected to websocket server...
Dez 22 16:02:35 pc goldwarden[23688]: [WRN] [16:02] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 16:02:51 pc goldwarden[23688]: [WRN] [16:02] [Goldwarden > Websocket] >>> Invalid message received, length too short
Dez 22 16:03:06 pc goldwarden[23688]: [WRN] [16:03] [Goldwarden > Websocket] >>> Invalid message received, length too short
[... about 50 more of the same message]

but /tmp/DELETE_ME.log is still empty. That endorses my theory of chromium not even calling goldwarden in the first place. But how can this be, if bw-bio-handler works and I didn't upgrade chromium inbetween (just verified this in my pacman logs)?

Just did a strace for chromium while trying again:
$ sudo strace -f -p 30002 2>&1 | grep warden                                                                 x  04:34
[pid 30018] access("/home/c4tz/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json", F_OK <unfinished ...>
[pid 30018] openat(AT_FDCWD, "/home/c4tz/.config/chromium/NativeMessagingHosts/com.8bit.bitwarden.json", O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 30018] <... read resumed>"{\n\t\"name\": \"com.8bit.bitwarden\","..., 4096) = 343
[pid 30018] access("/usr/bin/goldwarden", F_OK <unfinished ...>
[pid 33371] execve("/usr/bin/goldwarden", ["/usr/bin/goldwarden", "chrome-extension://nngceckbapebf"...], 0x1834023e85a0 /* 56 vars */) = 0
[pid 33371] write(2, "Run 'goldwarden --help' for usag"..., 35) = 35
[pid 30022] <... read resumed>"33371 (goldwarden) Z 30002 30002"..., 4096) = 179

it seems that chromium sends some wrong arguments/commands to goldwarden, as far as I can interpret this log.

Oh, this is very helpful! Goldwarden expects a different argument order, maybe something about chromium changed since I implemented this.
The code for detecting goldwarden being called by chromium/firefox as an IPC proxy is:

Pushed a fix to the pr now and tested on a chromium installation, can you test if it works for you on the latest version of the PR?

Yes! It works! :tada:  Thank you for the ultra-fast solving!
So just for me to understang: something changed with the way chromium calls the native app? Why did bw-bio-handler still work, then?

To be honest, I'm not sure if chromium changed, or if I just didn't test on chromium on goldwarden. When writing bw-bio-hander, I tested both chromium and Firefox.
So the difference between Firefox and chromium seems to be the arguments it calls the IPC binary with. Where Firefox supplies the appid, chromium supplies "chrome-extension://...". On bw-bio-handler this was not an issue, since it did not care about any arguments it got (since these don't matter). For goldwarden, there is no separate binary dedicated to ipc, instead the regular CLI client just detects being called by the browser by checking the arguments, and then runs a modified version of bw-bio-handler under the hood, that communicates with the goldwarden agent instead of using a secret stored via libsecret. This detection of being called by the browser seems to have only detected Firefox and not chromium.
Also, thanks for the help tracking this bug down :)

Ahh, ok! That makes perfect sense, now that you explained it. :bulb:
So this would be something you would also have to keep in mind if you someday want to support other browsers, too. Btw, during my research yesterday I came across this useful list of NativeMessagingHost-paths and just now thought you might need it in the aforementioned case. This is also where I got the strace command from :wink:
Thank you again for your work and have wonderful holidays! :christmas_tree:

Thanks for the list. At the moment, bw-bio-hander and Goldwarden just recursively search from ~/.config/ and ~/.mozilla/ for any native messaging hosts folders. For most chomium-like browsers this works fine, but something like librewolf, waterfox, or something on mac/windows would not be detected yet. Though either way it's more than the official desktop client detects (it just has a preset list of a few browsers).
Wonderful holidays to you too!


correcting doc #83

Fixed #83

Pull Request Test Coverage Report for Build 764120510

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.093%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

ando/tools/generator/AnDOGenerator.py
0
2
0.0%

Totals

Change from base Build 760423547:
0.0%

Covered Lines:
203

Relevant Lines:
494

💛  - Coveralls


Change domain to discord.com

Pull Request Etiquette

[x] I have checked the PRs for upcoming features/bug fixes.
[x] I have read the contributing guidelines.

Changes

[x] Internal code
[ ] Library interface (affecting end-user code)
[ ] Documentation
[ ] Other: _____

Closes Issue: NaN
Description
Change to the new domain which will be required by 7th November 2020.

I'm not sure if this is also in the scope of this PR, but ReceivedMessage#getJumpLink would also need to be adjusted I guess. I verified that this already works in the client.

There are also various places (mainly links to the API) that use discordapp.com and I think those should also be updated accordingly.


Create arguments string in object nMapInfo

nmap -T4 -oX nmap.xml -vv <IP_ADDRESS>/24
might need to be parsed to
-T4 <IP_ADDRESS>/24
So take out parts that are not relevant to the GUI-side of results, things like -vv, -v, or -oX nmap.xml do not affect anything visible in the GUI.
This would further enhance the visibility of called arguments in GUI

Baked strings with all information


python311Packages.python-bring-api: init at 3.0.0-unstable-2024-02-03

Module to access the Bring! shopping lists API
https://github.com/eliasball/python-bring-api
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 287772 run on x86_64-linux 1

4 packages built:

python311Packages.python-bring-api
python311Packages.python-bring-api.dist
python312Packages.python-bring-api
python312Packages.python-bring-api.dist


[NWPS-1363] - Moved breadcrumb container outside of  container

@sankar-shunmuga @smanivasag I've moved the breadcrumbs as discussed, and it seems as if the styling is unaffected :+1:
Once approved I'll cherry-pick this change into our release/NWPS-Sprint-29 branch too.

@smanivasag I actioned all the requested changes above. Thanks a lot for the review! :slightly_smiling_face:

@smanivasag I actioned all the requested changes above. Thanks a lot for the review! 🙂

Thanks @AlexKirstenZA 👍
Sorry, I should have mentioned this before. I think we should probably change page__breadcrumbs CSS class to something (e.g. breadcrumbs) in line with our naming convention (as it isn't inside the  section anymore).
Also, I could still some
...
 block available within  section for some HTML files. Could they be corrected ? Thanks!

@smanivasag I actioned all the requested changes above. Thanks a lot for the review! slightly_smiling_face

Thanks @AlexKirstenZA +1
Sorry, I should have mentioned this before. I think we should probably change page__breadcrumbs CSS class to something (e.g. breadcrumbs) in line with our naming convention (as it isn't inside the  section anymore).
Also, I could still some
...
 block available within  section for some HTML files. Could they be corrected ? Thanks!

No worries @smanivasag this has been amended now, thanks. :+1:

@AlexKirstenZA - Thanks for all the updates.
Could we get rid of the following if not required anymore?
File: app/assets/hee/templates/_page.scss
7: .page__breadcrumbs,

Thanks!


cmd/go: get does not understand go-import meta tag with mod method by default

What version of Go are you using (go version)?

$ go version
go version go1.15 linux/amd64

Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""

What did you do?
Run go get go.felesatra.moe/animanager outside of module dir.
What did you expect to see?
Success
What did you see instead?
package go.felesatra.moe/animanager: unrecognized import path "go.felesatra.moe/animanager": parse https://go.felesatra.moe/animanager?go-get=1: no go-import meta tags ()

Note that go.felesatra.moe/animanager does include a go-import meta tag, but using mod instead of a vcs value.
It's arguable whether this is a bug.  Strictly speaking, go get is behaving as documented:
For more fine-grained control, the go command continues to respect
a temporary environment variable, GO111MODULE, which can be set to one
of three string values: off, on, or auto (the default).
If GO111MODULE=on, then the go command requires the use of modules,
never consulting GOPATH. We refer to this as the command
being module-aware or running in "module-aware mode".
If GO111MODULE=off, then the go command never uses
module support. Instead it looks in vendor directories and GOPATH
to find dependencies; we now refer to this as "GOPATH mode."
If GO111MODULE=auto or is unset, then the go command enables or disables
module support based on the current directory.
Module support is enabled only when the current directory contains a
go.mod file or is below a directory containing a go.mod file.

So running go get outside of a module dir has module support disabled, so it does not support mod meta tags.
However, practically speaking it's not desirable that you can't go get a program if it uses a mod meta tag, since end users don't care about that (it works if you explicitly set GO111MODULE=on, naturally).

Sorry, this is unlikely to be implemented.
Since GO111MODULE is not set, when go get is invoked outside a module, it runs in GOPATH mode. Downloading modules in GOPATH mode is unlikely to be supported. Downloading and extracting them would be easy enough, but there are a ton of edge cases to consider, for example, with overlapping modules at different versions.
In general, we aren't actively developing GOPATH mode anymore, and our intent is to eventually change the default of GO111MODULE to on.

There is an alternative solution, which is to modify GO111MODULE=auto to use the modules logic instead of GOPATH when go get is invoked outside a module.  Disclaimer: I haven't thought about any adverse implications of this.

We'd like to change the default of GO111MODULE to on eventually, but we need to ensure the module UX is fully polished first.
Incidentally, if you're mainly using go get to install executables (as opposed to downloading sources into GOPATH), #40276 should help. You'd be able to run go install go.felesatra.moe/animanager@latest from any directory without setting GO111MODULE explicitly.

If I understand this issue correctly (also based on reading https://github.com/darkfeline/animanager-go/issues/1), this issue doesn't exist in module mode, only in GOPATH mode.
As a consequence, this will be resolved indirectly via #41330.

Right, let's close this then.
GO111MODULE=on now defaults to on, so you'll be able to run go get go.felesatra.moe/animanager outside of a module without setting GO111MODULE=on.
go install go.felesatra.moe/animanager@latest works now, regardless of the current working directory.


Form Field CLI command not correct in docs

Please provide the environment you discovered this bug in.
Add Form Field component with npx nx g @spartan-ng/cli:ui form-field should request a directory and add the component.
Instead the CLI prompts "Choose which primitives you want to copy...."
Looks like form-field is not available in the CLI, instead formfield.

Which area/package is the issue in?
Docs
Description
Should update docs or CLI to use the correct name for the Form Field component.
Please provide the exception or error you saw
No response
Other information
No response
I would be willing to submit a PR to fix this issue

[X] Yes
[ ] No

@goetzrobin should the docs be updated or the formfield option to form-field in the CLI?
npx nx g @spartan-ng/cli:ui formfield works fine, but create the component under libs/ui/ui-formfield-helm/* instead of libs/ui/ui-form-field-helm.

@marcjulian let's keep it the same as the others. how does e.g. aspectratio do it?

Aspect ratio uses aspectratio without a dash in the command, but also without a das in the package name.
# cli
npx nx g @spartan-ng/cli:ui aspectratio
# import lib
import { HlmAspectRatioDirective } from '@spartan-ng/ui-aspectratio-helm';

For Form Field that would mean to rename the command and also the import path. Do you want to keep the dash between form-field?
# cli
npx nx g @spartan-ng/cli:ui form-field
# import lib
import { HlmFormFieldModule } from '@spartan-ng/ui-form-field-helm';

or
# cli
npx nx g @spartan-ng/cli:ui formfield
# import lib
import { HlmFormFieldModule } from '@spartan-ng/ui-formfield-helm';


Remove dtype argument from AnnData constructor

Fixes #129
Brought up again by https://github.com/theislab/scanpy/issues/1415
This PR makes the dtype argument of the AnnData constructor default to None, and throws a warning if it is passed. The idea is that we should just accept whatever array was passed as X.
This code change breaks some tests in scanpy. AFAICT, this can all be fixed on the scanpy side.
@falexwolf @flying-sheep, how do we want to handle this breaking change? A few thoughts:

One option: this goes in 0.8, and we throw a warning if dtype is passed
Should we warn about this before it's in a breaking release? Might be hard to do, since it's a changing default.

TODO

[ ] Fix tests on scanpy side
[ ] Figure out how we want to handle this change
[ ] Check for/ remove old tests for dtype argument

Totally for it. Each layer can have its own dtype.
So you want to leave the read functions defaulting to float32? For formats that have their own intrinsic precisison, I think that makes no sense, for text formats it does:

read_excel: I guess it makes sense. Even if Excel has a way to internally use f32, few people probably use it
text-based (umi-tools, csv, …): No intrinsic precision
hdf: Intrinsic precision is already derived from the file
loom: Has intrinsic precision, but we convert the data anyway. I think we should change that.
matrix market: No intrinsic precision

So you want to leave the read functions defaulting to float32? For formats that have their own intrinsic precisison, I think that makes no sense, for text formats it does:

This was pretty much my thoughts. If you pass in something with precision, we'll use that. If you don't we can probably assume float32.

@flying-sheep, this has a companion PR in scanpy that shows everything this breaks https://github.com/theislab/scanpy/pull/1430. This needs a plan for release. I'm trying to figure out what the right way to do this is, so code will still work with both versions, without too many warnings being thrown. How does this sound:

This changes in 0.8
In 0.7 (the next bugfix release), throw a FutureWarning("In a future version this will not be converted") if dtype was not passed and X would be cast to float32.
In 0.8.0, dtype is None by default, but passing dtype will still convert. A FutureWarning("Conversion via argument dtype is deprecated") will be thrown if a conversion would happen. Passing the argument at all throws a DeprecationWarning which will be visible to package developers, but not users.
Some time into 0.8 (giving people a chance to upgrade) passing any value for dtype would throw a user visible FutureWarning
The argument is completely removed for the following breaking release.

I feel like this will give people the easiest upgrade path. If they get warnings now, specify the dtype. Next version, developers get warned that dtype is deprecated and get time to update before users get warnings. Finally users see deprecation warnings, and soon after it's gone.
An alternative would be to rip the bandaid off faster, but I don't want to be saying "if you don't want your data to convert pass dtype, though this will break soon".

This was pretty much my thoughts. If you pass in something with precision, we'll use that. If you don't we can probably assume float32.

Okay, so we should change it for loom. For Matrix Market, I guess we could get fancy and derive it from the amount of digits in the first few numbers, but there’s probably not many people using that one anyway.

If they get warnings now, specify the dtype

Hmm, this requires two actions for users going forward. Would be nice if there was a way to do The Right Thing immediately, but I can’t come up with one. If we allow setting some kind of ._noconvert field on the object being passed, we risk that being cargo-culted to everywhere.
So yeah! Sounds very solid! :smile:

Yeah, I'd like this to be quicker, but I can't think of another way to have code that will work with 0.7-0.8 or 0.8-0.9

Superseded by #854


Fix test deprecation message

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.04%) to 95.946%

Files with Coverage Reduction
New Missed Lines
%

src/Spout/Writer/WriterAbstract.php
1
97.44%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
2509

Relevant Lines:
2615

💛  - Coveralls


Bug in SASL

I found that using SASL now causes a bug on UnrealIRCd ping requests. And prevents the bot from fully connecting.

This had been fixed.