Show extra balloon notifications

Discussed in https://discourse.syncthing.net/t/synctrayzor-windows-host-for-syncthing-installer-auto-start-built-in-browser-tray-icon-folder-watcher-and-more/2011/48.
Asker wants to see:

Device Connected
Device Disconnected
Sync notifications

We can easily do connected / disconnected and file transferred from remote -> local (DeviceConnectedEvent, DeviceDisconnectedEvent, ItemFinishedEvent), but we can't easily to local -> remote (we get a LocalIndexUpdated, followed by a RemoteIndexUpdated. But RemoteIndexUpdated just says how many files have changed - not which ones. It's also fired when a file is spontaneously changed on the remote side).
We also don't want to risk trying to pop up balloon messages too frequently - it gets annoying. Probably a custom list of events which automatically appends / etc. Our tray icon library allows this, but it will take a little bit of trial and error to make it look right.

Maybe have a queue for the messages and prioritize the different types?

Important ones will be displayed immediately (clicking on them might pop a dialog with a question like accept/ignore/later)
Lesser important ones will be grouped by event (like there were 5 completes updates to files in the last 3 minutes) and only spawned every X(configurable) minutes

You might as well turn of lesser importatnt ones in the settings.

I don't think we'll want to display such wordy things that they'll need to be accepted. These are just transient status updates. However grouping / categorising / ordering is probably a sensible thing to be doing!
I'm planning to have all of these customizable in the settings - even the Synced events annoy me :)

I'm planning on displaying device connected / disconnected in the same style as the current 'synced' notifications. For the 'file synced', I'm going to take a long hard look at what Dropbox does - we really run the risk of seriously pissing people when they sync lots of small files if we follow the current route for this.

Sure. Dropbox collects added files in single lists. had the chance to see it in action as we migrated some 500GB backups over there. On the origin you add 100k files, Dropbox uploads them to their system and as soon as a single one of them is uploaded, it triggers the streaming sync feature and streams the parts down to subscribed clients. The notification will be shown as soon as the whole file list is downloaded (100k files). Also on the website they group them in this lists.
Not sure if Syncthing has the same understanding of it, but I would assume it cares about the blocks of single files, so you would need to come up with some grouping mechanism.
The user experience should be as simple as possible. If I copy over a folder with alot of files, it should be only the overall status that I get notified about.

Right, the connectivity alerts are in v1.0.9. Now for developing file lists, where possible...

After a chat on IRC, it looks like we can tell when a file's been synchronized from a remote device to the local folder, but not the other way around. A remote device does not tell us when it's finished updating one of its files, which is essentially what we're asking for. It also wouldn't give any indication of which version is updated it file to - there's no guarentee that it picked up our change, rather than anyone else's.
@Rewt0r, is this still of interest, if we can only display 'downloaded' files?

FYI, this is next on my list, after #37.

Antony, SyncTrayzor is working great in my system.  Thank you for writing it!
I've sen an issue with the balloon notifications: If a laptop goes to sleep overnight, it looks as though its notifications are queued.  And then when the machine is awakened, all the queued "Device Connected/Disconnected" and "Finished Syncing" notifications slowly appear, one after the other.  They appear at least ten seconds apart, and my laptop typically wakes up with hundreds of waiting notifications, so it can take an hour for the notification queue to empty.
Maybe the queue can be pruned of duplicates, or of events older than a certain threshold or something?

If they're appearing 10 seconds apart, it looks like Syncthing's actually telling us 10 seconds apart - when they're properly stacking up, they appear a couple of seconds after one another.
To be honest, I find the notifications largely annoying: that's why there's an option in the settings to turn them off ;) If you look at the log file (C:\Users\<You>\AppData\Roaming\SyncTrayzor\logs\SyncTrayzor.log for the installed version, or data\logs for the portable version) you can see Syncthing's events as they come in (prefixed with 'SyncThingEventWatcher') - you should see FolderSyncStateChanged, DeviceConnected, and DeviceDisconnected events come in.
However, an hour does sound a bit extreme!
Can you open a new issue, and give a excerpt from your log over a period when these balloons are are appearing once every 10 secs? That will nail down for sure whether Syncthing's delivering them periodically, or all at once.

Actually I know what this is. Sit tight until the next release, then let me know if it's still an issue.

Hi @canton7, sorry to bump an old issue but I've just updated our whole cluster to the new Syncthing using SyncTrayzor over Syncthing-Tray and have noticed that the notifications for syncing doesn't display what file was synced. Could you incorporate this if it is not already in your planning? I like the idea of displaying something similar to DropBox/Google Drive.
Thanks for your work.

Yeah, I'm afraid this feature request is both a) a lot of work, and b) not actively breaking anything, which means it's continuously near the bottom of the priority list.
We can get two bits of information from Syncthing:

We know when a folder is in the 'Syncing' state (as opposed to 'Scanning' or 'Idle')
We get notifications when files are downloaded to the current machine

We currently use 1): a transition from Syncting -> anything else is regarded as "folder has finished synchronizing". This feature would need 2), and we'd only be able to notify the user about downloaded files, never uploaded ones (there are a few discussions about this in the Syncthing issues and on the forums).

Just an update: currently in the middle of this. Still got maybe a week's work left on it, here's a sneak peek:

Superb!

Looking good!

Righty, this will be in the next release. Let me know what you think of it!


feat: #149, add count in kv root manifest

The problem with fairDataSociety/issue494Solution1 is that shared pods will not have the feed tracker.
We can always change the leveldb location from user account to pod accounts, so we can get and open the leveldb in readonly mode in case of a shared pod.


#245: proxy support

Enhances #245.

