Volume re-sizing not compatible with azure disk ?

Hi ,
@prudhvigodithi @swoehrl-mw
I have installed Opensearch operator on AKS  with custom storage classes & cluster manifest given below.
Then I wanted to test the volume scaling as mentioned in the user guide  document  (allow volume expansion is set to true.)
But it dint work as expected.
below is the message I get when I describe pvc :
$ k describe pvc data-devops-cluster-masters-0
Name:          data-devops-cluster-masters-0
Namespace:     opensearch-operator
StorageClass:  managed-standard-v1
Status:        Bound
Volume:        pvc-a5985da4-5604-4464-9d34-ceada29b667f
Labels:        opensearch.role=master
               opster.io/opensearch-cluster=devops-cluster
               opster.io/opensearch-nodepool=masters
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: disk.csi.azure.com
               volume.kubernetes.io/storage-resizer: disk.csi.azure.com
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      7Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Used By:       devops-cluster-masters-0
Conditions:
  Type       Status  LastProbeTime                     LastTransitionTime                Reason  Message
  ----       ------  -----------------                 ------------------                ------  -------
  Resizing   True    Mon, 01 Jan 0001 00:00:00 +0000   Thu, 02 Jun 2022 10:57:55 +0200
Events:
  Type     Reason              Age                  From                                 Message
  ----     ------              ----                 ----                                 -------
  Normal   ExternalExpanding   2m37s                volume_expand                        CSI migration enabled for kubernetes.io/azure-disk; waiting for external resizer to expand the pvc
  Normal   Resizing            37s (x9 over 2m37s)  external-resizer disk.csi.azure.com  External resizer is resizing volume pvc-a5985da4-5604-4464-9d34-ceada29b667f
  Warning  VolumeResizeFailed  36s (x9 over 2m36s)  external-resizer disk.csi.azure.com  resize volume "pvc-a5985da4-5604-4464-9d34-ceada29b667f" by resizer "disk.csi.azure.com" failed: rpc error: code = Internal desc = failed to resize disk(/subscriptions/35c6af02-1a76-46b2-8da0-a80cca015920/resourceGroups/elastic-fluxv2-nrg/providers/Microsoft.Compute/disks/pvc-a5985da4-5604-4464-9d34-ceada29b667f) with error(Retriable: false, RetryAfter: 0s, HTTPStatusCode: 409, RawError: {
  "error": {
    "code": "OperationNotAllowed",
    "message": "Cannot resize disk pvc-a5985da4-5604-4464-9d34-ceada29b667f while it is attached to running VM /subscriptions/35c6af02-1a76-46b2-8da0-a80cca015920/resourceGroups/elastic-fluxv2-nrg/providers/Microsoft.Compute/virtualMachineScaleSets/aks-master1-22371257-vmss/virtualMachines/aks-master1-22371257-vmss_2. Resizing a disk of an Azure Virtual Machine requires the virtual machine
to be deallocated. Please stop your VM and retry the operation."
  }
})

storage class manifest :
---
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-premium-v1
parameters:
  cachingmode: ReadOnly
  kind: Managed
  storageaccounttype: Premium_LRS
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate
---
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-standard-v1
parameters:
  cachingmode: ReadOnly
  kind: Managed
  storageaccounttype: StandardSSD_LRS
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate

Cluster manifiest :
apiVersion: opensearch.opster.io/v1
kind: OpenSearchCluster
metadata:
  name: devops-cluster
spec:
  general:
    serviceName: devops-cluster
    version: 1.3.1
  dashboards:
    enable: true
    version: 1.3.1
    replicas: 1
    resources:
      requests:
         memory: "512Mi"
         cpu: "200m"
      limits:
         memory: "512Mi"
         cpu: "200m"
  nodePools:
  - component: masters
    nodeSelector: {"usedFor": "Master"}
    jvm: "-Xmx1024M -Xms1024M"
    tolerations:
      - key: "usedFor"
        operator: "Exists"
        effect: "NoSchedule"
    replicas: 3
    diskSize: "8Gi"
    resources:
       requests:
          memory: "2Gi"
          cpu: "500m"
       limits:
          memory: "2Gi"
          cpu: "500m"
    roles:
      - "master"
    persistence:
      pvc:
        storageClass: managed-standard-v1
        accessModes:
        - ReadWriteOnce
  - component: hot-datas
    additionalConfig:
      node.attr.temp: hot
    nodeSelector: {"usedFor": "Hot"}
    jvm: "-Xmx1024M -Xms1024M"
    tolerations:
      - key: "usedFor"
        operator: "Exists"
        effect: "NoSchedule"
    replicas: 2
    diskSize: "50Gi"
    resources:
       requests:
          memory: "2Gi"
          cpu: "500m"
       limits:
          memory: "2Gi"
          cpu: "500m"
    roles:
      - "data"
    persistence:
      pvc:
        storageClass: managed-premium-v1
        accessModes:
        - ReadWriteOnce
  - component: warm-datas
    additionalConfig:
      node.attr.temp: warm
    nodeSelector: {"usedFor": "Warm"}
    jvm: "-Xmx1024M -Xms1024M"
    tolerations:
      - key: "usedFor"
        operator: "Exists"
        effect: "NoSchedule"
    replicas: 2
    diskSize: "100Gi"
    resources:
       requests:
          memory: "2Gi"
          cpu: "500m"
       limits:
          memory: "2Gi"
          cpu: "500m"
    roles:
      - "data"
    persistence:
      pvc:
        storageClass: managed-standard-v1
        accessModes:
        - ReadWriteOnce

Hey @KannappanSomu
I was able to test the scaling in AWS with custom storage class and pass this to the persistence.pvc settings
StorageClass
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gp2-test
provisioner: kubernetes.io/aws-ebs
allowVolumeExpansion: true
parameters:
  type: gp2
  fsType: ext4

Cluster YAML
apiVersion: opensearch.opster.io/v1
kind: OpenSearchCluster
metadata:
  name: devops-cluster
spec:
  general:
    serviceName: devops-cluster
    version: 1.3.1
  dashboards:
    enable: true
    version: 1.3.1
    replicas: 1
  nodePools:
  - component: masters
    jvm: "-Xmx1024M -Xms1024M"
    replicas: 1
    diskSize: "11Gi"
    roles:
      - "master"
    persistence:
      pvc:
        storageClass: gp2-test
        accessModes:
        - ReadWriteOnce
  - component: hot-datas
    additionalConfig:
      node.attr.temp: hot
    jvm: "-Xmx1024M -Xms1024M"
    replicas: 1
    diskSize: "11Gi"
    roles:
      - "data"
    persistence:
      pvc:
        storageClass: gp2-test
        accessModes:
        - ReadWriteOnce
  - component: warm-datas
    additionalConfig:
      node.attr.temp: warm
    jvm: "-Xmx1024M -Xms1024M"
    replicas: 1
    diskSize: "11Gi"
    roles:
      - "data"
    persistence:
      pvc:
        storageClass: gp2-test
        accessModes:
        - ReadWriteOnce

k  get pods
NAME                                                     READY   STATUS    RESTARTS       AGE
devops-cluster-dashboards-574cbcb7cc-ztwvl               1/1     Running   0              4m54s
devops-cluster-hot-datas-0                               1/1     Running   0              4m54s
devops-cluster-masters-0                                 1/1     Running   0              4m54s
devops-cluster-warm-datas-0                              1/1     Running   1 (4m1s ago)   4m54s
opensearch-operator-controller-manager-bc58884f6-cj9pl   2/2     Running   0              13m

I have found support articles related to AKS, please check.
https://github.com/Azure/AKS/issues/1477
https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/known-issues/sizegrow.md

@prudhvigodithi  thanks for spending time on this.
I had to follow this document  to register the new azure live resize feature which is in public preview.
Then just changing the  disksize in cluster manifest , patched the pvc and everything worked as expected.
see below events.
I have a question about this volume resize , during the resize, the shards in the cluster will be in green health ?
is my un understanding correct?
$ k describe pvc data-devops-cluster-hot-datas-0
Name:          data-devops-cluster-hot-datas-0
Namespace:     opensearch-operator
StorageClass:  managed-premium-v1
Status:        Bound
Volume:        pvc-589aaea7-d51d-4242-9b35-7e2ed79fa882
Labels:        opster.io/opensearch-cluster=devops-cluster
               opster.io/opensearch-nodepool=hot-datas
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: disk.csi.azure.com
               volume.kubernetes.io/storage-resizer: disk.csi.azure.com
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      51Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Used By:       devops-cluster-hot-datas-0
Events:
  Type    Reason                      Age    From
             Message
  ----    ------                      ----   ----
             -------
  Normal  Provisioning                7m29s  disk.csi.azure.com_csi-azuredisk-controller-755b6bfb98-89hn2_2f8d3046-68a8-455a-b05b-fd22b264e023  External provisioner is provisioning volume for claim "opensearch-operator/data-devops-cluster-hot-datas-0"
  Normal  ExternalProvisioning        7m29s  persistentvolume-controller
             waiting for a volume to be created, either by external provisioner "disk.csi.azure.com" or manually created by system
