The zsh completion for DDEV, without Oh-My-ZSH installed, is not working out of the box

Is there an existing issue for this?

[X] I have searched the existing issues

Output of ddev debug test
Expand `ddev debug test` diagnostic information
[COPY-PASTE HERE THE OUTPUT OF `ddev debug test`]

Expected Behavior
With ZSH 5.9 with MacOS Sonoma 14.3 and the following line autoload -Uz compinit && compinit added to the .zshrcfile I would expect that autocompletion is working out of the box (without the need of installing Oh-My-ZSH) .
Actual Behavior
The standard completions work on my system. For example:

But if I try the same with something like for example ddev composer <tab>added in https://github.com/ddev/ddev/pull/5756 nothing happens at all.
I've done some digging. The "official" location for completion functions is /usr/share/zsh/5.9/functions but there is nothing related to DDEV available there. The shell script with the completions is located in /opt/homebrew/Cellar/ddev/HEAD-5c7cd2b/share/zsh/site-function. One detail I've noted  is that the filename isn't starting with an underscore according to the naming convention recommended in https://zsh.sourceforge.io/Doc/Release/Completion-System.html#Autoloaded-files - and all completions in /usr/share/zsh/5.9/functions start with an underscore as well. @rfay dug up two issues in regards of the name change https://github.com/ddev/ddev/pull/4179 and https://github.com/ddev/ddev/blob/2f4b0551d4f3f36ec2a6fe26b7a7209f6f2b4009/.goreleaser.yml#L224-L239 . But that isn't probably the reason why the completion for DDEV isn't added to the index. The location of the  DDEV zsh completion is probably just unavailable/unknown to compinit I suppose. There might be the option of "hardlinking" the completion file as a special directory as outlined here: https://stackoverflow.com/a/61383123 but that wouldn't be very elegant nor flexible (on every update that link would have to be updated).  Guy Sartorelli mentioned over in https://github.com/ddev/ddev/pull/5756 that he is using the completion in zsh in combination with oh-my-zsh and everything is working out of the box?
One direct question to @GuySartorelli: Has oh-my-zsh added anything in relation to the know completion directories that make zsh autodiscover the completions available for DDEV? Or have you pointed zsh to the ddev cellar?
Steps To Reproduce

Add autoload -Uz compinit && compinit to ~/.zshrc

Anything else?
No response

This is at least thematically related to https://github.com/ddev/ddev/issues/5734

Guy Sartorelli mentioned over in https://github.com/ddev/ddev/pull/5756 that he is using the completion in zsh in combination with oh-my-zsh and everything is working out of the box?

To the best of my knowledge I never performed any setup to get completion running - though it is possible that I did so when I initially set up DDEV and have since forgotten.
My "out of the box" comment on that PR was intended to mean "users who already have completion working with DDEV generally won't need to perform any additional steps to get completion working for the composer commands", not that no setup was required for getting completion to work for DDEV in general.

Has oh-my-zsh added anything in relation to the know completion directories that make zsh autodiscover the completions available for DDEV?

No idea, but I doubt it has anything specific to DDEV.

Or have you pointed zsh to the ddev cellar?

I don't know what a cellar is in this context so almost certainly not.

My "out of the box" comment on that PR was intended to mean "users who already have completion working with DDEV in general won't need to perform any additional steps to get completion working for the composer commands", not that no setup was required for getting completion to work for DDEV in general.
ah i've misunderstood that. thanks for clarification!

I don't know what a cellar is in this context so almost certainly not.
that is the location where a homebrew formula is stored. for ddev that is /opt/homebrew/Cellar/ddev

I did some more digging and after some sleep my thinking functioned a bit better again ;) and that brought me to the question " how zsh completions from homebrew formulas are made available to zsh in macos" that brought me to two formulas i already knew but never visited their project pages on formulae.brew.sh
https://formulae.brew.sh/formula/zsh-autocomplete
https://formulae.brew.sh/formula/zsh-completions
and turns out both are setting the FPATH making the completions available. now i finally had something more specific to search for and it turns out in the brew docs there are actual instructions in regards of properly setting up completions in zsh:
https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh
I've followed the lead and added the conditional at the top of my .zshrcfile
if type brew &>/dev/null
then
  FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"

  autoload -Uz compinit
  compinit
fi

(but not sure if it is necessary to run compinit another time outside of the if statement)
and also ran chmod -R go-w "$(brew --prefix)/share"since compauditraised a security concern for the general share directory of homebrew
$> compaudit
There are insecure directories:
/opt/homebrew/share

and also rebuild zcompdumpwith rm -f ~/.zcompdump; compinitbut ddev wasnt added to that dump after running the rm. so how things work and have to be set up is a lot clearer. the out of the box completions still work but the bespoke ddev ones are not working nor being imported it seems like. still not sure if it necessary to change the completion file name from ddevto _ddevto be in line with the aforementioned naming conventions for autoload files. but i've manually changed the name, rebuild the dump and tried but same effect still not working. probably still missing one important detail to get things working.

from my perspective it is definitely related. even though the issue is about trying to get autocompletion working already without oh my zsh(omz), omz just takes care of one or two configuration steps for the user. in general it is the same problem no matter if things dont work with or without omz.
from my point of view what i am trying to figure out in this issue is if there are any installation flaws (i was only looking from a homebrew perspective) and what additional steps are necessary to setup the compeltion for zsh on in particular macos. in regards of installation the only potential problem might be the naming (missing the recommended underscore) but i doubt that that is the reason aside that i am unable to spot anything from the ddev side that could be improved at the moment. it is probably caused some missing or faulty configuration in the .zshrc file. and that is what i am currently focusing on with the endgoal to get it working as well as trying to improve the docs based on those findings.
out of curiosity @jonsimonsen if you take a look into ~/.zcompdump do you find anything in relation with ddev? and if not have you tried wiping that dump with rm -f ~/.zcompdump; compinitand then rechecked if something ddev related got added after the rebuild of the dump?

oh i misread the propose resolution in https://github.com/ddev/ddev/pull/4179 . thought it was recommended to switch to ddev FROM _ddev. But yep then 100% agree that this should be fixed in the go releaser for zsh. probably not the reason but still ddev should follow the naming conventions. and yep i will continue tonight to further explore the problem.

