server profile update in-place

Having a strange issue-
some background
Creating a server profile based on a template.  The template has bios options in it.
The server profile has local storage and connection settings in it.
When I create TF apply the server profile, it creates exactly as expected. Excellent!
However:
If I rerun TF plan/apply, TF tries to improperly "change" the resource, specifically the bios settings are planned to -> null and  connection settings ->null and then connections wants to do a delete/add operation.
I am wondering if the state file is problematic here on this?
Let me know if you need sample code.
@AsisBagga Thank you so much for all your help getting this going.

Here is sample output truncated to show what i mean
  # module.foo.oneview_server_profile.default will be updated in-place
  ~ resource "oneview_server_profile" "default" {
        affinity              = "Bay"
        boot_order            = []
        enclosure_group       = "EG_01"
        hardware_name         = "EG01_FRAME01, bay 1"
        hardware_uri          = "/rest/server-hardware/39313738-3034-584D-5131-303230483230"
        hide_unused_flex_nics = true
        id                    = "SP_EG01_FRAME01_B01"
        ilo_ip                = "<IP_ADDRESS>"
        mac_type              = "Physical"
        name                  = "SP_EG01_FRAME01_B01"
        serial_number         = "MXQ1020H20"
        serial_number_type    = "Physical"
        server_hardware_type  = "SY 480 Gen10 1"
        template              = "foo"
        type                  = "ServerProfileV12"
        uri                   = "/rest/server-profiles/87a1ad26-a7d5-42b7-92df-9c4eaba40502"
        wwn_type              = "Physical"

      - bios_option {
          - consistency_state = "Consistent" -> null
          - manage_bios       = true -> null
          - reapply_state     = "NotApplying" -> null

          - overridden_settings {
              - id    = "CollabPowerControl" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "EnergyEfficientTurbo" -> null
              - value = "Disabled" -> null
            }

        }

        boot_mode {
            manage_mode     = true
            mode            = "UEFI"
            pxe_boot_policy = "Auto"
            secure_boot     = "unmanaged"
        }

      - connection_settings {
          - manage_connections = false -> null

          - connections {
              - allocated_mbps    = 0 -> null
              - allocated_vfs     = 0 -> null
              - function_type     = "Ethernet" -> null
              - id                = 0 -> null
              - interconnect_port = 0 -> null
              - isolated_trunk    = false -> null
              - managed           = false -> null
              - maximum_mbps      = 0 -> null
              - name              = "G1_Network_1" -> null
              - network_uri       = "/rest/ethernet-networks/44155074-0d29-4dcd-ba76-ec095130fc36" -> null
              - port_id           = "Mezz 3:1-a" -> null
              - requested_mbps    = "1000" -> null
            }
          - connections {
              - allocated_mbps    = 0 -> null
              - allocated_vfs     = 0 -> null
              - function_type     = "Ethernet" -> null
              - id                = 0 -> null
              - interconnect_port = 0 -> null
              - isolated_trunk    = false -> null
              - managed           = false -> null
              - maximum_mbps      = 0 -> null
              - name              = "G1_Network_2" -> null
              - network_uri       = "null" -> null
              - port_id           = "Mezz 3:2-a" -> null
              - requested_mbps    = "0" -> null
            }
        }
      + connection_settings {
          + connections {
              + function_type  = "Ethernet"
              + id             = 1
              + name           = "Network_1"
              + network_uri    = "/rest/ethernet-networks/44155074-0d29-4dcd-ba76-ec095130fc36"
              + port_id        = "Mezz 3:1-a"
              + requested_mbps = "1000"

              + boot {
                  + priority = "Primary"
                }
            }
          + connections {
              + function_type  = "Ethernet"
              + id             = 2
              + name           = "Network_2"
              + port_id        = "Mezz 3:2-a"
              + requested_mbps = "0"

              + boot {
                  + priority = "Secondary"
                }
            }
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.

my temporary fix was to use a lifecycle ignore changes on connection_settings, and bios_option , but ideally will want this work as intended.

@rismoney Thanks Rich, we are aware of this issue, and we have implemented the fix, this should be addressed in our coming release.

If necessary, I can test a branch when it's ready

If necessary, I can test a branch when it's ready

sure you may clone and build the binary for testing, and let us know.

I tested the #296 branch.
Connection Settings - This looks like mac_type,managed, ethernet_boot_type are trying to be => null but definitely improved over above.
For the bios_option same as above output.
~ connection_settings {
            manage_connections = false

          ~ connections {
                allocated_mbps    = 0
                allocated_vfs     = 0
                function_type     = "Ethernet"
                id                = 1
                interconnect_port = 0
                isolated_trunk    = false
              - mac_type          = "Physical" -> null
              - managed           = true -> null
                maximum_mbps      = 0
                name              = "G1_Network_1"
                network_uri       = "/rest/ethernet-networks/44155074-0d29-4dcd-ba76-ec095130fc36"
                port_id           = "Mezz 3:1-a"
                requested_mbps    = "1000"

              ~ boot {
                    boot_vlan_id       = 0
                  - ethernet_boot_type = "PXE" -> null
                    priority           = "Primary"
                }
            }
          ~ connections {
                allocated_mbps    = 0
                allocated_vfs     = 0
                function_type     = "Ethernet"
                id                = 2
                interconnect_port = 0
                isolated_trunk    = false
              - mac_type          = "Physical" -> null
              - managed           = true -> null
                maximum_mbps      = 0
                name              = "G1_Network_2"
                port_id           = "Mezz 3:2-a"
                requested_mbps    = "0"

              ~ boot {
                    boot_vlan_id       = 0
                  - ethernet_boot_type = "PXE" -> null
                    priority           = "Secondary"
                }
            }
        }
    }

not sure this is related @AsisBagga
I am now getting using a module I have deployed 42 times within this enclosure group, but now I am struggling on 6 servers with this error. 4 within this frame built fine.  bays 1/2 are empty only in this frame, not sure if that changes anything.
Trying to figure out why TF is failing.
2021/04/19 12:10:03 [DEBUG] module.abc.oneview_server_profile.default: applying the planned Create change
w_server_profi2021/04/19 12:10:03 [DEBUG] moduleabc.oneview_server_profile.default: apply errored, but we're indicating that via the Error pointer rather than returning it: Provider produced inconsistent result after apply: When applying changes to module.abconeview_server_profile.default, provider "registry.terraform.io/-/oneview" produced an unexpected new value for was present, but now absent.

This is a bug in the provider, which should be reported in the provider's own issue tracker.
le2021/04/19 12:10:03 [ERROR] module.abc: eval: *terraform.EvalApplyPost, err: Provider produced inconsistent result after apply: When applying changes to module.abc.oneview_server_profile.default, provider "registry.terraform.io/-/oneview" produced an unexpected new value for was present, but now absent.

This is a bug in the provider, which should be reported in the provider's own issue tracker.
2021/04/19 12:10:03 [ERROR] module.abc: eval: *terraform.EvalSequence, err: Provider produced inconsistent result after apply: When applying changes to module.abc.oneview_server_profile.default, provider "registry.terraform.io/-/oneview" produced an unexpected new value for was present, but now absent.

I seem to be hitting a bug also where sometimes it seems like it's misidentifying a profile to modify.  It's not every TF run, it's seemingly random:
# module.MIAQMS05.oneview_server_profile.default will be updated in-place
  ~ resource "oneview_server_profile" "default" {
        affinity              = "Bay"
        enclosure_group       = "EG_01"
        hardware_name         = "EG01_FRAME03, bay 1"
        hardware_uri          = "/rest/server-hardware/39313738-3034-584D-5131-303230483250"
        hide_unused_flex_nics = true
        id                    = "SP_EG01_FRAME03_B01"
        ilo_ip                = "<IP_ADDRESS>"
        mac_type              = "Physical"
      ~ name                  = "SP_EG01_FRAME01_B04" -> "SP_EG01_FRAME03_B01"
        serial_number         = "64546456546"
        serial_number_type    = "Physical"
...

If I rerun TF this update in place seems to go away. And then reappear on subequent runs.
Upon first impression it looks like the hardware URI lookups are wrong or are getting cached across resources.

deleted some unrelated msgs - had a typo.  sorry for confusion.

@rismoney Hi Rich, can you explain more about hardware look up?
And for mac_type,managed, ethernet_boot_type and bios_option attributes in connections is going null maybe because you haven't provided them in your example file, would you mind sharing you example file with me?
I tried and it works fine for me...

The reason terraform is looking to change the Server Profile Name has nothing to do with which server hardware which is assigned rather it will check the local resource(server profile) Id(name) and matches the one within oneview and updates if differ. For me the best way to look the "hardware URI assignment" is by matching the Server Profile URI with server hardware URI.
In your terraform show it looks like profile uri is  "/rest/server-profiles/030d5c76-8796-462b-a801-311764fa349c"
and hardware_uri = "/rest/server-hardware/39313738-3034-584D-5131-303230483250"
and terraform local id = "SP_EG01_FRAME01_B02"
so maybe due to multiple different iterations on same ID, the terraform state file is messed up, What i would suggest is either you can do an import and then update to check for any anomalies.
PS: For server profile update you have to mention update_type = "put" inorder to make your update work, I hope youre aware of that.
PS: You may open a new issue for hardware lookup next time if you encounter any anomaly.

hardware lookup weirdness: when i was using the #296 branch it seemed as those it didn't always resolve the correct profile to modify. in my message right before this, i ran terraform plan, and it should always be a noop, as SP_EG01_FRAME02 is correct for frame 1 bay 2. However the provider somehow randomly thinks (doesn't happen deterministically every plan) that SP_EG01_FRAME04 is the current name, and that it wants to change it. The hardware uri ending in 3250 is associated with Bay 4.
So somehow the lookups aren't happening reliably to match against state or something like that. Again, I could re-run plan, and this then may not show up. And again - it could.
In this directory I am currently managing 40 profiles via modules. I am not sure if I am hitting some other weirdness, but the other 38 seem fine as far as i can tell. But there is literally no difference between them, aside from names in most cases.
As far as the resource - sure:
What is interesting about the above output is that for example mac_type is under connection(s). I think that is and wwn is per profile setting not per connnection.
For the bios settings, I don't have any defined in the server profile. They are in the server profile template, so it looks like it is munging the 2, and thinks because I don't have them defined is server profile, that they should be removed.
locals {
  netmappings = jsondecode(data.local_file.mappings.content)
  frameparity = tonumber(substr(var.profile_name,6,1))
  enclosuregroup_no = substr(var.profile_name,5,2)
  frame = substr(var.profile_name,8,7)
  bay = tonumber(substr(var.profile_name,17,2))
}

data "local_file" "mappings" {
  filename = (local.frameparity % 2 == 1 ) ? "${path.module}/oddframes/${var.environment}-${var.server_function}.json" : "${path.module}/evenframes/${var.environment}-${var.server_function}.json"
}

data "oneview_ethernet_network" "network" {
  count = length(local.netmappings.connections)
  name = lookup(local.netmappings.connections[count.index],"networkUri")
}

resource "oneview_server_profile" "default" {
  name = var.profile_name
  template = var.profile_template
  hardware_name = "EG${local.enclosuregroup_no}_${local.frame}, bay ${local.bay}"
  wwn_type = "Physical"
  mac_type = "Physical"
  enclosure_group = "EG_${local.enclosuregroup_no}"
  server_hardware_type = var.server_hardware_type
  serial_number_type = "Physical"
  type = "ServerProfileV12"
  boot_mode {
    manage_mode = true
    mode = "UEFI"
    pxe_boot_policy = "Auto"
    secure_boot="unmanaged"
  }

  connection_settings {

    dynamic "connections" {
      for_each = data.oneview_ethernet_network.network
      content {
        network_uri = connections.value.uri
        name = lookup(local.netmappings.connections[connections.key],"name")
        id = lookup(local.netmappings.connections[connections.key],"id")
        function_type = lookup(local.netmappings.connections[connections.key],"function_type","Ethernet")
        port_id = lookup(local.netmappings.connections[connections.key],"portId")
        requested_mbps = lookup(local.netmappings.connections[connections.key],"requestedMbps")
        boot  {
          priority           = contains(keys(local.netmappings.connections[connections.key]), "boot") ? lookup(local.netmappings.connections[connections.key]["boot"],"priority","")  : null
          ethernet_boot_type = contains(keys(local.netmappings.connections[connections.key]), "boot") ? lookup(local.netmappings.connections[connections.key]["boot"],"ethernet_boot_type","") : null
        }
      }
    }
  }

The reason terraform is looking to change the Server Profile Name has nothing to do with which server hardware which is assigned rather it will check the local resource(server profile) Id(name) and matches the one within oneview and updates if differ. For me the best way to look the "hardware URI assignment" is by matching the Server Profile URI with server hardware URI.
In your terraform show it looks like profile uri is "/rest/server-profiles/030d5c76-8796-462b-a801-311764fa349c"
and hardware_uri = "/rest/server-hardware/39313738-3034-584D-5131-303230483250"
and terraform local id = "SP_EG01_FRAME01_B02"
so maybe due to multiple different iterations on same ID, the terraform state file is messed up, What i would suggest is either you can do an import and then update to check for any anomalies.
PS: For server profile update you have to mention update_type = "put" inorder to make your update work, I hope youre aware of that.
PS: You may open a new issue for hardware lookup next time if you encounter any anomaly.

Like I said the weirdness with this newer branch, was intermittent.  Will continue to test as I see it was merged.
I am hoping that update_type=put won't be required in the future, as terraform should know the difference between apply changes that are "new resources" versus updating existing ones.  This argument seems unintuitive. (Like how am I supposed to know (or care) what state this option should be in)
This seems silly that the end user should need to know the mechanics of the restapi call as it's an implementation detail.   I didn't see that in the example either, and the doc only mentions put or patch.
Thanks for all your help!  PRovider getting better everyday!

Ok, started testing new provider.
So what I think happened here, is that the state file has the bios and local storage settings in it.  My belief is that shouldn't have been in there as they were part of the server profile template.  so now the new version isn't putting it in there, and that is why it's trying to remove it.
I am going to do some state file surgery and see what's up.

ok-  the provider in the master branch no longer will work in my configuration.
To be clear I have a server profile template that contains bios settings, and local storage.
I then have a server profile based on that references that template
I have my network configuration within the profile.
I hope that clears up the confusion.
I get the same results on importing an existing server profile template versus an existing resource:
To summarize, it looks like it's munging the server profile settings with the inherited settings from server profile template.
The server profile resource doesn't have local storage or bios, therefore when you plan on that resource, it looks like it's trying to remove those settings.
Then there are other settings, that are curiously not correct.  I enclosed a sample of what i see
This is an example of a newly imported server profile resource.
# module.pkini6.oneview_server_profile.default will be updated in-place
  ~ resource "oneview_server_profile" "default" {
        affinity              = "Bay"
        enclosure_group       = "EG_01"
      + hardware_name         = "EG01_FRAME03, bay 5"
        hardware_uri          = "/rest/server-hardware/39313738-3034-584D-5131-303230483135"
        hide_unused_flex_nics = true
        id                    = "SP_EG01_FRAME03_B05"
        ilo_ip                = "<IP_ADDRESS>"
        mac_type              = "Physical"
        name                  = "SP_EG01_FRAME03_B05"
        serial_number         = "MXQ1020H15"
        serial_number_type    = "Physical"
        server_hardware_type  = "SY 480 Gen10 1"
      + template              = "SPT_EG01_Desktops_Gen10_1"
        type                  = "ServerProfileV12"
        uri                   = "/rest/server-profiles/db366936-a971-427d-b383-0d2e2f8703ec"
        wwn_type              = "Physical"

      - bios_option {
          - consistency_state = "Consistent" -> null
          - manage_bios       = true -> null
          - reapply_state     = "NotApplying" -> null

          - overridden_settings {
              - id    = "MinProcIdlePower" -> null
              - value = "NoCStates" -> null
            }
          - overridden_settings {
              - id    = "WorkloadProfile" -> null
              - value = "Custom" -> null
            }
          - overridden_settings {
              - id    = "IntelUpiPowerManagement" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "ProcHyperthreading" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "UncoreFreqScaling" -> null
              - value = "Maximum" -> null
            }
          - overridden_settings {
              - id    = "EnergyPerfBias" -> null
              - value = "MaxPerf" -> null
            }
          - overridden_settings {
              - id    = "MinProcIdlePkgState" -> null
              - value = "NoState" -> null
            }
          - overridden_settings {
              - id    = "MemPatrolScrubbing" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "ProcTurbo" -> null
              - value = "Enabled" -> null
            }
          - overridden_settings {
              - id    = "TimeZone" -> null
              - value = "UtcM5" -> null
            }
          - overridden_settings {
              - id    = "ProcX2Apic" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "PowerRegulator" -> null
              - value = "StaticHighPerf" -> null
            }
          - overridden_settings {
              - id    = "EnergyEfficientTurbo" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "NumaGroupSizeOpt" -> null
              - value = "Clustered" -> null
            }
          - overridden_settings {
              - id    = "MemRefreshRate" -> null
              - value = "Refreshx1" -> null
            }
          - overridden_settings {
              - id    = "IntelProcVtd" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "Sriov" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "InternalSDCardSlot" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "CollabPowerControl" -> null
              - value = "Disabled" -> null
            }
          - overridden_settings {
              - id    = "UsbControl" -> null
              - value = "InternalUsbDisabled" -> null
            }
          - overridden_settings {
              - id    = "TimeFormat" -> null
              - value = "Utc" -> null
            }
          - overridden_settings {
              - id    = "ProcVirtualization" -> null
              - value = "Disabled" -> null
            }
        }

      - boot {
          - boot_order  = [
              - "HardDisk",
            ] -> null
          - manage_boot = true -> null
        }

      + boot_mode {
          + manage_mode     = true
          + mode            = "UEFI"
          + pxe_boot_policy = "Auto"
          + secure_boot     = "unmanaged"
        }

      ~ connection_settings {
            manage_connections = false

          ~ connections {
                allocated_mbps    = 0
                allocated_vfs     = 0
                function_type     = "Ethernet"
                id                = 1
                interconnect_port = 0
                isolated_trunk    = false
              - mac_type          = "Physical" -> null
              - managed           = true -> null
                maximum_mbps      = 0
                name              = "G1_Network_1"
                network_uri       = "/rest/ethernet-networks/44155074-0d29-4dcd-ba76-ec095130fc36"
                port_id           = "Mezz 3:1-a"
                requested_mbps    = "1000"

              ~ boot {
                    boot_vlan_id       = 0
                  - ethernet_boot_type = "PXE" -> null
                    priority           = "Primary"
                }
            }
          ~ connections {
                allocated_mbps    = 0
                allocated_vfs     = 0
                function_type     = "Ethernet"
                id                = 2
                interconnect_port = 0
                isolated_trunk    = false
              - mac_type          = "Physical" -> null
              - managed           = true -> null
                maximum_mbps      = 0
                name              = "G1_Network_2"
                port_id           = "Mezz 3:2-a"
                requested_mbps    = "0"

              ~ boot {
                    boot_vlan_id       = 0
                  - ethernet_boot_type = "PXE" -> null
                    priority           = "Secondary"
                }
            }
        }

      - local_storage {
          - initialize           = false -> null
          - manage_local_storage = false -> null

          - controller {
              - device_slot              = "Embedded" -> null
              - drive_write_cache        = "Unmanaged" -> null
              - import_configuration     = false -> null
              - initialize               = false -> null
              - mode                     = "Mixed" -> null
              - predictive_spare_rebuild = "Unmanaged" -> null

              - logical_drives {
                  - accelerator         = "Unmanaged" -> null
                  - bootable            = true -> null
                  - name                = "OS" -> null
                  - num_physical_drives = 2 -> null
                  - num_spare_drives    = 0 -> null
                  - raid_level          = "RAID1" -> null
                  - sas_logical_jbod_id = 0 -> null
                }
            }
        }
    }

Like I said the weirdness with this newer branch, was intermittent. Will continue to test as I see it was merged.
I am hoping that update_type=put won't be required in the future, as terraform should know the difference between apply changes that are "new resources" versus updating existing ones. This argument seems unintuitive. (Like how am I supposed to know (or care) what state this option should be in)
This seems silly that the end user should need to know the mechanics of the restapi call as it's an implementation detail. I didn't see that in the example either, and the doc only mentions put or patch.
Thanks for all your help! PRovider getting better everyday!

Thanks, We will add this to our backlog, and in near future you should be able to see a good documentation.

what version of TF are you using with master branch?

i hope the backlog isn't too long...Right now I am still really in the state of creation not updating.  I have 20+ frames coming in.
The bigger concern for me, is that right now the current release is non functional, and I am locked into a previous release with lifecycle ignores on bios and connection_settings.  Not sure what other information I can provide to you.
I think you do understand my current situation based on https://github.com/HewlettPackard/terraform-provider-oneview/issues/295#issuecomment-825686076

I understand that you have a server profile created from a server template which had local storage set in it.
So that means Server Profile post apply will have all the attributes which server profile template had.
Now if you trying to update server profile it is making the existing local storage set to null.
So if you want to do an update which would need update_type="put"
So if you do an import of the same server profile it will have all those new attributes to it which it inherited from the template. Now you will need to have the exact imported configuration in your example file, otherwise not providing the local storage in server profile example it will set the value as null because terraform knows from state file that Oneview's server profile has the local storage right now and since you are not providing them in your example means you don't need that anymore and sets to null, similar behavior is mostly with all other attributes too.
I understand your requirement that you may not want to provide all the attributes in order to update one single attribute in the resource.
But currently we do not support this, so I would advice you to provide all the existing attributes in your example file and then try to update.
PS: I am using Terraform v0.13.6

I understand that you have a server profile created from a server template which had local storage set in it.
So that means Server Profile post apply will have all the attributes which server profile template had.

If I understand what you are saying is that the server profile post apply, will then not know which attributes are coming from the server profile template anymore versus what is actually in the server profile directly.  Is this correct?   This is a problematic position
for the provider, in that in cannot ascertain "inherited" attributes.

Now if you trying to update server profile it is making the existing local storage set to null.
By specifying the attribute template I would think it would bring in the template's attributes.  That is my contention.

So if you do an import of the same server profile it will have all those new attributes to it which it inherited from the template.
Now you will need to have the exact imported configuration in your example file, otherwise not providing the local storage in > server profile example it will set the value as null because terraform knows from state file that Oneview's server profile has the > local storage right now and since you are not providing them in your example means you don't need that anymore and sets to > null, similar behavior is mostly with all other attributes too.

Apparently this doesn't respect the attribute template to contain those settings.
I was not trying to do an update - At this point I am just running a TF plan (of non changed code) after an apply which I would expect to not have drift, and not require a code change (to add update_type).  I am just validating my existing configuration.  My belief is that something is just not right in the way terraform behavior is handling these resources declaratively, because after an apply, if no changes were made to the code base, I should end up with a 0 add, 0 changes, 0 deletes but this isn't the case.
Maybe this is an issue with assumptions the rest api is making about the relationship between profiles and templates.
Let me see if I can break this into my actual use case, to clarify the issue:
Using TF.

I create a server profile template, and put a RAID 1 in it.  Apply.  No issues here.
I create a server profile using that template and specify a network connection in profile for ethernet vlan100 1gig. Apply. No issues.
Now no code changes since step 2.  I just run terraform plan now - And the server profile thinks that I want to remove my RAID1, because it's not specified in the server profile, but rather it is "inherited/merged/munged/whatever" from the serverprofiletemplate.
This isn't really workable/maintainable for a TF code base....
?

What I am trying to articulate is that if the provider breaks terraform's intentions of defining the state and management of idempotency of server profiles this isnt workable.
If my code to create server profiles that uses templates cannot be applied/planned multiple times safely, then this resource isn't safe for usage.
It has to be a safe operation to apply the same code assuming no code changes or else something isn't evaluating or implementing properly.

I am not a go developer, but I noticed this link from hashicorp: https://www.terraform.io/docs/extend/resources/customizing-differences.html
My belief is that if a server profile resource is created using a template, we may need to load the settings from the template and "assume" they're part of the profile configuration when analyzing all plans going forward.  They can't be just used for creation, and then require code changes for subsequent modification.  If a bios setting is in a template, and then a profile is created from this template, then if this relationship is not preserved, a user's code base becomes untenable.  We can't add the bios setting to the profile for the purpose of making the state clean.  It undermines templating altogether.

@rismoney Hi Rich, I understand your requirement, despite the requirement that is not straightforward because there are other Oneview considerations, this requirement has been added to our backlog.
The requirement is as follows:  Idempotency requirement for the server profile with template URI.

Hi @rismoney ,
The issue is root caused the same is getting reviewed . We are planning release the fix with OV 6.2 release

Just figured I would provide some updates.
I was having some weirdness on network connections, which I may or may not have isolated - TBD.  To create network connections I use a data "oneview_ethernet_network".   If I were to pass an empty "name" into this, I may have been getting erratic results.  I now did this network_uri = connections.value.uri != "" ? connections.value.uri : "" for the connection_settings connections, and that may have fixed that.  Still testing.   I also had an odd case, where the network connection it the data network picked was not even defined in the code.  Haven't been able to reproduce again, but will keep you posted.
We have use cases where we have network connections that are intentionally unassigned, and believe that may have been causing the strange behavior on the network uri.
On the topic of profile name matching - on latest master branch, I still occasionally see mismatching of servers.  Note, I destroyed all server profiles and redeployed everything on this version.
Example: [snipped]
      id                    = "SP_EG01_FRAME01_B01"
      ~ name                  = "SP_EG01_FRAME02_B05" -> "SP_EG01_FRAME01_B01"

Not sure where it randomly gets Frame2 Bay 05 from, but, usually a subsequent terraform plan resolves this correctly so something is definitely wonky on that front.  It usually happens seemingly random after about 25-30 profiles have been deployed through modules.  It is correct in state file. Using TF 0.12.30 so I don't know if it is something with modules that may be fixed in new release or the provider.  But it is definitely an oddball scenario I can't explain based on my TF files.

@rismoney  Hi Rich,
Thank you for waiting. The update issue has been resolved in v6.2.0 release.
Ill be proceeding with closing this issue, perhaps, still have any concerns then feel free to open a new issue.

Hello @rismoney This issue has been addressed and merged to master. The fix will be available in next release. Therefore, I'll proceed with closing this. If you have any concerns then please feel free to open a new issue.


Update README.md

Added details around required Audience ID

@reuben-onduty, thank you again for this excellent feedback. It has been rolled into the main README:

When requesting a token to call the Marketplace API, be sure to set scope to 20e940b3-4c77-4b0b-9a53-9e16a1b010a7.


Remove ROOM_PADDING_SCALE

Reference Issue
Fixes #527, #537
As noted in #526, the room padding has not been necessary for awhile, so this removes it for code clarity, especially since there is no longer a room. It has the effect of slightly zooming in all of our fidelity tests and removing the thin boarders around the square ones, as framing is now tight. Thus, all the golden images have been updated.

Our margins were already a bit tight for my liking, if I'm honest. Would it make sense to compensate by adjusting the computed "ideal distance" in order to preserve a bit of the margin?

I'm happy to do that if you'd like. One possibility is to change the ideal
distance to the safe distance where any rotation is still fully visible,
though that might be more margin than you want. Also, the margin you see is
highly dependent on how much the model fills its bounding box. Are there
particular models in our fidelity tests that you don't like the framing of?
Really the change is quite subtle.
On Fri, May 10, 2019 at 2:42 PM Christopher Joel<EMAIL_ADDRESS>wrote:

Our margins were already a bit tight for my liking, if I'm honest. Would
it make sense to compensate by adjusting the computed "ideal distance" in
order to preserve a bit of the margin?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleWebComponents/model-viewer/pull/544#issuecomment-491438664,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMS2LA5DWDBUQU5H7QCCHDPUXT4VANCNFSM4HMGGBVA
.

@elalish I would say that the antique camera is an example where the margin makes a big difference in the framing. Check out the bottom of the model, where the front leg of the tripod approaches the edge of the frame:

Closing as out of date, since some of the cleanup here has landed elsewhere. May revisit later.


FEEDBACK action trouble with LRC protocol

Hello, I would like to thank you for this plugin.
We are in a state of implementation a new Matrix from Evertz. For controling we are using CEREBRUM software and ELGATO as UI.
CEREBRUM make communication between EVERTZ matrix and Companion SW thru LRC protocol. All switching works well but we have a problem with feedback. I set up change color for button if crosspoint is sets but no colorchange on button.
I want to download a manual from imagine sites but after registration all section for download are empty.
Could you send me link for manual or help me with my problem?
Thank You
David

I don't have access to anything Evertz so my ability to help will be limited, but I can certainly give it a shot.
The crosspoint feedback relies upon the LRC server sending a ~XPOINT! message over the socket that Companion opens. For example, ~XPOINT!D${SHD MON};S${CAM PM 2}\ which indicates a crosspoint of Destination SHD MON and Source CAM PM 2. Some equipment doesn't use source/destination names but numbers (likely for legacy compatibility), e.g. ~XPOINT!D#{64};S#{60}\. Either format is supported by this module.
All received crosspoint state changes are sent to the Companion debug logs. In the Companion UI, go to the Log tab then click Debug if debug logs aren't already being displayed. If a valid crosspoint state change message is being received, you should see a message for it, e.g. YY.MM.DD HH:MM:SS instance(lrc-instance-name): Crosspoint State Updated: SHD MON:CAM PM 2. You may also see Destination 'ZZZZ' not found, can't update state if the destination in the message isn't one that was returned from the module's query of the server. If you don't see messages like either of those, then either the LRC server isn't sending them or they're in a different format that the module currently doesn't handle. Check the logs for those messages and let me know what you do or don't see.
If you don't see any logs for crosspoints, then things get a bit more complicated. The module doesn't currently log messages received from the LRC server that don't match a known format or are otherwise not able to be processed. The easiest way to capture raw LRC messages is using a Telnet client (e.g. PuTTY). Open a connection to the LRC server's IP on the appropriate port (e.g. 52116). Whenever a LRC message is sent, it should be displayed in your session. Once you have the session open, send some crosspoint commands from Companion (or other controller). You should hopefully see several messages in the session. Each message starts with a ~ and ends with a \. In my experience, there are no carriage returns or newline characters, so you may want to take the output into a text editor for easier viewing. Feel free to reply with a sampling of those messages here and I can try to see why they're not being handled.

Hello RossIV

My apologies for the delay in getting this fixed. For your use would you need the crosspoints and locks to include levels, or if I added an option to ignore levels entirely would that work?

Closing stale issues, if still needed please comment back.


fix deposit_creating and deposit_into_existing

should add some check according to the impl of pallet-balances: https://github.com/paritytech/substrate/blob/0c971e0e154efe7918cc687ab99d477901fb4219/frame/balances/src/lib.rs#L1490-L1535

Codecov Report

Merging #555 (374a31a) into master (6e1885c) will increase coverage by 0.17%.
The diff coverage is 91.11%.

@@            Coverage Diff             @@
##           master     #555      +/-   ##
==========================================
+ Coverage   71.40%   71.57%   +0.17%
==========================================
  Files          76       76
  Lines        5252     5291      +39
==========================================
+ Hits         3750     3787      +37
- Misses       1502     1504       +2

Impacted Files
Coverage Δ

tokens/src/lib.rs
82.56% <76.47%> (-0.22%)
:arrow_down:

tokens/src/tests.rs
100.00% <100.00%> (ø)

authority/src/mock.rs
72.34% <0.00%> (-2.13%)
:arrow_down:

tokens/src/imbalances.rs
16.66% <0.00%> (+2.77%)
:arrow_up:

Continue to review full report at Codecov.

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


Refactor type of dimension attributes in TOSA reference implementation

Closes #390.

I'll merge as soon as we tested with an updated, cached LLVM.


Performance issue with large XAML files

I have a few workflow XAML files which has near 90 000 lines in it.
Actually it is executing successfully, but it takes near 40 minutes to execute.
The same workflow executing near 30 second on .Net framework WF on the same machine.
Do you have any suggestions how to speed up this process ?
One more think I found while migrating that ref  xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities"
did not work in CoreWF: System.Activities.Debugger is inside UiPath.Workflow assembly.  You have same ref in NonGenericForEach.xaml, but it is not used.

@dmetzgar We are trying to port our .NET 4.7 application to .NET 6, and also met 10x slower performance when loading a simple xaml (but with out own dll reference), from 500ms to 5s.
Profiling shows it's the same callstack as this PR: https://github.com/UiPath/CoreWF/pull/178.
In .NET framework, compiling VB script is using VbHostedCompiler, but now it's JIT compiler, and BuildAssembly takes too much time.
Want to confirm is this really a no-solution issue as you mentioned in the PR?

A significant portion of the performance issue comes from the Script implementation itself. An odd thing about the Script implementation for VB is that it was dropped from Roslyn: https://github.com/dotnet/roslyn/issues/13523#issuecomment-462433207

We also observed a high memory usage issue when running a large xaml file. After debugging we noticed there are dead Native Memory objects that are not collected which can get up to more than 1GB


Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory

Debian 10.3
Python 3.8.2
Cuda 10.2
Quadro K5200d drivers 440.82
Tensorflow 2.2.0-rc2
import tensorflow as tf
tf.config.list_physical_devices('GPU')
2020-04-15 20:58:07.177217: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-04-15 20:58:07.205025: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:
pciBusID: 0000:03:00.0 name: Quadro K5200 computeCapability: 3.5
coreClock: 0.771GHz coreCount: 12 deviceMemorySize: 7.94GiB deviceMemoryBandwidth: 179.05GiB/s
2020-04-15 20:58:07.205269: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory
2020-04-15 20:58:07.207704: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-04-15 20:58:07.210137: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-04-15 20:58:07.210533: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-04-15 20:58:07.213099: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-04-15 20:58:07.214498: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-04-15 20:58:07.219816: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-04-15 20:58:07.219842: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1598] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

@domindominik,
As the error says Could not load dynamic library 'libcudart.so.10.1, you may have to install CUDA 10.1.
Similar issue #34759.

@gadagashwini how to fix it without install oldest Cuda version? When Tensorflow will start supporting Cuda 10.2?

@domindominik, To use CUDA 10.2 with Tensorflow 2.2. Please build the Tensorflow from source.
Follow the instructions mentioned here. And also take a look at this comment.Thanks

@domindominik,
please update on the above comment

hi  im having sort  of a different  issue but related
W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.2'; dlerror: libcudart.so.10.2: cannot open shared object file: No such file or directory
my data
NVIDIA-SMI 430.64       Driver Version: 430.64       CUDA Version: 10.1
if   i try  tf.config.list_physical_devices('GPU') i get :
2020-04-30 20:33:48.029296: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.2'; dlerror: libcudart.so.10.2: cannot open shared object file: No such file or directory 2020-04-30 20:33:48.029316: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 2020-04-30 20:34:00.226724: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1 2020-04-30 20:34:00.283711: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-04-30 20:34:00.284070: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: pciBusID: 0000:01:00.0 name: GeForce GTX 1060 with Max-Q Design computeCapability: 6.1 coreClock: 1.48GHz coreCount: 10 deviceMemorySize: 5.94GiB deviceMemoryBandwidth: 178.99GiB/s 2020-04-30 20:34:00.284163: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.2'; dlerror: libcudart.so.10.2: cannot open shared object file: No such file or directory 2020-04-30 20:34:00.285482: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10 2020-04-30 20:34:00.293913: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10 2020-04-30 20:34:00.294188: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10 2020-04-30 20:34:00.296217: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10 2020-04-30 20:34:00.297107: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10 2020-04-30 20:34:00.300307: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2020-04-30 20:34:00.300328: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1592] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform. Skipping registering GPU devices...
i install  2.1.0-rc2 tensorflow via pacman   is theire a easy fix for this

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

https://linuxconfig.org/how-to-install-cuda-on-ubuntu-20-04-focal-fossa-linux

See https://github.com/tensorflow/tensorflow/issues/38194
Just make sure you have installed everything (developer version) and then you can run:
sudo apt-get install cuda-cudart-10-1

im not in ubuntu   but  i find a solution using conda

Using Cuda 10.1 with TensorFlow 2.2 solves the issue.

https://github.com/tensorflow/tensorflow/issues/38578#issuecomment-636414914  > sudo apt-get install cuda-cudart-10-1
install ing "cuda-cudart-10-1" seems not sufficient..
libcublas.so.10 still missing in my ub18. install.
i will try intstall complete "cuda-10-1" to solve this issue..

sudo apt-get install cuda-cudart-10-1
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cuda-cudart-10-1
It doesn't work for my case

try to look if you have cuda* in your repo
 apt search --names-only 'cuda'
and lookup the packages (...10-1/10-2...) like:

Same issue here.
`python
Python 3.7.8 (default, Jul 29 2020, 02:37:24)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import keras
2020-07-30 02:53:30.178267: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory
2020-07-30 02:53:30.178489: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

`

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be:
sudo apt-get install libcudart10.1

Use conda for env management and just specify what cuda version you want TF to use. If you don't specify it, conda uses the latest version. The advantage of this method is that you don't have to uninstall cuda 11 or 10.2
conda install tensorflow-gpu cudatoolkit=10.1

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be:
sudo apt-get install libcudart10.1

Its work for me

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be:
sudo apt-get install libcudart10.1

It did work for me
thanks a million.

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be:
sudo apt-get install libcudart10.1

It did work for me
thanks a million.

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be:
sudo apt-get install libcudart10.1

I try your solution in my env(tensorflow=2.3.0)，and it shows the following errors：
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libcudart10.1
E: Couldn't find any package by glob 'libcudart10.1'
E: Couldn't find any package by regex 'libcudart10.1'
have you ever seen this ？

I tried every methods given so , but still cannot  solve the problem.
Here is my environment configuration and the specific errors.
miniconda3
cuda 10.2
python  3.7.6
tensorflow 2.3.0
2020-12-13 09:55:56.519753: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-13 09:55:57.461483: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1
2020-12-13 09:55:57.476208: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-12-13 09:55:57.476742: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce RTX 2070 computeCapability: 7.5
coreClock: 1.62GHz coreCount: 36 deviceMemorySize: 7.79GiB deviceMemoryBandwidth: 417.29GiB/s
2020-12-13 09:55:57.476777: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
2020-12-13 09:55:57.476881: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcublas.so.10'; dlerror: libcublas.so.10: cannot open shared object file: No such file or directory
2020-12-13 09:55:57.476923: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory
2020-12-13 09:55:57.476963: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory
2020-12-13 09:55:57.477048: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory
2020-12-13 09:55:57.477102: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcusparse.so.10'; dlerror: libcusparse.so.10: cannot open shared object file: No such file or directory
2020-12-13 09:55:57.479588: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudnn.so.7
2020-12-13 09:55:57.479603: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1753] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2020-12-13 09:55:57.479778: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-12-13 09:55:57.502915: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency:<PHONE_NUMBER> Hz
2020-12-13 09:55:57.504184: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55ec536d5490 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-12-13 09:55:57.504243: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-12-13 09:55:57.507338: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-12-13 09:55:57.507386: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263]