proxy support is implemented for http and https proxies, if environmental variables are set and properly formatted as in the documentation page. Both java http client and git requests are now tracked from Fiddler.
the modifications to the wrapper script are a bit long, but it is necessary to split the variable into host and port before passing them as arguments to the JVM. If a proxy is detected but the format is not the one required by IDEasy, a warning is displayed with a link to the documentation page.
In the documentation page, there is a section for advanced users, where is suggested to add other custom arguments to the JRE if needed. Should we keep this section?
Other related proxy env varibales, which are currently ignored because the following reasons, are:

ftp_proxy : not recognized by Java http client, and we download through http - https anyways
socks_proxy : this proxy is reconized from java http client, it would add quite some parsing in the wrapper script to properly pass it as JVM argument

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
132 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 59.859%

Files with Coverage Reduction
New Missed Lines
%

com/devonfw/tools/ide/io/FileAccessImpl.java
132
55.17%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
4615

Relevant Lines:
7419

💛  - Coveralls


Unable to start test validator (while it was started and runninig)

dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite$ solana-test-validator
Ledger location: test-ledger
Log: test-ledger/validator.log
Identity: AVg9kZxCJMD1bNwPT8fDiVM4qfmkpR8WMYHyFVgJ1iT7
Version: 1.6.5
Gossip Address: <IP_ADDRESS>:1024
TPU Address: <IP_ADDRESS>:61822
JSON RPC URL: http://<IP_ADDRESS>:8899
⠒ 00:00:40 | Processed Slot: 579 | Confirmed Slot: 579 | Finalized Slot: 547 | Snapshot Slot: - | Transactions: 579 | ◎499.997110000

dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite$ anchor build
BPF SDK: /home/dz/.local/share/solana/install/releases/1.6.5/solana-release/bin/sdk/bpf
Running: rustup toolchain list -v
Running: cargo +bpf build --target bpfel-unknown-unknown --release
warning: unused variable: `buf`
  --> programs/composite/src/lib.rs:49:24
   |