out of curiosity @jonsimonsen if you take a look into ~/.zcompdump do you find anything in relation with ddev? and if not have you tried wiping that dump with rm -f ~/.zcompdump; compinitand then rechecked if something ddev related got added after the rebuild of the dump?

I searched for ddev in the file before and after running that command, and did not find it

I'm having no trouble with regular zsh (not oh-my-zsh).  brew install zsh-completions needs to be installed, then brew install ddev installs ddev into /opt/homebrew/share/zsh/site-functions
My .zshrc does this, as suggested by brew info zsh-completions:
# zsh completions
if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
    autoload -Uz compinit
    compinit
  fi

My FPATH ends up with something that points to where the ddev autocompletions are stored:
% echo $FPATH
/opt/homebrew/share/zsh/site-functions:/opt/homebrew/share/zsh-completions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/5.9/functions

I do agree that the name of the file should be _ddev instead of ddev, as in https://github.com/ddev/ddev/pull/5814

I was able to narrow down the root cause. If you have followed the instructions on here: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh and added
if type brew &>/dev/null
then
  FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
  autoload -Uz compinit
  compinit
fi

to .zshrc then there following steps make zsh work and illustrate the root cause.

go to /opt/homebrew/Cellar/ddev/[your ddev version]/share/zsh/site-function
brew unlink ddev
mv ddev _ddev
brew link ddev
rm -f ~/.zcompdump compinit

now the symlink in /opt/homebrew/share/zsh/site-functions is following the naming convention:
lrwxr-xr-x  1 rkoller  admin    64B Feb 10 23:17 _ddev -> ../../../Cellar/ddev/HEAD-03a14bb/share/zsh/site-functions/_ddev

and the autocomplete auslo for for example the command ddev is working. so https://github.com/ddev/ddev/pull/5814 will probably fix things for zsh out of the box, no need for oh my zsh or zsh-completions. the only necessary thing to do is adding the snippet from above to .zshrc.

Wrote up a more extensive summary of the findings in here: https://gist.github.com/rpkoller/fe5be1362b5643bb2f7d81e3eac1e852

This was fixed in

https://github.com/ddev/ddev/pull/5814

I know we have docs followups, but everything here is fixed, right? Closing.

Plus in https://github.com/ddev/homebrew-ddev/pull/49 and https://github.com/ddev/homebrew-ddev-edge/pull/3 . But yes the issue can be closed.


Add collide and slide kinematic controller

Objective

https://github.com/Jondolf/avian/issues/438

Solution

Introduce a basic collide and slide implementation for a new Kinematic Character Controller example entitled kinematic_character_cas_3d.

Changelog

Note: You can run the new example with cargo run --example kinematic_character_cas_3d

Added

Introduced a work in progress collide and slide function based on community work in the Avian Physics channel of the Bevy discord

Current noteworthy issues:

[ ] Character spawns in ground
[ ] Character gets put in floor at bottom of steep surfaces, and is unable to jump out
[ ] Doesn't prevent climbing steep slopes, though gravity does somewhat prevent this.
[ ] Occasionally invalid values make it to let (velocity_normalized, length) = Dir3::new_and_length(velocity).unwrap();, might be fixed with a close to zero check instead of a zero check
[ ] Character sometimes bounces when going down slopes, would be fixed with ground snapping.

Character slides down non-steep slopes.

This is because right now, apply_gravity applies downward velocity even when standing on the ground. This is problematic both because of this issue and because when the character walks off a cliff it immediately starts falling down at a very high velocity instead of a gradually increasing gravitational force.
When a Grounded check is added to apply_gravity like this:
fn apply_gravity(
    time: Res<Time>,
    mut controllers: Query<(&ControllerGravity, &mut CharacterController, Option<&Grounded>)>,
) {
    for (gravity, mut character_controller, grounded) in &mut controllers {
        if grounded.is_some() && character_controller.velocity.y < 0.0 {
            character_controller.velocity.y = 0.0;
        } else {
            character_controller.velocity += gravity.0 * time.delta_seconds();
        }
    }
}

And the ShapeCaster ground checking component's with_max_time_of_impact(0.2) is changed to 0.05 in order to have a more reasonable gap between the character capsule and the ground, this no longer happens.
Since Grounded is only added when standing on a slope that doesn't exceed max_slope_angle, this retains the sliding down on slopes that are too steep.
The downside of this is that now when walking down a slope, the character doesn't stick to it. But that can be solved by adding ground snapping logic to the collide and slide algorithm.

Accidentally pushed commit from an experiment branch, force pushed to undo it.


txnbuild: update challenge tx helpers for sep-10 changes

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.
[x] ~I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.~

Release planning

[ ] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[x] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

What
Add new challenge transactions helpers to txnbuild to support verifying a challenge transaction that has multiple signatures. Add two new functions:

ReadChallengeTx: Read the details like the transaction and the client account ID out of the transaction.
VerifyChallengeTxSigners: Verify that the signers of the transaction are a subset of a list of signers given to the function.

Deprecate VerifyChallengeTx.
Why
The SEP-10 change that is open in stellar/stellar-protocol#489 clarifies how an implementer should verify that signers of the transaction are signers on the account and that accounts may have multiple signers.
An implementer needs to read out of the transaction the client account before verifying the transaction. For this reason we need two functions, one to read out details we need before verification and one to perform verification.
The read call also validates the server signature because no challenge transaction would ever be valid to read if it wasn't signed by the server.
Known limitations
These helper functions take a decent amount of complexity away from an implementer, but they still leave a decent amount up to the implementer. An implementer would still need to make a call to Horizon, and do any weights to threshold comparison. I think it might be out-of-scope of the txnbuild package to offer that additional logic and SEP-10 technically leaves the exact details of what happens there up to the implementer so it would also be difficult to implementer in a library function.

@msfeldstein provided some feedback to me directly that we need to be able to offer this as a similar level of drop-in as the prior functions that support SEP-10. In light of this I think I'm going to move the functions I'm adding out of txnbuild and into a new package, maybe called webauth or challenge or txnchallenge, and then explore how to offer verification using a configurable strategy, while providing some default strategies for popular use cases like anchors.


refactor(lib)!: rename DaemonClient to DaemonJsonRpcClient

Closes #69
I think the names are less confusing now, but DaemonJsonRpcClient and RegtestDaemonJsonRpcClient are kinda long names. Any suggestions? I could not find better names without losing descriptiveness.