If you have established communication with your GPU check nvidia-smi in bash then simply install the required cuda tools version with conda. far cleaner and can differs from environment to environment for your needs. simply execute in bash:
conda install cudatoolkit=10.1

If you have established communication with your GPU check nvidia-smi in bash then simply install the required cuda tools version with conda. far cleaner and can differs from environment to environment for your needs. simply execute in bash:
conda install cudatoolkit=10.1

As per the reference from TensorFlow, the compiled installers of TensorFlow 2.1.0 - 2.3.0 for GPU use were based on CUDA 10.1 and cuDNN 7.6. While the most recent version 2.4.0 is starting to be compiled with CUDA 11.0 and cuDNN 8.0.

Version
Python version
Compiler
Build tools
cuDNN
CUDA

tensorflow-2.4.0
3.6-3.8
GCC 7.3.1
Bazel 3.1.0
8.0
11.0

tensorflow-2.3.0
3.5-3.8
GCC 7.3.1
Bazel 3.1.0
7.6
10.1

tensorflow-2.2.0
3.5-3.8
GCC 7.3.1
Bazel 2.0.0
7.6
10.1

tensorflow-2.1.0
2.7, 3.5-3.7
GCC 7.3.1
Bazel 0.27.1
7.6
10.1

So if you want to install TensorFlow 2.1.0-2.3.0 through the compiled installers (typically via pip), you must have CUDA 10.1 installed.
To check if CUDA 10.1 is correctly installed, please check:

