[F] Add refetch tags to communities, collections, items, contributors list

Resolves MERU-855

@1aurend is there a refetch mechanism that should be working instead of refetch tags? Or is it OK to add these refetch tags back in?

Resolves MERU-855

@1aurend is there a refetch mechanism that should be working instead of refetch tags? Or is it OK to add these refetch tags back in?

Hmm... I'm not 100% sure, but I thought the refetch tags no longer worked with the refactored queries. There is a subscribeIds prop on the query wrappers:
return (
    <QueryTransitionWrapper<Query>
      query={query}
      variables={contributorSearchVars}
      subscribeIds={["Contributor"]}
      loadingFallback={<LoadingPage />}
    >
      {({ queryRef }) =>
        queryRef ? <ListQuery queryRef={queryRef} /> : <ContributorList />
      }
    </QueryTransitionWrapper>
  );
}

Might be worth a look why the subscribeId isn't working?


⚠ Bofrost.es has degraded performance

In 99f0401, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1549 ms

Resolved: Bofrost.es performance has improved in 1cab835 after 6 minutes.


Some Glish words clash with existing monosyllable word

For example, the word floor and kink exist as a real, monosyllable words. Revolution and Kinda are non-monosyllable words that got truncated to aforementioned two words.
image

While "kink" is a word that may or may not exist depending on who and where you ask, you're probably right with floor. I assume the IPA has a different idea of how the "floor" of revolution ought to be pronounced 🤷🏻♂

yeah, I think like https://github.com/paralogical/glish/issues/6, it's an issues with the IPA -> english-like spelling that makes it look the same. This would maybe go away if we respelled all the already monosyllabic words, but then it would be even harder to read.

I think revolution is "intended" by glish to be read like "flew-er", but the original english "floor" is more like "flor"


feat: add silent flag to shell

Add silent flag to shell that removes "entering subshell with railway..." message

maybe also make this flag remove the exiting shell message

exit

...
...
...
# does nothing

in the repo, the screenshot shows them?

in the pr, the screenshot shows them?

I mean if it didn't show that I feel like that's too little info- but I can make the change easily (1 line)

the whole point of a silent flag is for it to be silent

Aight gimme 2 minutes
On Fri, Aug 11, 2023 at 01:54 Milo @.***> wrote:

the whole point of a silent flag is for it to be silent
—
Reply to this email directly, view it on GitHub
https://github.com/railwayapp/cli/pull/437#issuecomment-1673577862, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGJTIEEQIHZWM5ZMMCA744DXUUG4XANCNFSM6AAAAAA2IFI7I4
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
--Alexander


Ephemeral storage/node storage are not following configurations in module

Description
Ephemeral storage/node storage are not following configurations in module.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: v18.20.1

Terraform version: Terraform v1.1.7 on linux_amd64

Provider version(s):   + provider registry.terraform.io/hashicorp/aws v4.8.0  + provider registry.terraform.io/hashicorp/kubernetes v2.10.0

Reproduction Code [Required]
module "eks" {
  source          = "terraform-aws-modules/eks/aws"
  version         = "18.20.1"
  cluster_name    = local.cluster_name
  cluster_version = var.k8s_version
  subnet_ids      = var.vpc_private_subnets
  vpc_id          = var.vpc_vpc_id
  enable_irsa     = true

  cluster_addons = {
    coredns = {
      resolve_conflicts = "OVERWRITE"
    }
    kube-proxy = {}
    vpc-cni = {
      resolve_conflicts        = "OVERWRITE"
      service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
    }
  }
  # Extend cluster security group rules
  cluster_security_group_additional_rules = {
   ...
  }
  node_security_group_name = "${local.cluster_name}-node-sg"
  eks_managed_node_group_defaults = {
    ami_type = "BOTTLEROCKET_x86_64"
    platform = "bottlerocket"
    disk_size                             = 128
    instance_types                        = local.instance_type
    iam_role_additional_policies          = var.iam_role_additional_policies
    vpc_security_group_ids                = var.additional_security_group_ids
    min_size                              = local.min_size
    max_size                              = local.max_size
    desired_size                          = local.desired_size
    iam_role_attach_cni_policy            = true
    attach_cluster_primary_security_group = true

    tags = merge(var.default_tags, {
      "k8s.io/cluster-autoscaler/enabled"               = "true"
      "k8s.io/cluster-autoscaler/${local.cluster_name}" = "owned"
    })
  }
  eks_managed_node_groups = {
    spot-g = {
      # use_name_prefix = true
      min_size       = 0
      max_size       = 100 //local.max_size * 20
      desired_size   = 1   //ceil(local.desired_size / 4)
      disk_size      = 128
      instance_types = local.spot_instance_type[local.env]
      capacity_type  = "SPOT"

      bootstrap_extra_args = <<-EOT
      # extra args added
      # [settings.kernel]
      # lockdown = "integrity"

      [settings.kubernetes.node-labels]
      "node.kubernetes.io/lifecycle" = "spot"
      EOT
    }

    ondamand = {
      # use_name_prefix = true
      min_size       = 1 //2
      max_size       = 6 //local.max_size
      desired_size   = 1
      disk_size      = 64
      instance_types = local.instance_type[local.env]
      capacity_type  = "ON_DEMAND"

      bootstrap_extra_args = <<-EOT
      # extra args added
      # [settings.kernel]
      # lockdown = "integrity"

      [settings.kubernetes.node-labels]
      "node.kubernetes.io/lifecycle" = "normal"
      EOT
    }
  }

  tags = merge(var.default_tags,
    {
      Name = local.cluster_name
    }
  )
}

Steps to reproduce the behavior:
Expected behavior
disk_size is being set in the eks_managed_node_group_defaults block and in every node_group created. Nodes should have the specified disk.
Actual behavior:
Storage does not follow any of the configured values.
$ kubectl describe nodes
>
...
Capacity:
  attachable-volumes-aws-ebs:  39
  cpu:                         16
  ephemeral-storage:           20624592Ki
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      64453472Ki
  pods:                        58
Allocatable:
  attachable-volumes-aws-ebs:  39
  cpu:                         15890m
  ephemeral-storage:<PHONE_NUMBER>2
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      63436640Ki
  pods:                        58
  ...
  Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                    Requests       Limits
  --------                    --------       ------
  cpu                         2125m (13%)    0 (0%)
  memory                      17403Mi (28%)  17715Mi (28%)
  ephemeral-storage           6Gi (35%)      10Gi (59%)
  hugepages-1Gi               0 (0%)         0 (0%)
  hugepages-2Mi               0 (0%)         0 (0%)
  attachable-volumes-aws-ebs  0              0

Additional context
This is using the bottlerocket AMI.
My acctual structure is abstracting this repo a bit, and the whole eks_managed_node_groups dict comes from a variable. To reproduce this, create a variable and eks_managed_node_groups = var.node_groups. But his should not affect the issue.

Setting the volume directly on the managed node group only works if using the default launch template created by the EKS managed node group service. You can see here regarding how to enable the use of the default template
However, that means you will lose access to set other configurations such as bootstrap_extra_args which require the use of a custom launch template (module defaults to using custom launch template for this reason, hence why the volume setting has no effect).
To change volume settings you will have to use the block_device_mapping variable https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/examples/eks_managed_node_group/main.tf#L277-L289

I see. I only use the bootstrap_extra_args for setting node-labels like this:
      [settings.kubernetes.node-labels]
      "node.kubernetes.io/lifecycle" = "spot"

Is there another way to do this so I dont need to use bootstrap_extra_args ?

the EKS managed node group service does this automatically when using SPOT

In my tests, vpc_security_group_ids also stopped working. Am I correct to assume that it also needs create_launch_template to be true?

@auyer could you post a full reproduction of your code - its difficult to tell what you have and what you are trying to achieve

@auyer the disk_space variable only takes effect when create_launch_template is false, and the default for it is true.
I added these blocks in the eks_managed_node_group_defaults to handle the root disk size, some AMIs change the root device_name but you can check the pattern in the AWS doc here.
  eks_managed_node_group_defaults = {
    block_device_mappings = {
      root = {
        device_name = "/dev/xvda"
        ebs = {
          volume_size = 64
        }
      }
    }
    instance_types = ["t3.xlarge", "t3a.xlarge", "m6i.xlarge", "m6a.xlarge"]
  }

@auyer the disk_space variable only takes effect when create_launch_template is false, and the default for it is true.
I added these blocks in the eks_managed_node_group_defaults to handle the root disk size, some AMIs change the root device_name but you can check the pattern in the AWS doc here.
  eks_managed_node_group_defaults = {
    block_device_mappings = {
      root = {
        device_name = "/dev/xvda"
        ebs = {
          volume_size = 64
        }
      }
    }
    instance_types = ["t3.xlarge", "t3a.xlarge", "m6i.xlarge", "m6a.xlarge"]
  }

closing this issue out for now - please refer to the examples/ as they show a wide array of usage configurations as well as the documentation which provides a wealth of resources

Hi. I am still having issues with this.
I'm using the same setup in the original question, with create_launch_template=true. I've added the block_device_mappings but my issues persist.
This is the default values for my nodes:
  eks_managed_node_group_defaults = {
    create_launch_template                = true
    ami_type                              = "BOTTLEROCKET_x86_64"
    platform                              = "bottlerocket"
    disk_size                             = 128
    instance_types                        = local.instance_type
    iam_role_additional_policies          = var.iam_role_additional_policies
    vpc_security_group_ids                = var.additional_security_group_ids
    create_security_group                 = true
    min_size                              = local.min_size
    max_size                              = local.max_size
    desired_size                          = local.desired_size
    iam_role_attach_cni_policy            = true
    attach_cluster_primary_security_group = true
    block_device_mappings = {
      xvda = {
        device_name = "/dev/xvda"
        ebs = {
          volume_size           = 30
          volume_type           = "gp3"
          iops                  = 3000
          throughput            = 150
          delete_on_termination = true
        }
      }
    }

    tags = merge(var.default_tags, {
      "k8s.io/cluster-autoscaler/enabled"               = "true"
      "k8s.io/cluster-autoscaler/${local.cluster_name}" = "owned"
    })
  }

Check out one of the nodes
 kubectl describe nodes
~>
Name:               [redacted].ec2.internal
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=r5.2xlarge
                    beta.kubernetes.io/os=linux
                    eks.amazonaws.com/capacityType=SPOT
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=ip-[redacted].ec2.internal
                    kubernetes.io/os=linux
                    ...