49 |     fn try_deserialize(buf: &mut &[u8]) -> Result<Self, ProgramError> {
   |                        ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `buf`
  --> programs/composite/src/lib.rs:53:34
   |
53 |     fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self, ProgramError> {
   |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_buf`

warning: unused variable: `writer`
  --> programs/composite/src/lib.rs:59:48
   |
59 |     fn try_serialize<W: std::io::Write>(&self, writer: &mut W) -> Result<(), ProgramError> {
   |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_writer`

warning: 3 warnings emitted

    Finished release [optimized] target(s) in 0.23s

To deploy this program:
  $ solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite$ anchor deploy
Deploying workspace: http://<IP_ADDRESS>:8899
Upgrade authority: /home/dz/.config/solana/id.json
Deploying /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so...
Program Id: GX31GYSCDwGkhSMKwPCEwKDyEExLLS5xupZLXyq7Y4wd

Deploy success
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite$ anchor test
BPF SDK: /home/dz/.local/share/solana/install/releases/1.6.5/solana-release/bin/sdk/bpf
Running: rustup toolchain list -v
Running: cargo +bpf build --target bpfel-unknown-unknown --release
warning: unused variable: `buf`
  --> programs/composite/src/lib.rs:49:24
   |
49 |     fn try_deserialize(buf: &mut &[u8]) -> Result<Self, ProgramError> {
   |                        ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `buf`
  --> programs/composite/src/lib.rs:53:34
   |
53 |     fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self, ProgramError> {
   |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_buf`

warning: unused variable: `writer`
  --> programs/composite/src/lib.rs:59:48
   |
59 |     fn try_serialize<W: std::io::Write>(&self, writer: &mut W) -> Result<(), ProgramError> {
   |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_writer`

warning: 3 warnings emitted

    Finished release [optimized] target(s) in 0.24s

To deploy this program:
  $ solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
Unable to start test validator.

dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite$ uname -a
Linux DESKTOP-7O591L6 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

updated solana to 1.6.6
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$ anchor build
BPF SDK: /home/dz/.local/share/solana/install/releases/1.6.6/solana-release/bin/sdk/bpf
Running: rustup toolchain list -v
Running: cargo +bpf build --target bpfel-unknown-unknown --release
    Finished release [optimized] target(s) in 0.26s

To deploy this program:
  $ solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$ anchor deploy
Deploying workspace: http://<IP_ADDRESS>:8899
Upgrade authority: /home/dz/.config/solana/id.json
Deploying /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so...
===============================================================================
Recover the intermediate account's ephemeral keypair file with
`solana-keygen recover` and the following 12-word seed phrase:
===============================================================================
divorce distance shy abuse nice border fabric injury cargo output potato divert
===============================================================================
To resume a deploy, pass the recovered keypair as
the [PROGRAM_ADDRESS_SIGNER] argument to `solana deploy` or
as the [BUFFER_SIGNER] to `solana program deploy` or `solana write-buffer'.
Or to recover the account's lamports, pass it as the
[BUFFER_ACCOUNT_ADDRESS] argument to `solana program close`.
===============================================================================
Error: Account GxRySSr4LCk66ayb2HyHUhYjKcUf3ehGSJ6FCUwJLAZY has insufficient funds for spend (1.3530588 SOL) + fee (0.004265 SOL)
There was a problem deploying: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "" }.
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$ anchor deploy
Deploying workspace: http://<IP_ADDRESS>:8899
Upgrade authority: /home/dz/.config/solana/id.json
Deploying /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so...
======================================================================
Recover the intermediate account's ephemeral keypair file with
`solana-keygen recover` and the following 12-word seed phrase:
======================================================================
jeans blush impose object edit method piece rent major tide verb short
======================================================================
To resume a deploy, pass the recovered keypair as
the [PROGRAM_ADDRESS_SIGNER] argument to `solana deploy` or
as the [BUFFER_SIGNER] to `solana program deploy` or `solana write-buffer'.
Or to recover the account's lamports, pass it as the
[BUFFER_ACCOUNT_ADDRESS] argument to `solana program close`.
======================================================================
Error: Account GxRySSr4LCk66ayb2HyHUhYjKcUf3ehGSJ6FCUwJLAZY has insufficient funds for spend (1.3530588 SOL) + fee (0.004265 SOL)
There was a problem deploying: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "" }.
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$ anchor build
BPF SDK: /home/dz/.local/share/solana/install/releases/1.6.6/solana-release/bin/sdk/bpf
Running: rustup toolchain list -v
Running: cargo +bpf build --target bpfel-unknown-unknown --release
    Finished release [optimized] target(s) in 0.25s

To deploy this program:
  $ solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$  solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
Program Id: 8Q4fv84Q2ug4s1G7n195iwxxcppg9o9cACiMAs61kyDK

dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$

dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$ anchor test
BPF SDK: /home/dz/.local/share/solana/install/releases/1.6.6/solana-release/bin/sdk/bpf
Running: rustup toolchain list -v
Running: cargo +bpf build --target bpfel-unknown-unknown --release
    Finished release [optimized] target(s) in 0.24s

To deploy this program:
  $ solana program deploy /mnt/d/git/attic/anchor/examples/composite/target/deploy/composite.so
Unable to start test validator.
dz@DESKTOP-7O591L6:/mnt/d/git/attic/anchor/examples/composite/programs/composite$

so using anchor is  critical all works on all system smoothly.

Can you give more context on the problem and how to reproduce. Does anchor not work with windows at all?

Can you give more context to describe the problem and how to reproduce. I don't understand the issue by just looking at the output above. Also, there's the discord is a great place to debug and get more immediate help as well.

install anchor and dependencies as per docs
run solana-test-validator
run anchor build; anchor deploy; anchor test
all seems worked, but anchor test fails to connect to local test validator.

my Solana was 1.6.5. anchor master worked with 1.6.6. so i have updated my solana to 1.6.6.  and got anchor deploy hang, while solana deploy works well.

Also, there's the discord is a great place to debug and get more immediate help as well.
what is discord channel for anchor?

seems i have found issues. local test validator hangs.

so I docs of anchor should mention to switch to local net.

@dzmitry-lahoda Discord can be found here https://discord.gg/eexdUWg8. Join the #dev-questions channel.

is the usage of in test VM considered? or it is only Rust feature and I have to run local validator?

anchor test will

build the rust binary
run a local network
run a mocha test suite against the local network

So you have to run a local validator, but the CLI will handle that for you.

Any luck on this? I'm getting the same issue with Solana 1.7.12 running on a Mac M1.

serum, and may be solana, does not support arm afaik


deprecation warning when using of as intended

Bug Report
Current Behavior
I've got the tslint rule "deprecation": true enabled and it is now throwing warnings when using of without a scheduler.
Reproduction
import { of } from "rxjs"

of(4) // of is deprecated: use {@link scheduled} instead `scheduled([a, b, c], scheduler)` (deprecation)

Expected behavior
No warning
Environment

Runtime: Node v11.13.0
RxJS version: 6.5.1
tslint version 5.16.0

As described here, only the version of "of" which accepts a scheduler should be deprecated: https://github.com/ReactiveX/rxjs/pull/4595 So, it's definitely a bug.

I think these two lines should be moved to the bottom of the declaration file
/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
export declare function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;

@evertbouw Yes, they need to be placed below:
export function of<T>(...args: T[]): Observable<T>;

@evertbouw If you would like to open a PR, please let me know. Otherwise, I'll open one myself.

@cartant I can do it

I see the same problem with startWith

@nlaplante If there is a problem with startWith it would be better to open another issue. This one will be closed when the PR is merged. Anyway, if there is a problem with that operator's deprecations, it appears to be to be different to this issue, as the signature is already in the correct place.

I have the same problem.

I see the same problem with startWith

I had the probem with startWith when I was using startWith(void 0). I changed it to startWith(0) and now it works without showing any deprecation warning.

@imransilvake As mentioned above, please open a new issue and fill out the issue template.

@nlaplante  Temporary workaround - use startWith  as below:-
startWith<string>(null)

Basically remove ambiguity. I would be great if we don;t have to do this though.

Has this been fixed? The part with the 'of' function? It's giving me the worst time when trying to implement it with my ngrx
catchError(error => of({type: ErrorActionTypes.HANDLE_STATUS, payload: {status: error.status}}))

@jtbitt the PR is still open. Should be fixed in the next release I think. Personally I disabled the tslint rule, you can also downgrade to the previous version.

@evertbouw Thanks

Well, I might sound like a dick here. But ... it's a minor bug, that what fixed immediately after it's been spotted by (at least) hundreds ppl. 2 weeks passes and it's not released. I know, I know. Just  a bit frustrating.

Related to https://github.com/palantir/tslint/issues/4676


Only disable systemctl if it exist

Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

LGTM

@rh-atomic-bot r+ 9a8e8ab


Support gitlab CI

Some people have expressed interest in using this with gitlab.
We should support it.

One slight complication I noticed is that gitlab's CI doesn't have an API for uploading artifacts directly.
Instead it will upload artifacts left in a file path.

Some users that might be interested:

Suricata
https://www.reddit.com/r/fuzzing/comments/qsb78d/clusterfuzzlite_continuous_fuzzing_for_all/

maybe download the artifacts from the last session and upload them through the file path defined in gitlab-ci.yml

Already fixed? https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/gitlab/

Yes closing.


Remove support for ~/.config makefile inclusion

Submisison Checklist

[x] Run tests: ./runCmdStanTests.py src/test
[x] Declare copyright holder and open-source license: see below

Summary:
Counterpart to https://github.com/stan-dev/math/pull/3090
Intended Effect:
How to Verify:
Side Effects:
Documentation:
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Same comment I did for the respective stan PR applies here as well.


Revert "MWPW-159381: Removes 'body' overrides from caas.css"

Reverts adobecom/milo#3110 because of https://github.com/adobecom/milo/pull/3138#issuecomment-2456265310

Validated the revert pr
https://stage--cc--adobecom.hlx.page/creativecloud/buy/students?milolibs=revert-3110-MWPW-159381

https://main--cc--adobecom.hlx.page/products/acrobat-pro-cc?milolibs=revert-3110-MWPW-159381


SQS

Would love the ability to optionally subscribe an SQS queue to the SNS topic.

Thanks for the feedback, we will ad this to the list of feature request. If this is something you need to setup there is a detailed example of how to do this here:
https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html

@kodayashi whats your strategy on the "last mile" aspect of this work flow.  See my comments https://github.com/awslabs/video-on-demand-on-aws/issues/5#issuecomment-424529671
SQS would be great since i'm already using it my existing stack

Addressed with Version 4.0.0


Updating vulnerable dependencies according to assessment report : 66740c9cbc76cb13b034e620

Summary Report

Scenario
Upgrades
Critical
High
Medium
Low

Full Upgrade
18
1
2
15
0


Affiliate fees will be directly sent to affiliate during trading

In order to accomplish reasonable ux, fees will be sent to the affiliate during trading instead of accounting for them on chain and requiring claim calls.
This makes the feature cheaper for everyone, allows the UI to move forward with no ux changes, and doesn't have any attack surfaces not already present through scam markets.
Alex to do in RC2

For extra clarity there will still be validity checks on the fees going through after finalization. This means that there is no reliable way to rely on these fees as someone attempting to find an unexpected advantage in creating invalid markets.

closed with #7341


Support for Taglib 1.11.1

Hi everyone,
Taglib 1.11.1 starts being quite mainstream: Debian stable, Ubuntu 17.10, Fedora 25/26/27, the next Mint...
Unfortunately, Taglib 1.11 introduced a new way to handle pictures in Ogg files. They were previously accessed as standard tags (base64-encoded), but are now available as a list of FLAC::Picture objects. Which means that on those modern distributions, Taglib-ruby (which is based on Taglib 1.7 if I'm correct) can't access pictures from Ogg files anymore.
Since a tool of mine requires this feature, I'm willing to try to upgrade Taglib-ruby for a Taglib 1.11.1 support. I've never used Swig or native gems before, just played a bit on the last few weeks, but it seems doable and fun.
Any thought/advice/suggestion?

Yeah, I think it makes sense to raise our minimum TagLib version to 1.11 nowadays.
I'm unlikely to work at this in the near future, but I'm willing to help/mentor anyone contributing this.

Is it likely that you (@Sigill) will take on the project? We're investigating corrupt flac(s) after tagging and we can't upgrade Taglib to see if this resolves it.

@braindeaf That is not my goal, I'm just fixing a few things that broke my app.
But feel free to open a new Issue, if I stumble accross something while working on the support for Taglib 1.11, I'll do my best to help you!

Reopening, haven't released this yet.

Release with 1.0.0 now! :tada:


converting rtf files to txt

python convert_rtf.py *.rtf does not work. It only works on one file at a time (wildcards not allowed)

This script worked for me:
import os
source = '.'

files = os.listdir(source)

for f in files:
    if f.endswith("rtf"):
        print 'Converting ' + f
        os.system("python convert_rtf.py " + f)

Ah you are right, I actually used a for loop in bash, and documented it incorrectly in the README.  Let me fix it.


CLOUD-52519 fixed identity url

@keyki

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/2076/


Memory misalignment with output of mj_makedata(m)

Hi,
I have been getting a strange issue running my code on a new computer. Calling variables from the d struct (the output of mj_makedata(m) results in a segfault:
Stack trace (most recent call last):
#6    Object "[0xffffffffffffffff]", at 0xffffffffffffffff, in
#5    Object "/home/ben-linux/git-workspace/RosDockerWorkspace/devel/lib/hopper_mpc/hopper_mpc", at 0x55c60c61786d, in _start
#4    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fa6df1a4082, in __libc_start_main
#3    Object "/home/ben-linux/git-workspace/RosDockerWorkspace/devel/lib/hopper_mpc/hopper_mpc", at 0x55c60c61a1b0, in main
#2    Object "/home/ben-linux/git-workspace/RosDockerWorkspace/devel/lib/hopper_mpc/hopper_mpc", at 0x55c60c637e5b, in Runner::Run()
#1    Object "/home/ben-linux/git-workspace/RosDockerWorkspace/devel/lib/hopper_mpc/hopper_mpc", at 0x55c60c666d54, in MujocoBridge::Init(double)
#0    Object "/home/ben-linux/git-workspace/RosDockerWorkspace/devel/lib/hopper_mpc/hopper_mpc", at 0x55c60c6652d9, in mujoco_set_qpos
Segmentation fault (Address not mapped to object [(nil)])
[1]    34369 segmentation fault  rosrun hopper_mpc hopper_mpc mujoco start_stand stand 5000 --plot

It appears variables such as qpos and qvel are ceasing to exist (pardon my lack of vocabulary) once mj_makedata(m) is written to the mjData* d variable, although they briefly exist within the mj_makedata() function.
I know this because I built MuJoCo with debugging enabled and stepped through the code line by line until the moment that d becomes corrupted. I also modified the source code to print the size of d, in order to demonstrate this:
mjData *mj_makeData(const mjModel *m) {
  mjData *d = _makeData(m);
  if (d) {
    mj_resetData(m, d);
  }
  printf("size of d in mujoco  = %lu\n", sizeof(*d));
  return d;
}

And inside my code:
printf("size of d = %lu\n", sizeof(*d));
// make data
d = mj_makeData(m);

The result in the terminal is this:
size of d in mujoco  = 41240
size of d = 41160
size of d in mujoco  = 41240

Because my code already demonstrably worked on a different computer, I suspect there is a difference in the compilers used (I am using ROS noetic catkin, and I tried updating cmake to the latest version--didn't help), and issue is being caused by the fact that I am writing in C++ whereas MuJoCo is written in C. Because of this, I tried heavily modifying my code to use a C wrapper (see here) in order to avoid exposing d to C++, but this did not fix the issue. So this is beyond my understanding.
I also suspected that the difference is being caused by the use of a newer version of MuJoCo, so I tried reverting to the 2.2.0 version, which I believe is what was installed on the other computer. This did not help.
Finally, I should note that the MuJoCo examples, such as basic.cc, still work, even if I add calls to d->qpos.
I am at a loss as to what to do here.

I am building MuJoCo 2.3.2 form source on focal and using it in a C++ wrapping library (with mjData and mjModel exposed to C++) with ROS Noetic and I'm not experiencing any issues.
Are you building MuJoCo with Catkin?
I'm either building it externally with plain cmake and installing it to the devel/install space of my catkin workspace, or using an environment variable that points to an extracted release and just use a custom Findmujoco.cmake file that is able to handle both cases.

Please post the segfaulting code.

Hi,
I'm building MuJoCo with cmake:
cd ~ && git clone https://github.com/deepmind/mujoco.git \
    && cd ~/mujoco && mkdir build_dir && cd build_dir \
    && sudo cmake .. -DCMAKE_INSTALL_PREFIX=/opt/mujoco \
    && sudo cmake --build . && sudo make install

Here is how I am setting up my environment and installing MuJoCo:
https://github.com/RoboticExplorationLab/RExHopper/blob/devel/docs/EnvSetup.md
And here is the segfaulting code.
The C wrapper version:
https://github.com/RoboticExplorationLab/RExHopper/blob/bugfix/mujoco/hopper_mpc/src/bridge_mujoco_wrapper.c
(segfaults at line 154 when d->qpos[0] is called inside mujoco_set_qpos() called at line 83 here)
The wrapperless C++ version:
https://github.com/RoboticExplorationLab/RExHopper/blob/devel/hopper_mpc/src/bridge_mujoco.cpp
(segfaults at line 210 when d_global->qpos[0] is called)

It's very difficult to be certain about what your code is actually doing without spending a lot of time absorbing the whole codebase in detail.
Why are you using global variables at all? Why aren't the MuJoCo data structures members of the classes that require them?

Could it be that the mjdata.h header file you're using to build your own code is different from the header file used to build MuJoCo itself? That would explain the difference in sizeof.
Maybe if you have a dirty build or install directory? Or for some reason you're picking up the includes for MuJoCo from the wrong directory?

Could it be that the mjdata.h header file you're using to build your own code is different from the header file used to build MuJoCo itself?

That fixed it! It was the mjdata.h header file. I must have been testing my code against the wrong version of MuJoCo even when I reverted to the 2.2.0 version. I should not be linking MuJoCo this way.

Why are you using global variables at all? Why aren't the MuJoCo data structures members of the classes that require them?

This is also an extremely valid criticism--most likely it was due to my incompetence with C++, although I don't remember the exact issue I encountered when I originally wrote the code.


Should XLSXListField Support Nullable Values?

Currently XLSXListField does not behave very nicely if prepping a value of None. This field corresponds to DRF's ListField, which does support  allow_null=True.
    def prep_value(self) -> Any:
>       if len(self.value) > 0 and isinstance(self.value[0], Iterable):
E       TypeError: object of type 'NoneType' has no len()

It seems as though this field should nicely handle null (None) values. Happy to open a PR if folks agree.

Fixed in #78


(Tixati) Installation failure

Chocolatey Version
1.3.1
Chocolatey License
None
Package Version
3.14
Current Behaviour
Running the installation from a command prompt with administrator privileges fails when executing the Autohotkey installer:

Expected Behaviour
Perform installation successfully, without syntax errors.
Steps To Reproduce
Execute choco install tixati -y from a command prompt with administrator privileges.
Environment
- Operating System: Windows 10
- PowerShell Version: /
- Shell: /

Chocolatey Log
https://gist.github.com/n0phx/484f9a2214341a7d606d2c5f3f0b8b5c

Anything else?
No response

This is a duplicate of #2182


Changes Made to the Route for Private & Public

chore: Removed Route for Private Route Table
chore: Removed Tags from Route for Public Route

Acknowledged.


CreateVmWizard: Blank OS in Basic settings after choosing some clusters

There's an issue in the Basic settings step of the wizard: after choosing a Cluster, blank/none of the OS is chosen for the Operating system field/drop down. This does not happen always, only with some of the clusters available in the appropriate drop down.
I've found that this issue is related to the CPU type chosen in webadmin when creating a cluster. Looks like choosing/selecting the proper OS in the drop down works fine in the Basic settings only when selecting clusters created with any CPU Type available for CPU architecture x86_64.
Steps to Reproduce:

In webadmin, create a cluster in one of the two ways:
A) CPU Architecture undefined and CPU Type Auto Detect:

B) ppc64 and any of the two available CPU types:

In web UI, open the Create VM Wizard, select the created cluster in the drop down, in Basic settings step
=> look at the Operating System drop down

Actual results:
Nothing is selected as the Operating System:

A) the drop down is empty!

B) at least, the drop down is not empty and contains the proper items

In addition, after adding a Name for a VM and choosing a CD (or Blank template), we are able to click on the Next button, even when no OS is selected, which is required field!

Then the Other OS is displayed in the Review step, which is inconsistent with what we've seen in the Basic settings step:

Expected results:
A) ???
B) probably the Other OS should be selected