administrator
  Normal  ProvisioningSucceeded       7m26s  disk.csi.azure.com_csi-azuredisk-controller-755b6bfb98-89hn2_2f8d3046-68a8-455a-b05b-fd22b264e023  Successfully provisioned volume pvc-589aaea7-d51d-4242-9b35-7e2ed79fa882
  Normal  ExternalExpanding           86s    volume_expand
             CSI migration enabled for kubernetes.io/azure-disk; waiting for external resizer to expand the pvc
  Normal  Resizing                    86s    external-resizer disk.csi.azure.com
             External resizer is resizing volume pvc-589aaea7-d51d-4242-9b35-7e2ed79fa882
  Normal  FileSystemResizeRequired    53s    external-resizer disk.csi.azure.com
             Require file system resize of volume on node
  Normal  FileSystemResizeSuccessful  5s     kubelet
             MountVolume.NodeExpandVolume succeeded for volume "pvc-589aaea7-d51d-4242-9b35-7e2ed79fa882"

Hey @KannappanSomu, Yes, after resizing the volumes you should walk trough controlled rolling restart, so you cluster should stay in green state.

Hi @idanl21 ,
So after resizing , is that we have to do rolling restart manually on statefulset or is it taken care by the operator ?

thanks , we can close this thread !


hello dear

First : I want to thank you very much for your modules. it's amazing .
Second : I want to ask you a question about the high and low of the daily temperature. High temperatures are correct. low temperatures are not accurate. How can i fix that ?

Thank you for you kind words.
The temps are coming directly from the API (OpenWeather) data. This cannot be changed unless you code it to make adjustments to the data coming from the api.


Error when deserializing Enum with mismatched weight tensor shapes across variants

Describe the bug

When attempting to deserialize a PyTorch model containing Sequential layers with tensors having different dimensions in weight (e.g., Linear and Conv1d) into a Burn model, the process panics due to a dimension mismatch error.
To Reproduce

create model:

def gen_seq_block_test(path: pathlib.Path):
    class SeqModel(torch.nn.Module):
        def __init__(self, *args, **kwargs) -> None:
            super().__init__(*args, **kwargs)
            self.seq = torch.nn.Sequential(
                torch.nn.Linear(8, 4),
                torch.nn.Conv1d(4, 4, 3),
            )

    model = SeqModel()
    torch.save(model.state_dict(), path / "test_seq.pt")

load it in Burn:

#[derive(Module, Debug)]
enum SeqType<B: Backend> {
    Linear(Linear<B>),
    Conv1d(Conv1d<B>),
}

#[derive(Module, Debug)]
struct SeqModel<B: Backend> {
    seq: Vec<SeqType<B>>,
}

impl<B: Backend> SeqModel<B> {
    fn new(device: &B::Device) -> Self {
        let linear = LinearConfig::new(8, 4).init(device);
        let conv = Conv1dConfig::new(4, 4, 3).init(device);
        Self {
            seq: vec![SeqType::Linear(linear), SeqType::Conv1d(conv)],
        }
    }
}

fn main() {
    let device = Default::default();
    let record = PyTorchFileRecorder::<FullPrecisionSettings>::default()
        .load("./test_seq.pt".into(), &device)
        .expect("Failed when decoding state dict");
    let model = SeqModel::<LibTorch>::new(&device);
    let model = model.load_record(record);
    println!("{:#?}", model);
}

get panic:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
thread 'main' panicked at /home/med/.cargo/registry/src/index.crates.io-6f17d22bba15001f/b
urn-tensor-0.14.0/src/tensor/api/base.rs:722:9:
=== Tensor Operation Error ===
  Operation: 'From Data'
  Reason:
    1. Given dimensions differ from the tensor rank. Tensor rank: '2', given dimensions: '[4, 4, 3]'.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Expected behavior

Should be able to decode.
Debugging info
rust-gdb shows that
#12 0x00005555556a0ff8 in burn_import::pytorch::adapter::{impl#0}::adapt_linear<burn_core::record::settings::FullPrecisionSettings, burn_tch::backend::LibTorch<f32, i8>> (data=...) at /home/med/.cargo/registry/src/index.crates.io-6f17d22bba15001f/burn-import-0.14.0/src/pytorch/adapter.rs:35
35              let weight: Param<Tensor<B, 2>> = weight
>>> list
30              let weight = map
31                  .remove("weight")
32                  .expect("Failed to find 'weight' key in map");
33
34              // Convert the weight parameter to a tensor (use default device, since it's quick operation).
35              let weight: Param<Tensor<B, 2>> = weight
36                  .try_into_record::<_, PS, DefaultAdapter, B>(&B::Device::default())
37                  .expect("Failed to deserialize weight");
38
39              // Do not capture transpose op when using autodiff backend
>>> p weight
$11 = burn_core::record::serde::data::NestedValue::Map(HashMap(size=2) = {
    ["\211\352\256\002P"] = burn_core::record::serde::data::NestedValue::Map(HashMap(size=3) = {
        ["\371D\256\002P"] = burn_core::record::serde::data::NestedValue::Map(HashMap(size=1) = {
            ["dloia"] = burn_core::record::serde::data::NestedValue::String(<incomplete sequence \356\256>)
          }),
        ["\334\352\256\002P"] = burn_core::record::serde::data::NestedValue::U8s(Vec(size=192) = {[0] = 63, [1] = 0, [2] = 143, [3] = 60, [4] = 157, [5] = 103, [6] = 36, [7] = 62, [8] = 187, [9] = 107, [10] = 73, [11] = 63, [12] = 142, [13] = 112, [14] = 216, [15] = 190, [16] = 178, [17] = 249, [18] = 39, [19] = 63, [20] = 177, [21] = 233, [22] = 175, [23] = 62, [24] = 25, [25] = 106, [26] = 11, [27] = 191, [28] = 33, [29] = 232, [30] = 53, [31] = 190, [32] = 253, [33] = 130, [34] = 53, [35] = 191, [36] = 215, [37] = 113, [38] = 229, [39] = 62, [40] = 151, [41] = 105, [42] = 204, [43] = 60, [44] = 232, [45] = 17, [46] = 145, [47] = 63, [48] = 221, [49] = 231, [50] = 22, [51] = 63, [52] = 207, [53] = 112, [54] = 94, [55] = 190, [56] = 109, [57] = 116, [58] = 49, [59] = 191, [60] = 182, [61] = 162, [62] = 36, [63] = 191, [64] = 205, [65] = 77, [66] = 214, [67] = 190, [68] = 193, [69] = 33, [70] = 236, [71] = 190, [72] = 67, [73] = 217, [74] = 103, [75] = 63, [76] = 34, [77] = 107, [78] = 164, [79] = 61, [80] = 4, [81] = 8, [82] = 60, [83] = 62, [84] = 230, [85] = 158, [86] = 179, [87] = 61, [88] = 241, [89] = 76, [90] = 49, [91] = 63, [92] = 183, [93] = 70, [94] = 100, [95] = 190, [96] = 189, [97] = 233, [98] = 25, [99] = 191, [100] = 47, [101] = 51, [102] = 181, [103] = 62, [104] = 161, [105] = 182, [106] = 9, [107] = 191, [108] = 170, [109] = 32, [110] = 137, [111] = 62, [112] = 115, [113] = 114, [114] = 22, [115] = 63, [116] = 23, [117] = 169, [118] = 143, [119] = 62, [120] = 151, [121] = 206, [122] = 103, [123] = 190, [124] = 60, [125] = 147, [126] = 197, [127] = 190, [128] = 102, [129] = 211, [130] = 148, [131] = 61, [132] = 187, [133] = 152, [134] = 236, [135] = 61, [136] = 118, [137] = 201, [138] = 141, [139] = 59, [140] = 99, [141] = 180, [142] = 145, [143] = 189, [144] = 208, [145] = 204, [146] = 201, [147] = 61, [148] = 12, [149] = 115, [150] = 18, [151] = 191, [152] = 171, [153] = 56, [154] = 45, [155] = 62, [156] = 105, [157] = 126, [158] = 89, [159] = 63, [160] = 5, [161] = 25, [162] = 180, [163] = 63, [164] = 12, [165] = 54, [166] = 56, [167] = 62, [168] = 103, [169] = 237, [170] = 55, [171] = 189, [172] = 161, [173] = 184, [174] = 106, [175] = 62, [176] = 36, [177] = 127, [178] = 144, [179] = 190,
[180] = 216, [181] = 52, [182] = 7, [183] = 63, [184] = 28, [185] = 13, [186] = 60, [187]= 191, [188] = 162, [189] = 113, [190] = 55, [191] = 63}),
        [" nK\340\377"] = burn_core::record::serde::data::NestedValue::Vec(Vec(size=3) = {[0] = <error reading variable: Could not find active enum variant>, [1] = burn_core::record::serde::data::NestedValue::U64(4), [2] = burn_core::record::serde::data::NestedValue::U64(3)})
      }),
    ["\200n"] = burn_core::record::serde::data::NestedValue::String("\t\354\256\002PU\000\000\237\023")
  })
