First pass at a Speaker Notes GUI

It's far from perfect, but it's good enough for me for now ;)
Injects a new prop showNotes into slide components, which will be displayed along with the slide itself in a new window.
export default ({showNotes}) => (

    {showNotes
      ?
Notes for this slide

      : ''
    }

)

Features

Pressing s/S will trigger the notes to open in a new window.
Allows showing the current slide and notes along side eachother in the new window
Slides can be changed from both the main slide window and the notes window

Hey @jesstelford,
This is a really cool idea! Love it!
I think in its current form though, it's got some quirks as I test it locally. For example, once I've opened a presenter view (by typing "s") I can't seem to get out of it. Closing all tabs and re-opening the presentation still keeps me in presenter mode. (The moment I change slides, a new tab is opened.)
Also if I open 3 tabs, and change the active slide in each, it opens 3 new synced presenter tabs (for a total of 6). I think new, synced tabs should only ever open if you explicitly activate presenter mode.
I also wonder about this code being added directly to Presentation. This might be a nice excuse to build the first react-present "plugin"? I like the idea of a modular unit that can be added (if desired) to the presentation that just exposes some information via context. eg:
<Presentation>
  <WithSyncedPresenterMode toggleKey="s">
    <Slide component={ComponentA}>
    <Slide component={ComponentB}>
    <Slide component={ComponentC}>
  </WithSyncedPresenterMode>

  <DropDownNav options={options} />
</Presentation>

Whoops - the multiple tabs popping open was a bug - I've force pushed (living fast and loose) a fix for that part.
I've also pushed up an example of using this method to show speaker notes. It's rough around the edges, but you can see how I'm using it: https://jesstelford.github.io/js-go-presentation (code is at this commit: https://github.com/jesstelford/js-go-presentation/tree/8500864)
Now that you mention it; context seems like a much better idea to clean up some of the code. If I get some time, I'll try work some things so it's nicer.
For context (har har har); I'm giving a talk on Thursday (Sydney time), so just-barely-working is good enough for me right now ;)

Note: I've merged #5 into this branch.

Thanks Jess. I haven't forgotten about this. I will try to review your PR (all 3 of them!) soon.
It's been a bad week here. I hope you'll give me a few more days to catch up.

Hope your talk went well by the way. I appreciate the contributions. I've merged your other 2 changes into master.
I like this feature. I want to play with it a bit though. I think there might be a way to make it more useful out of the box without requiring use of the showNotes param except for in special case.

0.7.0 was just released with all 3 of your recent changes.
I modified this one a bit, separating it into a plug-in and adding a few, new automatic features (like showing upcoming Step content). Also the key to launch this mode is "p" now instead of "s".
Thanks so much for these contributions!

PS Check out this demo slide to see the new features: https://bvaughn.github.io/react-presents/#/3/0

PSS Gave you a shout-out in the release notes. Thanks again!


Feature: Add combined sensor sessions

Contents (#19)
Enhancements

Compute sensor statistics
Merge Session dataframes
Raise Exceptions for empty dataframes
Avoid extrapolation during merge and resampling to new time vector

Dependencies

Remove scipy dependency

Testing

Add pre-process tests

Looks good to me apart from missing docstrings

Done. Thank you for the review.


Add Price Optimization Notebook

Description of changes:
Adding price optimization notebook.
We prepare to publish an AWS blog post where we used Amazon Braket quantum annealer to solve a price optimization problem. We are adding this notebook to complement the blog post as an asset.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @FengShi0705, Thanks for submitting the notebook. I just have some questions/comments hoping you can address.

Can we handle the required imports in the top most cell and not repeat them in the below cells. You can refer other notebooks for this.
Can you remove the comment in the last cell #b=300, if that's not required?
Can we have a proper spacing after assigning the variable and the working code. You can refer to this notebook to understand how we are aligning the spacing. https://github.com/aws/amazon-braket-examples/blob/main/examples/quantum_annealing/Dwave_Factoring/Dwave_factoring.ipynb
As Christian pointed out the cell 26 takes a long time to run, may be we can comment out that cell and add a note that will allow users to understand that it will take long time to run and whether they want to execute it. You can refer this  notebook: https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Using_the_tensor_network_simulator_TN1.ipynb

Cell 26 takes a long time to run and submits a substantial amount of tasks against DWave. I recommend that you comment out as default similar to cell 9 here:https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Using_the_tensor_network_simulator_TN1.ipynb

done

import matplotlib.pyplot as plt
We are already importing this, can we remove these imports from every cell again?

done

Hi @FengShi0705, Thanks for submitting the notebook. I just have some questions/comments hoping you can address.

Can we handle the required imports in the top most cell and not repeat them in the below cells. You can refer other notebooks for this.
Can you remove the comment in the last cell #b=300, if that's not required?
Can we have a proper spacing after assigning the variable and the working code. You can refer to this notebook to understand how we are aligning the spacing. https://github.com/aws/amazon-braket-examples/blob/main/examples/quantum_annealing/Dwave_Factoring/Dwave_factoring.ipynb
As Christian pointed out the cell 26 takes a long time to run, may be we can comment out that cell and add a note that will allow users to understand that it will take long time to run and whether they want to execute it. You can refer this  notebook: https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Using_the_tensor_network_simulator_TN1.ipynb
Can we also change some variable names instead of a b, that would give more context about the variables?

Good suggestions. We addressed point 1~4  as suggested
For point 5, could we keep the naming of a,b as this aims to be consistent with the math equation in the text?

 There is no need for rounding to take place, so the wording around "rounding" is now removed .

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done. Good point, A sentence is now added to explain the discrete price choices. According to certain business requirements, the possible prices are usually defined to be a set of discrete price values (e.g. $5.99, $9.99, $14.99).

View entire conversation on ReviewNB

Done. Now added comments in the code: # here, we use a list to represent the sequence of prices from day T-n to day T+n-1.

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done. comment added

View entire conversation on ReviewNB

Done as suggested

View entire conversation on ReviewNB

Done. and a reference to the formula is added

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Perfect suggestion. Done

View entire conversation on ReviewNB

Done. reduced the printing size. The rows and columns are now explained in the text. Each row represents an optimized solution. The columns starting with X_ shows the value of the binary decision variables $x_{t,k}$ and the energy column shows the negative value of objective, i.e. −𝐻

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Really great point. We missed the covariance in this formula.Now we made following changes:we added covariance in this formulain the code, we now added a function to calculate the covariance

View entire conversation on ReviewNB

Done. Added explanation sentence This small but non-zero value is due to floating point precision.

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done

View entire conversation on ReviewNB

Done, added wikipedian link

View entire conversation on ReviewNB


WHILE loop

We've had FOR loops for a long time and having WHILE loops would be handy as well. The most important use case would probably be implementing custom polling solutions. That would be more flexible and powerful syntax than what can be currently done with Wait Until Keyword Succeeds. The syntax would be something like this:
WHILE    <expression>
    Keyword
    Another Keyword
END

Naturally you should be able to nest WHILE loops with other control structures. For example, IF in combination with planned BREAK and CONTINUE (#4079) would often be useful.

This is now mostly ready. Remaining things to do are:

Add WHILE support to --flattenkeywords (--removekeywords already got it).
Documentation (covered by #4203).

--flattenkeywords is now supported and that ought to be the last functional change related to this issue. Documentation still missing but that's covered by #4203.

A problem with WHILE loops is that it is very easy to create a loop that never terminates. There could be a bug in the condition itself or code that should be updating a variable used in the condition could have problems. This is pretty severe problem, because the only way to stop such a rampant loop is stopping the whole execution forcefully. That means that that output.xml is broken and log.html cannot be created.
To ease avoiding infinite loops, we decided to allow limiting how many times or how long time a WHILE loop is executed. The idea is that if the limit is searched, the loop is not executed anymore and execution fails. The limit would be specified using an optional second argument limit that needed to be used as named argument like limit=<value>. The value could either contain the maximum number of loop iterations or the maximum time to try running the loop. The value should have same semantics as the retry argument used with Wait Until Keyword Succeeds:
WHILE    $condition    limit=20x
    Keyword

WHILE    $condition    limit=1 minute
    Keyword

To avoid infinite loops by default, it probably would be a good idea to have a default limit. That limit needed to be high enough to not affect normal valid usages but small enough to actually break the loop at some point. Probably something like 100 times would be good. It should be possible to disable the limit with level=NONE (case-insensitive value) as well.
Because execution would fail if the limit is reaches, this functionality couldn't be used for executing some keywords a certain number of times. That isn't a big loss because FOR IN RANGE loops can be used instead in such situations.

Implementing the limit functionality shouldn't be too complicated and we can do it still before RF 5.0. There aren't much open design decisions either. Only things I can think of are:

What postfix or postfixes to use when the limit is the number of iterations? Wait Until Keyword Succeeds supports x and times and for consistency they are probably good here as well. Something like limit=20 iterations could be nice in this context as well, but having too many of these probably isn't a good idea.
Should limit=20 be considered the max number of iterations (20 iterations) or the max time (20 seconds)? It's hard to choose and the best solution could be making it an error.

On Slack not everyone was happy about the addition as there are use cases, especially when doing RPA, to have very long or even infinite loops. Endless loop requiring the execution to be forcefully stopped and leaving a broken output.xml and no log or report was nevertheless considered so bad that the limit functionality was added. Based on the feedback the default limit was raised to 10000 iterations, though.
It was also decided that just using a number like limit=100 means iterations. Prefixes like x or times are not allowed. It is still possible to use limit as a time by using e.g. limit=100s.

The above commit made the default limit a module level constant. It's now fairly easy to configure it if needed:
from robot import run_cli
from robot.running import bodyrunner

bodyrunner.DEFAULT_WHILE_LIMIT = 10_000_000_000_000_000
run_cli()

This isn't ideal because you cannot simply disable the limit and because bodyrunner isn't part of the public API. We can add a better API for configuration in RF 5.1. Possibly there could also be a command line option controlling it.


fixed permissions that will crash tower

changed permissions to 750 since the other permission crashes the cluster.

Changes included in PR https://github.com/redhat-cop/automate-tower-ha-dr/pull/17


fail syncing cluster unreachable cluster

I have a cluster of three nodes, and it works fine in the last months. I reboot one of the machine today, and it get errors.
I start coreos cluster by cloudconfig file like this.
#cloud-config

hostname: coreos1

coreos:
  etcd:
    addr: <IP_ADDRESS>:4001
    peer-addr: <IP_ADDRESS>:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=eno1

        [Network]
        Address=<IP_ADDRESS>/24
        Gateway=<IP_ADDRESS>
        DNS=<IP_ADDRESS>

#cloud-config

hostname: coreos2

coreos:
  etcd:
    peers: <IP_ADDRESS>:7001
    addr: <IP_ADDRESS>:4001
    peer-addr: <IP_ADDRESS>:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=eno1

        [Network]
        Address=<IP_ADDRESS>/24
        Gateway=<IP_ADDRESS>
        DNS=<IP_ADDRESS>

There are three nodes as 136, 140 and 147. Just now, I reboot 140, and I cannot see the cluster.
core@coreos1 ~ $ fleetctl list-machines
Error retrieving list of active machines: googleapi: Error 503: fleet server unable to communicate with etcd

It seems that etcd works wrong.
In 136 and 147, they have the same logs
core@coreos1 ~ $ sudo systemctl status etcd.service -l
● etcd.service - etcd
   Loaded: loaded (/usr/lib64/systemd/system/etcd.service; static; vendor preset: disabled)
  Drop-In: /run/systemd/system/etcd.service.d
           └─20-cloudinit.conf
   Active: active (running) since Tue 2015-10-06 18:43:28 ; 1 weeks 5 days ago
 Main PID: 898 (etcd)
   Memory: 34.9M
   CGroup: /system.slice/etcd.service
           └─898 /usr/bin/etcd

Oct 19 09:22:42 coreos1 etcd[898]: [etcd] Oct 19 09:22:42.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:22:47 coreos1 etcd[898]: [etcd] Oct 19 09:22:47.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:22:52 coreos1 etcd[898]: [etcd] Oct 19 09:22:52.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:22:57 coreos1 etcd[898]: [etcd] Oct 19 09:22:57.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:02 coreos1 etcd[898]: [etcd] Oct 19 09:23:02.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:07 coreos1 etcd[898]: [etcd] Oct 19 09:23:07.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:12 coreos1 etcd[898]: [etcd] Oct 19 09:23:12.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:17 coreos1 etcd[898]: [etcd] Oct 19 09:23:17.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:22 coreos1 etcd[898]: [etcd] Oct 19 09:23:22.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 19 09:23:27 coreos1 etcd[898]: [etcd] Oct 19 09:23:27.186 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster

in 140
core@coreos2 ~ $ sudo systemctl status etcd.service -l
● etcd.service - etcd
   Loaded: loaded (/usr/lib64/systemd/system/etcd.service; static; vendor preset: disabled)
  Drop-In: /run/systemd/system/etcd.service.d
           └─20-cloudinit.conf
   Active: active (running) since Mon 2015-10-19 09:11:10 ; 15min ago
 Main PID: 731 (etcd)
   Memory: 35.5M
   CGroup: /system.slice/etcd.service
           └─731 /usr/bin/etcd

Oct 19 09:26:52 coreos2 etcd[731]: [etcd] Oct 19 09:26:52.930 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:52 coreos2 etcd[731]: [etcd] Oct 19 09:26:52.930 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.199 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.199 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.497 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.497 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.887 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:53 coreos2 etcd[731]: [etcd] Oct 19 09:26:53.887 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:54 coreos2 etcd[731]: [etcd] Oct 19 09:26:54.200 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
Oct 19 09:26:54 coreos2 etcd[731]: [etcd] Oct 19 09:26:54.200 WARNING   | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field

Anyone know why and how to fix it?

when I restart 140, we can see logs for etcd.service in 136
journalctl -u etcd.service in 136

 | 0a1abecff2c1413698fdad887882d8a5: leader changed from 'dfb4f9de26e24fcebe713864fe96d430' to ''.
 | 0a1abecff2c1413698fdad887882d8a5: state changed from 'follower' to 'candidate'.
 | removed during cluster re-configuration
 | 0a1abecff2c1413698fdad887882d8a5: state changed from 'candidate' to 'follower'.
 | 0a1abecff2c1413698fdad887882d8a5: term #18446744073709551615 started.
 | 0a1abecff2c1413698fdad887882d8a5: state changed from 'follower' to 'stopped'.
 | transporter.vr.decoding.error:proto: field/encoding mismatch: wrong type for field
 | 0a1abecff2c1413698fdad887882d8a5: state changed from 'stopped' to 'stopped'.
 | set cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]) for standby server
 | 0a1abecff2c1413698fdad887882d8a5 starting in standby mode

And on 147
  | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'follower' to 'candidate'.
  | e287217be1f44b45bf7bacca2cc3e75a: leader changed from 'dfb4f9de26e24fcebe713864fe96d430' to ''.
  | removed during cluster re-configuration
  | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'candidate' to 'follower'.
  | e287217be1f44b45bf7bacca2cc3e75a: term #18446744073709551615 started.
  | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'follower' to 'stopped'.
  | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'stopped' to 'stopped'.
  | set cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]) for standby server
  | e287217be1f44b45bf7bacca2cc3e75a starting in standby mode
  | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
  | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
  | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
  | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
  | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster

