Node launched via karpenter are in NotReady status for more than 10 minutes before becoming Ready

Version

Karpenter Version: v0.20.0

Kubernetes Version: v0.20.0
Expected Behavior
The node should become available sooner than 10 minutes.
Actual Behavior
The node takes more 10 minutes to become Ready. Using BottleRocket OS with LaunchTemplate for the provisioning.

Checked the vpc-cni and kube-proxy pods both of which are in pending state during the NotReady status.
Unable to ssh in to the node to check the kubelet logs immediately. But there are no obvious error or issues there.

Note:  All the necessary VPC Endpoints are available
Steps to Reproduce the Problem

Launch new pods via Karpenter provisioner in a Private EKS Cluster with no internet access
Observe the node status

Resource Specs and Logs
Initially the kube-proxy and aws-node (CNI) pods are stuck like below
Warning  FailedScheduling  7m33s (x2 over 8m35s)  default-scheduler  0/5 nodes are available: 1 Insufficient cpu, 1 Too many pods, 4 node(s) didn't match Pod's node affinity/selector.
Warning  FailedScheduling  3s (x6 over 6m3s)      default-scheduler  0/6 nodes are available: 1 Insufficient cpu, 1 Too many pods, 5 node(s) didn't match Pod's node affinity/selector.

After 10 minutes, I can see the below events.
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  17m (x2 over 18m)    default-scheduler  0/5 nodes are available: 1 Insufficient cpu, 1 Too many pods, 4 node(s) didn't match Pod's node affinity/selector.
  Warning  FailedScheduling  8m27s (x7 over 15m)  default-scheduler  0/6 nodes are available: 1 Insufficient cpu, 1 Too many pods, 5 node(s) didn't match Pod's node affinity/selector.
  Normal   Scheduled         8m11s                default-scheduler  Successfully assigned kube-system/kube-proxy-f49xk to ip-10-58-1-172.ap-southeast-1.compute.internal
  Normal   Pulling           8m10s                kubelet            Pulling image "[XXXXXXXXX.dkr.ecr.ap-southeast-1.amazonaws.com/eks/kube-proxy:v1.23.7-minimal-eksbuild.1](http://XXXXXXXXXX.dkr.ecr.ap-southeast-1.amazonaws.com/eks/kube-proxy:v1.23.7-minimal-eksbuild.1)"
  Normal   Pulled            8m8s                 kubelet            Successfully pulled image "[XXXXXXXX.dkr.ecr.ap-southeast-1.amazonaws.com/eks/kube-proxy:v1.23.7-minimal-eksbuild.1](http://XXXXXXXX.dkr.ecr.ap-southeast-1.amazonaws.com/eks/kube-proxy:v1.23.7-minimal-eksbuild.1)" in 2.430576831s
  Normal   Created           8m8s                 kubelet            Created container kube-proxy
  Normal   Started           8m8s                 kubelet            Started container kube-proxy

Community Note

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

@zeagord can you some provisioner details?

Sure, here we go.
apiVersion: karpenter.sh/v1alpha5
kind: Provisioner
metadata:
  name: test
spec:
  requirements:
    - key: "topology.kubernetes.io/zone"
      operator: In
      values: ["ap-southeast-1a", "ap-southeast-1b", "ap-southeast-1c"]                             #Update the correct region and zones
    - key: "karpenter.sh/capacity-type"
      operator: In
      values: ["on-demand"]
    - key: "node.kubernetes.io/instance-type"              #If not included, all instance types are considered
      operator: In
      values: ["m5.large", "m6i.large"]
    - key: "kubernetes.io/arch"                            #If not included, all architectures are considered
      operator: In
      values: ["amd64"]
  limits:
    resources:
      cpu: 1000
  providerRef:
    name: "test"     # Used by Karpenter Nodes
  labels:
    type: karpenter
    provisioner: test
  ttlSecondsAfterEmpty: 120
  # Limits prevent Karpenter from creating new instances once the limit is exceeded.
  limits:
    resources:
      cpu: "100"
      memory: 100Gi

After further debugging, I found from journalctl that sundog settings from Bottlerocket is slow when there is no outbound internet connection in a private cluster. (Have all the necessary VPC Endpoints)
Dec 19 06:39:31 localhost systemd[1]: Reached target Network is Online.
Dec 19 06:39:31 localhost systemd[1]: Starting Bottlerocket userdata configuration system...
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] early-boot-config started
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] Retrieving platform-specific data
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [WARN] No user data found via local file: /var/lib/bottlerocket/user-data.toml
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] Received dynamic/instance-identity/document
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] Received user-data
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] Sending instance identity document to API
Dec 19 06:39:31 localhost early-boot-config[1492]: 06:39:31 [INFO] Sending user data to API
Dec 19 06:39:31 localhost systemd[1]: Finished Bottlerocket userdata configuration system.
Dec 19 06:39:31 localhost systemd[1]: Starting User-specified setting generators...
Dec 19 06:39:31 localhost settings-committer[1495]: 06:39:31 [INFO] Checking pending settings.
Dec 19 06:39:31 localhost settings-committer[1495]: 06:39:31 [INFO] Committing settings.
Dec 19 06:39:31 localhost sundog[1498]: 06:39:31 [INFO] Sundog started
Dec 19 06:39:31 localhost sundog[1498]: 06:39:31 [INFO] Retrieving setting generators
Dec 19 06:39:31 localhost sundog[1498]: 06:39:31 [INFO] Retrieving settings values
Dec 19 06:49:31 localhost sundog[1498]: 06:49:31 [INFO] Sending settings values to the API
Dec 19 06:49:31 localhost systemd[1]: Finished User-specified setting generators.
Dec 19 06:49:31 localhost systemd[1]: Starting Applies settings to create config files...
Dec 19 06:49:31 localhost settings-committer[1542]: 06:49:31 [INFO] Checking pending settings.
Dec 19 06:49:31 localhost settings-committer[1542]: 06:49:31 [INFO] Committing settings.
Dec 19 06:49:31 localhost thar-be-settings[1545]: 06:49:31 [INFO] thar-be-settings started
Dec 19 06:49:31 localhost thar-be-settings[1545]: 06:49:31 [INFO] Requesting configuration file data for affected services
Dec 19 06:49:31 localhost thar-be-settings[1545]: 06:49:31 [INFO] Rendering config files...
Dec 19 06:49:31 localhost thar-be-settings[1545]: 06:49:31 [INFO] Writing config files to disk...
Dec 19 06:49:31 localhost thar-be-settings[1545]: 06:49:31 [INFO] Restarting all services...