run nvidia-smi to check whether the nvidia driver and CUDA are installed correctly at system level;
run export to see if CUDA path (usually /usr/local/cuda/) is in the environment variables;
run nvcc -V to check CUDA version.

If you have CUDA 10.2 installed instead of CUDA 10.1, the following trick may help:
cd /usr/local/cuda/lib64/
sudo ln -sf libcudart.so.10.2 libcudart.so.10.1

this creates a symbolic link from libcudart.so.10.1 to libcudart.so.10.2.
Another solution is to create an environment and install cudatoolkit 10.1 through conda, and reinstall TensorFlow in this environment. The solution provides environment level CUDA 10.1 dynamic libraries for TensorFlow.

As per the reference from TensorFlow, the compiled installers of TensorFlow 2.1.0 - 2.3.0 for GPU use were based on CUDA 10.1 and cuDNN 7.6. While the most recent version 2.4.0 is starting to be compiled with CUDA 11.0 and cuDNN 8.0.

Version
Python version
Compiler
Build tools
cuDNN
CUDA

tensorflow-2.4.0
3.6-3.8
GCC 7.3.1
Bazel 3.1.0
8.0
11.0

tensorflow-2.3.0
3.5-3.8
GCC 7.3.1
Bazel 3.1.0
7.6
10.1