@TheCharlatan @h4sh3d


Still failed to download even after update to version 0.2.5

ehd -c https://egghead.io/lessons/vue-js-create-a-vuex-store-using-typescript
gives me this error
The URL is a lesson
Error: failed to parse the lesson page 'https://egghead.io/lessons/vue-js-create-a-vuex-store-using-typescript'}

I've also make sure that this lesson is available for free users by the time I try to download it. They might limit it for pro subscribers only in the future just like other lessons

You need to authenticated!
provide your email and password
❯ ehd -e<EMAIL_ADDRESS>-p mypassword https://egghead.io/lessons/vue-js-create-a-vuex-store-using-typescript
Authenticated!
The URL is a lesson
Found 1 video
Downloading video 1 out of 1: '01-egghead-vue-js-create-a-vuex-store-using-typesDownloading video 1 out of 1: '01-egghead-vue-js-create-a-vuex-store-using-typesDownloading video 1 out of 1: '01-egghead-vue-js-create-a-vuex-store-using-typescript.mp4'..^C

Authenticated!
The URL is a lesson
Error: fetching the url 'https://egghead.io/lessons/vue-js-create-a-vuex-store-using-typescript' failed!
Still error, I'm really out of idea this time, I'm using node v6.11.2 & npm v5.4.2

Same problem, not working even when authenticated.
Free course: https://egghead.io/courses/leverage-new-features-of-react-16
Logs:

Authenticated!
The URL is a playlist or series
Found 6 lessons
Error: fetching the url 'https://egghead.io/courses/leverage-new-features-of-react-16' failed!

To download the courses, you need a PRO account! Hope it helps.

I was able to download free courses with a free account until a couple of weeks ago. How is that possible?

Video page structure is changed, so it won't any more.


libsForQt5.qtstyleplugin-kvantum: 1.0.3 -> 1.0.4

Description of changes
Update to version 1.0.4
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1069

LGTM, thanks! Would you like to take up maintainership of this package by chance?

Yes, as I am using it with LXQt on my system.
I can make a PR for that. The current maintainer is bugworm. I suppose I should keep him/her, right?

Since the github of that person is very inactive in the last year I would just replace it.

Since the github of that person is very inactive in the last year I would just replace it.

Agreed. If they happen to respond in the PR removing them, then keep them, but I think the chances of that are slim based on their profile.

Since the github of that person is very inactive in the last year I would just replace it.

Agreed. If they happen to respond in the PR removing them, then keep them, but I think the chances of that are slim based on their profile.

Done in https://github.com/NixOS/nixpkgs/pull/185321


[SMALLFIX] Use the @Nullable annotation for all methods which may ret…

…urn null in BaseKeyValueStoreReader.java

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/16787/
Test PASSed.


allow setting touch required and/or pin required for hmac-sha1

while creating a hmac-sha1 secret it should be possible to set the same constraints for get/list as for the other secret entries...

A suggested workaround was:
nitropy nk3 secrets update HmacSlot1 --touch-button true

An anonymous user reported:

I tried "--touch-button true" but it doesn't work...

more details from pynitrokey side:
nitropy nk3 secrets add-challenge-response 1 $(echo "iosdjoidsfjoiddsfjo" | base32)

# doesn't require touch:
nitropy nk3 secrets get-password HmacSlot1

# setting touch for the entry:
nitropy nk3 secrets update HmacSlot1 --touch-button true

# this works, and get-password requires touch now:
nitropy nk3 secrets get-password HmacSlot1

but using it through the api directly doesn't respect this setting, so this is actually an issue for nitrokey-3-firmware

there is one inside the respective app: https://github.com/Nitrokey/trussed-secrets-app/issues/112 or better https://github.com/Nitrokey/trussed-secrets-app/issues/108 - this is planned for the next iteration of the secrets-app


Upgraded Gorm version to 2.0

Gentle Reminder,
Please review this pr.

thank you for your contribution! Great work!
The problem is it changes import paths to github.com/ekramul1z/newrelic-context which will make go import packages from the wrong repository.

I have forked this repo to use Gorm v2 + NR agent v3 https://github.com/getndazn/newrelic-context


Breaking examples due to resample refactor

While using master a bit, I discovered some more cases where the new resample API breaks things:

Plotting. .plot is a dedicated groupby/resample method (which adds each group individually to the plot), while I think it is a very common idiom to quickly resample your timeseries and plot it with (old API) eg s.resample('D').plot().
Example with master:

In [1]: s = pd.Series(np.random.randn(60), index=date_range('2016-01-01', periods=60, freq='1min'))
In [3]: s.resample('15min').plot()
Out[3]:
2016-01-01 00:00:00    Axes(0.125,0.1;0.775x0.8)
2016-01-01 00:15:00    Axes(0.125,0.1;0.775x0.8)
2016-01-01 00:30:00    Axes(0.125,0.1;0.775x0.8)
2016-01-01 00:45:00    Axes(0.125,0.1;0.775x0.8)
Freq: 15T, dtype: object

