Intermittent Image pull failures

Description
I don't believe this is a bug and is a question. It may not be related, but I am seeking some guidance. Over the weekend we upgraded our EKS cluster to the latest version of Kubernetes that it supports which is 1.28. We also upgraded Karpenter to the latest version 0.31.0. As part of the upgrade, there's been improvements to pull container images within a node across Pods in parallel (https://kubernetes.io/blog/2023/05/15/speed-up-pod-startup/#parallel-container-image-pulls). This does seem to be the case as provisioning seemed to be somewhat faster and I started running into this error under a heavy load
image pull failed: pull QPS exceeded

I noticed this issue from awhile back: https://github.com/aws/karpenter/issues/1269
It had recommendations for increasing the registryPullQPS . I was able to do this via userdata in the AWSNodeTemplate like so
 userData: |
      MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="BOUNDARY"

      --BOUNDARY
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      echo "$(jq '.registryPullQPS=50|.registryBurst=100' /etc/kubernetes/kubelet/kubelet-config.json)" > /etc/kubernetes/kubelet/kubelet-config.json

      --BOUNDARY--

After reconfiguring Kubelet I now get intermittent failures pulling images. This seems to happen only under heavy load as well.
Failed to pull image "<aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": rpc error: code = Unknown desc = failed to pull and unpack image "<aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": failed to resolve reference "804438605645.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": failed to do request: Head "https://<aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/v2/docker/manifests/20.10.15-dind": net/http: TLS handshake timeout
Count: 2

We pull 3 images within each Pod as it runs 3 containers in each. One pulls from our host Nexus instances for the main container. Then we have two side-car containers for docker-in-docker (dind) and JNLP. The dind pulls from ECR and the JNLP pulls from Docker Hub. The only one that seems to have intermittent issues is the one from ECR that we noted thus far. It's from a private repo in ECR.
Any help would be greatly appreciated. I am wondering if I happen to configure something wrong.
Observed Behavior:
Intermittent failures to pull docker images on Karpenter provisioned nodes
Expected Behavior:
Successfully pull docker images on Karpenter provisioned nodes
Reproduction Steps (Please include YAML):
Versions:

Chart Version:  0.31.0
Kubernetes Version (kubectl version):  1.28

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

Seem like throttling  issue, Are the images not eventually getting pull due to ImagePullBackOff?

A throttling issue would make sense. It seems it tries twice then kills the Pod
Created Pod: kubernetes jenkins-nonprod-production/apicomm-viserion-bootstraps-pr-603-1-sk5n3-lvfx7-0jlpq
Still waiting to schedule task
‘[apicomm-viserion-bootstraps-pr-603-1-sk5n3-lvfx7-0jlpq](https://build-dev.community.apiture.com/computer/apicomm-viserion-bootstraps-pr-603-1-sk5n3-lvfx7-0jlpq/)’ is offline
ERROR: Unable to pull Docker image "647426478431.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind". Check if image tag name is spelled correctly.

The above is what is in the Jenkins console log. If I look into the K8s logs I see the error above
Failed to pull image "804438605645.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": rpc error: code = Unknown desc = failed to pull and unpack image "804438605645.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": failed to resolve reference "804438605645.dkr.ecr.us-east-1.amazonaws.com/docker:20.10.15-dind": failed to do request: Head "https://804438605645.dkr.ecr.us-east-1.amazonaws.com/v2/docker/manifests/20.10.15-dind": net/http: TLS handshake timeout
Count: 2

You could consider increasing Rate of BatchGetImage requests in ECR https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html

If I am looking at the Service quota metrics correctly in CloudWatch I believe its saying I am not even using 1% of the quota.

I believe we get 2000 pulls per second by default

Hmm, that's instructing, how many pods are scaling out? At what scale do you start seeing this issue?

@toddatapiture, did you ever figure out a soluiton for this?  I have been running into the same error recently with a lot of my Jenkins builds.

@ChristinaMRogers Unfortunately, I never did pinpoint what actually caused the issue. Since this issue I have done a few refactors to our EKS cluster specifically around networking. Our cluster was seeing more traffic since we were migrating more stuff onto it. I had noticed the aws-node daemon set failing readiness/liveness probes causing Pods that got scheduled to the node to become stale and be terminated. This seemed to be around resource spiking. I ran across a best practices guide(https://aws.github.io/aws-eks-best-practices/networking/vpc-cni/#handle-livenessreadiness-probe-failures) and it mentioned increasing the timeouts and resources if you run into that issue.
I also added an additional replica, increased resources and HPA for the core DNS controller (I saw some spikes in resources there too). Along with adding topology spread constraints to try to keep the Pods on different nodes in different zones. I removed T class instances from the cluster and am only using more network-optimized instances (C, M, and R).
I did a few other things too such as using the latest version of the aws-load-balancer-controller helm chart. Increased the CIDR range for the VPC and Subnets. Along with updating the VPC-CNI to use prefix delegation and reconfiguring Kubelet to allow more Pods to schedule to a node to increase Pod density. Although, I don't think these last few things contributed to it in terms of making it better.
So, I am not really sure. I have made a lot of changes to our cluster since this issue. I did check and we were being throttled by AWS for ECR. My error was failed to resolve reference some_url net/http: TLS handshake timeout and since I was having other networking issues within our cluster I am chalking it up to that. Not being able to resolve makes me feel like maybe it was a DNS issue. Anyway with all this babble since the refactors I have not seen this error again. It very well could have just been a fluke on AWS as well. I wish I could help more though.


Synchronous refer params AIS-8

I added the method - (NSDictionary*) getLatestReferringParamsSynchronous to the Branch shared object.
I created a companion branch, synchronous-refer-params-AIS-8-test that has extra testing code included in Branch-TestBed.
That branch should not be merged, but it's useful for testing this code.  That branch already includes this code.

Hmm - can you pull in the latest changes from staging into this branch? It seems out of date with my fixed from last week, making it hard to review

@ahmednawar When you have a spare cycle, can you help me take a look over this one too? Just worried I'll miss something.

Can you add a test case for when this is called in a non-main thread as well being called from the main thread?

@aaustin Wrote:

Can you add a test case for when this is called in a non-main thread as well being called from the main thread?

There are test cases in the synchronous-refer-params-AIS-8-test branch, including tests for deadlocks.

Hey - you can review my outstanding comments by clicking the "Files changed" tab https://github.com/BranchMetrics/ios-branch-deep-linking/pull/536/files. Let's address each one before proceeding.
Lastly, can you update the README with the new API?

Ok I think I'm comfortable for this to move to QA. Please please please please please remember to move the logs. There's nothing worse than an SDK that print debug logs in production apps. 👍


Fix em and strong regex bug – failure to correctly recognise double nested escape sequences

Em and Strong regex were unable to recognise double nested escape sequences.
The previous strong regex didn't find the following to be a match
https://regex101.com/r/rH9oJ6/1
The updated regex recognises it
https://regex101.com/r/bC4xE5/1
Similarly, the em regex did not recognise this as a match
https://regex101.com/r/jS1lH9/1
But the updated regex again correctly matches
https://regex101.com/r/aU7oO1/1

Not match this : **italic *bold\*it* italic** normal **italic**

Was that match found with the code, or the link I gave?
Apologies on the link – I naively copy pasted the regex used directly, without removing the backslashes that PHP itself will treat as literal ;p
Link should have been https://regex101.com/r/bC4xE5/3

Unfortunately the regex considers just a single escape char, thus a escaped escape char isn't treaded correctly (i.e. you don't have to search for a single escape char, but any uneven number of escape chars). Thus the following is matched wrong:
https://regex101.com/r/3aZlVj/1

@PhrozenByte I think you might be touching on a series of escaping problems within parsedown in various places ;p (#434)
I can address escapable escapes in the regexes above (e.g. this should fix the one you sent https://regex101.com/r/Y3rFDL/1), though this will probably be the first of many changes that need to be made to escaping
e.g.

You have to start somewhere :laughing: However, @erusev should decide whether this "escape escaping chars" issue should be addressed now or not.


A LiquidCore for React Native?

I am installing LiquidCore 0.7.2 in a React Native (0.61.5) app on macOS Catalina, the node installed is 12.16.0 by following instruction here.
The React Native app has a iOS subdirectory which holds iOS related files. After yarn add liquid core successfully, the installation is at the last step under /iOS subdirectories:
pod install

Here is the error created:
pod install
Analyzing dependencies
[!] No podspec found for `liquidcore_bundle` in `.liquidcore/liquidcore_bundle.podspec`

Here is the content of `./liquidcore/liquidcore_bundle.podspec`:

cat liquidcore_bundle.podspec
Pod::Spec.new do |s|
  s.name = 'liquidcore_bundle'
  s.version = '1.0.0'
  s.summary = 'Bundled JS files for LiquidCore'
  s.description = 'A pod containing the files generated from the JS bundler'
  s.author = ''
  s.homepage = 'http'
  s.source = { :git => "" }
  s.resource_bundles = {
   'LiquidCore' => [
      'ios_bundle/*.js'
   ]
 }
 s.script_phase = { :name => 'Bundle JavaScript Files', :script => '(cd ..; node node_modules/liquidcore/lib/cli.js bundle --platform=ios)' }

Here is app's `package.json`:

  {
  "name": "ipat_test2",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "server": "node node_modules/liquidcore/lib/cli.js server",
    "bundler": "node node_modules/liquidcore/lib/cli.js bundle",
    "init": "node node_modules/liquidcore/lib/cli.js init",
    "gradle-config": "node node_modules/liquidcore/lib/cli.js gradle",
    "pod-config": "node node_modules/liquidcore/lib/cli.js pod",
    "postinstall": "node node_modules/liquidcore/lib/cli.js postinstall"
  },
  "dependencies": {
    "liquidcore": "^0.7.2",
    "react": "16.9.0",
    "react-native": "0.61.5"
  },
  "devDependencies": {
    "@babel/core": "^7.6.2",
    "@babel/runtime": "^7.6.2",
    "@react-native-community/eslint-config": "^0.0.5",
    "babel-jest": "^24.9.0",
    "eslint": "^6.5.1",
    "jest": "^24.9.0",
    "metro-react-native-babel-preset": "^0.56.0",
    "react-test-renderer": "16.9.0"
  },
  "jest": {
    "preset": "react-native"
  },
  "liquidcore": {
    "entry": [
      "example.js"
    ],
    "pod_options": {
      "target": "ipat_test2",
      "podfile": "/ios/"
    },
    "bundler_output": {
      "ios": ".liquidcore/ios_bundle"
    }
  }
}

Any comment is welcome!

Hi @emclab ,
React Native on LiquidCore is not officially supported, but I have successfully hacked it to work.  The issues:

There is little to no documentation, and what documentation I have written is outdated
It only works with React Native 0.56 at the moment, because it requires hacking deep inside the RN code, and it is hard for me to keep up with the RN release train.
It is not well tested and there are some known issues

That said, what you can do is use a ReactNativeSurface addon to LiquidCore, which works with a caraml-core view.
The documentation of caraml-core is up-to-date, but unfortunately ReactNativeSurface is not, even though the code is.
You are welcome to try to get it to work, but it may be difficult without much guidance.
The challenge with RN is getting it to use the same JavaScript context (and in the case of Android, to even use the same JavaScript engine) as LiquidCore.  You should be able to easily use them both side-by-side, however they don't talk to each other at all.  ReactNativeSurface is a hacked version of RN that forces them to use the same context/engine.  The advantage is that you can seamlessly use both RN and Node.js in the same code.  The downside is that it is extremely difficult (for me) to maintain, and unlike Node, where LTS versions are pretty stable for a long time, RN changes constantly and each version is incompatible with the last.
The other option is to write a RN plugin that can spawn a LiquidCore instance.  You would still need separate code for the RN pieces and the Node.js pieces, but it would be possible for them to communicate via emitters.  This is actually a really good idea and I will look into what it takes to write, but I have no timeframe to give.
As for the error you are getting, that is very curious as obviously the podspec does exist.  Are you updated to the latest cocoapods version?  Is there any more output you can share?

My current installed version of cocoapods is 1.8.4 which is the latest stable release. Before installing liquidCore, I tried nodejs-mobile-react-native and ipfs with no success. I am not sure why those 2 modules are not working together. My mobile project requires both nodejs and ipfs

Here is an post on stackoverflow.com about mobile nodejs modules. I notice on IOS LiquidCore uses JavascriptCore which is used by IOS as well and nodejs-mobile uses chakra engine instead. Also LiquidCore claims complete nodejs runtime environment which my understanding is seamless compatibility with current nodejs modules. Can you comment on LiquidCore vs nodejs-mobile about compatibility (with hundreds of existing nodejs modules) and performance? Many thanks.

Hi @emclab.  I have a proposal for how to handle this, which correlates to the second option mentioned above.  Doing a deep integration with LiquidCore and RN would be ideal, but it is impossible for me to keep up with the pace of development on RN.  As a workaround, I propose building a LiquidCore plugin for React Native.  This would effectively decouple the two platforms.  The downside is that you would have two separate asynchronous JavaScript codebases only connected through a messaging API.
I have created a proposed API definition, which is attached as a zip file containing the jsdoc output.  Could you take a look at it and see if makes sense, and post any comments/questions?
liquidcore-rn.zip

Classes

MicroService
A MicroService is the basic building block of LiquidCore.  It encapsulates the runtime
 environment for a client-side micro app.  A MicroService is a complete virtual machine
 whose operation is defined by the code referenced by the service URI.  When a MicroService
 is instantiated, its Node.js environment is set up, its code downloaded (or fetched from cache)
 from the URI, and is executed in a VM.  The host may interact with the VM via a simple
 message-based API.

Functions

bundle(bundleName, [options]) ⇒ string
Generates a URL for fetching from the LiquidCore bundle.  If app is compiled in DEBUG mode, this
 will attempt to first download from the development server.  If the server is unreachable, then
 it will default to the packaged bundle.  In release mode, this will always reference the packaged
 bundle.

serviceFromInstanceId(instanceId) ⇒ MicroService
Each MicroService instance is mapped to a unique string id.  This id can be serialized
 in UIs and the instance retrieved by a call to this method.

uninstall(serviceURI)
Uninstalls the MicroService from this host, and removes any global data associated with the
 service.

MicroService
A MicroService is the basic building block of LiquidCore.  It encapsulates the runtime
environment for a client-side micro app.  A MicroService is a complete virtual machine
whose operation is defined by the code referenced by the service URI.  When a MicroService
is instantiated, its Node.js environment is set up, its code downloaded (or fetched from cache)
from the URI, and is executed in a VM.  The host may interact with the VM via a simple
message-based API.
Kind: global class

MicroService

new MicroService(serviceURI)
instance

.serviceURI : string
.state : integer
.instanceId : string
.addListener(eventName, listener) ⇒ MicroService
.emit(eventName, [...args]) ⇒ boolean
.eventNames() ⇒ Array.<string>
.getMaxListeners() ⇒ integer
.listenerCount(eventName) ⇒
.listeners(eventName) ⇒ Array.<function()>
.off(eventName, listener) ⇒ MicroService
.on(eventName, listener) ⇒ MicroService
.once(eventName, listener) ⇒ MicroService
.prependListener(eventName, listener) ⇒ MicroService
.prependOnceListener(eventName, listener) ⇒ MicroService
.removeAllListeners([eventName]) ⇒ MicroService
.removeListener(eventName, listener) ⇒ MicroService
.setMaxListeners(n) ⇒ MicroService
.start([args]) ⇒ Promise.<MicroService>
.exit(exitCode) ⇒ Promise.<MicroService>
"start"
"exit" (exitCode)
"error" (errorMessage)
"newListener" (eventName, listener)
"removeListener" (eventName, listener)

static

.STATE_INIT : string
.STATE_RUNNING : string
.STATE_DEFUNCT : string
.defaultMaxListeners : integer

new MicroService(serviceURI)
Creates a new instance of the micro service referenced by serviceURI.

Param
Type
Description

serviceURI
string
The URI (can be a network URL or local file/resource) of the micro service   code

microService.serviceURI : string
The URI from which the service was started
Kind: instance property of MicroService
Read only: true

microService.state : integer
The current state of the MicroService
Kind: instance property of MicroService

microService.instanceId : string
Each MicroService instance is mapped to a unique string
id.  This id can be serialized in UIs and the instance retrieved
by a call to serviceFromInstanceId.
Kind: instance property of MicroService
Read only: true

microService.addListener(eventName, listener) ⇒ MicroService
Alias for MicroService.on
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The event to listen for

listener
function
A callback function

microService.emit(eventName, [...args]) ⇒ boolean
Synchronously calls each of the listeners registered for the event named eventName, in the order
they were registered, passing the supplied arguments to each.
Note that the arguments will be serialized.  That is, functions will be passed as empty objects and
cannot be called.
Returns true if the event had listeners, false otherwise.
Kind: instance method of MicroService
Returns: boolean - true if the event had listeners, false otherwise

Param
Type
Description

eventName
string
The event to emit

[...args]
any
Arguments to be passed to listeners

microService.eventNames() ⇒ Array.<string>
Returns an array listing the events for which the emitter has registered listeners. The values in
the array will be strings.
Kind: instance method of MicroService
Returns: Array.<string> - Array of events for which there are registered emitters

microService.getMaxListeners() ⇒ integer
Returns the current max listener value for the EventEmitter which is either set by
MicroService.setMaxListeners or defaults to defaultMaxListeners.
Kind: instance method of MicroService
Returns: integer - current max listener value

microService.listenerCount(eventName) ⇒
Returns the number of listeners listening to the event named {@param eventName}.
Kind: instance method of MicroService
Returns: the number of listeners listening to the event named eventName.

Param
Type
Description

eventName
string
The name of the event being listened for

microService.listeners(eventName) ⇒ Array.<function()>
Returns a copy of the array of listeners for the event named {@param eventName}.
Kind: instance method of MicroService
Returns: Array.<function()> - copy of the array of listeners for the event

Param
Type
Description

eventName
string
The name of the event being listened for

microService.off(eventName, listener) ⇒ MicroService
Alias for MicroService.removeListener.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event to remove listener from

listener
function
A callback function

microService.on(eventName, listener) ⇒ MicroService
Adds the listener function to the end of the listeners array for the event named eventName. No
checks are made to see if the listener has already been added. Multiple calls passing the same
combination of eventName and listener will result in the listener being added, and called,
multiple times.
Returns a reference to the MicroService, so that calls can be chained.
By default, event listeners are invoked in the order they are added. The
MicroService.prependListener method can be used as an alternative to add the
event listener to the beginning of the listeners array.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event

listener
function
A callback function

microService.once(eventName, listener) ⇒ MicroService
Adds a one-time listener function for the event named eventName. The next time eventName is
triggered, this listener is removed and then invoked.
Returns a reference to the MicroService, so that calls can be chained.
By default, event listeners are invoked in the order they are added. The
MicroService.prependOnceListener method can be used as an alternative to add the
event listener to the beginning of the listeners array.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event

listener
function
A callback function

microService.prependListener(eventName, listener) ⇒ MicroService
Adds the listener function to the beginning of the listeners array for the event named eventName.
No checks are made to see if the listener has already been added. Multiple calls passing the same
combination of eventName and listener will result in the listener being added, and called, multiple times.
Returns a reference to the MicroService, so that calls can be chained.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event

listener
function
A callback function

microService.prependOnceListener(eventName, listener) ⇒ MicroService
Adds a one-time listener function for the event named eventName to the beginning of the listeners
array. The next time eventName is triggered, this listener is removed, and then invoked.
Returns a reference to the MicroService, so that calls can be chained.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event

listener
function
A callback function

microService.removeAllListeners([eventName]) ⇒ MicroService
Removes all listeners, or those of the specified eventName.
It is bad practice to remove listeners added elsewhere in the code, particularly when the MicroService
instance was created by some other component or module.
Returns a reference to the MicroService, so that calls can be chained.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

[eventName]
string
The optional name of the event

microService.removeListener(eventName, listener) ⇒ MicroService
Removes the specified listener from the listener array for the event named eventName.
removeListener() will remove, at most, one instance of a listener from the listener array. If any single
listener has been added multiple times to the listener array for the specified eventName, then
removeListener() must be called multiple times to remove each instance.
Once an event has been emitted, all listeners attached to it at the time of emitting will be called
in order. This implies that any removeListener() or removeAllListeners() calls after emitting and
before the last listener finishes execution will not remove them from emit() in progress. Subsequent
events will behave as expected.
Because listeners are managed using an internal array, calling this will change the position indices of
any listener registered after the listener being removed. This will not impact the order in which listeners
are called, but it means that any copies of the listener array as returned by the MicroService.listeners
method will need to be recreated.
Returns a reference to the MicroService, so that calls can be chained.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

eventName
string
The name of the event

listener
function
A callback function

microService.setMaxListeners(n) ⇒ MicroService
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
This is a useful default that helps finding memory leaks. Obviously, not all events should be limited to just 10
listeners. setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The
value can be set to Infinity (or 0) to indicate an unlimited number of listeners.
Returns a reference to the MicroService, so that calls can be chained.
Kind: instance method of MicroService
Returns: MicroService - - this object

Param
Type
Description

n
integer
The number of listeners to allow

microService.start([args]) ⇒ Promise.<MicroService>
Starts the MicroService.  This method will return immediately and initialization and
startup will occur asynchronously in a separate thread.  It will download the code from
the service URI (if not cached), set the arguments in process.argv and execute the script.
Kind: instance method of MicroService
Returns: Promise.<MicroService> - A promise that will be resolved with this object upon successful starting of the process.

Param
Type
Description

[args]
any
The list of arguments to sent to the MicroService.  This is similar to running                         node from a command line. The first two arguments will be the application (node)                         followed by the local module code (/home/module/[service.js).  args                         will then be appended in process.argv[2:]

microService.exit(exitCode) ⇒ Promise.<MicroService>
Instructs the VM to halt execution as quickly as possible
Kind: instance method of MicroService
Returns: Promise.<MicroService> - A promise that will be resolved upon successful exit

Param
Type
Description

exitCode
integer
The exit code

"start"
Event indicating when the MicroService has successfully started.
Triggers when the MicroService has been inititialized and the environment is ready
to receive event listeners.  This is called after the Node.js environment has been set
up, but before the micro service JavaScript code has been executed.  It is safe to add any event
listeners here, but emitted events will not be seen by the JavaScript service until its code
has been run.  The JavaScript code should emit an event to let the host know that it is ready
to receive events.
Kind: event emitted by MicroService

"exit" (exitCode)
Event indicating when the MicroService has successfully exited.
Triggers when the MicroService has exited gracefully.  The MicroService is no longer
available and is shutting down.  Called immediately before the MicroService exits.  This
is a graceful exit, and is mutually exclusive with the 'error' event.  Only one of either the exit event
or error event will be triggered from any MicroService.
A single parameter is the exit code emitted by the Node.js process
Kind: event emitted by MicroService

Param
Type
Description

exitCode
integer
The exit code emitted by the Node.js process

"error" (errorMessage)
Event indicating when the MicroService has exited unexpectedly.
Triggers on any errors that may cause the MicroService to shut down unexpectedly.  The
MicroService is no longer available and may have already crashed.
Triggered upon an exception state.  This is an unexpected exit, and is mutually exclusive with the
'exit' event.  Only one of either the exit event or error event will be triggered from
any MicroService.
A single parameter is the error message of the thrown exception
Kind: event emitted by MicroService

Param
Type
Description

errorMessage
string
The error message of the thrown exception

"newListener" (eventName, listener)
The MicroService instance will emit its own 'newListener' event before a listener is added
to its internal array of listeners.
Listeners registered for the 'newListener' event will be passed the event name and a reference to
the listener being added.
The fact that the event is triggered before adding the listener has a subtle but important side
effect: any additional listeners registered to the same name within the 'newListener' callback will
be inserted before the listener that is in the process of being added.
Kind: event emitted by MicroService

Param
Type
Description

eventName
string
The name of the event being listened for

listener
function
The event handler function

"removeListener" (eventName, listener)
The 'removeListener' event is emitted after the listener is removed.
Kind: event emitted by MicroService

Param
Type
Description

eventName
string
The name of the event being listened for

listener
function
The event handler function

MicroService.STATE_INIT : string
State indicating that MicroService is initializing
Kind: static property of MicroService
Read only: true

MicroService.STATE_RUNNING : string
State indicating that MicroService is running
Kind: static property of MicroService
Read only: true

MicroService.STATE_DEFUNCT : string
State indicating that the MicroService is no longer valid (either exited normally or failed)
Kind: static property of MicroService
Read only: true

MicroService.defaultMaxListeners : integer
The default number of max listeners allowed
Kind: static property of MicroService
Read only: true

bundle(bundleName, [options]) ⇒ string
Generates a URL for fetching from the LiquidCore bundle.  If app is compiled in DEBUG mode, this
will attempt to first download from the development server.  If the server is unreachable, then
it will default to the packaged bundle.  In release mode, this will always reference the packaged
bundle.
Kind: global function
Returns: string - A service URL for use in the MicroService constructor

Param
Type
Description

bundleName
string
The name of the bundled file (ex. 'index' or 'example.js')

[options]
Object
Development server options

[options.port]
integer
The port on which the server resides

[options.serverURL]
string
An alternate server URL

[options.requestParams]
Object
An object containing key-value pairs to be added to the GET request

serviceFromInstanceId(instanceId) ⇒ MicroService
Each MicroService instance is mapped to a unique string id.  This id can be serialized
in UIs and the instance retrieved by a call to this method.
Kind: global function
Returns: MicroService - The associated MicroService or undefined if no such service is active.

Param
Type
Description

instanceId
string
An id returned by the instanceId property

uninstall(serviceURI)
Uninstalls the MicroService from this host, and removes any global data associated with the
service.
Kind: global function

Param
Type
Description

serviceURI
string
The URI of the service (should be the same URI that the service was started with).

I converted to markdown (jsdoc-to-markdown project is great!)

The file level documentation did not get generated.  Included here:
React Native LiquidCore API
This is the API for interacting with LiquidCore from React Native. Although both LiquidCore and React Native use JavaScript as their programming language, and npm to distribute, they utlize separate JavaScript context groups on iOS and completely different core JavaScript implementations on Android. Thus, they cannot directly run the same code. This API enables launching a LiquidCore MicroService instance from React Native, and communicating through a messaging wormhole.
Sample integration of the example.js micro service with a simple React Native app:
 import React from 'react';
 import { StyleSheet, Text, View } from 'react-native';
 import { MicroService, bundle } from 'liquidcore-rn';

 const ExampleBundle = bundle('example.js');
 let service = new MicroService(ExampleBundle);
 let hello = {
   text: 'Loading ...'
 };
 service.start().then(()=>{
   service.on('ready', () => service.emit('ping'))
   service.on('pong',  payload => { hello.text = payload.message })
 })

 export default class App extends React.Component {
   render() {
     return (
       <View style={styles.container}>
         <Text>{hello.text}</Text>
       </View>
     );
   }
 }
 const styles = StyleSheet.create({
   container: {
     flex: 1,
     backgroundColor: '#fff',
     alignItems: 'center',
     justifyContent: 'center'
   }
 });


Ledger not working with nity/RSK/Moneyonchain after last firmware update

If you are reporting a problem with Nifty Wallet, please include the following information:
Ledger stop working on nifty to sign transactions on moneyonchain platform.
What browser and version did you use?
Chrome Version 81.0.4044.138 (Official Build) (64-bit) Other versions have the same issue
What operating system did you use?
The problem exist in ubuntu and windows 10
Do you have screenshots showing the problem?
yes
What is your issue?
Transactions fail, the ledger never asks to sign the transaction, this was working before the upgrade. I am able to send tokens from nifty but I am not able to sign transactions using the moneyonchain platform. The problem only exist using ledge/nifty after the firmware upgrade. If i use trezor or a native nifty wallet

there is no problem.

Ledger firmware update change the contract data allowed in ledger rsk app to NOT allowed. Changing the value in rsk ledger app to contact data allowed fixes the problem


Review and update Requirements Documentation

Describe the Task
Review and update the METplus Components Python Requirements Documentation and the requirements.txt file for the upcoming release to ensure that they are current for the release documentation.  These will likely be used by NCO for WCOSS2 installations.
Time Estimate
<1 day
Sub-Issues
Consider breaking the task down into sub-issues.

[ ] Add a checkbox for each sub-issue here.

Relevant Deadlines
METdataio-2.0.0 release
Funding Source
TBD - Tara will provide
Define the Metadata
Assignee

[x] Select engineer(s) or no engineer required
[x] Select scientist(s) or no scientist required

Labels

[x] Select component(s)
[x] Select priority
[x] Select requestor(s)

Projects and Milestone

[x] Select Repository and/or Organization level Project(s) or add alert: NEED PROJECT ASSIGNMENT label
[x] Select Milestone as the next official version or Future Versions

Define Related Issue(s)
Consider the impact to the other METplus components.

[x] METplus, MET, METdataio, METviewer, METexpress, METcalcpy, METplotpy

Task Checklist
See the METplus Workflow for details.

[ ] Complete the issue definition above, including the Time Estimate and Funding Source.
[ ] Fork this repository or create a branch of develop.
Branch name: feature_<Issue Number>_<Description>
[ ] Complete the development and test your changes.
[ ] Add/update log messages for easier debugging.
[ ] Add/update unit tests.
[ ] Add/update documentation.
[ ] Add any new Python packages to the METplus Components Python Requirements table.
[ ] Push local changes to GitHub.
[ ] Submit a pull request to merge into develop.
Pull request: feature <Issue Number> <Description>
[ ] Define the pull request metadata, as permissions allow.
Select: Reviewer(s) and Linked issues
Select: Repository level development cycle Project for the next official release
Select: Milestone as the next official version
[ ] Iterate until the reviewer(s) accept and merge your changes.
[ ] Delete your fork or branch.
[ ] Close this issue.

I don't know if METdbLoad is included in this, but these are the packages used, and the versions in requirements.txt are the versions I am using:
lxml
numpy
pandas
pymysql

I added METdataio for lxml, pandas, pymysql, and numpy

replaced previous requirements.txt with a more minimal version where numerous unused packages are no longer included.


is this project dead ?, Do we need to fork it.

Even trivial updates like dependency PRs are not happening.
Is current passive situation expected to improve :
The existing people with commit rights becoming more active, or adding more people ?

No, but I was not able to maintain it for a while for personal reasons. But now I am able to keep working on it.

There are still a lot of PRs open without reply comments

@38. if you are not the only mantainer, there are other guys in a team whom you may delegate some abilities.
Or you could take some participants from community.


Spacer includes axis

So that the spacer knows which axis to use size on.

We can cancel this, I ended up using a square box for padding. Unless we think it could be handy in the future....


Shift + Up doesn't function

Stock installation from both the 7z and Zip files 'Shift + Up' (navigate up a directory) is either disabled or doesn't function.

@rparolin That also worked for me! Thanks
@bliker Any reason this hasn't been fixed?

Bump

Given that this feature is "well advertised" everywhere (on the companion site, README), this should probably be on high priority. @MartiUK

FYI. The http://cmder.net/ page still shows Shift + Up in the Keyboard Shortcuts section.


Manifest version 2 is deprecated, and support will be removed in 2023

Google Chrome | 118.0.5966.0 (Official Build) dev (arm64)
Revision | a8e03c20d55aff8935c0460d210be0f20720f8e9-refs/branch-heads/5966@{#1}
OS | macOS Version 13.6 (Build 22G109)
JavaScript | V8 11.8.68
User agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

commit fb64139b59cf8024f494c3448b117047113e4f8d (HEAD -> main, origin/main, origin/HEAD)
Merge: eff6e4f 642e5de
Author: dimden<EMAIL_ADDRESS>Date:   Thu Aug 24 18:30:36 2023 +0300

    Merge pull request #51 from haxibami/main

    Improved startup process

Nothing to fix

OK. Sorry for the noise.
Truly appreciate the great work with this extension.


config: Remove redundant OPTIONAL from Labels description

While the other annotations references (e.g. here) use the “This OPTIONAL property…” pattern, config.md puts the OPTIONAL/REQUIRED-ness in the same line as the property name (while manifest.md does not).  My preferred larger fix would be to follow runtime-spec and consistently declare OPTIONAL/REQUIRED-ness in the same line as the property name, but that's a bigger change.  This commit just removes the redundant OPTIONAL from the description body.
Spun off from here.

LGTM


A little housekeeping

Description of request
Howdy again, still learning about the project in increments :)
My OCD is kicking in. Do you mind if I do some minor reorganization? There's a couple things like...

moving community guidelines to the docs directory
adjust .gitignore to include cargo.lock and ignore some other misc stuff like .DS_Store files, IDE related artifacts, etc.
Are directories like huak-py and the .cargo currently in use?

No problem if you'd prefer to keep it as is, I understand this is your brain-child and I can resepct your decsion.

Hi! OCD is always welcome here lol

moving community guidelines to the docs directory

If you mean CODE_OF_CONDUCT.md I created it from the GitHub UI. I also think it's pretty standard at root. architecture.md however should probably end up in ./docs. If you disagree I'm open to discuss it. I just want what's standard.

adjust .gitignore to include cargo.lock and ignore some other misc stuff like .DS_Store files, IDE related artifacts, etc.

For this one I actually read about this when I started Huak. Are you sure we don't want to check it in? Since huak is ultimately a binary I'd think we want to. I was thinking about Huak's library and potential future crates, but I wasn't sure what's best here.

Are directories like huak-py and the .cargo currently in use?

For huak-py, no, but I decided to add it this early on because it could be an isolated good-first-issue for some people interested in python-rust interop/PyPI distribution (like myself). I'm okay with trashing it until we need it, but IMO it does kind of provide some value right now in that it shows our intent with PyPI huak distribution.
For .cargo, yes, and there's some more info on that in CONTRIBUTING.md. Basically our tests run synchronously to use one venv. I reaaallly badly want this to be less hacky at some point soon, but that's part of prioritization.
This project is meant to be open to criticism. I'm from the Python space. So ideally Huak aligns with Rust standards -- which I'm in the process of learning.

If you mean CODE_OF_CONDUCT.md I created it from the GitHub UI.

yeah, GitHub kinda recommends either the /, .github, or docs in step 3 here. I usually add to docs to get it out of the way but root is also works.

Are you sure we don't want to check it in?

Sorry, I didn't phrase that well. we DO want to add it to vcs (remove from .gitignore)

For .cargo, yes, and there's some more info on that in CONTRIBUTING.md.

oh, this is cool! the [env] section is something that wasn't "stable" when I first 'learned' rust so i didn't know about that. Ignore this then, sounds like huak-py has plans as well.
Very cool, i'll submit a PR soon(ish). Appreciate your patience!

yeah, GitHub kinda recommends either the /, .github, or docs...

let's do it then!

we DO want to add it to vcs (remove from .gitignore)

oh wow that's my mistake then. i must have originally decided to exclude it because I'd be distributing the Huak lib. but i dont think that's priority at this point. the bin is all we care to distribute this early on.
I guess I just wanted to create clean enough APIs to distrib at some point. I want a huak from PyPI to be available at some point, allowing you to lean on huak for some project metadata and other cool stuff (if it makes sense).

Very cool, i'll submit a PR soon(ish).

Thanks! Really appreciate it.


nixos/jupiter: add a kernel jsFile option

Motivation for this change
Required in order to get haskell syntax highlighting when using ihaskell as a jupyter kernel.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Relates to https://github.com/gibiansky/IHaskell/issues/920 and https://github.com/gibiansky/IHaskell/pull/1027

@aborsu / @sveitser: Does this seems fine to any of you?

I have never used this functionality of jupyter. Happy to test it if you can provide an example.

@sveitser Here's the config I use:
  services.jupyter.enable = true;
  services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
  services.jupyter.kernels = {
    python3 = let
      env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
        ipykernel
        pandas
        scikitlearn
      ]));
    in {
      displayName = "Python 3 for machine learning";
      argv = [
        "${env.interpreter}"
        "-m"
        "ipykernel_launcher"
        "-f"
        "{connection_file}"
      ];
      language = "python";
      logo32 = env + "/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
      logo64 = env + "/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
    };

    haskell = let
      callPackage = lib.callPackageWith pkgs;
      ihaskell = ./ihaskell-with-pkgs-unstable {};
      ihaskellEnv = ihaskell.ihaskellEnv;
      ihaskellWrapperSh = ihaskell.ihaskellWrapperSh;

    in {
      displayName = "Haskell";
      argv = [
        "${ihaskellWrapperSh}/bin/ihaskell-wrapper"
        "kernel"
        "--ghclib"
        "${ihaskellEnv}/lib/ghc-${ihaskellEnv.version}"
        # "--debug"
        "+RTS"
        "-M3g"
        "-N2"
        "-RTS"
        "{connection_file}"

      ];
      jsFile = ihaskell.ihaskellJsFile;
      logo64 = ihaskell.ihaskellLogo64;
      language = "haskell";
    };
  };

with ./ihaskell-with-pkgs-unstable defined as:
{ lib }:
  let
    ihaskellNixpkgsCfg = {
      # allowBroken = true;

      packageOverrides = super: let self = super.pkgs; in
        let
            # See pkgs/development/haskell-modules/lib.nix for available helpers.
            overrideCabal = super.haskell.lib.overrideCabal;
            unmarkBroken = drv: super.haskell.lib.overrideCabal drv (drv: { broken = false; });
            doJailbreak = super.haskell.lib.doJailbreak;
            overrideSrc = super.haskell.lib.overrideSrc;
            addSetupDepend = super.haskell.lib.addSetupDepend;
        in rec
      {
        haskell = super.haskell // {
          packageOverrides = self: super: rec {
            /*
            haskell-src-meta = super.haskell-src-meta.overrideScope (self: super: { haskell-src-exts = self.haskell-src-exts_1_21_0; });
            ihaskell-charts = doJailbreak (unmarkBroken super.ihaskell-charts);
            Chart = overrideCabal super.Chart (drv: {
              broken = false;
              jailbreak = true;
              # preConfigure = ''
              #   sed -i ihaskell-charts -E \
              #     -e 's#(lens[^<]+)< *4.17#\1<4.50#g'
              # '';
            });
            */
            static-canvas = doJailbreak (unmarkBroken super.static-canvas);

            Chart = self.callHackageDirect {
              pkg = "Chart";
              ver = "1.9.1";
              sha256 = "0aiq9r78yhma1xzhwl2xlzwqb2c59k6a4jjvdpninwm6lngac3s7";
            } {};
            Chart-cairo = self.callHackageDirect {
              pkg = "Chart-cairo";
              ver = "1.9.1";
              sha256 = "0ambbkxbndjqxr0c4pysn87b3z0f8zpgvldj4qjbyazadna9k807";
            } {};
          };
        };
      };
    };
    # ihaskellNixpkgs = pkgs;

    ihaskellNixpkgsSrc = builtins.fetchTarball {
      url = "https://github.com/NixOS/nixpkgs-channels/archive/2df17ecf1b748379a349f763f376bad173bff83b.tar.gz";
      sha256 = "10s6p0i3g4jkmdgfh3zb73baapks6gwcfl2p9hc3j490ly2wa0kv";
    };
    ihaskellNixpkgs = import "${ihaskellNixpkgsSrc}" { config = ihaskellNixpkgsCfg; };

    ihaskellCleanSource = name: type: let
      baseName = baseNameOf (toString name);
    in lib.cleanSourceFilter name type && !(
      (type == "directory" && (builtins.elem baseName [ ".stack-work" "dist"])) ||
      builtins.any (lib.flip lib.hasSuffix baseName) [ ".hi" ".ipynb" ".sock" ".yaml" ".yml" ]
    );
    ihaskellSourceFilter = src: name: type: let
      relPath = lib.removePrefix (toString src + "/") (toString name);
    in ihaskellCleanSource name type && !( builtins.any (lib.flip lib.hasPrefix relPath) [
      "notebooks" "demo" "docker" "image"
    ]);

    ihaskellRepoLocal = builtins.filterSource (ihaskellSourceFilter ../../IHaskell) ../../IHaskell;
    ihaskellRepoRemote = builtins.fetchTarball {
      url = "https://github.com/jraygauthier/IHaskell/archive/534c0ac45544d7a79c07027678a04eb4b40f2bc3.tar.gz";
      sha256 = "07x0y7w2iscs9607shrxsx9iyjgjg2pcq8fdzrx43iipn4376q9a";
    };

    # ihaskellRepo = ihaskellRepoLocal;
    ihaskellRepo = ihaskellRepoRemote;

    ihaskellSystemPackages = pkgs: [
    ];

    ihaskellPackages = hps: with hps; [
      ihaskell-blaze
      ihaskell-diagrams
      ihaskell-charts

      # [ihaskell-display: IHaskell display instances for basic types
      # ](http://hackage.haskell.org/package/ihaskell-display)
      # > Deprecated. in favor of ihaskell
      # ihaskell-display

      # Error: HList
      # ihaskell-aeson
      # Error: HList
      # ihaskell-rlangqq
      ihaskell-gnuplot
      ihaskell-graphviz
      ihaskell-hatex
      ihaskell-juicypixels
      ihaskell-magic
      # Error: No instance for (Control.Monad.Fail.MonadFail Axis)
      # ihaskell-plot
      ihaskell-static-canvas
      /*
      # Compiles but takes a lot of time to do so.
      # Also:
      # [ihaskell-widgets runs with no error, however, displays no widget ·
      # Issue #870 · gibiansky/IHaskell](https://github.com/gibiansky/IHaskell/issues/870)
      ihaskell-widgets
      */
    ];

    ihaskellRelease86 = (import "${ihaskellRepo}/release-8.6.nix" {
      nixpkgs = ihaskellNixpkgs;
      packages = ihaskellPackages;
      systemPackages = ihaskellSystemPackages;
    });
  in