Additional info:
If you won't be able to always reach the Review step, it's because there's another and unrelated bug (it will be treated by anothert github issue):
TypeError: basic.timeZone is undefined
To avoid this, you need to play in the Basic settings a little bit, to choose some other options and then back to those you need.

Related comment: https://github.com/oVirt/ovirt-web-ui/pull/1288#discussion_r504596718

@hstastna a, b mentioned on your good and detailed description above represent the two reasons for this bug:
a- is a side effect of #1313. When the user choose a cluster with no host assigned (i.e. cpu architecture on webadmin is still undefined since it is set by the 1st assigned host) then there is no OS to choose and this use case is invalid at first place.
Once #1313 will be fixed then this issue will be prevented.
b - when you choose a cluster compatible for a power pc cpu architecture then the list of supported OS is limited to a subset of the non ppc cpus. In that case we still need to auto choose the "other os" as  a default and I guess it was broken on basic settings dialog due to this change in list content.
So AFAIK choosing the "Other os" as default in case of ppc is the only thing that should be actually fixed here.

@sgratch I think you are right.
Regarding b - I was debugging it a little bit and the problem is that it is not possible to find the 0 id between that list of limited supported operating systems, obviously. They have different ids.. The "other OS" there has a different id than our usual "other OS" with the id 0. And yes, I also think that in this situation, we just need to choose the other "other OS". This could be fixed quite easily, I think.