![figure_1](https://cloud.githubusercontent.com/assets/1020496/13317218/79e8937e-dbb4-11e5-80ad-87e663ef5de8.png)

while previously it would just have given you one continuous line.
This one can be solved I think by special casing `plot` for `resample` (not have it a special groupby-like method, but let it warn and pass the the `resample().mean()` result to `Series.plot()` like the 'deprecated_valids')

- When you previously called a method on the `resample` result that is also a valid Resampler method now. Eg `s.resample(freq).min()` would previously have given you the "minimum daily average" while now it will give you the "minimum per day".
This one is more difficult/impossible to solve I think? As you could detect that case if you know it is old code, but cannot distinguish it from perfectly valid code with the new API. If we can't solve it, I think it deserves some mention in the whatsnew explanation.

- Using `resample` on a `groupby` object (xref #12202). Using the example of that issue, with 0.17.1 you get:

In [1]: df = pd.DataFrame({'date': pd.date_range(start='2016-01-01', periods=4,
freq='W'),
...:                'group': [1, 1, 2, 2],
...:                'val': [5, 6, 7, 8]})
In [2]: df.set_index('date', inplace=True)
In [3]: df
Out[3]:
group  val
date
2016-01-03      1    5
2016-01-10      1    6
2016-01-17      2    7
2016-01-24      2    8
In [4]: df.groupby('group').resample('1D', fill_method='ffill')
Out[4]:
val
group date
1     2016-01-03    5
2016-01-04    5
2016-01-05    5
2016-01-06    5
2016-01-07    5
2016-01-08    5
2016-01-09    5
2016-01-10    6
2     2016-01-17    7
2016-01-18    7
2016-01-19    7
2016-01-20    7
2016-01-21    7
2016-01-22    7
2016-01-23    7
2016-01-24    8
In [5]: pd.version
Out[5]: u'0.17.1'

while with master you get:

In [29]: df.groupby('group').resample('1D', fill_method='ffill')
Out[29]: <pandas.core.groupby.DataFrameGroupBy object at 0x0000000009BA73C8>

which will give you different results/error with further operations on that. Also, this case does not raise any FutureWarning (which should, as the user should adapt the code to `groupby().resample('D').ffill()`)

ok

just need to define .plot(...) on the Resampler to actually call .mean().plot(...) (and have a nice warning message)

similar / better than this
In [5]: s.resample('15min',how='sum').plot()
/Users/jreback/miniconda/bin/ipython:1: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
  #!/bin/bash /Users/jreback/miniconda/bin/python.app
Out[5]: <matplotlib.axes._subplots.AxesSubplot at 0x11bd82450>

need to provide warnings here as well (this is handled by the .groupby(...).resample(...) which actually calls things, but hits a different path

I think you are right, have to doc this. It should break code loudly though as the previous API would return a scalar, this will return a Series.


Add integration tests for the package

Adding some integration tests for the package. Those are manual for now and not part of CI/CD, but they can already be pretty useful for people wanting to add support for new adapters.
The tests are based on the example provided and test:

the logic to add the exceptions column
the generic test feature

I also updated the examples:

i moved them outside of models, otherwise they were conflicting with the integration_tests folder, when importing the parent folder as package
I changed some of the SQL syntax to make it work for all warehouses, removing `  and trailing , on the last line before from

Example for supported warehouses

Example for non-supported warehouse/adapter

I am really sorry for the delay, a lot of work to do on my side
I've gone through your two pull requests but not in detail yet
Do you want me to merge your Pull Request without a release or with a pre-release to wait for a deeper review before the release ?
And really hard job you made both for duckDB support and this integration test feature ! Impressive :)


fix(gatsby-ipfs-web-wallet): bumping to v1.9.20

:tada: This PR is included in version 1.3.2 :tada:
Your semantic-release bot :package::rocket:


Make "remote NMT changed" callback of HB consumer node-specific

This way "remote NMT changed" callback is much more similar to other "multi" callbacks of HB consumer, and it was node-specific anyway, as you have to first configure the monitoring node to have that callback executed.

Merge CO_CONFIG_HB_CONS_CALLBACK_CHANGE with ..._HB_CONS_CALLBACK_MULTI
These settings are now very similar, so there's no need to have two separate config options.

Implement a better solution for #229
Instead of playing with incrementing pointers in various places it is better to just set it once at the start of loop.

These changes break the API.

Hi Freddy,
I would like to revert your commit "Make "remote NMT changed" callback of HB consumer node-specific".
CO_CONFIG_HB_CONS_CALLBACK_CHANGE was intended to be simplified alternative to CO_CONFIG_HB_CONS_CALLBACK_MULTI. I would like to keep them separated.

Please let me know whether you want to revert all of it or just the commit which merged the two config options. If you want to revert it all, I propose an alternative - make the options mutually exclusive - you can either have one common callback via CO_CONFIG_HB_CONS_CALLBACK_CHANGE or you can have all the separate callbacks (including the one for "change") via CO_CONFIG_HB_CONS_CALLBACK_MULTI.
However I don't think that the previous behaviour was any easier to use... If this callback would work WITHOUT configuring the HB consumer, then sure, but you have to configure it anyway. For a truly object-oriented application the previous behaviour (one common callback for all consumers) is very awkward to use and I really don't see anything significantly harder in using the new variant. Plus there's a bonus of having one configuration option less.

Thank you for your feedback. Also all this configuration options are my invention and I'm not 100% sure, what they mean for others. So if you have any further critics or suggestions, please let me know.
Otherwise, I agree with your alternative proposal. I would like to have simple alternative just for logging the changes.

One question then. Previous signature of the "change" callback was void(uint8_t nodeId, CO_NMT_internalState_t NMTstate, void *object). This pull request changed it to void(uint8_t nodeId, uint8_t idx, CO_NMT_internalState_t NMTstate, void *object) (it added the index). Should the simpler callback have the simpler (previous) signature, or the new one (to be consistent)?

No problem, can have the new signature.


Unable to send [switch] options.

I was trying to send a switch options to node-powershell
var shell = require('node-powershell');
var ps = new shell
ps.addCommand('write-host "powerShell"', [{name: 'nonewline'}]).then( ps.invoke())
result from console.log is  write-host "powerShell" -nonewline "undefined" rather than write-host "powerShell" -nonewline

Hey @PmoriartyPhoenix
Please check out the new features entered in the last commit.
Thx. 👍

Thanks. Any plans for Boolean?  Convert true to $true and false to $false?

Its also in the new version. it now support most of JS to PS data types (Date, Boolean, Array, switch, numbers and more ....)


on UTM image debian should be member of docker

After following installation process for UTM (MacOS M3) at https://containerlab.dev/install/ there is an UTM image that runs nicely. The only downside is that user debian is not member of group docker so any docker command will fail, so this
# import container image and save it under ceos:4.32.0F name
docker import cEOS64-lab-4.32.0F.tar.xz ceos:4.32.0F

from https://containerlab.dev/quickstart/#__tabbed_1_1 won't work.
This can be fixed by doing usermod -a -G docker debian and it should be a standard part of that UTM image.

will track this progress here https://github.com/srl-labs/containerlab/issues/2310


Code Quality: Introduce flexible pane generation 1

Summary
This is the stage 1.

Refactor around the pane holder page (here)
Introduce the generation service

Resolved / Related Issues
To prevent extra work, all changes to the Files codebase must link to an approved issue marked as Ready to build. Please insert the issue number following the hashtag with the issue number that this Pull Request resolves.

Related #11955

Steps used to test these changes
Stability is a top priority for Files and all changes are required to go through testing before being merged into the repo. Please include a list of steps that you used to test this PR.

Open Files app
If opens with no crash very good

I'd like to do a more detailed review, but this looks like a phase 1.

Yes, I didn't want to mix up.

I have built and tested it. There seems to be no regression in functionality.


api-0 pod is stuck at 31/63 after kubecf upgrade or restart of nodes

I have been able to reproduce api-0 pod going into crashloop mode consistently when I go for helm upgrade or for some reason I have to restart k8s nodes. In both cases I see the same error with api-0 pod. I re-deploy every-time this happens. Please See below snapshots for logs and state of all pods. I am using Diego with a very simple values files. Am I missing anything, any support/help/links will be helpful.
my environment
k8s version: 1.17.7
node os version: CentOS Linux release 7.8.2003 (Core)
kubecf : 2.3.0

look similar with #1190

Hello,
Thanks for reporting this. Could you share to which KubeCF version are you upgrading to? I am guessing you are performing an upgrade from 2.3.0 to 2.4.0, correct?
On a related note, this problem seems fixed when upgrading from 2.4 to current master.

I am not trying 2.3.0 to 2.4.0 rather I am on 2.3.0. I have seen this error in below scenarios

When I restart my k8s worker nodes
When I change values.yaml file e.g. to enable auto scaler or other configurations.

I deployed a 2.3.0, which then I upgraded enabling autoscaler, and I can reproduce. But what I caught was that at some moment I had 4 ig pods running. I wonder if I upgraded when a previous upgrade was running, and that invalidates my test.

I performed helm upgrade just once. I also saw multiple ig pods starts and they terminate and start other pods. So you see pods restarting multiple times. I also see multiple database seeder Jobs.

at some moment I had 4 ig pods running

That is https://github.com/cloudfoundry-incubator/quarks-operator/issues/750. I believe the fix is not in 2.3.0 though.
However, it was my understanding that the multiple ig jobs would only cause extended downtime, but eventually everything should still come back up.

Everything doesn't come up since api pod is stuck with encryption error which means cf is totally down.

@dheerajinganti can you try upgrading to 2.4.0 ?

Sure, will try upgrading to 2.4.0 and will post results.

FWIW, upgrading from 2.2.3 to 2.4.0 (with the corresponding operator upgrades) also results in CLBO for api-0 (with a CLBO for diego-cell as well).

@dheerajinganti I am closing this one but feel free to reopen if the problem persists.


Single click, double click, and long press?

Is there a way to combine the existing features to detect, on one button, a single click, a double click, and a long press?

Yes. Each button type adds to the features of simpler buttons. So an AblePullupDoubleClickerButton has double-click, single-click, held and idle features, not just double-click.

But it seems that AblePullupCallbackDoubleClickerButton does not support callbacks for click and double click. Is this correct?

There isn't an explicit CLICKED_EVENT or DOUBLE_CLICKED_EVENT yet.
A RELEASED_EVENT callback will occur when a click or double-click is completed. This is because a click is a press, followed by a release.
Whether it is a click or double-click can be checked in callback function with isDoubleClicked() and resetDoubleClicked() methods.
void eventCallback(Button::CALLBACK_EVENT event, uint8_t id) {
  if(event == Button::RELEASED_EVENT) {
    if(btn.isDoubleClicked()) {
      btn.resetDoubleClicked();
      // Do something for double-click.
    } else {
      // Do something for single-click.
    }
  }
}


(tor-browser) v12.0.3 checksums are incorrect

Chocolatey Version
1.3.0
Chocolatey License
None
Package Version
12.0.3
Current Behaviour
v12.0.3 is checking against incorrect (possibly outdated) checksums.
32-bit: 8cf1dafe65efe4a9a732191ab5fa962ae75513694cc802b462abf0ae40f64a3a
64-bit: 94c66cde8a8f6744971553deba450b3e2bf2ad17f0d3129853591a050801a58c
Expected Behaviour
Package should check against current checksums.
32-bit: A880112BF2927FE02DFCB7550FB1780DFEC8AA5E332D2CD9897C503A018EE02F
64-bit: 8F9E526DA7D1ADAA5C6C7BE88412E9E6C7EAB9AF1B5F080B0D674F5B35F5C4BF
Steps To Reproduce
choco install tor-browser --version=12.0.3
Environment
- Operating System: Microsoft Windows NT 10.0.22621.0
- PowerShell Version: 5.1.22621.963
- Shell: PowerShell

Chocolatey Log
https://gist.github.com/brogers5/c1f225d02e2837486cc8e008c7bc71d9

Anything else?
No response

Same for me.

I've added the label 'Up For Grabs'. As a remidner this is a community maintained repository so community PR's are very welcome.

Confirmed it works!


As a user, I want to make sure that the Annual Reports are properly generated.

Description:

As a user, I want to see all the Annual Reports due on Jan 30th of the years covering the whole period between the "Emissions Intensity Repot Due Date" and "Project Assets Life End Date" after clicking the "Generate Annual Reports" button.
For a project whose "Emissions Intensity Report Due Date" is in Year X, the first Annual Report should be due on Jan 30th, Year (X+2).
For a project whose "Project Assets Life End Date" is in Year X, the last Annual Report should be due on Jan 30th, Year (X+1).

As a user, I want to see the "Emissions Intensity Repot Due Date" and "Project Assets Life End Date" auto-updated when they are changed elsewhere.
I believe this is how they behave now, but we just to make sure they stay up-to-date.

Acceptance Criteria:
Given I am a CIF administrator
When I am creating or editing a project revision
And annual reports have not been entered
Then I can see read-only "Emissions Intensity Repot Due Date" and "Project Assets Life End Date" fields on the annual report's form (If populated)
Given I am a CIF administrator
When I am creating or editing the annual reports of a project revision
Then I can see a "Generate annual reports" button enabled (if required fields populated otherwise disabled)
Given I am a CIF administrator
When I am creating or editing the annual reports of a project revision
And I press the "Generate annual reports" button
Then the reports are generated annually on the 30th of all years covering the whole period between the required dates
Given I am a CIF administrator
When I am creating or editing the annual reports of a project revision
Then I don't see a "Generate annual reports" button if there are existing annual reports
Development Checklist:

[x] Refactor the generation function in the database to split the work into 2 separate functions to generate Annual and Quarterly reports- independently maintainable and testable
[x] Separate report auto-generation feature tests (Quarterly and Annual)
[x] Update mutation functions
[x] Update tests to cover the new logic for annual reports (X+1 and X+2)
[x] Always show required date fields even if reports are generated
[ ] Meets the DOD

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[x] User story is included
[x] User role and type are identified
[x] Acceptance criteria are included
[ ] Wireframes are included (if required)
[x] Design / Solution is accepted by Product Owner
[x] Dependencies are identified (technical, business, regulatory/policy)
[x] Story has been estimated (under 13 pts)

·Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

Notes:

Note That we have a timezone issue for this feature which is addressed in this ticket.

Before hard-coding such logic in the application, @nanyangpro to reach out and confirm the logic in this ticket with the business area, in a written format, for traceability.
cc @LindsayMacfarlane

Quick Note here, We need to change the end date of annual reports from 31 to 30. Currently, the logic is based on Jan 31st of each year.

Hey team! Please add your planning poker estimate with Zenhub @pbastia @Sepehr-Sobhani

Hey team! Please add your planning poker estimate with Zenhub @dleard @gurjmatharu

Written confirmation on the details in the description above has been received from CIF Ops Amanda.

Hi @nanyangpro - thanks for the above. Is it possible to remove the copy of the email (i.e., email addresses and names) and just have the calculation/formula? I recognize that those are business emails, but we try not to include those in ZenHub. Thanks!

Thank you @Sepehr-Sobhani! Looks good :)

Thank you @Sepehr-Sobhani - during a quick first test, I couldn't generate an annual report. The button isn't greyed out, but when I click, nothing happens. I'll test again, but perhaps you can take a quick look as well?

Thanks, @LindsayMacfarlane! Would you please send me the dates you've tested with?

That happened because Emissions Intensity Report Due Date is after the Project Assets Life End Date.

Ok! Thank you :) I will retest. We could also consider adding (at a later date) an error message? (FYI @nanyangpro, @suhafa)

@Sepehr-Sobhani - retested - looks great! Looks like it meets acceptance criteria. Thanks for all your work on this critical feature for CIF :)


[ Pooling2D ] forwarding pooling 2D layer

This PR includs forwarding process of pooling 2d layer.
in which,
. implementation of forwarding
. unit test code for forwarding
. input / ouput generation of pooling 2D ( max pooling only )
. move zero_pad to util_func.h
Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #169. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.


Issue and Pull Request bindings

Add issues and pull requests to the bindings, with comments API. See #13.
So far:

Added GHIssue domain object, and a way of getting an issue by number on a repository.
Added GHIssueCreator, which eases creation of issues in a builder pattern similar to GHCommitBuilder and GHCommitLogger. Responds with a GHIssue upon sending #execute.

Tasks:

[x] Figure out class hierarchy for pull requests: should it be a subclass of GHIssue?
[x] Listing and querying of issues.
[x] Editing issues.
[x] Issue Comments API.
[x] ~~Issue labels, milestones?~~→ Will be done later.

[x] Labels
[x] Milestones

I will merge this pr and close the issue by running this script (excluding recursive script):
repo := github user repository: 'GitHub'.
pr := repo pullRequestByNumber: '15'.
pr addCommentWithBody: 'I will merge this pr and close the issue by running this script (excluding recursive script):'.
pr editor
	body: pr body, '
Closes #13.';
	withLabels: #(core-api merged-with-bindings);
	execute.
pr merge.


Recommended way to avoid clippy error?

I have the following code:

const INITIAL_BIAS: u32 = 72;
const BASE: u32         = 36;
const TMIN: u32         = 1;

const_assert!(INITIAL_BIAS % BASE <= BASE - TMIN);

error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false
  --> src/punycode.rs:18:15
   |
18 | const_assert!(INITIAL_BIAS % BASE <= BASE - TMIN);
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[deny(clippy::absurd_extreme_comparisons)]` on by default
   = help: because `INITIAL_BIAS % BASE` is the minimum value for this type, this comparison is always true
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons

Basically in this example the constant expression INITIAL_BIAS % BASE  = 0, and for unsigned ints 0 is always the smallest value, thus doing <= is always true.
I can disable the clippy warning for my file, but I'm curious if there is some way for const_assert to suppress this error? Otherwise is reduces the value of these const_assert a little bit, without disabling the clippy warning.

Yeah, I've also experienced warnings on constants.
/// the amount of lives the player starts with
const STARTING_LIVES: usize = 3;
/// game cannot graphically handle more than this, so ensure we don't later change `STARTING_LIVES`
/// to anything greater
const LIVES_CAP: usize = 10;

const_assert!(STARTING_LIVES <= LIVES_CAP);

warning: constant `LIVES_CAP` is never used
  --> src/main.rs:18:7
   |
18 | const LIVES_CAP: usize = 10;
   |       ^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

I've solved this by adding #[allow(unused)], though in your case you'll need rust nightly to fix it.
#![feature(stmt_expr_attributes)]

const INITIAL_BIAS: u32 = 72;
const BASE: u32 = 36;
const TMIN: u32 = 1;
const_assert!(
    #[allow(clippy::absurd_extreme_comparisons)]
    INITIAL_BIAS
        % BASE
        <= BASE - TMIN
);


📝(react) add missing design tokens on Select's documentation

Design tokens documented in the Select docs should match the available tokens under token.ts. This modification offer an exhaustive and complete list of the design tokens available to customize the select component.

@jbpenrath @NathanVss by default, the component convert props date value to the local timezone of the user. Would you prefer the date picker converting it to a default common timezone, and make this timezone a props?


for RabbitMQ 3.4.1

Hi,
This Plugin is looks very nice. Please provide me binary for RabbitMQ 3.4.1.
Thanks
memorycraft

Take a look here: http://www.rabbitmq.com/community-plugins/v3.4.x/ and this page as well: http://www.rabbitmq.com/community-plugins.html


Add Qaterial to existing Qt-Project using universal styled custom controls

Hey,
I want to use Qaterial as main UI components in my applications. The application currently relies on a Universal styled custom control set. I managed to build Qaterial for Qt 5.15 and I also can build my application against it. App launches, but app crashes after loading my main qml file. I built qaterial on local hard drive and want to include the lib in my qmake base project.
Here my project file:
# set path and name of lib
CONFIG(debug, debug|release) {
    QAT_BUILDTYPE = Debug
}
else {
    QAT_BUILDTYPE = Release
}

#CONFIG += staticlib

DEFINES += "QATERIAL_STATIC=1"

*msvc*{
    INCLUDEPATH += $$PWD/../../../../Qaterial/install/win/$${QAT_BUILDTYPE}/include
    LIBS += -L$$PWD/../../../../Qaterial/install/win/$${QAT_BUILDTYPE}/lib \
    -lQaterial \
    -lQaterialIcons \
    -lQaterialFonts \
    -lQaterialComponents \
    -lQOlm
    DEPENDPATH += $$PWD/../../../../Qaterial/install/win/$${QAT_BUILDTYPE}/lib
    QML_IMPORT_PATH += $$PWD/../../../../Qaterial/qml/Qaterial
}

Load main file, in main file i did not import Qaterial.
    m_qmlEngine.load(QUrl(QStringLiteral("qrc:/EuroSoftLiveViewQml_win.qml")));
Init qaterial:
    m_engine->addImportPath("qrc:///");
    qaterial::loadQmlResources();
    qaterial::registerQmlTypes();

Starting app:

qaterial.utils: Load Qaterial v1.4.6
qaterial.utils: Load font ":/Qaterial/Fonts/Lato/Lato-Regular.ttf"
qaterial.utils: Load font ":/Qaterial/Fonts/Roboto/Roboto-Medium.ttf"
qaterial.utils: Load font ":/Qaterial/Fonts/Roboto/Roboto-Regular.ttf"
qaterial.utils: Load font ":/Qaterial/Fonts/RobotoMono/RobotoMono-Regular.ttf"

Crash of app:

I've been able to use locally built Qaterial with QaterialGallery and HelloWorldExample, these applications start fine. So my idea is that my config in qtquickcontrolsconfig2.conf could be the reason?
[Controls]
Style=Universal

[Material]
Primary=#03A9F4
Accent=#01579B

[Universal]
Accent=#0086E6

Can anyone help me?

Hello you should simply use cmake, I don't know qmake. I have no idea from where the crash might come.

Hello same behaviour.
Here parts of my cmake. Luckily I'm currently working on moving my prject from qmake 2 cmake.
if(MSVC)
    include_directories(D:/Projects/Qt/Qaterial/install/win/${CMAKE_BUILD_TYPE}/include)
    target_link_directories(${QATERIALGALLERY_TARGET} PRIVATE D:/Projects/Qt/Qaterial/install/win/${CMAKE_BUILD_TYPE}/lib)
    set(QML_IMPORT_PATH D:/Projects/Qt/Qaterial/qml/Qaterial D:/Projects/Qt/Qaterial/install/win/${CMAKE_BUILD_TYPE}/lib CACHE STRING "" FORCE)
endif()

target_link_libraries(EuroSoft_live PRIVATE
        ${CMAKE_CURRENT_BINARY_DIR}/../../applets/measurement/measurement.lib
        ${CMAKE_CURRENT_BINARY_DIR}/../../applets/settings/settings.lib
        ${CMAKE_CURRENT_BINARY_DIR}/../../libraries/EuroSoft/EuroSoft.lib
        ${CMAKE_CURRENT_BINARY_DIR}/../../libraries/EuroSoftUi/EuroSoftUi.lib
        ${CMAKE_CURRENT_BINARY_DIR}/../../libraries/3rdparty/QCustomPlot/QCustomPlot.lib
        ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/3rdparty/QuickDownload/lib/win/QuickDownload${LIB_SUFFIX}.lib
        ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/3rdparty/SCodes/lib/win/SCodes${LIB_SUFFIX}.lib
        ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/3rdparty/S6600RemoteDisplay/lib/win/S6600RemoteDisplay${LIB_SUFFIX}.lib
        ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/3rdparty/ncreport/lib/win/NCReport${LIB_SUFFIX}2.lib
        ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/3rdparty/ncreport/lib/win/NCReportZint${LIB_SUFFIX}2.lib
        Qt::PrintSupport
        Qt::WebChannel
        SetupAPI
        hid
        user32
        opengl32.lib
        Qaterial
        QaterialIcons
        QaterialFonts
        QaterialComponents
        QOlm
    )

When i don' add import path "qrc:///" I get following error:
qaterial.utils: Load font ":/Qaterial/Fonts/Roboto/Roboto-Medium.ttf"
qaterial.utils: Load font ":/Qaterial/Fonts/Roboto/Roboto-Regular.ttf"
qaterial.utils: Load font ":/Qaterial/Fonts/RobotoMono/RobotoMono-Regular.ttf"
QQmlApplicationEngine failed to load component
qrc:/EuroSoftLiveViewQml_win.qml:30:1: Type Framework.EsApplication unavailable
qrc:/ui/framework/EsApplication.qml:25:1: Type Controls.ApplicationWindow unavailable
qrc:/Qaterial/ApplicationWindow.qml:45:3: Qaterial.DialogLoader is not a type
WARNING: No translated disclaimer found. Using english disclaimer instead.

My application makes heavy usage of quickcontrols, could it be that loading qaterial "overwrites" quickcontrols object?
Regards Michael

Maybe here:
https://github.com/OlivierLDff/Qaterial/blob/598a80f89777d79e80efe23bf5faada46218a703/src/Qaterial/Details/Utils.cpp#L139-L143

Thank you very much!! This did the trick!!
m_engine->addImportPath("qrc:///");
qaterial::loadQmlResources(false);
qaterial::registerQmlTypes();

With this init without setting the style my app starts up.


Payload data size  exceeds max payload 1.0 MB

          Almost successfully converted my second db.

Here web app logs stored, rows can be very long. As i see, all data over 1Mb is truncated?
[2023/11/20 11:25:39] [error] source/source.go:319 [source] data size 3.9 MB exceeds max payload 1.0 MB
[2023/11/20 11:25:39] [info] source/source.go:116 [source] Number of events: 305453, Total data size: 12.8 GB, Status: RUNNING
[2023/11/20 11:25:39] [error] source/source.go:319 [source] data size 1.8 MB exceeds max payload 1.0 MB
[2023/11/20 11:25:39] [error] source/source.go:319 [source] data size 2.4 MB exceeds max payload 1.0 MB
[2023/11/20 11:25:39] [error] source/source.go:319 [source] data size 2.5 MB exceeds max payload 1.0 MB

[2023/11/20 11:25:59] [error] source/source.go:319 [source] data size 10.6 MB exceeds max payload 1.0 MB
[2023/11/20 11:25:59] [info] source/source.go:116 [source] Number of events: 317373, Total data size: 13.7 GB, Status: RUNNING
[2023/11/20 11:25:59] [error] source/source.go:319 [source] data size 1.6 MB exceeds max payload 1.0 MB
[2023/11/20 11:25:59] [error] source/source.go:319 [source] data size 2.3 MB exceeds max payload 1.0 MB

[2023/11/20 11:26:19] [error] source/source.go:319 [source] data size 31.3 MB exceeds max payload 1.0 MB

[2023/11/20 13:04:27] [info] source/source.go:136 [source] Number of events: 4231524 Total data size: 215.0 GB Elapsed: 1h43m38.014884413s Started: 2023-11-20 11:20:49.678982991 +0300 MSK m=+20.073532831, Status: FINISHED

[2023/11/20 13:13:49] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING
[2023/11/20 13:13:54] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING
[2023/11/20 13:13:59] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING
[2023/11/20 13:14:04] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING
[2023/11/20 13:14:09] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING
[2023/11/20 13:14:14] [info] target/target.go:120 [target] Number of events: 1130245, Total data size: 9.8 GB, Status: RUNNING

Here just 4kk rows for 200Gb. So db size doesn't matter.
Total db size just 2Gb.

I'm not sure if such long rows really necessary at production, except logs. Maybe put custom payload to backlog.
Originally posted by @TristisOris in https://github.com/slotix/dbconvert-streams-public/issues/4#issuecomment-1818777828

@TristisOris, thank you for reporting this issue.

[2023/11/20 11:26:19] [error] source/source.go:319 [source] data size 31.3 MB exceeds max payload 1.0 MB

As per NATS documentation, the default message payload size is 1 MB. However, it's possible to increase this value up to 64 MB. They advise against exceeding 8 MB, but the max_payload can be configured up to 64 MB (NATS Docs).
We acknowledge the problem and will work on a solution promptly. You will be notified once it's resolved.

@TristisOris,  please try the latest release, version 0.8.4. I hope the issue is fixed there.
This error is likely occurring because records in the source table are too large. When transferring data between a source database and the target, rows of data are  combined from the source tables into bundles and then published to NATS. To resolve this issue, you can set the dataBundleSize parameter to a lower value.
If the problem persists even after adjusting the parameter value down to 1, modify the NATS configuration: You need to increase the max_payload parameter in the NATS configuration to 8MB.

Some rows still more than 64Mb, but we already see that increase limits is working.
But after completition target DB size just 2Gb, even if writer say 16.
same with another table
[2023/12/05 15:22:52] [info] source/convert.mysql.go:49 [source] table: logs_20231203 processed
[2023/12/05 15:22:52] [info] source/source.go:143 [source] Table: "logs_20231203",  Status: FINISHED, Success events: 1170607 Data size: 42.5 GB, Failed events: 9, Started: 2023-12-05 15:05:53, Elapsed: 16m59.009826944s
[2023/12/05 15:22:52] [info] source/source.go:147 [source] Total, Status: FAILED, Success events: 1170607 Data size: 42.5 GB, Failed events: 9, Started: 2023-12-05 15:05:53, Elapsed: 16m59.009515058s

[2023/12/05 15:22:32] [info] target/target.go:116 [target] Status: RUNNING, Success events: 1145420 Data size: 41.7 GB
[2023/12/05 15:22:42] [info] target/target.go:116 [target] Status: RUNNING, Success events: 1157419 Data size: 42.1 GB
[2023/12/05 15:22:52] [info] target/target.go:116 [target] Status: RUNNING, Success events: 1170585 Data size: 42.5 GB
[2023/12/05 15:23:02] [info] target/target.go:116 [target] Status: RUNNING, Success events: 1170607 Data size: 42.5 GB
[2023/12/05 15:23:12] [info] target/target.go:116 [target] Status: RUNNING, Success events: 1170607 Data size: 42.5 GB

target DB size 6Gb.
At first look data inside both db looks similar. Rows amount also same.

nats max_payload: 64MB,  "dataBundleSize": 1,
a first time when i see "finished" at worker)
[2023/12/07 10:46:10] [info] source/source.go:142 [source] Table: "logs_20231203",  Status: FINISHED, Success events: 1170616 Data size: 42.5 GB, Started: 2023-12-07 10:14:32, Elapsed: 31m37.11211494s
[2023/12/07 10:46:10] [info] source/source.go:146 [source] Total, Status: FINISHED, Success events: 1170616 Data size: 42.5 GB, Started: 2023-12-07 10:14:32, Elapsed: 31m37.111648512s

[2023/12/07 10:46:10] [info] target/target.go:124 [target] Status: FINISHED, Success events: 1170616 Data size: 42.5 GB, Started: 2023-12-07 10:14:32, Elapsed: 31m37.143094256s

No any errors, transfer looks legit. Traffic and disk pressure on VM was high as should be.
But target DB 6Gb anyway. What may i miss? Or is it possible compress 30Gb to 6?


How to create custom renderer/backend?

Hi. I need to create a new renderer and backend as the provided options do not fit my needs. My issue is that I cannot seem to find how the backends "link" in to the library. How is the renderer/backend selected and how would I go about creating my own?

Backends are ultimately just users of the library. imgui processes input events and widget creation commands and outputs draw lists, e.g. triangle vertices, texture identifiers, colors etc. It is the responsibility of the backend to

interpret data coming from the OS and translate it into input events for imgui
interpret the draw lists coming from imgui and translate it into draw calls for your renderer

In turn your application uses the functions of those backends as an intermediate layer and is responsible for managing their state.
You can get started by reading the existing backends, reproducing what they do and adapt that to your renderer/input system. Hope that helps!

Ah, forgive me for forgetting to update this. I ended up taking another approach and integrating egui instead. That had an existing GLFW backend for me to selectively pull from.