ihaskellRelease86

There is ihaskell's *.js file: https://github.com/gibiansky/IHaskell/blob/master/html/kernel.js

For the curious, here's the PR that added passthrough for ihaskell release https://github.com/gibiansky/IHaskell/pull/1027

Thanks for your work ! Will look into it this week end probably.
Btw, I've recently tried https://github.com/tweag/jupyterWith and was really impressed how well it worked.

@teto Nice, thanks for the ref. I wasn't aware of this jupyterWith project. This is pretty impressive.

@teto: Just rebased on latest. Still interested in testing this?

It's a bit hard to test and the jupyterWith project seemed so much better than nixpkgs implementation that I kinda lost interest (had developed some local jupyter improvements as well). I hope they merged theirs. Eventually I can merge this as is if it passes the tests. Low-risk PR.

Alright.
Should be building fine now:
$ nix-shell -p nix-review --run "nix-review rev HEAD"
$ git fetch --force https://github.com/NixOS/nixpkgs master:refs/nix-review/0
$ git worktree add /home/rgauthier/.cache/nix-review/rev-c4ad72bcb8e822bd7fe5aa978f6d35b3b9dae587/nixpkgs a4083fb4551ce6dda68ac684a2ca951d2fa3ab72
Preparing worktree (detached HEAD a4083fb4551)
HEAD is now at a4083fb4551 Merge pull request #67236 from Chiiruno/dev/general
$ nix-env -f /home/rgauthier/.cache/nix-review/rev-c4ad72bcb8e822bd7fe5aa978f6d35b3b9dae587/nixpkgs -qaP --xml --out-path --show-trace
$ git merge --no-commit c4ad72bcb8e822bd7fe5aa978f6d35b3b9dae587
Automatic merge went well; stopped before committing as requested
$ nix-env -f /home/rgauthier/.cache/nix-review/rev-c4ad72bcb8e822bd7fe5aa978f6d35b3b9dae587/nixpkgs -qaP --xml --out-path --show-trace --meta
$ nix build --no-link --keep-going --max-jobs 4 --option build-use-sandbox true -f /home/rgauthier/.cache/nix-review/rev-c4ad72bcb8e822bd7fe5aa978f6d35b3b9dae587/build.nix
[8 built, 676 copied (3620.9 MiB), 823.9 MiB DL]
3 package were build:
jupyter sage sageWithDoc