>>> up 1
#13 0x00005555556a1b03 in burn_core::record::serde::adapter::BurnModuleAdapter::adapt<burn_import::pytorch::adapter::PyTorchAdapter<burn_core::record::settings::FullPrecisionSettings, burn_tch::backend::LibTorch<f32, i8>>> (name="Linear", data=...) at /home/med/.cargo/registry/src/index.crates.io-6f17d22bba15001f/burn-core-0.14.0/src/record/serde/adapter.rs:20
20                  "Linear" => Self::adapt_linear(data),
>>> p data
$12 = burn_core::record::serde::data::NestedValue::Map(HashMap(size=2) = {
    ["bias"] = burn_core::record::serde::data::NestedValue::Map(HashMap(size=2) = {
        ["param"] = burn_core::record::serde::data::NestedValue::Map(HashMap(size=3) = {
            ["bytes"] = burn_core::record::serde::data::NestedValue::U8s(Vec(size=16) = {[0] = 66, [1] = 191, [2] = 117, [3] = 63, [4] = 255, [5] = 203, [6] = 230, [7] = 189, [8] = 249, [9] = 242, [10] = 46, [11] = 190, [12] = 143, [13] = 167, [14] = 27, [15] = 62}),
            ["shape"] = burn_core::record::serde::data::NestedValue::Vec(Vec(size=1) = {[0] = burn_core::record::serde::data::NestedValue::U64(4)}),
            ["dtype"] = burn_core::record::serde::data::NestedValue::Map(HashMap(size=1) = {
                ["DType"] = burn_core::record::serde::data::NestedValue::String("F32")
              })
          }),
        ["id"] = burn_core::record::serde::data::NestedValue::String("5e9vn1d4ks")
      })Traceback (most recent call last):
  File "/home/med/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/etc/gdb_providers.py", line 447, in children
    idx = self._valid_indices[index]
IndexError: list index out of range

    ...
  })