List of VPC Endpoints
com.amazonaws.ap-southeast-1.s3
com.amazonaws.ap-southeast-1.dynamodb
com.amazonaws.ap-southeast-1.kms
com.amazonaws.ap-southeast-1.sts
com.amazonaws.ap-southeast-1.ssm
com.amazonaws.ap-southeast-1.logs
com.amazonaws.ap-southeast-1.ecr.api
com.amazonaws.ap-southeast-1.ec2
com.amazonaws.ap-southeast-1.ecr.dkr
com.amazonaws.ap-southeast-1.ec2messages
com.amazonaws.ap-southeast-1.ssmmessages
com.amazonaws.ap-southeast-1.autoscaling
com.amazonaws.ap-southeast-1.ebs
com.amazonaws.ap-southeast-1.elasticloadbalancing
com.amazonaws.ap-southeast-1.cloudtrail
com.amazonaws.ap-southeast-1.secretsmanager
com.amazonaws.vpce.ap-southeast-1.vpce-svc-0b1c7994e394810ee
com.amazonaws.vpce.ap-southeast-1.vpce-svc-090dba439c86e07de
com.amazonaws.vpce.ap-southeast-1.vpce-svc-0a2a32993be6a2091
com.amazonaws.ap-southeast-1.s3
com.amazonaws.ap-southeast-1.eks