Using jupiterWith myself nowadays.


Outcome.Inform on failed outcome with no observations returns a success outcome

Here's my test case:
var outcome = Outcome<string>.Failure;
Assert.False(outcome.WasSuccessful);

var newOutcome = outcome.Inform(x => new OtherShapeForObservations(x));
Assert.False(newOutcome.WasSuccessful);  //this assertion will fail

In which case, the value of newOutcome.WasSuccessful will be true.  When "outcome" contains an observation, then Inform behaves as expected and the initial value of WasSuccessful is preserved.

I'll have a fix for it later today.

Fixed in version <IP_ADDRESS>.


Let user crop images after selecting in the "Product photos" tab

Let users crop images after selecting in the "Product photos" tab. This needs to be done with the server side api, a bit like in #2092

@Shritesh99 can you assign this issue to yourself. Thanks.

@teolemon maybe could be closed with the last PR...

@deniger I just discussed with @stephanegigandet and we agreed it would be way more sane for server space to have server-side cropping, rather than filling the hard-drives with duplicates.

Fixed by @deniger


Update dev-c7 docs

Move line on edm fonts to its own section
Add additional user settings for bash (login) profile
Add more titles to break up steps
Add 'insufficient UIDs/GIDs' to known issues

Looks Good, Thanks.