I investigated this issue and I found the cause,
like @sgratch already mentioned, the options for ppc64 are limited, I found that the "Other OS" id is different between this architecture and other architectures:
But our default value for Other OS is compatible to other architecture.
I'll post PR that solves this issue soon.
@hstansa thanks for the detailed explanation, it was helpful :)


Retype some metrics to counters

From @bbrazil:

fortigate_policy_hit_count_total is a counter so should have type counter, and similarly with the two below it. The _count there also seems redundant, I'd suggest just hits.

That makes sense, I don't know why I made them gauges in the first place - seems to be counters from taking a look now.

Conversely, fortigate_vpn_connections_count_total should be renamed to fortigate_vpn_connections as it is a gauge.

Conversely, fortigate_vpn_connections_count_total should be renamed to fortigate_vpn_connections as it is a gauge.


Update custom babel plugin to avoid cache invalidation.

broccoli-babel-transpiler@6 was previously opting out of all caching, but now has been updated to participate in the caching scheme.
This updates the build to avoid cache related warnings.

@rwjblue I did notice these warnings. Does each plugin need a basedir to participate in caching?

Thanks for the fix!


minor docstring and variable name touch-up

minor docstring updates and rename 'buffer' variable (shadows built-in) to '_buffer'

Codecov Report

Merging #76 (bbde402) into main (ebf7ef2) will increase coverage by 0.05%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #76      +/-   ##
==========================================
+ Coverage   97.64%   97.70%   +0.05%
==========================================
  Files          11       12       +1
  Lines         425      436      +11
  Branches       71       72       +1