Annotations:        csi.volume.kubernetes.io/nodeid: {"ebs.csi.aws.com":"i-04dbe8393b8e2ecf6"}
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Wed, 04 May 2022 11:36:57 -0300
Taints:             node.kubernetes.io/disk-pressure:NoSchedule
Unschedulable:      false
Lease:
  HolderIdentity:  ip-[redacted].ec2.internal
  AcquireTime:     <unset>
  RenewTime:       Wed, 04 May 2022 12:05:42 -0300
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Wed, 04 May 2022 12:05:18 -0300   Wed, 04 May 2022 11:36:56 -0300   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     True    Wed, 04 May 2022 12:05:18 -0300   Wed, 04 May 2022 12:05:18 -0300   KubeletHasDiskPressure       kubelet has disk pressure
  PIDPressure      False   Wed, 04 May 2022 12:05:18 -0300   Wed, 04 May 2022 11:36:56 -0300   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Wed, 04 May 2022 12:05:18 -0300   Wed, 04 May 2022 11:37:27 -0300   KubeletReady                 kubelet is posting ready status
Capacity:
  attachable-volumes-aws-ebs:  25
  cpu:                         8
  ephemeral-storage:           20624592Ki
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      65030940Ki
  pods:                        58
Allocatable:
  attachable-volumes-aws-ebs:  25
  cpu:                         7910m
  ephemeral-storage:<PHONE_NUMBER>2
  hugepages-1Gi:               0
  hugepages-2Mi:               0
  memory:                      64014108Ki
  pods:                        58
System Info:
  Machine ID:                 ec246d81b0f4e2cf2ed28ac91ab3f515
  System UUID:                ec246d81-b0f4-e2cf-2ed2-8ac91ab3f515
  Boot ID:                    0d655ff9-5720-417f-a3fb-279b6a73ed68
  Kernel Version:             5.10.102
  OS Image:                   Bottlerocket OS 1.7.0 (aws-k8s-1.22)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  containerd://1.5.11+bottlerocket
  Kubelet Version:            v1.22.6-eks-b18cdc9
  Kube-Proxy Version:         v1.22.6-eks-b18cdc9
ProviderID:                   aws:///us-east-1a/i-0[redacted]
Non-terminated Pods:          (6 in total)
  Namespace                   Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                         ------------  ----------  ---------------  -------------  ---
  kube-system                 aws-node-9z2vz                               25m (0%)      0 (0%)      0 (0%)           0 (0%)         28m
  kube-system                 aws-node-termination-handler-ksklw           0 (0%)        0 (0%)      0 (0%)           0 (0%)         28m
  kube-system                 ebs-csi-node-ltclq                           0 (0%)        0 (0%)      0 (0%)           0 (0%)         28m
  kube-system                 kube-proxy-5qbnq                             100m (1%)     0 (0%)      0 (0%)           0 (0%)         28m
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                    Requests   Limits
  --------                    --------   ------
  cpu                         125m (1%)  0 (0%)
  memory                      0 (0%)     0 (0%)
  ephemeral-storage           0 (0%)     0 (0%)
  hugepages-1Gi               0 (0%)     0 (0%)
  hugepages-2Mi               0 (0%)     0 (0%)
  attachable-volumes-aws-ebs  0          0
Events:
  Type     Reason                   Age                  From        Message
  ----     ------                   ----                 ----        -------
  Normal   Starting                 28m                  kubelet     Starting kubelet.

  Normal   NodeReady                28m                  kubelet     Node ip-[redacted].ec2.internal status is now: NodeReady
  Normal   NodeHasNoDiskPressure    6m49s (x3 over 28m)  kubelet     Node ip-[redacted].ec2.internal status is now: NodeHasNoDiskPressure
  Warning  EvictionThresholdMet     37s (x2 over 12m)    kubelet     Attempting to reclaim ephemeral-storage
  Normal   NodeHasDiskPressure      28s (x2 over 11m)    kubelet     Node ip-[redacted].ec2.internal status is now: NodeHasDiskPressure

You're setting a volume size of 30gb and your output is showing attachable-volumes-aws-ebs:  25 - what is the issue?

Can we reopen this issue?  For bottlerocket MNGs, the data volume is /dev/xvdb, and so the following BDM gets applied to the OS partition (which is read-only, and does not need to be large): https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/main/modules/aws-eks-managed-node-groups/locals.tf#L60
In particular, this leaves the data volume unencrypted by default, which is probably not intended.  It's also small, depending on the workloads.
Changing the above device name to /dev/xvdb gives the expected result:

$ kubectl describe nodes ...
[...]
Capacity:
  ephemeral-storage:           82547144Ki


Add Emacs-style Prefix handling

Description
This patch adds an Emacs-like prefix argument and a wrapper function you can use to turn any X action into one aware of the prefix.  See the Usage notes in the file for more details.
Checklist

[x] I've read CONTRIBUTING.md

[ ] I tested my changes with xmonad-testing

[x] I updated the CHANGES.md file

Pretty interesting idea @Fuco1.  With the default key binding being C-u, doesn't that mean we'd break Emacs since there would be no way to use C-u?

That's the neat part! Unless there is a keybinding registered with xmonad that handles the prefix, xmonad recognizes there's no way to continue and just sends C-u to the window that would normally recieve it.  That's one of the reasons I made the submapWithDefaultKey patch some months ago.
So if you have M-k in xmonad but not in Emacs, C-u M-k would pass the prefix to whatever is bound to M-k.  If there is no M-k in xmonad, these two would be send to Emacs (in the expected order).
There is one slight problem when you have a map like C-c C-u in Emacs (for example org mode uses this), then you have to hit C-g to get out of the "xmonad grab" (or any other non-recognized key really) to get C-c C-u sent to Emacs.

I've been using this for about three months now, here are some examples from my current config if people are interested about the possibilities: https://github.com/Fuco1/dotfiles/blob/master/xmonad/.xmonad/xmonad.hs#L117

Perhaps you can add a link to your config in the docs for this module.

There is one slight problem when you have a map like C-c C-u in Emacs (for example org mode uses this), then you have to hit C-g to get out of the "xmonad grab" (or any other non-recognized key really) to get C-c C-u sent to Emacs.

Oooh that's a pretty nasty gotcha. What would be the harm in using a different prefix key by default in xmonad? Super-u isn't defined by default...

@IvanMalison no harm I guess, I just wasn't sure what to use and C-u is readily understandable for most potential users (which I guess would come from Emacs).  We can change it of course.
Personally, the mentioned C-c C-u of org is likely the only "offending" binding I've encountered, mostly because people somehow subconsciously avoid binding C-u to anything, even in nested maps.  But it caught me by surprise the first time, I have to admit :D
I should probably add a note about this to the readme, as this shadowing can theoretically happen with any binding in any application.  Or we can figure out some way to make it a non-issue, but no solution comes to mind right now.

@psibi This pr seems done, I guess @Fuco1 can just rebase once more and we merge it before 0.17?  Seems like it simply got forgotten about by the people involved.

fwiw I've been using this ever since without any problems.  I can attempt a rebase, hopefully there won't be too many conflicts.

@slotThe Thanks for the ping. I will merge this in a couple of days unless there is objection. Also, I think two things needs to be done before we merge it:

[ ] Rebase and fix the current conflict
[ ] Add the following gotcha in the docs:

There is one slight problem when you have a map like C-c C-u in Emacs (for example org mode uses this), then you have to hit C-g to get out of the "xmonad grab" (or any other non-recognized key really) to get C-c C-u sent to Emacs.

I did the rebase on upstream master and added a caveat section to usage in the documentation.

Thanks!


Typo interation

@nschonni : Thanks for your contribution! The author, @rothja, has been notified to review your proposed change.


Best way to convert arrow to Rust native type

I have a machine learning dataset for text classification in arrow format . A record contains 2 elements, a label (integer) and a text a (string).
I want to convert it into  a native Rust native type, to exploit it in my code. A Vec<(i32, String)> would be ideal for fast indexing.
I've read the source code to find a way to do that, i have seen that Datatype can be create from Rust native type but not the other way.
So i found a way to accomplish what i want, but it fill a little bit hacky to me. I convert each arrrow records into a string and then i cast it into a Rust native type. Here is my code for doing that:
pub fn read_arrow_file_into_vec(arrow_file: &str) -> Vec<(String, String)> {
    let dataset = File::open(arrow_file).unwrap();
    let stream_reader = arrow::ipc::reader::StreamReader::try_new(dataset, None).unwrap();
    let batches: Result<Vec<RecordBatch>, arrow::error::ArrowError> = stream_reader.collect();
    let batches = batches.unwrap();
    let mut res: Vec<(String, String)> = Vec::new();

    for batch in &batches {
        for row in 0..batch.num_rows() {
            let mut sample = Vec::new();
            for col in 0..batch.num_columns() {
                let column = batch.column(col);
                sample.push(array_value_to_string(column, row).unwrap());
            }
            res.push((sample[0].clone(), sample[1].clone()));
        }
    }
    res
}

Then i cast the Vec<(String,String)>  into Vec<(i32, String)> or other native types depending on the datastet schema.
If i want to generalize this , maybe i could write a pattern matching on the DataType, cast it into String (like in arrow::csv::Writer::convert) and then try to cast it into a Rust native type.
Please could you indicate me if there is a better way of doing this?
Maybe it's the idea of exploiting directly the arrow which is bad, i could use the arrow::csv::Writer to convert it into csv and then the deserialization into a Vec<(i32, String)> would be trivial.
I want to  keep the arrow format because when i'm working with huge dataset (several GigaBytes) that doesn't fit in my RAM i want to use the memory mapped capabilities of arrow format and  read only small chunk at the time.

I'll answer your question in two parts:

How to access the values in the arrays
How the types differ from Vec<String>, etc...

Downcasting ArrayRef
Let's say you constructed your RecordBatch like this
let strings = StringArray::from_iter_values(["foo", "bar"]);
let integers = Int32Array::from_iter_values([1, 2, 3, 4]);

let batch = RecordBatch::try_from_iter([
    ("strings", Arc::new(strings) as _),
    ("integers", Arc::new(integers) as _),
])
.unwrap();

If you want to access the integers in column 1 you might do
let integers = batch.column(1).as_any().downcast_ref::<Int32Array>().unwrap();

You now have an &Int32Array you can iterate through
for (idx, i) in integers.iter().enumerate() {
    match i {
        None => println!("{}: NULL", idx),
        Some(i) => println!("{}: {}", idx, i)
    }
}

You can also interact with the values data directly, although you will need to handle nulls yourself
let values: &[i32] = integers.values();
for (idx, i) in values.iter().enumerate() {
    match integers.is_valid(idx) {
        false => println!("{}: NULL", idx),
        true => println!("{}: {}", idx, i)
    }
}