[Question] Could make GetValues() and GetNames() faster if we generate and return static arrays

Hi @andrewlock, I was thinking we can improve the speed for GetValues and GetNames by generating static arrays, but with the drawback of the initial allocation for these arrays (in case you never call these methods), while now if you call GetValues or GetNames multiple times you allocate a new array each time.
    public enum Color
    {
        Red,
        Green,
        Blue
    }

    private static Color[] ColorsValues = new[]
    {
        Color.Red,
        Color.Green,
        Color.Blue
    };

    private static string[] ColorsNames = new[]
    {
        nameof(Color.Red),
        nameof(Color.Green),
        nameof(Color.Blue)
    };

    public static Color[] GetValues()
    {
        return ColorsValues;
    }

    public static string[] GetNames()
    {
        return ColorsNames;
    }

I think this was the behavior originally, but was changed to return a new array each time as you don't know what the consumer of said array will do with it. While you can't resize it, you can certainly modify its values via the indexer. It's thus safer to always return a new array and let the consumer cache it.


LuxCore hangs when using SAMPLECOUNT AOV with Bidir

When I add the SAMPLECOUNT AOV while using Bidir, only a few samples appear and rendering speed is at 0 samples/sec, but CPU load at 100%.
If I try to stop the render, Blender/luxcoreui hangs completely and has to be killed.
Removing the SAMPLECOUNT output fixes the problem.