==========================================
+ Hits          415      426      +11
  Misses          6        6
  Partials        4        4

Impacted Files
Coverage Δ

httpx_cache/cache_control.py
93.02% <100.00%> (+0.34%)
:arrow_up:

httpx_cache/serializer/base.py
100.00% <100.00%> (ø)

httpx_cache/serializer/common.py
96.49% <100.00%> (-0.07%)
:arrow_down:

httpx_cache/transport.py
100.00% <100.00%> (ø)

httpx_cache/utils.py
100.00% <100.00%> (ø)

httpx_cache/__init__.py
100.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Thanks for the feedback. Made some comments below and will make suggested
changes before doing an official commit.
On Sun, Mar 5, 2023 at 2:50 AM Ouail @.***> wrote:

@.**** commented on this pull request.
Thanks for the touch up and for adding the redis client, it's something I
always wanted to add but never had the opportunity 😅
I've added a few comments on the new redis client, and also it seems that
the formater is not correctly set up for the project, I can probably add a
commit before merging to run it at end ^^
In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125637289:

@@ -0,0 +1,102 @@

+import threading
+import typing as tp
+from abc import ABC

+import anyio
+import httpx
+from httpx_cache.cache.base import BaseCache
+from httpx_cache.serializer.base import BaseSerializer
+from httpx_cache.serializer.common import MsgPackSerializer
+from httpx_cache.utils import get_cache_key
+from redis import Redis
+from redis.asyncio import Redis as AsyncRedis

+class RedisCache(BaseCache, ABC):
⬇ Suggested change
-class RedisCache(BaseCache, ABC):
+class RedisCache(BaseCache):

No problem here, PyCharm suggested adding the superclass again but this is
how I originally had it as well (too much magic).

In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125637768:

+from redis import Redis

+from redis.asyncio import Redis as AsyncRedis
Missing the redis dependency in pyproject.toml, I can add it as an
optional dep in a separate PR

Yeah, sorry forgot about that. I'm using a pyproject.toml that is built for
pdm. Would you like a pdm pyproject.toml (as pyproject.pdm.toml)?

In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125639272:

   self, serializer: tp.Optional[BaseSerializer] = None, **configs

) -> None:

   self.cache = Redis(**configs)

I'm more in favor of using Redis.from_url(..) here, since it's a more
straightforward interface and provides a ConnectionPool directly:
https://redis.readthedocs.io/en/latest/connections.html#redis.Redis.from_url

No problem here.

