README should contain basic setup steps and runtime failures

Your README should contain a section to explain how to set up the project. I had to run the following commands, for example:
python3 -m venv .venv # I used scoop to install python 3.10 on my machine
.\.venv\Scripts\Activate.ps1 # Or whatever OS-specific command to use
pip install -r .\requirements.txt

It doesn't work for Python 3.11 either, so explicitly listing which python versions are supported [3.7, 3.11) would be helpful, as well.
When I try to run python -m pytest tests/unit, without first setting up a virtual environment, it tells me that pytest is not a module. Perhaps indicate this only works inside of a virtual environment. It might also be helpful to point out it needs to be python, not python3, because otherwise it uses the global python instead of the environment's.
It's also not obvious to non-python developers that core.py validate --help and other example commands need to be prefixed with python. Please put the full command in the README to avoid confusion.
There's a typo in the following command:
python core.py validate -s sdtmig -v 3-4 -d path/to/datasets

It should be 3.4, I think.
My first validation also failed because it couldn't read the StandardName attribute in my define.xml:
Assignment error: MetaDataVersion does not have a defined attribute StandardName
Traceback (most recent call last):
  File "C:\Source\CDISC\cdisc-rules-engine\core.py", line 452, in <module>
    cli()
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\click\decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Source\CDISC\cdisc-rules-engine\core.py", line 217, in validate
    run_validation(
  File "C:\Source\CDISC\cdisc-rules-engine\scripts\run_validation.py", line 128, in run_validation
    reporting_service.write_report()
  File "C:\Source\CDISC\cdisc-rules-engine\cdisc_rules_engine\services\reporting\excel_report.py", line 90, in write_report
    raise e
  File "C:\Source\CDISC\cdisc-rules-engine\cdisc_rules_engine\services\reporting\excel_report.py", line 77, in write_report
    define_version: str = self._args.define_version or get_define_version(
  File "C:\Source\CDISC\cdisc-rules-engine\cdisc_rules_engine\utilities\reporting_utilities.py", line 20, in get_define_version
    return define_xml_reader.get_define_version()
  File "C:\Source\CDISC\cdisc-rules-engine\cdisc_rules_engine\services\define_xml_reader.py", line 302, in get_define_version
    self.read()
  File "C:\Source\CDISC\cdisc-rules-engine\cdisc_rules_engine\services\define_xml_reader.py", line 81, in read
    metadata = self._odm_loader.MetaDataVersion()
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\odmlib\loader.py", line 28, in MetaDataVersion
    mdv = self.loader.load_metadataversion(idx)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\odmlib\define_loader.py", line 68, in load_metadataversion
    mdv_odmlib = self.load_document(mdv[idx])
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\odmlib\define_loader.py", line 25, in load_document
    odm_obj = eval("self.DEF." + elem_name + "(**" + str(elem.attrib) + ")")
  File "<string>", line 1, in <module>
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\odmlib\odm_element.py", line 82, in __init__
    setattr(self, name, val)
  File "C:\Source\CDISC\cdisc-rules-engine\.venv\lib\site-packages\odmlib\odm_element.py", line 90, in __setattr__
    raise TypeError(f"Assignment error: {self.__class__.__name__} does not have a defined attribute {key}")
TypeError: Assignment error: MetaDataVersion does not have a defined attribute StandardName

I double checked and the define.xml definitely has a StandardName attribute:
<MetaDataVersion OID="MDV.CDISC01.SDTMIG.3.1.2.SDTM.1.2" Name="Study CDISC01, Data Definitions" Description="Study CDISC01, Data Definitions" def:DefineVersion="2.0.0" def:StandardName="SDTM-IG" def:StandardVersion="3.1.2">

Perhaps you are not properly handling the def: prefixes in the XML correctly?
Once the Excel was generated, I noticed the Datasets sheet always has 31 pin-stripped blank rows.

I was able to run a few validations yesterday and even was able to build the stand-alone executable. 👍
I am experimenting with the different command-line arguments and I did have a few observations, and I thought I would share in case they are useful:

I was happy to see -dp can be provided multiple times. I would highlight this in your README.
I don't see any examples of using the -ct argument. Is this the path to an XML file? Excel? Something else?

@jehugaleahsa the -ct takes a ct package name. ex sdtmct-2023-03-31. It can be specified more than once and is used to specify controlled terminology packages to use during validation. There is currently an open issue to list the available packages: https://github.com/cdisc-org/cdisc-rules-engine/issues/190

The Readme file is properly updated according to AC. The issue is pass from QA validation

Validation Summary
Validation Methodology:
The validation process incorporated rigorous testing methodologies to ensure the accuracy and reliability of the system. This included:
Manual Testing:
Manual Testing was done to verify the implementation of the Acceptance criteria. The readme file was checked and verified to contain all correct and uptodate information about the basic setup and runtime failures
Test Execution:

The testing was done manually and the readme file was checked.

Results:
After successful running of  manual tests and careful validation, the issue was found to be good to close.
Deviations and Non-conformances:
No deviations or non-conformances were observed.
Summary of Findings:
Test Results: All tests conducted during the validation process passed successfully, indicating that the system functions as intended and meets the specified requirements. The tests covered various scenarios and edge cases, providing confidence in the system's reliability and correctness.


Fix MTL4 test

Commit 75b8f0a4a35425c3869b6cb793339300550c6025 added lorenz.cpp to the MTL4 test, but there is no such file in this directory, so the test was always failing.

fixed in odeint repo: https://github.com/headmyshoulder/odeint-v2/commit/b4f52468e078c1d1dfb16933e0960e46b5976bbb

Thanks!


Exclude java/lang/ProcessHandle/InfoTest.java on OpenJ9 jdk21 and later

Issue https://github.com/eclipse-openj9/openj9/issues/19757

Do we need to backport this into https://github.com/adoptium/aqa-tests/tree/v1.0.3-release?

Created https://github.com/adoptium/aqa-tests/pull/5506 for v1.0.3


Create ci-script.sh

Alright, this still needs a chmod 777, which I cannot do right now. After that, CI should actually fail correctly...

bors r+


Should cargo-watch trigger when I run "git status?"

Right now, running git status triggers cargo-watch for me. This is by no means a serious problem for my use case, but I wonder if this might cause issues for others.

git status shouldn't write anything, unless you have a git plugin or it hits a git gc run… so that's a bit strange. Nevertheless, watching the .git folder, which I suspect is the issue here, should have been prevented. Fixed in 4.0.3.

Awesome, thanks!


Apache config settings

Hi,
I am trying to set up Apache (Apache/2.4.37 centos) for file serving but somehow I cannot get to work the .gz rewriting for the precomputed dataset. Chrome Dev Tool is showing 404 without .gz extensions.   Could I be missing something here?  I am looking at the following example.
Thank you,
-m
https://neuroglancer-scripts.readthedocs.io/en/latest/serving-data.html
# If you get a 403 Forbidden error, try to comment out the Options directives
# below (they may be disallowed by your server's AllowOverride setting).

<IfModule headers_module>
    # Needed to use the data from a Neuroglancer instance served from a
    # different server (see http://enable-cors.org/server_apache.html).
    Header set Access-Control-Allow-Origin "*"
</IfModule>

# Data chunks are stored in sub-directories, in order to avoid having
# directories with millions of entries. Therefore we need to rewrite URLs
# because Neuroglancer expects a flat layout.
Options FollowSymLinks
RewriteEngine On
RewriteRule "^(.*)/([0-9]+-[0-9]+)_([0-9]+-[0-9]+)_([0-9]+-[0-9]+)$" "$1/$2/$3/$4"

# Microsoft filesystems do not support colons in file names, but pre-computed
# meshes use a colon in the URI (e.g. 100:0). As :0 is the most common (only?)
# suffix in use, we will serve a file that has this suffix stripped.
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteRule "^(.*):0$" "$1"

<IfModule mime_module>
    # Allow serving pre-compressed files, which can save a lot of space for raw
    # chunks, compressed segmentation chunks, and mesh chunks.
    #
    # The AddType directive should in theory be replaced by a "RemoveType .gz"
    # directive, but with that configuration Apache fails to serve the
    # pre-compressed chunks (confirmed with Debian version 2.2.22-13+deb7u6).
    # Fixes welcome.
    Options Multiviews
    AddEncoding x-gzip .gz
    AddType application/octet-stream .gz
</IfModule>

You might try filing an issue on the neuroglancer-scripts repository.


Karpenter Nodes remain in NotReady state in GovCloud

Description
Observed Behavior
Karpenter can request a node and spin it up but it never completes the (whatever) process to enter a "Ready" state.
This means it's not a Kubernetes object (yet) so kubectl get nodes displays the EKS/mng but not the Karpenter nodes.
The Karpenter nodes are only observable from eks-node-viewer
% eks-node-viewer --node-selector="karpenter.sh/nodepool" --resources memory,cpu

1 nodes (0/14162Mi) 0.0% memory ░░ $0.037/hour | $26.864/month
        0/7910m     0.0% cpu    ░░
11 pods (4 pending 7 running 7 bound)

i-0a87d1e060c6bb172 memory ░░   0% (0 pods) c5a.2xlarge/$0.0368 Spot - NotReady/6m58s
                    cpu    ░░   0%
•
←/→ page • q: quit

Was contributing to issue #5570 but that one was closed out; finishing here. This may only apply to GovCloud anyway.
Additional Context:
It's unclear to me if this is a program issue or an implementation issue. Before this fix Karpenter deployed nodes and scheduled the pod as expected - but it couldn't kill a node that it had spun up in GovCloud. Worked fine in a commercial account.

Expected Behavior:
The node is deployed by Karpenter, it goes to a ready state and the pod is scheduled according to the documentation.
Reproduction Steps (Please include YAML):

Apply TF config
get kubeconfig file (get-creds.sh)
uncomment/apply the blueprint tf file
send the nodepool definition to the cluster
send the pause program to the cluster.
Scale up: kubectl scale deployment inflate --replicas 5

Fail: one pause pod is scheduled on to the single node in the managed node group; the others just sit there waiting for the karpenter node to become ready - it never does.
After 15 minutes of non-use, the node is killed by Karpenter and replaced because the deployment still needs to schedule the 4 remaining pods. This becomes an infinite loop.
Additional Troubleshooting Steps
I used Packer to copy an EKS worker node AMI and add my user account to it with an ssh key; then reconfigured the EC2NodeClass to use my AMI. Then opened up an ssh port to the VPC. After ssh'ing into the node and checking the logs I found that they looked relatively untouched:
$ journalctl -p 3 -xb
-- Logs begin at Thu 2024-02-01 23:36:30 UTC, end at Sat 2024-02-03 00:43:50 UTC. --
Feb 03 00:30:59 ip-172-31-43-231.us-gov-east-1.compute.internal kernel: SELinux:  Runtime disable is deprecated, use selinux=0 on the kernel cmdline.

Pretty standard 😂
$ journalctl -u kubelet
-- No entries --

I would have expected something from the kubelet but it appears to have received nothing from the controller.
Everything else appeared to be normal, the boot process, init, et al.
$ pstree
systemd─┬─2*[agetty]
        ├─amazon-ssm-agen───11*[{amazon-ssm-agen}]
        ├─auditd───{auditd}
        ├─chronyd
        ├─cloud-init─┬─part-001─┬─bash───bash───sleep
        │            │          └─part-001─┬─logger
        │            │                     └─tee
        │            └─sh───sh───tee
        ├─containerd───60*[{containerd}]
        ├─crond
        ├─dbus-daemon
        ├─2*[dhclient]
        ├─gssproxy───5*[{gssproxy}]
        ├─irqbalance───{irqbalance}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        └─systemd-udevd

From a networking perspective, I can hit anything in the VPC but there is no outbound path.
Versions:

Chart Version:

it appears the app and chart version are 0.32.1 (latest version of blueprints/addons)

Kubernetes Version (kubectl version):

Client Version: v1.29.1

Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

Server Version: v1.29.0-eks-c417bb3

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

I would have expected something from the kubelet but it appears to have received nothing from the controller

This sounds like an issue with something in the userData and in the node image that is causing the kubelet not to run. Since it looks like you using a custom AMI through the amiSelectorTerms, do you know if the AMI that Karpenter is selecting on has the eks-bootstrap script that Karpenter is expecting.
The other thing that I will note from reading through the EC2NodeClass that you shared is that you may intend to be selecting on a combination of an image that has an id ami-040d04b7b6b4ee64a AND a name eks-tester AND a couple tags; however, terms are ORed together through the amiSelectorTerms, similar to nodeSelectorTerms, which means that you may be selecting on more images than you intend.

I'm only using the custom AMI to login and see what the kubelet is doing; the modifications are minimal:

update OS packages
install some diagnostic tools: lsof, bind-utils and tree
add a user account and ssh key

Can't imagine that would have any effect on OS/kubelet operations.

you may be selecting on more images than you intend

that's my first config for troubleshooting; I'm sure it could be improved. I'll review that bit to tighten it up. But, it does allow me to login to the node with the credentials configured into the AMI so I'm getting the intended AMI. Sounds like I'm getting the right one but probably too much criteria.

Even after all of that, I do see the same behavior with a standard AMI; the only difference is I can't login to it to verify anything.
I've got a bit more investigation with SSM though; if I can get that working I can go back to the standard AMI AND see what it's doing.

@vstthomas Can you share the NodeClaim that is created for a node that does not go ready?

@engedaam, good callout  😀  easiest answers first:

what version of the eks-optimized AMI is the base for custom AMI?

Base_AMI_ID =  ami-0e86a63ef91c7eb22
I switched back to the AWS AMI today though (ami-049ff3db30fd665c7); it behaves the same. I should say that when I was using the custom one, it never never registered with SSM so I couldn't connect to it in session manager, as the troubleshooting docs suggest. That's specifically why I created the custom AMI with the user account/key; the assumption was that if anything was found in the logs using the custom one, it could have been true of both.

Can you share the NodeClaim that is created for a node that does not go ready?

Looks like it all resolves to, "Message: Node not registered with cluster".
Based on how you asked the question, it seemed like there might be a objects (plural) listed; default-9vdz7 is the only object under nodeclaims.
# kubectl -n karpenter describe nodeclaims/default-9vdz7
Name:         default-9vdz7
Namespace:
Labels:       karpenter.k8s.aws/instance-category=c
              karpenter.k8s.aws/instance-cpu=8
              karpenter.k8s.aws/instance-encryption-in-transit-supported=true
              karpenter.k8s.aws/instance-family=c5a
              karpenter.k8s.aws/instance-generation=5
              karpenter.k8s.aws/instance-hypervisor=nitro
              karpenter.k8s.aws/instance-memory=16384
              karpenter.k8s.aws/instance-network-bandwidth=2500
              karpenter.k8s.aws/instance-size=2xlarge
              karpenter.sh/capacity-type=spot
              karpenter.sh/nodepool=default
              kubernetes.io/arch=amd64
              kubernetes.io/os=linux
              node.kubernetes.io/instance-type=c5a.2xlarge
              topology.kubernetes.io/region=us-gov-east-1
              topology.kubernetes.io/zone=us-gov-east-1c
Annotations:  karpenter.k8s.aws/ec2nodeclass-hash:<PHONE_NUMBER>453800551
              karpenter.sh/managed-by: reproduction
              karpenter.sh/nodepool-hash:<PHONE_NUMBER>3388511505
API Version:  karpenter.sh/v1beta1
Kind:         NodeClaim
Metadata:
  Creation Timestamp:  2024-02-06T01:56:16Z
  Finalizers:
    karpenter.sh/termination
  Generate Name:  default-
  Generation:     1
  Owner References:
    API Version:           karpenter.sh/v1beta1
    Block Owner Deletion:  true
    Kind:                  NodePool
    Name:                  default
    UID:                   c05b57b8-5a19-4cb3-9019-12e5bdf29301
  Resource Version:        1574827
  UID:                     1eba9fcb-3c63-499f-a2b9-ebf39a1fef6e
Spec:
  Node Class Ref:
    Name:  default
  Requirements:
    Key:       karpenter.sh/nodepool
    Operator:  In
    Values:
      default
    Key:       node.kubernetes.io/instance-type
    Operator:  In
    Values:
      c5.12xlarge
      ...
      r6i.8xlarge
    Key:       karpenter.sh/capacity-type
    Operator:  In
    Values:
      spot
    Key:       karpenter.k8s.aws/instance-category
    Operator:  In
    Values:
      c
      m
      r
    Key:       karpenter.k8s.aws/instance-generation
    Operator:  Gt
    Values:
      3
    Key:       kubernetes.io/arch
    Operator:  In
    Values:
      amd64
    Key:       kubernetes.io/os
    Operator:  In
    Values:
      linux
  Resources:
    Requests:
      Cpu:   4150m
      Pods:  6
Status:
  Allocatable:
    Cpu:                        7910m
    Ephemeral - Storage:        17Gi
    Memory:                     14162Mi
    Pods:                       58
    vpc.amazonaws.com/pod-eni:  38
  Capacity:
    Cpu:                        8
    Ephemeral - Storage:        20Gi
    Memory:                     15155Mi
    Pods:                       58
    vpc.amazonaws.com/pod-eni:  38
  Conditions:
    Last Transition Time:  2024-02-06T01:56:18Z
    Message:               Node not registered with cluster
    Reason:                NodeNotFound
    Status:                False
    Type:                  Initialized
    Last Transition Time:  2024-02-06T01:56:18Z
    Status:                True
    Type:                  Launched
    Last Transition Time:  2024-02-06T01:56:18Z
    Message:               Node not registered with cluster
    Reason:                NodeNotFound
    Status:                False
    Type:                  Ready
    Last Transition Time:  2024-02-06T01:56:18Z
    Message:               Node not registered with cluster
    Reason:                NodeNotFound
    Status:                False
    Type:                  Registered
  Image ID:                ami-049ff3db30fd665c7
  Provider ID:             aws:///us-gov-east-1c/i-00c1fe852a5503e95
Events:                    <none>

Some supporting logging:
% kubectl logs -n karpenter -c controller -l app.kubernetes.io/name=karpenter | grep -i nodeclaim                                                                                <aws:vivsoft-gov>
{"level":"INFO","time":"2024-02-06T01:56:16.150Z","logger":"controller.provisioner","message":"computed new nodeclaim(s) to fit pod(s)","commit":"8fb62bf","nodeclaims":1,"pods":4}
{"level":"INFO","time":"2024-02-06T01:56:16.167Z","logger":"controller.provisioner","message":"created nodeclaim","commit":"8fb62bf","nodepool":"default","nodeclaim":"default-9vdz7","requests":{"cpu":"4150m","pods":"6"},"instance-types":"c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.2xlarge, c5.4xlarge and 95 other(s)"}
{"level":"INFO","time":"2024-02-06T01:56:18.775Z","logger":"controller.nodeclaim.lifecycle","message":"launched nodeclaim","commit":"8fb62bf","nodeclaim":"default-9vdz7","provider-id":"aws:///us-gov-east-1c/i-00c1fe852a5503e95","instance-type":"c5a.2xlarge","zone":"us-gov-east-1c","capacity-type":"spot","allocatable":{"cpu":"7910m","ephemeral-storage":"17Gi","memory":"14162Mi","pods":"58","vpc.amazonaws.com/pod-eni":"38"}}
{"level":"INFO","time":"2024-02-06T02:11:20.188Z","logger":"controller.nodeclaim.termination","message":"deleted nodeclaim","commit":"8fb62bf","nodeclaim":"default-9vdz7","node":"","provider-id":"aws:///us-gov-east-1c/i-00c1fe852a5503e95"}
{"level":"INFO","time":"2024-02-06T02:11:21.632Z","logger":"controller.provisioner","message":"computed new nodeclaim(s) to fit pod(s)","commit":"8fb62bf","nodeclaims":1,"pods":4}
{"level":"INFO","time":"2024-02-06T02:11:21.647Z","logger":"controller.provisioner","message":"created nodeclaim","commit":"8fb62bf","nodepool":"default","nodeclaim":"default-vksc4","requests":{"cpu":"4150m","pods":"6"},"instance-types":"c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.2xlarge, c5.4xlarge and 95 other(s)"}
{"level":"INFO","time":"2024-02-06T02:11:24.110Z","logger":"controller.nodeclaim.lifecycle","message":"launched nodeclaim","commit":"8fb62bf","nodeclaim":"default-vksc4","provider-id":"aws:///us-gov-east-1c/i-0190bbaa1bf33a56d","instance-type":"c5a.2xlarge","zone":"us-gov-east-1c","capacity-type":"spot","allocatable":{"cpu":"7910m","ephemeral-storage":"17Gi","memory":"14162Mi","pods":"58","vpc.amazonaws.com/pod-eni":"38"}}

NOTE: the instance-type was truncated but it did reflect the requirements of the configuration
I can put it back if it helps.

As a bonus, I did notice today that the docs mention the deletion of launch-templates during tear-down.
% aws ec2 describe-launch-templates --filters Name=tag:karpenter.k8s.aws/cluster,Values=reproduction
{
    "LaunchTemplates": []
}

Ne'er a one. So it didn't get as far as creating an LT; a few observations:

I do remember launch-templates scrolling by in the logs before before the fix
didn't realize until today that the logs no longer mention the creation of the LTs

Not sure if this is relevant but here's the first few Node NotReady troubleshooting steps
% kubectl get node -l "karpenter.sh/nodepool"

No resources found
% INSTANCE_ID=i-0ac7b3b5075a6effb
% aws ssm start-session --target $INSTANCE_ID

An error occurred (TargetNotConnected) when calling the StartSession operation: i-0ac7b3b5075a6effb is not connected.

Can you provide your EC2NodeClass and NodePool? Since the node is not registering, it can be a problem with the subnets or security groups

I left everything in the Apply TF config in the original post.
Since it's been problematic most of the karpenter config is the same as what's in the Getting Started docs

I should have clarified, I was hoping to the see the status section of the EC2NodeClass. That can give us information on the resolved values for the Subnet and Security Groups

Here's the EC2NodeClass:
# kubectl describe EC2NodeClass
Name:         default
Namespace:
Labels:       <none>
Annotations:  karpenter.k8s.aws/ec2nodeclass-hash:<PHONE_NUMBER>453800551
API Version:  karpenter.k8s.aws/v1beta1
Kind:         EC2NodeClass
Metadata:
  Creation Timestamp:  2024-02-05T18:15:03Z
  Finalizers:
    karpenter.k8s.aws/termination
  Generation:        1
  Resource Version:  1980319
  UID:               358eac7a-0e39-48c1-ac90-14edebb6866d
Spec:
  Ami Family:  AL2
  Metadata Options:
    Http Endpoint:                enabled
    httpProtocolIPv6:             disabled
    Http Put Response Hop Limit:  2
    Http Tokens:                  required
  Role:                           karpenter-reproduction-2024013019241487490000000e
  Security Group Selector Terms:
    Tags:
      karpenter.sh/discovery:  reproduction
  Subnet Selector Terms:
    Tags:
      karpenter.sh/discovery:  reproduction
Status:
  Amis:
    Id:    ami-075367bf3e511472f
    Name:  amazon-eks-arm64-node-1.29-v20240202
    Requirements:
      Key:       kubernetes.io/arch
      Operator:  In
      Values:
        arm64
      Key:       karpenter.k8s.aws/instance-gpu-count
      Operator:  DoesNotExist
      Key:       karpenter.k8s.aws/instance-accelerator-count
      Operator:  DoesNotExist
    Id:          ami-0872d1704843e9a30
    Name:        amazon-eks-gpu-node-1.29-v20240202
    Requirements:
      Key:       kubernetes.io/arch
      Operator:  In
      Values:
        amd64
      Key:       karpenter.k8s.aws/instance-gpu-count
      Operator:  Exists
    Id:          ami-0872d1704843e9a30
    Name:        amazon-eks-gpu-node-1.29-v20240202
    Requirements:
      Key:       kubernetes.io/arch
      Operator:  In
      Values:
        amd64
      Key:       karpenter.k8s.aws/instance-accelerator-count
      Operator:  Exists
    Id:          ami-049ff3db30fd665c7
    Name:        amazon-eks-node-1.29-v20240202
    Requirements:
      Key:       kubernetes.io/arch
      Operator:  In
      Values:
        amd64
      Key:           karpenter.k8s.aws/instance-gpu-count
      Operator:      DoesNotExist
      Key:           karpenter.k8s.aws/instance-accelerator-count
      Operator:      DoesNotExist
  Instance Profile:  reproduction_1945827343076045061
  Security Groups:
    Id:    sg-050d80bb6de1e87ca
    Name:  default
  Subnets:
    Id:    subnet-023c235748b66dad0
    Zone:  us-gov-east-1b
    Id:    subnet-01f2835e4171201b1
    Zone:  us-gov-east-1c
    Id:    subnet-05044360e84c56610
    Zone:  us-gov-east-1a
Events:    <none>

If there's a specific command(s) that you would like to see the out of then please let me know.

Everything with the EC2NodeClass seems to be in order. Can you validate that your node authentication is set up correctly? Can check that the KarpenterNodeRole can join nodes to your cluster? When you describe your aws-auth configmap you should a section as such.
apiVersion: v1
kind: ConfigMap
data:
  mapRoles: |
    - groups:
      - system:bootstrappers
      - system:nodes
      rolearn: arn:${AWS_PARTITION}:iam::${AWS_ACCOUNT_ID}:role/KarpenterNodeRole-${${CLUSTER_NAME}}
      username: system:node:{{EC2PrivateDNSName}}

That looks about right
% kubectl describe configmaps -n kube-system aws-auth                                                                                <aws:vivsoft-gov> <region:us-gov-east-1>

Name:         aws-auth
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
mapAccounts:
----
[]

mapRoles:
----
- "groups":
  - "system:bootstrappers"
  - "system:nodes"
  "rolearn": "arn:aws-us-gov:iam::${AWS_ACCOUNT_ID}:role/default_node_group-eks-node-group-2024010816581347320000000e"
  "username": "system:node:{{EC2PrivateDNSName}}"
- "groups":
  - "system:bootstrappers"
  - "system:nodes"
  "rolearn": "arn:aws-us-gov:iam:: AWS_ACCOUNT_ID:role/karpenter-gitops-demo-stage"
  "username": "system:node:{{EC2PrivateDNSName}}"

I've attempted a connection to the machine (EC2 Serial Console) and saw this scroll by:
Amazon Linux 2
Kernel 5.10.205-195.807.amzn2.x86_64 on an x86_64

ip-10-0-50-176 login: <13>Feb  8 20:21:18 user-data:
<13>Feb  8 20:21:18 user-data: Connect timeout on endpoint URL: "https://ec2.us-gov-east-1.amazonaws.com/"
<13>Feb  8 20:21:18 user-data: + PRIVATE_DNS_NAME=
<13>Feb  8 20:21:18 user-data: + '[' '!' '' = '' ']'
<13>Feb  8 20:21:18 user-data: + '[' 0 -ge 20 ']'
<13>Feb  8 20:21:18 user-data: + ATTEMPT=1
<13>Feb  8 20:21:18 user-data: + log 'WARN: PrivateDnsName is not available, waiting for 6 seconds...'
<13>Feb  8 20:21:18 user-data: ++ date +%Y-%m-%dT%H:%M:%S%z
<13>Feb  8 20:21:18 user-data: + echo 2024-02-08T20:21:18+0000 '[private-dns-name]' 'WARN: PrivateDnsName is not available, waiting for 6 seconds...'
<13>Feb  8 20:21:18 user-data: 2024-02-08T20:21:18+0000 [private-dns-name] WARN: PrivateDnsName is not available, waiting for 6 seconds...
<13>Feb  8 20:21:18 user-data: + sleep 6
<13>Feb  8 20:21:24 user-data: + true
<13>Feb  8 20:21:24 user-data: ++ aws ec2 describe-instances --region us-gov-east-1 --instance-ids i-06fcbb9ea8dfb2a9c
<13>Feb  8 20:21:24 user-data: ++ jq -r '.Reservations[].Instances[].PrivateDnsName'

Ignore this if it's meaningless I guess 🤷

Just spitballing, Karpenter is currently at v0.33.2. I've just noticed a newer version, with lots of updates.
Would it make sense to upgrade to the new version?

Yeah, upgrade v0.34, but I'm not sure you will see any difference. Since you are seeing Karpenter launching your nodes, it would seem to be a permission issue for your node to join the cluster. Also, should you only be resolving one security group? Can you share the inbound and outbound rules for the Security group?

chart_version   = "v0.33.2" -> "v0.34.0"
This one took a minute to solve; there were a lot of changes:

bumped all the versions for modules, eks, et al.
added the new aws-auth module

I think it came down to tagging the cluster. Not sure why that worked, there's no requirement for it. But, as soon as I tested that, the eks-node-viewer lit up:

The nodes are now going ready in GovCloud. Thank you!


list Recommendations to support both rm and lm

Description
Introduced the rm=true flag for the ROS Remote Monitoring use case. When rm=true is passed in the listRecommendations API, the API refers to remote monitoring tables. By default, the flag is set to false, which points to local monitoring tables. This feature is not critical for the ROS Remote Monitoring use case, as they do not utilize the listRecommendations API. Therefore, a documentation update is not required.
Fixes # (issue)
Type of change

[x] Bug fix
[ ] New feature
[ ] Docs update
[ ] Breaking change (What changes might users need to make in their application due to this PR?)
[ ] Requires DB changes

How has this been tested?
Please describe the tests that were run to verify your changes and steps to reproduce. Please specify any test configuration required.

[x] New Test X
[x] Functional testsuite

Test Configuration

Kubernetes clusters tested on:

Checklist :dart:

[x] Followed coding guidelines
[x] Comments added
[x] Dependent changes merged
[ ] Documentation updated
[x] Tests added or updated

Additional information
Include any additional information such as links, test results, screenshots here

@msvinaykumar Please fix the conflict

@msvinaykumar Please fix the conflict

done


Connection Failed

Downloaded and running Vim.exe but the website says:

Is there anything else I am missing. Let me know what you need to debug :D

a few people have been having this problem and i suspect it's something to do with your firewall because the client companion hosts a websocket server on your pc, but can you send the log file at %APPDATA/valorant-inventory-manager/vim.log?

vsm.log
Is this it?

try opening VALORANT before running VIM.exe

try opening VALORANT before running VIM.exe
also didn't realize i forgot to change it from vsm to vim, that'll be fixed in the next update

Nope I am still getting the same error. I have attached the log with valorant open. Hope this helps you :D
vsm.log

i think i might have identified a possible culprit, i'll look into it soon. thanks for your help and patience!

am getting the same probleme pls make fix to this soon

i've identified the problem, there will be a fix soon

Nice wooho! :D
On Fri, 11 Feb 2022 at 05:29, colin @.***> wrote:

i've identified the problem, there will be a fix soon
—
Reply to this email directly, view it on GitHub
https://github.com/colinhartigan/valorant-inventory-manager/issues/4#issuecomment-1036214715,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO2ISY2KR5LTM5K4EORBRULU2UFMPANCNFSM5NTQT5OA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

hi, i got the same problem but it only happens with my main account on valorant, in my secondary account the VIM it works, why?

Where can I find the VIM.exe file ?

https://github.com/colinhartigan/valorant-inventory-manager/releases


Obtain transcript count matrics

Hi Shuangshuang,
Considering a gene can produce multiple transcripts, is there a method to obtain a transcript counting matrix instead of a gene-based one during data preprocessing?
Thank you!

Single-cell RNA sequencing captures mRNA fragments from the polyA tail at the 3' end, making it challenging to recover longer sequences that can provide information about the originating transcript.
To accurately quantify transcripts, methods like single-cell full-length capture or Smart-seq, which offer full-length coverage, may be required.

Got it. Thanks for your reply.

I'm not sure the BRIE2 can fulfill your need,
https://genomebiology.biomedcentral.com/articles/10.1186/s13059-021-02461-5

Apologies for the delayed response. BRIE2 identify gene differentiation through spliced and unspliced states, not transcript variants. My objective is to assess gene targeting efficiency, given elements inserted into a specific gene transcript. Thank you for suggestion.


Merge Into MS-SQL database inserts only 200 records

System information:

Windows 10
Version <IP_ADDRESS>011011603

Connection specification:

MS SQL ODBC

Hello,
I found the error below:
MERGE xxx.dbo.TimeLine AS SourceTbl
USING (select x, y, z from  xxx.dbo.xxx_csv) AS TargetTbl
ON SourceTbl.gltimestamp = TargetTbl.timestamp and SourceTbl.gltype=trim(TargetTbl."Art des Eintrags")
WHEN MATCHED THEN
UPDATE SET
SourceTbl.Glvalue = (isnull(z , 0))
WHEN NOT MATCHED THEN
INSERT VALUES(newid(), TargetTbl.x, trim(TargetTbl."y"), (isnull(z , 0)), 0 , 0, 0, 'new'  );;;;
Complains missing ";" if there is ony one. Adding some more ";" it inserts 200 (random?) records of more than 9000.
No warning or errors, nothing in joblog.
Running the unchange code in VS works with no issues. (9509 rows affected)

Thank you for the report.
As a workaround please try to set fetch size "0" or "-"

This happens only with SQL Server over ODBC. Classic JDBC driver works ok.
Fixed.
I've added support of MERGE queries in SQL execution routine.

This happens only with SQL Server over ODBC. Classic JDBC driver works ok.
Fixed.
I've added support of MERGE queries in SQL execution routine.

Could you please also fix the issue with semicolon?

Could you please also fix the issue with semicolon?

Problem with trailing delimiter was fixed.

Problem with trailing delimiter was fixed.

verified

verified


Strict parsers (Follow CSS specs)

Codecov Report

Merging #53 (28daf5d) into master (a3e1186) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #53   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           34        34
  Lines          422       425    +3
  Branches        72        94   +22
=========================================
+ Hits           422       425    +3

Impacted Files
Coverage Δ

tests/fixtures.ts
100.00% <ø> (ø)

src/colorModels/hex.ts
100.00% <100.00%> (ø)

src/colorModels/hslString.ts
100.00% <100.00%> (ø)

src/colorModels/rgbString.ts
100.00% <100.00%> (ø)

src/parse.ts
100.00% <100.00%> (ø)

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 a3e1186...28daf5d. Read the comment docs.


Migrate to null safety

Note that tennis has not been migrated, only sealed unions.
Since updating the sdk constraints have updated (as indicated here: https://dart.dev/null-safety#enable-null-safety), compilation succeeds and all tests pass, I believe there are no real changes needed for the migration.
Thanks a lot :)

Unblocked.
Sealed Unions is NNBD compatible
GitHub Repo dart_sealed_unions

Apparently, #14 has been merged, which is the same as this but with formatting changes...


Fields in the form or Aggregation aren't being formatted properly

For example: "SELECT Count(HumanResources.Employee.EmployeeID) FROM HumanResources.Employee" doesn't work while "SELECT Count(Employee.EmployeeID) FROM Employee" works.

@prasadtad If you mean that the output looks like this:
SELECT
Count(
HumanResources.Employee.EmployeeID
)
FROM HumanResources.Employee
Then I agree with you! I'll fix this ASAP


Fix to consider existing axis X custom values when the custom id is not at the index 0. fixes #1876

Current coverage is 64.11% (diff: 100%)

Merging #1877 into master will increase coverage by 0.01%

@@             master      #1877   diff @@
==========================================
  Files             1          1
  Lines          4406       4408     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           2824       2826     +2
  Misses         1582       1582
  Partials          0          0

Powered by Codecov. Last update 955fdd6...31e88a9

+1

+1


Update README.md

Coverage remained the same at 100.0% when pulling 9207028f582aecb8c878647f218515454b115a36 on wilsongp-patch-1 into 86e8fd52efbe4085435a79b2ed353e126933988d on development.


StreamSelectLoop:Timers added during stream events are not accurate

New timers are scheduled relative to a local time kept in the timers class, which is only updated when Timers::tick() is run. However, when there are no scheduled tick callbacks, StreamSelectLoop will wait until the next scheduled timer (or infinite, if there are none) for stream activity, which prevents Timers::tick() from being called regularly and updating its local time. If a new timer is added in response to a stream event, it will be shortened by whatever period of time was spent waiting for stream activity (or, if the new timer's length is shorter than was spent waiting, the timer will be resolved immediately).
I believe a potential solution is:
diff --git a/src/Timer/Timers.php b/src/Timer/Timers.php
index c183a63..bebe552 100644
--- a/src/Timer/Timers.php
+++ b/src/Timer/Timers.php
@@ -30,7 +30,7 @@ class Timers
     public function add(TimerInterface $timer)
     {
         $interval = $timer->getInterval();
-        $scheduledAt = $interval + $this->getTime();
+        $scheduledAt = $interval + microtime(true);

         $this->timers->attach($timer, $scheduledAt);
         $this->scheduler->insert($timer, -$scheduledAt);

I can provide example reproducing scripts if preferred.

Thanks @andrewminerd, this is an interesting find! :+1:
I too would consider this to be a bug.
I agree that this is rather subtle and hard to test, so I'm curious to see what we can come up with.
Afaict your suggested change could end up starving the event loop by enqueuing new timers before processing stream events. For example, the following should still process incoming stream data between each tick:
$fn = function () use ($loop, &$fn) {
    echo 'tick';
    $loop->addTimer($smallValue, $fn);
});

$loop->addReadStream(STDIN, function () {
   echo fread(STDIN, 4096);
});

$loop->addTimer($smallValue, $fn);

Thanks for taking the time to check this out and comment -- I appreciate it!
I don't believe this change should affect whether or not timers can starve the event loop, unless the concern is that microtime() is not monotonic (or the system time is changed during execution). Timers::tick only grabs the current time once when beginning to process the queue, so assuming a monotonic microtime(), I do not believe it would be possible to queue an event with a scheduled time less than the value of $time used by Timers::tick.
I've attached two test scripts. The first (bug.php) demonstrates the original issue by creating two processes that have an open, connected socket between them. The parent process sleeps for 9 seconds and then writes data to the socket. The child process waits for a read event on the socket, enqueues a 10 second timer, and records how long it takes for the timer to fire. The expected output would be something like:
$ php ./bug.php
Adding timer for 10 seconds; started at<PHONE_NUMBER>
Slept 10 seconds

Actual output is:
Adding timer for 10 seconds; started at<PHONE_NUMBER>
Slept 1 seconds

The second (timer.php) also creates two process with a connected socket between them and is basically your example above. The parent process simply writes to the socket every second. The child process adds a recurring timer with a short period (0.0001) while also waiting for reads and increments and outputs counters for each. If both counters increase, the loop should not be starved.
Let me know what you think. Thanks again!
eventloop-test.zip

I was thinking about this some more, and came up with an alternative fix:
diff --git a/src/StreamSelectLoop.php b/src/StreamSelectLoop.php
index 7d45504..2a8557c 100644
--- a/src/StreamSelectLoop.php
+++ b/src/StreamSelectLoop.php
@@ -219,6 +219,7 @@ class StreamSelectLoop implements LoopInterface
         $write = $this->writeStreams;

         $this->streamSelect($read, $write, $timeout);
+        $this->timers->updateTime();

         foreach ($read as $stream) {
             $key = (int) $stream;

This retains similar behavior to the current code, but ensures that new timers added from write/read handlers are scheduled relative to a fresh timestamp. Unlike the previous patch, however, this would be susceptible to similar behavior as the original report if a write/read handler blocks for a significant period of time (which isn't a good idea anyways).
Either one would be fine with me; I'd leave it up to your preference!

Thanks for the elaborate analysis! Does anybody feel like filing a PR? :+1:

@clue @andrewminerd it looks like this is affecting the react-stomp project (and possibly others) when using the react timers for timeouts across multiple connections.  The timeout callback was firing prematurely and the connection was put into an unconnected state when it was actually connected.
From reading this discussion and doing a little bit of testing, it looks like just adding the following snippet to the bootstrap section of my app code will serve as a workaround:
$eventLoop->addPeriodicTimer(1, function () {});

Are there any potential issues with using this as a workaround that I should be aware of?
Thanks!
--
Jason

I think the main downside to that workaround would be potentially increased CPU usage as the loop will never be able to wait for stream input for more than 1 second (typically, if there are no scheduled timers, the loop would wait indefinitely for activity).
However, I'm a little confused as to how that workaround might fix this particular issue, as timers cannot interrupt the read/write even handlers. But I could be misunderstanding exactly what's going on!

I implemented this workaround and I'm not seeing any measurable CPU impact.
The workaround fixes the issue by forcing the Timers class' tick() function to update its internal clock every second, since its not being updated when timers are added.
Here's a bash script with embedded php that reproduces the issue I'm seeing:
#!/bin/bash

cat <(php <<'SCRIPT'
<?php

require 'vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$socket = new \React\Socket\Server($loop);

$first = true;
$socket->on('connection', function(React\Socket\Connection $conn) use ($loop, &$first) {
  $timer = $loop->addTimer(5, function(React\EventLoop\Timer\Timer $timer) {
    print_timer_message($timer, 'EXPIRED');
  });
  print_timer_message($timer, 'SET');
  if ($first === true)
  {
    $timer->cancel();
    print_timer_message($timer, 'CANCELED');
    $first = false;
  }
  $conn->close();
});

$socket->listen(13378, '<IP_ADDRESS>');
print "RUNNING\n";
$loop->run();

function print_timer_message(React\EventLoop\Timer\Timer $timer, $msg)
{
  $timerhash = md5(spl_object_hash($timer));
  $now = time();
  print "$now $timerhash TIMER $msg\n";
}
SCRIPT
) &

echo 'SCRIPT STARTED'
sleep 1
echo 'CONNECTING FIRST TIME'
nc localhost 13378
sleep 6
echo 'CONNECTING SECOND TIME'
nc localhost 13378
kill %1

The output of this script is:
$ bash timer-repro.sh
SCRIPT STARTED
RUNNING
CONNECTING FIRST TIME
1470865230 9ba7c33f145919f6fe3868a4f6240d80 TIMER SET
1470865230 9ba7c33f145919f6fe3868a4f6240d80 TIMER CANCELED
CONNECTING SECOND TIME
1470865236 298563f4e58bc6605a5b3440bad00db6 TIMER SET
1470865236 298563f4e58bc6605a5b3440bad00db6 TIMER EXPIRED

The output shows the second timer immediately expiring, when it should have waited 5 seconds.
If I add $loop->addPeriodicTimer(1, function () {}); before the $loop->run(); line, the second timer won't immediately expire.

I apologize, you're totally correct. It'd been so long, I'd forgotten exactly what I reported, and I accidentally looked at a version of StreamSelectLoop that had some of my own changes in it... Not sure I'd trust myself at this point, but the workaround seems fine. ;)

Adding a dummy periodic timer will cause some rather insignificant overhead, so depending on your needs this may be a good workaround for now :+1: Note that this still means that the incorrect timer offset will only be corrected ever so often, thus limiting you to this minimum timer resolution.
See also #51 for a more permanent fix.

Ok great.  Thanks Andrew and Christian!

Thanks!


getDynamicData doesn't work under Alpine Linux

Issue Type

[x] Bug
[ ] Feature Request
[ ] Question

Expected behavior
Package shouldn't be crashed in such situation;
Actual behavior
Package is crashed in such situation;
Steps to reproduce the problem
> var si = require('systeminformation');
undefined
> si.getDynamicData(function(data) {console.log(data)})
Promise {
  <pending>,
  domain:
   Domain {
     domain: null,
     _events:
      { removeListener: [Function: updateExceptionCapture],
        newListener: [Function: updateExceptionCapture],
        error: [Function: debugDomainError] },
     _eventsCount: 3,
     _maxListeners: undefined,
     members: [] } }
> TypeError: Cannot read property 'to' of undefined
    at checkColumn (/application/src/server-koa/node_modules/systeminformation/lib/processes.js:255:46)
    at parseLine (/application/src/server-koa/node_modules/systeminformation/lib/processes.js:266:5)
    at /application/src/server-koa/node_modules/systeminformation/lib/processes.js:312:23
    at Array.forEach (<anonymous>)
    at parseProcesses (/application/src/server-koa/node_modules/systeminformation/lib/processes.js:310:13)

Actually the same code works fine under OSX. So, I assume, this might be a platform related issue.
Specifications

package version: 3.37.8
operating system: Alpine Linux 3.6.2
hardware:

Problem and possible solution

@dmitryt : Can you provide the output of the following commands?
ps axo pid:10,pcpu:6,pmem:6,pri:5,vsz:10,rss:10,ni:5,start:20,state:20,tty:20,user:20,command

and
ps axo pid,pcpu,pmem,pri,vsz,rss,ni,start,state,tty,user,command

I guess there is a slightly different formatting which causes the problem ...
Thank you in advance ...

$ ps axo pid:10,pcpu:6,pmem:6,pri:5,vsz:10,rss:10,ni:5,start:20,state:20,tty:20,user:20,command
PID   USER     TIME   COMMAND
    1 root       0:00 npm
   16 root       0:00 sh -c node index.js "|" "tee" "/var/log/gdn-ui/gdn-middletier.log"
   17 root       0:01 node index.js | tee /var/log/gdn-ui/gdn-middletier.log
   23 root       0:12 /usr/local/bin/node /application/src/server-koa/index.js | tee /var/log/gdn-ui/gdn-middletier.log
   33 root       0:00 /bin/sh
   40 root       0:00 /bin/sh
   46 root       0:00 ps axo pid:10,pcpu:6,pmem:6,pri:5,vsz:10,rss:10,ni:5,start:20,state:20,tty:20,user:20,command

$ ps axo pid,pcpu,pmem,pri,vsz,rss,ni,start,state,tty,user,command
PID   USER     TIME   COMMAND
    1 root       0:00 npm
   16 root       0:00 sh -c node index.js "|" "tee" "/var/log/gdn-ui/gdn-middletier.log"
   17 root       0:01 node index.js | tee /var/log/gdn-ui/gdn-middletier.log
   23 root       0:12 /usr/local/bin/node /application/src/server-koa/index.js | tee /var/log/gdn-ui/gdn-middletier.log
   33 root       0:00 /bin/sh
   40 root       0:00 /bin/sh
   47 root       0:00 ps axo pid,pcpu,pmem,pri,vsz,rss,ni,start,state,tty,user,command

Hi @dmitryt
Think you for providing the results of the commands ... I am also no able to test it here using node:alpine container.
The problem is in processes(), where the ps command does not returns the expected values. I will add a fix for that. As I also see, inside alpine docker container, the processes() function will then not return all data as on a bare metal machine. Anyway, the getDynamicData() should then work without any error again. I will provide a fix beginning next week.

In alpine world you also should make sure that procps is installed or busybox. I found that busybox has issues w/gtop

The last issue would be in the disk information. In Alpine world there is no option -l to filter to the local filesystem so I suspect this is also the issue for gtop when the disk usage pane has nothing in it yet the raw command of df -lkPT produces an error. I'm not sure how you would go about handling this case after looking at the code because you would need to check 'Alpine' someplace and also refactor so that you have a Factory so you don't have all of the inline if statements for each OS.

@cigzigwon I will have a look on that. Thank you for pointing to this issue.

@cigzigwon for the fsSize() I guess I have a solution. But for your first comment, I do not really get the point. Not sure, you mentioned gtopwhich I am not using ...

Since this lib is a dependancy of gtop which I am using in Alpine with Node Ive noted why it is important to have underlying libs to support your lib which fixes gtop. So with that being said you at least need Alpine procps OR busybox and coretools packages installed for the OS.

@cigzigwon ... ok, clear. So now the question would be, when/how to check it ...

I guess with app list I could check if the packages are installed
then the question remains WHEN to check it ...

If I am pulling a alpine docker container, busybox is already installed so there systemInformation works out of the box. Never tried alpine on a bare metal ...

I was just mentioning that busybox is not installed in certain builds, like the ones for node. In my case it is 'node:carbon-alpine'. I don't know that it actually needs to check for the install now because by simply installing the package 'coreutils' you will get the GNU version of df which includes -l. So I think at this point leaving things alone might be best. I ended up here because of using these node builds. I'm thinking when you pull a vanilla Alpine box you would have both busybox and coreutils packages available. I'm not sure what version of df I was using before that since there was no -l option available it was triggering error case in that method.

@cigzigwon ahh, ok. I anyway have now a fallback for the -l problem ... already published in the latest version.

@sebhildebrandt Well that was fast. Many times I hit the fast track with these docker images which are good for app dev and then I try to utilize them later for diag. I can now monitor CoreOS and RancherOS nodes with ease using gtop. Thanks for your great contribution!


Auto-registration of announced TDs

Optionally, allow announced TDs to be automatically registered in the Directory

do something similar for announced Directories, implementing the federation

Not implemented due to security reasons


Incorrect volume mount when using Docker task to run image

Trying to use the Docker task from a yaml build file to generate protocol buffer documentation using https://github.com/pseudomuto/protoc-gen-doc. This docker image depends on mounting two volumes:

/protos is where it expects to find input files (protocol buffer definitions, .proto files)
/out is where it saves the generated documentation

The task is defined like this in a .vsts-ci.yml file:
- task: Docker@0
  displayName: Generate protocol buffer documentation
  inputs:
    containerregistrytype: 'Container Registry'
    action: 'Run an image'
    imageName: 'pseudomuto/protoc-gen-doc'
    qualifyImageName: false
    volumes: |
      $(Build.ArtifactStagingDirectory):/out
      $(Build.SourcesDirectory):/protos
    detached: false

The repository contains only this yaml file (.vsts-ci.yml) and proto files.  Unfortunately the protoc-gen-doc tool does not find any *.proto files when it starts so the build fails:

2018-04-04T08:18:45.7821024Z ##[section]Starting: Generate protocol buffer documentation
2018-04-04T08:18:45.7880850Z ==============================================================================
2018-04-04T08:18:45.7894865Z Task         : Docker
2018-04-04T08:18:45.7908647Z Description  : Build, tag, push, or run Docker images, or run a Docker command. Task can be used with Docker or Azure Container registry.
2018-04-04T08:18:45.7922672Z Version      : 0.3.11
2018-04-04T08:18:45.7936501Z Author       : Microsoft Corporation
2018-04-04T08:18:45.7950138Z Help         : More Information
2018-04-04T08:18:45.7964162Z ==============================================================================
2018-04-04T08:18:46.1756568Z [command]/usr/local/bin/docker run --rm -v /vsts/agent/_work/7/a:/out -v /vsts/agent/_work/7/s:/protos pseudomuto/protoc-gen-doc
2018-04-04T08:18:46.8460791Z protos/.proto: No such file or directory
2018-04-04T08:18:47.4043862Z ##[error]protos/.proto: No such file or directory
2018-04-04T08:18:47.4096320Z ##[error]/usr/local/bin/docker failed with return code: 1
2018-04-04T08:18:47.4635057Z ##[section]Finishing: Generate protocol buffer documentation

To verify that files actually exist there I added a simple script step:
- script: |
        echo List files at Build.SourcesDirectory
        ls $(Build.SourcesDirectory)
  displayName: List files at Build.SourcesDirectory

Here is the output from this step:

2018-04-04T08:18:41.0250821Z ##[section]Starting: List files at Build.SourcesDirectory
2018-04-04T08:18:41.0323154Z ==============================================================================
2018-04-04T08:18:41.0336899Z Task         : Command Line
2018-04-04T08:18:41.0350924Z Description  : This is an early preview. Run a command line script using cmd.exe on Windows and bash on macOS and Linux.
2018-04-04T08:18:41.0366911Z Version      : 2.127.0
2018-04-04T08:18:41.0380663Z Author       : Microsoft Corporation
2018-04-04T08:18:41.0394989Z Help         : More Information
2018-04-04T08:18:41.0409585Z ==============================================================================
2018-04-04T08:18:41.2763793Z Generating script.
2018-04-04T08:18:41.2923596Z [command]/bin/bash --noprofile --norc /vsts/agent/_work/_temp/e38e07c4-beef-4b65-85b8-05c91eef7fd4.sh
2018-04-04T08:18:41.2938301Z List files at Build.SourcesDirectory
2018-04-04T08:18:41.2952834Z my-client.proto
2018-04-04T08:18:41.2967982Z my-api.proto
2018-04-04T08:18:41.3017244Z ##[section]Finishing: List files at Build.SourcesDirectory

So the files do exist at $(Build.SourcesDirectory). Why don't they show up in the Docker container?

Bump! This seems to be a supported feature for Linux however it does not function.

Hi, Can you try to execute docker command "/usr/local/bin/docker run --rm -v /vsts/agent/_work/7/a:/out -v /vsts/agent/_work/7/s:/protos pseudomuto/protoc-gen-doc" manaually on your agent machine and check it is working or not. I tried on my setup i didn't any issues.

Hi, is this issue resolved? which agent are you using? i have tried same scenario with "Hosted Linux Preview" agent. I am not able to repro the issue. It is working fine and generting index.html file in $(Build.ArtifactStagingDirectory) directory.

Please open the issue if are still facing the issue.

For information: this seems to have been a problem / limitation in our build agent that is running in AKS with the https://hub.docker.com/r/microsoft/vsts-agent/ image. It works when running with the Microsoft hosted Ubuntu image.

For information: this seems to have been a problem / limitation in our build agent that is running in AKS with the https://hub.docker.com/r/microsoft/vsts-agent/ image. It works when running with the Microsoft hosted Ubuntu image.

@ahaeber did you solve this issue? I'm struggling with the same problem

@Shaked I never tested this on our on-premise agents again. At least it works on the hosted agents.


Added tests for HS256, HS384 and HS512

Yup, can do.
Sure

thank you so much 👍 This was my first PR!

Well done, my dear contributor 😉


More possibilities of image formatting

Issue Summary
I would like to have more flexibility regarding image formatting in a post.
Currently it is only possible to add single images to a post without any options.
For things like size, gallery or caption you have to use HTML or special markdown code.
It should be possible to have several options like https://www.computerbase.de/2017-08/sony-xperia-touch-test/ for example.
On my blog I have already impemented automatic lightbox effect to all images (https://www.peleke.de/portfolio/) but for the rest I cannot see an easy solution currently.
Steps to Reproduce

Add an image to a post
Try to format it

Feature request
Technical details:

Ghost Version: 1.8.6
Node Version: 6
Browser/OS: Chrome
Database: MariaDB

@MaluNoPeleke This sounds like something that should be possible once the full mobiledoc implementation of the ghost admin editor is completed, but I'm closing this issue because we use Github issues for bugs and ongoing work with the software, not for feature requests.


feat: You can now use tcp or tls as schemes for Redis

Hinted at in a chat in community Slack. Redis default doc states this regarding encryption: https://redis.io/docs/management/security/encryption/


Add OneFlow mention to Cloud Servers Authentication guide

Author Name: Tino Vázquez (Tino Vázquez)
Original Redmine Issue: 5252, https://dev.opennebula.org/issues/5252
Original Date: 2017-07-18

http://docs.opennebula.org/5.2/deployment/sunstone_setup/cloud_auth.html

Apart from updating the documention, we will:

Delete all occi_auth references in the code and the packages.
Delete all ec2_auth references in the code and the packages.

PRs to merge:

Code
Docs


mock data of the session.

The puzzle 48-4a4efa8d from #48 has to be resolved:
https://github.com/ammaratef45/Attendance/blob/8cf8d697e566842fe560dd452631f7a494b44f0f/attendance/test/api_test.dart#L83-L83
The puzzle was created by @ammaratef45 on 30-Apr-19.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@ammaratef45/z please, pay attention to this issue

The puzzle 48-4a4efa8d has disappeared from the source code, that's why I closed this issue.

Job gh:ammaratef45/attendance#69 is not assigned, can't get performer

This job is not in scope


[$1000] Long text strings disappear from single-line text fields when text is too long

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action performed:

Login with any account
Choose any single line TextInput, ie: First name, Last name, Workspace name.
Enter the long text with multiple words, for example: Visaocuoitroi193's Workspacethisverylongtext and save entry

Expect result:
If the full text is too long to fit in the text field, the text should be cut off and we should add a ... to show that the string continues.
Actual result:
Any words that go past the end of the text field disappear from view. (I think it's because they are moved to a newline)
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] iOS / native

Version Number: 1.2.43-1
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/209234493-cab6cc31-fa2b-411c-9eb2-9f4f4805169a.MP4
https://user-images.githubusercontent.com/43996225/209234529-dd914157-702f-4a10-8bf2-d1c8fc7e8078.MP4
Expensify/Expensify Issue URL:
Issue reported by: @hungvu193
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1671552728713329
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01174c064be0dcafb8
Upwork Job ID:<PHONE_NUMBER>550892544
Last Price Increase: 2023-01-05

This doesn't have anything to do with the ' actually. What's happening is that if you add a long string of characters after a space, the word moves down to the next line (basically text wrapping).
I posted in the original Slack thread to see if we'd like to fix and what the expected behavior should be in this case.

Changing this to weekly and we will revisit in the new year when more people are back online.

We discussed in Slack and decided that we should fix this and that it should be external. Adding the label now.

Proposal
I believe the root cause of this issue is about the textAlign inside our RNTextInput.

We can fix this by setting the textAlign to auto with single line TextInput since this issue only happened with single line.
Here's the result:
https://user-images.githubusercontent.com/16502320/210921156-bace5779-cc6f-4073-a75a-34c96461624e.mov

Thanks for the proposals!
@allroundexperts Is changing the lineHeight will have an effect? What I get when testing your proposal, the line height seems not doing anything to fix the issue.
Also, changing the textAlign will cause a problem with RTL localization like Arabic.

I'll ask to the Slack channel for opinions about the above issue, where do we want to override the text-align or let it as it is.
cc @yuwenmemon

Proposal
This is a known issue on react-native repo and not fixed yet. For some reason, when we set the lineHeight prop, the line break will be set to wrap.
One of the comments has a temporary patch that I think we can apply to our fork.
Here is the code
- (void)setDefaultTextAttributes:(NSDictionary<NSAttributedStringKey, id> *)defaultTextAttributes
{
  if ([_defaultTextAttributes isEqualToDictionary:defaultTextAttributes]) {
    return;
  }

+ // limit single-line fields to 1-line (no wrapping)
+ if ([self.textInputDelegate isKindOfClass: [RCTSinglelineTextInputView class]]) {
+     NSParagraphStyle* ps = defaultTextAttributes[NSParagraphStyleAttributeName];
+     NSMutableParagraphStyle* mps = [ps mutableCopy];
+     mps.lineBreakMode = NSLineBreakByTruncatingTail;
+     NSMutableDictionary<NSAttributedStringKey, id>* mutableDefaultTextAttributes = [defaultTextAttributes mutableCopy];
+     mutableDefaultTextAttributes[NSParagraphStyleAttributeName] = [mps copy];
+     defaultTextAttributes = [mutableDefaultTextAttributes copy];
+ }

  _defaultTextAttributes = defaultTextAttributes;
  [super setDefaultTextAttributes:defaultTextAttributes];
  [self _updatePlaceholder];
}

What the code does is basically check if the text input is single line, if true, we set the line break mode to NSLineBreakByTruncatingTail.

@mollfpr When line height is set, the text gets wrapped on to the next line. That's why we need to remove it. For the textAlign as you can see in my proposal, we're removing it ONLY if RTL is INACTIVE. When you type in Arabic, RTL gets activated, and textAlign gets applied.

@mollfpr Personally, I don't think I'm too concerned if changing the textAlign messes with Arabic, since we call out that we don't support RTL in-app.

@allroundexperts @hungvu193 @bernhardoj you can put your thoughts in here, thanks!

@allroundexperts Can you confirm that removing the input line height is not causing regression?
I'm only able to track https://github.com/Expensify/App/issues/5462 and https://github.com/Expensify/App/issues/13336 where it's related to the line-height style.

@allroundexperts Can you confirm that removing the input line height is not causing regression?
I'm only able to track #5462 and #13336 where it's related to the line-height style.

@mollfpr I can confirm that it does not cause any regression if we do it on iOS only.

@allroundexperts Can you confirm that removing the input line height is not causing regression?
I'm only able to track #5462 and #13336 where it's related to the line-height style.

@mollfpr I can confirm that it does not cause any regression if we do it on iOS only.

@mollfpr Since we have disabled fontScaling on text input, removing line height in text input won't cause any issue.

@yuwenmemon this @allroundexperts  proposal's is working for me but I'm a bit worried about changing the input style. Any thoughts?

Since we have disabled fontScaling on text input, removing line height in text input won't cause any issue.

@mollfpr   I forgot to remove lineHeight inside baseTextInput in my diff, so please ignore my comment, if we go with changing lineHeight, then we can consider only apply it with singleLine TextInput, since this issue only happen singleLine TextInput.

This will affect multiline input style. i.e. on CloseAccountPage or WorkspaceInvitePage

@0xmiroslav Thanks for the proposal! Can you elaborate on what the side effects are?

@mollfpr On iOS we shouldn't be using line heights for text inputs even if its a multiline input. The caret size grows out of proportion with the value which makes it sort of useless.

The caret size wasn't an issue because our default lineHeight turns out to be 16 which very close to our default used font size 15.
Here's the difference on the multiline input with and without line height (Only if you can spot it somehow).

@mollfpr here's the difference

@0xmiroslav Is the difference on without line-height the space between the line a bit cramped?

@mollfpr it seems to be actually opposite for iOS (more cramped up when line height is set):
With line height:

Without line height:

@mollfpr here's the difference

@0xmiroslav Is the difference on without line-height the space between the line a bit cramped?

Right, that's why, we only fix this issue for single line input.

Okay, so most of the proposal is suggesting removing/changing the textAlign from the RNTextInput by removing the line height for the text input style.
I think we only want the fix not to affect the multiline text input, so @0xmiroslav proposal looks like is the candidate for that.

But I have a concern with removing the line height.
Currently, on a smaller iPhone device aspect ratio (in the video I'm using an iPhone 6s iOS 15.0 simulator), the emoji are cut off when we focus on the text input.
https://user-images.githubusercontent.com/25520267/211242518-df6e978d-bec7-48bf-a390-8f88ed1a7a59.mov
If we remove the line height the emoji doesn't cut off whether it's on focus or not. But, there's an effect like the text input height is changing on focus/blur.
https://user-images.githubusercontent.com/25520267/211242845-58c18956-688b-4e6f-b694-94d0bd84e692.mov
What do you think @yuwenmemon?

I think we need to fix this on RN.

If the reason you can't write cross-platform code is because there is a bug in ReactNative that is preventing it from working, the correct action is to fix RN and submit a PR upstream -- not to hack around RN bugs with platform-specific code paths.

@mollfpr that effect in your second video is barely noticeable - I think it's acceptable.
@s77rt correct, that is something we state in our App philosophy - but are we writing any platform-specific code paths here?

@yuwenmemon Sorry I think I misunderstood the proposals, I thought we are going to only remove the line height for iOS.

I will test again regarding the line height removed.

Asking here https://expensify.slack.com/archives/C01GTK53T8Q/p1673542227049079 for clarity about line-height.

Looking at this latest comment it seems like they won't be addressing the line-height issue in that PR. But agreed it may change things if the "look" of the inputs are going to drastically change, which it looks like they will.

@yuwenmemon @sakluger @mollfpr this issue is now 3 weeks old. There is one more week left before this issue breaks WAQ and will need to go internal. What needs to happen to get a PR in review this week? Please create a thread in #expensify-open-source to discuss. Thanks!

I just try this proposal against the refactoring input PR. Here's the result:

iPhone 6s
iPhone 13
Android

I didn't find any noticeable issue with @0xmiroslav proposal. What do you think? @yuwenmemon @puneetlath

Cool, let's go with that then :+1:
@0xmiroslav can you make a PR?

I've sent offers to @hungvu193 (issue reporter), @mollfpr (contributor+), and @0xmiroslav (contributor) on the Upwork job, please accept the offer when you have a chance! Since the PR was merged quickly, it is eligible for the efficiency bonus as long as there are no regressions.
I'm discussing adding regression test steps here in Slack. It's a little tricky because the behavior is different depending on the platform (iphone vs android vs web). I'll update once we've made a decision there.

@sakluger Thanks, accepted!

Hey everyone, sorry I did not notice this sooner, but as mentioned in my last comment, I noticed that the behavior is different for different platforms:

On the iPhone app, we add a ... to the end of single line text fields if the text is too long

On the Desktop App and web, there is no ..., it just cuts off the text at the end of the field and I can scroll left and right

Desktop App:

Web:

I'm not sure what it looks like on Android

The expected result listed in the original description was that we should add ... at the end of the text field. In general, we aim to have behavior and design stay as consistent as possible across all platforms. Did we intentionally make it so that it worked differently on different platforms, or is that a bug?

That makes sense!
I've paid out everyone, and included the 50% efficiency bonus for the Contributor and C+ payments.
I'm not closing out the issue quite yet, since I need to make sure we update our regression tests correctly.

Created a GH issue to update TestRail steps.
@mollfpr @yuwenmemon, before I close out the issue, do you know if any previous PR caused this bug, or was this always the behavior and we just caught it for the first time?

@sakluger Sorry, I forgot to fill out the checklist. Probably from this https://github.com/Expensify/App/pull/7594.

we just caught it for the first time?
I believe so.

Thanks! The second item in the checklist is The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Could you please comment on that PR to explain why you think it caused this bug?

@sakluger Done https://github.com/Expensify/App/pull/7594#issuecomment-1406610314

I haven't opened a discussion about the expected result but it's a regression from adding the textAlign. I think the expected result is confirmed https://github.com/Expensify/App/issues/13802#issuecomment-1372813559 cc @sakluger.
I addressed my concern about removing textAlign in https://github.com/Expensify/App/issues/13802#issuecomment-1373109270, and I opened a discussion about that here.

All done here, thanks everyone!


how to copy node?

Is there a plan to Implement  it？

update to 0.19.0 and use .copyNode(node, to)


Port fix dt

That's a PR I never opened.  Github seems unstable these few days.  Am I the only one here?


refactor(Algebra/Algebra/Subalgebra/Basic): use a better defeq for ⊥ : Subalgebra R A

And the same thing for StarSubalgebra R A. IntermediateField was already handled in #7957.
As a result, nine (obvious) lemmas are now true by definition.
This slightly adjusts the statement of Algebra.toSubmodule_bot to make it simpler and true by definition; the original statement can be recovered by rewriting by Submodule.one_eq_span, which I've had to add in some downstream proofs.

Thanks!
bors r+


change MAPL version to fix nbits

Change env, cmake and MAPL version to reflect the fix for bit shaving ( normal return when a processor has no tile data)

will be addressed by another PR.


Move other msgpack libs into devDependencies

I guess those are needed only for running the benchmarks, so you can reduce the downloads when installing this library

Oops! You're right that they are only needed for the benchmarks and compatibility tests. At commit 7fc8247 , I've just moved them from devDependencies to optionalDependencies, as one of them fails to install with some node.js versions.
OptionalDevDependencies parameter should be the best for this case, however.
I'll fix it soon, anyway. Thank you for the report.


Avoid 'Press Enter' message on session write

Defining either of g:startify_session_savevars and g:startify_session_savecmds will cause 'Press Enter' on :SSave. This harmless PR fixes the issue.

Thanks!


Support wasm-unknown-unknown

The title says it all.

As cross-rs is no longer part of rust-embedded, and since no_std packages can be built without issue with cargo itself, this no longer is within the scope of cross. Only no_std packages seem to work at this time, since panic abort and panic unwind do not work currently for the target. More documentation on the status of the target is here.
$ $ cargo +nightly build --target wasm64-unknown-unknown -Zbuild-std=core
   Compiling nostd v0.1.0 (/home/ahuszagh/Desktop/cross/nostd)
    Finished dev [unoptimized + debuginfo] target(s) in 0.20s


Random forest smoker UnitedKingdom

Description
From the Dataset I classified whether a person in United Kingdom is a smoker or not using Random Forest Classifier with accuracy of 75%
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

(Add x in the [] to mark as completed.)
Related Issues or Pull Requests
#51

I have done it u can please recheck it again

@pgs17 It seems that you have added extra texts apart from the link. Please check it once

@theyashwanthsai I have removed that extra space.Kindly check it

@khusheekapoor U can check and tell me if further solving is required


Document-link issue for Farm Africa

[x] fix document-link issue for Farm Africa

Notes:
Clicking document-link for Farm Africa gives the following screen

The log shows the following error
Next ErrorException: htmlentities() expects parameter 1 to be string, array given (View: /resources/views/Activity/documentLink/index.blade.php) in ..vendor/laravel/framework/src/Illuminate/Support/helpers.php:466

@anjesh this issue has been fixed, there was slight format error in the saved json data


update(driver): update syscalls tables.

This PR updates the list of supported syscalls from the latest kernel. Do not edit this PR.

@poiana: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: poiana
Once this PR has been reviewed and has the lgtm label, please assign lucaguerra for approval by writing /assign @lucaguerra in a comment. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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: 94e5bd653342c6c163d8c87964b62e1f5aae3131

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, poiana
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:

OWNERS [FedeDP]

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

Great job @FedeDP! 🚀

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, poiana
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:

OWNERS [Andreagit97,FedeDP]

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


QC tools

QC functions for monthly time axis and time bounds checking
Add API documentation for those functions to the instruction website

As this new functions are side track and not linked to any of existing functions yet, I am going to merge this so the QC can be used for @gleckler1's obs4MIPs and @bosup's AR work.


I was adjected by my child

[Enter feedback here]

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

ID: 7e7f4e46-0e6a-3d42-022d-b07fd17792b3
Version Independent ID: 5217778e-130d-6bed-beb7-f3834331f8ed
Content: Hardware decoder and encoder driver recommendations - Microsoft Teams
Content Source: Teams/hardware-decoders-and-encoders.md
Service: msteams
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

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

ID: 7e7f4e46-0e6a-3d42-022d-b07fd17792b3
Version Independent ID: 5217778e-130d-6bed-beb7-f3834331f8ed
Content: Hardware decoder and encoder driver recommendations - Microsoft Teams
Content Source: Teams/hardware-decoders-and-encoders.md
Service: msteams
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

Nasa

!! Means disable

usage before print my name


Version number management and PRs

This issue is the result of a first discussion on the subject during the August 2023 community call.
Description of the current situation
We currently mandates every PR to manage the project version number and increase it as needed.
This is checked by a GitHub action, that doesn't allow merging if this condition is not met.
This is needed as we want the akri-dev helm chart to be published for every merged PR that impact its content, so that anyone can easily test the current development version of Akri.
When merging a PR this test doesn't run again and allow a maintainer to merge another PR that will then not change the version number.
Moreover, it is quite painful as a reviewer to have all the files with version number bumps in every PR.
Possible ideas raised during the discussion
We all agreed that we should find a way to remove the need to manage version numbers management in PRs, here are the different propositions for its successor (feasibility was not checked), that do or do not change much to the release and numbering process
Manual version management on release (by @johnsonshih)
On PR merge, a GitHub action bump the patch version automatically.
When cutting a release we decide whether we should bump minor or major and do that manually at this moment.
Label based version management (by @yujinkim-msft)
Mandate every PR to have a label indicating whether it should bump the patch/minor/major version (checked by a GitHub action or bot)
On merge a GitHub action bump the version according to this label.
Conventional commit version management (by @diconico07)
Mandate every commit/PR to follow  conventional commit, this is checked by GitHub action/bot on PRs (like this bot or this action).
Then on main push a GitHub action (like this one) can determine the next version to use, from commits since last release and let the workflow publish a semver pre-release (e.g. 0.12.0-rc1) with the RC number being the number of commit since last release.
For the release process I see two sub possibilities:

We can then make a manual GitHub workflow for cutting a release that will effectively bump the version files to the required version and make/publish the release
We can use an action/bot to maintain a release PR that we can merge to cut a release

The goal of this issue is to start the discussion around this topic and find a way to solve the issue, so feel free to add any other idea you may have.
I included who made each proposition initially, so we don't have to make any "this is my proposition" disclaimer.

I like the idea of only bumping version during releases and otherwise updating the release candidate number. Rather than getting RC number from past commits, could we just get current version in version.txt (0.12.0-rc2) and update it?
@diconico07 I am a little concerned about the ability to follow "Conventional commit version management". If i understand this correctly, it means that we will need to ensure everyone squashes their commits before we merge and properly formats them. Plus, we need to make sure version updates are ignored for changes that do not require version bumps.

RC versions are in <next-version>-rcX format, so to use that we would need to know what is that next version somehow, and as the idea is to remove the version number management burden from both contributors (they don't have to update the version number) and maintainers (they don't have to check the version number got upgraded) for PRs, I fail to see how this could be done without having a way to automatically know what part of the version number to bump after merge (this can't be done before merge, else we end-up with the exact same issue we currently have)
Conventional commit is a way to automate this, as a script is able to tell that any PR/commit (as we use squash&merge strategy, the commit title will be the PR title) means a patch (if it's a fix: prefix), a minor (if it's a feat: prefix) or a major (if prefix is decorated with a !), other prefixes meaning no upgrade (this can be customized, as we may want to say that only tests and docs prefix are synonyms to no version bump).
For this we would use a bot to ensure compliance (the same way we currently have a bot to ensure DCO compliance)
I agree it could stop to the last commit that changed the version number (instead of the last tag), but that's a detail I think.

BTW, you can convert this issue to a discussion if you like.


Accounts added

Davindu Reshan's all accounts added 111147704

ok changed
On Wed, Jun 27, 2018 at 7:47 PM, Supun_TE<EMAIL_ADDRESS>wrote:

@STEdirisuriya requested changes on this pull request.
Change these
In _data/students.yml
https://github.com/acicts/bits18.acicts.io/pull/13#discussion_r198463222
:

@@ -5,6 +5,9 @@

name: Heliya Nithira Suriya Bandara
class: Grade 11
image: 22

Instagram:reshan.official_

make this capital "I' letter in Instagram into simple "i" letter.
In _data/students.yml
https://github.com/acicts/bits18.acicts.io/pull/13#discussion_r198463312
:

@@ -5,6 +5,9 @@

name: Heliya Nithira Suriya Bandara
class: Grade 11
image: 22

Instagram:reshan.official_
Facebook:Davindu Reshan

same F --> f
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/acicts/bits18.acicts.io/pull/13#pullrequestreview-132396271,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AmQJL7QFjPXFahtkrE-MhbsV1Z2e3s_Fks5uA3DXgaJpZM4U32SV
.


Update sbt-sonatype to 3.11.1

About this PR
📦 Updates org.xerial.sbt:sbt-sonatype from 3.9.13 to 3.11.1
📜 GitHub Release Notes - Release Notes
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #136.

Superseded by #140.


Cli codegen onboard operationsmanagement

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

/azp run automation - sdk

Can one of the admins verify this patch?

@zikalino Could you help to review it? @changlong-liu Is it expected for the python breaking change?

Thanks @ChenTanyi, @zikalino  , it's not expected.
I close this PR for now, and will reopen when resolved.

/azp run automation - sdk

/azp run automation - sdk

@zikalino will you review for the python generation md?

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk


optimize numeric operators in JS

A part of #5812 that wasn't explicitly stated in the issue description, but that @chochos and I had talked about, was optimization of the numeric operators +, -, *, /. Currently they still compile down to the relatively expensive method calls plus(), times(), etc.
Note that we can probably only do this when the static type of both operands is exactly Integer or Float. (Not sure about Byte.)

The problem with this is certain special cases, such as preserving negative 0, division by zero (throw, or sometimes return infinity, for example 1.0/-0 and -1.0/0). Or turning int+float into float (that one should be easier though)

The problem with this is certain special cases, such as preserving negative 0, division by zero (throw, or sometimes return infinity, for example 1.0/-0 and -1.0/0).

But I just don't see how it's a problem. If we have two things which both have the static type Integer, we know we're doing integer arithmetic on them, and that, sure, we'll need some extra function call to preserve the semantics of integer arithmetic.
OTOH, if we have two thing that both have static type Float, then we don't need to do anything special, because JavaScript numbers already have the required semantics.
In neither case do I see any reason to box anything.

From tests I can see that in JVM, 1.0/-0 is infinity. In JS, it's -Infinity.

There is no -0 on the JVM.

aren't there tests to check that 0 is not the same as -0?

Not for integers. All of the negative zero tests are for floats (-0.0).

Damn. Well JS has -0

JVM has -0.0, but it's considered ==0.0, so it's rather hard to know when
you have one.
On 19 Oct 2016 8:51 p.m., "Enrique Zamudio"<EMAIL_ADDRESS>wrote:

Damn. Well JS has -0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ceylon/ceylon/issues/6613#issuecomment-254921496, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA1rfzbDNm7ExJum7cEoTsUHRoMpZBgxks5q1nTWgaJpZM4KZa7Q
.

They're also equal in JS. It's just really annoying that 1.0/-0.0 gives different results in JVM and JS.

No, 1.0/-0.0 is -Infinity on the JVM as well, but 1.0/-0 isn’t (Java turns the -0 into 0 before turning it into a float, losing the sign).

@chochos there may be some good ideas that can be gleaned from Dart's dart2js output. For example, for integer division they run the code below, which looks pretty optimized to me.
$tdiv: function(receiver, other) {
  if (typeof other !== "number")
    throw H.wrapException(H.argumentErrorValue(other));
  if ((receiver | 0) === receiver)
    if (other >= 1 || other < -1)
      return receiver / other | 0;
  return this._tdivSlow$1(receiver, other);
},
_tdivFast$1: function(receiver, other) {
  return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other);
},
_tdivSlow$1: function(receiver, other) {
  var quotient = receiver / other;
  if (quotient >= -2147483648 && quotient <=<PHONE_NUMBER>)
    return quotient | 0;
  if (quotient > 0) {
    if (quotient !== 1 / 0)
      return Math.floor(quotient);
  } else if (quotient > -1 / 0)
    return Math.ceil(quotient);
  throw H.wrapException(new P.UnsupportedError("Result of truncating division is " + H.S(quotient) + ": " + H.S(reiver) + " ~/ " + H.S(other)));
},

Actually the only remaining issue is with 1.0/-0.0

@chochos note that there is a bug in the current implementation in 1.3.0:
print(((-0)*1.0).strictlyNegative);

prints "true".

@chochos status? We're building the release on Monday.

I made some progress on this but it probably can be improved for 1.3.2

OK, look, seriously,  this is just crazy. Here is my code:
shared void run() {
    variable value x = 1.0;
    for (i in 0..10) {
        x *= 3.0 + x;
    }
    print(x);
}

Here is the generated JavaScript:
function run(){
var $2=m$1.Float(1.0);
for(var $4=0;$4<=10;$4++){
($2=$2.times(m$1.Float((3.0)+$2)));
}
m$1.print($2);
}

Now, that doesn't look completely crazy, until you go off and take a look at how times() is implemented in numbers.js and realize that it's this incredibly expensive function, not to mention that Float() instantiates an object inside the loop!
C'mon, this just isn't OK.
@chochos when are you going to be able to fix this, we've been waiting for this for a very long time now.

Whoa, if you do print(2*3), print(2*3.0) or print(2.0*3), the generated code does use a simple * operation. So this particular example is coming from somewhere else. I'm checking...

Ah, the assign ops (*=, +=, -= etc) are not optimized yet.

Oh, alright, I guess it's not quite as bad as I thought then...

I've spent most of today working on this issue, and the situation is now much better.


How to train 13B version on 8bit with LoRA

I want to train the 13B Lllama but with 8bit quantization LoRA. Rn it takes 70GB of GPU RAM which is quite a lot. I'm using 8xA100-80GB.
lora.py
# Hyperparameters
learning_rate = 3e-4
batch_size = 64
micro_batch_size = 1
gradient_accumulation_iters = batch_size // micro_batch_size
assert gradient_accumulation_iters > 0
max_iters = 50000 * 3 // micro_batch_size
weight_decay = 0.0
max_seq_length = 4096  # see scripts/prepare_alpaca.py
lora_r = 8
lora_alpha = 16
lora_dropout = 0.05
warmup_iters = 100

def main(
    data_dir: str = "dataset",
    pretrained_path: str = "/scratch/checkpoints/lit-llama/13B/lit-llama.pth",
    tokenizer_path: str = "/scratch/checkpoints/lit-llama/tokenizer.model",
    out_dir: str = "out/lora",
):

    fabric = L.Fabric(accelerator="cuda", devices=8, precision="bf16-true")
    fabric.launch()
    fabric.seed_everything(1337 + fabric.global_rank)
    ...

Training can't be done with quantized weights, as the steps would fall within the quantization error threshold.