bidir_hangs.blend.zip
bidir_hangs.cfg.zip

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Could this explain non-working adaptivity or is this just bad aov?

Could this explain non-working adaptivity or is this just bad aov?

Might be related. Anyway LuxCore shouldn't hang/crash, I can set other AOVs that aren't supported by Bidir and LuxCore just ignores them.

BiDir support both SAMPLECOUNT and CONVERGENCE AOVs: https://github.com/LuxCoreRender/LuxCore/blob/cd346b2aa97f04efaee77a121f4e78f7ca81d6ef/src/slg/engines/bidircpu/bidircputhread.cpp#L48
And they are working fine here with your test scene:

@Theverat can you still reproduce the problem with the latest sources ?

can you still reproduce the problem with the latest sources ?

Yes, on Windows.
But not on Linux.
But I discovered another problem on Linux: when I open the Film Outputs editor (instead of the Channels window) and click "Show" on the SAMPLECOUNT output, LuxCore exits with error
RUNTIME ERROR: Unknown film output type in Film::GetOutput<float>(): 27

But I discovered another problem on Linux: when I open the Film Outputs editor (instead of the Channels window) and click "Show" on the SAMPLECOUNT output, LuxCore exits with error
RUNTIME ERROR: Unknown film output type in Film::GetOutput<float>(): 27

This is just a bug in LuxCoreUI: the SAMPLECOUNT data type is "unsigned int", not "float". I fixed this problem.

I can no longer reproduce this problem, even on Windows.


Disk configuration for HANA with premium storage is not correct it seems

[Enter feedback here]
Disk configuration for HANA with premium storage is not correct it seems specially for /hana/data and /hana/log
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 13ecd5d2-9d58-1d74-8e27-22754055120c
Version Independent ID: 3e93d9d3-5341-0e3c-a15c-85906fc0b5b3
Content: SAP HANA Azure virtual machine storage configurations
Content Source: articles/virtual-machines/workloads/sap/hana-vm-operations-storage.md
Service: virtual-machines-linux
GitHub Login: @msjuergent
Microsoft Alias: juergent

@prasroy
Thanks for the feedback! We are currently investigating and will get back on this.

@msjuergent
Can you please check and add your comments on this doc update request as applicable.

@prasroy
What in specific seems not to be correct in the document?

I am just curious how 4 x P6 would be enough for a data disk when SAP's high level (Not a official one)  recommendation to have at least two dimes of RAM size as data disk. I see from IOPS point of view it will be definitely  green for HWCCT checks but from data stands I think they are too small. Finally I agree that these storage configurations are just not written in stone but may be some customer/partner will take it as base line and as a recommendations from Microsoft.

VM SKU
RAM
Max. VM I/OThroughput
/hana/data
Maximum burst throughput
IOPS
Burst IOPS

M32ts
192 GiB
500 MBps
4 x P6
680 MBps
960
14,000

M32ls
256 GiB
500 MBps
4 x P6
680 MBps
960
14,000

M64ls
512 GiB
1,000 MBps
4 x P10
680 MBps
2,000
14,000

The same applies for log volume as well.

Hello Prasenjit, we are following the capacity recommendations that SAP stated in this paper: https://www.sap.com/documents/2015/03/74cdb554-5a7c-0010-82c7-eda71af511fa.html . As for volume of /hana/data, we try to be at least one time the memory as articulated in this statement: "the recommended size of the data volume of a given SAP HANA system is equal to the total memory required for that system, according to the result of the memory sizing".
For /hana/log we are following this able out of the same document:
[systems ≤ 512GB ]   Size redolog= 1/2x RAM
[systems > 512GB ]   Size redolog(min)=512GB
Examples:
128 GB system=> Size redolog= 64 GB
256 GB system => Size redolog= 128 GB
512 GB system=> Size redolog = 256GB
1 TB system=> Size redolog(min) =512 GB
2TB system=> Size redolog(min) = 512 GB
4TB system=> Size redolog(min) = 512 GB
Hope that explains

@msjuergent Thanks for sharing the details.

@msjuergent - Thanks a lot for clarifying.

Closing the issue


Update CHANGELOG preliminary 19.03.13 release

Update CHANGELOG.md with what will be included for 19.03.13.
Desktop needed a changelog as they'll be shipping 19.03.13-beta2.

Closing this as it's been superseded by #658


[COPS-3222] Add pod replace test to HDFS TLS

This PR adds a simple pod replace test for TLS-enabled HDFS.

Thanks, for the explanations. I'm used to frameworks where the environment is set up in a separate (setUp) function, and the test functions themselves are free to leave a mess behind.

Thanks, for the explanations. I'm used to frameworks where the environment is set up in a separate (setUp) function, and the test functions themselves are free to leave a mess behind.

The fixtures in Pytest do allow this, but these are typically run at a module level, and not per test -- mostly due to the time required to uninstall and reinstall the services.

Re description question: It's fine if there are resource reservations between launches, as long as any resource reservations occur before the tasks that use them.


Added new VM examples

@germa89 :
Added VM examples VM13, VM14, VM291, VM295 and VM299.

The LaTeX equations are coming in a commit

@clatapie
I have corrected VM5 title and added documentation sections. Please review it and merge with the main branch. Thanks !

The issue should be fixed once https://github.com/ansys/pymapdl/pull/2160 will be merged.


WIP master <- develop

Merge the develop branch into the master branch and deploy

Build log
Preview build with this PR (commit): https://301-280922552-gh.circle-artifacts.com/0/index.html


Xcode UI tests failing because of "Lost connection to test manager service"

With the following log (just the end) :
15:24:21.900 XCTRunner[7229:25382] -[AuthenticationUITests testChangeUsernameWillNotShowErrors] started activity <XCActivityRecord: 0x7fb98c964810> 2016-09-11 13:24:21 +0000: Synthesize event
15:24:21.901 testmanagerd[4718:20476] -[XCTestManager allowUITestControlForPID:] 7229 vs 7229
15:24:21.901 testmanagerd[4718:20476] Getting screenshot
15:24:21.944 testmanagerd[4718:20476] systemUIOrientation <AXUIElement 0x7f97d9d253d0> {pid=0}[kAXSpringBoardApplication]: 0 <AXUIElement 0x7f97d9ff8730> {pid=3148}
15:24:21.944 testmanagerd[4718:20476] systemUIOrientation <AXUIElement 0x7f97d9ff8730> {pid=3148}[kAXApplicationOrientationAttribute]: 0 1
15:24:21.945 testmanagerd[4718:20476] Got screenshot, rotating to system UI orientation 1
15:24:21.945 testmanagerd[4718:20476] systemUIOrientation <AXUIElement 0x7f97d9d253d0> {pid=0}[kAXSpringBoardApplication]: 0 <AXUIElement 0x7f97d9e00df0> {pid=3148}
15:24:21.945 testmanagerd[4718:20476] systemUIOrientation <AXUIElement 0x7f97d9e00df0> {pid=3148}[kAXApplicationOrientationAttribute]: 0 1
15:24:21.968 testmanagerd[4718:20476] Replying with data 0x7f97d9e00df0 (113745 bytes), error (null)
15:24:21.969 testmanagerd[4718:20476] -[XCTestManager allowUITestControlForPID:] 7229 vs 7229
15:24:21.969 testmanagerd[4718:20476] Typing
15:24:21.972 testmanagerd[4718:25546] Key event '' sent.
15:24:22.017 XCTRunner[7229:25554] Got AX notification 4002
15:24:21.987 testmanagerd[4718:20381] AX Notification 1001
15:24:21.988 testmanagerd[4718:20381] AX Notification 1001
15:24:21.988 testmanagerd[4718:20381] AX Notification 1001
15:24:21.988 testmanagerd[4718:20381] AX Notification 1001
15:24:22.016 testmanagerd[4718:20381] AX Notification 1005
15:24:22.017 testmanagerd[4718:20381] AX Notification 1001
15:24:22.017 testmanagerd[4718:20381] AX Notification 1001
15:24:22.017 testmanagerd[4718:20381] AX Notification 4002
15:24:22.018 testmanagerd[4718:20381] Got user testing notification with payload {
    ModifiedInput = "\b";
    ModifierFlags = 0;
    UnmodifiedInput = "\b";
    event = KeyEventComplete;
}
15:24:22.018 testmanagerd[4718:20381] Key event '' completed after 0.0493s.
15:24:22.021 testmanagerd[4718:20381] AX Notification 1001
15:24:22.056 XCTRunner[7229:25554] Got AX notification 4002
15:24:22.074 XCTRunner[7229:25554] Got AX notification 4002
15:24:22.035 testmanagerd[4718:25694] Key event '' sent.
15:24:22.055 testmanagerd[4718:20381] AX Notification 1005
15:24:22.055 testmanagerd[4718:20381] AX Notification 1001
15:24:22.055 testmanagerd[4718:20381] AX Notification 4002
15:24:22.056 testmanagerd[4718:20381] Got user testing notification with payload {
    ModifiedInput = "\b";
    ModifierFlags = 0;
    UnmodifiedInput = "\b";
    event = KeyEventComplete;
}
15:24:22.057 testmanagerd[4718:20381] Key event '' completed after 0.0383s.
15:24:22.057 testmanagerd[4718:20381] AX Notification 1001
15:24:22.072 testmanagerd[4718:20381] AX Notification 1005
15:24:22.073 testmanagerd[4718:20381] AX Notification 1001
15:24:22.074 testmanagerd[4718:20381] AX Notification 4002
15:24:22.105 XCTRunner[7229:25398] Connection to testmanagerd interrupted.
15:24:22.075 testmanagerd[4718:20381] Got user testing notification with payload {
    ModifiedInput = "\b";
    ModifierFlags = 0;
    UnmodifiedInput = "\b";
    event = KeyEventComplete;
}
15:24:22.122 xcodebuild[4550:20143] Test operation failure: Lost connection to test manager service.
15:24:22.123 xcodebuild[4550:20143] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=4 "Lost connection to test manager service." UserInfo={NSLocalizedDescription=Lost connection to test manager service.} didCancel: 1
15:24:22.169 xcodebuild[4550:25107] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Registered for sim device notification, got token 12
15:24:22.169 xcodebuild[4550:25107] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Unregistering for sim device notification with token 12
15:24:22.169 xcodebuild[4550:25107] Sim iPhone 6s is booted (state = 3)
15:24:22.169 xcodebuild[4550:25107] Calling -[SimDevice getenv:error:] for TESTMANAGERD_SIM_SOCK
15:24:22.186 xcodebuild[4550:25107] Returning /private/tmp/com.apple.launchd.aPHQ9lapYk/com.apple.testmanagerd.unix-domain.socket for TESTMANAGERD_SIM_SOCK
15:24:22.186 xcodebuild[4550:25107] Sim iPhone 6s has testmanagerd socket at /private/tmp/com.apple.launchd.aPHQ9lapYk/com.apple.testmanagerd.unix-domain.socket
15:24:22.186 xcodebuild[4550:25107] Connected to testmanagerd socket for Sim iPhone 6s