In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125639952:

   request: httpx.Request,

   response: httpx.Response,

   content: tp.Optional[bytes] = None,

) -> None:

   key = get_cache_key(request)

   to_cache = self.serializer.dumps(response=response, content=content)

   with self.lock:

       self.cache.set(key, to_cache)

def delete(self, request: httpx.Request) -> None:

   key = get_cache_key(request)

   with self.lock:

       self.cache.delete(key)

+class AsyncRedisCache(BaseCache, ABC):
RedisCache and AsyncRedisCache can be merged together (like the other
cache classes), by lazy loading the redis client:

Agree.

class RedisCache(BaseCache):
def __init__(self, ...):

    self.redis_url = "..."

    self._redis: tp.Optional[Redis] = None

    self._aredis: tp.Optional[AsyncRedis] = None

@propetry

def redis(self) -> Redis:

    if self._redis is None:

        self._redis = Redis.from_url(self._redis_url)

    return self._redis

@propetry

def aredis(self) -> AsyncRedis:

    if self._aredis is None:

        self._aredis = AsyncRedis.from_url(self._redis_url)

    return self._aredis

In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125640020:

def _get(self, request: httpx.Request) -> tp.Optional[httpx.Response]:

   key = get_cache_key(request)

   cached = self.cache.get(key)

   if cached is not None:

       return self.serializer.loads(cached=cached, request=request)

   return None

def get(self, request: httpx.Request) -> tp.Optional[httpx.Response]:

   return self._get(request)

There is no need to split this function

Agree.

In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125640054:

async def _get(self, request: httpx.Request) -> tp.Optional[httpx.Response]:

   key = get_cache_key(request)

   cached_data = await self.cache.get(key)

   if cached_data is not None:

       return self.serializer.loads(cached=cached_data, request=request)

   return None

async def aget(self, request: httpx.Request) -> tp.Optional[httpx.Response]:

   return await self._get(request)

Same, no need to split this function

Agree.

In httpx_cache/cache_control.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125640298:

-from datetime import datetime, timedelta, timezone

+from datetime import datetime
+from datetime import timedelta
+from datetime import timezone
import httpx

-from httpx_cache.utils import parse_cache_control_headers, parse_headers_date
+from httpx_cache.utils import parse_cache_control_headers
+from httpx_cache.utils import parse_headers_date
These changes seems like a formater that is incorrect or not correctly set
up. I use black for the project and it can be run using:
hatch run dev:fmt
https://github.com/obendidi/httpx-cache/blob/ebf7ef22a6393a0afef57e3128a484eaa17aa5bc/pyproject.toml#L72-L73

I am formatting with Black. The difference being the imports are sorted
with isort force_single_line=True or the PyCharm 'Always split imports'
option for the python code style. I find it easier to develop and merge
this way. I assumed your scripts or commit hooks would just reformat the
file however you like it anyways, but if that's not the case let me know. I
suppose I can hatch run dev:fmt just on my to-upstream branch - no problem
there if it is preferred.

In httpx_cache/serializer/base.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125640544:

-from abc import ABC, abstractmethod

+from abc import ABC
+from abc import abstractmethod
Same, as previous comment, need to rerun the correct formater
In httpx_cache/cache/redis.py
https://github.com/obendidi/httpx-cache/pull/76#discussion_r1125637339:

@@ -0,0 +1,102 @@

+import threading
+import typing as tp
+from abc import ABC

+import anyio
+import httpx
+from httpx_cache.cache.base import BaseCache
+from httpx_cache.serializer.base import BaseSerializer
+from httpx_cache.serializer.common import MsgPackSerializer
+from httpx_cache.utils import get_cache_key
+from redis import Redis
+from redis.asyncio import Redis as AsyncRedis

+class RedisCache(BaseCache, ABC):
BaseCache is already an ABC class
—
Reply to this email directly, view it on GitHub
https://github.com/obendidi/httpx-cache/pull/76#pullrequestreview-1325187097,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSQMNYO7ODB4AQGWU4NG6DW2RVYJANCNFSM6AAAAAAVPWGNXI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hello,
Sorry I didn't have the time to look again into the PR, does it still interest you yo re-open and look unto merging for the next release ?

I can re-open it and add another pull request if you want, otherwise feel free to add it on you own. Just trying to give something back.

Sure, I'lee see to add it in a future release, thanks.
After thinking a bit about it, adding a redis cache does not seems to be so simple, especially if you want to use redis it probably means you have a distributed system which means for redis we need to have a distributed lock  that is blocking for write and open for read ops