Further checked the user data for the nodes launched by Karpenter which doesn’t contain the cluster-dns-ip . If I set the cluster-dns-ip = '<IP_ADDRESS>' manually, it works. But ideally it should be set by Karpenter or Bottlerocket. From the docs, i read that it is set by Bottlerocket automatically. (https://github.com/bottlerocket-os/bottlerocket#kubernetes-settings).
Not sure if this is related to Karpenter setting this value https://github.com/aws/karpenter/blob/e21cb6cc736caf79a7a0b4e5e179200cd9348137/pkg/cloudprovider/amifamily/bootstrap/bottlerocket.go#L51

@zeagord thanks for your comment, it helped us getting it to work fast. We were having the same issue as described by you initially.
In our case we do have outbound internet connection but blocked by a firewall and looking at the firewall logs we were missing the eks endpoint. After creating it the ready time with Karpenter went down from 10 minutes to 45 seconds.
We do have a bunch of common domains whitelisted on our firewall, but might be worth for you to test creating a fully closed firewall and check the logs of what is being blocked to get an idea of what can cause the delay?
Looking at the endpoints we have for the vpc it looks pretty much like yours, except for  these 4 ones we have and are not on your list though they are pretty specific to our usecase and most likely not related (listing them in the remote case they are)

service: elasticmapreduce
service: email-smtp
service: rds
service: sagemaker.api

Anyway, it is pretty weird that after 10 minutes "trying" to go somewhere it gives up and decides to go to ready state somehow

This PR should help with this case: https://github.com/aws/karpenter/pull/3612


Error while processing bytes data in python 3

Faced this issue while using splunklib with pyhton 3
lib version: 1.6.0
platform: Linux(centos)
framework version: Python 3.7.2
Splunk version: 8.0.0 (build: 7f1fa0caa96a)
The error is coming when some of the data is coming in bytes format, following is the trace of the error.

2019-07-04 17:28:11,907, Level=ERROR, Pid=28569, File=search_command.py, Line=981, TypeError at "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/internals.py", line 590 : can't concat str to bytes
Traceback:
File "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/search_command.py", line 603, in _process_protocol_v1
self._execute(ifile, None)
File "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/streaming_command.py", line 54, in _execute
SearchCommand._execute(self, ifile, self.stream)
File "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/search_command.py", line 848, in _execute
self._record_writer.write_records(process(self._records(ifile)))
File "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/internals.py", line 522, in write_records
write_record(record)
File "/opt/splunk/etc/apps/SA-ldapsearch/bin/packages/splunklib/searchcommands/internals.py", line 590, in _write_record
sv += value + '\n'

In below code snippet, it is trying to concat bytes with str, so that it is throwing an error. Issues I can identify is,

type bytes is not handled

line value = repr(value).encode('utf-8', errors='backslashreplace') is converting incoming data in bytes format

concat performed in line sv += value+ '\n', which will try to concat string and bytes.
                 if value_t is not bytes:
                      if value_t is bool:
                          value = str(value.real)
                      elif value_t is six.text_type:
                          value = value
                      elif value_t is int or value_t is int or value_t is float or value_t is complex:
                          value = str(value)
                      elif issubclass(value_t, (dict, list, tuple)):
                          value = str(''.join(RecordWriter._iterencode_json(value, 0)))
                      else:
                          value = repr(value).encode('utf-8', errors='backslashreplace')

                  sv += value+ '\n'
                  mv += value.replace('$', '$$') + '$;$'

I changed above code like this to make it work, though I am not sure about decoding format. could you please look into it?
                 if value_t is not bytes:

                        if value_t is bool:
                            value = str(value.real)
                        elif value_t is six.text_type:
                            value = value
                        elif value_t is int or value_t is int or value_t is float or value_t is complex:
                            value = str(value)
                        elif issubclass(value_t, (dict, list, tuple)):
                            value = str(''.join(RecordWriter._iterencode_json(value, 0)))
                        else:
                            if six.PY2:
                                value = repr(value).encode('utf-8', errors='backslashreplace')
                            else:
                                value = repr(value)

                    if six.PY3 and value_t is bytes:
                        value = value.decode('utf-16')

                    sv += value + '\n'
                    mv += value.replace('$', '$$') + '$;$'

@bj8798 thanks for reporting the bug, can you try upgrading to the latest SDK? If that doesn't work, please open a PR if you've got a working fix


Glossary of terms

I am starting to work on this. Question: Do we need breif definitions or just acronyms and terms e.g. APACHE: acute physiology age chronic health evaluation
APS: acute physiology score
etc....

Acronyms and terms is a good start!
On Sun, Feb 12, 2017 at 12:43 PM, rincont<EMAIL_ADDRESS>wrote:

I am starting to work on this. Question: Do we need breif definitions or
just acronyms and terms e.g. APACHE: acute physiology age chronic health
evaluation
APS: acute physiology score
etc....
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mit-eicu/eicu-website/issues/30, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABOSdFxvKJn8ppAGpVTIc25PTPp-RyG6ks5rb0TOgaJpZM4L-jlK
.

Duplicate of https://github.com/mit-eicu/eicu-website/issues/26


Upgrade org.yaml:snakeyaml to version 2.0 or higher in FF7.8

❗ please do not add sensitive information in issues, you can provide extra information via email using issue number as reference ❗
Describe the issue
backport upgrade org.yaml:snakeyaml to version 2.0 or higher
Reporter
jjansenvr

backport not possible due to java 8 dependency


support old streams mode (node v0.8)

AFAICT, this doesn't change anything v0.10 and above... and will allow this cli to be used on node v0.8 and higher

No thanks


Reevaluate Kani on Prost

Since the blocking bugs have been fixed, rerun kani and see how many harnesses we can now handle

Result: We can now evaluate three harnesses.
cargo kani --tests -p prost-types --default-unwind 3 --harness "tests::check_system_time_roundtrip"
SUCCESSFUL
cargo kani --tests -p prost-types --default-unwind 3  --harness "tests::check_timestamp_roundtrip_via_system_time"
SUCCESSFUL
cargo kani --tests -p prost-types --default-unwind 3 --harness "tests::check_duration_roundtrip"
SUMMARY:
** 3 of 330 failed (6 unreachable)
Failed Checks: This is a placeholder message; Kani doesn't support message formatted at runtime
File: "/Users/dsn/.rustup/toolchains/nightly-2022-12-11-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/time.rs", line 202, in std::time::Duration::new
Failed Checks: concat!
("assertion failed: ", stringify!
(matches!(time :: Duration :: try_from(neg_prost_duration),
Err(DurationError :: NegativeDuration(d)) if d == std_duration,)))
File: "/Users/dsn/ws/prost/prost-types/src/lib.rs", line 449, in tests::check_duration_roundtrip::{closure#0}
Failed Checks: This is a placeholder message; Kani doesn't support message formatted at runtime
File: "/Users/dsn/.rustup/toolchains/nightly-2022-12-11-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs", line 1791, in std::result::unwrap_failed
VERIFICATION:- FAILED
cargo kani --tests -p prost-types --default-unwind 3 --harness "tests::check_timestamp_parse_to_string_roundtrip"
Didn’t complete in 15 minutes
time cargo kani --tests -p prost-types --default-unwind 3 --harness "tests::check_duration_parse_to_string_roundtrip"
Didn’t complete in 15 minutes


Implemented option for serializer max_depth

Adds the possibility to define the default depth of the array serialization via configuration

Don't you want to fix code style issues?

Okay. I need to add this pr to #454

This was done a long time ago and never updated with the latest changes so we cannot move forward with this PR right now. If it's updated we can reconsider it. Sorry it got left in the cold.


Can't find the GuzzleHttp library

Hello,
I cannot create an instance for the Dropbox class, I think the main reason is because I don't have the Guzzle and Psr libraries. Where can I find this library and which version should I use ?

Thanks!

@adialexpop You need to install this package through Composer. Guzzle will be installed along with it.


Got "None of the selected packages has a "watch" script" when pnpm watch run

Bug report
Description / Observed Behavior
What kind of issues did you encounter with SWR?
I try to run swr locally as per CONTRIBUTION.md say. I got None of the selected packages has a "watch" script message when I run pnpm watch.
Expected Behavior
How did you expect SWR to behave here?
Repro Steps / Code Example
Or share your code snippet or a CodeSandbox link is also appreciated!
Additional Context
Can run pnpm watch on this commit hash 1d8110900d1aee3747199bfb377b149b7ff6848e
SWR version.

The watch script should be updated to bunchee -w

Can i try to fix this problem?


ORC-1782: Upgrade Hadoop to 3.4.1

What changes were proposed in this pull request?
This PR aims to upgrade Apache Hadoop to 3.4.1.
Why are the changes needed?
To bring the latest bug fixes.

http://hadoop.apache.org/docs/r3.4.1/index.html
http://hadoop.apache.org/docs/r3.4.1/hadoop-project-dist/hadoop-common/release/3.4.1/RELEASENOTES.3.4.1.html
http://hadoop.apache.org/docs/r3.4.1/hadoop-project-dist/hadoop-common/release/3.4.1/CHANGELOG.3.4.1.html

How was this patch tested?
Pass the CIs.
Was this patch authored or co-authored using generative AI tooling?
No.

This is blocked by

https://github.com/apache/hadoop/pull/7079

For the record, all tests passed except Javadoc.
Although there are 3 test failures in ChunkReadUtilTest, it seems to be due to the Hadoop layers statistics difference.

Merged to main/2.0.


Slider stepping

#7203
this PR adds a stepping feature to slider.

This is awesome! Can you target the 6.2 branch for this instead, though? Since it's a new feature we'd like to save it for a minor version, versus a patch.

opened PR #7910. hope everything's fine.

Thanks :)


python tox completelxy broken due to not using an environment to build it

Issue description
$ tox -e linting
GLOB sdist-make: /home/ronny/Projects/pytest-dev/pytest/setup.py
ERROR: invocation failed (exit code 1), logfile: /home/ronny/Projects/pytest-dev/pytest/.tox/log/tox-0.log
ERROR: actionid: tox
msg: packaging
cmdargs: ['/nix/store/a0h4m7dc1p2rjsfllrcfa1cdnxfjfj30-python-2.7.13/bin/python2.7', local('/home/ronny/Projects/pytest-dev/pytest/setup.py'), 'sdist', '--formats=zip', '--dist-dir', local('/home/ronny/Projects/pytest-dev/pytest/.tox/dist')]
env: None

Traceback (most recent call last):
  File "setup.py", line 2, in <module>
    import setuptools
ImportError: No module named setuptools

ERROR: FAIL could not package project - v = InvocationError('/nix/store/a0h4m7dc1p2rjsfllrcfa1cdnxfjfj30-python-2.7.13/bin/python2.7 /home/ronny/Projects/pytest-dev/pytest/setup.py sdist --formats=zip --dist-dir /home/ronny/Projects/pytest-dev/pytest/.tox/dist (see /home/ronny/Projects/pytest-dev/pytest/.tox/log/tox-0.log)', 1)

Steps to reproduce
Technical details
$ nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion
"17.09pre105622.f0fac3b578"

There's already other issues where its stated that tox is broken so I'm closing this.
In any case, if you need tox so badly, then why not use python3, install pip with python3 -m ensurepip --user, and then install tox there and work as you would on any other distro?


use async mutexes in gateway

closes #916

Codecov Report
Base: 66.55% // Head: 66.58% // Increases project coverage by +0.03% :tada:

Coverage data is based on head (d0b09e6) compared to base (dc40baf).
Patch coverage: 79.31% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1041      +/-   ##
==========================================
+ Coverage   66.55%   66.58%   +0.03%
==========================================
  Files         116      116
  Lines       17749    17760      +11
==========================================
+ Hits        11812    11826      +14
+ Misses       5937     5934       -3

Impacted Files
Coverage Δ

gateway/ln-gateway/src/lib.rs
71.36% <79.31%> (+1.41%)
:arrow_up:

fedimint-server/src/net/connect.rs
95.01% <0.00%> (-0.25%)
:arrow_down:

fedimint-server/src/net/peers.rs
90.88% <0.00%> (ø)

fedimint-server/src/lib.rs
81.58% <0.00%> (+1.02%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

LGTM? Ready to land?

LGTM? Ready to land?

Ready!


Fix clippy stuff

The only failure appears to actually be in dead code.
This is just the minimal changeset to make it pass clippy

IMO the trait name IntoComponent should be updated to match for clarity.


Refresh token issue

This statement "ADFS issues a new refresh token only if the validity of the newer refresh token is longer than the previous token." should be cleared up. Tested in ADFS 2019 with a confidential client and registered devices, when using "grant_type=refresh_token" in authorization code grant flow, no new primary refresh token is issued. Only an access token and id_token.

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

ID: 7bef1d22-1712-5da4-8f77-4071210ff67b
Version Independent ID: 49c5d531-c7d0-4c14-e878-f8fa7f675c3a
Content: AD FS 2016 Single Sign On Settings
Content Source: WindowsServerDocs/identity/ad-fs/operations/ad-fs-single-sign-on-settings.md
Product: windows-server
Technology: identity-adfs
GitHub Login: @billmath
Microsoft Alias: billmath

Question was asked at Microsoft Q & A and there was an answer.
https://learn.microsoft.com/en-us/answers/questions/1287360/refresh-token-issuance-for-ad-fs


Bootstrap: Warn about intern

In bootstrap with master there is a new (evidently innocuous) warn about com.rpl.specter.macros$macros/intern.
Detailed transcript:
Mikes-MacBook-Pro:(master)specter$ git log -1
commit 19eb5923c38b19154b13cf60a8af11be9bbc2b9c
Author: Nathan Marz<EMAIL_ADDRESS>Date:   Thu Jun 2 02:48:43 2016 -0400

    update changelog
Mikes-MacBook-Pro:(master)specter$ lein clean
Mikes-MacBook-Pro:(master)specter$ lein cljx
Rewriting src/clj to target/classes (clj) with features #{clj} and 0 transformations.
Rewriting src/clj to target/classes (cljs) with features #{cljs} and 1 transformations.
Rewriting test to target/test-classes (clj) with features #{clj} and 0 transformations.
Rewriting test to target/test-classes (cljs) with features #{cljs} and 1 transformations.
Mikes-MacBook-Pro:(master)specter$ lein install
Compiling 1 source files to /Users/mfikes/Projects/specter/target/classes
Created /Users/mfikes/Projects/specter/target/specter-0.11.1-SNAPSHOT.jar
Wrote /Users/mfikes/Projects/specter/pom.xml
Installed jar and pom into local repo.
Mikes-MacBook-Pro:(master)specter$ planck -c target/specter-0.11.1-SNAPSHOT.jar Planck 1.14
ClojureScript 1.9.14
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
    Exit: Control+D or :cljs/quit or exit or quit
 Results: Stored in vars *1, *2, *3, an exception in *e

cljs.user=> (require-macros '[com.rpl.specter.macros :refer [transform]])
WARNING: Use of undeclared Var com.rpl.specter.macros$macros/intern at line 470
nil
cljs.user=> (require '[com.rpl.specter :refer [ALL]])
nil
cljs.user=> (transform [ALL :a even?] inc [{:a 1} {:a 2} {:a 4} {:a 3}])
[{:a 1} {:a 3} {:a 5} {:a 3}]
cljs.user=>

Committed a fix for this. Can you verify the warning is gone?

@nathanmarz Yep. Looks good now.


5 types tests

Jenkins: test this please.

Jenkins: test this please.

Jenkins: test this please.

Jenkins: test this please.

No idea why it is failing tests, works locally, not stable online.

So it looks like this was not merged, so I postponed working on 5_types this morning.
@laurayuwen:

Are you absolutely sure that you are running the same (latest) version of K locally?

Did you try to run those tests that failed, or some smaller one. using exhaustive search to make sure the non-determinism does not come from the semantics itself?

Jenkins: test this please.

@grosu please review


Syntax error in program "ZCL_ABAPGIT_APACK_READER======CP        ".

Hi
I'm trying to update from v 1.92 and after selecting pull from the repo, I have hiit the below error.

Any repo I now access, causes the dump.

try taking the latest build https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap and install as ZABAPGIT_FULL and use it to update the abapGit classes

All good. Thanks Lars!

sometimes the self update fails, using the compiled report is the easiest way to get it running again


Fix docker-machine.rb

Upgrade type of container to zip-archive and replace one binary to list of binaries.
In current version of Docker Machine 0.5.0 they split functionality to a main command and a bunch of drivers (separate binaries). Also they put it all in the zip-archive.

Thank you for the contribution. It needed some fixes, so they were made in a1b82a20d1c1727bee340ce5db09c56a4dac2415. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.

Hi, guys!
I'm new to Homebrew Cask so sorry if my proposed changes is not so good. It's works for me. :) I'm glad what you'd fixed the problem.


raidboss: Eden Furor Incineration Trigger fix

Instant Incineration is physical damage.
See here. (blue is magical, orange is physical)

Thanks!!


Draft Email to Full Stack Academy for solicit help- Can be used by others to look for recruits

Full-stack academy of code email
Please edit if you like.

Hi David,
Hope all is well with you, your family and your students.

Currently, the team from New York Health Artificial Intelligence Society (NYHAIS) and I are creating an application to help with the COVID-19 epidemic.

NYHAIS is a New York State non-profit dedicated to the improvement of healthcare with technology. This pandemic has railed the community to try to address the coming swelling of cases in the NYC hospital system and around the country.

Our app will inform patients, collect their information and allow doctors to monitor large numbers of patients' symptoms over time (daily or less).

We have wireframes, backend (encrypted MongoDB database on AWS), and front end in the works. We are being advised by a pulmonary critical care specialist from Mount Sinai, an emergency room doctor, and a system architect for medical institutions.
Currently, we need MERN stack devs.
Would any alumni be interested in collaborating? I know that FSA grads are of high calibre and would make a meaningful impact on the effort.
Do you know any alumni or students developers that are interested in contributing?
So far we have students from Flatiron School contributing
 to the project. This effort is a community action of a bunch of concerned developers trying to help improve the situation.

Repo:
https://github.com/COVID-19-electronic-health-system/Corona-tracker

Join Discord server:
https://discord.gg/pPERUuv

Design:
https://github.com/COVID-19-electronic-health-system/Corona-tracker/tree/master/design

Thanks,
[Your Name Here]

looks good! Change railed to rallied.  If there's an influx of people, do you have a sufficient contributing document?

Fleshing out a contributing doc is definitely something high on my priority list, at least 👍

was this sent? If so, please close this issue.


Use tencent/ncnn master

This is a breaking change for streaming zipformer.
If you are using zipformer models, please either re-download them or re-export your model with the latest icefall.
Remember to strictly follow the icefall documentation  when you re-export the model. You have to update the version number to 1, whose default value is 0.

Will release v2.0 after merging this pull-request.

Closing #133
@Baiyuetribe

https://k2-fsa.github.io/icefall/model-export/export-ncnn-zipformer.html#modify-the-exported-encoder-for-sherpa-ncnn


Returns null receipt for non-canonical block transactions

The receipt for a transaction that is not included in the canonical chain should be null
Fixes https://github.com/paritytech/frontier/issues/473

hey, I am curious about the source of truth for this behavior, is it a design decision by frontier itself, or does it match some other clients?
I checked some doc but didn't find details about it, for example infura's doc only mentions "the receipt is not available for pending transactions", but didn't say anything about non-canonical block


Update composer dependencies for Laravel 5.7

This PR enables the use of this package with Laravel 5.7.     I was not able to get the Dusk tests to run on my local machine, but the Unit and Feature tests are passing.

Sorry!  I missed that there is already a PR in place for this.


Feature/resources

Start refactoring the resources for LBA1 inclusion at some point.
I will do multiple PRs when possible to avoid conflicts at a later stage.
Preview here: https://pr-374.lba2remake.net

Interesting, let me fix that one

@slwilliams that's fixed


Are there any example migration files?

I'd like to look at an example migration file so I can see how to best use sails-migrations. Would be great if there was an example file!

:+1:

Take a look at http://knexjs.org/#Migrations
Running the commands documented will give you "example files". Does this help?

I found the Knex migrations documentation to be spectacularly useless, but this comment provided a perfect example.


feat(core) add StructBuffer.applyEach(IndexedConsumer)

Often, when creating Struct.Buffer instances, the values of particular fields of each struct within the buffer is sourced from another indexed data structure, like an array or list at position i.
Currently, in order to access those other data structures, we have to use an external iteration (such as an indexed for-loop or a for-each loop driven by the other data structure) and use either the relative apply(Consumer) or absolute apply(index, Consumer) calls on StructBuffer within that loop.
It'd be nice to compose whole structs and struct buffers without external iteration, only relying on internal iterators, like those provided by StructBuffer.forEach(). However, the downside of StructBuffer.forEach() is that it does not return this and it also does not provide the iterator index in order to access another data structure for the currently iterated struct.
This change proposes to add a mix of StructBuffer.apply() and StructBuffer.forEach() to achieve both an internal iteration design and allowing to return this StructBuffer.
Use-case
The following is an example of a use-case for building the VkAccelerationStructureInstanceKHR.Buffer based off information in another T[] data array:
T[] data = ...;
VkAccelerationStructureInstanceKHR.Buffer instances =
  VkAccelerationStructureInstanceKHR.calloc(data.length, stack);
for (int i = 0; i < data.length; i++) {
  T d = data[i];
  instances.apply(s -> s
   .accelerationStructureReference(blasDeviceAddress)
   .mask(~0)
   .instanceCustomIndex(i)
   .transform(VkTransformMatrixKHR
     .calloc(stack)
     .matrix(new Matrix4x3f()
       .translate(d.position.x, 0, d.position.y)
       .getTransposed(stack.mallocFloat(12)))));
}
instances.rewind();

This PR proposes to ease this to the following:
T[] data = ...;
VkAccelerationStructureInstanceKHR.Buffer instances =
  VkAccelerationStructureInstanceKHR.calloc(data.length, stack)
    .applyEach((i, s) -> s
      .accelerationStructureReference(blasDeviceAddress)
      .mask(~0)
      .instanceCustomIndex(i)
      .transform(VkTransformMatrixKHR
        .calloc(stack)
        .matrix(new Matrix4x3f()
          .translate(data[i].position.x, 0, data[i].position.y)
          .getTransposed(stack.mallocFloat(12)))));

Looks useful but I have two minor points:

Maybe we should steal borrow from Kotlin here and call it onEachIndexed (or applyEachIndexed to increase discoverability).
Instead of adding a custom interface, ObjIntConsumer could be used. However, note that the argument order is reversed in that interface which is somewhat unconventional. (I assume BiConsumer was not used to avoid boxing.)

Thanks, I agree with both suggestions.

Won't this cause trouble similar to #554?

I read that issues as the particular extension function apply being a problem. Not any methods named differently, like applyEachIndexed. I can't find any source that reference applyEachIndexed with Kotlin.


Used undefined instead of null.

Fixes #490.
I've changed the code to use undefined instead of null, except where it's actually needed, which was only a handful of places:

Creating an object without a prototype here
Checking the results of regular expression tests here, here and here

There's one thing I'm not sure if I should change (I've left it unchanged for now). The additional_rule_metadata.json and recommended_ruleset.js files both suggest turning the no-null-keyword off. Given that it's now turned on, do those files need to change?

The additional_rule_metadata.json and recommended_ruleset.js files both suggest turning the no-null-keyword off

Yes, let's turn them back on there.

@JoshuaKGoldberg, I'm having a lot of issues with this change in the recommended ruleset.
As much as I would love to stick to undefined in favor of null in our own codebase, the reality is that a lot of (popular) libraries out there do not support this.
You noted that TSLint itself has a different behavior on null/undefined, it's also true for react-apollo (and other Apollo-related libraries like apollo-cache-inmemory), and I'm sure I'll discover plenty more as I'm updating this plugin in our repos.
I'm also using https://github.com/godmodelabs/flora-sql-parser which strives on null values. While it's a small library and I could disable this rule on a per-file basis, it is built upon https://github.com/pegjs/pegjs which is much more widely used, and generates a ton of nulls everywhere.
Are you at all opposed to removing this from the recommended ruleset?

@astorije I could disable this rule on a per-file basis...

You can turn the rule off in the config file and still use the recommended ruleset.
{
    "extends": ["tslint-microsoft-contrib"],
    "rulesDirectory": ["node_modules/tslint-microsoft-contrib"],
    "rules": {
        "no-null-keyword": false
    }
}

As the readme says,

To start, you can enable our recommended defaults...You can then disable rules you don't find useful.

@reduckted, thanks, we're doing that for a few rules indeed.
FWIW, I do find this rule useful, I just don't think it should be recommended/enabled by default. Many packages out there do not play nice with this, and as we noticed on our end, fixing violations recommended by this rule on things outside of our control (dependencies) will often break.


tracking: Flex support

This issue tracks Flex layouts support.
~WIP. I am currently making some tests using Taffy.~

Ping me if you have any questions or want any help with Taffy. However, I dioxus-native-core already integrates Taffy, and I suspect (although I am by no means sure about this) that you may be better off using that support rather than integrating Taffy directly.

Ping me if you have any questions or want any help with Taffy. However, I dioxus-native-core already integrates Taffy, and I suspect (although I am by no means sure about this) that you may be better off using that support rather than integrating Taffy directly.

I am actually not sure if I will actually  end up using taffy, atm I am using my own layout engine because I found it hard to integrate with taffy, but maybe that changes in the future. Anyway, thank you 😄

I'm not sure if you've given up on Taffy at this point, but now that the CSS Grid implementation has been released the next period of work on Taffy will be focussed on making it easier to integrate with. So far there is:

A PR which refactors Taffy to enable a new low-level API (where you maintain your own node/style tree and merely call into Taffy's compute algorithms for a single node at a time when it suits your wider layout code) https://github.com/DioxusLabs/taffy/pull/326
A proof of concept integration with Iced using this new API https://github.com/nicoburns/iced_taffy/blob/main/src/grid.rs

I'm not sure if you've given up on Taffy at this point, but now that the CSS Grid implementation has been released the next period of work on Taffy will be focussed on making it easier to integrate with. So far there is:
* A PR which refactors Taffy to enable a new low-level API (where you maintain your own node/style tree and merely call into Taffy's compute algorithms for a single node at a time when it suits your wider layout code) [WIP: Refactor the `LayoutTree` trait DioxusLabs/taffy#326](https://github.com/DioxusLabs/taffy/pull/326)

* A proof of concept integration with Iced using this new API https://github.com/nicoburns/iced_taffy/blob/main/src/grid.rs

That looks interesting, I will make sure to give it a try when it gets stable :smile:

@marc2332 Could i request an RFC to be created so we have a consensus on how this should look maybe make an rfc repo to discuss the architecture

I can try writing a proposal

Or maybe use github discussions for the RFC's?

@marc2332 Could i request an RFC to be created so we have a consensus on how this should look maybe make an rfc repo to discuss the architecture

Sure!

Or maybe use github discussions for the RFC's?

An issue is fine

Made an rfc #327

Closing in favor of https://github.com/marc2332/freya/issues/327


Add pytorch installation script for mac and linux

Fixes #896.

Includes a PyTorch installation script that can be used to download and install the CPU wheels for PyTorch version compatible with Pyro dev. This should make local Pyro development easy since users on dev will not have to build PyTorch from source.
Uses the same script in .travis.yml to install the linux wheels for CI testing.

Testing: Ran script locally for osx wheels. Travis will check the wheels for Linux.

Do I understand correctly that this should "just work" on both Linux and OS X?

Yes, this should just work but only for the CPU versions. Fro the GPU stuff, it's probably best to use the docker scripts.


Expired token

I store the tokens (credentials.oauthToken, credentials.oauthTokenSecret), and before making a request i set them into oauthswift.client.credentials.oauthToken/oauthTokenSecret
Them i'm able to make request with those tokens (despite oauthTokenSecret is empty from server) for a period of time (one hour?)
func get(urlString: String, params: [String: Any]?) -> Observable<Data?> {
    return Observable<Data?>.create({ (observer) -> Disposable in
        print("TOKEN: \(self.oauthswift.client.credential.oauthToken)")
        _ = self.oauthswift.client.get(urlString, parameters: params ?? [:], success: { (data, response) in
            observer.onNext(data)
            observer.onCompleted()
            }, failure: { (error) in
                switch error {
                case .tokenExpired:
                    print("Expired")
                default:
                    break

                }
               // observer.onError(CustomError.unauthorized)
        })
        return Disposables.create()
    })
}

Then i get .tokenExpired when i try to make those request.
As https://github.com/OAuthSwift/OAuthSwift/wiki/OAuth-2.0-Token-Expiration then you have to "reconnect", what this means? asking for the user authorizing again in google page?
I need a token for a long period of lifetime or some mechanism for token renewal

OS targeted (with version): 9 / 10
OAuth provider: Google
OAuthSwift version: master branch

oauth1 or oauth2?
with oauth2 there is renew token mecanism
This is not automatically done ( #217 talk about this issue)
so you must call renewAccessToken (there is also a convenience temporary method startAuthorizedRequest)
then when asking for a token sometimes you can add a parameter to specify the period of token availability (for instance expiration=never) but not all provider allow that

http://stackoverflow.com/questions/26048945/oauth-v2-google-api-expiry-access-token
From here seems i need to save also the oauthRefreshToken to renew the previous token. (oauth2)

@phimage seems working, which makes me thing, if someone have your renewalToken, can always ask for valid tokens?

Hi Team, sorry for another question here…
I do try to use the renewAccessToken function but not able to assign back the credentials to the client as I do get the following message:

Cannot assign to property: 'credential' setter is inaccessible

this is my code (I do have created a new REST client class to work with asynchronous requests and operations…):
`                    oauthswift.renewAccessToken(withRefreshToken: defaults.string(forKey: "oauthRefreshToken")!, success: { (OAuthSwiftCredential) in
oauthswift.client.credential = OAuthSwiftCredential
completion(self.oauthswift)
                }, failure: { (OAuthSwiftError) in
                   // …
                   // run full oauthswiftAuthorize.authorize(withCallbackURL: … ) with WebView in another ViewController
                   // …
                        completion(self.oauthswift)

                })`

Does someone can lead me to the correct approach/usage?
Thanks in advance.

oauth1 or oauth2?
with oauth2 there is renew token mecanism This is not automatically done ( #217 talk about this issue) so you must call renewAccessToken (there is also a convenience temporary method startAuthorizedRequest will do it automatically instead of using client function)
then when asking for a token sometimes you can add a parameter to specify the period of token availability (for instance expiration=never) but not all provider allow that

How do you do it for Oauth1?


Decode the requested url - Bisoc

The requested url gets to the Xviz server encoded, because the spacing is not allowed. In order for the url to correctly point the right path, we need to decode the url.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.andrei.bisoc seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Surface pages no more than once in the side nav

It's super-disorienting when the same page comes up multiple places in the side nav. It's like an identical page coming up twice in a book -- you lose track of where you are and get confused.
One example of this is https://docs.vectara.com/docs/getting-started-samples/queryDataApiKey.php, which is linked to in at least two places:

Since I did this, I think we should at least have a discussion first on whether it is a bug or not, and what the best way to solve it might be.
The reason I did this is mostly because it's incredibly difficult for a user to know exactly where to find something, with or without a good ToC.  I usually go to the sidebar, look at the list of topics, expand out the ones that look most sensible, and then try to find the right sub-page.  I added several links in multiple places in the ToC because it felt like "oh, would a user be looking for this bit of code we have in the auth section or in a query code samples section?"  I couldn't think of which place most users would go to (though I, like I'm sure everyone, has opinions on that).  So I just added a link in both places.  I actually saw it as a benefit that it would then expand both sections, since it meant expanding areas of the docs that I would be interested in.
That said, since we've had several points of confusion on the code samples in the docs, maybe the right thing to do is to eliminate all of the code samples entirely from docs and instead put links into the getting-started repo instead.  These are kind of a pain to maintain and it's not clear to me that we can resolve and maintain the issues that have been brought up with the code samples in the docs anyway in the next 12+ months

The reason I did this is mostly because it's incredibly difficult for a user to know exactly where to find something, with or without a good ToC.

True! I think the new site search will help a lot with this.

I added several links in multiple places

I'm a fan of cross-links, but typically from the content instead of the side-nav. This enables the ToC to act as a map (wherein each location is unique) while enabling users to discover useful information from multiple locations. https://react.dev/learn/responding-to-events is a great example of this approach. The page contains cross-links to:

https://react.dev/learn/passing-props-to-a-component (twice!)
https://react.dev/learn/render-and-commit
https://react.dev/learn/javascript-in-jsx-with-curly-braces
https://react.dev/reference/react-dom/components/common#common-props
https://react.dev/learn/keeping-components-pure
https://react.dev/learn/state-a-components-memory (this is a standalone link to the very next page in the series)

These copious cross-links help someone who lands on this page learn about the surrounding concepts that are needed to fully understand and leverage the page's primary concept.

This was done a bit ago, but this ticket is outstanding as still open.  Closing


Wrong number of records on first page

Say I have 127 records and showing 25 per page. If I reverse the order of the records, I only get 2 on the first page.
Invoice.includes(:accommodation_bookings => :accommodation).order("created_at DESC").page(params[:page]).per(params[:per] || session['per_page'])]
Whichever order i put the statement still seems to come out wrong

Was being dumb, problem was a filter in the view


Add the ability to assign a person to an exiting issues

Right now we are only abile to assign someone to an issue when creating it.  You can't even see who is assigned while viewing it.

turned out the issue was that we hid the assignee field if there wasn't anyone assigned. I changed that


Fix errorprone warnings MutableConstantField

Ala - http://errorprone.info/bugpattern/MutableConstantField

R: @lukecwik Good catch. Reverted my change to Schema, and just added the suppression.


Allow users to set their own indentation levels. See comments.

Using tabs for indentation allows users to set their own indentation levels by using "translate_tabs_to_spaces": true in their settings. It currently inserts 2-space indentation into 4-space indented files.

I don't know if you're open to this change, but it would allow users to set their own indentation preferences. If TABs are used in snippets, Sublime will automatically convert them into spaces to match the rest of the file. ("translate_tabs_to_spaces": true in user-settings.)
Either way, thanks for the plugin.

I am all for the change but the practice in Javascript is 2 spaces indentation. Example
My apologies but thanks for the insight

There is no single coding style for JS -- that document is only for AirBnB. Many people and projects use 4-spaces or tabs. :)
Examples of large projects that don't use 2-space tabs in JavaScript:

The author of JavaScript the Good Parts recommends 4-spaces: http://javascript.crockford.com/code.html
Mithril.js coding style: https://lhorie.github.io/mithril/getting-started.html
Mercury.js: https://github.com/Raynos/mercury
jQeury uses tabs: https://contribute.jquery.org/style-guide/js/#spacing
WordPress: https://make.wordpress.org/core/handbook/best-practices/coding-standards/javascript/#indentation-and-line-breaks
and many more...

For people who don't use 2-spaces, the plugin doesn't work. With tabs there, it works for everyone...

You've really pushed me into a corner with those sources. I appreciate the tenacity

Thanks -- and also for writing the plugin.


Include user id in jwt and auth user types.

auth user types include types like NormalUser and AdminUser


Potential Risk: Security breach due to hardcoded private key

The script (l1-contracts/scripts/ci_deploy_contracts.sh) currently has the private key for contract publishing hardcoded within it:
PRIVATE_KEY=${CONTRACT_PUBLISHER_PRIVATE_KEY#0x}
This poses a significant security risk if the script is ever accessed by unauthorized parties. Anyone with access to the script could potentially use the private key to deploy malicious contracts or steal funds.
Possible Solutions:

Environment Variables: Store the private key as an environment variable and access it within the script using $CONTRACT_PUBLISHER_PRIVATE_KEY. This way, the key wouldn't be directly visible in the script file. Remember to properly secure the environment variable itself.
I'd recommend restricting access to the script only to authorized individuals and systems.

You did not demonstrate that anything was hardcoded. Indeed you pasted an environment variable, which is the best practice. Closing until further clarification


comment references not resolving for super params

See: https://github.com/dart-lang/linter/issues/3563.
The comment_references lint fires on p1 but not p2.
class G {
  G({required int p1});
}

class H extends G {
  /// [p1] is better than [p2].
  H({required super.p1, required int p2});
}

Marking as P2 since this is discouraging folks from using super parameters (and blocking the adoption of the use_super_parameters lint).

As @parlough points in https://github.com/dart-lang/lints/issues/75#issuecomment-1726311984, this is worth prioritizing as use_super_parameters is about to get a lot more use.

This is not a P1. As per our triage guidelines it is P2.


add missing indirect dependencies from deps.dev

Description of the PR
As I was removing the version range from deps.dev collector, I noticed that I made a mistake when quantifying the direct vs indirect. While I captured all the direct, I did not add in the indirect dependencies (from the root package). This PR fixes that issues.
deps.dev explanation found here: https://github.com/google/deps.dev/issues/12#issuecomment-1517103380
PR Checklist

[x] All commits have a Developer Certificate of Origin (DCO) -- they are generated using -s flag to git commit.
[x] All new changes are covered by tests
[ ] If GraphQL schema is changed, make generate has been run
[ ] If GraphQL schema is changed, GraphQL client updates/additions have been made
[ ] If OpenAPI spec is changed, make generate has been run
[ ] If ent schema is changed, make generate has been run
[ ] If collectsub protobuf has been changed, make proto has been run
[x] All CI checks are passing (tests and formatting)
[x] All dependent PRs have already been merged

Closing this for now as it is not needed.


Show a login button in the header

OP-632 | OP-1856

I gave it a quick try and have the same lock file issue if I use Volta, which uses these versions: https://github.com/lblod/frontend-organization-portal/blob/a0b9f32c1c6df6a1007f57dc54e298843fac9082/package.json#L113-L116
npm install on the development branch modifies the lock file. @nbittich @claire-lovisa What node / npm versions are you using exactly? Is that docker-ember? Or managed with a different node management tool? I wouldn't expect different versions of npm 8 to yield different lock file changes, but it does seem that way at the moment.
Chances are the volta config needs to be adjusted to match something else, we just need to find out what exactly 😄.

@Windvis  currently my setup is:
{
  npm: '8.15.0',
  node: '16.17.1',
  v8: '<IP_ADDRESS>-node.22',
  uv: '1.43.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.18.1',
  modules: '93',
  nghttp2: '1.47.0',
  napi: '8',
  llhttp: '6.0.9',
  openssl: '1.1.1q+quic',
  cldr: '41.0',
  icu: '71.1',
  tz: '2022a',
  unicode: '14.0',
  ngtcp2: '0.1.0-DEV',
  nghttp3: '0.1.0-DEV'
}

@nbittich Even with those versions I still see the changed lock file after an npm install on the dev branch. That doesn't happen for you?

Indeed @Windvis , it was in a previous PR, I missed that one:
https://github.com/lblod/frontend-organization-portal/pull/400/files#diff-053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519

Ok, check, then it probably makes sense to simply commit the correct version on the dev branch and update the volta config to match your versions (or alternatively the versions used in the docker ember image). The volta config can also be removed if nobody uses it. It seems I added that in the past 😄.


List available branches and tab completion

Since mbed-cli allows updating to a git branch, it should provide a mechanism to list local and remote branches.
mbed update should support branch tab completion the same way that git does.

Issue header has missing or incorrectly filled in fields! Please fix.