tensorflow-2.2.0
3.5-3.8
GCC 7.3.1
Bazel 2.0.0
7.6
10.1

tensorflow-2.1.0
2.7, 3.5-3.7
GCC 7.3.1
Bazel 0.27.1
7.6
10.1

So if you want to install TensorFlow 2.1.0-2.3.0 through the compiled installers (typically via pip), you must have CUDA 10.1 installed.
To check if CUDA 10.1 is correctly installed, please check:

run nvidia-smi to check whether the nvidia driver and CUDA are installed correctly at system level;
run export to see if CUDA path (usually /usr/local/cuda/) is in the environment variables;
run nvcc -V to check CUDA version.

If you have CUDA 10.2 installed instead of CUDA 10.1, the following trick may help:
cd /usr/local/cuda/lib64/
sudo ln -sf libcudart.so.10.2 libcudart.so.10.1

this creates a symbolic link from libcudart.so.10.1 to libcudart.so.10.2.
Another solution is to create an environment and install cudatoolkit 10.1 through conda, and reinstall TensorFlow in this environment. The solution provides environment level CUDA 10.1 dynamic libraries for TensorFlow.

Great found! @forskamse
Note that your three step comments may be a bit of misleading. The nvidia-smi version is the driver version, as long as it is greater than 10.1 we are fine (backward compatible). The key is nvcc -V (the CUDA version).