What's more, I find something strange.
It seems that 147 restarted before(maybe power-down and soon), and it cured by itself.
 Oct 06 22:24:58 coreos3 etcd[1070]: [etcd] Oct  6 22:24:58.506 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 10013 events at index 48531039 completed
Oct 06 22:51:28 coreos3 etcd[1070]: [etcd] Oct  6 22:51:28.617 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 10019 events at index 48541058 completed
Oct 06 23:17:58 coreos3 etcd[1070]: [etcd] Oct  6 23:17:58.727 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 10013 events at index 48551071 completed
Oct 06 23:44:28 coreos3 etcd[1070]: [etcd] Oct  6 23:44:28.836 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 10016 events at index 48561087 completed
-- Reboot --
Oct 07 02:31:45 coreos3 systemd[1]: Started etcd.
Oct 07 02:31:45 coreos3 systemd[1]: Starting etcd...
Oct 07 02:31:45 coreos3 etcd[806]: [etcd] Oct  7 02:31:45.793 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: 'dfb4f9de26e24fcebe713864fe96d430'
Oct 07 02:31:45 coreos3 etcd[806]: [etcd] Oct  7 02:31:45.801 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: '0a1abecff2c1413698fdad887882d8a5'
Oct 07 02:31:45 coreos3 etcd[806]: [etcd] Oct  7 02:31:45.833 CRITICAL  | e287217be1f44b45bf7bacca2cc3e75a is not allowed to join the cluster with existing URL http://<IP_ADDRESS>:7001
Oct 07 02:31:45 coreos3 systemd[1]: etcd.service: Main process exited, code=exited, status=1/FAILURE
Oct 07 02:31:45 coreos3 systemd[1]: etcd.service: Unit entered failed state.
Oct 07 02:31:45 coreos3 systemd[1]: etcd.service: Failed with result 'exit-code'.
Oct 07 02:31:57 coreos3 systemd[1]: etcd.service: Service hold-off time over, scheduling restart.
Oct 07 02:31:57 coreos3 systemd[1]: Started etcd.
Oct 07 02:31:57 coreos3 systemd[1]: Starting etcd...
Oct 07 02:31:57 coreos3 etcd[1099]: [etcd] Oct  7 02:31:57.229 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: 'dfb4f9de26e24fcebe713864fe96d430'
Oct 07 02:31:57 coreos3 etcd[1099]: [etcd] Oct  7 02:31:57.229 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: '0a1abecff2c1413698fdad887882d8a5'
Oct 07 02:31:57 coreos3 etcd[1099]: [etcd] Oct  7 02:31:57.243 INFO      | Peer URLs in log:  / e287217be1f44b45bf7bacca2cc3e75a (http://<IP_ADDRESS>:7001,http://<IP_ADDRESS>:7001,http://<IP_ADDRESS>:70
Oct 07 02:31:57 coreos3 etcd[1099]: [etcd] Oct  7 02:31:57.243 INFO      | e287217be1f44b45bf7bacca2cc3e75a attempted to join via <IP_ADDRESS>:7001 failed: fail checking join version: Client Internal Error (G
Oct 07 02:31:58 coreos3 etcd[1099]: [etcd] Oct  7 02:31:58.593 INFO      | e287217be1f44b45bf7bacca2cc3e75a attempted to join via <IP_ADDRESS>:7001 failed: fail checking join version: Client Internal Er
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.944 INFO      | e287217be1f44b45bf7bacca2cc3e75a attempted to join via <IP_ADDRESS>:7001 failed: fail checking join version: Client Internal Er
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.944 WARNING   | e287217be1f44b45bf7bacca2cc3e75a cannot connect to previous cluster [<IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001]: fa
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.945 INFO      | etcd server [name e287217be1f44b45bf7bacca2cc3e75a, listen on :4001, advertised url http://<IP_ADDRESS>:4001]
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.945 INFO      | peer server [name e287217be1f44b45bf7bacca2cc3e75a, listen on :7001, advertised url http://<IP_ADDRESS>:7001]
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.945 INFO      | e287217be1f44b45bf7bacca2cc3e75a starting in peer mode
Oct 07 02:31:59 coreos3 etcd[1099]: [etcd] Oct  7 02:31:59.945 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'initialized' to 'follower'.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.178 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'follower' to 'candidate'.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.178 INFO      | removed during cluster re-configuration
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.178 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'candidate' to 'follower'.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.178 INFO      | e287217be1f44b45bf7bacca2cc3e75a: term #18446744073709551615 started.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.179 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'follower' to 'stopped'.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.228 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'stopped' to 'stopped'.
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.250 INFO      | set cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]) for standby server
Oct 07 02:32:00 coreos3 etcd[1099]: [etcd] Oct  7 02:32:00.250 INFO      | e287217be1f44b45bf7bacca2cc3e75a starting in standby mode
Oct 07 02:32:06 coreos3 etcd[1099]: [etcd] Oct  7 02:32:06.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:11 coreos3 etcd[1099]: [etcd] Oct  7 02:32:11.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:16 coreos3 etcd[1099]: [etcd] Oct  7 02:32:16.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:21 coreos3 etcd[1099]: [etcd] Oct  7 02:32:21.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:26 coreos3 etcd[1099]: [etcd] Oct  7 02:32:26.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:31 coreos3 etcd[1099]: [etcd] Oct  7 02:32:31.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:36 coreos3 etcd[1099]: [etcd] Oct  7 02:32:36.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:41 coreos3 etcd[1099]: [etcd] Oct  7 02:32:41.603 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:46 coreos3 etcd[1099]: [etcd] Oct  7 02:32:46.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:51 coreos3 etcd[1099]: [etcd] Oct  7 02:32:51.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:32:56 coreos3 etcd[1099]: [etcd] Oct  7 02:32:56.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:01 coreos3 etcd[1099]: [etcd] Oct  7 02:33:01.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:06 coreos3 etcd[1099]: [etcd] Oct  7 02:33:06.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:11 coreos3 etcd[1099]: [etcd] Oct  7 02:33:11.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:16 coreos3 etcd[1099]: [etcd] Oct  7 02:33:16.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:21 coreos3 etcd[1099]: [etcd] Oct  7 02:33:21.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:26 coreos3 etcd[1099]: [etcd] Oct  7 02:33:26.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:31 coreos3 etcd[1099]: [etcd] Oct  7 02:33:31.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:36 coreos3 etcd[1099]: [etcd] Oct  7 02:33:36.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:41 coreos3 etcd[1099]: [etcd] Oct  7 02:33:41.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:46 coreos3 etcd[1099]: [etcd] Oct  7 02:33:46.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:51 coreos3 etcd[1099]: [etcd] Oct  7 02:33:51.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:33:56 coreos3 etcd[1099]: [etcd] Oct  7 02:33:56.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:01 coreos3 etcd[1099]: [etcd] Oct  7 02:34:01.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:06 coreos3 etcd[1099]: [etcd] Oct  7 02:34:06.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:11 coreos3 etcd[1099]: [etcd] Oct  7 02:34:11.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:16 coreos3 etcd[1099]: [etcd] Oct  7 02:34:16.601 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:20 coreos3 etcd[1099]: [etcd] Oct  7 02:34:20.251 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:25 coreos3 etcd[1099]: [etcd] Oct  7 02:34:25.251 WARNING   | fail syncing cluster([http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001 http://<IP_ADDRESS>:7001]): unreachable cluster
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.252 INFO      | join through leader http://<IP_ADDRESS>:7001
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.329 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: 'dfb4f9de26e24fcebe713864fe96d430'
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.330 INFO      | e287217be1f44b45bf7bacca2cc3e75a: peer added: '0a1abecff2c1413698fdad887882d8a5'
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.343 INFO      | e287217be1f44b45bf7bacca2cc3e75a starting in peer mode
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.343 INFO      | e287217be1f44b45bf7bacca2cc3e75a: state changed from 'initialized' to 'follower'.
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.440 INFO      | e287217be1f44b45bf7bacca2cc3e75a: term #570 started.
Oct 07 02:34:30 coreos3 etcd[1099]: [etcd] Oct  7 02:34:30.440 INFO      | e287217be1f44b45bf7bacca2cc3e75a: leader changed from '' to 'dfb4f9de26e24fcebe713864fe96d430'.
Oct 07 02:34:33 coreos3 etcd[1099]: [etcd] Oct  7 02:34:33.377 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 48563062 events at index 48563062 completed
Oct 07 03:02:33 coreos3 etcd[1099]: [etcd] Oct  7 03:02:33.495 INFO      | e287217be1f44b45bf7bacca2cc3e75a: snapshot of 10038 events at index 48573100 completed

@monkey-H This is a known issue for etcd 0.4 due to the bad goraft + etcd integration. We are not actively maintaining etcd 0.4 version. We suggest you to upgrade your cluster to etcd2 to fully fix the issue.
See https://github.com/coreos/etcd/blob/release-2.2/Documentation/04_to_2_snapshot_migration.md

@monkey-H Sorry for the inconvenience. We would love to help you with any thing for the upgrading process.


Logs not accessible by add-on (insecure mode)?

Hi, thanks for offering this addon to the community. It appears to be one of the few options that could work nicely to get logs out of HA.
I am trying to use it, but unfortunately, I think I am not getting any logs (in loki @ Grafana cloud) because I suspect that the addon is not able to access HA container logs in the first place. But that is just a guess.
This is the HA system state:

And this would be your addon's log:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
2024/04/26 20:31:07 # logspout v3.2.14-hassio-3 by gliderlabs
2024/04/26 20:31:07 # adapters: multiline raw syslog tcp tls loki gelf udp logstash
2024/04/26 20:31:07 # options :
2024/04/26 20:31:07 persist:/data/routes
2024/04/26 20:31:07 Using Loki url<EMAIL_ADDRESS>2024/04/26 20:31:07 # jobs    : http[health,logs,routes]:80 pump routes
2024/04/26 20:31:07 # routes  :
#   ADAPTER     ADDRESS                         CONTAINERS      SOURCES OPTIONS
#   loki+https  xxxx-xxxx-xxx.grafana.net                               map[]

And that's it. I think I have read somewhere that I should be able to see logs here. Is that correct? The CONTAINERS column is empty, does that indicate an issue?
Thanks a lot!

Forgot to add: the addon is running in unprotected mode:

Hi, the log is looking just fine, the messages themselves will not be logged in the Logspout log, just send through any route. Containers should also be empty, I think this will only be valid when filters are provided. My guess is that either sending the logs to the Loki endpoint fails or you are looking in the wrong place to find them.
To confirm or rule out the first option, you could enable debug logging with the following in the config (yaml format):
env:
  - name: DEBUG
    value: "true"

If there are errors sending the messages you should see them.
I will be on holiday for the next two weeks so I can not help you any further until then and have no time now to validate the logging to Grafana Cloud myself (there is a small chance that their API changed, breaking the integration). If you are stuck you might try to post a message on the ha community topic, maybe someone else will be able to help. Otherwise please remind me in a few weeks.

Is this still a problem for you? I tried myself and it works for me. On grafana.com, I go to 'My Account', Launch Grafana, go to Explore, select grafanacloud-<my-username>-logs (Loki). Then under label filters I can select nodename and choose ha as value.

Thanks a lot for checking again. I was considering using Graylog instead, but I'll give it another try. But actually now I am on vacation. So it'll be another two weeks on my end.
Using a local Loki instance worked, but the data was weird in terms of timestamps. But we'll see. I'll keep you posted.
I would prefer using Grafana, so I very much appreciate your test and support!
Picking up testing on my end once I get home.

I just retried. Now I do see data coming in. (Don't ask me, why this was not the case in the first attempt...). However, now I see a similar issue to a local Loki instance: It appears the timestamps sent to (or interpreted by) Loki are not the log times, but for some funny reason this seem to be the time logspout was started.
So in my case, all logs sit at this single point in time:

You can also the see the "wrong" and the "real" timestamps in the textual logs. Here some random examples logs:

When I show the labels of the first entry, the created date even shows this is a much older entry:

Here is another log entry that was just emitted:

Am I missing a timestamp mapping somewhere?

You are right, that is a bug indeed! Never noticed it, and I wonder if anyone uses the Loki adapter. But I wil fix this asap.

I just created a new release which includes a fix for the timestamps in the Loki adapter

Thank you so much, it is working now! I'll keep using Grafana now as originally intended. I'll let you know if I stumble across other issues, if I may.
Feel free to close the issue whenever it suits you.


Water Object surface height queries

The water object's are missing surface height queries for the 3d waves. I'm not sure what the best way to do this is. For starters, I copied the algorithm from the vertex shader into the WaterPlane's getSurfaceHeight().
I just thought I'd create this pull request to open a discussion.

Closed as incomplete addition. Thank you for the proposal, we can discuss about that if someone is interested on getting this.
Thank you!


Attribute parser and new citation support

Support for block attributes and introduced new citation type:

This is pretty awesome! Thanks dude for your work, it is really appreciated! I surely will setup the new version in my website!

I hope to have V4 released within a weeks time


Wide layout

Bit of a work-in-progress, I suspect there may be some more templates to touch.
There may be a better way of doing this, but I've added a block for 'body_class' in the base template and any pages that should have a sidebar get the class 'with-sidebar'. Other pages default to an empty class and the wide layout, so you really only have to touch templates that need a sidebar. See home.html for example.

Coverage remained the same at 90.59% when pulling 42116fda2dbe670ef176fceb493be59707910fab on craigcook:bug-1118725-variable-width-layout into b6e2ef32aab25b9156f9f5ea86f447a355a87cd6 on mozilla:master.

Coverage remained the same at 90.55% when pulling f5042f31715f47f8ee05235d4220c7f5fee5ea0e on craigcook:bug-1118725-variable-width-layout into 6b6f4885a36b581166636adb925e0cf68bfa3153 on mozilla:master.

Rebased and merged in https://github.com/mozilla/airmozilla/commit/26d03cc982b9d4ed45260009a258b63cd61c1e62


DDD example using EventFlow

Create a larger example using EventFlow. The example should

Give a good understanding of how to use EventFlow
Give a better understanding of how API changes in EventFlow affect existing applications
Provide a platform for DDD discussions

The example is based on the shipping example from the book "Domain-Driven Design - Tackling Complexity in the Heart of Software".

@ramus (follow on from Gitter) I saw that you where experimenting (namespaces can be really tough) e.g. the readmodel placement at the root and an Application level service definition + module level service definition. If you assume/accept/decide that a bounded domain lives in one assembly it affects the namespace usage in the assembly - for me there should be a Models namespace at root so you end up with EventFlow.Examples.Shipping.Models.Cargo.
Currently I plan on partitioning out the domain interfaces in my implementations- and then partitioning the implementations further per storage/technology provider for example from your example domain I would implement Shipping.Cargo.dll, Shipping.Cargo.Provider.dll, Shipping.Cargo.Provider.MsSql.dll, Shipping.Cargo.Provider.RabbitMq.dll and use the EventFlow module system to register the appropriate parts
Shipping.Cargo.dll - only domain specific interfaces e.g. IRoute, ICargo, ILocation (maybe commands too - iow anything with external exposure e.g. ICargoBook)
Shipping.Cargo.Provider.dll - anything that does not use an event store and is 3rd party technology agnostic e.g. Events, Commands, Specifications, ValueObjects, Entities
Shipping.Cargo.Provider.MsSql.dll - MsSql implementation of event storage and read models
Shipping.Cargo.Provider.RabbitMq.dll - RabbitMq event broadcasting
The approach allows for changing readmodels and storage without affecting the core domain implementation.
EventFlow is flexible enough to handle it I think, but may its to much?
Your thoughts?

@JC008 I would really like to have the domain itself be completely unaware of read models and will pull them into another project at some time. My basic idea is only to have queries that return either immutable value objects or immutable entities in the domain project. Then how the query handlers are implemented would be put in a different project. I would then create e.g. two separate implementation projects for the query handlers e.g. like this

EventFlow.Examples.Shipping.Domain
EventFlow.Examples.Shipping.Domain.Queries.InMemory
EventFlow.Examples.Shipping.Domain.Queries.Elasticsearch

The in-memory queries would then be used for all integration tests of the domain enabling a much faster execution of tests. Explicit tests of each query handler in the Elasticsearch project will then be done separately.
Basically for me time is very important and the time it takes for me to execute tests is wasted. I would like to be able to use e.g. NCrunch or the new integrated testing feature in ReSharper 10 on integration tests and thereby get instant feedback while I'm working on a bug fix or new code. For that the tests needs to be fast.
Also, read models doesn't really seem like a part of a domain as they are in their core just an optimization.
This is just ideas at the moment and I'm all ears for any suggestions as its also one of the main objectives of creating the example.
Note that I push everything I do to GitHub, even the smallest change. This will let people looking at the EventFlow to get a feel of what is happening, but I will also leave a lot of the pull requests in a somewhat bad state. The example, is barely working and a lot of work is still needed.
What you mention about project structure makes good sense and also hooks into these service concepts

Application services, i.e., how an application interacts with the domain
Domain services
Infrastructure services, e.g. sending mail

I like your suggestion about splitting the bounded contexts into separate projects.


Update README.md

dotnet not in supported "language" taxonomy. Put "aspx" for "asp.net"
Purpose

...

Does this introduce a breaking change?

[ ] Yes
[ ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

@diberry Can you merge this?


CB-13741 Change streaming config providers to fix a couple of recent issues

This commit includes 4 minor changes.

StreamReplicationManagerConfigProvider - Changed the bootstrap.servers property value calculation to only contain the core broker hosts if the core_broker hostgroup is present and CDH>=7.2.12. Because of the kafka scaling feature, having the scaleable brokers included in the bootstrap.servers causes issues when deleting nodes.

KafkaVolumeConfigProvider - KAFKA_BROKER is now a shared roleType, the value of log.dirs will be calculated based on the minimum volume count.

CruiseControlRoleConfigProvider - Removed the configuration that set kafka as an auth_admin, since now it is part of the CSD.

streaming.json - Set the minimumNodeCount of the core_broker host group to 3.

Tested:

Manually on provisioned cluster
Unit tests

retest this please


Empty compiler error

Ok so...this plugin works, however sometimes it doesn't. For some reason that I cannot still explain, often it ends up with this issue:

it's quite frustrating, because then restarting the editor has the chance to fix it. However, some times, the only way to fix it is to delete the plugin files.
Unity 5.3.6

I was experiencing this too.

Could you give me a log files and any clue? I don't have any idea about this problem. 😢

I experienced that quite a few times as well. Currently on 5.4.0p4. Pretty sure I was getting this since the first time I used the Incremental Compiler (around the time of release).
I got nothing in the logs nor anywhere.
So far, the only way I got it to compile again is to restart the editor.
My hunch is that this is somehow related to

having a specific kind of error in the code (I think something that Unity serializes)
Unity trying to compile and get caught in some deadlock.

I say this because Unity often forced me to reset the layout when I re-opened it. Then, usually, it would show that the code is not compiling due to some error.
But, simply having code with errors isn't enough to trigger this.
I can't say I really tried to reproduce every time, since I would often be very focused on the code itself (and with a very sweaty brow).
It seems this one is a strong candidate for a heisenbug!

I think I may have found the issue. I couldn't get it to work anymore and after the thousandth time I killed Unity I noticed there were a lot of mono.exe process spawned. I killed them all and it restarted working again.
How are you looking up for the server executable? Maybe it is connecting to a frozen server and ignoring the newly spawned that is working.

@00christian00 Could you give me log files? I've just read server spawning code of incremental compiler but I don't have a clue yet.
Also after unity terminates, all compiler server processes should be terminated. Are they still running even after unity stops?

I don't think I have anymore, but there wasn't anything. The last line was build all, if I remember correctly.
I didn't notice multiple instances of Incremental compiler.exe but mono.exe is still there and it spawn a new one after each time Unity start. If you run some code on Unity close it cannot run, since it freeze on compilation and you must kill Unity to close it.
Also maybe it's another clue, when it wasn't working anymore I tried another project with the compiler assets, and the compiler window did show up since it didn't have to compile anything and it wasn't reporting the server status, the kill button wasn't there. It definitively couldn't talk to the server, then as I tried to compile it frozen as the other project.

I still get this; it might be related to the special Unity folders. When I force a recompile of Standard Assets (I put an empty comment in some file in this directory) then the phantom error goes away.


Cost of IContextKeyService#onDidChangeContext

Context keys have become popular, they drive keybindings, menus, and views. The latter two depend on events because they are stateful and need to update when context keys change. Simple instrumentation shows that during startup the event fires ~233 times and costs around 90ms (on my early 2015 MBP). Observations

[ ] each ViewDescriptorCollection (explorer, search, scm, etc. etc) listens to the event no matter if it's visible or not cc @sandy081
[x] there is no way to emit a batch event, e.g producers call myKey.set(value). For instance, EditorModeContext#_update might trigger 19 events, instead of one
[ ] most events are emitted during lifecycle phases Starting and Ready, so often before the UI shows much. Should the service buffer events till Restored?
[ ] half of the events are triggered by context key creation and setting their default value. Should we not emit an event then?

I have pushed and adopted IContextKeyService#bufferChangeEvents and I also fixed an interesting issue that would trigger events from child/scoped context services on its parent. With those changes, the event still fires 233 times but less listeners are reached and only ~30ms is spent processing them.
I will push some more tweaks to the event itself but not do the event-pausing on lifecycle events.

@sandy081 I leave the ViewDescriptorCollection to you

@jrieken I looked into this a bit deeply to see if I can start listening to context only when viewlet is visible. But there is a usecase in activity bar to hide viewlet icon if it has no active views. So this needs me to build the model by reading and listening to context keys.

Since no action can be taken un-assigning myself.

no action then


Add: Universidad Eafit

Add: Universidad Eafit

@hfbanilatq I am sorry, the domain eafit.edu.co is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Feature/fix todo action

Issues are now created from master, dev and feature branches, which is what is expected.

:tada: This PR is included in version 2.0.0-dev.11 :tada:
The release is available on:

GitHub release
v2.0.0-dev.11
v2.0.0-dev.11

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.2.0 :tada:
The release is available on:

GitHub release
v3.2.0
v3.2.0

Your semantic-release bot :package::rocket:


scVI training does not play nicely with other torch code

Module scvi.inference.trainer calls torch.set_grad_enabled(False) on import (line 16).
This silently breaks any code which builds torch graphs after import scvi.inference.
Is there a way to rewrite this with finer granularity?

I would recommend annotating functions with @torch.no_grad instead

It looks like the current version of the code is half-annotated. I can see some with torch.autograd(True) and some with torch.autograd(False) but not everywhere.
If I understand well, the only file that should be annotated with these decorators (@torch.no_grad) are the inference files ? In particular, we should add the decorator to any downstream analysis task (imputation, compute latent space, DE etc...)
@aksarkar @jeff-regier

The training loops are the only places we need gradients. I'm not sure exactly how that translates to adding torch.no_grad annotations.

I annotated the functions and deleted the line mentionned in this issue but it turns out the simple code still does not compute gradients after the following code:
from scvi.inference import UnsupervisedTrainer
Testing code:
`import torch
x = torch.ones(2, 2, requires_grad=True)
print(x)
y = x + 2
print(y)`
Still working on that

OK I have solved the issue and ran the test + the notebooks. PR coming


How to use customvalidator

Hi,
Can you please explain with an example about custom validator.
https://github.com/ctavan/express-validator#customvalidator.

Yes.
Custom validators may be used for anything that's not available by default in the validator library.
A classic example is checking whether the password confirmation matches the given password:
app.post('/create-user', [
  check('password').exists(),
  check('passwordConfirmation', 'passwordConfirmation field must have the same value as the password field')
    .exists()
    .custom((value, { req }) => value === req.body.password)
], loginHandler);

I added this same example to the docs.

Thanks, @gustavohenke for your reply. I will definitely try this, the way you have shown with the example. I have used another approach to validate unique data in the database and I have created a gist for this.
I would like you to please take a look and do let me know your valuable input about this-
https://gist.github.com/milinmestry/a62a7f41976cf7d4a051b35b916af685

Hi @milinmestry! Your approach works fine.
I can also suggest you a full express-validator approach, using the legacy APIs like you are using:
// In your express app definition
app.use(expressValidator({
  customValidators: {
    genreNotExists (value, genreId) {
      return Genre.find().isGenreExists(value, genreId).exec();
    }
  }
}));

// Within your route handler
req.checkBody('name')
  .notEmpty().withMessage('Genre name required')
  .genreNotExists(req.params.id).withMessage('Genre already exists');

// or you could also use req.getValidationResult() :)
req.asyncValidationErrors().then(() => {
  // validation passed
}, errors => {
  // validation failed
});

Hi @gustavohenke!
Could you show an example with checking if email posted in form is already in db?
I am actually working on validation to forms in my app and everything works fine except my custom validations checking db and I don't know what am I doing wrong.
Let me show you some portion of my code:
router.post('/profile/edit', [
   check('email', 'Invalid email format.')
      .optional({ checkFalsy: true })
      .isEmail()
      .custom((value, { req }) => {
         return new Promise((resolve, reject) => {
            User.findOne({ 'email': value }, (err, user) => {
               if(user !== null) {
                  return reject();
               } else {
                  return resolve();
               }
            });
         });
      }).withMessage('This email is already in use'),
   check('password', 'Password must contains 8-25 signs (numbers and letters)')
      .optional({ checkFalsy: true })
      .isLength({ min: 8 })
      .matches(/^[0-9a-zA-Z]{8,}/),
   check('passwordConfirm', 'Passwords must be equal.')
      .exists()
      .custom((value, { req }) => value === req.body.password)
], (req, res, next) => {
   const errors = validationResult(req);

   if(!errors.isEmpty()) {
      return res.render('profile-edit', {
         errors: errors.mapped()
      });
   }

   const data = matchedData(req);
   console.log(data);

   res.redirect('/profile');
});

I receiv error about email already in use, no matter if it really exists in db or not.
i suppose it's because of async nature of what I want to achieve.
Thanks in advance!

@veritimus This is what you can do
const _ = require("lodash");

check("email")
  .custom(async (value, { req }) => {
    let user = await User.findOne({ email: value });

    if (!_.isEmpty(user)) {
      return false;
    }
  })
  .withMessage("Email already exists"),

A custom validator may return a Promise. Now, if the promise is eventually rejected with a particular error string, is there a way to make that string show up in .withMessage()? Thanks for any suggestions.

You have to omit .withMessage() if you wish the custom validator's rejection cause.

Thanks for the helpful reply! So its seems that the error message for a custom validator is -

the string given as an argument to .withMessage(), in the absence of which we get
the error string with which the promise was rejected, in the absence of which we get
the second argument to check()

@veritimus This is what you can do
const _ = require("lodash");

check("email")
  .custom(async (value, { req }) => {
    let user = await User.findOne({ email: value });

    if (!_.isEmpty(user)) {
      return false;
    }
  })
  .withMessage("Email already exists"),

async saves me


Add device info to reports file name

It also adds ability to write TS in the client code.
Change-type: minor
Signed-off-by: Roman Mazur<EMAIL_ADDRESS>

@balena-ci I self-certify!


Scheduled Reduction in Output Scale Issue

In this new paper, the authors argue that the diffusion parameter (output scale in probdiff) should be set on a decreasing schedule (rather than learned in the case of Fenrir).
Diffusion Tempering Improves Parameter Estimation with Probabilistic Integrators for Ordinary Differential Equations
https://arxiv.org/pdf/2402.12231.pdf
Now, I am only interested in the terminal values, so I usually calculate log_marginal_likelihood_terminal_values.
If I follow the schedule described in the paper and I keep the standard_deviation parameter for log_marginal_likelihood_terminal_values constant throughout, all is good.
However, I usually also optimise for the standard_deviation of the observations as part of overall learning process (standard for GP regression). This is where I now run into to sporadic nan issues. Specifically,
line 254, in __call__
    ell = solution.log_marginal_likelihood_terminal_values(
  File "/home/adam/anaconda3/envs/jax_torch_latest/lib/python3.10/site-packages/probdiffeq/solvers/solution.py", line 98, in log_marginal_likelihood_terminal_values
    _corrected, logpdf = _condition_and_logpdf(rv, u, model)
  File "/home/adam/anaconda3/envs/jax_torch_latest/lib/python3.10/site-packages/probdiffeq/solvers/solution.py", line 103, in _condition_and_logpdf
    observed, conditional = impl.conditional.revert(rv, model)
  File "/home/adam/anaconda3/envs/jax_torch_latest/lib/python3.10/site-packages/probdiffeq/impl/isotropic/_conditional.py", line 40, in revert
    r_ext_p, (r_bw_p, gain) = cholesky_util.revert_conditional(
  File "/home/adam/anaconda3/envs/jax_torch_latest/lib/python3.10/site-packages/probdiffeq/util/cholesky_util.py", line 98, in revert_conditional
    R = control_flow.cond(
File "/home/adam/anaconda3/envs/jax_torch_latest/lib/python3.10/site-packages/probdiffeq/backend/control_flow.py", line 58, in cond
    return jax.lax.cond(use_true_func, true_func, false_func, *operands)
jax._src.source_info_util.JaxStackTraceBeforeTransformation: FloatingPointError: invalid value (nan) encountered in jit(cond).

The value of learned standard_derivation term and the scale_output at the time of the crash aren't doing anything crazy.
My current setup is far too complicated for a quick MVE, so I am wondering if there is any advice of about exactly what this part of the code is doing and perhaps how I can try and figure out how to avoid the dreaded nan.

My initial guess would be the following: the part of the code you linked computes a QR decomposition of a stack of covariance matrices, and this (or any) QR decomposition is not reverse-mode differentiable as soon as one of the covariance matrices is rank deficient.
This is why the call to QR is embedded into a cond, which checks whether one of the covariances is exactly zero. Maybe you do not have an exactly-zero covariance, but one that is rank deficient in a more subtle way.
What do you think?

Hi :) This issue has not received any updates for a while, and without any open todos, I'll close it. But please feel free to reopen if something is still up!


Investigate why mima doesn't complain about the binary incompatible change in 2.12.8

2.12.8 omits static forwarders that are emitted by 2.12.6. This doesn't show up in mima.
Example in https://github.com/lrytz/mima-2.12.8

@lrytz this is due to filtering out all static methods in https://github.com/lightbend/migration-manager/blob/0.3.0/core/src/main/scala/com/typesafe/tools/mima/core/ClassfileParser.scala#L249 with comes from https://github.com/lightbend/migration-manager/pull/142.

Thank you, Dale!

this is due to filtering out all static methods

Changed that in #295, so good-faith assumed this is also resolved.


fzf: 0.27.0 -> 0.27.1

https://github.com/junegunn/fzf/releases/tag/0.27.1

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Added a release notes entry if the change is major or breaking
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 123982 at 60dfaef8 run on x86_64-linux 1

18 packages built successfully:

fishPlugins.forgit
fishPlugins.fzf-fish
fontpreview
fzf
fzf-zsh
haskellPackages.neuron
kakounePlugins.fzf-kak
navi
neuron-notes
spacevim
tmuxPlugins.extrakto
tmuxPlugins.tmux-fzf
unipicker
vimPlugins.fzf-vim
vimPlugins.fzfWrapper
xmloscopy
ytfzf
zoxide


Key lag

Hi all,
We're experiencing key lag when connecting from Windows to Linux, and we're still not sure why. It's only a small delay, but it is noticeable - something not seen when logged directly into the machine.
Digging into the code I see the following:
xrdp_bitmap.c line 1988
if ((c >= 32) && (num_chars < 127) && (num_bytes < 250))
{
    add_char_at(self->caption1, 255, c, self->edit_pos);
    self->edit_pos++;
    xrdp_bitmap_invalidate(self, 0);
}

I was curious if calling xrdp_bitmap_invalidate on every key down event is a little expensive, as the events are processed individually. Might it be better scheduled every 100ms or so? It's possible to get 2 or, at a push, 3 keypress events in the space of 100ms (using the timestamps on keypress events with fastpath off for input - which may slow them down).
I may be headed down the wrong path, as I haven't dug into xrdp_painter - perhaps that queues, or discards stale repaints (if not already doing this, could this be a better option as scheduling overhead may be detrimental?), but I am eager for some expert opinions on the matter.
Would xrdp benefit from a less frequent call to xrdp_bitmap_invalidate? Is there a chance doing so may lessen the lag between key events?
TIA!

It might be worth considering.


Create Full Application Example

Overview
Adds a fully developed Vue application that demonstrates how to use many features available in UXP. The purpose of this sample/example is to show UXP Photoshop plugins in practice and to give developers an idea of what a full application might look like.
Functionality
The plugin in this example called, Plugin Info, is a simple UXP plugin that allows the user to view information on any installed UXP and CEP plugins. The plugin itself makes use of multiple entry points, interacts with the user's filesystem, includes persistent data, and more.
Documentation
Since this example is more complex and less straightforward than a plain sample, a section called The code explained as been added. The idea behind this section is to help guide developers through the plugin by providing a written explanation of the different parts of the code.
Extra Thoughts
This PR is definitely a bit different from the other samples in this repo. So, please let me know if you feel it doesn't quite fit!
Also of note, the code itself at its current state lacks comments. If you think this is something that should probably be included then let me know! I'll gladly go through and add them where I feel it might be necessary. The plugin could probably also use a refactor. Specifically, adding Vue Router and Vuex would make most of the code a lot cleaner and easier to follow.
If you have any questions feel free to let me know! Thanks!

It would be nice  a vuetify, tabs and router example.
Thanks!

Couple of quick points:

The "typical path" entries should be theme aware. On Ps in a light theme, they are quite hard to read at the moment.
The UXP typical path should append "External"
When there are errors in loading plugins, these are silent -- you might want to provide some error messages (right now they're on the console)
The console is showing several error messages about missing manifest.json when loading CEP plugins

Hi! Thanks for the feedback! Good catch on the theme-aware issues! I didn't notice that. Also, in terms of handling errors, that's a really good idea and definitely a shortcoming on my part. I'll add that in and also look into the issues you're experiencing with loading CEP plugins


Investigate compression.

Once you get up above a few circuit breakers, you can be sending a few KB a second.  Not the biggest thing in the world, but it might be beneficial to compress the stream.  This would, presumably, make it better/more responsive over spotty connections with limited bandwidth.
There's a few examples of doing streaming compression with DeflaterOutputStream, and I've seen one or two examples (albeit in other languages) of people supposedly doing streaming compression WITH server-sent events.  Haven't really dug in but we should poke around, see if it's possible.

Picking this back up to take another look.

Taken care of in #9.


Moved inline requires on top

Thanks for your pull request. I can see how this solves the problem that require('angular') returns undefined. However the fix assumes that the require('angular') statement has a sideeffect of adding angular to the global object. I would prefer if the fix was a little more defensive, so what about changing line 12 to:
module.exports = factory(require('react'), require('angular') || root['angular']);

Would that solve your issue ?
@davidchang any preferences ?

No it says TypeError: angular.module is not a function

require('angular') returns an empty object , instead of undefined so we can reverse it like this
    module.exports = factory(require('react'),angular || require('angular'));

Using global angular if there or require one

@thetutlage I created a pull request to your test repository that works for me. Let me know how you get on.


Bugfix/fix wrong size of drop locations

Checklist

[x] I tested the changes and all related features on the test server https://artemistest.ase.in.tum.de.
[x] I documented my source code using the JavaDoc / JSDoc style.
[x] I added integration test cases for the server (Spring) related to the features
[x] I added integration test cases for the client (Jest) related to the features
[x] I added screenshots/screencast of my UI changes
[x] I translated all the newly inserted strings

Motivation and Context
The drop images when dragging them onto a drop location were not displayed correctly within a drop location. The image should be horizontally and vertically centered in the drop location and displayed in its max width/height with the original aspect ratio.
Description
I changed the css for the drop location image and also re-aligned the items in the sample solution page.
Steps for Testing

Log in to ArTEMiS
Navigate to Course Administration
Go to Drag-And-Drop Exercise Preview and drag/drop the images

Screenshots

Can be tested here: https://artemistest.ase.in.tum.de/#/quiz/573/preview


Stop breathing = Nightmode ?

What is the purpose of nightmode ?
I want to stop green breathe during the night so I set night mode to "23:00 / 7:00" and change rpi timezone to Paris but that doens't work..
Current default time zone: 'Europe/Paris'
Local time is now:      Fri Nov 15 00:06:17 CET 2019.
Universal Time is now:  Thu Nov 14 23:06:17 UTC 2019.

[global]
model=respeaker_2_mic_hat
led_bri=255
on_idle=true
on_listen=true
on_speak=true
to_mute=true
to_unmute=true
idle_colour=green
listen_colour=blue
speak_colour=purple
mute_colour=yellow
unmute_colour=green
nightmode=true
go_sleep=23:00
go_wake=7:00
feedback_sound=true

[static]
config_ver=0.2

I have exact the same problem. The green idle-leds breath 24/7.


Is the journal published?

Hi,
Thank you for sharing your research.
This research is useful. I want to cite the paper.
Cheers and thanks again,
et0704a

Hi et0704a,
Sorry our paper is still under review after revision, and we didn't have a preprint.
In worst case you could cite the github repo.
Thank you so much for showing interest!

Thank you for your prompt reply.


RegexMatchSpan with sep="" concatenates words with sep="(space)"

Describe the bug
A clear and concise description of what the bug is.
A sentence "123 456 789" is parsed and gets three words "123", "456", and "789".
I'd like to match a number like
RegexMatchSpan(rgx=r"\d{9}", sep="")

but sep="" has no effect.
To Reproduce
Steps to reproduce the behavior:

Have a sentence "123 456 789"
Parse it
Try to match it with RegexMatchSpan(rgx=r"\d{9}", sep="")

Expected behavior
A clear and concise description of what you expected to happen.
RegexMatchSpan(rgx=r"\d{9}", sep="") matches a sentence of "123 456 789".
Environment (please complete the following information):

Fonduer Version: 0.6.2

Additional context
Add any other context about the problem here.
I think the root cause of this issue is the following implementation.
https://github.com/HazyResearch/fonduer/blob/f8662486774e5aa5991243f7646a1d61fd1c519a/src/fonduer/candidates/models/span_mention.py#L140-L159
where a is words by default.

This "Special behavior" dates back to snorkel-team/snorkel@7b579278f735665712eb15a814969228a643ed30.


cannot open IPFS DESKTOP on MAC

repo.lock: someone else has the lock,  can not run ipfs desktop.... help

OS: [macOS]
Version of IPFS Desktop [0.12.2]
2020-07-21T03:50:50.137Z error: [ipfsd] start daemon Error: Initializing daemon...
go-ipfs version: 0.5.1
Repo version: 9
System version: amd64/darwin
Golang version: go1.13.10
Error: lock /Users/chendifeng/IPFS001/.ipfs/repo.lock: someone else has the lock
Command failed with exit code 1: /Applications/IPFS Desktop.app/Contents/Resources/app.asar.unpacked/node_modules/go-ipfs-dep/go-ipfs/ipfs daemon --migrate --enable-gc --routing dhtclient
Error: lock /Users/chendifeng/IPFS001/.ipfs/repo.lock: someone else has the lock
Initializing daemon...
go-ipfs version: 0.5.1
Repo version: 9
System version: amd64/darwin
Golang version: go1.13.10
config.txt
error.log

Sorry for the late response, but this it not related with ipfs-webui. If this is still a problem please open the issue in ipfs-desktop.


How to get the name of icon using getObjectProperties method?

Version
3.7.0

Development Environment
macOS Mojave, Firefox/Chrome/Edge
Current Behavior
How to get the name of the icon?
using
imageEditor.getObjectProperties(id, 'type');
It always returns 'icon'. How do i get the name of the icon?
Expected Behavior
get the name of the icon example Arrow or Arrow-2 etc.

@gaga0202
Okay, I'll consider adding icon name to icon object. Thanks.

@gaga0202
Okay, I'll consider adding icon name to icon object. Thanks.

I fixed it for my project. It happens while creating the icon the type is hardcoded to "icon" instead of inheriting the value of type.


@tomayac So sorry for the delayed response! I've spoken with our engineers and this isn't a change we're looking to make in the docs. Most DNS providers add the trailing dot implicitly and will remove it in the UI if you include the trailing dot, so this addition would add confusion for the majority of users.

@tomayac So sorry for the delayed response! I've spoken with our engineers and this isn't a change we're looking to make in the docs. Most DNS providers add the trailing dot implicitly and will remove it in the UI if you include the trailing dot, so this addition would add confusion for the majority of users.
Thank you so much for your interest in improving the GitHub documentation!
Originally posted by @janiceilene in https://github.com/github/docs/issues/5359#issuecomment-834852572

@tomayac So sorry for the delayed response! I've spoken with our engineers and this isn't a change we're looking to make in the docs. Most DNS providers add the trailing dot implicitly and will remove it in the UI if you include the trailing dot, so this addition would add confusion for the majority of users.
Thank you so much for your interest in improving the GitHub documentation!
Originally posted by @janiceilene in github/docs#5359 (comment)


Intelligently accept React::Elements

given this:
class MyComponent < React::Component::Base
  param :foo type: React::Element
  ...
end

we should then be able to say
MyComponent(div { "hello"}) instead of MyComponent(div {"hello"}.as_node)
This may not be easily implementable but it sure would be nice.  I'm just not sure if apply as_node inside of another components' validator will work, because by that time we may not know the rendering context.
Furthermore if the param is any other type that responds to to_s  we should automatically convert it (by doing a .to_s.span)  This we can easily do.

Looks like we are sort of already doing this in 0.7... any Elements passed to other other elements are automatically removed from the rendering buffer.

This issue was moved to reactrb/reactrb#103


Bottom Nav Enhancement

Fixes Issue #29

Changes proposed

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

@essy16
The application screenshot is unclear. Can you please provide a better-quality screenshot and a demo video?

A video of the code ?

Video of the application

https://github.com/Suryansh1720001/Taaveez/assets/58663564/3d52c377-175d-4cb6-9513-92faddab72f3

Hello @essy16
The bottom navigation is not properly aligned and the styling needs improvement. Please suggest an alternative solution or I will close the pull request in two days. Please update me accordingly.
Thank You

Hello @essy16
The bottom navigation is not properly aligned and the styling needs improvement. Please suggest an alternative solution or I will close the pull request in two days. Please update me accordingly.
Thank You
How do you want it to be aligned and styled ?

@essy16
Please improve the style, and ensure that the bottom navigation is aligned at the bottom properly, rather than being positioned above it.

To be frank, I find the current design rather unappealing. I must express my preference for the previous design, which I found to be more attractive. I apologize for the inconvenience, but I kindly request that you redefine the current design to align with the theme of the previous iteration. Regrettably, I do not possess a screenshot of the previous design.
Additionally, I have a suggestion for you. I recommend utilizing the previous design without incorporating a color change option for the item. Instead, consider implementing two types of items. The first type would be a simple item that is readily available within the application. The second type would be a detailed view item, which allows users to view a portion of the content. To achieve this, you can adopt the concept of invisible/visible views commonly used in Android development. The two types of items can be accessed through a pop-up menu, offering the options of "Normal View" and "Detailed View".


Fix undefined iconAnchor

With the implementation of #8042 a error occurs (mostly on DivIcons) if iconAnchor is not defined.
Fixes issues in #8044.

This is a good example of a bug that TypeScript would have caught for us :smile:


Exit code when I start tmux

I get this whenever I start a new tmux session, which is done automatically thanks to ohmyzsh. What does this error mean and how can I resolve it? Thanks!

Hello @OlaoluwaM 👋
It means a tpm plugins failed to initialize.
Please make sure you Oh my tmux is up to date and reload the configuration with <prefix> + r. Then disable plugins in your ~/.tmux.conf.local copy to identify the faulty plugin

Thanks for the quick response! The error seems to disappear only when I have commented out all my plugins
Also, I noticed that only after I press CTRL + C after the exit code message shows up, that the plugins load. Does that mean anything?

Can you tell me what OS you're using, what version of tmux, and which plugins?

OS: Fedora Workstation 35
Tmux: 3.2a
Plugins: tmux-resurrect, tmux-cpu, tmux-continuum, extrakto, tmux-urlview, tmux-network-bandwidth

Did you manage to do the following checks?

disable all plugins and see if the error disappears
if yes, enable plugins one by one until the error appears again

Yes! I followed the checks

Thanks for the quick response! The error seems to disappear only when I have commented out all my plugins
Also, I noticed that only after I press CTRL + C after the exit code message shows up, that the plugins load. Does that mean anything?

Here are my observations

Ah yes sorry.
Can you please make sure you'r using commit 96d085eaa702a5c2b003961e46aa5378d7e6d93e from the master branch then run this from within a tmux pane?
$ cut -c3- ~/.tmux.conf | sh -sx __apply_plugins "" true true true

This is the output of cut -c3- ~/.tmux.conf | sh -sx __apply_plugins "" true true true

Still getting the error when I startup tmux, I even recopied the .tmux.conf file from the new commit

And now can you please launch
$ tmux set -g @plugin dummy && cut -c3- ~/.tmux.conf | sh -sx __apply_plugins "" true true true

This should clone tpm into ~/.tmux/plugins/tpm, install plugins and there also should be  ~/.tmux/plugins/tpm_log.txt file

Error persists :(

Here is the contents of the ~/.tmux/plugins/tpm_log.txt file

Are the screenshot you shared in the correct order?
Can you please paste the result as text instead?
I still can't understand which command has a 128 error code.
Also, I don't know what Ctrl-C does on your setup, can you please paste the output of
$ tmux lsk | grep C-c

Oh sorry for the confusion. So whenever I start up my terminal with a new tmux session I get
cut -c3- ~/.tmux.conf | sh -s __apply_plugins "" "true" "true" "true"' returned 128

Here is the output of tmux set -g @plugin dummy && cut -c3- ~/.tmux.conf | sh -sx __apply_plugins "" true true true
+ :
+ set -e
+ unset GREP_OPTIONS
+ export LC_NUMERIC=C
+ LC_NUMERIC=C
+ printf ''
+ sed -E s///
++ uname -s
+ _uname_s=Linux
++ tmux -V
++ awk '{gsub(/[^0-9.]/, "", $2); print ($2+0) * 100}'
+ _tmux_version=320
+ command -v pkill
+ __apply_plugins '' true true true
+ window_active=
+ tmux_conf_update_plugins_on_launch=true
+ tmux_conf_update_plugins_on_reload=true
+ tmux_conf_uninstall_plugins_on_reload=true
+ TMUX_PLUGIN_MANAGER_PATH=/home/olaolu/.tmux/plugins
++ tmux show -gv @plugin
+ '[' -z dummy ']'
+ git ls-remote -hq https://github.com/gpakosz/.tmux.git master
+ '[' '!' -d /home/olaolu/.tmux/plugins/tpm ']'
+ '[' -z '' ']'
+ _is_enabled true
+ '[' xtrue = xtrue ']'
+ update_tpm=true
+ tmux display 'Updating tpm and plugins...'
+ cd /home/olaolu/.tmux/plugins/tpm
+ git checkout -q master
+ git reset -q --hard HEAD
+ git pull -q origin master
+ '[' x = xtrue ']'
+ '[' xtrue = xtrue ']'
+ perl -0777 -p -i -e 's/git clone/git clone --depth 1/g
                            ;s/(install_plugin "\$plugin")\n(\s+)done/\1&\n\2done\n\2wait/g' /home/olaolu/.tmux/plugins/tpm/scripts/install_plugins.sh
+ wait
+ perl -p -i -e 's/git submodule update --init --recursive/git submodule update --init --recursive --depth 1/g' /home/olaolu/.tmux/plugins/tpm/scripts/update_plugin.sh
+ perl -p -i -e 's,\$tmux_file\s+>/dev/null\s+2>\&1,$& || { tmux display "Plugin \$(basename \${plugin_path}) failed" && false; },' /home/olaolu/.tmux/plugins/tpm/scripts/source_plugins.sh
+ tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH /home/olaolu/.tmux/plugins
+ '[' xtrue = xtrue ']'
+ /home/olaolu/.tmux/plugins/tpm/bin/install_plugins
+ /home/olaolu/.tmux/plugins/tpm/bin/update_plugins all
+ /home/olaolu/.tmux/plugins/tpm/bin/clean_plugins all
+ tmux display 'Done updating tpm and plugins...'
++ tmux show -gqv @tpm-install
+ '[' -z '' ']'
+ tmux set -g @tpm-install I
++ tmux show -gqv @tpm-update
+ '[' -z '' ']'
+ tmux set -g @tpm-update u
++ tmux show -gqv @tpm-clean
+ '[' -z '' ']'
+ tmux set -g @tpm-clean M-u
+ '[' -f /home/olaolu/.tmux/plugins/tpm/tpm ']'
+ /home/olaolu/.tmux/plugins/tpm/tpm
+ '[' 320 -gt 260 ']'
+ tmux set -gu @tpm-install ';' set -gu @tpm-update ';' set -gu @tpm-clean ';' set -gu @plugin
+ '[' -z '' ']'
+ '[' 320 -lt 240 ']'

Here are the contents of ~/.tmux/plugins/tpm_log.txt
Already installed "tmux-resurrect"
Already installed "tmux-continuum"
Already installed "tmux-cpu"
Already installed "tmux-network-bandwidth"
Already installed "extrakto"
Already installed "tmux-urlview"
Updating all plugins!

  "tmux-network-bandwidth" update success
  "tmux-cpu" update success
  "extrakto" update success
  "tmux-resurrect" update success
  "tmux-urlview" update success
  "tmux-continuum" update success

Are the screenshot you shared in the correct order?
Can you please paste the result as text instead? I still can't understand which command has a 128 error code.
Also, I don't know what Ctrl-C does on your setup, can you please paste the output of
$ tmux lsk | grep C-c

Oh Ctrl + C just kills a process, it is not bound to any tmux operation

What I don't understand so far is why the exit code is 128 when you start tmux but is 0 when you launch tmux set -g @plugin dummy && cut -c3- ~/.tmux.conf | sh -sx __apply_plugins "" true true true
What's the output of $ tmux lsk | grep C-c btw?

Here is the output of tmux lsk | grep C-c
 bind-key    -T copy-mode       C-c                  send-keys -X cancel
 bind-key    -T copy-mode-vi   C-c                  send-keys -X cancel
 bind-key    -T prefix                 C-c                  new-session

Oh Ctrl + C just kills a process, it is not bound to any tmux operation

I don't think it kills anything to be honest. It would be SIGINT sent to tmux itself if you type CTRL + C when tmux is displaying its message

Oh, okay, my bad. Anything else I can do to help debug this?

Can you please try the gh-540 branch?
Quit tmux. Switch to the gh-540 branch. Launch tmux, when you'll have a /tmp/debug.txt file that tries to capture what's going on with __apply_plugins()

Also, I thought I should let you know that I had installed the tmux plugin for oh-my-zsh. With this plugin, I am able to auto-start tmux along with oh-my-zsh and when I exit tmux I also kill my terminal

It worked!
Here are the contents of the /tmp/debug.txt file
  + window_active=
+ tmux_conf_update_plugins_on_launch=true
+ tmux_conf_update_plugins_on_reload=true
+ tmux_conf_uninstall_plugins_on_reload=true
+ TMUX_PLUGIN_MANAGER_PATH=/home/olaolu/.tmux/plugins
++ tmux show -gv @plugin
+ '[' -z tmux-plugins/tmux-urlview ']'
+ git ls-remote -hq https://github.com/gpakosz/.tmux.git master
+ '[' '!' -d /home/olaolu/.tmux/plugins/tpm ']'
+ '[' -z '' ']'
+ _is_enabled true
+ '[' xtrue = xtrue ']'
+ update_tpm=true
+ tmux display 'Updating tpm and plugins...'
+ cd /home/olaolu/.tmux/plugins/tpm
+ git checkout -q master
+ git reset -q --hard HEAD
+ git pull -q origin master
+ '[' x = xtrue ']'
+ '[' xtrue = xtrue ']'
+ perl -0777 -p -i -e 's/git clone/git clone --depth 1/g
                            ;s/(install_plugin "\$plugin")\n(\s+)done/\1&\n\2done\n\2wait/g' /home/olaolu/.tmux/plugins/tpm/scripts/install_plugins.sh
+ perl -p -i -e 's/git submodule update --init --recursive/git submodule update --init --recursive --depth 1/g' /home/olaolu/.tmux/plugins/tpm/scripts/update_plugin.sh
+ perl -p -i -e 's,\$tmux_file\s+>/dev/null\s+2>\&1,$& || { tmux display "Plugin \$(basename \${plugin_path}) failed" && false; },' /home/olaolu/.tmux/plugins/tpm/scripts/source_plugins.sh
+ tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH /home/olaolu/.tmux/plugins
+ '[' xtrue = xtrue ']'
+ echo 'Invoking /home/olaolu/.tmux/plugins/tpm/bin/install_plugins ...'
+ /home/olaolu/.tmux/plugins/tpm/bin/install_plugins
+ echo 'Invoking /home/olaolu/.tmux/plugins/tpm/bin/update_plugins all ...'
+ /home/olaolu/.tmux/plugins/tpm/bin/update_plugins all
+ echo 'Invoking /home/olaolu/.tmux/plugins/tpm/bin/clean_plugins all ...'
+ /home/olaolu/.tmux/plugins/tpm/bin/clean_plugins all
+ tmux display 'Done updating tpm and plugins...'
++ tmux show -gqv @tpm-install
+ '[' -z I ']'
++ tmux show -gqv @tpm-update
+ '[' -z u ']'
++ tmux show -gqv @tpm-clean
+ '[' -z M-u ']'
+ '[' -f /home/olaolu/.tmux/plugins/tpm/tpm ']'
+ /home/olaolu/.tmux/plugins/tpm/tpm
+ '[' 320 -gt 260 ']'
+ tmux set -gu @tpm-install ';' set -gu @tpm-update ';' set -gu @tpm-clean ';' set -gu @plugin
+ '[' -z '' ']'
+ '[' 320 -lt 240 ']'
+ set +x
 set -gu @tpm-clean ';' set -gu @plugin
+ '[' -z '' ']'
+ '[' 320 -lt 240 ']'
+ set +x

The gh-540 branch changes pretty much nothing except not invoking perl in parallel. I still can't pinpoint the 128 error code you're getting.

This may sound noobish, but is it possible for a shell to not have perl installed?

perl is almost always installed and is a dependency of many things like git.
You can double check with $ command -v perl

When you say "it worked", is it with tmux / oh my zsh integration disabled?

No, it's with the integration enabled

And yes, you are right. Perl is installed 😃

Can you please go to ~/.tmux/plugins/tpm and do
$ git status

$ git --no-pager diff

and paste the results here?

For the git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   scripts/install_plugins.sh
        modified:   scripts/source_plugins.sh
        modified:   scripts/update_plugin.sh

no changes added to commit (use "git add" and/or "git commit -a")

For the git --no-pager diff
diff --git a/scripts/install_plugins.sh b/scripts/install_plugins.sh
index 81e6836..732cc18 100755
--- a/scripts/install_plugins.sh
+++ b/scripts/install_plugins.sh
@@ -17,10 +17,10 @@ clone() {
        local branch="$2"
        if [ -n "$branch" ]; then
                cd "$(tpm_path)" &&
-                       GIT_TERMINAL_PROMPT=0 git clone -b "$branch" --single-branch --recursive "$plugin" >/dev/null 2>&1
+                       GIT_TERMINAL_PROMPT=0 git clone --depth 1 --depth 1 -b "$branch" --single-branch --recursive "$plugin" >/dev/null 2>&1
        else
                cd "$(tpm_path)" &&
-                       GIT_TERMINAL_PROMPT=0 git clone --single-branch --recursive "$plugin" >/dev/null 2>&1
+                       GIT_TERMINAL_PROMPT=0 git clone --depth 1 --depth 1 --single-branch --recursive "$plugin" >/dev/null 2>&1
        fi
 }

diff --git a/scripts/source_plugins.sh b/scripts/source_plugins.sh
index 6381d54..2e4ae4d 100755
--- a/scripts/source_plugins.sh
+++ b/scripts/source_plugins.sh
@@ -21,7 +21,7 @@ silently_source_all_tmux_files() {
                        # unexpanded glob which obviously doesn't exist
                        [ -f "$tmux_file" ] || continue
                        # runs *.tmux file as an executable
-                       $tmux_file >/dev/null 2>&1
+                       $tmux_file >/dev/null 2>&1 || { tmux display "Plugin $(basename ${plugin_path}) failed" && false; } || { tmux display "Plugin $(basename ${plugin_path}) failed" && false; }
                done
        fi
 }
diff --git a/scripts/update_plugin.sh b/scripts/update_plugin.sh
index 68bf605..8419753 100755
--- a/scripts/update_plugin.sh
+++ b/scripts/update_plugin.sh
@@ -22,7 +22,7 @@ pull_changes() {
        local plugin_path="$(plugin_path_helper "$plugin")"
        cd "$plugin_path" &&
                GIT_TERMINAL_PROMPT=0 git pull &&
-               GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive
+               GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive --depth 1 --depth 1
 }

 update() {

Can you confirm the master branch still gives you a 128 error code?

It doesn't

Ah, it still does

What surprises me is that the diffs you pasted show e.g.
+               GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive --depth 1 --depth 1

There's --depth 1 twice which shouldn't happen. It looks like Oh my tmux is patching TPM twice and maybe there's a race condition here if tmux source is invoked twice in parallel.
I pushed more code to the gh-540 code in order to try to prevent that. Can you please test the branch and report result of git --no-pager diff launched from the ~/.tmux/plugins/tpm directory?

Checked out to the gh-540 branch.
Copied its .tmux.conf.
Entered the ~/.tmux/plugins/tpm directory and ran git --no-pager diff
Here is the output
diff --git a/scripts/install_plugins.sh b/scripts/install_plugins.sh
index 81e6836..98ff1a8 100755
--- a/scripts/install_plugins.sh
+++ b/scripts/install_plugins.sh
@@ -17,10 +17,10 @@ clone() {
        local branch="$2"
        if [ -n "$branch" ]; then
                cd "$(tpm_path)" &&
-                       GIT_TERMINAL_PROMPT=0 git clone -b "$branch" --single-branch --recursive "$plugin" >/dev/null 2>&1
+                       GIT_TERMINAL_PROMPT=0 git clone --depth 1 -b "$branch" --single-branch --recursive "$plugin" >/dev/null 2>&1
        else
                cd "$(tpm_path)" &&
-                       GIT_TERMINAL_PROMPT=0 git clone --single-branch --recursive "$plugin" >/dev/null 2>&1
+                       GIT_TERMINAL_PROMPT=0 git clone --depth 1 --single-branch --recursive "$plugin" >/dev/null 2>&1
        fi
 }

diff --git a/scripts/source_plugins.sh b/scripts/source_plugins.sh
index 6381d54..029f3b4 100755
--- a/scripts/source_plugins.sh
+++ b/scripts/source_plugins.sh
@@ -21,7 +21,7 @@ silently_source_all_tmux_files() {
                        # unexpanded glob which obviously doesn't exist
                        [ -f "$tmux_file" ] || continue
                        # runs *.tmux file as an executable
-                       $tmux_file >/dev/null 2>&1
+                       $tmux_file >/dev/null 2>&1 || { tmux display "Plugin $(basename ${plugin_path}) failed" && false; }
                done
        fi
 }
diff --git a/scripts/update_plugin.sh b/scripts/update_plugin.sh
index 68bf605..f5ade19 100755
--- a/scripts/update_plugin.sh
+++ b/scripts/update_plugin.sh
@@ -22,7 +22,7 @@ pull_changes() {
        local plugin_path="$(plugin_path_helper "$plugin")"
        cd "$plugin_path" &&
                GIT_TERMINAL_PROMPT=0 git pull &&
-               GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive
+               GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive --depth 1
 }

 update() {

Seems like what you did worked 😄

It works! Thank you!!

For anyone else googling this error, this will come up if you dont have perl on your path by default. In my case, as a user of asdf i did not have a global version set for perl, causing the error. Setting asdf global perl latest or similar resolves it.


[logstash] Support fullnameOverride

[x] Chart version not bumped (the versions are all bumped and released at the same time)
[x] README.md updated with any new values or changes
[x] Updated template tests in ${CHART}/tests/*.py
[ ] Updated integration tests in ${CHART}/examples/*/test/goss.yaml

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

I have signed, but the CLA-checker doesn't still pass...

Wait, why we aren't merging this?


feels like temperature

In the latest version (2.2.7), the value of the perceived temperature is no longer rounded :-)
pretty accurate, but is that the way it should be? :-)

It was never rounded, no changes for this in the latest version. It is pure displaying the sensor value. But I can have a look to round it to avoid this kind of behavior.

That's interesting, then the behaviour must come from HA version 2024.2.0/1.
Unfortunately, the rounding setting in the entity settings of the sensor has no influence on this.

This does not seem to be fixed for me in 2.3.0:


#2305 Evaluation tile rework

Moved the Score (Bar) below the Heatmap, showing the limits for warning/failed
Showing the comparsion strategy as specified in the SLO.yaml
Removed and rearranged some labels/infos

If there is the result warning, can we change the "less" to a "less or equals".

should be: 50 <= 50 < 90

If there is the result warning, can we change the "less" to a "less or equals".

should be: 50 <= 50 < 90

Yes, changed the "less" to a "less or equals". Also in case the evaluation is passed, it shows "less or equal" the pass limit.


Unit Tests for HTTP Client Wrapper

Add unit test for HTTP Client Wrapper and Evaluator API (evaluator-client sbt module).

The evaluator-client has been removed in #66


Characters in coordinate.toStringHDMS() should be configurable

At the moment, this is limited to NSEW, but this is specific to English, and should be configurable to suit other languages.

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

The function is well documented, and it is only used in two examples. For things like the mouseposition control, the output format can be configured with a function. If the function wasn't marked stable, I'd remove it. But I think it is unimportant enough to keep it as simple as it is, and continue to have it work like documented.


Lua Error

Hey, got that callstack error with 1.8.0 - with 1.7.2 its working for bard.

You need TensorCore (free) installed from the store if you use v1.8.0


MissingMethodException thrown from BulkExecutor when using the latest MS.Azure.DocumentDB package

While looking at newer versions of packages in the repro for #617, I found that when using the latest Microsoft.Azure.CosmosDB.BulkExecutor package (1.1.1) and the latest Microsoft.Azure.DocumentDB package (2.1.3), the same repro steps throws a MissingMethodException:

Message: System.MissingMethodException : Method not found: 'System.Threading.Tasks.Task`1<Microsoft.Azure.Documents.Routing.CollectionRoutingMap> Microsoft.Azure.Documents.Routing.PartitionKeyRangeCache.TryLookupAsync(System.String, Microsoft.Azure.Documents.Routing.CollectionRoutingMap, System.Threading.CancellationToken)'.

Result StackTrace:
at Microsoft.Azure.CosmosDB.BulkExecutor.BulkExecutor.<InitializeAsync>d__17.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
   at Microsoft.Azure.CosmosDB.BulkExecutor.BulkExecutor.InitializeAsync()
   at Microsoft.Azure.CosmosDB.BulkExecutor.Graph.GraphBulkExecutor.<InitializeAsync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at GremlinExportTests.<Foo1>d__7.MoveNext() in D:\git\VSCloudKernel\src\DumpLanguageServer.Tests\GremlinExportTests.cs:line 80
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Result Message:	System.MissingMethodException : Method not found: 'System.Threading.Tasks.Task`1<Microsoft.Azure.Documents.Routing.CollectionRoutingMap> Microsoft.Azure.Documents.Routing.PartitionKeyRangeCache.TryLookupAsync(System.String, Microsoft.Azure.Documents.Routing.CollectionRoutingMap, System.Threading.CancellationToken)'.

This is not the first time that newer Azure SDK packages have broken other Azure SDK packages. #577 is another one that happened recently. Are these packages consuming internals of each other, or are these packages actually breaking public API in minor releases as it appears to be?

Our apologies. The bulk executor with a fix for this issue will be released by tomorrow Thu 18th.
The root cause here is bulk executor library is a preview functionality built on a separate system, but it is consuming internal API from the Cosmos SDK. Our plan is to pull this library into SDK in the near future to clean this up.

Getting the same issue on the .net core version 2.0.0-preview2 (only version that supports .net core so must use preview version)

I'm getting the same issue on the .net core version. I'm using the 2.0.0-preview2 (compatible with the documentdb core), I was developing a POC to see if is it possible to replace or mongo driver (used for bulks) by this (2.0.0-preview2) BulkExecutor. I think it's better wait for the stable version

Any news on that? Have the same issues with Azure Functions 2.0 (.net core 2.1)
Microsoft.Azure.CosmosDB.BulkExecutor: Method not found: 'System.Threading.Tasks.Task`1<Microsoft.Azure.Documents.Routing.CollectionRoutingMap> Microsoft.Azure.Documents.Routing.PartitionKeyRangeCache.TryLookupAsync(System.String, Microsoft.Azure.Documents.Routing.CollectionRoutingMap, System.Threading.CancellationToken, Boolean)'.

same issue in 2.3.0-preview2

Same here, packages
Microsoft.Azure.CosmosDB.BulkExecutor -Version 2.3.0-preview2
Install-Package Microsoft.Azure.DocumentDB.Core -Version 2.3.0
Give me this exception

Still repros.  Our projects are a few minor versions behind in many of the Azure storage packages and we can't upgrade them because of this one.

same here with:

Microsoft.Azure.CosmosDB.BulkExecutor 2.3.0-preview2
Microsoft.Azure.DocumentDB.Core 2.4.0

Method not found: 'System.Threading.Tasks.Task`1<Microsoft.Azure.Documents.Routing.CollectionRoutingMap> Microsoft.Azure.Documents.Routing.PartitionKeyRangeCache.TryLookupAsync(System.String, Microsoft.Azure.Documents.Routing.CollectionRoutingMap, System.Threading.CancellationToken, Boolean)'.

error persists with:

Microsoft.Azure.CosmosDB.BulkExecutor 2.3.0-preview2
Microsoft.Azure.DocumentDB.Core 2.5.1

I can confirm that only this combination works for me:

Microsoft.Azure.CosmosDB.BulkExecutor 2.3.0-preview2
Microsoft.Azure.DocumentDB.Core 2.1.3


Minor edits to the GPU section of the manual

@jmellorcrummey I rebased upon your latest manual changes (description for partial unwind). This PR now reorganizes the GPU section and adds a paragraph about the CUPTI_ERROR_NOT_INITIALIZED error in the trouble shooting section.

@jmellorcrummey I rebased upon your latest manual changes (description for partial unwind). This PR now reorganizes the GPU section and adds a paragraph about the CUPTI_ERROR_NOT_INITIALIZED error in the trouble shooting section.