The same is true of StringArray
let strings = batch.column(0).as_any().downcast_ref::<StringArray>().unwrap();
for .. in strings.iter() {
  ...
}

You could use this to convert to Vec<(i32, String)> if you wished to, but depending on your workload this conversion may not be cheap, and will likely sacrifice performance over using the arrow compute kernels, or interacting with the arrays as-is. If you are able to describe your workload I might be able to help with this.
Data Representation
Under the hood, types are not stored as Vec<Option<T>>:

Primitives are roughly represented as a null mask and Arc<[TYPE]>
Strings arrays are a null mask, a values data String, and a list of offsets Arc<[i32]>
etc...

The full details are described here. As well as supporting more types, this allows for more efficient kernels.
Arrow also supports zero-copy slicing of arrays, something which cannot be performed with Vec.
For example,
let strings = StringArray::from_iter_values(["foo", "bar", "bax"]);

let sliced = strings.slice(1, 1);
assert_eq!(sliced.len(), 1);
let sliced = sliced.as_any().downcast_ref::<StringArray>().unwrap();
assert_eq!(sliced.value(0), "bar");

Thanks a lot for your response, it help me a lot to better understand how to deal with arrow format.

Concerning the workload, it can be quite big. I'm currently  working on my spare times on a port of PyTorch dataloader in Rust. I've implemented all the base functionalities.  I want to play with dataset from huggingFace which contains a ton of arrow dataset, to do more advanced test with my library. The typical workflow is to process some contiguous rows at the time, so i think slicing is an important operation
The idea is to propose an option for loading the dataset in RAM or use arrow memory map depending on the size of the dataset.

About the data representation, i have a little question that may sound stupid. When you say that Arrow also supports zero-copy slicing of arrays, something which cannot be performed with Vec, does using a slice with vector is not actually doing a zero-copy slicing also? Like in this example

let vector = vec!["foo", "bar", "bax"];
let slice = &vector[1..2];
assert_eq!(slice[0], "bar");

does using a slice with vector is not actually doing a zero-copy slicing also

Yes, sorry I wasn't clear. The distinction is that arrow slices are owning, i.e. they don't borrow from the parent, which can make them significantly easier to work with.

I guess i will stream a batch of row from an arrow dataset (memory mapped or not) and convert it into Rust native type on the fly (or not) with the technique you showed me. Thanks for your help!

For anyone who read this if found a crate that is made to convert arrow to Rust Native type here: https://github.com/DataEngineeringLabs/arrow2-convert


Two scroll on header questions

Hello, thank you very much for providing such a good component. I am very interested in the Scroll On Header component of this component. At present, I have found the following two problems with this function:

Sliding sideways in the Header will synchronize sliding, resulting in TAB switching;
If there are Horizontal slip images inside the Header area and the contents need to Scroll left and right, the Header cannot Scroll after setting PointerEvents ="box-none" in the Header area
Please help to check whether there are good solutions for the above two problems, thank you

Hi @jishuxx  try gesture handler components and let me know :)

@jishuxx  Could you be able to find a solution ? Having the same problem.


TypeScript and Kaspersky antivirus code blocks

invoking code ".js" standard in pages typescript, Kaspersky blocks code no typescript originally.
Extension Kaspersky close in Chrome and error fixed up.  Error only TypeScript and Kaspersky,
I reported the error to the antivirus company

Kaspersky answer:
Kaspersky Open - > Settings - > Advanced / Additional (depending on the version) -> Network , disable " Insert scripts in web traffic to interact with web pages."


Level 1 – Security Question

This is red even after initial answering and then again confirming.

-Verified this issue on dev app v1.5.0(245)


Spike: decide on standardization rules for circuits C++

Draft of C++ Standards for Aztec Circuits

general