Great found! @forskamse
Note that your three step comments may be a bit of misleading. The nvidia-smi version is the driver version, as long as it is greater than 10.1 we are fine (backward compatible). The key is nvcc -V (the CUDA version).

Managed to install tensorflow-gpu 2.3 with cudatoolkit 10.1 on my cuda 10.2 driver(Jan 19th,2021)
conda create --name tf2 python=3.8.3
conda install cudnn==7.6.4
pip install tensorflow-gpu=2.3

Managed to install tensorflow-gpu 2.3 with cudatoolkit 10.1 on my cuda 10.2 driver(Jan 19th,2021)
conda create --name tf2 python=3.8.3
conda install cudnn==7.6.4
pip install tensorflow-gpu=2.3

Use conda for env management and just specify what cuda version you want TF to use. If you don't specify it, conda uses the latest version. The advantage of this method is that you don't have to uninstall cuda 11 or 10.2
conda install tensorflow-gpu cudatoolkit=10.1

I don't know why but this solved my problem! Thanks! @ioannist @MuhammadHakami

cd /usr/local/cuda/lib64/
sudo ln -sf libcudart.so.10.2 libcudart.so.10.1

Thanks a ton command solved the issue

The proper command to install cudart and avoid this error as in tensorflow 2.3.1 would be: sudo apt-get install libcudart10.1