>>> up 7
#20 0x00005555556e9453 in burn_core::record::serde::de::{impl#1}::deserialize_enum<burn_import::pytorch::adapter::PyTorchAdapter<burn_core::record::settings::FullPrecisionSettings, burn_tch::backend::LibTorch<f32, i8>>, fish_speech_rs::_::{impl#0}::deserialize::__Visitor<burn_tch::backend::LibTorch<f32, i8>, burn_core::record::settings::FullPrecisionSettings>> (self=..., _name="SeqTypeRecordItem", variants=&[&str](size=2) = {...}, visitor=...) at /home/med/.cargo/registry/src/index.crates.io-6f17d22bba15001f/burn-core-0.14.0/src/record/serde/de.rs:383
383                 let result = cloned_visitor.visit_enum(ProbeEnumAccess::<A>::new(
>>> list
378
379             // Try each variant in order
380             for &variant in variants {
381                 // clone visitor to avoid moving it
382                 let cloned_visitor = clone_unsafely(&visitor);
383                 let result = cloned_visitor.visit_enum(ProbeEnumAccess::<A>::new(
384                     self.value.clone().unwrap(),
385                     variant.to_owned(),
386                     self.default_for_missing_fields,
387                 ));
>>>

This suggests that the error occurs when trying to deserialize the weight of Conv1d (Tensor<B, 3>) into a Linear weight (Tensor<B, 2>) while attempting to match each variant in the enum.
The solution would be propagating dimension mismatch error upwards instead of panicking.
Desktop (please complete the following information):

OS: Ubuntu 22.04.4 LTS on Windows 10 x86_64
burn = { version = "0.14.0", features = ["tch", "wgpu"] }
burn-import = "0.14.0"
rustc 1.81.0 (eeb90cda1 2024-09-04)

This suggests that the error occurs when trying to deserialize the weight of Conv1d (Tensor<B, 3>) into a Linear weight (Tensor<B, 2>) while attempting to match each variant in the enum.

The flexibility of sequential blocks has a couple of drawbacks, and you just faced one 😅 In pytorch you can basically insert any type of module you want, but with Burn replicating this behavior is a bit "hacky".
We use serde's untagged enum deserialization to try to match the correct module, but in this case both the linear and conv layers have the same fields so they technically match.

The solution would be propagating dimension mismatch error upwards instead of panicking.

Haven't looked at this part of the codebase in a while, but I'd have to check how this could be handled better (if possible).
In the meantime, you could declare a module that contains a fixed number of fields instead of having a sequential-like type. Then, the fields can simply be remapped. Something like this should work:
#[derive(Module, Debug)]
struct LinearConv<B: Backend> {
  linear: Linear<B>,
  conv: Conv1d<B>,
}

#[derive(Module, Debug)]
struct SeqModel<B: Backend> {
  seq: LinearConv<B>,
}

// Remap the sequential fields to your new Burn module
let load_args = LoadArgs::new(weights_file)
  // Map seq.0.* -> seq.linear.*
  .with_key_remap("seq\\.0\\.(.+)", "seq.linear.$1")
  // Map seq.1.* -> seq.conv.*
  .with_key_remap("seq\\.1\\.(.+)", "seq.conv.$1");
let record = PyTorchFileRecorder::<FullPrecisionSettings>::default().load(load_args, &device)
   .expect("Failed when decoding state dict");

Note: I haven't tested the code, but it should work. We did something similar for the ResNet implementation.

I am not sure if the issue which I am seeing is exactly the same, I am getting a different error message, but the cause seems similar.
thread 'main' panicked at /Projects/SD/torch-rs/burn-ssd-mobilenet-fpnlite-320x320/lib/mobilenetv3/src/model/mobilenetv3.rs:26:10:
Can't parse record from a different variant

mobilenetv3.rs:26:10
#[derive(Module, Debug)]
enum LayerType<B: Backend> {
    ConvBNActivation(ConvBNActivation<B>),
    SqueezeExcitation(SqueezeExcitation<B>),
    InvertedResidual(InvertedResidual<B>),
    Identity(Identity),
}

The enum is being used as follows:
#[derive(Module, Debug)]
pub struct MobileNetV3<B: Backend> {
    features: Vec<LayerType<B>>,
    avgpool: AdaptiveAvgPool2d,
    classifier: Vec<LayerType2D<B>>,
}

For MobileNetV3 having the ability to decode Vectors would be really nice, I understand the workaround would require me to use individual variables for each layer, right? Given that 15+ layers are being constructed this would blow up the code by quite a lot.
Perhaps one way would be to allow injecting a processing closure, i.e. a programmatic with_key_remap where such things could be handled in code?
Panic trace:
thread 'main' panicked at /Projects/SD/torch-rs/burn-ssd-mobilenet-fpnlite-320x320/lib/mobilenetv3/src/model/mobilenetv3.rs:26:10:
Can't parse record from a different variant
stack backtrace:
   0: rust_begin_unwind
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/std/src/panicking.rs:665:5
   1: core::panicking::panic_fmt
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/panicking.rs:74:14
   2: <mobilenetv3::model::mobilenetv3::LayerType<B> as burn_core::module::base::Module<B>>::load_record
             at ./lib/mobilenetv3/src/model/mobilenetv3.rs:26:10
   3: burn_core::module::param::primitive::<impl burn_core::module::base::Module<B> for alloc::vec::Vec<T>>::load_record::{{closure}}
             at .cargo/git/checkouts/burn-178c6829f420dae1/7a19b5f/crates/burn-core/src/module/param/primitive.rs:127:37
   4: core::iter::adapters::map::map_try_fold::{{closure}}
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/iter/adapters/map.rs:95:28
   5: core::iter::traits::iterator::Iterator::try_fold
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/iter/traits/iterator.rs:2406:21
   6: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/iter/adapters/map.rs:121:9
   7: <I as alloc::vec::in_place_collect::SpecInPlaceCollect<T,I>>::collect_in_place
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/alloc/src/vec/in_place_collect.rs:378:13
   8: alloc::vec::in_place_collect::from_iter_in_place
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/alloc/src/vec/in_place_collect.rs:269:9
   9: alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/alloc/src/vec/in_place_collect.rs:245:9
  10: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/alloc/src/vec/mod.rs:3388:9
  11: core::iter::traits::iterator::Iterator::collect
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/iter/traits/iterator.rs:2001:9
  12: burn_core::module::param::primitive::<impl burn_core::module::base::Module<B> for alloc::vec::Vec<T>>::load_record
             at .cargo/git/checkouts/burn-178c6829f420dae1/7a19b5f/crates/burn-core/src/module/param/primitive.rs:125:9
  13: <mobilenetv3::model::mobilenetv3::MobileNetV3<B> as burn_core::module::base::Module<B>>::load_record
             at ./lib/mobilenetv3/src/model/mobilenetv3.rs:380:10
  14: mobilenetv3::model::mobilenetv3::MobileNetV3PretrainedConfig::init
             at ./lib/mobilenetv3/src/model/mobilenetv3.rs:370:21
  15: mobilenetv3_cli::main
             at ./bin/mobilenetv3-cli/src/main.rs:101:23
  16: core::ops::function::FnOnce::call_once
             at /builddir/build/BUILD/rust-1.83.0-build/rustc-1.83.0-src/library/core/src/ops/function.rs:250:5

Reproducible in https://github.com/jin-eld/burn-ssd-mobilenetv3-fpnlite/tree/master by running:
RUST_BACKTRACE=1 cargo run --features pretrained  -- /path/to/image.jpg


Added edit snipe command & some other small stuff...

Purpose of this pr

Add new command esnipe which is also being removed from the bot itself in the latest update

Is the code linted and formatted?

yes

helllo?
anyone here?

Closing due to #3 implementing edit snipe & reaction snipe.


Add the status of pod when using "Helm status" command, as the issue #2318

Add the status of pod when using "Helm status" command, as the #2318

@thomastaylor312 I rewrite the PR in an new branch as the old PR's branch it so disordered. I am so sorry to trouble you to help me to review the PR's code. Thanks an billion to you.

@yan234280533 Thank you! I'll try to review this a little later in the week

@thomastaylor312  Thank you thomastaylor312. Thanks an billion.

@thomastaylor312  Thank you thomastaylor312. Thanks an billion.

@thomastaylor312  Many thanks for you to review my PR. I will check the reviews one by one.

It looks like it is finding the pod, but something is happening (possibly with isFoundPod) and it isn't getting added to this list.
This is a great start to the feature! I think it just needs a little more polish in some places. Let me know if you have any questions about my comments. I'll try to answer them as quickly as possible
@thomastaylor312  I used the "isFoundPod" is that: if someone have an charts which have an resource "Pod". So this Pod is not related to any other resource. I am not sure if some users will deploy as the Kind   of Pod directly, so I  add this judgment.

@yan234280533 Thank you for the fixes. I'll give this another test tonight

@yan234280533 I created a commit with some suggested changes here. Hopefully that clarifies what was missing from the PR. Let me know if you have any questions

@thomastaylor312  Thank you for you review. I will read you reviews very detailed in the weekend.

@thomastaylor312  I done the modify. Please help me to review the code. Thanks an billion.

@thomastaylor312  I modify the code as the reviews one by one.  Please help me to review the code. Thanks an billion. Many many thanks.

@yan234280533 Just the one last line to remove and I think this should be good to go!

@thomastaylor312  Thank you very much. I modified it by remove the info.Get in getRelationPod function. Many many thanks.

Ok, I will do one more sanity check test of this tonight and then I'll merge

It looks like there are issues grabbing all of the pods. It looks like it is only getting one of the pods at any given time:
LAST DEPLOYED: Mon Sep 11 18:18:14 2017
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                 DATA  AGE
wizened-prawn-nginx  2     1m

==> v1/Service
NAME                 CLUSTER-IP  EXTERNAL-IP  PORT(S)   AGE
wizened-prawn-nginx  <IP_ADDRESS>  <none>       8888/TCP  1m

==> v1beta1/Deployment
NAME                 DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
wizened-prawn-nginx  3        3        3           3          1m

==> v1/Pod(related)
NAME                                 READY  STATUS   RESTARTS  AGE
wizened-prawn-nginx-437438077-m8cq4  1/1    Running  0         29s

There should be 4 pods showing up there, a completed job pod and 3 running nginx pods


Get datatype from GhidraClass

How may I retrieve the correct datatype which corresponds to a GhidraClass? I tried taking both the ID and the Universal ID of the class and its symbol but according to the datatype manager these id's are different.
Trying to convert the full namespace to a DataTypePath won't work if if it has been demangled, is from dwarf info, etc.

We are hoping to improve this and create a strong relationship which can withstand name changes, etc.  Currently, the utility method VariableUtilities.findExistingClassStruct(GhidraClass, DataTypeManager).  There are other static methods on this utility class which may be of help.  This utility makes use of related methods in the DataTypeUtilities which attempt to fuzz a namespace path into the search criteria.  Keep in mind that renaming a GhidraClass will not rename or reparent the associated structure.  At present, this must be done explicitly.

We are hoping to improve this and create a strong relationship which can withstand name changes, etc. Currently, the utility method VariableUtilities.findExistingClassStruct(GhidraClass, DataTypeManager). There are other static methods on this utility class which may be of help. This utility makes use of related methods in the DataTypeUtilities which attempt to fuzz a namespace path into the search criteria. Keep in mind that renaming a GhidraClass will not rename or reparent the associated structure. At present, this must be done explicitly.

Ah yes this is exactly what I was looking for thank you.


Call deeplink using E.164 number format

[Enter feedback here]
Looking at the example below I wasn´t able to dial a number formatted in E.164 international format (+4912345678) through the deeplink. The "+" sign is always stripped off and only eg.<PHONE_NUMBER> is transferred to the Teams application. Is there any chance to also transfer the plus sign?
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com,4:9876543210 = working and formatted in US telephone number format<PHONE_NUMBER>
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com,4:+4912345678 = not working, only<PHONE_NUMBER> is transferred to Teams.
Thanks
Christian

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

ID: 45541337-ecd7-5cf6-cbe4-3f0d2f39aa79
Version Independent ID: 6b4203f0-2844-06c9-eaa3-9cc03e6f76c0
Content: Create deep links - Teams
Content Source: msteams-platform/concepts/build-and-test/deep-links.md
Product: msteams
GitHub Login: @laujan
Microsoft Alias: lajanuar

I think I found the solution, the "+" sign needs to be encoded as "%2b" in the URL to make it visible and format the number as expected.


Remove blank space

Hi,
Is it possible to remove blank/black space of an video?
I know mediaelement has an option for that but I want to see if there is something exists for that or not?
(I'm want to use it in to Transcode videos)
Something like that is exists in Photos app>

It is technically possible to do that via video effects.
What you see in the screenshot is probably something done with the size of the media player element itself rather than an effect in the video stream. They simply size the media player element to a multiplier of the video aspect ratio.

Thanks for quick answer.
Is it possible to do something like this using win2d? create mss with ffmpeginteropx and use win2d for videoscale and transcode it via MediaTranscoder.

You can take a look at the list here:
https://microsoft.github.io/Win2D/html/N_Microsoft_Graphics_Canvas_Effects.htm
I am not sure if win2D has such an effect. There might be built-in effects for transcoding within the winRT framework but I don't remember where to find them.

I think this will be difficult to achieve. You don't know where the black bars are, until you have decoded at least parts of the video. But you need to know it before starting the transcode, because it changes your output resolution. So you'd need a two pass system, where you first decode into the file, try to find the black areas in a reliable way, then close it, then start transcoding using this information to crop the image.

Thanks for replies.
@lukasf
I know where exactly are black bars. it was too much easy with using VideoTransformEffectDefinition  class.
Source>

Output>

It's converted to my desire size and removed black bars by scaling the frame (i choose where to cut).
Thanks a lot guys.


Photo cropping doesn't work well for book listings

Cover gets cropped and users cannot read text on header or bottom.

This is working as intended. The listing images are always square, so the image in them is fit into that square space by making the smallest dimension 100% and centering the image. There's no way to make that work for every possible image.
For now, the answer is to edit your images to be square, with a background color to the left and right side of the book image, so the entire image is square.
We have some plans to add a more sophisticated image upload tool in the future that includes the ability to crop images or make them square with a background fill, but that won't happen for a while.


Refactor Handlers

Remove gorilla/mux from project
Add tests for GenerateFeed
Create handler package

Codecov Report

Merging #28 (4384f5a) into main (a82653b) will increase coverage by 6.46%.
The diff coverage is 84.21%.

@@            Coverage Diff            @@
##            main      #28      +/-   ##
=========================================
+ Coverage   8.33%   14.79%   +6.46%
=========================================
  Files          4        5       +1
  Lines        204      223      +19
=========================================
+ Hits          17       33      +16
- Misses       187      189       +2
- Partials       0        1       +1

Impacted Files
Coverage Δ

internal/service/feed.go
84.21% <84.21%> (ø)

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 a82653b...4384f5a. Read the comment docs.


Serenity in a 3 tier (n tier) environment

Hi Volkan,
Is there a way to split Serenity to run in a 3 tier (3 server) environment?  We are building our first Serenity-based case management system for use internally, and I'm so impressed that I would like our organization to standardize new app development around Serenity.  Our current policies for public-facing web applications require a web server, app server, and sql server, each behind a firewall.  Our current apps use WCF (or old SOAP/asmx) to communicate with our services project running on the app server, which in turn persists data to the sql server.
I'd like to try to move Serenity's services into it's own solution and get the communication working, but I wanted to check with you to see if you already had experience with this or could share your thoughts, pointers, or samples.
-Scott

Hi Scott,
It is possible, i had similar applications, e.g. a set of public facing B2C sites, which are also written using Serenity but under the hood passing service requests to another Serenity based admin portal in DMZ.
Services and entities should be straightforward to move into a separate assembly, there is usually only one way dependency. A little exception is imported editor and formatter attributes in web project that are used on rows, but you may take around it by moving some into Columns/Forms or generating these imports in row assembly.

Excellent.  Thanks for the insight.  I'll close the issue, but will report back my progress.


volume doesn't work + question about icon

Hi, 2 questions:
1. I'm having trouble using the volume buttons not working for me. Do you have any idea what this could be due to? other buttons work well! Like the volume slider.
If I call the same media player in another lovelace card, the volume buttons work:

The code which doesn't work with volume:
type: custom:android-tv-card
remote_id: remote.chromecastwoonkamer
media_player_id: media_player.samsung_au7100_70_tv
title: TVWoonkamer
rows:
  - - back
    - power
    - home
  - - keyboard
    - search
    - info
  - - volume_buttons
  - - navigation_buttons
  - - netflix
    - youtube
    - disney
    - spotify
    - videoland
  - - previous
    - rewind
    - play_pause
    - fast_forward
    - next
custom_sources:
  videoland:
    icon: mdi:television-classic
    source: videoland-v2://

2. Another question about the custom sources part.
I have added "videoland" to it, but there is no icon that I can find en match here: https://simpleicons.org/?q=vide
It is possible to add a text? only the "V" is enough to know what the button does.
Otherwise it is possible to add a URL to the image? that can be used as icon? like this:
      - type: picture
        image: https://assets.televizier.nl/upload/w/t/Wat-is-Videoland.jpg
        tap_action:
          action: call-service
          service: remote.turn_on
          data:
            activity: videoland-v2://

thanks!

The volume buttons use the remote entity while the slider uses the media player entity. Is your Android TV configured to forward volume commands to your TV via HDMI-CEC? I personally use custom keys to remap volume up, down, and mute to my AV receiver. If not create custom keys for volume up, down, and mute to remap them to your media player instead.

custom_keys:
  volume_down:
    service: media_player.volume_down
    service_data:
      entity_id: media_player.samsung_au7100_70_tv
  volume_mute:
    service: media_player.volume_mute
    service_data:
      entity_id: media_player.samsung_au7100_70_tv
  volume_up:
    service: media_player.volume_up
    service_data:
      entity_id: media_player.samsung_au7100_70_tv

No support for text, but you could set the icon to mdi:alpha-v. I also messed around with card-mod and was able to set the button to an image (look for transparent PNGs for icons using this method rather than JPGs, the latter have compression artifacts and look terrible). Try this:

custom_sources:
  videoland:
    source: videoland-v2://
card_mod:
  style: |
    ha-icon-button[title="videoland"] {
      background-image: url(https://cdn6.aptoide.com/imgs/3/c/8/3c8d26f1af6306c09b9cfa24fe679949_icon.png);
      background-repeat: no-repeat;
      background-size: contain;
    }

thanks the custom volumes configuration works now!
I've got some trouble with the videoland part which doesn't work yet because it stays white / don't load the image:

my configuration now:
type: custom:android-tv-card
remote_id: remote.chromecastwoonkamer
media_player_id: media_player.samsung_au7100_70_tv
title: TVWoonkamer
rows:
  - - back
    - power
    - home
  - - keyboard
    - search
    - info
  - - volume_down
    - volume_mute
    - volume_up
  - - navigation_buttons
  - - netflix
    - youtube
    - disney
    - spotify
    - videoland
  - - previous
    - rewind
    - play_pause
    - fast_forward
    - next
custom_keys:
  volume_down:
    service: media_player.volume_down
    service_data:
      entity_id: media_player.samsung_au7100_70_tv
  volume_mute:
    service: media_player.volume_mute
    service_data:
      entity_id: media_player.samsung_au7100_70_tv
  volume_up:
    service: media_player.volume_up
    service_data:
      entity_id: media_player.samsung_au7100_70_tv
custom_sources:
  videoland:
    source: videoland-v2://
card_mod:
  style: |
    ha-icon-button[title="videoland"] {
      background-image: url(https://cdn6.aptoide.com/imgs/3/c/8/3c8d26f1af6306c09b9cfa24fe679949_icon.png);
      background-repeat: no-repeat;
      background-size: contain;
    }

Have I perhaps forgotten something?

it works now, the indentation was apparently also important:

thanks for your time!


Sort question bank / question list questions by most recently modified

Description
Please explain the changes you made here.
Release notes:
Describe the change as it should be communicated to partners in the release notes.
Checklist

[ ] Added the correct label: < feature | bug | dependencies | infrastructure | ignore-for-release >
[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
Fixes #<issue_number>; Fixes #<issue_number>; Fixes #<issue_number>...

Codecov Report

Merging #3359 (4556d70) into main (08868c0) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #3359   +/-   ##
=========================================
  Coverage     80.22%   80.22%
  Complexity     2349     2349
=========================================
  Files           287      287
  Lines          9270     9270
  Branches        618      618
=========================================
  Hits           7437     7437
  Misses         1593     1593
  Partials        240      240

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

This surfaced some existing issues where we weren't properly awaiting scripts after clicking a button which would trigger a navigation. While I rework things, I'll take it out of review.


Support API to return runtime version

Could be part of existing host status API.

Closing as dupe of https://github.com/Azure/azure-webjobs-sdk-script/issues/403 which I opened yesterday :)

Ah, sorry, missed it!


Add docker file/config/compose for bench and canary

What changed?
Add docker file/config/compose for bench and canary
Released image to
https://hub.docker.com/repository/docker/ubercadence/cadence-bench
https://hub.docker.com/repository/docker/ubercadence/cadence-canary

Why?

How did you test it?
Test locally with local Cadence docker compose

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build dc8fa25a-ce17-4335-9c0b-888dcd982a5a

0 of 0   changed or added relevant lines in 0 files are covered.
100 unchanged lines in 11 files lost coverage.
Overall coverage decreased (-0.04%) to 56.393%

Files with Coverage Reduction
New Missed Lines
%

service/history/execution/mutable_state_task_refresher.go
1
74.4%

service/history/queue/timer_queue_processor_base.go
1
78.56%

common/persistence/historyManager.go
2
66.33%

common/task/weightedRoundRobinTaskScheduler.go
2
89.12%

common/types/mapper/thrift/shared.go
2
64.98%

service/matching/taskListManager.go
2
74.09%

common/persistence/nosql/nosqlplugin/cassandra/workflow.go
6
49.77%

service/history/execution/context.go
6
68.54%

common/persistence/sql/sqlExecutionStore.go
16
60.0%

common/persistence/nosql/nosqlplugin/cassandra/workflowUtils.go
23
76.76%

Totals

Change from base Build 3963ea27-5204-4d7b-ad45-4bcec71b5360:
-0.04%

Covered Lines:
78652

Relevant Lines:
139471

💛  - Coveralls


If node_modules folder does not contain prettier-plugin-astro, it does not work

What version of prettier-plugin-tailwindcss are you using?
0.13.0
What version of Tailwind CSS are you using?
3.4.3
What version of Node.js are you using?
21.7.2
What package manager are you using?
npm
What operating system are you using?
macos
Reproduction URL
A fresh Astro project will do. Like this:
npm create astro@latest astro-tailwind
npx astro add tailwind
npm i -D prettier prettier-plugin-tailwindcss
// prettier.config.mjs
/** @type {import("prettier").Config} */
export default {
  plugins: ["prettier-plugin-tailwindcss"],
};

Must use Astro's VSCode extension as the default formatter for .astro files.
I also have Prettier's VSCode extension installed.
Describe your issue
Hi, this is to help anyone who is using Astro's VSCode extension as the default formatter for .astro files and wants to use this prettier plugin for tailwindcss.
When I follow the README.md to install prettier-plugin-tailwindcss, it's not working as expected. After a little trial and error, I realised it's because the node_modules folder is missing prettier-plugin-astro.
After running
npm i -D prettier prettier-plugin-astro prettier-plugin-tailwindcss
instead of
npm i -D prettier prettier-plugin-tailwindcss
as per the installation guide, I managed to get this plugin working.
To test this, I manually deleted prettier-plugin-astro from my node_modules folder, then I run Developer: Reload window in vscode. This cause prettier-plugin-tailwindcss to stop working. I then run npm i again to get prettier-plugin-astro back in my node_modules folder (and run Developer: Reload window) and now it starts working again.

Hi! Our plugin relies on other plugins to know how to parse files. In this case we can't parse Astro ourselves but we know how to operate on the result that Astro produces after parsing it.
This means that you have to have prettier-plugin-astro installed if you want to sort classes in a .astro file, prettier-plugin-svelte installed if you want to sort classes in a .svelte file, etc…
We talk about plugin compatibility and how things must be loaded here: https://github.com/tailwindlabs/prettier-plugin-tailwindcss?tab=readme-ov-file#compatibility-with-other-prettier-plugins
Closing as this is expected behavior.


Stuck on Loading

had the same problem with prebuild windows binary. (alpha 36)
OS: Windows 10 17046 x64
Console log:
Running in debug mode
(anonymous) @ bundle.js:1426
plugins.ts:112 Plugin terminus-community-color-schemes already exists, overriding
plugins.ts:112 Plugin terminus-core already exists, overriding
plugins.ts:112 Plugin terminus-settings already exists, overriding
plugins.ts:112 Plugin terminus-community-color-schemes already exists, overriding
plugins.ts:112 Plugin terminus-core already exists, overriding
plugins.ts:112 Plugin terminus-plugin-manager already exists, overriding
plugins.ts:112 Plugin terminus-settings already exists, overriding
plugins.ts:112 Plugin terminus-terminal already exists, overriding
entry.ts:37 Starting with plugins: [Object, Object, Object, Object, Object, Object, Object, Object, Object]
plugins.ts:147 Loading clickable-links: C:\Users\vikas\AppData\Roaming\terminus\plugins\node_modules\terminus-clickable-links\dist\index.js
plugins.ts:147 Loading shell-selector: C:\Users\vikas\AppData\Roaming\terminus\plugins\node_modules\terminus-shell-selector\dist\index.js
plugins.ts:147 Loading theme-hype: C:\Users\vikas\AppData\Roaming\terminus\plugins\node_modules\terminus-theme-hype\dist\index.js
plugins.ts:147 Loading theme-windows10: C:\Users\vikas\AppData\Roaming\terminus\plugins\node_modules\terminus-theme-windows10\dist\index.js
plugins.ts:147 Loading community-color-schemes: C:\Users\vikas\Desktop\terminus\terminus-community-color-schemes\dist\index.js
plugins.ts:147 Loading core: C:\Users\vikas\Desktop\terminus\terminus-core\dist\index.js
plugins.ts:147 Loading plugin-manager: C:\Users\vikas\Desktop\terminus\terminus-plugin-manager\dist\index.js
plugins.ts:147 Loading settings: C:\Users\vikas\Desktop\terminus\terminus-settings\dist\index.js
plugins.ts:147 Loading terminal: C:\Users\vikas\Desktop\terminus\terminus-terminal\dist\index.js
C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2965 Template parse warnings:
The
"): ng:///AppModule/TabBodyComponent.html@4:8
Console.warn @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2965
TemplateParser.parse @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:12842
JitCompiler._compileTemplate @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26998
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26918
JitCompiler.compileComponents @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26918
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26805
then @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:1714
JitCompiler.compileModuleAndComponents @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26804
JitCompiler.compileModuleAsync @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\compiler\bundles\compiler.umd.js:26733
PlatformRef.bootstrapModuleWithZone @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:4567
PlatformRef.bootstrapModule @ C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:4553
(anonymous) @ entry.ts:33
fulfilled @ bundle.js:1405
ZoneDelegate.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:391
Zone.run @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:141
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:818
ZoneDelegate.invokeTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:424
Zone.runTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:191
drainMicroTaskQueue @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:584
ZoneTask.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:490
timer @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:1540
entry.ts:41 Angular bootstrapping error: Error: No provider for LogService!
at injectionError (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:1201)
at noProviderError (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:1239)
at ReflectiveInjector.throwOrNull (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2681)
at ReflectiveInjector.getByKeyDefault (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2720)
at ReflectiveInjector.getByKey (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2652)
at ReflectiveInjector.get (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2521)
at resolveNgModuleDep (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9505)
at _callFactory (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9580)
at createProviderInstance$1 (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9519)
at initNgModule (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9470)
(anonymous) @ entry.ts:41
rejected @ bundle.js:1406
ZoneDelegate.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:391
Zone.run @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:141
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:818
ZoneDelegate.invokeTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:424
Zone.runTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:191
drainMicroTaskQueue @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:584
ZoneTask.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:490
timer @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:1540
entry.ts:42 Trying safe mode
(anonymous) @ entry.ts:42
rejected @ bundle.js:1406
ZoneDelegate.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:391
Zone.run @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:141
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:818
ZoneDelegate.invokeTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:424
Zone.runTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:191
drainMicroTaskQueue @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:584
ZoneTask.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:490
timer @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:1540
plugins.ts:147 Loading community-color-schemes: C:\Users\vikas\Desktop\terminus\terminus-community-color-schemes\dist\index.js
plugins.ts:147 Loading core: C:\Users\vikas\Desktop\terminus\terminus-core\dist\index.js
plugins.ts:147 Loading plugin-manager: C:\Users\vikas\Desktop\terminus\terminus-plugin-manager\dist\index.js
plugins.ts:147 Loading settings: C:\Users\vikas\Desktop\terminus\terminus-settings\dist\index.js
plugins.ts:147 Loading terminal: C:\Users\vikas\Desktop\terminus\terminus-terminal\dist\index.js
entry.ts:47 Bootstrap failed: Error: No provider for LogService!
at injectionError (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:1201)
at noProviderError (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:1239)
at ReflectiveInjector.throwOrNull (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2681)
at ReflectiveInjector.getByKeyDefault (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2720)
at ReflectiveInjector.getByKey (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2652)
at ReflectiveInjector.get (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:2521)
at resolveNgModuleDep (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9505)
at _callFactory (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9580)
at _createProviderInstance$1 (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9519)
at initNgModule (C:\Users\vikas\Desktop\terminus\app\node_modules@angular\core\bundles\core.umd.js:9470)
(anonymous) @ entry.ts:47
rejected @ bundle.js:1406
ZoneDelegate.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:391
Zone.run @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:141
(anonymous) @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:818
ZoneDelegate.invokeTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:424
Zone.runTask @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:191
drainMicroTaskQueue @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:584
ZoneTask.invoke @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:490
timer @ C:\Users\vikas\Desktop\terminus\app\node_modules\zone.js\dist\zone.js:1540

Could you please capture the traceback with the prebuilt binary?

I have this error too. How can I capture the traceback?
windows 7 sp1 x64
I'm a software developer, but I don't know much about JS. Coming from Delphi and xBase.
But I can help a lot if you tell me what to do. (no need for teaching)

If you press F12 or Ctrl-Shift-I during startup, it will open the devtools pane (seen in the screenshot above). From there, you can copy the console output.

It freezes and those keys do not bring the dev panel.
Em sex, 4 de mai de 2018 10:30, Eugene Pankov<EMAIL_ADDRESS>escreveu:

If you press F12 or Ctrl-Shift-I during startup, it will open the devtools
pane (seen in the screenshot above). From there, you can copy the console
output.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Eugeny/terminus/issues/244#issuecomment-386601804,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFXvoLTmwJoCDkBIeHIi6E6ubeFU2zfrks5tvFftgaJpZM4Qpoox
.

It freezes and those keys do not bring the dev panel. still happening as of today.

I'm experiencing a similar issue that's possibly related, but I'm only having problems with the latest version of Terminus. Previous versions until now have worked fine leading me to believe that despite similar symptoms, my issue is likely the result of something different.

Just updated, same issue.
Windows 10

I'm getting the same issue on Windows 7 SP1, Terminus 1.0.69. It started happening after I added a new account-level environment variable called "DEV" - once I removed that environment variable, Terminus loaded properly again.

@lawrencehlee a very good catch! The DEV envvar switches Terminus into 'run from a source checkout mode'. I'll change the name to something unique

@lawrencehlee this should be fixed now


Scoped style on SVG Path doesn't work (with D3)

<template>

    <svg>
        <path />
    </svg>

</template>

If I remove the scoped it works.

I tried it by creating a new project and it worked fine

You would have to provide a repro. And make sure you open the issue on https://github.com/vuejs/vue-loader

I know what it is... I'm using D3, so the path is inserted after Vue did it's job.

Updated the title so it's more clear.

https://github.com/vuejs/vue-loader/issues/559#issuecomment-271479195


🚚 Proposal: use_auth_token for read only HfApi methods

This PR deprecates the token argument in read-only methods of HfApi in favor of use_auth_token.
use_auth_token is more flexible as it allows not passing a token, whereas token=None fetches the token from HfFolder.
I personally prefer the semantics of use_auth_token, that I find very legible:

use_auth_token=False
use_auth_token="token"
use_auth_token=True

cc @lhoestq

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

I'd say adding token=False semantics is probably a better change. token is quite a crucial parameter and deprecating it would cause quite a bit of friction for downstream libraries. I'd say add the same semantics if you will, but to token.
Related: https://github.com/huggingface/huggingface_hub/issues/837
It would also be nice to pass token to let users pass token to a HFApi instance and not persist it: https://github.com/huggingface/huggingface_hub/issues/796

+1 for keeping token: the only case the use_auth_token semantic is useful is when passing False, which is definitely not the common case anyway - therefore renaming the parameter is maybe not worth it

Agree with team members above on token rather than use_auth_token :)

Thinking more on it, I think it's better to align everything to use_auth_token given it's used extensively in both transformers (794 occurences in 78 files) and datasets (198 occurences in 18 files)
I think the benefit of renaming to a "better" param name is too small compared to the breakage in downstream libraries

Across libraries there seems to be a general tendency to have token for methods that will need a token in all cases (for example to push something to the hub), and use_auth_token in case a token might not be necessary.
To that end, if you feel strongly, I'm fine with going forward with this PR as it adds the use_auth_token argument to read only methods. However, in that case, we should go all in and remove the token from the signature and add it to a kwargs, and remove it from the documentation.

cc @Wauplin

Coming a bit after the battle but I would also have been for a unique token parameter instead of both token and use_auth_token depending on the use case. Maybe I'm wrong but what I have in mind is that a typical user/dev will not really care about if a server needs a token or not. Worst case scenario, the server needs one and prompt an error to login once.
Quick question: is there a chance that a request that is today "public" become "private" (token required) in the future or the opposite ? If yes, having a single parameter name would avoid to handle a name change in huggingface_hub (+breaking changes, deprecate,...). I can't find an example yet but it doesn't seem that impossible.
In any case, I get the "it is as it is and vastly used already so let's keep both"-argument. It's a pretty strong argument in favor of this PR 😄
EDIT(side note): what I found confusing in the current naming is that token and auth_token suggest that there is 2 types of tokens. At least that's what I first thought when reading the documentation. No big deal.

Just an update on this PR. I think there is kind of a consensus on moving forward to merge it. The rule will be "use use_auth_token for read-only methods and  token otherwise". It makes sense and shouldn't break too much external libraries.
That said, next steps are:

[x] merge from main and try to resolve conflicts -> I did it from github
[ ] fix the tests -> I think I broke them with the merge
[ ] deprecate token from v0.12
[ ] expect deprecation in unittest + add new tests with use_auth_token
[ ] make sure CI is fine

@SBrandeis if you'd like I can take care of it. I just need the permissions to push commits on your fork.
Let's get this done :)


Issue with rule precedence when using blocks

I noticed that in one of my projects I had my rules in the wrong order, but everything was working anyway. I wrote a quick repro of this here: https://github.com/MasterSlowPoke/cancantest
Example: Given the following Ability file:
class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new

    can :manage, User do |user|
        puts "in manage"
        true
    end
    can :read, User do |user|
        puts "in read"
        false
    end
end

You would expect a user to be able to do everything but Read a User object.
However, when testing, the rules are evaluated as such:
001 > a = Ability.new(User.new)
 => #<Ability:0x007f98012ea130 ...>
002 > a.can? :read, User.new
in read
in manage
 => true
003 >

The rules are not being evaluated top to bottom.

@MasterSlowPoke
The privileges described in cancancan are cumulative, so I believe you would have to define it like detailed in https://github.com/CanCanCommunity/cancancan/wiki/Ability-Precedence, and use the cannot option to revoke the rights.
In short can: true, and then can: false is not the same as a can and cannot call.
class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new

    can :manage, User do |user|
        puts "in manage"
        true
    end
    cannot :read, User do |user|
        puts "in read"
        true
    end
end

Ah, I didn't see where can rules where ORed together. If that's the case then everything is working as intended. Closing.
So, if I want to use blocks, I need to make them so that they cascade up instead of down. Biggest filters on the bottom. Makes sense.

@MasterSlowPoke
Not quite... My understanding is that Can Cannot are evaluated in order with respect to each other, but that a can :false will not cancel a can :true, and once you can do something that there are some open issues / pull requests on short circuiting further evaluations.
Block evaluation orders may still be an issue with can / cannot if it's evaluating in the incorrect order, but your Ability as originally specified should never produce the effect you were looking for.
I'm sorry, but I didn't have time to test the ordering as yet, but having hit the same effects you had in my own work, I thought it was worth responding.


Increase end to end test timeout

Bump E2E test timeout from 120 to 150 mins to prevent Tinkerbell airgapped E2E tests from timing out.
Issue #, if available:
Description of changes:
Testing (if applicable):
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherrypick release-0.17


Time calculations don't match on reports.

Found that the totals reported on the timesheet view did not match the totals actually on the timesheet. This was caused be cause the MySQL statement was rounding the total amount of time between a start and end timestamp. This needed to be adjusted so that the start and end times were being rounded to the nearest quarter hour and then the total time calculated. Issue has been resolved and now times match on the reports.


Spurious mem in modifies clause

Sorry I didn't catch this in review but BASIL-105 adds mem to the modifies clause unneccessarily sometimes, and we should try be more precise about this, for example excluding it in procedures that have no body (and therefore no calls to rely())
--- before	2023-10-17 15:41:02.683180406 +1000
+++ after	2023-10-17 15:41:10.755171850 +1000
@@ -135,7 +135,7 @@
   modifies mem, Gamma_mem;

 procedure #free();
-  modifies Gamma_R16, Gamma_R17, R16, R17;
+  modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem;
   requires gamma_load8(Gamma_mem, bvadd64(R0, 0bv64)) == true;
   requires gamma_load8(Gamma_mem, bvadd64(R0, 1bv64)) == true;
   requires gamma_load8(Gamma_mem, bvadd64(R0, 2bv64)) == true;
@@ -358,6 +358,7 @@
     R19, Gamma_R19 := 131072bv64, true;
     R19, Gamma_R19 := bvadd64(R19, 97bv64), Gamma_R19;
     R0, Gamma_R0 := R19, Gamma_R19;
+    call rely();
     R8, Gamma_R8 := zero_extend56_8(memory_load8_le(mem, bvadd64(R8, 96bv64))), (gamma_load8(Gamma_mem, bvadd64(R8, 96bv64)) || L(mem, bvadd64(R8, 96bv64)));
     call rely();
     assert (L(mem, bvadd64(R19, 2bv64)) ==> Gamma_R8);
@@ -388,6 +389,7 @@
     call puts();
     goto l00000407;
   l00000407:
+    call rely();
     R19, Gamma_R19 := memory_load64_le(mem, bvadd64(R22, 120bv64)), (gamma_load64(Gamma_mem, bvadd64(R22, 120bv64)) || L(mem, bvadd64(R22, 120bv64)));
     R0, Gamma_R0 := R19, Gamma_R19;
     R30, Gamma_R30 := 2424bv64, true;
@@ -401,6 +403,7 @@
     call memset();
     goto l00000434;
   l00000434:
+    call rely();
     R0, Gamma_R0 := memory_load64_le(mem, bvadd64(R22, 120bv64)), (gamma_load64(Gamma_mem, bvadd64(R22, 120bv64)) || L(mem, bvadd64(R22, 120bv64)));
     R30, Gamma_R30 := 2448bv64, true;
     call #free();
@@ -420,7 +423,7 @@
 }

 procedure malloc();
-  modifies Gamma_R0, Gamma_R16, Gamma_R17, R0, R16, R17;
+  modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_mem, R0, R16, R17, mem;
   free requires (memory_load8_le(mem, 2488bv64) == 1bv8);
   free requires (memory_load8_le(mem, 2489bv64) == 0bv8);
   free requires (memory_load8_le(mem, 2490bv64) == 2bv8);
@@ -654,7 +657,7 @@
   free ensures (memory_load8_le(mem, 131167bv64) == 0bv8);

 procedure puts();
-  modifies Gamma_R16, Gamma_R17, R16, R17;
+  modifies Gamma_R16, Gamma_R17, Gamma_mem, R16, R17, mem;
   free requires (memory_load8_le(mem, 2488bv64) == 1bv8);
   free requires (memory_load8_le(mem, 2489bv64) == 0bv8);
   free requires (memory_load8_le(mem, 2490bv64) == 2bv8);
@@ -729,7 +732,7 @@
   free ensures (memory_load8_le(mem, 131167bv64) == 0bv8);

 procedure strlen();
-  modifies Gamma_R0, Gamma_R16, Gamma_R17, R0, R16, R17;
+  modifies Gamma_R0, Gamma_R16, Gamma_R17, Gamma_mem, R0, R16, R17, mem;
   requires (memory_load8_le(mem, R0) == 0bv8) || (memory_load8_le(mem, bvadd64(R0, 1bv64)) == 0bv8)|| (memory_load8_le(mem, bvadd64(R0, 2bv64)) == 0bv8)|| (memory_load8_le(mem, bvadd64(R0, 3bv64)) == 0bv8);
   free requires (memory_load8_le(mem, 2488bv64) == 1bv8);
   free requires (memory_load8_le(mem, 2489bv64) == 0bv8);

Yeah, it would make sense to just not add those for methods that don't have a body, good point.
I would like to be able to propagate those through the modifies clauses properly in relation to methods that have a rely() call but that will require a rather extensive refactor to make work, which is why I decided to rely on the very basic solution that caused this issue.


Collapsing a road breaks

https://a-b-street.github.io/osm2streets/#20.28/51.47795/-2.52882
https://user-images.githubusercontent.com/1664407/219694301-ce73d775-ac9c-456f-8e68-31ec6b170145.mp4
Not really sure what's going wrong here yet, but the final result having no intersection geometry is causing downstream problems in the LTN tool. Fixing the root cause would be great.

Something that might be relevant about this crash: after the collapse, there is a road that joins the intersection at both ends! I wonder if that is the cause for all these crashes.
The small intersection (with "S" underneath it) is merged with the large "tion Way" intersection, and that tiny sliver of road at the top also connects both. After the merge, that tiny sliver is no longer trimmed, and reveals it's full length.


It didn't deploy in win system?

When I try deploying in windows 11, it will report  error .

hi @wangwei357 could you please describe the installation and run commands you used?

Hey @wangwei357 , thanks for you feedback.
Just released a new version that must fix this.
You can try updating your domino CLI version to 0.5.9.
Thanks!


Permanent error on any command

Hello, I'm user of OS X and installed gjslint according to this instruction, the installation was successful.
But when I run any command, even help gjslint --help, it's throw an error:
Traceback (most recent call last):
  File "/usr/local/bin/gjslint", line 11, in <module>
    load_entry_point('closure-linter==2.3.19', 'console_scripts', 'gjslint')()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2291, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python2.7/site-packages/closure_linter/gjslint.py", line 46, in <module>
    import gflags as flags
  File "/usr/local/lib/python2.7/site-packages/gflags/__init__.py", line 58, in <module>
    import six
ImportError: No module named six

I don't know python, can you suggest me please, what I doing wrong?
Some additional information:
› python --version
Python 2.7.10

› which gjslint
/usr/local/bin/gjslint

› system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: OS X 10.11.6 (15G1108)
      Kernel Version: Darwin 15.6.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

Thanks for your report.
Did you try fixing the problem according to the following? http://stackoverflow.com/questions/13967428/importerror-no-module-named-six


[Experimental] Add ModelEncode Operator

This PR adds an experimental ModelEncode Operator, which is designed to apply an arbitrary model to your data, and add one or more new columns with the model output (prediction).  The new test added here (test_model_encode) does not use a real tf/pt-based Dataloader and model, but it is absolutely my intention to support such a use case.
I am not completely sure if it makes sense to add this as an operator, but the transform logic is relatively simple (so it seemed reasonable to write it up).  Feedback is very welcome.
cc @marcromeyn

After reviewing the initial ModelPredict implementation here, I wonder if it makes sense to revise the Op to (1) be called ModelEncode, (2) allow the Model to add an arbitrary number of columns (rather than just one).  It feels like we want an Op that allows the user to encode a collection of columns into one or more new columns using a predefined "model".
I also feel that we need to add a simple test case to use tensorflow and/or pytorch for the model definition.

@rjzamora @marcromeyn @benfred Is my understanding correct that this PR has been superseded by merlin-core and the use of merlin.io.Dataset in merlin-models to batch predict / bulk export item vectors?

Closing since the PR is stale and I haven't heard anything, but open to re-opening if this is still a thing we want to do


Curly brackets showing on creators page

Describe the issue and expected behaviours. If this is a bug, describe the steps to reproduce the problem, what you observe, and what you expected to observe.
Acceptance Criteria

[ ]

Steps for QA:
1

Reproduce bug: with both Arabic and English, click under "brought to you by" to open creators' info.
Observation: Two curly brackets {0}


wiki: JSDoc link not found

Acknowledgement

[x] I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.

Comment
From https://github.com/microsoft/TypeScript/wiki/JavaScript-Language-Service-in-Visual-Studio#vsdoc
[[
VSDoc is no longer supported in favor of JSDoc which is easier to write and the accepted standard for JavaScript.
]]
The above link to JSDoc returns a 404 : http://usejsdoc.org/about-getting-started.html
You may consider replacing it with https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc

The wiki does accept PRs: https://github.com/microsoft/TypeScript-wiki

Thanks. I'll open a PR there.


[RFC] [ Mobile / Desktop ] Loading component and directive

I think we should implement SfLoading component to handle loading spinners inside other components, but we may also append a spinner on body and create a v-loading directive to toggle this global loading spinner.
Not a necessity, but I believe it would be comfortable to use in this way, waiting for opinions...

Actually v-loading directive would be useful but more like a wrapper for a certain component than a global one

I guess for those it would be awesome to have such loading states built into some components as placeholders for better loading experience

Imho, inside those specific elements we can use the SfLoading component, so we prevent putting content with the directive on each element, witch is not a good practice...
Skeleton is good, but I'm not sure if we can use it generically, to be well implemented I think the layout must be known. So, I think we can provide skeleton component, but the user should implement it himself based on his custom layout.
I think a global v-loading directive, showing overlay and spinner, may be a more plug and play option to handle route transitions for example...


Running CI with CLI

Is it possible to use this tool to run CI checks locally? I poked around the CLI docs but didn't see anything.

This would be really helpful for dev, fwiw. Bevy has something similar - all of their CI is built into a rust binary, so you can just run cargo run -p ci in the repo, and it will do the same exact work as CI.
I think FSL devs would also be more comfortable contributing upstream if the rust CI checks were also rust code, I know I would.

I'm happy to work with you on this if it is something you are interested in supporting. I think there is a decent appetite for devs to be able to help improve CI.


Add query transformation capabilities (e.g., render SVG from a query)

User Story
Tableland is hyper-focused on enabling composable, dynamic NFT experiences. However, every dynamic NFT requires some sort of rendering component. This means web2 infra is required, which detracts from the value prop of dNFTs in the first place. If possible, it'd provide a major value add if Tableland could act as a permissionless, serverless relational database plus renderer.
Requirements
Enable query transformations such that a developer can call a Tableland endpoint and receive an SVG as a response (or a more generic implementation vs. only enabling SVGs).
Additional Context
The future internet + UIs will be made up of ERC721-based objects, so we should enable that functionality the best we can. Original TPD here.
Note: As this has been a commonly asked request, please use this issue to log +1s upon hearing the request. And for any devs in the community, please voice your opinion and add any context, as desired.

Logging some previous requests:

@datadanne via the pilot program with the development of Extension Runners (togglable traits but had to set up renderer to make it happen); the idea originally stemmed from here.
The Tableland TABLE SVG (i.e., https://render.tableland.xyz/5/1 -- could compare what that infra cost is, as a related exercise).
(private convo) wanted dynamic NFTs but had to set up web2 rendering infra to make it work, identical to the first point.

As noted in the original TPD, @asutula had previously noted an idea of letting devs register mapping functions that execute the SQL query and can manipulate the results, returning the final result to the calling client. Sharing here in case any related ideas are useful for this issue.


Model optimizer not working on pre-trained model

I sucessfully converted the model to onnx format using the python scripts provided but as I tried it to convert to binary format for C++ demo, I get the following error.
Model Optimizer arguments:
Common parameters:
	- Path to the Input Model: 	lightweight-human-pose-estimation.pytorch/human-pose-estimation.onnx
	- Path for generated IR: 	lightweight-human-pose-estimation.pytorch/.
	- IR output name: 	human-pose-estimation
	- Log level: 	ERROR
	- Batch: 	Not specified, inherited from the model
	- Input layers: 	data
	- Output layers: 	stage_1_output_0_pafs,stage_1_output_1_heatmaps
	- Input shapes: 	Not specified, inherited from the model
	- Mean values: 	Not specified
	- Scale values: 	Not specified
	- Scale factor: 	Not specified
	- Precision of IR: 	FP32
	- Enable fusing: 	True
	- Enable grouped convolutions fusing: 	True
	- Move mean values to preprocess section: 	False
	- Reverse input channels: 	False
ONNX specific parameters:
Model Optimizer version:
[ ERROR ]  Exception occurred during running replacer "REPLACEMENT_ID" (<class 'extensions.front.user_data_repack.UserDataRepack'>): No node with name stage_1_output_0_pafs.
 For more information please refer to Model Optimizer FAQ (https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_Model_Optimizer_FAQ.html), question #51.

Hi, looks like current OpenVINO has some problems with PyTorch 1.5. To convert model, please roll back to PyTorch 1.4, as suggested here.

Thank you, it worked.


Total awake

Issue
In the Awake page, there should be a counter telling the total number of characters awake.
When using any sort of filtering, the number should show the number of hits of the total count.
Example

Note

Example image uses a simple div with styling: font-size: 12px;
 position: relative;
 top: -4px;

When not filtered, the text should say: 56 awake
When not showing all, the text should say: Showing 12 of 56 awake

Resolved in commits db4e973d0720bd91c0819fcfd5cf1064c42d0d50 and 08e06887773c06370d5c363ebf76236197006b5a


Removes Direct Accessing to Nova DB

Masakari shouldn't access Nova DB to check instance's information in any case. For the first implementation, Masakari has to access Nova DB directly since it aims at Juno release, and Nova of the release has some constraints about evacuation of instances.  On the other hands, there is no constraint that Masakari hits to in the latest or supported version of Nova for the evacuation.

@muroi  Thank you for fix.
agree to merge..

Looks good.


Add new overloads to Clone() methods on subtypes of Tensor

Addresses #1976
Since a class can't declare 2 methods differing only in the return type I added a protected abstract CloneTensor to support the polymorphism.
So there are:

new ConcreteTensor.Clone that returns ConcreteTensor
Tensor.Clone that calls ConcreteTensor.CloneTensor that in turn calls ConcreteTensor.Clone

Personally I would name CloneTensor CloneInternal. Not sure what you prefer here.

It makes me nervous that we rely on folks only implementing CloneTensor by calling Clone in it and requiring that folks implement new Clone in a particular way.  That's a few cases where people need to read the manual to get it right.  It also makes me nervous that we rely on 'new'.  I like your idea though, very clever.
What if we did it as an extension method instead using the good name for the extension method and the then use a more descriptive name for the abstract?
    public static class TensorExtensions
    {
        public static TTensor Clone<TTensor, T>(this TTensor tensor) where TTensor : Tensor<T>
        {
            TTensor copy = tensor.DeepClone() as TTensor;

            return copy;
        }
    }

Another option, if we didn't want to use extension methods is to put it on the static Tensor class, where we have other cases where we want to benefit from generic type inference.  /cc @eerhardt @KrzysztofCwalina

It makes me nervous that we rely on folks only implementing CloneTensor by calling Clone in it and requiring that folks implement new Clone in a particular way

Before this PR you already relied on them implementing the Clone override correctly. Now they need to implement CloneTensor instead. If they just do that everything still works, they just don't have the extra benefit of the new Clone returning the concrete type.
It's a small loss IMO (assuming few implementers, and a high threshold) compared with exposing 2 public methods doing the same thing (i.e. Clone, DeepClone).

The thing I like about the current proposal is that there is only 1 public method name I see in intellisense - Clone.  I don't see 2 methods on Tensor<T> when I am using it from outside of the class.  The extension method approach would require 2 different methods, right?  The extension Clone and the DeepClone method that is called by the extension.
FWIW - I'd pick a different name than CloneTensor or DeepClone for the abstract method.  Deep is wrong IMO because it doesn't actually clone the individual elements (I can create a Tensor<object>).  CloneTensor is just confusing from the normal Clone method.  CloneInternal does sound better to me, or maybe CloneProtected.  CloneImplementation?

Yeah, I can see how this is better for the users at a small cost to the derivers.  Given there will be a relatively small set of derivers I'm ok with forcing them to "read the manual" on what to do for Clone.  We should also add a test that calls the base clone and ensures that it returns the derived type.

@tannergooding you'll need to figure out what to do with this PR at some point.

@tannergooding should this be closed or moved to corefx


feat(site): initial scaffolding [WIP]

Just a start, needs a bit of text and TLC

Please be sure to commit / generate a file /docs/CNAME containing tauri-apps.org.
As per this doc it should be in the folder not root of the master branch.

I'll leave the CNAME as an issue, since the DNS isn't set up for it right now anway.