IL2CPP does not support inspection of attribute constructor arguments at run time.

I am using sqlite-net for a Unity project. My current settings include relying on IL2CPP compiler instead of Mono when building the binary. This is something I cannot change. Apparently IL2CPP has a problem with ConstructorArguments (for iOS/Android builds, not in Unity Editor):
NotSupportedException: ./External/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System.Reflection/CustomAttributeData.cpp(17) : Unsupported internal call for IL2CPP:CustomAttributeData::ResolveArgumentsInternal - "IL2CPP does not support inspection of attribute constructor arguments at run time."
  at System.Reflection.CustomAttributeData.ResolveArguments () [0x00000] in <00000000000000000000000000000000>:0
  at System.Reflection.CustomAttributeData.get_ConstructorArguments () [0x00000] in <00000000000000000000000000000000>:0
  at SQLite.Orm.InflateAttribute (System.Reflection.CustomAttributeData x) [0x00000] in <00000000000000000000000000000000>:0
  at SQLite.TableMapping+<>c.<.ctor>b__31_1 (System.Reflection.CustomAttributeData x) [0x00000] in <00000000000000000000000000000000>:0
  at System.Func`2[T,TResult].Invoke (T arg) [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[TSource,TResult].MoveNext () [0x00000] in <00000000000000000000000000000000>:0
  at System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x00000] in <00000000000000000000000000000000>:0
  at SQLite.TableMapping..ctor (System.Type type, SQLite.CreateFlags createFlags) [0x00000] in <00000000000000000000000000000000>:0
  at SQLite.SQLiteConnection.GetMapping (System.Type type, SQLite.CreateFlags createFlags) [0x00000] in <00000000000000000000000000000000>:0

The problem is anywhere ConstructorArguments property is used.
For now, I have fixed this problem by adding a #define and using different code (older code taken from this repo, not really sure which version tbh) whenever ConstructorArguments is used. e.g.:
#if UNITY_EDITOR
            var typeInfo = type.GetTypeInfo();
            var tableAttr =
                typeInfo.CustomAttributes
                        .Where(x => x.AttributeType == typeof(TableAttribute))
                        .Select(x => (TableAttribute)Orm.InflateAttribute(x))
                        .FirstOrDefault();
#elif NETFX_CORE
			var tableAttr = (TableAttribute)System.Reflection.CustomAttributeExtensions
				.GetCustomAttribute(type.GetTypeInfo(), typeof(TableAttribute), true);
#else
            var tableAttr = (TableAttribute)type.GetCustomAttributes(typeof(TableAttribute), true).FirstOrDefault();
#endif

or
#if UNITY_EDITOR
                Name = (colAttr != null && colAttr.ConstructorArguments.Count > 0) ?
                        colAttr.ConstructorArguments[0].Value?.ToString() :
                        prop.Name;
#else
                Name = colAttr == null ? prop.Name : colAttr.Name;
#endif

Maybe there's a better way to fix this problem than that, but I wanted to know if this issue could be addressed officially?

I have the same bug when testing in IOS and unfortunately your fix does not work. Especially because the field colAttr.Name does not exsist.
Are there any other approaches or ideas for a fix? I really need it urgently and I'm having a hard time debugging it.
For me the error occurs when I want to create tables. This happens first at startup and I don't see what could happen next.

@time2smile sorry I just noticed your reply, yeah you are right I do have that line you added, but for the sake of asking I forgot to post the complete solution. Thanks for pointing out for others that might stumble upon this problem!

Is there a related PR for this fix? I too an unable to create tables on IOS (everything works great in editor on Mac). Or at least could someone post the entire solution in context here? Thank you.

I just ran into this issue.
A bit confusing, because the IL2CPP docs say that the System.Reflection namespace is supported, only System.Reflection.Emit is not. CustomAttributeData is in System.Reflection. But perhaps the ResolveArguments() method (which is internal), called by get_ConstructorArguments(), relies on Emit? I'm not sure how to tell.
I'm still trying to apply the suggested changes above. A Pull Request or a fork or even a gist with a patch would be really helpful.

Is there a related PR for this fix? I too an unable to create tables on IOS (everything works great in editor on Mac). Or at least could @time2smile please post the entire solution in context here? Thank you.

I implemented what gtino offered plus the small addition from my post.
But what helped me most was the omission of the attributes in my mappings.
In the following I have attached your example data type and in addition I have attached my SQliteDBManager, with which I implement all my communication to the database.
The IMapping and IFileMapping are the interfaces of my data objects.
The important thing is that the primary key is not set by the attribute but by the parameter when creating the table.
The [SerielizedField] attribute does not cause any problems.
I hope that this helps.
`
[Serializable]
public class ColorData : IFileMapping, IEquatable
{
#region Properties
public int Id
{
get => id;
set => id = value;
}
    public string Type
    {
        get => type;
        set => type = value;
    }

    public string Name  {
        get => name;
        set => name = value;
    }

    public string GetFolderPath()
    {
        return DataPath.ColorsDir;
    }

    #endregion

    #region Serializeable Fields

    [SerializeField]
    private int id;

    [SerializeField]
    private string name;

    [SerializeField]
    private string type;

    #endregion

    #region Equality

    public bool Equals(ColorData other)
    {
        if (ReferenceEquals(null, other)) return false;
        if (ReferenceEquals(this, other)) return true;
        return Id == other.Id && Name == other.Name && Type == other.Typel;
    }

    public override bool Equals(object obj)
    {
        if (ReferenceEquals(null, obj)) return false;
        if (ReferenceEquals(this, obj)) return true;
        if (obj.GetType() != GetType()) return false;
        return Equals((ColorData) obj);
    }

    public override int GetHashCode()
    {
        unchecked
        {
            var hashCode = (Id != null ? Id.GetHashCode() : 0);
            hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0);
            hashCode = (hashCode * 397) ^ (Type != null ? Type.GetHashCode() : 0);
            return hashCode;
        }
    }

    #endregion

    public override string ToString()
    {
        return
            $"{nameof(Id)}: {Id} " +
            $"{nameof(Name)}: {Name} " +
            $"{nameof(Type)}: {Type} " ;
    }

}

public class SQLiteDBManager
{
    #region Open and Close Connection

    /// <summary>
    /// Returns an active <see cref="SQLiteConnection"/> to local SQLDataBase.
    /// </summary>
    /// <returns></returns>
    public SQLiteConnection GetSQLiteConnection()
    {
        return new SQLiteConnection(Path.Combine(DataPath.ConfigDir, DataPath.DataBaseName));
    }

    /// <summary>
    /// Close the active <see cref="SQLiteConnection"/>.
    /// </summary>
    public void CloseDB()
    {
        GetSQLiteConnection().Close();
    }

    #endregion

    #region READ

    /// <summary>
    /// Creates Tables for all available <see cref="IMapping"/> - Classes if they are not available.
    /// This is defined manually and need to be updated when a new class of type <see cref="IMapping"/> is added.
    ///  </summary>
    public void CreateTables()
    {
        var db = GetSQLiteConnection();

        db.BeginTransaction();
        db.CreateTable<ColorData>(CreateFlags.ImplicitPK);
        db.Commit();

        db.Close();
        Log(this, "Tables created if not existing.");
    }

    /// <summary>
    /// Returns a <see cref="List{T}"/> of all available objects in the selected table.
    /// You select a table by type.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public List<T> ReadAllFrom<T>() where T : IMapping, new()
    {
        var db = GetSQLiteConnection();
        db.BeginTransaction();

        var query = db.Table<T>();
        List<T> result = query.ToList();

        db.Commit();
        db.Close();
        return result;
    }

    /// <summary>
    /// Returns on object of type <see cref="IFileMapping"/> with given Id.
    /// </summary>
    /// <param name="id"></param>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public T GetFileObjectById<T>(int id) where T : IFileMapping, new()
    {
        var db = GetSQLiteConnection();
        db.BeginTransaction();

        var result = db.Table<T>().First(obj => obj.Id == id);

        db.Commit();
        db.Close();
        return result;
    }

    #endregion

    #region WRITE

    /// <summary>
    /// Insert or replace the given dataObject in the selected table.
    /// You select a table by type.
    /// </summary>
    /// <param name="data"></param>
    /// <typeparam name="T"></typeparam>
    public void InsertOrReplaceInto<T>(T data) where T : IMapping
    {
        var db = GetSQLiteConnection();

        db.BeginTransaction();
        db.InsertOrReplace(data);
        db.Commit();
        db.Close();
    }

    /// <summary>
    /// Insert or Replace a list of <see cref="IEnumerable{T}"/> in the selected table.
    /// You select a table by type.
    /// </summary>
    /// <param name="data"></param>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    public int InsertOrReplaceAllInto<T>(IEnumerable<T> data) where T : IMapping
    {
        var db = GetSQLiteConnection();
        db.BeginTransaction();
        var result = db.InsertAll(data, "OR REPLACE");
        db.Commit();
        db.Close();

        return result;
    }

    #endregion

    #region DELETE
    /// <summary>
    /// Delete the given dataObject in the selected table.
    /// You select a table by type.
    /// </summary>
    /// <param name="data"></param>
    /// <typeparam name="T"></typeparam>
    public void Delete<T>(T data) where T : IMapping
    {
        var db = GetSQLiteConnection();

        db.BeginTransaction();
        db.Delete(data);
        db.Commit();
        db.Close();

        Log(this, "Deleted one Object");
    }

    #endregion
}

`

I did not create a PR, no. Just the patch.
I am explicitly using sqlite-net-extensions, which relies on attributes.
Brent

On Jul 24, 2020, at 8:56 AM, Alex Mizuk<EMAIL_ADDRESS>wrote:

Is there a related PR for this fix? I too an unable to create tables on IOS (everything works great in editor on Mac). Or at least could @time2smile please post the entire solution in context here? Thank you.
I implemented what gtino offered plus the small addition from my post.
But what helped me most was the omission of the attributes in my mappings.
In the following I have attached your example data type and in addition I have attached my SQliteDBManager, with which I implement all my communication to the database.
The IMapping and IFileMapping are the interfaces of my data objects.
The important thing is that the primary key is not set by the attribute but by the parameter when creating the table.
The [SerielizedField] attribute does not cause any problems.
I hope that this helps.
`
[Serializable]
public class ColorData : IFileMapping, IEquatable
{
#region Properties
public int Id
{
get => id;
set => id = value;
}
public string Type
{
    get => type;
    set => type = value;
}

public string Name  {
    get => name;
    set => name = value;
}

public string GetFolderPath()
{
    return DataPath.ColorsDir;
}

#endregion

#region Serializeable Fields

[SerializeField]
private int id;

[SerializeField]
private string name;

[SerializeField]
private string type;

#endregion

#region Equality

public bool Equals(ColorData other)
{
    if (ReferenceEquals(null, other)) return false;
    if (ReferenceEquals(this, other)) return true;
    return Id == other.Id && Name == other.Name && Type == other.Typel;
}

public override bool Equals(object obj)
{
    if (ReferenceEquals(null, obj)) return false;
    if (ReferenceEquals(this, obj)) return true;
    if (obj.GetType() != GetType()) return false;
    return Equals((ColorData) obj);
}

public override int GetHashCode()
{
    unchecked
    {
        var hashCode = (Id != null ? Id.GetHashCode() : 0);
        hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0);
        hashCode = (hashCode * 397) ^ (Type != null ? Type.GetHashCode() : 0);
        return hashCode;
    }
}