This worked for me


Can not install azure-identity with poetry with --allow-prereleases

Package Name: azure-identity
Package Version: 1.4.0b6
Operating System: Ubuntu 20.04
Python Version: 3.8

Describe the bug
When using Poetry to manage a python project. Installing the current pre-release version of azure-identity fails with a max recursion depth error.
To Reproduce
Steps to reproduce the behavior:

Install poetrypip install poetry

Set up a new poetry project in an empty directorymkdir azure-identity-test
poetry init -n # -n specifies non-interactive and uses defaults

Install the prerelease of azure-identitypoetry add azure-identity --allow-prereleases

Observe the following outputCreating virtualenv azure-identity-test-ZMyS48q3-py3.8 in /home/nzsmartie/.cache/pypoetry/virtualenvs
Using version ^1.4.0-beta.6 for azure-identity

Updating dependencies
Resolving dependencies... (8.4s)

[RecursionError]
maximum recursion depth exceeded while calling a Python object

Expected behavior
The package would install without issues along with its dependencies.
Additional context
Poetry has difficulty with multiple same name dependencies with different version requirements: https://github.com/python-poetry/poetry/issues/1238
When enabling verbosity as the package is installed. there's an almost never ending loop of the following issue being produced.
Different requirements found for portalocker (>=1.0,<2.0) and portalocker (>=1.6,<2.0).

as produced by:
poetry add azure-identity --allow-prereleases -vvv

Thanks for reporting this. azure-identity gets portalocker transitively from msal-extensions. Since we do need that library and it isn't part of the Azure SDK, I'm closing this issue in favor of AzureAD/microsoft-authentication-extensions-for-python#62.


Wrap JS Date time value when marshalling to DateTime

Previously, this code would assume the result of getTime on a JS Date object would be a double. However, one critical value does not satisfy this assumption: the Unix epoch. This is because the result is 0, which is representable as an integer.
The fix is to wrap the value from getTime. We can assume the wrapped value is a double, so we cast to that from the resulting object, then cast its value to long.
I was sure I had tested this initially, and I probably did when writing the code, but since I wrote tests after, that case was likely not covered when adjusting the casting logic a bit while cleaning up. Whoops!
This PR contains:

[x] Tests

Yeah, that's due to me removing a part of one test that was redundant as well (as that exact same thing is covered in isolation in the following test). Without that we get a cleaner diff of the test file:
index e88f82f..0683065 100644
--- a/Source/Fuse.Reactive.JavaScript/Tests/DateMarshalTest.uno
+++ b/Source/Fuse.Reactive.JavaScript/Tests/DateMarshalTest.uno
@@ -86,6 +86,33 @@ namespace Fuse.Reactive.Test
                }

                [Test]