The way I've been using it, more so with requests-cache but now httpx-cache, is for serverless containers sharing the same redis cache backend. As of yet, I haven't had any issues reading or writing to the cache without explicitly using locks. I can say though my app has yet to experience heavy traffic, or been stress-tested in any way, so that should be taken with a grain of salt. Looking at the redis backend for requests-cache (https://github.com/requests-cache/requests-cache/blob/main/requests_cache/backends/redis.py) there doesn't seem to be any explicit use of locks either. My thought would be just to implement it as is and cross that bridge when we get there if any issues do pop up.


Crash with ListDeserializationError during peer discovery

Trinity version: 08c678437 (master)

What is wrong?
Node shut down with:
Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/home/jcarver/code/trinity/trinity/extensibility/trio.py", line 56, in run_process
    trio.run(cls._do_run, boot_info)
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/trio/_core/_run.py", line 1804, in run
    raise runner.main_task_outcome.error
  File "/home/jcarver/code/trinity/trinity/extensibility/trio.py", line 70, in _do_run
    nursery.cancel_scope.cancel()
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/trio/_core/_run.py", line 730, in __aexit__
    raise combined_error_from_nursery
  File "/home/jcarver/code/trinity/trinity/components/builtin/peer_discovery/component.py", line 101, in do_run
    await async_service.run_trio_service(discovery_service)
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/async_service/trio.py", line 156, in run_service
    await manager.run()
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/async_service/trio.py", line 208, in run
    for _, exc_value, exc_tb in self._errors
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/async_service/base.py", line 301, in _run_and_manage_task
    await task.run()
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/async_service/trio.py", line 76, in run
    await self._async_fn(*self._async_fn_args)
  File "/home/jcarver/code/trinity/p2p/discovery.py", line 239, in handle_get_peer_candidates_requests
    candidates = self.get_peer_candidates(event.should_skip_fn, event.max_candidates)
  File "/home/jcarver/code/trinity/p2p/discovery.py", line 222, in get_peer_candidates
    if should_skip_fn(candidate):
  File "/home/jcarver/code/trinity/trinity/protocol/common/peer.py", line 293, in skip_candidate_if_on_list_or_fork_mismatch
    candidate_forkid = extract_forkid(candidate.enr)
  File "/home/jcarver/code/trinity/trinity/protocol/eth/forkid.py", line 127, in extract_forkid
    [forkid] = rlp.sedes.List([ForkID]).deserialize(eth_cap)
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/eth_utils/functional.py", line 45, in inner
    return callback(fn(*args, **kwargs))
  File "/home/jcarver/code/trinity/venv/lib/python3.6/site-packages/rlp/sedes/lists.py", line 89, in deserialize
    serial)
rlp.exceptions.ListDeserializationError: Deserializing list length (0) does not match sedes (1)

Similar, but not the same as, #1476
Looks like a misformatted message back from a peer during discovery isn't handled.
How can it be fixed
Probably catch and re-wrap as something else, like a MalformedMessage?
cc @gsalgado

According to https://github.com/ethereum/devp2p/blob/master/enr-entries/eth.md, the eth ENR entry should always be a single element list, so it doesn't look like a bug in our deserializing of ForkIDs, but something we should handle regardless.


set prometheus client to ignore label differences

When exporting from cloudwatch you can get into the situation where the same metric key name is exported more than once but with differing sets of label keys attached to the metric.  In the default mode the prometheus client will throw a hard error on this condition.
The clients solution to this situation is to put the client into "unchecked" mode but setting up the Describe function as an empty function.  This internally tot he client disables a number of checks and allows the code creating the metrics to ensure integrity of the metrics.
A goos example of this situation happening is with ECS metrics in which the cpu used for the cluster or for a service have the same metrics name exported but one has an additional label key as part of the exported data.

@thomaspeitz Hey let me know if this one doesn't make sense or if you think maybe we should add an on/off flag for this function.  thanks

Hey @rrusso1982,
won't merge this one. It is from my perspective of course a bug and should be solved but not by disabling a prometheus validation. We need to ensure that we add all labels to all metrics. I am open to another fix of the problem of course.
Sorry to disappoint you here and not merge it.
Greetings, Thomas

Hey @rrusso1982,
won't merge this one. It is from my perspective of course a bug and should be solved but not by disabling a prometheus validation. We need to ensure that we add all labels to all metrics. I am open to another fix of the problem of course.
Sorry to disappoint you here and not merge it.
Greetings, Thomas

I’m willing to do the work to ensure we output unified label set for each metric.  If I did that would it be a worthwhile PR?  I wouldn’t want to waste the development effort.

@rrusso1982 - This is 100% worth a PR!

@rrusso1982 - This is 100% worth a PR!

Ok let me see what I can do!

Awesome thanks!

@thomaspeitz I've made a first run through ensuring the consistent labels we dicussed.  The PR is here: https://github.com/ivx/yet-another-cloudwatch-exporter/pull/235.  Enjoy!


Warning when compiling diff.c

Steps to reproduce
Start make, CONF_OPT_FEAT = --with-features=normal
Expected behaviour
No warnings from the compiler
Version of Vim
8.2.3941
Environment
Debian, gcc 11.2.0
Logs and stack traces
gcc -c -I. -Iproto -DHAVE_CONFIG_H     -O2 -fno-strength-reduce -Wall -Wno-deprecated-declarations -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
diff.c: In function ‘diff_try_update’:
diff.c:3284:26: warning: ‘hunk’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 3284 |         hunk->count_orig = oldcount;
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~
diff.c:1639:18: note: ‘hunk’ was declared here
 1639 |     diffhunk_T  *hunk;
      |                  ^~~~

I confirm this problem in all builds from Normal to Huge. (N.B. Small and Tiny, which don't have this warning, are, among other features, built without +diff. They include a diff.c which I guess is entirely [or almost] #ifdef'd away.)

P.S. I'm on openSUSE Leap 5.3 with gcc 7.5.0.


Using get_json() doesn't work when # abstractive summaries != # extractive summaries

Trying to convert the DialogWithSummaries object to json/string format using get_json() throws "TypeError: 'NoneType' object is not iterable" exception since some of the summaries are None when the number of abstractive summaries and extractive summaries are unequal for any given dialogue.
`Cell In[2], line 82, in DialogWithSummaries.get_json(self)
80 abstractive_summaries_to_json = list()
81 for summ in self.abstractive_summaries:
---> 82     abst_json = [txt for txt in summ ]
83     abstractive_summaries_to_json.append(abst_json)
85 result = {
86     'dialog' : dialog,
87     'summaries' : {
(...)
91     }
92 }
TypeError: 'NoneType' object is not iterable`

Resolved by skipping the list comprehension if summ is None
        for summ in self.abstractive_summaries:
            if summ is None: continue
            abst_json = [txt for txt in summ ]


:rotating_light: fix Clang-Tidy warnings

Missed a few. Some fixes didn't work or created new warnings.
The rebase over the reverts caused some confusion, hope I resolved things properly.

@nlohmann Waiting to be merged into your fix_pipeline branch.