#endregion

public override string ToString()
{
    return
        $"{nameof(Id)}: {Id} " +
        $"{nameof(Name)}: {Name} " +
        $"{nameof(Type)}: {Type} " ;
}

}
public class SQLiteDBManager
{
#region Open and Close Connection
/// <summary>
/// Returns an active <see cref="SQLiteConnection"/> to local SQLDataBase.
/// </summary>
/// <returns></returns>
public SQLiteConnection GetSQLiteConnection()
{
    return new SQLiteConnection(Path.Combine(DataPath.ConfigDir, DataPath.DataBaseName));
}

/// <summary>
/// Close the active <see cref="SQLiteConnection"/>.
/// </summary>
public void CloseDB()
{
    GetSQLiteConnection().Close();
}

#endregion

#region READ

/// <summary>
/// Creates Tables for all available <see cref="IMapping"/> - Classes if they are not available.
/// This is defined manually and need to be updated when a new class of type <see cref="IMapping"/> is added.
///  </summary>
public void CreateTables()
{
    var db = GetSQLiteConnection();

    db.BeginTransaction();
    db.CreateTable<ColorData>(CreateFlags.ImplicitPK);
    db.Commit();

    db.Close();
    Log(this, "Tables created if not existing.");
}

/// <summary>
/// Returns a <see cref="List{T}"/> of all available objects in the selected table.
/// You select a table by type.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public List<T> ReadAllFrom<T>() where T : IMapping, new()
{
    var db = GetSQLiteConnection();
    db.BeginTransaction();

    var query = db.Table<T>();
    List<T> result = query.ToList();

    db.Commit();
    db.Close();
    return result;
}

/// <summary>
/// Returns on object of type <see cref="IFileMapping"/> with given Id.
/// </summary>
/// <param name="id"></param>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public T GetFileObjectById<T>(int id) where T : IFileMapping, new()
{
    var db = GetSQLiteConnection();
    db.BeginTransaction();

    var result = db.Table<T>().First(obj => obj.Id == id);

    db.Commit();
    db.Close();
    return result;
}

#endregion

#region WRITE

/// <summary>
/// Insert or replace the given dataObject in the selected table.
/// You select a table by type.
/// </summary>
/// <param name="data"></param>
/// <typeparam name="T"></typeparam>
public void InsertOrReplaceInto<T>(T data) where T : IMapping
{
    var db = GetSQLiteConnection();

    db.BeginTransaction();
    db.InsertOrReplace(data);
    db.Commit();
    db.Close();
}

/// <summary>
/// Insert or Replace a list of <see cref="IEnumerable{T}"/> in the selected table.
/// You select a table by type.
/// </summary>
/// <param name="data"></param>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public int InsertOrReplaceAllInto<T>(IEnumerable<T> data) where T : IMapping
{
    var db = GetSQLiteConnection();
    db.BeginTransaction();
    var result = db.InsertAll(data, "OR REPLACE");
    db.Commit();
    db.Close();

    return result;
}

#endregion

#region DELETE
/// <summary>
/// Delete the given dataObject in the selected table.
/// You select a table by type.
/// </summary>
/// <param name="data"></param>
/// <typeparam name="T"></typeparam>
public void Delete<T>(T data) where T : IMapping
{
    var db = GetSQLiteConnection();

    db.BeginTransaction();
    db.Delete(data);
    db.Commit();
    db.Close();

    Log(this, "Deleted one Object");
}

#endregion

}
`
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I encounter this issue today. After read the code and c# doc, it's curious that it always uses CustomAttributeData and constructor args to instance an Attribute object. You can simply replace it with a single GetCustomAttribute call and get the Attribute object directly. It functions as the original code and avoids access attribute constructor arguments.
Is the original code all for compatibility?

@gtino @time2smile Hi!
Do you have successful experience with SQLite-net and Unity in production after merge for the IL2CPP issue?

@gtino @time2smile Hi!
Do you have successful experience with SQLite-net and Unity in production after merge for the IL2CPP issue?


Float results get truncated

I'm trying to implement https://github.com/src-d/go-mysql-server/issues/392 and I noticed that the float64 results get truncated as integers.
I've also tested via another function AVG and that is also happening. For example:
Mysql-8
mysql> select avg(23.222);
+-------------+
| avg(23.222) |
+-------------+
|  23.2220000 |
+-------------+
1 row in set (0.01 sec)

go-mysql-server
mysql> select avg(23.222);
+-------------+
| AVG(23.222) |
+-------------+
|          23 |
+-------------+
1 row in set (0.00 sec)

Until that is solved some issues cannot go forward

From mysql point of view everything looks fine. I think it's a gitbase issue.

Cool I will continue with the  #392


Fcrepo 2105 final

https://jira.duraspace.org/browse/FCREPO-2105

@dbernstein : as a process comment, in order to facilitate transparency in what a pull-request is designed to address, the subject text of the pull-request should provide a brief, but meaningful description:
https://wiki.duraspace.org/display/FF/Git+Workflow#GitWorkflow-Committing
Fcrepo 2105 final requires an understanding of what that JIRA ticket is about.
That said, you rock :metal: ! Keep the great work flowing!

hmm... I am still getting the same test failures:
Failed tests:
  ReferencesRdfContextTest.testStrongReferences:123 null
  ReferencesRdfContextTest.testWeakReferences:135 null

..and adding a assertion error messages shows that the model is empty:
assertTrue(model.contains(createResource("info:fedora/b"),
                createProperty("info:strong"),
                createResource("info:fedora/a")));

results in:
Failed tests:
  ReferencesRdfContextTest.testStrongReferences:123 model: <ModelCom   {} | >
  ReferencesRdfContextTest.testWeakReferences:135 model: <ModelCom   {} | >

I'll take a look.
On Thu, Mar 23, 2017 at 5:12 PM, Andrew Woods<EMAIL_ADDRESS>wrote:

hmm... I am still getting the same test failures:
Failed tests:
ReferencesRdfContextTest.testStrongReferences:123 null
ReferencesRdfContextTest.testWeakReferences:135 null
..and adding a assertion error messages shows that the model is empty:
assertTrue(model.contains(createResource("info:fedora/b"),
createProperty("info:strong"),
createResource("info:fedora/a")));
results in:
Failed tests:
ReferencesRdfContextTest.testStrongReferences:123 model: <ModelCom   {} | >
ReferencesRdfContextTest.testWeakReferences:135 model: <ModelCom   {} | >
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fcrepo4/fcrepo4/pull/1177#issuecomment-288897702, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAVDa3BSMt927F4OYIu5-oDJ24y1_cMtks5rowpigaJpZM4Mb_ra
.

@awoods : So confirmed,  I was mistaken: the performance improvements were lost with the latest commit.   I've reverted locally and am working on another fix to the broken unit tests.

This looks good to me.
@escowles ? @ruebot ? would you mind giving this a look and squash/merging if you are happy with the PR. I would do it myself if some of my commits were not intermingled.


[NEXT RELEASE] #851 add docs to matchers.md

I'm wondering if we should add two versions of the "same" matcher to the documentation. Perhaps we can let the user discover that there's a default value set to 4? That way we can shorten the docs and avoid repetitions.
What do you think?

Do you prefer method signature without precision?

Yes, I think it's better to keep only the method signature with precision.
 | `collection.shouldHaveMean(mean, precision)` | Asserts that collection has specific mean with specific precision |

But we can discuss this further if you don't agree

I don't have objections regarding to left one signature, I think that maybe in this case we need change description, e.g.:
 | `collection.shouldHaveMean(mean, precision)` | Asserts that collection has mean with specific or default (4 digits after decimal point) precision |

What do you think?

That's better :)


Build-Agent Issues after installing BCCH 6.0.17

After I have installed Powershell Core (7.4.2) to our build agents I have started to see different errors when running our pipelines.
First our function to add new SQL users failed with:
Exception calling "Load" with "1" argument(s): "Could not load file or assembly 'Microsoft.SqlServer.SMO, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified."
This I could fix by changing the version specific load to:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
But after fixing it here, then it failed with the same error when we change the container to run Multi-Tenant, when running Export-NavApplication. I fixed that by adding the same load part you use in Restore-BcDatabaseFromArtifacts.
After fixing this, it failed when I was trying to mount the new tenant. Saying that server was not multitenant. Despite I had been running this statement first:
Set-NAVServerConfiguration -ServerInstance $ServerInstance -KeyName 'Multitenant' -KeyValue 'true' -ApplyTo ConfigFile -WarningAction SilentlyContinue
Changing this to:
Set-NAVServerConfiguration -ServerInstance $ServerInstance -KeyName 'Multitenant' -KeyValue 'true' -ApplyTo ConfigFile -Force -WarningAction Continue
This gave a new error: Processing data for a remote command failed with the following error message: The WSMan provider host process did not return a proper response.  A provider in the host process may have behaved improperly.
I have no idea, how installing Powershell 7.4 can cause this effect, or if there has been any other updates to how the BC images are created, that could cause this.  But I hope someone has experienced something similar, or have another input to what could be wrong.
Selected Logs from create new container:
BcContainerHelper is version 6.0.17
BcContainerHelper is running as administrator
HyperV is Disabled
Host is Microsoft Windows Server 2019 Datacenter - 10.0.17763.5696
UsePsSession is True
UsePwshForBc24 is True
UseWinRmSession is allow
UseSslForWinRmSession is True
Docker Client Version is 26.1.1
Docker Server Version is 26.1.1
Style: onprem
Multitenant: No
Version: 14.44.49619.0
Platform: 14.0.49616.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.17763.5696 (ltsc2019)
Host OS Version: 10.0.17763.5696 (ltsc2019)

Why are you installing PS Core on the build agents?
Are you running your scripts in PS7 as well?
Are you running Set-NAVServerConfiguration in the container or on the host?

Well I'm installing PowerShell 7.4.2 (https://github.com/PowerShell/PowerShell/releases) - assumed that was the same as Powershell Core?
But I'm not specifying pwsh=true and not using it. Just installing it because ALOps requires it to work, but not using it here.
The Set-NAVServerConfiguration is running inside the host with Invoke-ScriptInBcContainer.

The Set-NAVServerConfiguration is running inside the host with Invoke-ScriptInBcContainer.

You mean it is running inside the container - right?
The host is the machine on which the container is running.
Inside the container - PS7 is installed and configured - and for containers - PS7 is not needed on the host.
Are you running any invoke-sqlcmd's on the host or are they running in the container as well?

Yes, you are right - it's running inside the container.
I also have a Invoke-SQLCmd statement that runs inside the container.
But you're saying that we don't need to install PS7 on the host/agent?
And how about DotNet 8? Is that also not required on the host/agent?
PS: I'm right now waiting for an updated version of our agents, without PS7 installed - just to see if the problems goes away again by doing so, of if there is another issue.

That is ALOps - I cannot say what requirements they have.
I can only say that for AL-Go for GitHub, BcContainerHelper - PS7 and DotNet 8 is NOT required on the host.
ALOps might have other reasons for requiring these things.
But... - when using BcContainerHelper alone, PS5 and PS7 on the host are both fine.

And... - since you are using BC 14 (I see in your log) - you really shouldn't need PS7 at all and you definitely shouldn't create a pwsh session in the container - that ONLY works with BC24.

I tried to revert my agent build repo to how they were when the last time it ran successful. Which was last Friday. Running it without installing DotNet8 and PS7, same but same OS version etc. This failed with the same "The WSMan provider host process" error as mentioned above.
The only other difference was the BCCH was now 6.0.17. Reverting my script installed with requiredversion=6.0.15 worked as a charm.
To me that seems related to BcContainerHelper version 6.0.17.

I would need full logs (and if possible a script with a repro) if I am to look at anything.
There are so many differences in how things are running inside the container.

I decided to spend a bit more time on trying to fix the issues, instead of the same amount on collecting the logs and scripts we use. Because I could see that the error only occurred in connection to specific scenarios where I either change to/from multitenancy (using Export-NAVApplication and Remove-NAVApplication etc and creating a user via Invoke-SQLCmd) and places where I had previously been using version specific "<IP_ADDRESS>".
Changing the version specific load to a load with LoadWithPartialName and no version worked for Invoke-SQLCmd, but not for the cases with xxx-NavApplication. Here I had to use the more complex way, that you also use in Restore-BcDatabaseFromArtifacts.
In regards to the second error, then I just moved changing the call to Set-NAVServerConfiguration to change the Multitenant setting into its own call to Invoke-ScriptInBcContainer call. I remembered that I had experienced something similar in a different script 4-5 years ago, and moved other calls to Set-NAVServerConfiguration into they own Invoke.
I'm not quite sure what in 6.0.17 broke this, but if anyone runs into the same issues and don't know how to solve it, then reply here or contact me for more information.

Invoke-SqlCmd should be available for use in Invoke-ScriptInBcContainer automatically - you shouldn't have to load any special stuff????
What module are you loading?

Do you mean besides Microsoft.SqlServer.Smo?
To be able to call
Invoke-Sqlcmd -serverinstance "$($Config.DatabaseServer)$($Config.DatabaseInstance)" -Database $tenant.DatabaseName -query 'CREATE USER "NT AUTHORITY\SYSTEM" FOR LOGIN "NT AUTHORITY\SYSTEM";'
I also have to load Microsoft.SqlServer.SmoExtended and Microsoft.SqlServer.ConnectionInfo.

If I run this script:
$auth = "UserPassword"
$containerName = "bc24"
$credential = New-Object pscredential -ArgumentList 'admin', $PasswordSecret.SecretValue
$artifactUrl = Get-BcArtifactUrl -country us -select Latest

New-BCContainer -containerName $containerName `
                -accept_eula `
                -Auth $auth `
                -artifactUrl $artifactUrl `
                -Credential $credential

Invoke-ScriptInBcContainer -containerName $containerName -scriptblock {
    Write-Host "Running $($PSVersionTable.PSVersion)"
    Invoke-Sqlcmd -serverinstance localhost\SQLEXPRESS -Database CRONUS -query 'CREATE USER "NT AUTHORITY\SYSTEM" FOR LOGIN "NT AUTHORITY\SYSTEM";'
}

It works just fine (except for failing with User, group, or role 'NT AUTHORITY\SYSTEM' already exists in the current database.)
But Invoke-SqlCmd is available when invoking scripts in the container.
This works for BC24 (running PowerShell 7 with SqlServer PowerShell module version 22.2 installed in the generic image with overrides in psoverrides.ps1 because the latest Invoke-SqlCmd added a new parameter)
And it works for BC23 (running in PowerShell 5.1, using SQLPS, which is autoloaded)

The above script worked fine. So I tried with something that looked a bit more like our own code, but still only using "your" code. And here I were able to get the same errors.
      - powershell: |
          $auth = "UserPassword"
          $containerName = "bc14"
          $Credential = New-Object PSCredential 'Admin', (ConvertTo-SecureString -String 'NotSoImportant1!' -AsPlainText -Force)
          $artifactUrl = Get-BcArtifactUrl -country w1 -type onprem -select Latest -version 14.44
          $imageName = 'dbc/onprem:14.44.49619.0-w1'

          $imageParams = @{
              artifactUrl               = $artifactUrl
              imageName                 = $imageName
              multitenant               = $false
              skipIfImageAlreadyExists  = $true
          }
          $imageName = New-BcImage @imageParams

          New-BCContainer -containerName $containerName `
                          -accept_eula `
                          -Auth $auth `
                          -artifactUrl $artifactUrl `
                          -Credential $credential `
                          -updateHosts `
                          -locale da-DK `
                          -alwaysPull `
                          -imageName $imageName

          $Tenant = Get-BCContainerTenants -containerName $containerName
          $config = Get-BcContainerServerConfiguration -ContainerName $containerName
          Invoke-ScriptInBcContainer -containerName $containerName -scriptblock {
              param( $Tenant, $Config )

              Write-Host "Running $($PSVersionTable.PSVersion)"

              $null = Get-NAVServerInstance -ServerInstance $ServerInstance | Set-NavServerInstance -Stop -Force -Verbose
              Copy-NavDatabase -SourceDatabaseName $config.databaseName -DestinationDatabaseName 'tenant'
              Write-Host "Removing database $config.databaseName"
              Remove-NavDatabase -DatabaseName $config.databaseName
              try {
                  Invoke-Sqlcmd -serverinstance "$($config.DatabaseServer)\$($config.DatabaseInstance)" -Database 'tenant' -query 'CREATE USER "NT AUTHORITY\SYSTEM" FOR LOGIN "NT AUTHORITY\SYSTEM";'
              } catch { }
              $null = Export-NAVApplication -DatabaseServer $config.DatabaseServer -DatabaseInstance $config.DatabaseInstance -DatabaseName 'tenant' -DestinationDatabaseName $config.databaseName -Force -ServiceAccount 'NT AUTHORITY\SYSTEM'
              $null = Remove-NAVApplication -DatabaseServer $config.DatabaseServer -DatabaseInstance $config.DatabaseInstance -DatabaseName 'tenant' -Force
          } -argumentList $Tenant, $Config
          Remove-BCContainer -containerName $containerName

        displayName: Test standard build for V14
        errorActionPreference: stop

The log for this task:
2024-05-03T11:30:51.9114880Z BcContainerHelper version 6.0.17
2024-05-03T11:30:52.2397403Z BC.HelperFunctions emits usage statistics telemetry to Microsoft
2024-05-03T11:30:52.4210829Z Running on Windows, PowerShell 5.1.17763.5696
2024-05-03T11:30:58.2025885Z Fetching all docker images
2024-05-03T11:30:58.2844758Z Building image dbc/onprem:14.44.49619.0-w1 based on mcr.microsoft.com/businesscentral:ltsc2019 with https://bcartifacts-exdbf9fwegejdqak.b02.azurefd.net/onprem/14.44.49619.0/w1
2024-05-03T11:30:58.2872655Z Pulling latest image mcr.microsoft.com/businesscentral:ltsc2019
2024-05-03T11:30:58.7280912Z ltsc2019: Pulling from businesscentral
2024-05-03T11:30:58.7310453Z Digest: sha256:b25e1506c6b5feb87d37ba07147453f95d74cebb1292d2b514c62173c9bc7130
2024-05-03T11:30:58.8274702Z Generic Tag: <IP_ADDRESS>
2024-05-03T11:30:58.8986840Z Container OS Version: 10.0.17763.5696 (ltsc2019)
2024-05-03T11:30:58.9003213Z Host OS Version: 10.0.17763.5696 (ltsc2019)
2024-05-03T11:30:58.9084379Z Using process isolation
2024-05-03T11:30:58.9239230Z Files in c:\bcartifacts.cache\xvp2f425.540\my:
2024-05-03T11:30:58.9326625Z Copying Platform Artifacts
2024-05-03T11:30:58.9436934Z c:\bcartifacts.cache\onprem\14.44.49619.0\platform
2024-05-03T11:31:13.3465111Z Copying Database
2024-05-03T11:31:18.8647613Z Copying Licensefile
2024-05-03T11:31:18.9641704Z c:\bcartifacts.cache\xvp2f425.540
2024-05-03T11:31:32.6978185Z Sending build context to Docker daemon  1.175GB
2024-05-03T11:31:32.6991337Z
2024-05-03T11:31:32.8477757Z Step 1/6 : FROM mcr.microsoft.com/businesscentral:ltsc2019
2024-05-03T11:31:32.8536538Z  ---> aa1f513a4b46
2024-05-03T11:31:32.8558361Z Step 2/6 : ENV DatabaseServer=localhost DatabaseInstance=SQLEXPRESS DatabaseName=CRONUS IsBcSandbox=N artifactUrl=https://bcartifacts-exdbf9fwegejdqak.b02.azurefd.net/onprem/14.44.49619.0/w1 filesOnly=False
2024-05-03T11:31:32.9098225Z  ---> Running in c4653d9cd6e3
2024-05-03T11:31:33.8193568Z  ---> Removed intermediate container c4653d9cd6e3
2024-05-03T11:31:33.8212968Z  ---> 776c1ed1540d
2024-05-03T11:31:33.8233512Z Step 3/6 : COPY my /run/
2024-05-03T11:31:34.4989611Z  ---> 33b9eae825f4
2024-05-03T11:31:34.5012344Z Step 4/6 : COPY NAVDVD /NAVDVD/
2024-05-03T11:32:09.4464600Z  ---> 9a196e4385f7
2024-05-03T11:32:09.4482174Z Step 5/6 : RUN \Run\start.ps1 -installOnly
2024-05-03T11:32:09.5040376Z  ---> Running in 1df34ffbb37f
2024-05-03T11:32:34.8602074Z c:\run\my folder doesn't exist, creating it
2024-05-03T11:32:35.5036040Z Using DVD installer from C:\Run\130
2024-05-03T11:32:35.9240042Z Installing Business Central: InstallOnly=True
2024-05-03T11:32:35.9574686Z Installing Url Rewrite
2024-05-03T11:32:40.0691450Z Installing OpenXML
2024-05-03T11:32:43.2000079Z Installing DotNetCore
2024-05-03T11:33:02.4477340Z Starting Local SQL Server
2024-05-03T11:33:07.7456620Z Starting Internet Information Server
2024-05-03T11:33:08.1659046Z Copying Service Tier Files
2024-05-03T11:33:10.0152613Z Copying Web Client Files
2024-05-03T11:33:13.4992232Z Copying Windows Client Files
2024-05-03T11:33:15.3899048Z Copying PowerShell Scripts
2024-05-03T11:33:15.4982770Z Copying ConfigurationPackages
2024-05-03T11:33:15.5185404Z Copying Test Assemblies
2024-05-03T11:33:15.5327840Z Copying TestToolKit
2024-05-03T11:33:15.6482905Z Copying UpgradeToolKit
2024-05-03T11:33:15.6675668Z Copying Extensions
2024-05-03T11:33:15.7299693Z Copying ClientUserSettings
2024-05-03T11:33:15.8726224Z Copying ReportBuilder
2024-05-03T11:33:43.5643989Z Restoring CRONUS Demo Database
2024-05-03T11:33:43.5846705Z Restoring CRONUS Demo Database
2024-05-03T11:33:46.3796075Z Modifying Business Central Service Tier Config File for Docker
2024-05-03T11:33:46.4091141Z Creating Business Central Service Tier
2024-05-03T11:33:46.5043478Z Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
2024-05-03T11:33:46.9025669Z Starting Business Central Service Tier
2024-05-03T11:34:24.6805997Z Importing CRONUS license file
2024-05-03T11:34:25.3373181Z Generating Symbol Reference
2024-05-03T11:40:01.4863843Z Stopping Business Central Service Tier
2024-05-03T11:40:01.7623131Z Installation took 446 seconds
2024-05-03T11:40:01.7648435Z Installation complete
2024-05-03T11:41:52.9194820Z  ---> Removed intermediate container 1df34ffbb37f
2024-05-03T11:41:52.9213608Z  ---> dcb19f8e5818
2024-05-03T11:41:52.9232082Z Step 6/6 : LABEL legal="http://go.microsoft.com/fwlink/?LinkId=837447"       created="202405031131"       nav=""       cu=""       country="w1"       version="14.44.49619.0"       platform="14.0.49616.0"
2024-05-03T11:41:52.9758526Z  ---> Running in 661c355b29f5
2024-05-03T11:41:53.5434411Z  ---> Removed intermediate container 661c355b29f5
2024-05-03T11:41:53.5452503Z  ---> 386060b050d2
2024-05-03T11:41:55.1432977Z Successfully built 386060b050d2
2024-05-03T11:41:55.1503758Z Successfully tagged dbc/onprem:14.44.49619.0-w1
2024-05-03T11:41:55.1635674Z Building image took 657 seconds
2024-05-03T11:41:58.0649687Z BcContainerHelper is version 6.0.17
2024-05-03T11:41:58.0663154Z BcContainerHelper is running as administrator
2024-05-03T11:41:59.5595990Z HyperV is Disabled
2024-05-03T11:41:59.5626838Z Host is Microsoft Windows Server 2019 Datacenter - 10.0.17763.5696
2024-05-03T11:41:59.5658866Z UsePsSession is True
2024-05-03T11:41:59.5689831Z UsePwshForBc24 is True
2024-05-03T11:41:59.5703391Z UseWinRmSession is allow
2024-05-03T11:41:59.5734965Z UseSslForWinRmSession is True
2024-05-03T11:41:59.7431198Z Docker Client Version is 26.1.1
2024-05-03T11:41:59.7449058Z Docker Server Version is 26.1.1
2024-05-03T11:42:00.0488538Z Removing Session bc14
2024-05-03T11:42:00.1326735Z Removing container bc14
2024-05-03T11:42:01.8094970Z Removing entries from hosts
2024-05-03T11:42:01.8377590Z Removing bc14 from container hosts file
2024-05-03T11:42:01.9490206Z Removing bc14-* from container hosts file
2024-05-03T11:42:01.9555920Z Removing Desktop shortcuts
2024-05-03T11:42:02.0201968Z Removing C:\ProgramData\BcContainerHelper\Extensions\bc14
2024-05-03T11:42:02.4745515Z Fetching all docker images
2024-05-03T11:42:02.5680939Z Fetching all docker volumes
2024-05-03T11:42:02.6332381Z ArtifactUrl and ImageName specified
2024-05-03T11:42:03.1526496Z Image dbc/onprem:14.44.49619.0-w1 already exists
2024-05-03T11:42:03.7911130Z Using image dbc/onprem:14.44.49619.0-w1
2024-05-03T11:42:03.8696947Z Creating Container bc14
2024-05-03T11:42:03.8741764Z Style: onprem
2024-05-03T11:42:03.8757578Z Multitenant: No
2024-05-03T11:42:03.8771519Z Version: 14.44.49619.0
2024-05-03T11:42:03.8800338Z Platform: 14.0.49616.0
2024-05-03T11:42:03.8822240Z Generic Tag: <IP_ADDRESS>
2024-05-03T11:42:03.8863147Z Container OS Version: 10.0.17763.5696 (ltsc2019)
2024-05-03T11:42:03.8891114Z Host OS Version: 10.0.17763.5696 (ltsc2019)
2024-05-03T11:42:03.8992493Z Using process isolation
2024-05-03T11:42:03.9010747Z Using locale da-DK
2024-05-03T11:42:03.9074533Z Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
2024-05-03T11:42:03.9784045Z Additional Parameters:
2024-05-03T11:42:03.9808198Z --expose 5986
2024-05-03T11:42:03.9820367Z Files in C:\ProgramData\BcContainerHelper\Extensions\bc14\my:
2024-05-03T11:42:03.9877873Z - AdditionalOutput.ps1
2024-05-03T11:42:03.9897088Z - AdditionalSetup.ps1
2024-05-03T11:42:03.9911478Z - HelperFunctions.ps1
2024-05-03T11:42:03.9925615Z - MainLoop.ps1
2024-05-03T11:42:03.9942165Z - SetupVariables.ps1
2024-05-03T11:42:03.9956906Z - updatehosts.ps1
2024-05-03T11:42:03.9974420Z Creating container bc14 from image dbc/onprem:14.44.49619.0-w1
2024-05-03T11:42:04.1266888Z 15819e7e0f186951dbc33eb8349ef009dc03663a485aaee0261d956deb392505
2024-05-03T11:42:06.2141001Z Waiting for container bc14 to be ready
2024-05-03T11:42:28.9610329Z Initializing...
2024-05-03T11:42:28.9610780Z Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2024-05-03T11:42:28.9611032Z Starting Container
2024-05-03T11:42:28.9611246Z Hostname is bc14
2024-05-03T11:42:30.0475504Z PublicDnsName is bc14
2024-05-03T11:42:30.0476057Z Using NavUserPassword Authentication
2024-05-03T11:42:32.2154877Z Starting Local SQL Server
2024-05-03T11:42:32.2155641Z Starting Internet Information Server
2024-05-03T11:42:33.2923373Z Creating Self Signed Certificate
2024-05-03T11:42:33.2927169Z Self Signed Certificate Thumbprint 785DC3C6C4C0E89C81D6450C2B8D9F774A8AD5CA
2024-05-03T11:42:33.2927442Z DNS identity bc14
2024-05-03T11:42:33.2927644Z Modifying Service Tier Config File with Instance Specific Settings
2024-05-03T11:43:16.9670310Z Starting Service Tier
2024-05-03T11:43:16.9671648Z Registering event sources
2024-05-03T11:43:16.9672144Z Creating DotNetCore Web Server Instance
2024-05-03T11:43:16.9672567Z Using application pool name: NAV
2024-05-03T11:43:18.0844655Z Using default container name: NavWebApplicationContainer
2024-05-03T11:43:20.8468907Z Copy files to WWW root C:\inetpub\wwwroot\NAV
2024-05-03T11:43:21.9305080Z Create the application pool NAV
2024-05-03T11:43:24.3172682Z Create website: NavWebApplicationContainer without SSL
2024-05-03T11:43:24.3173315Z Update configuration: navsettings.json
2024-05-03T11:43:25.4036573Z Done Configuring Web Client
2024-05-03T11:43:25.4037228Z Creating http download site
2024-05-03T11:43:27.2491398Z Setting SA Password and enabling SA
2024-05-03T11:43:28.3157187Z Creating Admin as SQL User and add to sysadmin
2024-05-03T11:43:29.5952402Z Creating SUPER user
2024-05-03T11:43:49.5706303Z Enable PSRemoting and setup user for winrm
2024-05-03T11:44:16.2695544Z WARNING: Waiting for service 'Windows Remote Management (WS-Management) (winrm)' to stop...
2024-05-03T11:44:17.3527118Z Creating self-signed certificate for winrm
2024-05-03T11:44:17.3527727Z Container IP Address: <IP_ADDRESS>
2024-05-03T11:44:17.3528092Z Container Hostname  : bc14
2024-05-03T11:44:17.3528309Z Container Dns Name  : bc14
2024-05-03T11:44:17.3528528Z Web Client          : http://bc14/NAV/
2024-05-03T11:44:17.3528751Z Dev. Server         : http://bc14
2024-05-03T11:44:17.3528962Z Dev. ServerInstance : NAV
2024-05-03T11:44:17.3529206Z Setting bc14 to <IP_ADDRESS> in host hosts file
2024-05-03T11:44:17.3529331Z
2024-05-03T11:44:17.3529501Z Files:
2024-05-03T11:44:17.3530263Z http://bc14:8080/ALLanguage.vsix
2024-05-03T11:44:17.3530468Z
2024-05-03T11:44:17.3530699Z Container Total Physical Memory is 32.0Gb
2024-05-03T11:44:17.3531300Z Container Free Physical Memory is 25.9Gb
2024-05-03T11:44:17.3531467Z
2024-05-03T11:44:17.3531712Z Initialization took 110 seconds
2024-05-03T11:44:17.3539358Z Ready for connections!
2024-05-03T11:44:20.7916951Z Reading CustomSettings.config from bc14
2024-05-03T11:44:21.3641948Z Creating Desktop Shortcuts for bc14
2024-05-03T11:44:21.5459327Z Container bc14 successfully created
2024-05-03T11:44:21.7688011Z
2024-05-03T11:44:21.7700253Z Use:
2024-05-03T11:44:21.7727181Z Get-BcContainerEventLog -containerName bc14 to retrieve a snapshot of the event log from the container
2024-05-03T11:44:21.7754846Z Get-BcContainerDebugInfo -containerName bc14 to get debug information about the container
2024-05-03T11:44:21.7786477Z Enter-BcContainer -containerName bc14 to open a PowerShell prompt inside the container
2024-05-03T11:44:21.7818323Z Remove-BcContainer -containerName bc14 to remove the container again
2024-05-03T11:44:21.7850471Z docker logs bc14 to retrieve information about URL's again
2024-05-03T11:44:24.2192997Z Running 5.1.17763.5696
2024-05-03T11:44:24.2221268Z VERBOSE: Performing the operation "Set-NAVServerInstance" on target "ServerInstance = MicrosoftDynamicsNavServer$NAV,
2024-05-03T11:44:24.2223085Z Start = False, Stop = True, Restart = False".
2024-05-03T11:44:24.2234515Z VERBOSE: Attempting to stop service MicrosoftDynamicsNavServer$NAV
2024-05-03T11:44:27.2673347Z VERBOSE: Service MicrosoftDynamicsNavServer$NAV is stopped
2024-05-03T11:44:27.2678095Z Copying Database on localhost\SQLEXPRESS from CRONUS to tenant
2024-05-03T11:44:28.0680969Z Taking database CRONUS offline
2024-05-03T11:44:28.0688032Z Copying database files
2024-05-03T11:44:28.7618737Z Attaching files as new Database tenant
2024-05-03T11:44:29.6471526Z Putting database CRONUS back online
2024-05-03T11:44:29.6522298Z Removing Database CRONUS from localhost\SQLEXPRESS
2024-05-03T11:44:29.6702929Z Could not load file or assembly 'Microsoft.SqlServer.Smo, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
2024-05-03T11:44:29.6711100Z
2024-05-03T11:44:29.6724491Z Exception Script Stack Trace:
2024-05-03T11:44:29.6750926Z at , : line 13
2024-05-03T11:44:29.6758844Z
2024-05-03T11:44:29.6770762Z PowerShell Call Stack:
2024-05-03T11:44:29.6790004Z at Invoke-ScriptInBcContainer, C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.17\ContainerHandling\Invoke-ScriptInNavContainer.ps1: line 71
2024-05-03T11:44:29.6800017Z at , C:\a_temp\7e4b0f19-c7fc-48c7-816c-a0bd3644b8cf.ps1: line 30
2024-05-03T11:44:29.6813614Z at , : line 1
2024-05-03T11:44:30.4369952Z
2024-05-03T11:44:30.4405292Z Container Free Physical Memory: 27.8Gb
2024-05-03T11:44:30.4405655Z
2024-05-03T11:44:30.4406054Z Services in container bc14:
2024-05-03T11:44:30.4406483Z - MicrosoftDynamicsNavServer$NAV is Stopped
2024-05-03T11:44:30.4406955Z - MSSQL$SQLEXPRESS is Running
2024-05-03T11:44:30.4407104Z
2024-05-03T11:44:30.5733720Z Could not load file or assembly 'Microsoft.SqlServer.Smo, Version=<IP_ADDRESS>, Culture=neutral,
2024-05-03T11:44:30.5734506Z PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
2024-05-03T11:44:30.5734790Z At C:\Program
2024-05-03T11:44:30.5735151Z Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.17\ContainerHandling\Invoke-ScriptInNavContainer.ps1:112 char:13
2024-05-03T11:44:30.5735517Z +             throw $errorMessage
2024-05-03T11:44:30.5736498Z +             ~~~~~~~~~~~~~~~~~~~
2024-05-03T11:44:30.5736992Z     + CategoryInfo          : OperationStopped: (Could not load ...file specified.:String) [], RuntimeException
2024-05-03T11:44:30.5738175Z     + FullyQualifiedErrorId : Could not load file or assembly 'Microsoft.SqlServer.Smo, Version=<IP_ADDRESS>, Culture=neut
2024-05-03T11:44:30.5738831Z    ral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
2024-05-03T11:44:30.5739334Z
I'm in the process of running the same test for V23 and V24, and will post the result when I get home.

The same tests with v23 and v24, did not give any errors.
Which is strange, as I also had the "'Microsoft.SqlServer.Smo, Version=<IP_ADDRESS>" error with v23 a few days ago.

Did you try to remove the invoke-sqlcmd - and test again?
Also - did you try without creating the image?
BTW - I found that in BC 24 - the Database operations doesn't work well under PowerShell 7 and as such, I had to add
-usePsSession $false -usePwsh $false to these (maybe related)

Tried the script and it looks like Export-NAVApplication in BC14 has a dependency on the smo thingy - not sure which versions has a dependency like this.
I also cannot guarantee that all scripts being executed inside a container will work at all times going forward - there will be changes to the container images causing things to break.


Remove Progress.is_learner

Remove the is_learner value from Progress.
Rationale
In the process of Joint Consensus (#101) we will have two different Configuration sets during some points in operation.
In #108 we made Progress a single set (instead of having separate sets for voters and learners). Progress still held an is_learner value, which meant we had two ways to determine if a node was a learner (via the ProgressSet.has_learner() and Progress.is_learner). This is not necessary.
We can use ProgressSet.has_learner(id) and ProgressSet.has_voter(id) exclusively.
Benefits
Doing this helps minimize complexity, and reduces places we keep track of voter status.
Future Work
In the future we may be in a joint consensus state, meaning that the Progress.is_learner value could be incorrect (If you promoted a learner, then the old configuration still has it has a non-voter).
This internalizes the concept of the is_learner() so we can minimize possible bug surface.

@BusyJay PTAL again when you have a chance. :)

LGTM.

@BusyJay Can you take another look?

PTAL @BusyJay .

@BusyJay Please take a look again, the test name is fixed.

@siddontang Resolved, PTAL. I think it's ready for merge.


The data.tar.gz file is corrupted

I was trying to execute your program. So I had to unzip the compressed data file but when i tried to uncompress it it gave the following error
Extracting through terminal

Extraction through GUI

So i assume the data.tar.gz file is prolly corrupted.
If you could reupload a proper file, I'd be helpful :)
Or else you could also put up the data folder in google drive or a bucket and share the link.

Thank you very much for your warning. The new data.tar.gz has been pushed with the new release. :)

Hey, the data.tar.gz is still corrupted

Please make sure that git-lfs is installed on your local. If you directly download the repo as a zip file then data.tar.gz cannot be extracted. After installing git-lfs, please clone the repo with git clone https://github.com/datarootsio/face-mask-detection.git command.


[UI] Add coach marks for the first load of the map

When a user visits the map the first time, display coach marks with some information to help the user understand how to navigate terrastories.

Bonus points for finding a descriptive icon instead of using "Scroll to Zoom" words.

closing for now; moving to google doc


Replace topbar dropdown menus working with JS by <details>

First, there should be no UI changes. I replaced the dropdown menus in the topbar with <details> instead which work nicely with keyboard events and don't require JS, hence why the JS reduced drastically. Another big advantage is that it'll be possible to collapse/expand menus even without JS (the position of the dropdown will be a bit less good but that's the only downside).
There is one notable change though: in the current version of my changes, the ESCAPE and arrow keys don't work anymore. To expand/collapse a menu entry, you'll need to click on it or press ENTER/SPACE when it's focused.
With these changes, the JS is only here to prevent having two menus expanded at the same time and to still have the dropdown menu position working smoothly.
cc @Nemo157 @jsha

Updated the selectors in the tests too. Ready for review now! :)

Good point. I'll put this behaviour back.

The handling of the escape key to close the menu has been put back.

@Nemo157 @jsha one of you has time for a review?
I could only check everything except the JS, so mostly testing it if you don't have any time

Some first manual test results
the line between these dropdowns is missing:

old behavior is that after opening the dropdown I can click anywhere else and the menu closes. right now it doesn't close any more.
odd thing: after page refresh when I click on the menu the first time, it is shown on the far left for a very short time, and then moves to the correct location.
which would be the keyboard events that work in the menu? on a page with release-lists, arrow up & down don't work when the menu is open, and only lead to records being selected. I assume something around the key handling priority?
tab-handling is also different (though I'm not sure if people even use this). Old behaviour on the homepage: with open menu I could use tab to switch between the search-field & the menu. Now not any more.

I think it used to be the case that on mobile, clicking the crate dropdown would take you to the crate page, which has all the same functionality. I tested now and it doesn't - the whole menu opens, even on mobile. Does anyone remember changing that, intentionally or unintentionally? The current behavior is not great, because the menu won't fit well on all mobile screens, and doesn't make efficient use of space.
At any rate, my vote is that we figure out why that's not happening on mobile and fix it, and also make that the behavior on no-JS browsers. Maintaining a whole interactive menu functionality that is supposed to work well both with and without JavaScript sounds like a high maintenance burden, particularly when we have a whole other page (the crate page) that we maintain for the express purpose of using it when the menu system is not available.


Two commits and git tag mismatch

Hi @pforret, for repos with a package.json and a composer.json, two commits are created when using setver new major/minor/patch. The first one bumps the package.json and package-lock.json files, the second one the composer.json file. However only the first commit is tagged with the bumped version.

hi @pecuchet ,
I fixed it in version 2.2!
Peter

hi @pforret, thanks for that! However it now seems that setver does not commit the changes to package-lock.json:
❯ setver check
√  setver check versions:
√ Version in        git tag: 0.5.1
√ Version in  composer.json: 0.5.1
√ Version in   package.json: 0.5.1
√ Version in   .env.example: 0.5.1

❯ git diff package-lock.json
diff --git a/package-lock.json b/package-lock.json
index bead439..8c2b435 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
-    "version": "0.5.0",
+    "version": "0.5.1",

I don't think the version needs to be in the lock file btw....

I don't think the version needs to be in the lock file btw....

It's npm that does this automatically. I've added package-lock.json to the git commit!


[BEAM-11129] Add namespace and key to portable display data

Add key and namespace to display data proto to match legacy

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Java PreCommit

Run Java_Examples_Dataflow PreCommit

R: @angoenka, @kennknowles

R: @robertwb

Run Java_Examples_Dataflow PreCommit


VS Code Freezes When Rendering Markdown

VSCode Version: 1.40.2
OS Version: Mac OS 10.14.6 (Mojave)

Steps to Reproduce:

Open VS Code
Open Markdown file
Preview Markdown file
VS Code freezes and I have to force quit

Does this issue occur when all extensions are disabled?: Yes
VS Code Insiders: Still occurs
Other Notes:
This also happens after installing a plug-in, when the plug-in informational page tries to come up.  Because of this I can’t ever install any plugins because they always render a page after first being installed.
Additionally, my company does block the ability for VS Code to perform an update.  Is there anyway for me to tell if this behavior is due to a security policy on my computer?

Update on this.  I was right that some type of firewall rule was causing the issue.  I do think this needs addressed though, the error doesn’t seem handled and is crashing the IDE

I was able to get someone else to reproduce this issue in my organization, so it seems like maybe my company is blocking some type of network request.  Is there anyway for me to find out what is being blocked?

Can you please try looking in the dev tools to see if there are any errors:

In VS Code, run the Developer: Toggle developer tools command
Then reproduce the issue
See if there are any logs in the developer console

When starting up VSCode, I get the following error in the console (doesn't seem to be related):
ERR No application in the Launch Services database matches the input criteria.   workbench.desktop.main.js
When reproducing the error, I do not get any console errors (it is frozen).  The network requests tab shows the last request was to an image: "preview-dark.svg."  I can't see if my corporate proxy blocked anything since the tool is frozen.

@tgrux this is most likely a renderer crash, can you follow the steps outlined to get a stacktrace ?
// from terminal
$ export ELECTRON_ENABLE_LOGGING=1
// launch vscode with following
$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron path-to-your-test-folder --renderer-startup-dialog

The above will print logs like the following in the terminal once vscode is started and the code will be blank. This is expected, as we are now pausing the renderer process from starting so we can attach a debugger to it.
[68163:1208/215533.967533:ERROR:content_switches_internal.cc(110)] Renderer (68163) paused waiting for debugger to attach. Send SIGUSR1 to unpause.

The number within () is the process id, now attach lldb to it
// Again from a new terminal tab
$ lldb /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
// Once lldb attaches, run the following in its prompt
$ process attach --pid 68163 // Use the process id from previous terminal output
$ continue // will resume the process

Now repeat the lldb steps for all the processes that are launched for your session of vscode. Once the freeze happens, one of the lldb sessions will indicate a crash, use bt command and get the stacktrace and attach it here.

Sorry for the delay.  I’ve tried this a few times and not been able to get any data from the lldb process attachments.  I was able to capture the following errors.  When I reproduce the actual bug where the renderer freezes, I didn’t see any errors logged (I had 4 processes attached).  There two process that started right before the freeze happened, that I couldn’t attach to quick enough, after attaching I couldn’t produce any more errors because the app was frozen.
Here is what I saw:

thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fff757cc7de libsystem_kernel.dylib__sigsuspend + 10 libsystem_kernel.dylib__sigsuspend:
->  0x7fff757cc7de <+10>: jae    0x7fff757cc7e8            ; <+20>
0x7fff757cc7e0 <+12>: movq   %rax, %rdi
0x7fff757cc7e3 <+15>: jmp    0x7fff757ae421            ; cerror
0x7fff757cc7e8 <+20>: retq
Target 0: (Code Helper (Renderer)) stopped.

warning: Executable module changed from "/Applications/Visual Studio Code.app/Contents/MacOS/Electron" to "/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)".
[17557:1211/091113.628890:INFO:CONSOLE(9)] "Uncaught (in promise) Canceled: Canceled", source: file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js (9)
[18157:1211/092430.371012:INFO:CONSOLE(250)] "%c[Extension Host] %c[redhat.java] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '[java]', provide the URI of a resource or 'null' for any resource.", source: file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js (250)

Thanks @tgrux. Can you also try one more thing:

In your VS Code settings json file, add "webview.experimental.useExternalEndpoint": true
Then try reproducing the issue

This undocumented setting will switch VS Code from using webview to using iframes to render markdown content. It will help us track down what is triggering this


BitmapFont draws out of bounds when first character has negative xoffset

Since libGDX version 1.7.2, BitmapFont draws out of bounds when the first character has a negative xoffset. Version 1.7.1 does not show this issue.
Here is an example app showing a Label with a red background:

public class TestGame extends ApplicationAdapter {
    private Stage stage;
    private BitmapFont font;

    @Override
    public void create() {
        font = new BitmapFont(Gdx.files.internal("Chewy_80.fnt"));
        font.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

        Pixmap pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
        pixmap.setColor(Color.RED);
        pixmap.fill();
        Texture texture = new Texture(pixmap);
        pixmap.dispose();

        LabelStyle style = new LabelStyle(font, Color.WHITE);
        style.background = new TextureRegionDrawable(new TextureRegion(texture));

        Label label = new Label("Test", style);
        label.setPosition(32, 32);

        stage = new Stage(new FitViewport(200, 200));
        stage.addActor(label);
    }

    @Override
    public void resize(int width, int height) {
        stage.getViewport().update(width, height, true);
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act();
        stage.draw();
    }

    @Override
    public void dispose() {
        stage.dispose();
        font.dispose();
    }
}

I also included the bitmap font used for this test: Chewy_bitmap.zip
I'm not sure whether this is related to issue #3472, but if it is, this still seemed to be worth a separate bug report.
[EDIT] Updated after finding out which libGDX version exactly changed this.
[EDIT2] Simplified example code a bit.

Glyph run bounds in the latest code look correct:

In the repro code it seems it's 1px out of bounds, maybe some rounding or filtering? Not sure it's a problem.


statement cancel method has not been implemented.

I have a scenario where I can cancel the query at any time ,such as I write a wrong sql on terminal, I can press CTRL+C

there is an imperfect workaround:
additionalRequestParams.put("query_id", "123456");
((ClickHouseStatement) statment).executeQuery(executeSql, null,null, additionalRequestParams);
then kill above query:
statement.execute("KILL QUERY where query_id = '123456'");
but there is a problem when using a virtual ip to route requests to different ck nodes.
we can't kill a query which runs on a different node with kill command.


github package releases possible?

I currently use wowup for addon management and updates. If provided in a specific way, wowup can use github releases, which is my preferred method of installing.
Would it be possible to get that for this addon?
An example would be how BetterBags packages their releases, I think they just use a github action.
Thanks for your time! :)

I'll look into it, but no promises.

I think this is the action the people over at BetterBags use for that: https://github.com/marketplace/actions/wow-packager
I've got no experience with Addon development and how that interfaces with curse etc, but I do have some basic experience with github actions if there's a problem on that end.

Curse has its own automated packaging.
https://support.curseforge.com/en/support/solutions/articles/9000197281-automatic-packaging
I've been meaning to implement that but I've been busy with pre-patch changes, recent updates/new features that went into CM, and my irl work tasks.
TWW is dropping in a few days so I'll be busy enjoying that for a bit. I'll eventually get to it and implement some long overdue CI/CD to this project, but it's not a priority so it won't be right now, I'm afraid.


Add title + etymology to readme

FYI @tharvik , so the c4dt can stop saying it wrong :p

haa, thanks for the info (I personally pushed for the K-lint, as in "linter for the kernel", which turn out wrong) :)


Add Linux ARM build

We are not currently building an ARM version for linux.

Manual build from master @ v0.5
hookdeck_0.5_linux_arm.zip

hookdeck_0.5_linux_arm.tar.gz


inline calls to key_index into methods which operate on keys

I am not sure if someone needs to call key_index so maybe this should still remain pub but I could not see an obvious reason (and also not specific reason for the casts but don't have a strong opinion about it either).
closes #415

This entire MR is incorrect. For one, the keys_down array is 512 long, whereas the key_map is only 22 long. Forcing the key_conversion index means you can't actually use any of the key_down parts of the code anymore. I don't know why such a fundamental thing slipped through...

This entire MR is incorrect. For one, the keys_down array is 512 long, whereas the key_map is only 22 long. Forcing the key_conversion index means you can't actually use any of the key_down parts of the code anymore.

I think it's fair to state that this probably inadvertently harmed some use cases (use cases where keys that imgui doesn't use are). You should still be able to access it via io, e.g. ui.io().key_map[N].
That said, it's probably worth adding back functions to call the ImGUI functions without going through the key map.


Explicit type signatures fail to parse

E.g.,
> parseQueryExpr defaultParseFlags "" Nothing "select 'a' :: text"
Left (line 1, column 12):
unexpected (("",1,12),Symbol ":")
expecting operator or end of input
cannot make functioncall from StringLit (Annotation {anSrc = Just ("",1,8), anType = Nothing, anErrs = [], anImplicitCast = Nothing, anCatUpd = []}) "a"
:1:12:

Context:
select 'a' :: text
           ^
      ERROR HERE

Does it work if you use the postgresDialect in the parse flags? The default dialect is ANSI which doesn't support this syntax for casts. The dialect support is a bit flakey at the moment.

Already moved on to another solution. Sorry


[SPARK-44897][SQL] Propagating local properties to subquery broadcast exec

What changes were proposed in this pull request?
https://issues.apache.org/jira/browse/SPARK-32748 previously proposed propagating these local properties to the subquery broadcast exec threads but was then reverted since it was said that local properties would already be propagated to the broadcast threads.
I believe this is not always true. In the scenario where a separate BroadcastExchangeExec is the first to compute the broadcast, this is fine. However, in the scenario where the SubqueryBroadcastExec is the first to compute the broadcast, then the local properties that are propagated to the broadcast threads would not have been propagated correctly. This is because the local properties from the subquery broadcast exec were not propagated to its Future thread.
It is difficult to write a unit test that reproduces this behavior because usually BroadcastExchangeExec is the first computing the broadcast variable. However, by adding a Thread.sleep(10) to SubqueryBroadcastExec.doPrepare after relationFuture is initialized, the added test will consistently fail.

Why are the changes needed?
Local properties are not propagated correctly to SubqueryBroadcastExec

Does this PR introduce any user-facing change?
No

How was this patch tested?
Following test can reproduce the bug and test the solution by adding sleep to SubqueryBroadcastExec.doPrepare
protected override def doPrepare(): Unit = {
    relationFuture
    Thread.sleep(10)
}

    withSQLConf(StaticSQLConf.BROADCAST_EXCHANGE_MAX_THREAD_THRESHOLD.key -> "1") {
      withTable("a", "b") {
        val confKey = "spark.sql.y"
        val confValue1 = UUID.randomUUID().toString()
        val confValue2 = UUID.randomUUID().toString()
        Seq((confValue1, "1")).toDF("key", "value")
          .write
          .format("parquet")
          .partitionBy("key")
          .mode("overwrite")
          .saveAsTable("a")
        val df1 = spark.table("a")

        def generateBroadcastDataFrame(confKey: String, confValue: String): Dataset[String] = {
          val df = spark.range(1).mapPartitions { _ =>
            Iterator(TaskContext.get.getLocalProperty(confKey))
          }.filter($"value".contains(confValue)).as("c")
          df.hint("broadcast")
        }

        // set local property and assert
        val df2 = generateBroadcastDataFrame(confKey, confValue1)
        spark.sparkContext.setLocalProperty(confKey, confValue1)
        val checkDF = df1.join(df2).where($"a.key" === $"c.value").select($"a.key", $"c.value")
        val checks = checkDF.collect()
        assert(checks.forall(_.toSeq == Seq(confValue1, confValue1)))

        // change local property and re-assert
        Seq((confValue2, "1")).toDF("key", "value")
          .write
          .format("parquet")
          .partitionBy("key")
          .mode("overwrite")
          .saveAsTable("b")
        val df3 = spark.table("b")
        val df4 = generateBroadcastDataFrame(confKey, confValue2)
        spark.sparkContext.setLocalProperty(confKey, confValue2)
        val checks2DF = df3.join(df4).where($"b.key" === $"c.value").select($"b.key", $"c.value")
        val checks2 = checks2DF.collect()
        assert(checks2.forall(_.toSeq == Seq(confValue2, confValue2)))
        assert(checks2.nonEmpty)
      }
    }
  }

Was this patch authored or co-authored using generative AI tooling?
No

thanks, merging to master/3.5!


Clarify uninitialized values with examples

The spec talks about uninitialized values in section 8.22, but given the amount of information, this section is very hard to follow and easy to misinterpret. I think adding more examples will clarify "a consistent value [does not have to be] returned across multiple such [reads]" of any uninitialized value, and will clarify what a "read" actually means.
Example 1:
bit<8> x;
bit<8> y = x+1;
bool r = (y==y);

The “read” of the uninitialized variable x occurs inside the expression evaluation x+1, taking an unspecified 8-bit value for the subexpression x. The value of x+1 initializes y deterministically, so the following two reads of y gives the same value, leading to r = true.
Example 2:
bit<8> x;
bool r = (x==x);

The “read” of the uninitialized variable x occurs twice inside the expression evaluation x == x, each possibly resulting in a different value, sor can be either true or false.
Example 3:
void f(in bit<8> x, out bool y) {
   y = (x==x);
}
void g(...) {
  bit<8> a;
  bool b;
  f(a,b);
}

Copy-in of an uninitialized variable to an in parameter of a function counts as a "read", resulting in a deterministic unspecified value of x in the function f. Therefore, y = true.
Example 4:
void f(out bit<8> x) {
  bool r1 = (x == x);
}
void g(...) {
  bit<8> a = 1;
  f(a);
  bool r2 = (a==a);
}

Since x is an uninitialized out parameter inside the function f, r1 can be either true or false. After executing f, copy-out of uninitialized variables does not* count as a read, so a becomes uninitialized, and r2 can be either true or false.
* This is based on our understanding of the spec. We think this design choice of "copy-in is a read but copy-out not" makes sense since it makes the function inlining smooth. Specifically, when the compiler inlines a function call, all the in parameters just have to be replaced by the arguments, and all the out arguments be re-declared; this pertains the behavior of uninitialized parameters in function inlining.

@MollyDream I am all for examples clarifying some of these subtleties, so thanks for your write-up.
I agree that when I wrote the original text of this, I was not explicitly addressing what constitutes a "read" of a variable, and copy-in and copy-out were not explicitly addressed, and it is worth considering whether either or both of those are a "read" or not.
I was curious if you found anything in the current spec that would cause different behavior relative to uninitialized values for copy-in vs. copy-out?  Or perhaps your choice above is based upon consideration of the kinds of transformations that a correct P4 compiler can make to the original program?

In general, I don't strongly support this, but just for information. The reason in favor of treating copy-out (and maybe also copy-in sometimes) as non-read is that it makes function inlining more efficient. For example,
void f(out bit<8> x, out bit<8> y) {
  y = 0;
}

{
  bit<8> x, y; // x is uninitilized
  f(x, y);
}

If copy-out is not read, we can safely transform it into
{
  bit<8> x, y; // x is uninitilized
  y = 0;
}

If copy-out is read, it's not safe to do it because
{
  bit<8> x, y; // x is uninitilized
  y = 0; // x is still uninitilized
}

During 2022-Jan-03 LDWG meeting, Mihai & Andy came to the realization that perhaps p4c's LocalCopyPropagation pass can result in output programs that are more nondeterministic than the input program, unless the compiler can somehow restrict the use of this transformation to cases where the variables/fields being accessed in the expression are "at least as deterministic as" the original program, e.g. all of them have initialized values.
AI Andy: Try to find a small P4_16 program where the current p4c implementation's LocalCopyPropagation pass produces a program that is strictly more non-deterministic than the input program, and add it here.
In general, I am fine with any definition of the P4 language spec here for which we know which compiler transformations are correct (i.e. result is at least as determinstic as the input program), and which are incorrect, and the incorrect ones are optimization passes we are willing to live without.

For anyone curious, there is a very short P4 program for which today's p4c can increase the number of possible behaviors of an input P4 program, because of the LocalCopyPropagation pass, when at least some of the variables in the resulting expressions are uninitialized: https://github.com/jafingerhut/p4-guide/tree/master/nondeterminism#demonstration-of-localcopypropagation-increasing-nondeterminism-of-input-program

Here is an article about uninitialized values from someone who wrote a Ph.D. thesis on semantics: https://www.ralfj.de/blog/2019/07/14/uninit.html

Thanks for that link.  It looks highly relevant to P4's current definition of the behavior of uninitialized variables, from what I can tell.  I haven't read all the linked discussions yet, as I only spent a couple of minutes on the directly linked article.  From that alone, I get the impression that the author has thought about these issues, but I do not yet know if they have recommendations that help us answer the question posed by this issue.

The main point of his text is that we (the LDWG) should define what "undefined" means, and not specific implementations, like Tofino or BMv2. The abstract machine for the language definition, aka the spec, has choices to make, and we make them. We can choose whether a read of an undefined variable "freezes" the value or does not. Both are legitimate choices.

Ralf was almost a P4 h4x0r! (I was this close to hiring him as a postdoc.) Sadly, he decided to go to some place called MIT.

"The main point of his text is that we (the LDWG) should define what "undefined" means, and not specific implementations, like Tofino or BMv2."  I agree with this statement, and believed it before I read the linked article.  I still do not know the best way to answer the questions raised by this issue, though :-(

There may be no "best" answer. This is why language design is hard. As you see, other communities struggle with the same problems.

Just recall the reason that we need partially initialized value by bit. Consider we assigning x by parts:
void f(in bit<4> y, in bit<4> z) {
   bit<8> x;
   x[3:0] = y;
   x[7:4] = z;
   ...
}
The only intuitive interpretation of `x` after two partial assignments is `x = y ++ z`. We must have bitwise value to support it.

In the interest of tidying up the set of active issues on the P4 specification repository, I'm marking this as "stalled" and closing it. Of course, we can always re-open it in the future if there is interest in resurrecting it.


error Exceeded maxRedirects

silly fetchPackageMetaData Error: Exceeded maxRedirects. Probably stuck in a redirect loop
263 error Windows_NT 6.1.7601
264 error argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
265 error node v7.3.0
266 error npm  v3.10.10
267 error Exceeded maxRedirects. Probably stuck in a redirect loop http://<IP_ADDRESS>/ac_portal/proxy.html?template=zte_webauth&tabs=pwd&vlanid=0&url=http://<IP_ADDRESS>%2Fac_portal%2Fproxy.html%3Ftemplate%3Dzte_webauth%26tabs%3Dpwd%26vlanid%3D0%26url%3Dhttp%3A%2F%2F<IP_ADDRESS>%252fac_portal%252fproxy.html%253ftemplate%253dzte_webauth%2526tabs%253dpwd%2526vlanid%253d0%2526url%253dhttp%253a%252f%252f<IP_ADDRESS>%25252fac_portal%25252fproxy.html%25253ftemplate%25253dzte_webauth%252526tabs%25253dpwd%252526vlanid%25253d0%252526url%25253dhttp%25253a%25252f%25252f<IP_ADDRESS>%2525252fac_portal%2525252fproxy.html%2525253ftemplate%2525253dzte_webauth%25252526tabs%2525253dpwd%25252526vlanid%2525253d0%25252526url%2525253dhttp%2525253a%2525252f%2525252f<IP_ADDRESS>%252525252fac_portal%252525252fproxy.html%252525253ftemplate%252525253dzte_webauth%2525252526tabs%252525253dpwd%2525252526vlanid%252525253d0%2525252526url%252525253dhttp%252525253a%252525252f%252525252f<IP_ADDRESS>%25252525252fac_portal%25252525252fproxy.html%25252525253ftemplate%25252

You can limit the number of redirects, using the request library.


What is the difference between SO:0001659 promoter_element and SO:0000713 DNA_motif

SO term name and accession
Please give the term name and accession. Example: rRNA_gene (SO:0001637)
SO:0001659 promoter_element :  An element that can exist within the promoter region of a gene.
SO:0000713 DNA_motif : A motif that is active in the DNA form of the sequence
Some children of DNA motif are more similar to children of 'promoter elements' - for example E_box and androgen_response_elements
Also, in other parts of the ontology (and based on GREECK feedback), 'promoter' was defined in SO are 'core promoter'. The children of promoter elements are  not core promoter elements.
This branch needs some reorganization to be aligned with other parts of the ontology.
Let me know if you want more specific suggestions.
@cmungall @colinlog  @valwood @thomaspd @vanaukenk
Thanks, Pascale
Parent term name and accession
Please give the term name and accession of the current parent. Example: ncRNA_gene (SO:0001263)
Suggested new parent term name and accession
Please give the term name and accession of the parent you suggest for the term. Example: ncRNA_gene (SO:0001263)
Reason for the change
Please state the reason you believe the term should be moved to a new location.
Relevant Publications
Please list a number of relevant publications that support the name, definition, and ontological location of the term you are requesting. It is best if you can include a PubMed ID or the last name of the first author along with the publication year, journal-title and potentially the article title.

"DNA motif" is not specific for transcription regulation motifs. It also includes (for example),
rDNA_intergenic_spacer_element
ARS_consensus_sequence
mating_type_region_motif
(although the SO definition
SO:0000713 DNA_motif
A motif that is active in the DNA form of the sequence.
doesn't describe a motif,  and I don't really understand what
"is active in the DNA form of the sequence" means (this isn't the definition of a motif)

the definition of
SO:0001683  sequence_motif
is
: | A sequence motif is a nucleotide or amino-acid sequence pattern that may have biological significance.
therefore it follows that  the definition of DNA_motif aka (DNA_sequnce_motif /add synonym)
should be
A DNA sequence motif is a nucleotide sequence pattern that may have biological significance.


Improve com.google.fonts/check/version_bump

Observed behaviour
https://github.com/google/fonts/pull/2017#issuecomment-500369925 has a ERROR; versions for new families doesn't make sense, so the check needs improvement :)
Expected behaviour
No error.

thanks, @davelab6 ! This issue gave me the clue I needed in order to fix not only this one but also #2540

Now the check will not emit an ERROR and will also not run if the family is not yet on github and on GFonts

it was fixed by #2544


Disable las file download for selected rows

Disable option "Las file" when download option "Download selected rows" is selected. For that option generation of las file does not exist.

to achieve that - move modal popup for choosing download options from CurveValuesView.tsx into a newly created component with popup


Query with limits returns whole collection

I've got about 100000 records in db.
I'd like to select only 10 of them.
so I write:
q, _ := mongo.Marshal(map[string]string{})
ret, error := coll.Query(q, 0, 10)
count := 200000 // because query gives me more than all of them....
keywords := make([]Keyword, count)
doc, _ := ret.GetNext()
for ; ret.HasMore(); doc, _ = ret.GetNext() {
fmt.Println("", iter)
mongo.Unmarshal(doc.Bytes(), &keywords[iter])
iter++
}
... and then I see about 100000 lines
0
1
2
...
101032
101033
So Query behaves ( maybe only on my machine ) just
like FindAll, no matter what limit and skip I give it..
I don't know if I'm doing something wrong or is there really
some problem with this method.

So old that I'm closing it now


CSS INLINING IMAGE AT out-build/vs/editor/contrib/colorPicker/images/opacity-background.png MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/BooleanData_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/BooleanData_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Field_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Field_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Method_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Method_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Method_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Method_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/Namespace_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/String_16x.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/documentSymbols/media/String_16x_darkp.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/previous.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/next.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/close.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/previous-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/next-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/editor/contrib/find/images/close-dark.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/editor/media/close-dirty.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/editor/media/close-dirty-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/editor/media/close.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/editor/media/close-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/notifications/media/down-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/browser/parts/notifications/media/down.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/comments/electron-browser/media/comment.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/debug/browser/media/current-arrow.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/debug/browser/media/start.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/debug/browser/media/continue-inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/debug/browser/media/start.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/extensions/electron-browser/media/loading.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/extensions/electron-browser/media/profile-stop.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/feedback/electron-browser/media/info.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/preferences/browser/media/edit.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/preferences/browser/media/edit_inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/preferences/browser/media/info.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/preferences/browser/media/edit.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/preferences/browser/media/edit_inverse.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
CSS INLINING IMAGE AT out-build/vs/workbench/parts/welcome/code-icon.svg MORE THAN ONCE. CONSIDER CONSOLIDATING CSS RULES
[18:51:19] Finished 'optimize-vscode' after 47 s
[18:51:19] Starting 'optimize-index-js'...
[18:51:19] Finished 'optimize-index-js' after 455 μs
[18:51:19] Starting 'minify-vscode'...
[18:54:55] Finished 'minify-vscode' after 3.6 min
[18:54:55] Starting 'vscode-linux-x64-min'...
internal/streams/legacy.js:59
      throw er; // Unhandled stream error in pipe.
      ^

Error: connect ECONNREFUSED <IP_ADDRESS>:443
    at Object._errnoException (util.js:992:11)
    at _exceptionWithHostPort (util.js:1014:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1186:14)

We don't support ArchLinux currently but I suspect it's related to the Electron 2 update: https://github.com/Microsoft/vscode/issues/55934. If you find out what the problem is let us know, the definition for the build task is here https://github.com/Microsoft/vscode/blob/f8168e6c2ed6da949c1b7137e69e0499913b5792/build/gulpfile.vscode.js#L382


Sdk 10.0.17025.0 :   FileOpenPicker hangs in get_activation_factory()

I have the latest OS and sdk integrated cppwinrt.
VC2017 15.5 Preview 2.0.
OS 1709, OS Build 17025.1000
Even the 'video' sample doesn't work.

A bit more information would be helpful as I can't reproduce this problem.

The stack constructor for 'FileOpenPicker ' never returns (from Video sample):
fire_and_forget OnActivated(CoreWindow window, WindowActivatedEventArgs)
{
    m_activated.revoke();

    Compositor compositor;
    SpriteVisual visual = compositor.CreateSpriteVisual();
    Rect bounds = window.Bounds();

    visual.Size({ bounds.Width, bounds.Height });
    m_target = compositor.CreateTargetForCurrentView();
    m_target.Root(visual);

....
    FileOpenPicker picker;

    picker.SuggestedStartLocation(PickerLocationId::VideosLibrary);

Do you experience the same behavior when using C++/CX or C#?

Yes, sample problem with C++/CX. Neve returns from  ref new abi::FileOpenPicker(); (belwo)
Some thing wrong with the latest Win10 insider build ?
#include "pch.h"
#include "MainPage.xaml.h"
using namespace App2;
#include <windows.storage.pickers.h>
namespace abi
{
using namespace Windows::Storage::Pickers;
}
MainPage::MainPage()
{
InitializeComponent();
}
concurrency::task MainPage::PickAnImage()
{
auto picker = ref new abi::FileOpenPicker();
picker->FileTypeFilter->Append(L".jpg");
picker->SuggestedStartLocation = abi::PickerLocationId::PicturesLibrary;
auto file = co_await picker->PickSingleFileAsync();
if (nullptr == file)
	return;

}
void App2::MainPage::Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
PickAnImage();
}

That may be. I'm not able to reproduce this on older or newer builds.

Thanks @mediabuff  - we're investigating with Visual Studio team and will reply back

We've been able to reproduce this internally.  I don't have specifics on the regression, but it appears to be resolved with the next Windows insider fast ring release, which should be going out any day.  Let us know if the update does not resolve.

Thanks for the follow-ups. I will wait for the update and revert.

This seems to be fixed in OS Build 17035.1000. Thank you all.


Error while reload grid

If i call $grid->reload(['grid']), everything is ok.
But if call $grid->reload(), grid throws Argument 1 passed to Instante\ExtendedFormMacros\Latte\FormRenderingDispatcher::renderControl() must be of the type array, null given  because $this->global->formsStack is not available here.

PR: https://github.com/contributte/datagrid/pull/683

Thanks. @paveljanda ?


add a method to easily export a table of inputs to astroplan

To Population, add a method to make table with just the most basic columns needed to plan a transit observation (name, period, epoch, duration). The output should (probably) be an astropy Table, and it should names that make it as easy as possible for @miricaradonna to plug into astroplan.

This is mostly included in #35 , with the addition of the Population.create_planning_table method. The names don't exactly match up, and there's still a slight problem that some of the transit epochs/durations are missing, but that's a bigger issue that's now capture in #36.

Since it's now in the develop branch, I'm going to close this issue!


Will not connect to SPA access point

My access point was configured for WPA security only.
This is probably not the default on most routers nowadays but was used here at some point (possibly for an earlier ESP32!).
I could connect OK to the Spark Analyzer AP from a phone and my AP was visible, but would not connect with the error 'No AP found''.
After enabling WPA/WPA2 on the AP, connection worked OK.
This possibly doesn't need fixing (or might be too deeply buried in the WiFi Management library) but should be documented.

Thanks, can you make a PR?

It's the Spark Analyzer Datasheet.pdf that needs to change, I think, unless there is an option in the Wifi Management library. Does that need to be edited directly or are there sources in for it ? I wasn't able to find any in a brief look.

Ok, I'll check it out.
On Sun, 4 Aug 2024 at 23:30, artgodwin @.***> wrote:

It's the Spark Analyzer Datasheet.pdf that needs to change, I think,
unless there is an option in the Wifi Management library. Does that need to
be edited directly or are there sources in for it ? I wasn't able to find
any in a brief look.
—
Reply to this email directly, view it on GitHub
https://github.com/tooyipjee/Spark-Analyzer/issues/8#issuecomment-2267811405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKZGTCS3QQDGBXDLTSYTELZP2TRJAVCNFSM6AAAAABL55P7DOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRXHAYTCNBQGU
.
You are receiving this because you commented.Message ID:
@.***>

--
Sincerely,
Jason Too

@artgodwin , I guess SPA is a typo, no? Should be WPA!?

Yes, it is!
On Mon, 5 Aug 2024, 22:43 doniks, @.***> wrote:

@artgodwin https://github.com/artgodwin , I guess SPA is a typo, no?
Should be WPA!?
—
Reply to this email directly, view it on GitHub
https://github.com/tooyipjee/Spark-Analyzer/issues/8#issuecomment-2269971458,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADKZGTEEZUMTTMDYJSMFFATZP7WZTAVCNFSM6AAAAABL55P7DOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRZHE3TCNBVHA
.
You are receiving this because you commented.Message ID:
@.***>


Rewrite shared memory buffer synchronization (Win)

Remove 8 byte buffer overhead for lock and buffer size
Use semaphore (instead of lock within shared memory buffer) consistent with Linux implementation

This PR supersedes #136.

Was there any problem with the code before, that is fixed by this PR, or is it basically the two stated improvements (I found the code before easier to read and  I liked that it was more commented)?

Was there any problem with the code before, that is fixed by this PR, or is it basically the two stated improvements (I found the code before easier to read and I liked that it was more commented)?

It is written in the commit message. There was an undocumeneted and probably unexpected 8 byte header making the Windows code inconsitent with the Linux implementation. That is now fixed by this b5af8e636942eb1b309b5908908600a369e0a570

I also removed the macros by purpose since they are nowhere else used in the external code.
I also removed the commentss by purpose since it is copied from MSDN only and nowhere else used in the external Win code

The other option would be to adapt the Linux code, e.g. get rid of the semaphore and use the 8 byte header for sync.

It is written in the commit message. There was an undocumented and probably unexpected 8 byte header making the Windows code inconsitent with the Linux implementation.

The implementation is different in Linux and Windows, but the interface is the same (the differences in implementation are encapsulated). I don't see unexpected behaviour when using the module.
I'm not against a semaphore based approach, but I'm always reluctant to make changes to code that seems to have worked before and which has some established confidence from use over an extended period of time. On the one hand, this means to invest time in it (not only writing the code but also reviewing and testing), on the other hand, It happens easily to introduce new bugs.
I've spent now quite some time looking at the code and probably your changes are equally fine, indeed, probably nicer, since you do without macros and I'm not a macro fan. However, I've not tested the code, I may have overlooked something. I'm just reluctant to replace code which has gained confidence from use with something that might be a bit nicer, but brings not much tangible improvements, while having the potential of introducing new bugs and calling for additional work for reviewing and testing. Hence, unless I have overlooked something, I would rather prefer to keep the current code base.

The current implementation was never documented and I doubt it was used at all, as otherwise users would have stumbled upon that >=8 byte header. So I doubt there will be external code at users applications that worked together with the current Win implementation of SharedMemoryRead or SharedMemoryWrite, especially because of the bug reported and fixed by #133 (that it was more than 8 byte overhead).
The proposed code makes life easier for you (and users) since there is now a semaphore used in the Win and Linux implementation. And you can be sure I tested the code as otherwise I would not have observed #133.

Edit: Wrong cross-reference. Should be #136.

Yes, this is a bad error. I didn't see it by comparing with this patch, because everything is solved very differently anyway. It is of course visible in #136.
Sorry, calling that error an 8 byte buffer overhead in your commit message was misleading for me. It's not the problem that memory isn't used efficiently here, It's a pointer arithmetic error.
I was additionally reluctant, because simply removing a little bit of overhead is not worth risking that potentially existing third party code, which relies on the overhead, is not working any more. However, since fixing the error will anyway have an impact on existing applications, one can also change it more drastically, as you do in this PR.
We need to make sure in the next release notes that we explicitly warn from the possible implications of that fix on user code and hope that users read it.

Yes, this is a bad error.

True. I called it an embarrassing error.
You can use the milestone feature to set issues to milestones, thus it hopefully will not be forgotten when making the release noes.

We need to make sure in the next release notes that we explicitly warn from the possible implications of that fix on user code and hope that users read it.

So, yes it both is a fix and a backwards-compatibility breaking one, which according to semver requires an increment in the major number. But as I said, I doubt that SharedMemory was used at all at user's applications.


Fix no-blake2 for Windows classic build

Fix no-blake2 for Windows classic build

@levitte: Care to look at this?

Other than that comment, it looks fine to me

done, thanks!


add-trace-sdk-android 0.1.0

https://github.com/bitrise-steplib/bitrise-add-trace-sdk-android/releases/0.1.0
What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

 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.


V1

More work towards a v1 release.
Work done:

[x] Split out the single datepicker component into multiple smaller components
[x] Split out translations into separate importable files
[x] Refactor build tools to rollup saving almost 50% filesize - 46kb down to 27kb 👍
[x] Build umd, cjs and esm modules
[ ] Update readme with new changes

Coverage decreased (-10.2%) to 86.226% when pulling b442f3a7b03769f40c67f7272601756b58a23ea9 on v1 into 03c18c50dfe7ca636c5665485fad80eb83d60d9e on master.


how can i add a custom plugin before argocd-vault-plugin

i want to add a custom plugin to deal the resource files ,and  then give these processed files to argocd-vault-plugin for processing.
Is this possible?

Make your own Config Management Plugin such as command1-command2-vault which wraps in a shell script the invocation of command1 | command2 | argocd-vault-plugin <args>