+               public void JSRoundTripUnixEpochDateMatches()
+               {
+                       var e = new UX.DateMarshal.UnixEpochDateRoundTrip();
+                       using (var root = TestRootPanel.CreateWithChild(e))
+                       {
+                               e.RoundTripComponent.CallReadDate.Perform();
+                               root.StepFrameJS();
+                       }
+               }
+
+               [Test]
+               public void JSRoundTripUnixEpochDateTimeMatches()
+               {
+                       var e = new UX.DateMarshal.UnixEpochDateRoundTrip();
+                       using (var root = TestRootPanel.CreateWithChild(e))
+                       {
+                               root.StepFrameJS();
+
+                               // Expected date/time (UTC): January 1 1970 00:00:00 (Unix Epoch)
+                               const long expectedTicks =<PHONE_NUMBER>00000000L;
+                               var expectedDateTime = new DateTime(expectedTicks, DateTimeKind.Utc);
+
+                               Assert.AreEqual(e.DateTimeComponent.TheDateTime, expectedDateTime);
+                       }
+               }
+
+               [Test]
                public void NativeModuleDateRoundTripAddsAnHour()
                {
                        var e = new UX.DateMarshal.NativeModuleDateRoundTrip();


Each unit is its own board, hierarchy.

So when you click on a unit, it "opens" and you can see its children arranged on the board.


Auto Close Spinner Popup Layout

Please add auto close menu layout if user didn't click on a menu item.
And close the menu layout if the user clicked on another part of the layout

Hi, you can achieve this with the following methods:
.setIsFocusable(true)
.setLifecycleOwner(this)


UISemanticContentAttribute error

Hi,
Thanks for your repo.
I'm using JTAppleCalendar version 7.0.6, and my app development target is 9.0 as you can see in the image below.
I got the following error:
'UISemanticContentAttribute' is only available on iOS 9.0 or newer
Any help ?

I know your project is target 9.0, but
for what version do you have the pods?

1.3.1

@Maryom can you join me here?
I am unclear on your question -> https://gitter.im/patchthecode/JTAppleCalendar

Clarification made.
Setting the version to at least 9.0 fixed the issue.


Add Battery Stats Project

I have created project for getting battery stats including remaining time left and want to add it to the projects list. So, please consider this ..

👍


Mangarock Windows 10

Bug report
Environment (please complete the following information):

Description
Data

OS
Windows 10

Python version
3.7.0

Pip version
18.1

Manga-py version
1.3.32

URL
https://mangarock.com/manga/mrs-serie-253787

To Reproduce:
Steps to reproduce the behavior:
manga-py --cbz --zero-fill --rename-pages --no-webp --destination Manga/ https://mangarock.com/manga/mrs-serie-253787
Additional context
File "c:\program files (x86)\python37-32\lib\site-packages\manga_py\providers_init_.py", line 789, in get_provider
provider = import('{}.{}'.format(fromlist, i), fromlist=[fromlist])
File "c:\program files (x86)\python37-32\lib\site-packages\manga_py\providers\mangarock_com.py", line 1, in
from manga_py.crypt import MangaRockComCrypt
File "c:\program files (x86)\python37-32\lib\site-packages\manga_py\crypt_init_.py", line 2, in
from .base_lib import BaseLib
File "c:\program files (x86)\python37-32\lib\site-packages\manga_py\crypt\base_lib.py", line 8, in
from Crypto.Cipher import AES
File "c:\program files (x86)\python37-32\lib\site-packages\Crypto\Cipher\AES.py", line 50, in
from Crypto.Cipher import _AES

Hi. Tell me, how did you install python?
The best solution for your situation is to install anaconda (https://repo.anaconda.com/archive/Anaconda2-4.4.0-Windows-x86_64.exe)
The fact is that windows experiences difficulties with crypt packages necessary for proper operation of the decoder.

@1271 May I ask why this old Anaconda package? I shouldn't install the latest one?

@theincognito-inc
Yes, you can use the latest version, but this is not being tested now for version python 3.7
(I'm just too lazy :-))
But it should work well.
If you have questions, or you find errors in the work, please do not hesitate to write.
Your help means a lot to me.
Thank )

Tried to reproduce the bug, but in Linux it's working OK.

Component
Value

OS
Ubuntu 16.04.5 LTS

Python version
Python 3.5.2

Pip version
pip 18.1

Manga-py version
1.4.0

URL
https://mangarock.com/manga/mrs-serie-253787

@1271 @gromenauer
Hi, was busy for the previous days. Uninstalled python completely and installed the latest Anaconda package. Python version - 3.7.0
Command used: pipenv run manga-py --cbz --zero-fill --rename-pages --no-webp --destination Manga/ https://mangarock.com/manga/mrs-serie-253787
Result got:
` 97% (46 of 47) |##############################################################  | Elapsed Time: 0:01:27 ETA:   0:00:01
cannot identify image file 'C:\Users\AGS\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
cannot identify image file 'C:\Users\AGS\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
100% (47 of 47) |################################################################| Elapsed Time: 0:01:28 Time:  0:01:28
96% (29 of 30) |#############################################################   | Elapsed Time: 0:00:34 ETA:   0:00:00
cannot identify image file 'C:\Users\AGS\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
cannot identify image file 'C:\Users\AGS\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
96% (25 of 26) |#############################################################   | Elapsed Time: 0:00:28 ETA:   0:00:01
cannot identify image file 'C:\Users\xxyyzz\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
cannot identify image file 'C:\Users\xxyyzz\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
100% (26 of 26) |################################################################| Elapsed Time: 0:00:29 Time:  0:00:29
94% (18 of 19) |############################################################    | Elapsed Time: 0:00:18 ETA:   0:00:00
cannot identify image file 'C:\Users\xxyyzz\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
cannot identify image file 'C:\Users\xxyyzz\AppData\Local\Temp\.PyMangaDownloader\temp_11676\005.mri'
100% (19 of 19) |################################################################| Elapsed Time: 0:00:19 Time:  0:00:19
.
.
.`
Finally,nothing shows up in the folder. Perhaps this is not compatible with the latest Python 3?

My ubuntu works fine with python 3.7
Provided that you have not seen errors when installing manga-py, this should work even on python 3.8 =)
I need your help.
You need to go to the folder C:\Users\xxyyzz\AppData\Local\Temp\.PyMangaDownloader\<temp_dir> and check whether the files being downloaded are images.
If possible, could you attach the archive with these files to your answer?
I will be very happy if you help me.
Thank!

@1271
I did try, I can download, but none of the files can be read by any comic book reader I have!
The individual .mri files can be opened by Paint, though.
PFA first archive:
vol_000-0.zip
PS: I had to change the extension of the archive to upload here. It was originally in cbz

@1271 Update:
Apparently, my Kali Linux also works fine with Python 3.7. I can download easily from it.
Still, it's not working in Windows 10. I have given up trying to make it work in Windows. I can easily work it in my Kali.
Thanks a lot! If anything comes up, let me know! Other than that, feel free to close this ticket! :D

OK. I'm sorry this does not work in windows for you.
But I'm glad you found a way out of their situation.


Add Pact provider test and circleCI workflow

Is my understanding correct that the pact tests will run in a separate workflow from "build and deploy" and that, as such, automatic deployment to the DEV env won't be impacted by a failure in the pact tests?

Is my understanding correct that the pact tests will run in a separate workflow from "build and deploy" and that, as such, automatic deployment to the DEV env won't be impacted by a failure in the pact tests?

The pact tests still run as part of the build and deploy step.  The extra workflow is so we can trigger it independently from the pact broker and it can publish back to the broker the fact that it has verified the pact file.
This is all work in progress and trying to get the basics integrating together.  We can eventually look at hooking things into the deploy pipeline in a better way so we don't deploy if there are incompatible versions etc.  Small steps.  Don't want this to be sat on a PR for ages while we figure out every nuance

Is my understanding correct that the pact tests will run in a separate workflow from "build and deploy" and that, as such, automatic deployment to the DEV env won't be impacted by a failure in the pact tests?

The pact tests still run as part of the build and deploy step. The extra workflow is so we can trigger it independently from the pact broker and it can publish back to the broker the fact that it has verified the pact file.
This is all work in progress and trying to get the basics integrating together. We can eventually look at hooking things into the deploy pipeline in a better way so we don't deploy if there are incompatible versions etc. Small steps. Don't want this to be sat on a PR for ages while we figure out every nuance

No worries - I'm trying to understand how this fits together with CI and CD and I do understand that this is a work in progress.
So if I understand correctly, if the pact tests fail then CI will be broken but we only publish to the pact server when the pact worklfow is triggered manually in CircleCI. Is that right?


Add sorting and filtering to homepage

Users should be able to sort and filter podcasts by their metadata. This is not very important currently, but may become important if more podcasts are added.
Filter options should include:

[ ] Category
[ ] Language
[ ] Keyword

Sorting options should include:

[x] Alphebetical
[x] Newest
[x] Most Listens
[x] Highest grossing
[x] Price

I think most of the important features here are done. Currently we only have one category and language, so I don't think those would get used.


Fix make sure collection types land in env.created_schema_types

@msullivan The problem with the invalid syntax for type uuid: "None" was that we were trying to re-create collection types. I'm not really sure which field was passing None for uuid. Even weirder, I got this message: modification of computed property 'backend_id' is prohibited, which is even weirder because that originates from the frontend compiler, which is probably being invoked from reflection.
Regardless, it is all fixed now. Should be safe to backport without any patches.

Oh, I had meant to say, but forgot: make the commit message be something that explains what the bug fixed is, not how it was fixed. This makes it easier to produce a useful changelog message.

@msullivan The problem with the invalid syntax for type uuid: "None" was that we were trying to re-create collection types. I'm not really sure which field was passing None for uuid.

It was id

Even weirder, I got this message: modification of computed property 'backend_id' is prohibited, which is even weirder because that originates from the frontend compiler, which is probably being invoked from reflection.

Yeah, reflection invokes the frontend compiler, but that failure is pretty weird. backend_id is not computed, but I think I remember some bug where we produce a message like that incorrectly in some broken update case...


adds support for no product key builds as well as chosen product key …

…builds
This stemmed from the observation that we need to support no product keys on the device for the 02x update recovery path. You may no build eos as so:
make KEY=thekeyiwant
OR
make NO_KEY=1
the former syntax is chosen key, the latter is no key.

Currently this results in being asked a product key. Expected behaviour is what would normally come after entering a product key with an image that is supposed to have one - asking if you want to start fresh or recover.

Currently this results in being asked a product key. Expected behaviour is what would normally come after entering a product key with an image that is supposed to have one - asking if you want to start fresh or recover.

This is outside the scope of this feature and should not be considered when evaluating the code for merging.


[Legacy Mode] After adding a new group, the recently created group is not displayed on the group page, and no success message is shown.

Describe the issue:
After adding a new group, the newly added group is not visible on the group page. Additionally, no success message is displayed, making it difficult to confirm whether the group was created successfully.
How to reproduce:

Redirected to the Groups page
Create a new group
The created group will not be visible.

Expected behavior:
The newly created group should be listed on the group page, and a success message should be displayed to confirm the successful addition.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: RC Legacy pack
OS: Mac
Database: MySQL
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

This issue is fixed from following PR.

https://github.com/wso2/identity-apps/pull/4977


Adding new Condition - moving

Proposed changes
Adding new Condition - moving.
It is useful in cases when there is a moving animation and we want to click on something inside moving element. If element is moving click might not work, so we want to be sure that moving animation has finished.
Checklist

[x] Checkstyle and unit tests pass locally with my changes by running gradle check chrome htmlunit command
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

Codecov Report

Merging #721 into master will decrease coverage by 0.14%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #721      +/-   ##
============================================
- Coverage     63.52%   63.37%   -0.15%
  Complexity      865      865
============================================
  Files           154      154
  Lines          2983     2990       +7
  Branches        291      293       +2
============================================
  Hits           1895     1895
- Misses          989      996       +7
  Partials         99       99

Impacted Files
Coverage Δ
Complexity Δ

...rc/main/java/com/codeborne/selenide/Condition.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Coverage decreased (-0.2%) to 66.689% when pulling 87cd7de78fe1349724b5f1e3e5a3644a7e68e2e5 on andrejska:master into 90991065f43b03790bb8da7821de3f91ba0de028 on codeborne:master.

I think testing animations through selenium isn't good idea... So flaky...
@andrejska May I ask you show us example of what animation do you test?

Hi,

What about adding to your application some test mode with zero animation duration.
What about extra attribute for animated element. For example, in my case (angular) elements have  attribute .ng-animation. If there is no such attribute, how about force devs to add it.

@MikeShysh

What about adding to your application some test mode with zero animation duration.
if there are many animations with different length it might require some refactoring to add such testing feature for product

What about extra attribute for animated element. For example, in my case (angular) elements have attribute .ng-animation. If there is no such attribute, how about force devs to add it.
Not all js-frameworks are providing such possibility as Angular.
https://www.w3schools.com/angular/tryit.asp?filename=try_ng_animation_css
^ in angular you can understand state of animation by checking element's class

@rosolko @BorisOsipov I have renamed this Condition to moveAround and added optional parameter of 200, so that we can avoid using some magic numbers, please check :)