when something is not covered below, fall back to (Google's style guide](https://google.github.io/styleguide/cppguide.html)

spacing

4 spaces except for access-specifiers (public/protected/private) which can use 2
namespaces are not indented
for continued indentation, just be sane
remove trailing spaces at end of line (use a plugin)
include a newline at the end of a filenamespace my_namespace {
class MyClass {
  public:
    // ... public stuff

  protected:
    // ... protected stuff

  private:
    // ... private stuff

    void my_private_function0(int arg0,
                              int arg1)
    {
        // ...
    }

    void my_private_function1(
        int arg0,
        int arg1)
    {
        // ...
    }
}
} // namespace my_namespace

braces

functions use curly brace alone on newline
namespaces, classes, structs, enums, ifs, and loops use curely brace on same line
examplesvoid my_function()
{
    // ...
}

for (int i = 0; i < max; i++) {
    // ...
}

if (something_is_true) {
    // ...
}

struct MyStruct {
    // ...
}

naming

snake_case for files, namespaces and local variables/members
CamelCase for classes, structs, enums, types

exceptions types can be made for types if trying to mimic a std type's name like uint or field_ct

ALL_CAPS for constexprs, global constants, and macros
do use

Clear names
Descriptive names

don't use

abbreviations
words with letters removed
acronyms
single letter names

Unless writing maths, in which case use your best judgement and follow the naming of a linked paper

auto

use when type is evident
use when type should be deduced automatically based on expr
use in loops to iterate over members of a container
don't use if it makes type unclear
don't use you need to enforce a type
examplesauto my_var = my_function_with_unclear_return_type(); // BAD
auto my_var = get_new_of_type_a(); // GOOD

const and constexpr

use const whenever possible to express immutability
use constexpr whenever a const can be computed at compile-time
place const/constexpr BEFORE the core type as is done in bberg stdlib
examplesconst int my_const = 0;
constexpr int MY_CONST = 0;

namespace and using

never do using namespace my_namespace; which causes namespace pollution and reduces readability
namespaces should exactly match directory structure. If you create a nested namespace, create a nested directory for it
example for directory aztec3/circuits/abis/private_kernel:namespace aztec3::circuits::abis::private_kernel {
    // ...
} // namespace aztec3::circuits::abis::private_kernel

useinit.hpp only for core/critical renames like NT/CT and for toggling core types like Composer
use unnamed/anonymous namespaces to import and shorten external names into just this one file

all of a file's external imports belong in a single anonymous namespace namespace { ...\n } // namespace at the very top of the file directly after #includes
use using Rename = old::namespace::prefix::Name; to import and shorten names from external namespaces
avoid using renames to obscure template params (using A = A<NT>;)
never use renames to remove the std:: prefix
never use renames to remove a NT:: or CT:: prefix

test.cpp tests must always explicitly import every single name they intend to use

they might want to test over multiple namespaces, native and circuit types, and composer types

avoid calling barretenberg's functions directly and instead go through interface files like circuit_types and
native_types
using statements should be sorted case according to the LexicographicNumeric rules

see the SortUsingDeclarations section of the LLVM Clang Format Style Options document

if your IDE is telling you that an include or name is unused in a file, remove it!

includes

start every header with #pragma once
index.hpp should include common headers that will be referenced by most cpp/hpp files in the current directory
init.hpp should inject ONLY critical renames (like NT/CT) and type toggles (like Composer)

example using NT = aztec3::utils::types::NativeTypes;

ordering of includes

essentials

this source file's header
index.hpp (if present)
init.hpp (if present)

headers from this directory
headers from this module
headers from this project
barretenberg headers
third party headers
C++ standard library headers

use quotes internal headers
use angle braces for std library and external library headers

this includes barretenberg

each group of includes should be sorted case sensitive alphabetically
each group of includes should be newline-separated
example:#include "this_file.hpp"
#include "init.hpp"

#include "file_a_in_this_dir.hpp"
#include "file_b_in_this_dir.hpp"

#include "file_a_nearby.hpp"
#include "file_b_nearby.hpp"

#include <barretenberg/file_a.hpp>
#include <barretenberg/file_b.hpp>

#include <gtest>

#include <vector>
#include <iostream>

access specifiers

order them public, protected, private

struct and array initialization

use MyStruct my_inst{};

will call default constructor if exists and otherwise will value-initialize members to zero (or will call their default constructors if they exist)

explicitly initialize struct members with default values: NT::fr my_fr = 0;
initialize arrays using std::array<T, 8> my_arr{};

this value-initializes all entries to 0 if T has no default constructor, otherwise calls default constructor for each

arrays of fields/fr are different! Use zero_array helper function for initialization

std::array<fr, VK_TREE_HEIGHT> vk_path = zero_array<fr, VK_TREE_HEIGHT>();
This is necessary because fr does have a default constructor that intentionally does not intialize its members to 0

references

use them whenever possible for function arguments since pass by reference is cheaper
make arg references "const" if they should not be modified inside a function

avoid C-style coding

avoid malloc/free
use std::array/vector instead of int[]
use references instead of pointers when possible
if pointers are necessary, use smart pointers (std::unique_ptr/shared_ptr) instead of raw pointers
avoid C-style casts (use static_cast or reinterpret_cast)

comments

use doxygen docstrings (will include format example)/**
 * @brief Brief description
 * @details more details
 * @tparam mytemplateparam description
 * @param myfunctionarg description
 * @return describe return value
 * @see otherRelevantFunction()
 * @see [mylink](url)
 */

every file should have a meaningful comment
every class/struct/function/test should have a meaningful comment

class/struct comment might == file comment

comment function preconditions ("arg x must be < 100")

side-effects

avoid functions with side effects when it is easy enough to just have pure functions
if a function modifies its arguments, it should be made very clear that this is happening

same with class methods that modify members

function arguments should be const when they will not be modified

global state

no

docs

every subdir should have a readme

functions

use [[nodiscard]] if it makes no sense to call this function and discard return value[[nodiscard] int my_function()
{
    // ...
    return some_int;
}

// later can't do
my_function();

// can only do
int capture_ret = my_function();

if there is a name clash, prefix parameter with underscore like _myparamvoid my_function(int _my_var)
{
    my_var = _my_var;
}

macros

avoid macros as much as possible with exceptions for

testing
debug utilities
agreed upon macro infrastructure (like cbinds)

misc

use uintN_t instead of a primitive type (e.g. size_t) when a specific type width must be guaranteed
avoid signed types (int, long, char etc) unless signedness is required

signed types are susceptible to undefined behavior on overflow/underflow

initialize pointers to nullptr
constructors with single arguments should be marked explicit to prevent unwanted conversions

TODO

Examples
Closely review and compare to barretenberg standards
Come up with a preliminary plan for using a linter/formatter for enforcing [subset of] standards
Discuss enforcement of preconditions in wasm in lieu of throw
Dig into barretenberg_module (to be renamed circuits_module or something similar) and agree on standard for where/when/how modules should be created
Solicit feedback and refine proposed standards
Decide where this standard should live (maybe circuits/cpp/CODING_STANDARD.md)

The actual standardization tickets:

#219
#220
#190
#221
#215
#208

Current plan for linting is to use clang-tidy and a modified version of our current .clang-format. We can also consider some beefier tools like codechecker.

Draft .clang-format:
Language: Cpp
BasedOnStyle: Google
ColumnLimit: 120

# Whitespace
IndentWidth: 4
UseTab: Never
LineEnding: LF
MaxEmptyLinesToKeep: 2

# Auto-insertions
InsertNewlineAtEOF: true
InsertTrailingCommas: true
InsertBraces: true

# Alignment
ReferenceAlignment: Left
PointerAlignment: Left
QualifierAlignment: Left

# Misc spacing/linebreaks
IndentAccessModifiers: true
AllowShortFunctionsOnASingleLine: Never
AllowShortIfStatementsOnASingleLine: Never
AlwaysBreakAfterReturnType: None
AlwaysBreakAfterDefinitionReturnType: None
PenaltyReturnTypeOnItsOwnLine: 1000000
BreakConstructorInitializers: BeforeComma

# Includes
SortIncludes: CaseSensitive
IncludeBlocks: Regroup
IncludeCategories:
  # Headers in <> without extension.
  - Regex:           '<([A-Za-z0-9\Q/-_\E])+>'
    Priority:        6
  # Headers in <> from specific external libraries.
  - Regex:           '<(gtest|placeHolderForOthers)\/'
    Priority:        5
  # Headers in <> with extension.
  - Regex:           '<([A-Za-z0-9.\Q/-_\E])+>'
    Priority:        4
  # Barretenberg headers in <>
  - Regex:           '<barretenberg/.*>'
    Priority:        3
  # Barretenberg headers in ""
  - Regex:           '"barretenberg/.*"'
    Priority:        2
  # Headers in "" with extension.
  - Regex:           '"([A-Za-z0-9.\Q/-_\E])+"'
    Priority:        1

# Namespaces and using
FixNamespaceComments: true
NamespaceIndentation: None
SortUsingDeclarations: LexicographicNumeric

# Bin packing
BinPackArguments: false
BinPackParameters: false

# Braces
Cpp11BracedListStyle: false
BreakBeforeBraces: Allman
BraceWrapping:
  AfterClass: false
  AfterEnum: false
  AfterFunction: true
  AfterNamespace: false
  AfterStruct: false
  AfterUnion: false
  AfterExternBlock: false
  BeforeCatch: false
  BeforeElse: false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false

Once clang-format is finalized, each standardization rule should be flagged as covered in the automatic tooling or not.

Closing because moved to 'Done'


Download invoice as pdf

After order completion, there should be an option to download the invoice as a pdf.
We can use npm package react-pdf

Working on It!
Using React-pdf Library

Hi @RohitKumar-200 can you please assign me this issue.


Is there a crate somewhere using this ?

It would be nice to have a repository somewhere that shows how to use this.
E.g. a device crate with a kernel, and then a  binary crate, that launches the kernel.
Ideally it should at least compile on travis.

Most recent examples that use v0.5 can be found in not yet published ptx-support repo. It should be possible to add travis config to ensure those examples can be built.
Also, outdated v0.4 is being used by a CUDA tutorial. Sooner or later it has to be updated to use the latest version of the crate, though.

Would it make sense to moving all these crates to its own single repo, e.g., using a workspace ?
It seems to me that these all have to work together, be tested together, the tests need to work across crates, the examples use multiple crates, etc.

My goal was to create a high-level CUDA framework (I called it current) and it would make sense to move ptx-builder, ptx-linker and ptx-support crates in the workspace. But since the high-level crate is de-facto in an abandoned state, it's not yet possible.
Also, on another hand, I was thinking about the possibility to ship ptx-linker as a Rustup component, so there will be no need to use hacky rustc-llvm-proxy and it would be linked against real Rustc LLVM lib. In this case ptx-linker probably should live in a separate repo.

@denzp I've tried to start a Rust CUDA-wg so that those interested can have a place to communicate, and hopefully afterwards we can all start working on common "framework-independent" tooling.


Automated cherry pick of #9570: fix(region): 避免从云上同步下来的主机，创建相同配置时network_id为空

Cherry pick of #9570 on release/3.6.
#9570: fix(region): 避免从云上同步下来的主机，创建相同配置时network_id为空

Codecov Report

Merging #9571 (f150da6) into release/3.6 (b9d30c0) will increase coverage by 1.40%.
The diff coverage is 3.15%.

@@              Coverage Diff               @@
##           release/3.6   #9571      +/-   ##
==============================================
+ Coverage         5.86%   7.27%   +1.40%
==============================================
  Files              828     257     -571
  Lines           129133   34619   -94514
==============================================
- Hits              7577    2517    -5060
+ Misses          120876   31856   -89020
+ Partials           680     246     -434

Flag
Coverage Δ

aFlag
7.27% <3.15%> (+1.40%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/apply_manager_method.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/archs.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/db_dispatcher.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/models.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/scoperesource.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/sharablebase.go
6.01% <0.00%> (-0.06%)
:arrow_down:

pkg/cloudcommon/db/virtualjointbase.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/virtualresource.go
0.00% <0.00%> (ø)

pkg/cloudcommon/policy/policy.go
1.20% <0.00%> (-0.01%)
:arrow_down:

... and 532 more

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 dcf2a3f...f150da6. Read the comment docs.


Update online ASR tutorial

https://554729-90321822-gh.circle-artifacts.com/0/docs/tutorials/online_asr_tutorial.html

Add figure to explain the caching
Fix the initialization of stream iterator

side thought: do you think it'd be helpful to be explicit about how the quality of the transcriptions is as expected partly because the model is trained on librispeech but is used to perform inference on non-librispeech data?

How would you phrase it?
I gave some thoughts at the very beginning, but if we mention that the sample is out-of-domain data, then the narrative is "it's not that good and the reason is the sample is out-of-domain". So I decided not to mention.


A vue-cli compatible template

The aim is to quick start a project using vue-cli and vbuild together:
$ vue-cli init egoist/vv my-project
$ cd my-project
$ npm install
# this script implicitly runs `vbuild -d`
$ npm run dev
# and this scripts run `vbuild`, which means build for production
$ npm run build

Already a simple one https://github.com/egoist/vbuild-simple


python3Packages.angr: don't override unicorn

Motivation for this change
That's not allowed for pythonPackages.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Is this codified anywhere? Maybe I wasn't looking thoroughly enough, but I had no idea that overrides were unacceptable (given how widely-used they are everywhere else in Nixpkgs).
If it isn't, maybe it should be?

That is allowed for pythonPackages and necessary for bigger ones like home-assistant.

Almost all of those packages should not do so. The reason is that you can't have two versions of the same Python package in $PYTHONPATH.
It's fine for e.g. pytest since that's not in propagatedBuildInputs.
home-assistant is not in pythonPackages, so there's no problem.
We make a few exceptions for big packages like Django but such overrides should be subject to discussion before introducing them.
@FRidh @jonringer We should add this to the manual.
@SuperSandro2000 You prematurely merge or close pull requests time and time again. There are many people who take more care reviewing contributions and learning about the Nix ecosystem. You'd be well-advised not to overestimate your own abilities and to sometimes seek the expertise of others.

The reason is that you can't have two versions of the same Python package in $PYTHONPATH.

That would mean we would need to remove any package with multiple versions in https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix. That would include arrow_1, dnspython_1, foundationdb, wxPython_4_0 and more.
And that information would also belong into the pull request message.
Also if the information isn't written down there is a chance that I don't know it.
Also the PR with this change was open like that since two weeks and no one else took a look at it which know that information.

It's fine for e.g. pytest since that's not in propagatedBuildInputs.

This also needs to be written down especially for pytest-* packages.

learning about the Nix ecosystem.

Thats quite a bold statement. I am using nix since November 2020 (!) with no experience in functional languages.

learning about the Nix ecosystem.

Thats quite a bold statement. I am using nix since November 2020 (!) with no experience in functional languages.

Sorry for that. I should have said "had more time learning about the Nix ecosystem". I think we're all glad about active contributors like you.

Here's my quick reply on the matter:
Pinning within python-modules is highly discouraged. This will potentially introduce incompatible versions in a user's environment as either the new pinned version or the original version will be imported at runtime, breaking one of the packages.
The preference to handling this is to relax version bounds in the "install_requires" field. (could be in setup.py, pyproject.toml, requirements or others). In most cases, packages are still compatible with small API changes which may warrant a major version bump. We use test suites to verify that the package still works correctly.
If the package is still incompatible with the latest major version, then the most proper way to handle this is make an issue with the upstream package to adopt the latest major version. Or if upstream is not very responsive, you are free patch the source to make it compatible.
In very few circumstances, two versions of the same package are allowed to exist if the packages are extremely difficult to package. Some examples of this are tensorflow, which has huge ecosystems built around it and is hard to package. Another is django, which has 2 actively developed versions, and large ecosystems built around each.
One exception to this is applications, due to the way buildPythonApplication and toPythonApplication functions work, the related derivations will not bleed dependencies between packages. If the package doesn't need to be imported by other python modules, then this package would be a good candidate to convert into application. You can look at https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/admin/awscli/default.nix as an example of using an overlay within a python application.
Info on buildPythonApplication can be found here.
Info on toPythonApplication can be found here.

but @dotlambda is correct, the issue is that if angr and another package are used in the same environment, one of them will be broken. So we should only ever use a single versions. buildPythonApplication gives you some more flexibility, but then you're limited to just using the commands from the package; which is still useful if that's the intended purposes (e.g. glances)

@jonringer So is there any objection to merging this?

We all agree that overriding is a last resort. Nobody wants it and everybody tries to avoid it but it helps to keep things functional. In a perfect world no pinning would be needed.
The requirement was relaxed but it was not enough. Thus, the overriding was introduced. The overriding of unicorn allows angr to work properly ( 1.0.2-rc4 is a release that is confirmed to work at the moment). I'm wondering how the "Overriding Python packages" section fits in but from my point of view is the use case here a match.
I guess that nix-shell will detect a possible collisions if another unicorn release is pulled-in. Sure, there are other ways to get two different releases of a Python package into your environment like you could do in a classical venv.

So is there any objection to merging this?

Removing the override breaks angr in a non-transparent way. This should be merged when the fix arrives.

The requirement was relaxed but it was not enough. Thus, the overriding was introduced. The overriding of unicorn allows angr to work properly ( 1.0.2-rc4 is a release that is confirmed to work at the moment).

I would argue that anyone willing to use angr should do the override themselves. It should not be part of nixpkgs.

I would argue that anyone willing to use angr should do the override themselves. It should not be part of nixpkgs.
If we allow exceptions now, the number of overrides within pythonPackages will just keep increasing, breaking the entire package set and making it unmaintainable.

... which will cause the downfall of nixpkgs, linux and the entirety of unix.
Jokes aside. A package shouldn't require an overlay to be in a basic functional state. If it does we either need to fix it or it can be remove entirely.
There are already 5 or so packages who do this exact thing and python packages is totally fine.
We just need to be careful to not introduce it except if it is totally necessary and keep an eye out for this while reviewing because people will always come up with creative ways to get around nix mechanics.

I will fix the merge conflict and merge this in a few hours. This has been left unfixed for too long.
cc @FRidh

1.0.2rc4 is still the required version of unicorn.

@fabaff Not anymore: https://github.com/angr/angr/commit/6e9e6a0cc8d3d1ffc1431fac8b3f3bed187897c9

@dotlambda, thanks for the hint. Then it can be removed with 9.2.26.


Multiple OneDrive accounts

Description
My student OneDrive account does not show up as a separate cloud drive. Only the first (personal) drive shows up as a separate location.
Files -> no separate location for second OneDrive account:

Steps To Reproduce
Add a second OneDrive account

Requirements
Expected behaviour as in File Explorer:
(separate locations for personal and student OneDrive)

Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.2134
Log File
debug.log

Thank you for the feedback, we're tracking a similar issue in #4966 so we're going to merge the two. Please subscribe to that issue to be notified when it's resolved.


Footer Updated

Fixes Issue #856
Changes proposed

Decreased the size of the footer
improve the ui
Also added animations

Screenshots

have you added a border radius for top-right corner in the footer section ?

have you added a border radius for top-right corner in the footer section ?

yes if you want i can remove it

@codervivek5 Review it now

@codervivek5 Please review it asap

Thankyou for your contribution :) @parasss19


Transform pandoc-style class injection/fenced code blocks

Thanks for this really nice package @asottile .
Would you consider accepting added support for snippets of the following form:
~~~
def python():
    pass
~~~
{: .language-python}

It's being referred to as "fenced code blocks" or "pandoc-style".
It's being recognized by kramdown, for example. You can also check its use with sourcegraph.
I have already implemented the corresponding regexp in my fork, so I could add the unit tests, documentation, and open a PR here.

seems pretty niche -- there's only 1 repository over 100 stars on github

Yeah, we've also now simply started to convert to the other syntax (my solution in the fork was too simplistic)...
So I'm fine with closing this.


Add wait method to Workflow

Background
To help perform live tests of workflow templates, we would like to be able to write the following in test cases:
wflo_template = WorkflowTemplate(...)
wflo_template.apply(...)
wflo = wflo_template.run_as_worklow(...)
wflo.wait()
# Check post-conditions on workflow

Proposal
Add a wait method to Workflow that returns only after the workflow has been completed, or a timeout has been reached.

One last round @pbrunelle - awesome idea! ❤ Any chance you are open to submitting a PR?


Update RTD to install repo2docker

I saw the current readthedocs build is failing. Looks like it's due to the changes made in #515. The issue is that repo2docker isn't installed in the readthedocs virtualenv where the documentation is being built, so we're getting an ImportError when trying to build the command line API documentation:
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/repo2docker/envs/latest/lib/python3.5/site-packages/sphinxcontrib/autoprogram.py", line 120, in import_object
    mod = __import__(module_name)
ImportError: No module named 'repo2docker'

After reading through the readthedocs YAML configuration docs, I think we need to set setup_py_install to be true in readthedocs.yml (ref https://docs.readthedocs.io/en/latest/yaml-config.html#python-setup-py-install) to install repo2docker and fix the failing build. That's what is done in this PR.

Let's find out :)

I think we didn't catch this because in CircleCI we explicitly run pip install -e . to install repo2docker. We keep getting caught out by our RTD build failing despite having the CircleCI setup. I wonder if there is anything we can do to more easily/faithfully reproduce the RTD build environment and process. At the moment we are slowly iterating towards it but someone must have already solved this problem before us :)

Looks like we fixed the ImportError : )
But now there's a SyntaxError because of some f-strings : /
(see https://readthedocs.org/projects/repo2docker/builds/8291787/)
I opened up #520 to fix the f-string issue


Repo sync for protected CLA branch

The pull request is created from main638064786315073472sync_temp to main to fix git push error for protected CLA branch

Learn Build status updates of commit acab37b:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Support connection with dsn

Could you please add create_pool function with dsn parameter.
And it looks better to use cx_Oracle.makedsn to build dsn string instead of your variant "f"{host}:{port}/{db}"".
Example from documentation:
dsn = cx_Oracle.makedsn("dbhost.example.com", 1521, service_name="orclpdb1")
connection = cx_Oracle.connect("hr", userpwd, dsn, encoding="UTF-8")

async def create_pool(user = 'system', password = '', host = 'localhost', port = '1521', db = 'orcl', dsn = None, loop = None, minsize = 2, maxsize = 4, encoding = 'UTF-8', autocommit=False):
if loop == None:
loop = asyncio.get_running_loop()
if dsn == None:
dsn = csor.makedsn(host=host, port=port, service_name=db)
pool = csor.SessionPool(user=user, password=password, dsn=dsn, min=minsize, max=maxsize, increment=1, threaded=True, encoding=encoding)
pool = AsyncPoolWarpper(pool)
await pool.preexciting()
return pool

async def create_pool(user = 'system', password = '', host = 'localhost', port = '1521', db = 'orcl', dsn = None, loop = None, minsize = 2, maxsize = 4, encoding = 'UTF-8', autocommit=False):
if loop == None:
loop = asyncio.get_running_loop()
if dsn == None:
dsn = csor.makedsn(host=host, port=port, service_name=db)
pool = csor.SessionPool(user=user, password=password, dsn=dsn, min=minsize, max=maxsize, increment=1, threaded=True, encoding=encoding)
pool = AsyncPoolWarpper(pool)
await pool.preexciting()
return pool

@sinys15 Thanks for correcting my stuppid spelling mistakes. I'm considering whether to change parameter name 'db' into 'service_name'. The reason why I choose 'db' is at that moment I hope it to be more painless for user switching between mysql and oracle db api in python's async universe. However I find it very different between mysql and oracle db ,as example , the 'db' option in current code means very different from mysql's database on concept , which actually means a identifier of oracledb's listener service but not any kind of database or tablespace.
And if we give up holding same api concept with aiomysql , it's better to add sid option either. What‘s your point of view?

@sinys15 Thanks for correcting my stuppid spelling mistakes. I'm considering whether to change parameter name 'db' into 'service_name'. The reason why I choose 'db' is at that moment I hope it to be more painless for user switching between mysql and oracle db api in python's async universe. However I find it very different between mysql and oracle db ,as example , the 'db' option in current code means very different from mysql's database on concept , which actually means a identifier of oracledb's listener service but not any kind of database or tablespace.
And if we give up holding same api concept with aiomysql , it's better to add sid option either. What‘s your point of view?

My point of view is Oracle DB too much specific and it's be better do not change cx_Oracle behavior.
The original SessionPool specification is:
cx_Oracle.SessionPool(user=None, password=None, dsn=None, min=1, max=2, increment=1, connectiontype=cx_Oracle.Connection, threaded=False, getmode=cx_Oracle.SPOOL_ATTRVAL_NOWAIT, events=False, homogeneous=True, externalauth=False, encoding=None, nencoding=None, edition=None, timeout=0, waitTimeout=0, maxLifetimeSession=0, sessionCallback=None, maxSessionsPerShard=0)
https://cx-oracle.readthedocs.io/en/latest/api_manual/module.html#cx_Oracle.SessionPool
And it's better to keep this agreement and don't change it to mySQL way.
There are several ways (Oracle DB ways) how you can specify connection. It's all described
https://cx-oracle.readthedocs.io/en/latest/user_guide/connection_handling.html

My point of view is Oracle DB too much specific and it's be better do not change cx_Oracle behavior.
The original SessionPool specification is:
cx_Oracle.SessionPool(user=None, password=None, dsn=None, min=1, max=2, increment=1, connectiontype=cx_Oracle.Connection, threaded=False, getmode=cx_Oracle.SPOOL_ATTRVAL_NOWAIT, events=False, homogeneous=True, externalauth=False, encoding=None, nencoding=None, edition=None, timeout=0, waitTimeout=0, maxLifetimeSession=0, sessionCallback=None, maxSessionsPerShard=0)
https://cx-oracle.readthedocs.io/en/latest/api_manual/module.html#cx_Oracle.SessionPool
And it's better to keep this agreement and don't change it to mySQL way.
There are several ways (Oracle DB ways) how you can specify connection. It's all described
https://cx-oracle.readthedocs.io/en/latest/user_guide/connection_handling.html

New branch was drafted at dev, you can checkout if that's fine

New branch was drafted at dev, you can checkout if that's fine

Btw , find it seems to be a slight faster switching to dsn connection mode , is that's what it should be like , or its just cause by some testing inaccuracy.

Btw , find it seems to be a slight faster switching to dsn connection mode , is that's what it should be like , or its just cause by some testing inaccuracy.

If you specify SID you can don't specify host and port. This parameters takes from tnsnames. Thats why specify default host and port in function specification can be not good.

If you specify SID you can don't specify host and port. This parameters takes from tnsnames. Thats why specify default host and port in function specification can be not good.

You mean like this? dsn = cx_Oracle_async.makedsn(sid = 'somesid')

You mean like this? dsn = cx_Oracle_async.makedsn(sid = 'somesid')

No, I mean don't set it
async def create_pool(
...
host='localhost',
port='1521',
service_name='orcl',
by default. This should be user choice.

No, I mean don't set it
async def create_pool(
...
host='localhost',
port='1521',
service_name='orcl',
by default. This should be user choice.

I set default value of host , port ,service_name , sid  to None and merged dev branch. Besides , new unit test added , so that it maybe easier to PR for other developers. I'll close this issue.
btw I find it necessary to make 'Advanced Queuing' available , mentioned in one of your previous issue , if I'd like to use functions such as dbms_lock.sleep(). No ideas how to implement though.

I set default value of host , port ,service_name , sid  to None and merged dev branch. Besides , new unit test added , so that it maybe easier to PR for other developers. I'll close this issue.
btw I find it necessary to make 'Advanced Queuing' available , mentioned in one of your previous issue , if I'd like to use functions such as dbms_lock.sleep(). No ideas how to implement though.

I have no experience how to make it (AQ) async. Now I use execute method with dbms_aq.Enqueue and dbms_aq.Dequeue in PL/SQL block.
You can use it like cursor.execute('begin dbms_lock.sleep(3); end;')
You have to pay attention that sleep and Dequeue freeze process for setted time and you have to use something like asyncio.Task(self.process_dequeue_async()) for to make it async. But will be better investigate async libraries like aio_pika for rabbit or analog for postgres.

I have no experience how to make it (AQ) async. Now I use execute method with dbms_aq.Enqueue and dbms_aq.Dequeue in PL/SQL block.
You can use it like cursor.execute('begin dbms_lock.sleep(3); end;')
You have to pay attention that sleep and Dequeue freeze process for setted time and you have to use something like asyncio.Task(self.process_dequeue_async()) for to make it async. But will be better investigate async libraries like aio_pika for rabbit or analog for postgres.

Server CI uploaded to Github Marketplace , feel free to use. https://github.com/marketplace/actions/setup-oracle-11g-server

Server CI uploaded to Github Marketplace , feel free to use. https://github.com/marketplace/actions/setup-oracle-11g-server


Update style.css

Pipelines as Code CI/cloudnative-devsecops-ui has failed.

StatusDurationName

✅ Succeeded
7 seconds
fetch-repository

✅ Succeeded
52 seconds
codescan-sonarqube

❌ Failed
40 seconds
build-image

Failure reasontask build-image has the status "Failed":
Copying blob sha256:b3a503da1c14e064d67adec1240c4b0708334afcab5a647c71b85c1537a47533
Copying blob sha256:64cf2a1e544bd279650724aa5249679219fd1c7f28d4b126b6c8fbbd3047c5dc
error pushing image "quay.io/bgirriam/pipelines-vote-ui" to "docker://quay.io/bgirriam/pipelines-vote-ui": writing blob: initiating layer upload to /v2/bgirriam/pipelines-vote-ui/blobs/uploads/ in quay.io: unauthorized: access to the requested resource is not authorized

Pipelines as Code CI/cloudnative-devsecops-ui has failed.

StatusDurationName

✅ Succeeded
7 seconds
fetch-repository

✅ Succeeded
52 seconds
codescan-sonarqube

❌ Failed
40 seconds
build-image

Failure reasontask build-image has the status "Failed":
Copying blob sha256:b3a503da1c14e064d67adec1240c4b0708334afcab5a647c71b85c1537a47533
Copying blob sha256:64cf2a1e544bd279650724aa5249679219fd1c7f28d4b126b6c8fbbd3047c5dc
error pushing image "quay.io/bgirriam/pipelines-vote-ui" to "docker://quay.io/bgirriam/pipelines-vote-ui": writing blob: initiating layer upload to /v2/bgirriam/pipelines-vote-ui/blobs/uploads/ in quay.io: unauthorized: access to the requested resource is not authorized


fix: input error color and align icon error message

Description

fix: input error color for light/dark mode
style: align icon error message

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 82.97%. Comparing base (4edacee) to head (ad00e5d).
Report is 96 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #606      +/-   ##
==========================================
+ Coverage   81.38%   82.97%   +1.59%
==========================================
  Files         199      235      +36
  Lines        8354    10505    +2151
==========================================
+ Hits         6799     8717    +1918
- Misses       1555     1788     +233

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[freetype] Download from github instead of sourceforge

Is your feature request related to a problem? Please describe.
Microsoft has blocked sourceforge.net. Building freetype is impossible because vcpkg is downloading freetype from sourceforge.net.
Proposed solution
The package should be updated to download from https://github.com/freetype/freetype
Describe alternatives you've considered
No response
Additional context
No response

Microsoft has blocked sourceforge.net.

Can you add more information?

Does this help?

No. Unless "your organization" is "Microsoft". Otherwise, contact your administrator. There are more source packages hosted on sourceforge.net.

@nextstate This may be a Windows problem. Not a port or sorceforge problem. I have reported it. Wait a moment.

This may be an organizational policy, enforced via a Microsoft product.

@nextstate can you send an email to<EMAIL_ADDRESS>so we can help you with this issue


[[DOCS]] Mark the 'curly' option as deprecated

Commit 4e8921666a5fd54c5f58ebc66f3c61d6c60f7d85 marked many options
like 'camelcase', 'indent' and 'quotmark' as deprecated in favor of
the respective JSCS rules.
JSCS' requireCurlyBraces is the equivalent of JSHint's curly, as stated
at http://jscs.info/rule/requireCurlyBraces, but more customizable.
In order not to split efforts between projects, JSHint should not
enforce code style.

Thanks for the patch! I don't think deprecation is appropriate here, though, since the use of block delimeters for single-statement blocks is more than a matter of coding style. Last year's iOS TLS bug is a good example of how this consideration can actually help developers write safer code.
I think the documentation does a pretty good job describing this, but I'd be open to suggestions for making this point more clear.

Are you suggesting that JSCS should drop its option? Is redundancy any good here?

I think that the decision to remove functionality from a library is best left to its maintainers. If the folks at JSCS want to keep requireCurlyBraces, then I think it's a great idea. The additional control there might be useful for users who do not recognize this as a code safety issue--if you consider this strictly a stylistic consideration, you may have different preferences for different structures.


Spotdl always downloading 10hr or 1hour version of songs

System OS
Windows
Python Version
3.7 (CPython)
Install Source
pip / PyPi
Install version / commit hash
4.2.2
Expected Behavior vs Actual Behavior
Spotdl always downloading 10hr or 1hour version of songs on playlists always and i cant seem to find a fix
Steps to reproduce - Ensure to include actual links!
1.spotdl https://open.spotify.com/playlist/0wUcC8RUDucCNyC2eWq1Gb?si=76df540fae10495e
2.see songs are downloading wrong versions
Traceback
PS F:\music\top of the top> spotdl https://open.spotify.com/playlist/0wUcC8RUDucCNyC2eWq1Gb?si=155a4c155a4f4031
Processing query: https://open.spotify.com/playlist/0wUcC8RUDucCNyC2eWq1Gb?si=155a4c155a4f4031
Found 110 songs in The top of the top (Playlist)
Total                                    0/110 complete     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--
Downloaded "Supertramp - Bloody Well Right": https://music.youtube.com/watch?v=noSXUmwiF9M
Downloaded "Supertramp - Asylum": https://music.youtube.com/watch?v=w1gPg1c4S40
Downloaded "Supertramp - Dreamer": https://music.youtube.com/watch?v=6Rq_2Thm_4c
Downloaded "Supertramp - Rudy": https://music.youtube.com/watch?v=oc6uUlfyf5E
Downloaded "Supertramp - Hide In Your Shell": https://www.youtube.com/watch?v=qTKgnZpNTOA
Downloaded "Supertramp - Crime Of The Century": https://music.youtube.com/watch?v=GpAUDOI24Oo
Downloaded "Supertramp - Gone Hollywood - 2010 Remastered": https://music.youtube.com/watch?v=hbqVPYZgK48
Downloaded "Supertramp - If Everyone Was Listening": https://www.youtube.com/watch?v=ZAyLVtJgCZs
Downloaded "Supertramp - School": https://www.youtube.com/watch?v=Kia8b9gIuqw

Other details
No response

adding option --only-verified-results seems to help me but I guess it ignores youtube.

Can confirm, the issue is re-appearing again despite https://github.com/spotDL/spotify-downloader/issues/1949.
https://open.spotify.com/playlist/69kEzLThamIxllCH3UKRuN
Can we have an option/argument to specify max song length for the search?

will add this whenever I get some free time.
also by default results with time match lower than 25% will be automatically skipped

Happening to me too. Now I got 10 hours of Blinding Lights. I love them, but.... :)

Apparently, disabling the filter search solved the issue for me. (I did it using config.json)
"filter_results": false

should be fixed in v4.2.5


Navigation module error NextJS 15, React 19,

Check that this is really a bug

[X] I confirm

Reproduction link
...
Bug description

Next.js: 15.0.0-canary.58
React: 19.0.0-rc-fb9a90fa48-20240614
React-Dom: 19.0.0-rc-fb9a90fa48-20240614
Expected Behavior
No response
Actual Behavior
No response
Swiper version
11.1.8
Platform/Target and Browser Versions
Chrome 126
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

Your issue is closed because it is not filled correctly. Before you open an issue please review the contributing guideline.
Please fill the issue template correctly and:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with isssue

It will save a lot of time for other contributors to check your issue and fix it.


fix: ensure dirname(config_file_path) is not empty

Using os.chdir to switch to the directory containing the config file (introduced in #43) fails if config_file_path only contains a filename but no directories (similar to timvink/mkdocs-table-reader-plugin#16). Replacing an empty result of os.dirname should avoid this.

Argh, I guess I botched a release. Fine, let's fix that again.
Thanks for the report and fix :slightly_smiling_face:

v0.8.2 released :sweat:

Thanks for the super quick fix and release! :)


[Bug]: Unable to upload files. Getting 403 error

Version

[X] Yes

General Question

[X] No

What happened?
While uploading files, I faced CATCH ERROR: ERROR STATUS: 403. Attaching a screenshot for more clarity.

What have you tried?
I have tried to find a solution on google
Relevant log output
PS C:\Users\OneDrive\Desktop\create-10k-nft-collection-2.0.0> npm run upload_files

><EMAIL_ADDRESS>upload_files
> node utils/nftport/uploadFiles

Starting upload of images...
CATCH ERROR: ERROR STATUS: 403
Retrying

Protect your information

[X] I Agree

I am having the same issue!
I am getting a catch error ( catch ERROR: ERROR STATUS: 403) when I run "npm deploy_contract", then I have deleted everything and started from the beginning and when I ran "npm run upload_files" I got the same catch error ( catch ERROR: ERROR STATUS: 403).
please if anyone can help, please help us!!

Same problem here... 403 error on upload_files.

Same for me


glb format help

I am working on a simple 3d printer slicing software. I found a strange bug, atleast I don't understand it.
Probem:
So I have a STEP file from my 3d-print bed that I wanted to load into my application, first I used this online converter
https://imagetostl.com/convert/file/step/to/glb to convert it to a glb file format.
Here is what it looks like in my application:

This worked fine so at first I was satisfied, later that day I wanted to see some textures and used https://www.opencascade.com/products/cad-assistant/ to convert my STEP file to a proper GLB.
Exporting worked fine and I can reopen it within cad-assistant with textures and everything.
In cad-assistant view:

Next I tried to load my GLB into my application, but I see nothing. At some point I saw a broken mesh in my 3d view that could mean something went wrong at deserialization

I thought there are several different version of GLB, cad-assistant just detects them and chooses the correct deserialization
let mut assets = three_d_asset::io::load(&["assets/bed3.glb"]).unwrap();
let cpu_model: CpuModel = assets.deserialize("bed3.glb").unwrap();

let mut model = Model::<PhysicalMaterial>::new(&context, &cpu_model)
    .unwrap()
    .remove(0);

let scale = Mat4::from_scale(1.0);
let rotation = Mat4::from_angle_y(degrees(90.0))
    .concat(&Mat4::from_angle_x(degrees(90.0)))
    .concat(&Mat4::from_angle_z(degrees(45.0)));

let translation = Mat4::from_translation(vec3(0.0, 0.0, 0.0));
model.set_transformation(translation * rotation * scale);
.
.
.
model.render(&camera, &[&light0, &light1]);

objects.zip
When I try todo the same thing with obj files it says

Edit: My GLB doesn't work with the pbr example too, so its a GLB intern problem. Anything I export from blender as glb has the same problem.
Enviroment
Windows 10
winit

Well, it's hardly surprising that something went wrong when converting a STEP file to a GLB with some online tool, I would actually be more surprised if it actually worked 😆 But anyway, it's really hard for me to say what's wrong, it could be in a lot of places, but probably it's the conversion that produces some bad data. I guess you just need to debug it 🤷 Maybe try to rule out everything else to make sure that the problem is the conversion.
The obj problem is definitely just bad data, it's missing a field in the mtl file as described in the error.
Also, three-d-asset uses dependencies for parsing, so the wavefront_obj crate for parsing obj and the gltf crate for parsing glb/gltf, so you have to make issues in those crates if there's actually something that needs to be fixed.


Missing OSSL_FUNC_CRYPTO_*DUP definitions for provider core functions

Per https://www.openssl.org/docs/manmaster/man7/provider-base.html, function OSSL_provider_init() gets passed a set of core functions through the in parameter. Per doc this includes the following *dup functions:
 CRYPTO_memdup                  OSSL_FUNC_CRYPTO_MEMDUP
 CRYPTO_strdup                  OSSL_FUNC_CRYPTO_STRDUP
 CRYPTO_strndup                 OSSL_FUNC_CRYPTO_STRNDUP

But core_dispatch.h does not define these functions.
So either the doc is wrong, or the code misses these definitions.

The documentation is wrong. They once existed in a pre-release version but they were removed by 037439c46. That removal missed the removal of the documentation.


When using standalone player, how can I stop fetching the previous live stream

I use window.renderReactPlayer to create a new video player, and i remove the <video> but the previous stream is still fetching.
How can i stop it?

you might need to clean it up in a useEffect hook


Add description for language settings in Web IDE

Due to intermittent issues with the language settings in SAP Web IDE
(currently being investigated by their dev team), I added the code that
can be included in the project.json file.


Add venv to gitignore

Would allow venv to be deployed in the repository folder without causing git conflicts.

Sure, thanks!

Thanks :)


Coinbase button no longer works

Re-gen button.

Coinbase is requiring signing up as a business to process donations. No thanks. I'll just use my bitcoin address instead.


panic: interface conversion: interface {} is nil, not string

Running: odfe-monitor-cli -e https://localhost:9200 -p "password" sync --destinations
And error: panic: interface conversion: interface {} is nil, not string
I looked at destination.go and ran the {"size": 10000, "query":{ "bool": {"must": { "exists": { "field" : "destination" }}}}}, looking at the results I dont see any reference of Interface.

HI @Xyrion  Thank you for reporting this issue. This has been fixed and released under new version. You could install latest version and the issue shouldn't persist.
Let me know if you still face any other issue.


Accessing Products dictionary of StoreProductQueryResult throws InvalidCastException

Accessing IReadOnlyDictionary members of StoreProductQueryResult.Products throws InvalidCastException.
This includes Keys, Values, ContainsKey, TryGetValue and the indexer.
Example
StoreProductQueryResult result = await storeContext.GetUserCollectionAsync(productKinds);
IReadOnlyDictionary<string, StoreProduct> products = result.Products;
if (products.ContainsKey(addonId))
{
    Console.WriteLine("Nice");
}

Exception message: Invalid cast from 'WinRT.IInspectable' to 'ABI.System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,Windows.Services.Store.StoreProduct]]'.
Stack trace:
   at System.Runtime.InteropServices.DynamicInterfaceCastableHelpers.IsInterfaceImplemented(IDynamicInterfaceCastable castable, RuntimeType interfaceType, Boolean throwIfNotImplemented)
   at System.Runtime.CompilerServices.CastHelpers.ChkCast_Helper(Void* toTypeHnd, Object obj)
   at System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(Void* toTypeHnd, Object obj)
   at ABI.System.Collections.Generic.IReadOnlyDictionary`2.FromAbiHelper..ctor(IMapView`2 mapView, ObjectReference`1 objRef)
   at ABI.System.Collections.Generic.IReadOnlyDictionary`2.<>c__DisplayClass11_0.<_FromMapView>b__0()
   at WinRT.IWinRTObject.<>c__DisplayClass13_0.<GetOrCreateTypeHelperData>b__0(RuntimeTypeHandle type)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at WinRT.IWinRTObject.GetOrCreateTypeHelperData(RuntimeTypeHandle type, Func`1 helperDataFactory)
   at ABI.System.Collections.Generic.IReadOnlyDictionary`2._FromMapView(IWinRTObject _this)
   at ABI.System.Collections.Generic.IReadOnlyDictionary`2.global::System.Collections.Generic.IReadOnlyDictionary<K,V>.ContainsKey(K key)

TFM: net5.0-windows10.0.17763.0
Runtime: 5.0.0
Seems like the cast in #536 didn't resolve all issues?

As a temporary workaround, using the .ToList() extension method seems to do the trick.
StoreProductQueryResult result = await storeContext.GetUserCollectionAsync(productKinds);
IReadOnlyDictionary<string, StoreProduct> products = result.Products;
if (products.ToList().Any(kvp => kvp.Key == addonId))
{
    Console.WriteLine("Nice");
}

The fix for #536 hasn't yet made it into a .NET SDK servicing build, but we plan to soon.  There is a preview version of the package which you can test out by adding the below to your application's csproj to confirm that it fixes it, but you should remove it once a .NET SDK servicing build with these fixes are available.
<ItemGroup>         <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref"                             RuntimeFrameworkVersion="10.0.17763.11-preview" />         <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref"                             TargetingPackVersion="10.0.17763.11-preview" /> </ItemGroup>

My bad, I was not aware.
I can indeed confirm that it works in the preview version!


NAT with Helios is a bit wonky

If you let Helios run on e.g. Port 8080 and 8443 and then NAT incoming trraffic from 80 and 443 to it its canonical URLs(<link rel="canonical" /> in the source) still have Port 8080 and 8443 in them.
This did not seem to cause any bugs but definetly is suboptimal behaviour.

// We use the domain in the request and not localhost since our certificate is not signed against localhost,
// and we don't accept unsigned certs in production.
axios.defaults.baseURL = hostCfg.ssl === "none"
  ? `http://${hostCfg.bindDomains[0]}:${hostCfg.ports.http}`
  : `https://${hostCfg.bindDomains[0]}:${hostCfg.ports.https}`;

We might be able to get rid of this to always use the host from the user HTTP request?

Also verify how well Let's Encrypt works with NAT

This experimental feature will be released with 0.4, but is disabled by default.


Preview with accessToken from next-auth

Package containing the bug
next-drupal (NPM package)
Describe the bug
I'm trying to use next-auth to authenticate a user against Drupal (using simple_oauth), then to use the acquired accessToken in the DrupalClient to ensure I have the right permissions for access to revisions for preview.
However, I can't seem to get access to the accessToken from inside getStaticProps because it is a build time method, even though it runs serverside at runtime on preview. The only session related data available is in previewData but I'm not able to inject this into using the DrupalClient.preview method.
Setup
pages/api/[...nextauth].js

import NextAuth from "next-auth"

export const authOptions = {
  providers: [
    {
      id: "drupal",
      name: "Drupal CMS",
      type: "oauth",
      authorization: {
        url: process.env.NEXT_PUBLIC_DRUPAL_BASE_URL + '/oauth/authorize',
        params: {
          scope: 'content_editor',
        }
      },
      token: process.env.NEXT_PUBLIC_DRUPAL_BASE_URL + '/oauth/token',
      userinfo: process.env.NEXT_PUBLIC_DRUPAL_BASE_URL + '/oauth/userinfo',
      clientId: process.env.DRUPAL_CLIENT_ID,
      clientSecret: process.env.DRUPAL_CLIENT_SECRET,
      profile(profile) {
        return {
          id: profile.sub,
          name: profile.name,
          email: profile.email,
        }
      }
    }
  ],
  secret: process.env.DRUPAL_PREVIEW_SECRET,
  debug: true,
  cookies: {
    // Allow the sessionToken to be accessible through iframes (CMS preview)
    sessionToken: {
      name: `__Secure-next-auth.session-token`,
      options: {
        httpOnly: true,
        sameSite: 'none',
        path: '/',
        secure: true
      }
    },
  },
  callbacks: {
    async session({ session, token, user }) {
      // Attach the token to the session
      session.token = token
      return session
    },
    async jwt({ token, account, profile }) {
      // Attach the access token
      if (account) {
        token.accessToken = account.access_token
        token.id = profile.id
      }
      return token
    }
  }
}

export default NextAuth(authOptions)

pages/api/preview.ts
import { drupal } from '../../lib/drupal';
import { getServerSession } from "next-auth/next"
import { authOptions } from "./auth/[...nextauth]"
import { NextApiRequest, NextApiResponse } from 'next';

export default async function handler(req:NextApiRequest, res:NextApiResponse) {
  // This ensures a session is present.
  const session = await getServerSession(req, res, authOptions)
  return await drupal.preview(req, res);
}

So far so good. The above authenticates me with Drupal and ensures I am authenticated when attempting to preview.
The problem occurs when attempting to render a preview. Calls to useSession or getSession inside of getStaticProps always returns null. I presume this is because this process is happening in a build context that doesn't / shouldn't have access to the session.
The solution would appear to be to set the accessToken in the previewData of the request. However, the way that DrupalClient.preview works, I can't add any additional data to the previewData. This is the bug.
Is it possible to pass in a callback to write additional previewData to the response?

heh, this seems related - https://github.com/vercel/next.js/discussions/32207#discussioncomment-3458862


Create layout HomePage

Basic HomePage of service pharmaceutical.

@GilsonSantoss Can I take this on?

yes

@GilsonSantoss let me try it now because no PR yet have submitted


add sargasso log file

Add Sargasso log file before creating a pull request on the MultiQC package for the Sargasso module.

Exciting, thanks!


update(docker): use debian 12 slim for falco no driver

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind feature
/area build

What this PR does / why we need it:
Since we're updating the large image to Debian 12 I believe it makes sense to update the nodriver one as well. It's also slightly smaller (about ~30MB smaller)
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

update(docker): the Falco no-driver image is now based on Debian 12

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

docker/OWNERS [LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

docker/OWNERS [FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 5f2ed48af86401c28b7825ab51fb0873e95edf1e

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

docker/OWNERS [Andreagit97,FedeDP,LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


276115

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the plugin and it is still present.

WordPress version
6.0
Cloudflare-WordPress version
4.10.1
PHP version
7.4.13
Expected result
Whenever we are making any changes to the post, or adding new post, it should be available on respective sections based on category assigned.
Also while changing menu struture, pages should purge cached automatically
Actual result
For an instance,
Today we have updated 2 post on our website

Soul Sustenance
Thought For Today
Now both are visible on home pages section of www.brahmakumaris.com

But in other page, it is showing yesterdays post only…and not of today.
https://www.brahmakumaris.com/soul-sustenance/
https://www.brahmakumaris.com/thought-for-today/
Now if you press Ctrl+Shift+R on above page, then it will load and show the data of today as well…but again if we do the normal refresh then it is serving data of yesterday from cache.
Settings are default only…after enalbing APO.
If we deactivating APO then website is updating properly.
APO is helping a lot to improve speed but at the same time it is adding lot of manual effort to purge page each time adding/updating post or pages or menus.
Steps to reproduce
Everyday we are facing this challenge on our site.
Additional factoids
No response
References
No response

did you enable APO through the wordpress plugin? what is in the debug logs?

did you enable APO through the wordpress plugin? what is in the debug logs?

How do we get the debug logs ?
We have tried enable from cloudflare website also tried from wordpress plugin.

We have enable APO via wordpress plugin only. Below are the url where we have sent multiple messages.
https://community.cloudflare.com/t/latest-cloudflare-plugin-update-cache-issues/388638/7
Regarding, Debug log, we dont have any...
Do we have alternative way to check and fix the issue.

Can someone help to fix the issue.

Kindly help


ML 3.1 What is Clustering? Validate its necessity using real-world applications. (A)

Description
Description
📌  Issues for Week 3
Welcome to 'ML' Team, good to see you here
:arrow_forward: This issue will helps readers in acquiring all the knowledge that one needs to know about ----
What is Clustering? Validate its necessity using real-world applications..
:red_circle: To get assigned to this issue, add your Batch Numbers mentioned in the spreadsheet of "Machine Learning", the approach one would follow and choice you prefer (Documentation, Audio, Video). Please note this issue if for audio contribution only
✔ Domain : Machine Learning
:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.

"Issue Title" and "PR Title should be the same. Include issue number along with it.

Changes should be made inside the Machine Learning/Machine_Learning/Supervised_Machine_Learning Branch.

Follow Contributing Guidelines & Code of Conduct before start Contributing.

This issue is only for 'GWOC' contributors of 'Machine Learning' domain.

:white_check_mark: To be Mentioned while taking the issue :

Full name
Batch Number
GitHub Profile Link
Which type of Contribution you want to make :

[ ] Audio

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎
Domain
Machine Learning
Type of Contribution
Audio
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Sarmistha Sarna
Batch :01
https://github.com/ron352
type : audio

Mohd Talib Akhtar
Batch : 03
Github : https://github.com/Mohdtalibakhtar
Type : Documentation

I want to contribute to this issue :
Name-Bhaswati Roy
Domain-Machine Learning
Type-Audio
Batch-6
Issue Number-
Contribution Approaches-what is clustering, different algorithms of clustering, main principle behind clustering, sample usecases in real life

@ron352 Issue assigned!


file explorer stuff

Change the widget list to a file explorer

Before this is merged we need to add the filter to the file list to streamline the options available in the file tree. For now we can filter it to just stl files. Other than that is looks fantastic! I think we can combine the current directory path and back button on the same HBoxlayout rather than have two rows

Moving the individual widgets to init to seperate functions is a good idea and I think it is a good idea to help clean up the code.

I am a dummy and used the wrong interpreter. Need to run it using python .\main.py instead of .\main.py


HIGC tournament implementation

This PR adds the HIGC tournament implementation as discussed with @lanctot

Hey, don't use std::filesystem. It has compatibility issues on older compilers which we need to build the wheel. There should be something from utils/file you can use instead.

There should be something from utils/file you can use instead.

Thanks for the suggestion! I updated the code. I still need to check if it runs properly in Travis, there might be an issue with relative paths when I try to get the correct python executable via venv that has pyspiel in it.

Hmm not sure why build_and_test / build (ubuntu-18.04, 3.6, 0, OFF, OFF, OFF) is failing, while the other ones are working. The error message complains about non-existence of a file that is included in the PR (and this runs fine in the other checks).

Bot#0: /home/runner/work/open_spiel/open_spiel/open_spiel/higc/bots/test_bot_buffer_overflow.sh  <-- should exist
Bot#0: subprocess: execvpfailed at /home/runner/work/open_spiel/open_spiel/open_spiel/../open_spiel/higc/subprocess.h:96: No such file or directory <--- but claims it doesn't :/

Maybe a fluke? I've seen sporadic trouble with relative paths and files before. I've restarted the tests. If it happens again, it's probably legitimate.

If you didn't do this, probably the best thing is to pass the paths to these scripts via the command-line. Because then in the Makefile you can add specific arguments and use the CMake environment vars to point to the specific file. See how I did this for the UCI bot test here: https://github.com/deepmind/open_spiel/blob/f63bd349470f65cc521b14f324bfcbd59c109e32/open_spiel/bots/uci/CMakeLists.txt#L7

I suspect the problem is in not passing PYTHONPATH correctly... I will have a look tomorrow as well.

@lanctot Yay! It works now. I also exposed bindings to call the tournament and process the results from Python.

Alright I have now imported this. I had to make a few changes due to C++ style / conventions. The tests still run and work, but most notably I had to remove exceptions and add a Referee::StartedSuccessfully function, which will return false if the subprocesses fail to open. So now there's an extra step of SPIEL_CHECK_TRUE(ref.StartedSuccessfully()) in a number of places.. when you see the code just verify that I got them all.

I will take a look to verify. Thank you Marc!


Topic: Agile and Scrum Practices in DevOps

Describe the types of DevOps topics you'd add in HelpOps-Hub Resource pages
Agile and Scrum Practices in DevOps
@mdazfar2, assign me this issue under GSSOC'24
How many and what types of DevOps tools are you adding?
Agile and Scrum Practices in DevOps
How many years of experience do you have in the DevOps field?
2 months
Could you share some screenshots or a video of your previous DevOps work?
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[ ] I'm a VSoC'24 contributor
[ ] I'm DevOps professional
[X] Soon, I'll complete it and create a Pull Request.
[X] I'm a beginner in DevOps, but I'll try to contribute the best resources with hands-on experience.

Hey @sreevidya-16
Thank you for creating issue.

I saw that you created 4 issues continuously, which is not a good practice in open source. It shows that you are contributing just to get points.

You said you have 2 months of experience in DevOps, but I visited your GitHub and LinkedIn and found nothing related to DevOps. How can you create documentation that really helps others? Also, there's no need to create a PR with AI-generated prompts.

Sorry, I apologize. Don't be discouraged, but I cannot assign all 4 issues to you that you created.

Devops was there in our academics(this semester)
That's the reason, I have kept 2 months experience @mdazfar2

"I saw that you created 4 issues continuously, which is not a good practice in open source. It shows that you are contributing just to get points."
Sorry I don't know about this

@sreevidya-16
Experience is gained by practicing, which you have not practiced anywhere as I saw. I guess you have good experience in DSA, AI/ML, and databases, but there is no DevOps experience mentioned on your profile.

"I saw that you created 4 issues continuously, which is not a good practice in open source. It shows that you are contributing just to get points."
Sorry I don't know about this

I'm talking about GSSOC'24 points and nothing else. Thank you! @sreevidya-16


#123 add list devices.

Added ListDevices functionality. Need to fix TF_DeleteDeviceList.

This introduces a new idiom for handling exceptions - I am not sure why I would want that.

I got it from there: https://github.com/tensorflow/tensorflow/blob/b474e55c23e5cc42b01a1ddea34751f01110deb6/tensorflow/python/framework/errors_impl.py#L460  . Maybe it would be okay to have just function MakeSpecificException after each call of state-functions.
Specific exeption are implmented in the https://github.com/migueldeicaza/TensorFlowSharp/pull/173 PR.

TensorFlowSharp uses a different idiom for this, I do not want to introduce a different way of raising exceptions.    There is a second problem with this, the existing idiom has a way of handling nested operations, and this does not take care of this either.
I can manually merge the other parts of the change, but the history would be attributed by me, or you can submit a new version of the patch with just the new functionality added (ListDevices) using the existing idioms in the binding and I can merge it.

I will make a commit which fixes exceptions idioms.

done

Thank you for changing the code!


Discuss main order as block type

The biggest [change suggestion to the 'main order' pull request] (and probably optional due to it just being style) is not adding another block type, which I think we don't need to do here. If you see a need though, let me know. We can definitely merge without altering that behavior and just flag it as something to refactor later.

I think you're referring to elif self.type == 'main order':. I'll make an issue, but let me know if I'm looking at the wrong thing.

Originally posted by @plocket in https://github.com/SuffolkLITLab/docassemble-assemblylinewizard/pull/203#issuecomment-776078724
As for why I made it that way, my methodology was to copy the way the interview order block did was doing its thing. Whoever takes this issue on might try to find where a plain code block is being created and see if this can just fit in there.

Obsoleted by mako refactor


[cinder-csi-plugin (chart)] Make a cinder chart compatible with the occm one

What this PR does / why we need it:
Make cinder plugin installation more seamless, i.e. make it easier to install the plugin right after installation of occm.
Release note:
NONE

I signed it.

/assign @ramineni

/ok-to-test

I assume when you say occm one, you are saying manifests? such as https://github.com/kubernetes/cloud-provider-openstack/blob/master/manifests/cinder-csi-plugin/cinder-csi-controllerplugin.yaml ?

ok, well understand, thanks for the detailed info

/lgtm

openstack-cloud-controller-manager chart is using secret for cloud config, cinder-csi also supports to use secret as volume but the volume is not used in volumeMounts which should be fixed there.

OCCM chart needs to be normalised with Cinder CSI chart, not the other way round. The OCCM mounts from non standard locations like /etc/config and /etc/ssl/cert

Thank for info.