I dont have such problems in local. The ratio of builds failing becausel of a test failing is more or less between 10 or 20%. It's the first time I track down the problem to the origin using logs exported.

Did you try to run the test locally with the Bitrise CLI?

No. Locally I just use Cmd+U.
How can I do that ?

https://www.bitrise.io/cli

Yes it works locally. Today I had 2 builds that failed at the same time about the same issue. It happened in the same test. Then when I rebuild, both are ok. Earlier today it was the same test failing. The previous day I did not checked.
The only think particular in that test, is that I clear a text field that way :

It seems the test crash at this moment because of "Lost connection to test manager service"

Indeed might be code related - as I wrote in the other ticket you created:
... this might be an Xcode issue, which can be a combination of Xcode and your code (see: https://bitrise-io.github.io/devcenter/ios/known-xcode-issues/#possible-solutions ). This means that usually there's some kind of code workaround (adding sleep, etc. as you can see in the list I linked), or an Xcode version change can also help (but not always, there are known issues in Xcode present for quite a long time).

I've got the same error (Connection to testmanagerd interrupted) but in another test. It happens when a text is typed (maybe not related to this) :
15:00:40.825 testmanagerd[7058:35011] Typing<EMAIL_ADDRESS>15:00:40.826 testmanagerd[7058:35002] Key event 'i' sent.
15:00:40.839 XCTRunner[9623:35794] Got AX notification 4002
15:00:40.836 testmanagerd[7058:27991] AX Notification 1005
15:00:40.836 testmanagerd[7058:27991] AX Notification 1001
15:00:40.837 testmanagerd[7058:27991] AX Notification 4002
15:00:40.839 testmanagerd[7058:27991] Got user testing notification with payload {
    ModifiedInput = i;
    ModifierFlags = 0;
    UnmodifiedInput = i;
    event = KeyEventComplete;
}
15:00:40.840 testmanagerd[7058:27991] Key event 'i' completed after 0.0144s.
15:00:40.848 testmanagerd[7058:35738] Key event 'o' sent.
15:00:40.891 XCTRunner[9623:35794] Got AX notification 4002
15:00:40.890 testmanagerd[7058:27991] AX Notification 1005
15:00:40.890 testmanagerd[7058:27991] AX Notification 1001
15:00:40.891 testmanagerd[7058:27991] AX Notification 1001
15:00:40.891 testmanagerd[7058:27991] AX Notification 4002
15:00:40.891 testmanagerd[7058:27991] Got user testing notification with payload {
    ModifiedInput = o;
    ModifierFlags = 0;
    UnmodifiedInput = o;
    event = KeyEventComplete;
}
15:00:40.891 testmanagerd[7058:27991] Key event 'o' completed after 0.0439s.
15:00:40.922 testmanagerd[7058:27991] AX Notification 1001
15:00:40.923 testmanagerd[7058:27991] AX Notification 1005
15:00:40.923 testmanagerd[7058:27991] AX Notification 1001
15:00:40.924 testmanagerd[7058:27991] AX Notification 4002
15:00:40.925 testmanagerd[7058:27991] Got user testing notification with payload {
    ModifiedInput = s;
    ModifierFlags = 0;
    UnmodifiedInput = s;
    event = KeyEventComplete;
}
15:00:40.925 testmanagerd[7058:27991] Key event 's' completed after 0.0297s.
15:00:40.926 testmanagerd[7058:35738] Key event 's' sent.
15:00:40.925 XCTRunner[9623:34860] Got AX notification 4002
15:00:40.942 XCTRunner[9623:34860] Connection to testmanagerd interrupted.
15:00:40.944 testmanagerd[7058:35011] Test process connection invalidated or interrupted, closing test session <XCTestSession: 0x7fb8c2603d10>.
15:00:40.945 testmanagerd[7058:35011] Closed <XCTestSession: 0x7fb8c2603d10>, removing from (
    "<XCTestSession: 0x7fb8c2603d10>"
)
15:00:40.946 testmanagerd[7058:35011] Tearing down test session <XCTestSession: 0x7fb8c2603d10>.
15:00:40.946 testmanagerd[7058:35011] Considering exiting, 0 test sessions, 0 sessions with identifiers, 0 unidentified sessions...
15:00:40.946 testmanagerd[7058:35011] testmanagerd exiting, idle with no test activity.
15:00:40.941 testmanagerd[7058] <NSXPCConnection: 0x7fb8c2600cc0> connection from pid 9623: Warning: Exception caught during invocation of received message, dropping incoming message and invalidating the connection.
Exception: Unable to send string '-', only one gesture can be performed at a time.
15:00:40.947 assertiond[7053] assertion failed: 15G1004 13E230: assertiond + 15801 [3C808658-78EC-3950-A264-79A64E0E463B]: 0x1
15:00:40.949 testmanagerd[7058] testmanagerd exiting, idle with no test activity.
15:00:40.974 xcodebuild[6856:27570] Test operation failure: Lost connection to test manager service.
15:00:40.974 xcodebuild[6856:27570] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=4 "Lost connection to test manager service." UserInfo={NSLocalizedDescription=Lost connection to test manager service.} didCancel: 1
15:00:41.009 xcodebuild[6856:34718] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Registered for sim device notification, got token 16
15:00:41.009 xcodebuild[6856:34718] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Unregistering for sim device notification with token 16
15:00:41.010 xcodebuild[6856:34718] Sim iPhone 6s is booted (state = 3)
15:00:41.010 xcodebuild[6856:34718] Calling -[SimDevice getenv:error:] for TESTMANAGERD_SIM_SOCK
15:00:41.012 xcodebuild[6856:34718] Returning /private/tmp/com.apple.launchd.7qzOeuM9HB/com.apple.testmanagerd.unix-domain.socket for TESTMANAGERD_SIM_SOCK
15:00:41.012 xcodebuild[6856:34718] Sim iPhone 6s has testmanagerd socket at /private/tmp/com.apple.launchd.7qzOeuM9HB/com.apple.testmanagerd.unix-domain.socket
15:00:41.013 xcodebuild[6856:34718] Connected to testmanagerd socket for Sim iPhone 6s

Another build, running in the same time does not have the problem.

based on:

Exception: Unable to send string '-', only one gesture can be performed at a time.

I'd say it's most likely a timing issue - you should try to set the whole text in one step, or wait more between entering characters

It was actually send at the same time. cf :

15:00:40.825 testmanagerd[7058:35011] Typing<EMAIL_ADDRESS>
The earliest error message in the log is :

15:00:40.942 XCTRunner[9623:34860] Connection to testmanagerd interrupted.

I guess this is the root error while Unable to send string '-' is a consequence of loosing the connection ?
From another build later today :
16:22:22.238 testmanagerd[7263:36628] Typing<EMAIL_ADDRESS>16:22:22.238 testmanagerd[7263:36085] Key event 'i' sent.
16:22:22.247 XCTRunner[9831:36079] Got AX notification 4002
16:22:22.246 testmanagerd[7263:29061] AX Notification 1005
16:22:22.246 testmanagerd[7263:29061] AX Notification 1001
16:22:22.246 testmanagerd[7263:29061] AX Notification 4002
16:22:22.249 testmanagerd[7263:29061] Got user testing notification with payload {
    ModifiedInput = i;
    ModifierFlags = 0;
    UnmodifiedInput = i;
    event = KeyEventComplete;
}
16:22:22.249 testmanagerd[7263:29061] Key event 'i' completed after 0.0110s.
16:22:22.252 testmanagerd[7263:36628] Sleep for 0.0027s
16:22:22.256 testmanagerd[7263:36085] Key event 'o' sent.
16:22:22.278 XCTRunner[9831:36079] Got AX notification 4002
16:22:22.277 testmanagerd[7263:29061] AX Notification 1005
16:22:22.277 testmanagerd[7263:29061] AX Notification 1001
16:22:22.277 testmanagerd[7263:29061] AX Notification 1001
16:22:22.277 testmanagerd[7263:29061] AX Notification 4002
16:22:22.283 testmanagerd[7263:29061] Got user testing notification with payload {
    ModifiedInput = o;
    ModifierFlags = 0;
    UnmodifiedInput = o;
    event = KeyEventComplete;
}
16:22:22.283 testmanagerd[7263:29061] Key event 'o' completed after 0.0274s.
16:22:22.295 testmanagerd[7263:29061] AX Notification 1001
16:22:22.297 testmanagerd[7263:36085] Key event 's' sent.
16:22:22.308 XCTRunner[9831:36079] Got AX notification 4002
16:22:22.304 testmanagerd[7263:29061] AX Notification 1005
16:22:22.304 testmanagerd[7263:29061] AX Notification 1001
16:22:22.305 testmanagerd[7263:29061] AX Notification 4002
16:22:22.309 testmanagerd[7263:29061] Got user testing notification with payload {
    ModifiedInput = s;
    ModifierFlags = 0;
    UnmodifiedInput = s;
    event = KeyEventComplete;
}
16:22:22.309 testmanagerd[7263:29061] Key event 's' completed after 0.0125s.
16:22:22.311 testmanagerd[7263:36628] Sleep for 0.0018s
16:22:22.328 testmanagerd[7263:29061] AX Notification 1001
16:22:22.330 testmanagerd[7263:29061] AX Notification 1005
16:22:22.331 testmanagerd[7263:29061] AX Notification 1001
16:22:22.331 testmanagerd[7263:29061] AX Notification 1001
16:22:22.332 testmanagerd[7263:29061] AX Notification 4002
16:22:22.333 testmanagerd[7263:29061] Got user testing notification with payload {
    ModifiedInput = "-";
    ModifierFlags = 0;
    UnmodifiedInput = "-";
    event = KeyEventComplete;
}
16:22:22.333 testmanagerd[7263:29061] Key event '-' completed after 0.0181s.
16:22:22.332 XCTRunner[9831:36079] Got AX notification 4002
16:22:22.335 testmanagerd[7263:36085] Key event '-' sent.
16:22:22.340 testmanagerd[7263:29061] AX Notification 1001
16:22:22.346 XCTRunner[9831:36079] Connection to testmanagerd interrupted.
16:22:22.347 testmanagerd[7263:36628] Test process connection invalidated or interrupted, closing test session <XCTestSession: 0x7fce19e013e0>.
16:22:22.347 testmanagerd[7263:37070] Closed <XCTestSession: 0x7fce19e013e0>, removing from (
    "<XCTestSession: 0x7fce19e013e0>"
)
16:22:22.347 testmanagerd[7263:37070] Tearing down test session <XCTestSession: 0x7fce19e013e0>.
16:22:22.348 testmanagerd[7263:37070] Considering exiting, 0 test sessions, 0 sessions with identifiers, 0 unidentified sessions...
16:22:22.348 testmanagerd[7263:37070] testmanagerd exiting, idle with no test activity.
16:22:22.361 xcodebuild[7060:28642] Test operation failure: Lost connection to test manager service.
16:22:22.361 xcodebuild[7060:28642] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=4 "Lost connection to test manager service." UserInfo={NSLocalizedDescription=Lost connection to test manager service.} didCancel: 1
16:22:22.385 xcodebuild[7060:32264] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Registered for sim device notification, got token 16
16:22:22.386 xcodebuild[7060:32264] 6740E3BD-D0C3-49B1-87D4-4FCF7F342356: Unregistering for sim device notification with token 16
16:22:22.386 xcodebuild[7060:32264] Sim iPhone 6s is booted (state = 3)
16:22:22.386 xcodebuild[7060:32264] Calling -[SimDevice getenv:error:] for TESTMANAGERD_SIM_SOCK
16:22:22.387 xcodebuild[7060:32264] Returning /private/tmp/com.apple.launchd.ov5OboSoZo/com.apple.testmanagerd.unix-domain.socket for TESTMANAGERD_SIM_SOCK
16:22:22.398 xcodebuild[7060:32264] Sim iPhone 6s has testmanagerd socket at /private/tmp/com.apple.launchd.ov5OboSoZo/com.apple.testmanagerd.unix-domain.socket
16:22:22.398 xcodebuild[7060:32264] Connected to testmanagerd socket for Sim iPhone 6s

It seems it's failing at the same moment, when the hyphen is send as you said.
This particular step is really simple :
func iType(text: String, onTextFieldWithIdentifier identifier: String) {
	let textField = app.textFields[identifier]
	textField.tap()
	textField.typeText(text)
}

Note : I use a stored property to store XCUIApplication(). I've seen in the documentation (https://bitrise-io.github.io/devcenter/ios/known-xcode-issues/) that you suggest to always use XCUIApplication() but it seems related to this error : Failed to perform AX action

Trying the things on the https://bitrise-io.github.io/devcenter/ios/known-xcode-issues/#possible-solutions list is definitely something worth the time, and the errors can change between Xcode versions, so the fix you mentioned might still help.

Also, if you can, you should try it with Xcode 8 too as every new Xcode version comes with bug fixes - but sometimes also introduce new ones..

Do you still see this error to happen? If yes, please include the full step log.
(Closing it temporarily, will be reopened if you create a new comment with the log)

Still getting this error on bitrise but not on simulator
"Lost connection to test manager service"
I am tapping a button in rating alert box in ios
t =   216.52s Find the "Not Now" Button
t =   218.19s     Find the "Not Now" Button (retry 1)
t =   231.54s Find the "Not Now" Button
t =   234.48s     Find the "Not Now" Button (retry 1)
t =   237.94s     Find the "Not Now" Button (retry 2)
t =   244.09s Find the "Not Now" Button
t =   248.92s     Find the "Not Now" Button (retry 1)
t =   254.36s     Find the "Not Now" Button (retry 2)
t =   262.55s Find the "Not Now" Button
t =   269.38s     Find the "Not Now" Button (retry 1)
t =   276.64s     Find the "Not Now" Button (retry 2)
t =   287.12s Find the "Not Now" Button
t =   296.58s     Find the "Not Now" Button (retry 1)
t =   306.49s     Find the "Not Now" Button (retry 2)
t =   319.43s Find the "Not Now" Button
t =   331.10s     Find the "Not Now" Button (retry 1)
t =   344.82s     Find the "Not Now" Button (retry 2)
t =   360.69s Find the "Not Now" Button
t =   375.90s     Find the "Not Now" Button (retry 1)
t =   391.89s     Find the "Not Now" Button (retry 2)
t =   411.02s Find the "Not Now" Button
t =   428.58s     Find the "Not Now" Button (retry 1)
t =   446.78s     Find the "Not Now" Button (retry 2)
t =   468.96s Find the "Not Now" Button
t =   490.35s     Find the "Not Now" Button (retry 1)
t =   514.60s     Find the "Not Now" Button (retry 2)
t =   542.74s Find the "Not Now" Button
2020-03-26 12:20:10.405 xcodebuild[27957:1557055759] [MT] IDETestOperationsObserverDebug: 571.721 elapsed -- Testing started completed.
2020-03-26 12:20:10.405 xcodebuild[27957:1557055759] [MT] IDETestOperationsObserverDebug: 0.000 sec, +0.000 sec -- start
2020-03-26 12:20:10.405 xcodebuild[27957:1557055759] [MT] IDETestOperationsObserverDebug: 571.721 sec, +571.721 sec -- end
2020-03-26 12:20:10.407 xcodebuild[27957:1557055759] Error Domain=IDETestOperationsObserverErrorDomain Code=5 "Lost connection to testmanagerd" UserInfo={NSLocalizedDescription=Lost connection to testmanagerd, NSLocalizedRecoverySuggestion=If you believe this error represents a bug, please attach the result bundle at /tmp/00008020-001138C03A51002E_xcuitest_derived_data_1/Logs/Test/Test-Transient Testing-2020.03.26_12-10-38-+0000.xcresult}
Testing failed:

Hi @iosdeveloperIN! Can you please send us a build URL and enable support access in the settings so we can take a look? Thanks!


Event listener function arguments should not be optional

Example
class WebContents extends EventEmitter {
    ...
    on(event: 'crashed', listener: (event?: Event,
                                    killed?: boolean) => void): this;
    ...
}

should be
class WebContents extends EventEmitter {
    ...
    on(event: 'crashed', listener: (event: Event,
                                    killed: boolean) => void): this;
    ...
}

TypeScript allows passing functions with less arguments:
mainWindow.webContents.on('crashed', () => console.log('crashed'));

This is necessary for https://github.com/electron/electron-typescript-definitions/issues/25.

https://github.com/electron/electron-typescript-definitions/blob/master/lib/utils.js#L128-L132

Well, there is a reason why things need to be specified as optional. I don't think it's a good pattern to do it the other way around.

@miniak I was linking that for future reference, do you disagree with that comment?  If so do you think the default for that function should be returning false?

Fixed in next


Fix typo in setup.py example in quickstart guide.

Fix a small typo in the 'Basic Use' example of the Quickstart section of the User Guide.

Thanks for the contrib!


Confusing error when #[getset(get_copy = "pub")] is specified but not derive(CopyGetters)

When #[getset(get_copy = "pub")] is specified but CopyGetters is not derived (only Getters), the proc-macro doesn't give an error, instead rustc gives the error that foo.bar() is not a method but a field.
Solution: The proc-macro could give an error. But I'd prefer another solution:
Remove CopyGetters altogether, only have Getters, such that get_copy works when Getters is derived. This makes much more sense IMO.
Or is there a reason to require the user to derive CopyGetters / any disadvantages when get_copy is also allowed with Getters?
To me it seems to be more verbose / requiring more typing than necessary, and I often forget to derive CopyGetters.

Aw shucks. :(
I think your suggestion is very reasonable.

(A similar issue occurs when I have #[getset(get = "pub", get_mut = "pub")] on a field, but forget to derive MutGetters (when I only have Getters), then there is also no error by the proc-macro, only at the call location rustc complains that the foo_mut() method doesn't exist.)

Why not make a step further and derive only a single target, say GetSet?


Set CI env to "" in goreleaser task

or it will show a bunch of ansi char in openshift-console
this should works https://github.com/goreleaser/goreleaser/blob/571cde5d9ec09a99d7e39e48579056770cb804b8/main.go#L24
Fixes #1114
Signed-off-by: Chmouel Boudjnah<EMAIL_ADDRESS>
Changes

Submitter Checklist

[ ] ♽  Run make test lint before submitting a PR (ie: with pre-commit, no need to waste CPU cycle on CI
[ ] 📖 If you are adding a user facing feature or make a change of the behavior, please verify that you have documented it
[ ] 🧪 100% coverage is not a target but most of the time we would rather have a unit test if you make a code change.
[ ] 🎁 If that's something that is possible to do please ensure to check if we can add a e2e test.
[ ] 🔎 If there is a flakiness in the CI tests then don't necessary ignore it, better get the flakyness fixed before merging or if that's not possible there is a good reason to bypass it. (token rate limitation may be a good reason to skip).

Codecov Report

Merging #1115 (7e31afb) into main (474a9db) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1115      +/-   ##
==========================================
+ Coverage   62.97%   63.00%   +0.03%
==========================================
  Files         106      106
  Lines        6382     6382
==========================================
+ Hits         4019     4021       +2
+ Misses       1978     1976       -2
  Partials      385      385

Impacted Files
Coverage Δ

pkg/sort/task_log_snippets.go
100.00% <0.00%> (+18.18%)
:arrow_up:

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


Can I add a Chinese translation to the document

Can I add a Chinese translation to the document，I want more Chinese users to know about xlx.
https://github.com/ml-explore/mlx/tree/main/docs

I think it is a nice idea to have translations, but I'm not sure where the best place for them is...


Improve error message when platform url is wrong

I introduced a typo in the url on purpose, 0.6.0/OQW... should be 0.6.0/QOQW..., the error should be a lot more specific here than "failed to iterate over archive".
 ── IO ERROR ────────────────────────────────────────────────────── UNKNOWN.roc ─

I was trying to download this URL:

    https://github.com/roc-lang/basic-cli/releases/download/0.6.0/OQW08n38nHHrVVkJNiPIjzjvbR3iMjXeFY5w1aT46w.tar.br

But I encountered an IO (input/output) error:

    failed to iterate over archive

I'd be willing give this a go if nobody is already working on it

Awesome, thanks @zapsh :)
I've assigned you to the issue

I am looking for some good-first-issue labeled issues and found this one, which has already been solved. Can be closed! @Anton-4


Build production

Hi, first of all thanks a lot for this excellent work that your team made for free. It's a great work.
Now, i need to build a production environment with this theme. I'm so new on angular 2 (i come from AngularJS) but i understand a many things but another not so well. So, i try to use systemjs-builder but i don't have any idea of how to start to deploy. Can you help me a little bit? Or can i get all my js generated files and copy this structure of the folders (with "xxxx.component.html" files) and should work? Or can i use my project on this way without worry about that many users uses my app at the same time? Thanks a lot!

@aebmknrl thank you for using our product. You don't need to worry about how many users will use it on the app level, this will be solved at the server level and depending on how much traffic you have you will need more/fewer resources. For the live, we are using heroku.com as our server and for the deployment to their environment please check how we set the package in this herokuLinks branch: https://github.com/creativetimofficial/light-bootstrap-dashboard-angular/tree/herokuLinks
Hope this information helps you.
Best,
Alex


Sphinx is not found while installing

Build Process
Standard compile process from readme - building from 3.4.0 tarball
Environment:

Debian testing

Additional context
Once I use sudo make install it cannot find my Sphinx instalation which is installed via pip. When I run the command without sudo (just for testing purposes) Sphinx is found and does it's job - the instalation obviously fails because of no provileges to /usr.

Very dirty solution is to install Sphinx via apt but you don't want to have duplicated sphinx on your machine.

I don't really know how the python environment work but sphinx is only a build dependency for us so you can uninstall it after doing the make install.

I guess the thing is it's runnig sphinx under root (because of sudo) instead of the user you are spawning the command from. In such case it can't find sphinx and fails. The solution is to tell the part which handles docs to run sphinx under a user and then switch to root to be able to copy stuff into /usr.
Installing python-sphinx package is a workaround - dirty one.

Maybe running make doc before doing the sudo make install can solve your problem.

Just tried but didn't help

If that didn't help, the problem is likely not with you using sudo because make install doesn't run sphinx if you already ran make doc. Could you re-extract the tarball and compile polybar agains as follows:

configure with cmake (generally cmake .. in the build folder)
run make -j
run sudo make install

and please post the output of this entire process here so that we can see where things go wrong.

I will try to do that asap.
Anyway the solution for now is to install python3-sphinx, run sudo make install and then run apt purge python3-sphinx and apt autoremove because of all the dependencies. I really hope some mess is not left on my drive.

If that didn't help, the problem is likely not with you using sudo because make install doesn't run sphinx if you already ran make doc. Could you re-extract the tarball and compile polybar agains as follows:

I don't think that is true because it's a custom target. If I am not wrong CMake calls the custom target at every call.
See https://stackoverflow.com/questions/39895638/cmake-dont-build-project-again-when-executing-make-install.
The only solution I can think of is to generate the documentation at configure time (when cmake .. is called, like the google-test clone).

@Lomadriel you are correct. I'm not a fan of having build components run in the configure phase but it's also not optimal that sphinx is run as root when installing. I'll try to look around and see how other projects do it.
@im-n1 Can you make pip install sphinx globally to  /usr/lib/python3.7/site-packages instead of locally to your home directory?

You could also try setting PYTHONPATH to your user site-packages folder which could help with finding the packages when running as root.
I have dug around a bit in the cmake source code and they seem to also be running sphinx during make install, I'll try to reproduce this issue there as well and see what their solution is.

The cmake project has the same issue if you have sphinx only locally, they don't appear to have any solution for this (or aren't even aware of the problem).
I have found several ways to solve this:

Run make preinstall; sudo make -o preinstall install. This does not build the preinstall target (which runs sphinx) as root
Run sudo PYTHONPATH="/home/n1/.local/lib/python3.7/site-packages" make install. This way the sphinx python library can be found by root.
Install locally with mkdir pkg; DESTDIR=pkg make install. And then copy the files there into your file system: cd pkg; sudo cp -r usr /.

The first one relies on cmake doing all the work in preinstall and using install only for copying files, don't know how futureproof that is.
The second one is a bit dirty because you still run sphinx as root but it should work as long as the paths don't change.
The third one is probably the most futureproof and is basically what cmake does internally as well.
Instead of solving the problem of how to get this to work with a local sphinx installation, I would recommend you install sphinx globally using pip, this would solve all your issues.

I am closing this.
We will not change polybar's build workflow for this and I have outlined multiple possible solutions to the problem above.


Automated updates

Proposal for Full Automation of Data Updates
The code is currently in a “I just finished a hackathon” state, since I am competing for the bounty, but decided to publish now as I am confident this satisfies the listed requirements, and is ultimately the right approach. I will continue to clean up the code, make dependencies easy to install, easy to run, etc.
Approach Overview
The approach relies on feeding images and prompts into the GPT-4o-mini API for automated parsing. This end-to-end approach by-far outperforms OCR libraries and other fragmented LLM-based workflows. It is also orders of magnitude easier to implement and continue to develop.
Steps:

Dynamic Retrieval of Current Congress Members
Direct Data Extraction

For digital, easy-to-read files, asset names are pulled directly and saved to a CSV in the ./all_processed_data folder.

PDF and GIF Processing

Converts PDF and GIF files into multiple JPEGs. These images are then processed via the OpenAI chat/completions multimodal endpoint, which extracts asset names and saves them to ./all_processed_data.

It works sufficiently well as-is to detect most of the bitcoin/crypto terms. But the following ideas could help curate the asset list more accurately for all assets, not just bitcoin/crypto related assets.
More Specifically

gather_source_data.py

Retrieves congress member data from Congress API: https://api.congress.gov/v3/member/congress
Scrapes data from the House and Senate financial disclosure sites:

House Financial Disclosures: https://disclosures-clerk.house.gov/
Senate Financial Disclosures: https://efdsearch.senate.gov/

Organizes data for processing and converts PDF/GIF files to JPEGs.

run_parse_asset_names_llm.py

Sends images to OpenAI's API with specific prompts, extracting asset names and saving them to ./all_processed_data.

final_data_processing.py

Combines files in ./all_processed_data into final_asset_data.csv and final_summary_data.csv.
Implements bitcoin/crypto term classification based on a predefined list.

Areas for Improvement:

Better method for image rotation. Assumptions can be made for most files, but sometimes an image will be rotated incorrectly, which hurts the LLM performance.
Use gpt-4o instead of gpt-4o-mini (current choice to save $).

I have experimented with this on select files and it does seem to be markedly better.

Refine prompts.
Crop images intelligently to focus on relevant sections.
Currently asking the LLM when to skip a file. This may be counter-productive. Consider just one-shot prompt each image.
Directly ask the LLM, does this image mention bitcoin or cryptocurrency?
links to all sources are available in the data scraping process, need to write them to file for easy inclusion in the main readMe

Additional Considerations
The code takes several hours to run (lots of room to make it faster), and costs ~$20 for the OpenAI API with gpt-4o-mini. However, the all_source_data and final_data folders are small enough to commit to GitHub, so ideally 1 person can run this code periodically, and everyone else can just easily access these artifacts for their own use (unless you are contributing to development of the automation)
Anyone that can find missed bitcoin/crypto investments in the source documents please do point them out. It will help make the process more robust. I have not found any at the time of writing, but I’m sure they exist.
The goal so far was just to identify bitcoin/crypto holdings, but I can think of tons of cool analyses to be done with the final asset names dataset. Hopefully, it will be put to good use.

here are the differences I have found from the current status of the readMe:

name
previous holder
current holder
asset_names
note

Daniel Goldman
No
Yes
Coinbase Global, Inc. - Class A (COIN) [ST]

Garret Graves
No
Yes
Coinbase Global, Inc. - Class A Common Stock (COIN) [ST]

Ashley Hinson Areholz
No
Yes
Grayscale Bitcoin Trust - GBTC [MF]

Shri Thanedar
No
Yes
Bitcoin, Ethereum

Barry Moore
Yes
No

previously 'brokerage cryptocurrency', no longer present in 2023   disclosures

Cynthia Lummis
Yes
No

bitcoin with unchained ($100,001 - $250,000) disclosed in 2020, no longer   disclosed in latest 2023 disclosures

Michael McCaul
Yes
No

<$15k Grayscale in childrens trust in 2021 disclosure, no longer   present in 2023 disclosure

JD Vance
Yes
Yes
BTCExchange/Platform: Coinbase

Jefferson Van Drew
Yes
Yes
Greyscale Investment Trust

Michael Waltz
Yes
Yes
Bitcoin [OT]

Mike Collins
Yes
Yes

disclosed ETH purchase transactions (not present in assets section)

Ted Cruz
Yes
Yes
Bitcoin Exchange/Platform: River Financial Inc

Great, thanks!
I did note the Lummis change recently and it's an awkward situation because it seems the bitcoin was moved into a blind trust. https://x.com/lopp/status/1824414232160428148
I'll check out the code and give it a test run as soon as I can.

found one more with the term 'crypto'
Lauren Boebert: "Robinhood Account Crypto Money Movement COIN"
not sure what this means, maybe coinbase stock?

Weird; sounds like coinbase stock to me. Can't find any crypto tokens with a name like that.

Re-pulled source data on 11/24. Found 0 new disclosures.

Alright I got everything set up and am working on doing a full run.
Executed gather_source_data.py and it pulled 15 PDfs before getting into a failure loop with:
16 / 539
Tammy, Baldwin D WI Senate
Attempt 1 failed with error: Message: session not created
from unknown error: cannot find Chrome binary
Stacktrace:
#0 0x60ab7addc31a <unknown>
#1 0x60ab7a8f26e0 <unknown>
#2 0x60ab7a927775 <unknown>
#3 0x60ab7a925926 <unknown>
#4 0x60ab7a9716f6 <unknown>
#5 0x60ab7a970d46 <unknown>
#6 0x60ab7a965203 <unknown>
#7 0x60ab7a933cc0 <unknown>
#8 0x60ab7a934c9e <unknown>
#9 0x60ab7ada9d0b <unknown>
#10 0x60ab7adadc92 <unknown>
#11 0x60ab7ad96b3c <unknown>
#12 0x60ab7adae807 <unknown>
#13 0x60ab7ad7c0df <unknown>
#14 0x60ab7adcb578 <unknown>
#15 0x60ab7adcb740 <unknown>
#16 0x60ab7addb196 <unknown>
#17 0x78278ec94ac3 <unknown>
. Retrying in 60 seconds...

Doing a test run on my linux machine; going to make a few improvements to the documentation to account for configuration issues I'm hitting but fingers crossed. Will post any blockers as I come across them. Had a few issues with Chrome but figured out how to resolve them.

great. let me know ifI can help.

Hey @chance-on-brink I added $500 to the $4000 bounty that @jlopp did .  I'm not sure how bountycaster interacts with X since I've only used it in frames on Farcaster, but if we can determine how jlopp paid, I can process my bounty as well.
Congrats!