@andrejska Can you please also to add some integration tests as proof of feature?
Still not completely sure about this feature 😕

@rosolko Integration tests added

@andrejska I pondered this solution and thinks that it shouldn't be part of standard conditions list.
I propose to create wiki page with custom community conditions and collect them there.
So, basic conditions will live in selenide code base, and super environment specific conditions will live in wiki.
And of course any user can see this condition and apply to their project by copying it from wiki and place somewhere in their framework.
What do you think about this solution?

@andrejska ping!

@rosolko I agree that this is quite specific case and might not be part of Selenide, although approach with wiki will make this solution sooner or later outdated, but lets see how it goes ;)

https://github.com/codeborne/selenide/wiki/Community-conditions#moving

Hi,
Eventually, I faced the situation when the proposed solution suits well. The brilliant example is default css feature - keyframes animations. Such kind of animations affects only position of the element from DOM point of view.


Update PyPI package to include default docs

Can you please update the PyPI package to include the latest merged PR :)

Apologies, @hamishfagg! Just pushed the latest as version 0.2.0.


Min-P override support via chat settings for openai backend

Pull Request Checklist
Note to first-time contributors: Please open a discussion post in Discussions and describe your changes before submitting a pull request.
Before submitting, make sure you've checked the following:

[x] Target branch: Please verify that the pull request targets the dev branch.
[x] Description: Provide a concise description of the changes made in this pull request.
[x] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
[ ] Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
[ ] Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
[ ] Testing: Have you written and run sufficient tests for validating the changes?
[x] Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
[x] Prefix: To cleary categorize this pull request, prefix the pull request title, using one of the following:

BREAKING CHANGE: Significant changes that may affect compatibility
build: Changes that affect the build system or external dependencies
ci: Changes to our continuous integration processes or workflows
chore: Refactor, cleanup, or other non-functional code changes
docs: Documentation update or addition
feat: Introduces a new feature or enhancement to the codebase
fix: Bug fix or error correction
i18n: Internationalization or localization changes
perf: Performance improvement
refactor: Code restructuring for better maintainability, readability, or scalability
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
test: Adding missing tests or correcting existing tests
WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry
Description

Add min-p override support via Chat Control. I notice the overrides where not being sent to openai api server(lm-studio).

Added

None

Changed

None

Deprecated

None

Removed

None

Fixed

add min-p param support similar to top_p in src/lib/components/chat/Chat.svelte for generateOpenAIChatCompletion function call.

Security

None

Breaking Changes

None

Additional Information
Screenshots or Videos
Default Chat Settings

Override for Temperature and Min-P

I felt like this was miss when min-p integration was done. Let me know if a discussion needs to be opened around it or any further testing is needed by my side...
For context I am using lm-studio as my backend and min-p values were not being send.

This might potentially break compatibility with other OpenAI compatible service providers, if you could verify that this PR works with notable providers, I'd greatly appreciate it!

Yes its breaking with groq https://api.groq.com/openai/v1 😭.

What do you suggest? By the way it only breaks if you override it otherwise its fine as only overridden values are being sent.
If I remove the min-p override from UI and only keep the temperature override it works.

https://openrouter.ai/ seems to be working.

I would say if we want additional param support we should use Functions and UserValves for now.

Functions worked nice. Thanks @tjbck.
"""
title: MinP
author: cosmosgenius
author_url: https://github.com/cosmosgenius
funding_url: https://github.com/cosmosgenius
version: 0.1
"""

from pydantic import BaseModel, Field
from typing import Optional

class Filter:
    class Valves(BaseModel):
        pass

    class UserValves(BaseModel):
        min_p: float = Field(default=0.01, description="Add MinP paramater")

    def __init__(self):
        # Indicates custom file handling logic. This flag helps disengage default routines in favor of custom
        # implementations, informing the WebUI to defer file-related operations to designated methods within this class.
        # Alternatively, you can remove the files directly from the body in from the inlet hook
        # self.file_handler = True

        # Initialize 'valves' with specific configurations. Using 'Valves' instance helps encapsulate settings,
        # which ensures settings are managed cohesively and not confused with operational flags like 'file_handler'.
        self.valves = self.Valves()

    def inlet(self, body: dict, __user__: Optional[dict] = None) -> dict:
        body["min_p"] = __user__["valves"].min_p
        return body

    def outlet(self, body: dict, __user__: Optional[dict] = None) -> dict:
        return body

Closing the pr, as it can be done via Functions if needed.


cava: add pipewire support

Description of changes
Fixes  #249876
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[X] Fits CONTRIBUTING.md.

Looks good! But you might want to make pipewire support optional with something like
{
 # ...
  , withPipewire ? true
}:

and
buildInputs = [ ] ++ lib.optionals withPipewire [ pipewire ];

Not everyone uses PW.

I don't think we need to gate this behind an argument. Not everyone uses pulse yet we build support for it here as well. I would typically reserve these enable arguments for when enable/disabling them has a fairly large impact, which I don't see here. The issue with arguments like these is that without reading the package source itself, you would have no idea they exist. For someone just doing nix-shell -p cava it's as a good as not having any support at all. They make sense when you expose two different top-level packages, ie cava-pulse and cava-pipewire. But this seems quite overkill in this case. That's just my own two cents, I will defer to what the package maintainers would like to do here.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2614

This was added with an enable argument as part of another PR(https://github.com/NixOS/nixpkgs/pull/249930), closing.


Compress full logo

I've run the source image through SVGO to compress it. Even though the build process goes through SVGO, the precision is higher to be safe and not lose any detail. For this particular logo, we can safely use precision of 0 and we don't lose any detail, but results in a drastically smaller file size.
I've compared the 2 images (before/after) using https://rsmbl.github.io/Resemble.js/ and there's a 1.41% difference between them, plus I can't see any visual difference. See the visual diff on this PR: https://github.com/nice-digital/nice-icons/pull/20/files?short_path=a57f433#diff-a57f4333a1e3595078d4e27064d15c1b.
The SVGO process reported the following size reduction: 21.989 KiB - 65.9% = 7.496 KiB
I used the following SVGO options in a .svgo.yml, different from the default config:
   - convertPathData:
        noSpaceAfterFlags: false

This avoid Expected a flag, got "01" at index "72" errors when building the icon font.
The command I ran was npx svgo logo-full.svg -o logo-full.min.svg -p 0 --config=".svgo.yml" --multipass. Notice the -p 0 option for reducing the precision.

In the case of CKS, we're using the React component version of global nav to include within the built HTML files (via Gatsby). Global nav in turn includes this full logo SVG. In CKS we build 12,500 or so chapter pages which includes global nav on every page. So saving ~14.5Kb * 12,500 pages equates to 180Mb of saving (!) in the final build artifact size. And a smaller payload for a user to download.


Add MS SQL Server Errorlog Support

Description

This PR adds support for Microsoft SQL Server error logs.
Related issue

Code for this PR references this PR from 03/2022
How has this been tested?

Checklist:

Unit tests

[x] Unit tests do not apply.
[ ] Unit tests have been added/modified and passed for this PR.

Integration tests

[ ] Integration tests do not apply.
[x] Integration tests have been added/modified and passed for this PR.

Documentation

[ ] This PR introduces no user visible changes.
[ ] This PR introduces user visible changes and the corresponding documentation change has been made.

Minor version bump

[ ] This PR introduces no new features.
[ ] This PR introduces new features, and there is a separate PR to bump the minor version since the last release already.
[ ] This PR bumps the version.

Just giving an update from our side chats: this is blocked on not having UTF-16 support in Fluent Bit, and that support has not yet been prioritized. We'll give another update here once that changes.


make build-container fails due to missing golang base image

Dockerfile.build (used to compile in a container) references a golang:1.5-cross image, which is not an official image (the latest cross image is 1.4.3). As this is not being cross compiled, it should probably use the latest golang base image.

Closing as PR was merged.