vim-localvimrc not working with dein.vim

Problems summary
vim-localvimrc is a plugin designed to source vim setting per project by sourcing a .localvimrc file in the root directory of the project. When using the  dein#load_state(g:vim_bundle_path) / call dein#save_state() the live stage that sources the plugin seems to be skipped, but the plugin is listed as added. However does not work.
Expected
I have a minimal .localvimrc file inside a project dir:
let g:my_current_project_name = 'vectorExample'

I am expecting to see the text vectorExample when I do echo g:my_current_project_name but that is not the case. When I take out the dein#load_state(g:vim_bundle_path) / call dein#save_state() bits, the plugin is sourced and the functionality is as expected.
Environment Information

OS: OSX 10.10.5

Vim version:
7.4 (1-1553)

Provide a minimal .vimrc with less than 50 lines (Required!)
" Minimal DEBUG .vimrc file
if &compatible
    set nocompatible
endif

" Path to the plugin manager:
set runtimepath^=/Users/me/.vim/bundle/repos/github.com/Shougo/dein.vim
let g:tmp_bundle_path = '/Users/me/.tmp/tmp_bundle'

" (DISABLE_TO_MAKE_THIS WORK)
if dein#load_state(g:tmp_bundle_path)
	" Start the plugin block.
	call dein#begin(g:tmp_bundle_path)

	" Initial plugin is the plugin manager.
	call dein#add('Shougo/dein.vim')

	" Add or remove your plugins here:
	call dein#add('embear/vim-localvimrc',
	\ {'merged' : 0,
            \ 'normalized_name' : 'localvimrc'})
	" Plugin configuration.
	if dein#tap('vim-localvimrc')
    	" The plugin is active.
    	let g:localvimrc_name = [".vixrc"]
    	let g:localvimrc_sandbox = 0
    	let g:localvimrc_script_dir = 1
    	let g:localvimrc_debug = 0
    	let g:localvimrc_persistent = 2
    	let g:localvimrc_event = [ "BufWinEnter",  "BufWritePost" ]
    	let g:localvimrc_ask = 0
    endif
	" End the plugin block.
	call dein#end()
" (DISABLE_TO_MAKE_THIS WORK)
call dein#save_state()
endif

" Install the plugins that have not been installed  so far.
if dein#check_install()
    call dein#install()
endif

" Reset settings.
filetype plugin indent on

The reproduce ways from Vim starting (Required!)

Start Vim.
Load a script file (py/vim/cpp) from a folder with a .localvimrc file
Run: echo g:my_current_project_name

Screen shot (if possible)
(Not provided.)
Upload the log messages by :redir and :message
(Not provided.)

    " Plugin configuration.
    if dein#tap('vim-localvimrc')
        " The plugin is active.
        let g:localvimrc_name = [".vixrc"]
        let g:localvimrc_sandbox = 0
        let g:localvimrc_script_dir = 1
        let g:localvimrc_debug = 0
        let g:localvimrc_persistent = 2
        let g:localvimrc_event = [ "BufWinEnter",  "BufWritePost" ]
        let g:localvimrc_ask = 0
    endif

This part need to be after call dein#save_state()

Thanks for the examples. In my case all my plugins are sourced and configured between the call dein#begin and the call dein#end() commands. I am not sure if I understand the hooks. I will look at your examples more carefully however, this is confusing me a lot. From a setup point of view, I need to add the plugins and configure them in one cycle. Cause I do this:
" This is pseudo code!

if dein#load_state

    call dein#begin

    for each [plugin] in list of [plugins]
        call dein#add([plugin])
        configure([plugin])

    call dein#end

 call dein#save_state

So I need to take the configure([plugin]) bit outside the main dein block?

So I need to take the configure([plugin]) bit outside the main dein block?

Yes. The block is not called when you have a latest state cache. Read :help dein

Ok then I have two choices, I guess. Take out the state commands and only leave the:
call dein#begin

for each [plugin] in list of [plugins]
    call dein#add([plugin])
    configure([plugin])

call dein#end

... bit in there. Will that work? I mean, I did not know about the state command and I have been using dein.vim with only the begin/end block. On the other hand, I would love to learn about the hooks. Could you please help me write the hook for localvimrc? I keep reading and reading, but it is hard to understand. This is a really hard learning curve :( Thanks for the help so far.

Well... First of all, dein#load_state() return 1 if there is a latest state cache. So you cannot put any code to configure individual plugins in if dein#load_state() block.
The followings are example of each situation. Read :help dein-hooks for detail about hooks.
Without using dein#load_state()
call dein#begin(...)
call dein#add({plugin})
call dein#add({plugin})
call dein#add({plugin})
call dein#end()

if dein#tap('plugin')
   " something
endif
if dein#tap('plugin')
   " something
endif
if dein#tap('plugin')
   " something
endif

With using dein#load_state()
if dein#load_state(...)
  call dein#begin(...)
  call dein#add({plugin})
  call dein#add({plugin})
  call dein#add({plugin})
  call dein#end()
  call dein#save_state()
endif

if dein#tap('plugin')
   " something
endif
if dein#tap('plugin')
   " something
endif
if dein#tap('plugin')
   " something
endif

With hooks
if dein#load_state(...)
  call dein#begin(...)
  call dein#add({plugin}, {
\ 'hook_add': 'some code',
\})
  call dein#add({plugin}, {
\ 'hook_add': 'some code',
\})
  call dein#add({plugin}, {
\ 'hook_add': 'some code',
\})
  call dein#end()
  call dein#save_state()
endif

Thank you very much for the help and for your time you have put in to explain this. What exactly the difference between Without using dein#load_state() and With using dein#load_state()? As far as I understand the state functions cache plugin initialisation (not merging them) so this speeds up the process, right? So if I avoid the state block, things might be slower at start-up time, is it going to break things?
On the other hand, I will need to write the configuration of each plugin as a function and inject is as a hook, which might be really painful, is that the case?

What exactly is the difference between Without using dein#load_state() and With using dein#load_state()? As far as I understand the state functions caches the plugin initialisation (not merging the plugins though) so this speeds up the process, right? So if I avoid the state block, things might be slower at start-up time, is it going to break things?

Basically, you don't need dein#load_state(). dein.vim is fast enough and you won't notice the improvement. The exception is when you are using a TOML (a syntax sugar of dein#add()) to list your plugins. The TOML parser is really slow so dein#load_state() would drastically improve the start-up time in this case.

On the other hand, I will need to write the configuration of each plugin as a function and inject is as a hook, which might be really painful, is that the case?

You don't need to write the configuration of each plugins as a function and as a hook.
You need to write the configuration of each plugins as an if-block or as a hook.
Note that there are several hooks but I'm talking about hook_add. Other hooks have different role which is well explained in the help.

You don't need to write the configuration of each plugins as a function and as a hook.
You need to write the configuration of each plugins as an if-block or as a hook.

I get that. In case it is a hook, it can live inside the state block. In case it is an if-block it has to be called after the state block. If no state blocks are used, the if-block can be inside the begin/end block.
I will try the hooks just to understand how they work. Why we are using hook_add? Shouldn't we be using the hook_source, as the plugin configuration is something that is needed when the plugins are sourced? I though the state block skips the adding if the state is up-to-date. However, the plugin is still sourced. So should I use the hook_source hook? Thanks.

I will try the hooks just to understand how they work. Why we are using hook_add? Shouldn't we be using the hook_source, as the plugin configuration is something that is needed when the plugins are sourced? I though the state block skips the adding if the state is up-to-date. However, the plugin is still sourced. So should I use the hook_source hook? Thanks.

hook_add - Called when a plugin is added
hook_source - Called when a lazy plugin is sourced
hook_post_source - Called after a lazy plugin is sourced

So hook_source/hook_post_source are not called for non lazy plugins (except if you call these explicitly like my vimrc.)

I see. Thank you very much.
Look at your config, you are using TOML, so the hook API is a bit obscure if we are using vimL
hook_add = '''
  let g:netrw_nogx = 1 " disable netrw's gx mapping
  nmap gx <Plug>(openbrowser-smart-search)
  vmap gx <Plug>(openbrowser-smart-search)
'''

What would be the way to write this with the vimL API, for example for the vim-localvimrc plugin?
call dein#add('embear/vim-localvimrc', {
	\ 'hook_add':
                     let g:localvimrc_name = [".vixrc"],
                     let g:localvimrc_sandbox = 0,
                     let g:localvimrc_script_dir = 1,
                     let g:localvimrc_debug = 0,
                     let g:localvimrc_persistent = 2,
                     let g:localvimrc_event = [ "BufWinEnter",  "BufWritePost" ],
                     let g:localvimrc_ask = 0)
	 \ })

Something like that but the value of hook_add need to be a string (your example would raise a syntax error of Vim).

Yes :) I know. It was just rough representation, so all these settings has to go into on single string?
'let g:localvimrc_name = [".vixrc"] let g:localvimrc_sandbox = 0 let g:localvimrc_script_dir = 1 ...'

In the help, there are no examples demonstrating the use of global variables inside the hooks.

Yes :) I know. It was just a rough representation, so all these settings has to go into on single string?

Yes.

In the help, there are no examples demonstrating the use of global variables inside the hooks.

I have added it.

Thank you very much! Finally I start to understand how this works. Here is my hook_add for the vim-localvimrc plugin:
call dein#add('embear/vim-localvimrc',
            \ {'merged' : 0,
            \ 'normalized_name' : 'localvimrc',
            \ 'hook_add': "
            \ let g:localvimrc_name = ['.vixrc']\n
            \ let g:localvimrc_sandbox = 0\n
            \ let g:localvimrc_script_dir = 1\n
            \ let g:localvimrc_debug = 0\n
            \ let g:localvimrc_persistent = 2\n
            \ let g:localvimrc_event = ['BufWinEnter', 'BufWritePost']\n
            \ let g:localvimrc_ask = 0\n
            \ "})

I can confirm that the above block works with the if dein#load_state() ... dein#save_state. The plugin gets added, after that the sourcing is not repeated, yet the global variables required for the plugin are valid. Exactly as it is intended to be.

:-)

You don't have to set "normalized_name".
It is set automatically.

I also can confirm that if I change the above block, for example, add a new global variable:
\ let g:my_test_variable = 'banana'\n

... the if dein#load_state() ... dein#save_state() is re-evaluated and the variable is added to the configuration.

You don't have to set "normalized_name".
It is set automatically.

Sure, good to know.

... the if dein#load_state() ... dein#save_state() is re-evaluated and the variable is added to the configuration.

Yes, it is the feature.


[HELM]: Publish Helm 0.3.0

Issue related to the new Helm update.

Helm 0.3.0 Update
Prepares chart for the next release

cc: @abhioncbr @xiangfu0

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (abf06a1).
Report is 1142 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (abf06a1). Click for more details.
HEAD has 48 uploads less than BASE

Flag
BASE (59551e4)
HEAD (abf06a1)

integration
7
2

integration2
3
2

temurin
12
2

java-21
7
2

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
1

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #14169       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436        3     -2433
  Lines        133233        6   -133227
  Branches      20636        0    -20636
=============================================
- Hits          82274        0    -82274
+ Misses        44911        6    -44905
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
0.00% <ø> (-61.75%)
:arrow_down:

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Is that a valid SPICE instance?

https://github.com/RTimothyEdwards/open_pdks/blob/cc82b606c3f50baedfcbd99567652e828739ff41/sky130/custom/sky130_fd_io/spice/sky130_fd_io.spice#L2913
Answer appears to be: depends which kinda SPICE you ask.
In the cases it does get accepted, it's unclear just what is inferred. (Presumably an open?)

That one passed through all of my tools unchallenged.  Fixing it now.  Thanks for finding the needle in the haystack.

The fix for this has been pushed to the opencircuitdesign.com repository (will update on github in about 5 hours).


Use an AEAD cipher instead of AES-CBC + HMAC-SHA1

cookie-rs currently uses AES-256-CBC and then HMAC-SHA1 in encrypt-then-MAC.  This is secure, since AES-256-CBC and HMAC-SHA1 are both individually secure and because they are used in encrypt-then-MAC.
However, neither AES-256-CBC nor HMAC-SHA1 is fast, even when AES is hardware accelerated (due to the serial nature of CBC mode).  ChaCha20-Poly1305 is much faster.
Again, cookie-rs's current crypto is not insecure, just slow.

Ideally this'd actually be configurable rather than only hardcoding one and calling it a day, but I'm somewhat hesitant to deviate away from the source of this, Rails, which is probably much more experienced than I :)

Opened a PR: https://github.com/alexcrichton/cookie-rs/pull/68.

There's another PR for this: #76.


Documentation: Communications Management Controller should be Meeting Server

There still exists some out of date documentation regarding the newly supported Cisco Meeting Server.
For example the readthedocs:
https://splunk.github.io/splunk-connect-for-syslog/main/sources/vendor/Cisco/cisco_ms/
I also recall some traces in the code which refer to Communications Management Controller.

:tada: This issue has been resolved in version 2.9.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


when IE Developer toolbar Network profile session is on silentCallback not working

when IE Developer toolbar Network profile session is on silentCallback not working

What does "not working" mean?


Add basic latency benchmarks for migrations

Issue Number
ADP-680
Overview

2c31861c18d72c5ca8ce46fe39a1f9e87e59ba68
Add basic latency benchmarks for migrations

Comments
Migration Plan
Migration

bors r+

bors r+

bors r+


The .html code of our developed webpage sends (date, month, year, hour, minute, seconds) of system to which it is connected from front end through json format. I am using esp32C3. I am facing issue in acquring/printing that json object array on screen. In my code I took a variable and allocate memory for the same and defined a pointer array. Now I want to print each of that element but it is showing zero value.

Please read the instructions for issues. You need to provide details, code, info of your setup, a clear explanation.
To me it sounds like a general programming question though and not an issue with ESP in particular

@julian-weinert Thanks for reporting. Would you please help provide more details as suggested in the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.

Thanks for reporting, and will close due to short of details, feel free to reopen and provide more information as per the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.


GEODE-6580: Cleanup static analyzer warnings.

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

@bschuchardt The PutOpImpl constructor? The analyzer found that 99% of the code was identical. I collapsed it down to the diff.


A little HOWTO would be nice

Thank you for making a product helping me be a better webdeveloper!
But, at least for me, it's not that obvious how to use the Aviewer. Could you please add a little guide/howto, to help us get started?
Kind Regards
/Bjarni

Hi Bjarni,
I agree, its a time/resource issue
I don't know if you have seen this http://www.paciellogroup.com/blog/2013/03/aviewer-2013/ it may be helpful.

Hi Steve
I totally understand :-)
I haven't seen that blogpost, thanks. That helps a lot.
Kind regards
/Bjarni

It may be worth re-opening this... right now I don't think we link to that 'blog post from anywhere within WAT or on the web pages about either WAT or aViewer.  Given that most people will probably meet aViewer via WAT, I think we should link to this documentation from there.  I'll re-open this and assign it to myself to keep track of this.  Thanks @bjarniolsen for reporting.

No problem :-)

Thanks to @patrickhlauke a link to the 'blog post was added to the README in ef1ed45139f40638401f4a6ca86a4298d984797e.
However I'll keep this open as I agree with Patrick that this is...

while we wait to create a proper documentation in GitHub and as part of
the download package itself

I agree; we should copy and update that post to either be part of the README here or some other documentation.

Did an initial transfer (minus images) of that blog post here to the wiki. https://github.com/ThePacielloGroup/aviewer/wiki
May at a future point add it as standalone docs that get installed together with the app, but for now i think that'll work.


Impossible to set up resolve fallbacks without ejecting

Describe the bug
Even if webpack.config.js is present in the project's directory, having something like
resolve: {
  fallback: {
    path: require.resolve("path-browserify"),
    crypto: require.resolve("crypto-browserify"),
    stream: require.resolve("stream-browserify"),
    buffer: require.resolve("buffer")
  },
}

fallback modules aren't used anyway, unless node_modules/react-scripts/config/webpack.config.js is patched accordingly.
Did you try recovering your dependencies?
Yes
Which terms did you search for in User Guide?
webpack
(Write your answer here if relevant.)
Environment

Environment Info:

  current version of create-react-app: 5.0.0
  running from /home/sweater/.npm/_npx/c67e74de0542c87c/node_modules/create-react-app

  System:
    OS: Linux 4.19 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (12) x64 Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
  Binaries:
    Node: 17.5.0 - /nix/store/5kfq0gsyrzh3491wwxc9mp9sgrqq4b70-nodejs-17.5.0/bin/node
    Yarn: Not Found
    npm: 8.4.1 - /nix/store/5kfq0gsyrzh3491wwxc9mp9sgrqq4b70-nodejs-17.5.0/bin/npm
  Browsers:
    Chrome: 92.0.4515.131
    Firefox: Not Found
  npmPackages:
    react: Not Found
    react-dom: Not Found
    react-scripts: Not Found
  npmGlobalPackages:
    create-react-app: Not Found

Steps to reproduce

Run npm i libsodium-wrappers --save
Import it in some node module with import * as sodiumBootstrap from 'libsodium-wrappers'
Make a react component in your App.tsx, and make sure that the module from (2) is included and somehow used (i.e. await sodiumBootstrap.ready;)
Witness react-error-overlay complaining about missing path
Try to add package fallbacks into webpack.config.js
Run again, witness the same overlay from (4)
Patch node_modules/react-scripts/config/webpack.config.js with the same package fallbacks
Run again, witness the error overlay disappearing

Expected behavior
webpack.config.js from the project's root should be merged with the one from react-scripts/config
Actual behavior
webpack.config.js from the project's root isn't merged with the one from react-scripts/config, causing error (4)
Reproducible demo
https://github.com/doma-engineering/do-auth/tree/polyfill-conundrum/priv/ui steps can be reproduced with this branch of this project.

This patch addresses the issue via react-rewire-app.

Sorry if I'm dense but what steps do we need to do in order to use a resolve.fallback?

@tobowers

Install react-rewire-app locally, save dev dep
Add config-overrides.js (sorry for poor formatting in the patch, I used unconfigured VIM)
Install all the fallback deps, save
Patch package.json like so: https://github.com/doma-engineering/do-auth/commit/49fe608c26fd98cb058527012c16a4b3e0cbb961#diff-6f49c77b929570ee0278e0ca5b13c4099415f66529360dee6d84ebc6b236b107R27


Update help window and fix bugs in UG

Update help window with latest version of the application
Fix inconsistencies in UG

Codecov Report

Merging #193 (ff2f34c) into master (a089140) will decrease coverage by 1.40%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #193      +/-   ##
============================================
- Coverage     57.12%   55.72%   -1.41%
- Complexity      689      699      +10
============================================
  Files           136      138       +2
  Lines          2890     2988      +98
  Branches        372      391      +19
============================================
+ Hits           1651     1665      +14
- Misses         1063     1133      +70
- Partials        176      190      +14

Impacted Files
Coverage Δ

src/main/java/seedu/address/ui/HelpWindow.java
0.00% <ø> (ø)

...a/seedu/address/model/reservation/Reservation.java
65.85% <0.00%> (-22.61%)
:arrow_down:

...a/seedu/address/model/transaction/Transaction.java
58.53% <0.00%> (-18.14%)
:arrow_down:

.../address/logic/commands/AddReservationCommand.java
76.74% <0.00%> (-8.98%)
:arrow_down:

src/main/java/seedu/address/model/Timestamp.java
78.57% <0.00%> (-6.05%)
:arrow_down:

...java/seedu/address/model/reservation/DateTime.java
71.42% <0.00%> (-5.50%)
:arrow_down:

.../address/logic/commands/AddTransactionCommand.java
85.00% <0.00%> (-1.85%)
:arrow_down:

...dress/logic/commands/DeleteTransactionCommand.java
77.27% <0.00%> (-1.30%)
:arrow_down:

src/main/java/seedu/address/MainApp.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/UiPart.java
84.00% <0.00%> (ø)

... and 44 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a089140...ff2f34c. Read the comment docs.


Add support for Sumo Logic Terraform Provider

Add support for Sumo Logic Terraform Provider
Add user resource

Sorry, this is not ready yet.


Scalafmt basic setup

Description of Changes
Adds Basic Scalafmt support via SBT

Adds basic support for https://github.com/picnicml/doddle-model/issues/95
Includes

[x] Code changes
[ ] Tests
[ ] Documentation

@inejc Here's my personal setup for Scalafmt - feel free to make changes as you please (If you'd like I can also add a format of the whole project to this PR so you can see what these settings would do)

@inejc Finally had a bit of free time, here's what Scalafmt does to everything

@Helw150 this is really cool, I like it. We have a pretty big PR waiting to be merged (https://github.com/picnicml/doddle-model/pull/107) and in light of avoiding complex conflicts, I suggest we wait with this one and run Scalafmt again once https://github.com/picnicml/doddle-model/pull/107 is merged. Would that work for you?

Ok so after a discussion with @matejklemen, we want to:

merge https://github.com/picnicml/doddle-model/pull/107
rebase + merge https://github.com/picnicml/doddle-model/pull/69
run scalafmt on a rebased branch again and merge it

Yup, easy enough for me to wait and run the format after that gets merged


[MXNET-16] [DO NOT MERGE] move nnvm & dmlc-core to 3rdparty

Description
(Brief description on what this PR is about)
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[ ] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

@rahul003 could you help review changes in launch.py?
@mbaijal could you help review changes related to license?
@szha could you help review changes in setup.py?
@cjolivier01 @yajiedesign could you help review make/cmake?
@sergeykolychev could you help review changes for perl?
@marcoabreu could you help review changes for Jenkins?

@eric-haibin-lin perl change looks good to me.

@sergeykolychev test_dynamic  test for perl failed in the most recent commit. Do you think that's caused by this PR?

The CI is not running. I'm going to close it and create a new one.

@eric-haibin-lin How can I merge these two folders? I am trying to merge master branch into my local dev branch.
# Unmerged paths:
#   (use "git add <file>..." to mark resolution)
#
#       added by us:        3rdparty/dmlc-core
#       added by us:        3rdparty/nnvm


ADD: Pin gas asset of respective chain on top

To always have the used gas asset of each chain in sight, please pin it to the top of the token list without the possibility to deselect it.

This is in chain detail view


Order By support for getRelated

Related objects can be filtered by supplying a Criteria obects to the getRelated method, but ORDER BY clauses appear not to be supported.
The runQuery method in Amiss\Sql\Relator\OneMany assumes that if criteria are supplied then there are only WHERE conditions to satisfy.
Can this be fixed by adding support for the various kinds of criteria in the runQuery method?

I've introduced support for this in the new (as yet unreleased) version of Amiss (v5), but there are about a zillion BC breaks in it. The plan is to support v4 with bugfixes and as a PHP 5.3 compatible version, but v5 and beyond is where all new features will be added and has a PHP 5.6 minimum. I'll continue to support v4 with bugfixes if people are still using it and the new site will host both v4 and v5 documentation.

Excellent! I'm using getList as a work-around at the moment, but I'll definitely look at an upgrade when we move to 5.6.

Are there any other things you've been having trouble with or would like to see? I'm starting to polish v5 a bit now, but I might be able to sneak the odd new thing if it's not too radical.

I've just had a look through our version to see which features I've added over the past few months. Let me know if you'd like me to make pull requests for / elaborate on any of them!

Read only field support (seems to be done in v5)
Case-insensitive order by support (ASC vs asc etc.)
MetadataBuilder class to provide a DSL for building metadata at runtime
CustomMapper object to simplify writing classes to provide mapping for more complicated objects.
ChainMapper to allow the use of multiple mappers at once - i.e. a stack that finds the top-most compatible mapper. I have Note at the bottom, and all our CustomMappers at the top.
Extendable Criteria object for building DSLs to find particular entities.

MySQL Specific:

Auto-generation of ON DUPLICATE KEY UPDATE clauses for INSERTs
Support for DELETE IGNORE
Handling for MySQL dropping the connection after inactivity (this was biting us in some long-running scripts)

Wow, this is great! I've added my own support for case insensitive ordering to v5 and pushed. Can you please send a pull request for the ChainMapper? That sounds awesome!
Would you mind if I opened separate issues for some of the other stuff? I'd really like to ask some follow-up questions about a few of the things you've added and separating the discussions by topic will make it a bit easier.

Sure thing, open one for ChainMapper as well, as I'm not completely happy with the implementation.
I won't be around a lot for the next couple of weeks as I'm getting married, but I'll try and get the code samples re-based onto v5 when I can.

That's awesome! Congratulations!
There's no hurry, I think I'll be hacking on v5 for a few weeks yet, particularly the documentation. Thanks heaps for your help and your thoughts.


[HUDI-1874] Remove the broken file for FlinkMergeHandle

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #2908 (42ea61d) into master (3418a92) will decrease coverage by 43.56%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #2908       +/-   ##
============================================
- Coverage     52.93%   9.36%   -43.57%
+ Complexity     3748      48     -3700
============================================
  Files           488      54      -434
  Lines         23566    1997    -21569
  Branches       2508     236     -2272
============================================
- Hits          12474     187    -12287
+ Misses         9989    1797     -8192
+ Partials       1103      13     -1090

Flag
Coverage Δ
Complexity Δ

hudicli
?
?

hudiclient
?
?

hudicommon
?
?

hudiflink
?
?

hudihadoopmr
?
?

hudisparkdatasource
?
?

hudisync
?
?

huditimelineservice
?
?

hudiutilities
9.36% <ø> (-60.35%)
48.00 <ø> (-326.00)

Flags with carried forward coverage won't be shown. Click here to find out more.


[Rust] Missing reserved keyword async

Rust is missing the async in the list of reserved keywords in Rust.ts.

PR: https://github.com/quicktype/quicktype/pull/2381


Remove Beta from Table of Contents

So strange. I just became aware of this project yesterday and began integrating it (in the hope that it would soon come out of beta). Much appreciated. 🙏


Remove connections if they are already disconnected

The number of connected peers is what matters.

Log connected peers only
Remove connections if they are already disconnected

Documentation

[x] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[x] I thought about the changelog and included a changelog update if required.

This is what peering looks like

and blocks behind


environmentSetupFileName tag treating value as different

while using this environmentSetupFileName in pom.xml ,values given in the environmentSetupFileName xml tag is not treating the value as same.while creating .bat file it is using the value with suffix .bat and while creating .sh file it is not using the value with suffix .sh.
eg. aaa
In the batch file that is created after building the project ,the value is
"if exist "%BASEDIR%\bin\aaa.bat" call "%BASEDIR%\bin\aaa.bat""
In the script file that is created after building the project,the value is
[ -f "$BASEDIR"/bin/aaa ] && . "$BASEDIR"/bin/aaa
why it is not suffixing with .sh in the above command.

b/c it was needed on linux. On window. it is required to add .bat.  i dont think there is a way to force it to add .sh into unit script

[ -f "$BASEDIR"/bin/aaa ] && . "$BASEDIR"/bin/aaa
This command is trying to find out the aaa file,but the file system contains aaa.sh .So this condition is failing and the aaa.sh is not executing .
This will make the linux script unusable.Is there any possibility for adding some other tags to replace the contents present in the linux script using maven appassembler?

why can you use just use 'aaa'?  b/c of internal build convention?
you  can also patch the generated script at build time


[HOLD for payment 2024-04-15] [$500] HIGH: Add empty state UI for the LHN

Slack context: https://expensify.slack.com/archives/C01GTK53T8Q/p1705945570975289
Problem
In #focus mode it's possible to "clear out" your LHN such that there's no chats that appear. Note that this only happens on mobile because on wide screens you always have a chat open. In this case, the app looks semi-broken because it's so empty.

Solution
Create an "empty state" UI that gives the user something fun to look at when they've cleared out the LHN in #focus mode.
Mockup
Figma link

Empty state animation
Fireworks lottie file
Empty state illustration
Fireworks.svg.zip
Note that ideally we will want to use an animation here—I'm just attaching the SVG as a just-in-case.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012902c6ddfd90e221
Upwork Job ID:<PHONE_NUMBER>715035136
Last Price Increase: 2024-01-22
Automatic offers:

DylanDylann | Contributor | 28123180
tienifr | Contributor | 0

Cheers to @dannymcclain for the mockup. If possible, can you include some Figma screenshots in the issue description to show precise sizes and layout? That would be helpful

@roryabraham haha I was JUST about to post a link to the Figma. Yes, I'll get some stuff together and add it to the description.

Cheers!

Proposal
Please re-state the problem that we are trying to solve in this issue.
There's no zero state for the sidebar when there's no option list items
What is the root cause of that problem?
This use cases has not been handled. A new user would always have the concierge chat. It's possible to get into the zero state use case when they get cleared from the focus flow.
What changes do you think we should make in order to solve the problem?
We should create a new zero state component, with props for the icon, text, and instructions.
We can use this in the  component where we can render a zero state if the data is empty. And can reuse this component for future use cases.
What alternative solutions did you explore? (Optional)

Don't allow last item to be hidden ( limits user experience )
Don't allow concierge to be hidden in focus

Thanks for the proposals everyone, just want to clarify that the designs are finalized. Going to hold off on accepting a proposal until I get the final 👍🏼 from @dannymcclain https://expensify.slack.com/archives/C01GTK53T8Q/p1706085371949699?thread_ts=1705945570.975289&cid=C01GTK53T8Q

Thanks @roryabraham! I think we may want to consider an alternate illustration and some updated copy. Structurally, I think the layout is pretty well determined, but I'd like to get the final details worked out with the team.

Alright I've updated the mocks in the issue description (attaching for reference). Hoping to lean on @shawnborton for the lottie animation 🎆

I'm guessing this file here is what we need

@michaelhaxhiu I'm happy to take this as C+

@abzokhattab @jeremy-croff Your proposal is so general  and doesn't cover detail step to implement new feature
@neonbhai I appreciate your idea but you missed the logic to only show this new feature on mobile and render icon in the subtitle as mentioned in @tienifr's proposal
@tienifr Your proposal looks good to me. You can consider using a element instead of the renderEmptyStateSubtitle function
🎀 👀 🎀 C+ reviewed

Waiting a approval from @roryabraham

Upgrading to HIGH as I agree this is pretty confusing when you experience it.

Actually, reassigning to wave8 as this feels more like a core part of ideal nav.

Added to the Ideal Nav release.

Whoa, my apologies for the long delay. I think I overlooked this in my k2 because it still had the Planning label. Thanks @laurenreidexpensify for making me the issue owner as that helped bring it to my attention.
I am bringing this up for discussion here

Wait for updating from @roryabraham

So this is a kind of unprecedented scenario, but we discussed it a bit and after some consideration, and here's what I'm going to suggest.

@tienifr's proposal is the best one in my opinion.
However, he also currently has 34 open PRs, so I think we probably need to share the love a bit
I'm going to accept @tienifr's proposal but assign it to @neonbhai to implement since they had the 2nd-best proposal.
I think we should pay $400 to @neonbhai and $100 to @tienifr (i.e: 20% for the proposal, 80% for the implementation).
I understand this is a bit different/arbitrary. We're discussing whether we need a formal process for this scenario, but it so far hasn't really come up. I'm hoping that the parties on this issue agree for this one case with the understanding that we may or may not formalize a process for this type of scenario in the future.

@neonbhai @tienifr what do you think?
cc @laurenreidexpensify @mallenexpensify

One thing we need to consider here is that we risk setting precedence here, where other contributors can link back to this - @contributor-A has x number of PRs, therefore they shouldn't be hired.   In general, if we decide to make decisions about why we want or don't want to hire a contributor, we should be able to link to a public .md file that states the reasons. We do have Rules 1 and 2 so we could denote issues or PRs that are in violation of GSD.  We also have the below in CONTRIBUTING.md
Before proposing anything, I'd like to wait for @tienifr 's feedback.

Daily updates on weekdays are highly recommended. If you know you won’t be able to provide updates within 48 hours, please comment on the PR or issue stating how long you plan to be out so that we may plan accordingly. We understand everyone needs a little vacation here and there. Any issue that doesn't receive an update for 5 days (including weekend days) may be considered abandoned and the original contract terminated.

If you want to spread the love further I'd be glad to take some of the 34 PR's that are past 5 days. I'm only slightly kidding.

I agree, not trying to set a precedent without wider discussion here, and I think @jeremy-croff's comment kind of confirms @mallenexpensify's concerns.

Thanks for the context @tienifr! I think that's good enough for me.

In Figma I have this sized at 164x148... But I honestly don't know what the actual dimensions of the lottie animation are. We use the same animation (I think) on the wallet transfer success screen—so that might be one to check out if you need more details.

I think the lottie file is actually showed at something like 140x140... but I feel like we can easily find this in the code somewhere? It will definitely be different from what Danny has above.

Okay cool, we can stick with that then.

Currently when the chat list size is 0, we shows the Concierge chat here. So when exactly would this empty state happen?

I'm not sure why that code isn't working, but I confirmed I was able to easily reproduce this on iOS 1.4.44-7. You have to be in #focus mode. @tienifr are you unable to reproduce this?
Regardless, I think with this code we'd probably want to remove that logic that adds the concierge chat if there's nothing else in the LHN, and display the empty state ui instead.

@tienifr @shawnborton totally agree. Let's keep the implementation simple.

I wonder if we need to take into consideration the space below the tab bar?

I think Shawn is right—can we center align the UI minus the height of the tabs? So the empty state moves up by however tall the tab bar is?

PR is now on HOLD for https://github.com/Expensify/App/issues/37296

on HOLD for https://github.com/Expensify/App/issues/37296, but it looks like @tienifr and @DylanDylann are both working on that issue as well, and there hasn't been any activity for about a week

Waiting for KI retest on #37296

@laurenreidexpensify no longer hold

PR deployed to staging 🚀

Heads up, @tienifr & @DylanDylann: https://github.com/Expensify/App/issues/39932#issuecomment-2045680039

@trjExpensify can you confirm ^^

according to the investigation of a few people on https://github.com/Expensify/App/issues/39932, it was not caused by https://github.com/Expensify/App/pull/37361. So we don't think this caused a regression

Correct yeah, seems like it's onboarding related. :)

Payment Summary:

c+ $500 @DylanDylann offer sent in upwork
contributor $500 @tienifr offer sent in upwork

Payment Summary:

c+ $500 @DylanDylann paid via upwork
contributor $500 @tienifr paid via upwork

@DylanDylann @tienifr please confirm checklist / regression testing

Regression Test Proposal
Small screen devices only

Switch to #focus mode
Mark all reports as read or unpin them so that LHN is cleared out
Verify the empty state UI shows as expected
Verify it in different themes, languages and devices

Do we agree 👍 or 👎


TF AWS provider version bump

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-2009
Changes in this PR:

Version bump of Terraform AWS Provider to 3.28.0
Changed version comparison operator from ~> (increments only the revision number) to >=

Review app deployed to https://teaching-vacancies-review-pr-2871.london.cloudapps.digital

Closing in favour of:

splitting out version constraints to its own PR
re-opening with a PR which renames the provider to its full name hashicorp/aws and the version bump to 3.28.0


documentation for enabling dynamic resize

Its not covered here or on the web page but the js for enabling resize would be helpful to highlight.
this.init = function() {
$(window).resize($.proxy(this.resize, this));
this.resize();
};

Thanks for this. I just added an "autoResize" option to the plug-in.
So you can just call:
$('.myItems').wookmark({autoResize: true});
And every time the browser resizes, a layout update will be done. There is a slight delay of 50ms, between layout updates. Otherwise, slower browsers would have performance issues.
Hope this helps.


Introduces SLDRenderer

This introduces the SLDRenderer component (currently not included in the demo Application). It does a getLegendRequest with a mocked SLD.
It requires a wmsBaseUrl and a layer as prop.
Eventhough we don't need a layer for our purpose it is required by the standard.
Now advanced styles can be shown, too. :tada:

Only tested with GeoServer

Could you add a delay to the SLDRenderer so that a request will not be fired on every single change?


Bulk Generalization (OQMD)

Use cases:

Use case 1:
a. Use of bulk datasets that are not from materials project, but include the same minimum information. Additionally RE: 20211202 Meeting, this file will be required to be an asedb.
b. Minimum info:
i. An identifier (i.e. oqmd-172889)
ii. An (relaxed?) atoms object
iii. A source name
iv. The number of elements
v. The elements
vi. The functional type
vii. Corrected formation energy

Scope:
What will be done:

All files will be modified to accommodate arbitrary input asedbs that contain the minimum information.
Impact of pre-relaxation will be assessed
OQMD asedb file will be written
Download.py implementation will be assessed

What will not be done:

Load bulks will not be modified to accommodate arbitrary input files. It will be up to the person using a new file to convert it to asedb and include the minimum information

Execution plan:

Generate an asedb for oqmd bulks that have been relaxed
Files to be changed:
a. load_bulk_structures.py, filters.py
Evaluate the impact of pre-relaxation for predictions with 2 direct and 2 relaxation methods.
Generate an asedb for all OC20-like oqmd bulks with E above hull < 0.2 eV/atom
Add documentation for additional inputs, what has good coverage in OC20, what doesn’t, and how/if bulks should be pre-relaxed

Task
Owner
Due by
Dependent?

Generate asedb of pre-relaxed structures from MP
Brook
2021/12/14
N

Make edits to files and test changes
Brook
2021/12/22
Y

Evaluate the impact of pre-relaxation on predictions
Brook
2021/12/24
N

Summarize results about bulk pre-relaxation sensitivity
Brook
2021/12/24
Y

Edit documentation to reflect changes
Brook
2021/12/29
Y

Generate asedb for all OC20-like materials in OQMD
Brook
2022/01/10
Y

Consider any problems / risk:
Need to work with the group to define what success looks like for pre-relaxation of bulks. I think though just making the limitations clear is a good step in the right direction.

Need to run tests on relaxations. Results for direct: https://docs.google.com/presentation/d/1AtOPYbePjVqr3neO-z6nZu8_TjIO7wvNtfSIih0muOA/edit#slide=id.g109a1a228cf_0_0
https://docs.google.com/presentation/d/1WGI-UiLHnsSET2Lrex49UkRSnRxf8GIqu2ndmw2AdI8/edit#slide=id.g10be625d900_0_0


No support for Python 3.12

I see some claims that pythran supports Python 3.12, but it uses distutils so it doesn't:
https://github.com/serge-sans-paille/pythran/blob/b37f5842aa22239dec078e4c05427e2f08da5e1f/pythran/run.py#L13
causing
ModuleNotFoundError: No module named 'distutils'

when running pythran --version.
This happens for example in scipy during meson configure, resulting in build failure.
Code changes are required to continue to use distutils, you cannot rely on import distutils to work even if you add a dummy dependency on setuptools. See https://github.com/cython/cython/pull/5754#issuecomment-1752102480 for why not.

Thanks for the report. I believe #2205 fixes most of the issues (?)

Fixes it :+1:

Fixed by #2205

Hi @serge-sans-paille, would it make sense to backport this in a patch release? Does pythran have patch releases?

no patch release, but I plan a release in the forthcoming weeks, I need to have a look at https://github.com/serge-sans-paille/pythran/issues/2203 first though.


fix function rename in secp256k1

Follow-up on #3082
secp256k1_ec_privkey_tweak_add was renamed and is now secp256k1_ec_seckey_tweak_add in upstream bitcoin-core/secp256k1@41fc785602 and bitcoin-core/secp256k1@22911ee6da. This removes a warning.
Perhaps we should put this on hold a little until we're sure that we won't revert the subtree update - but it's good to have the PR here regardless - prevent potential double work.

I forgot to mention seeing this over the past week. It may make sense to update all pertinent functions and variables accordingly but is not necessary to fix the warning. :shrug:

It may make sense to update all pertinent functions and variables accordingly but is not necessary to fix the warning.

I'm hesitant to do that, because it will increase the diff for 1.14.7 even more: it is basically decreasing consistency with previous 1.14 releases, but increasing consistency towards the 1.21 future. I basically wonder how valuable that is. Are we likely to deeply touch key.cpp for 1.14?

Re key.cpp/1.14: no I think not and no worries, I just wanted to share that as I was consolidating browser tabs and this seemed like an apt place to put it. 😅

Design ACK; tested without rebase on 64-bit Linux. I agree with @xanimo we're not likely to make other changes to key.cpp for the 1.14.7 release, so I think we should consider approving this PR.


Fix K8S probe should be object instead of list

Description of changes:
Fix K8S probe should be object instead of list. That cause coalesce.go:199: warning: destination for readinessProbe is a table. Ignoring non-table value [] if override those values.
Also put correct default value of livenessProbe on README.md
Test Results:
Helm lint OK, just have rbac.authorization.k8s.io/v1beta1 deprecated warning. And I'm not sure should I fix it at the moment.
Also work with my deployment
Note: If this PR is related to Helm, please also update the README for related documentation changes. Thanks.
https://github.com/opendistro-for-elasticsearch/opendistro-build/blob/master/helm/README.md
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on signing off your commits, please check here.

Hi @alantang888  we have moved to OpenSearch (opensearch.org)
And we just merged the 1st version of Helm there opensearch-project/opensearch-devops#4
Could you close this PR and migrate there? Thanks.

Sure, thanks for update.


Theremin enhancements to sonify all 3 axes

Summary
This draft PR is to get advice on code style and other aspects of contributing to the jacdac-docs repository while improving the functionality of the accelerometer theremin. This PR can be merged into the jacdac-docs website upon maintainer approval.
List of changes

added 2 sets of radio buttons to select axis of the accelerometer to sonify and to select property of the buzzer sound to change.
Added event handlers to set axis to sonify, frequency offset and volume based on user selection.
modified code that sonifies the accelerometer data (starting at line 93) to reflect new behavior.

Known issues/to-dos

passing the volume to playTone does not seem to change buzzer audio. Please advise if I am missing something.
I tried manually passing numbers between 0 and 1, and 1 and hundred to test this as I was unsure of the value range and yet I could not hear any change in volume. I tried both setting the volume state that I defined above using its setter, and passing the numbers to rule out the possibility of my setVolume conflicting with the one from the webAudioContext. I tried going through the web audio context code to root cause this issue with no success.
I would like to alert the user of the axis that is being sonified and the sound property that is being changed when the user hits the start streaming button, or when the user changes the selection in one of the radio button groups but I was unable to successfully generate aria alerts when either of these events happened. That is, I would like the alert to remind the user of the axis being sonified if the user changes the sound property, and the sound property that is being changed if the user changes the axis to sonify. I experimented with React Alert component from material UI and it results in the desired screen reader behavior. Please advise on the right way to do this.
Tagging @pelikhan  and @jamesadevine  for feedback and review.

We use Prettier to format the source code so that whitespace, semi columns are all standardized (may not always be pretty, but it is consistent). The VSCode extension is at https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

Great changes. I'm going to merge this and see what is the best way for alerting the user. You can then fork again and we iterate

@venkateshpotluri can you sign the license/cla? https://cla.opensource.microsoft.com/microsoft/jacdac-docs?pullRequest=78

@pelikhan  @jamesadevine  I accepted the CLA and made a few fixes to address some comments in the review. I had one question about the suggestion to use  useRef for the volume: My understanding, upon reading up on useRef, is that

Updating a reference doesn’t trigger a component re-rendering
(source). would the tone volume update if we change volume to use useRef?

I'm going to merge this and investigate the volume issue.

@venkateshpotluri see the following commit that updated your changes to the theremin at https://github.com/microsoft/jacdac-docs/commit/479f006e3048a42670cec388179d21d6022ad3c2 .
In a nutshell, volume and frequency should be local variable to the callback function that handles a new accelerometer reading. They are not used in the UI and don't need to be tracked in the React state using the useState hook. This simplifies the code a bit too.


Tags

Implement tag system
Tags are embedded expanders for injecting type. Embed it in your injecting type:
type Command interface {
  // ...
}

type ListConsoleCommand struct {
  di.Tags `console.command:"list"`
}

func NewListConsoleCommand() {
  return &ListConsoleCommand{}
}

Provide your type as interface:
c, err := di.New(
   di.Provide(NewListConsoleCommand, di.As(new(Command)))
   // or
   di.Provide(NewListConsoleCommandWithoutTags, di.As(new(Command)), di.WithTag("console.command", "list"))
)

And use Resolve() with WithTag() option for fetch instance
with concrete tag-value combination:
 var command Command
 container.Resolve(&command, WithTag("console.command", "list"))

Can you also use it like this?
 var commands []Command
 container.Resolve(&commands, WithTag("console.command"))

Yes, that would be reasonable.

Final version in #24


refactor: unified factory and informer

Type of change:

[ ] Bugfix
[ ] New feature provided
[x] Improve performance
[ ] Backport patches

What this PR does / why we need it:

fix:
With the increase of functional requirements, the interdependence between resources is inevitable. We should unify the informer structure to avoid errors caused by resources not being ready.

Pre-submission checklist:

[ ] Did you explain what problem does this PR solve? Or what new features have been added?
[ ] Have you added corresponding test cases?
[ ] Have you modified the corresponding document?
[ ] Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

Codecov Report

Merging #1530 (8698487) into master (d22a6fc) will increase coverage by 0.18%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #1530      +/-   ##
==========================================
+ Coverage   41.22%   41.41%   +0.18%
==========================================
  Files          85       85
  Lines        7440     7406      -34
==========================================
  Hits         3067     3067
+ Misses       4020     3986      -34
  Partials      353      353

Impacted Files
Coverage Δ

pkg/providers/ingress/ingress.go
4.09% <0.00%> (+0.10%)
:arrow_up:

pkg/providers/ingress/provider.go
0.00% <0.00%> (ø)

pkg/providers/k8s/pod/provider.go
0.00% <ø> (ø)

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

I communicated offline with @AlinsRan   who has been testing this PR for a long time.
So I think it's safe to merge it now

I think we should add some performance testing, and get related metrics and reports.


Fix ChatPrompts with LLMs

Currently js has a bug, where if you pipe a ChatPromptTemplate into an LLM, it uses the raw json serialization as input to the model :(

Python: https://smith.langchain.com/public/a2eb85bf-99bf-44c9-a4fb-b090b761577c/r/6935e177-ff27-4d28-8d19-3b3d0d88ffe2
Javascript: https://smith.langchain.com/public/706de8fb-84db-4435-a1ab-19c7c9202cc5/r/03a0032e-ff17-4d46-81a0-c59cd514e871

Thanks, just fix CI!


Have to press windows key 3 times to show task bar within undecorated fullscreen window on Win10

Hello, I was unable to find a bug log for this, I apologize if there is one.
On windows 10 when I have an undecorated window that matches the monitors current video mode size  (undecorated fullscreen window) I have to press the windows key three times just to show the task bar. This should work first time.

Sometimes it just isnt having it and have to press the windows countless times in rapid succession

I also notice that when it finally does want to show the task bar, that the windows contents goes black and then also momentarily shows an old cached buffer - as previously mentioned in https://github.com/glfw/glfw/issues/939

Sometimes the task bar wont show, instead the windows contents will remain black which is confusing for the user.

The screen also goes black momentarily when I refocus the window which is annoying.

Can't remember seeing this before.
Are the windows full screen? In other words, did you explicitly set a monitor?

There is no monitor explicitly set on any of my windows. They are non decorated, sized to fit the screen to appear fullscreen.

I have to press the windows key three times just to show the task bar.

Cannot reproduce this on Windows 10 1607.
I do notice the window sometimes flashing black, which I believe is the compositor switching it from page flipping to copying. I don't know what can be done from our end about that.


Support configuration via symlinks

VSCode Version: Code - Insiders 1.3.0-insider (798b41ab1cf3636a27042020a54ddfb4cfb8d23c, 2016-06-29T05:14:50.570Z)
OS Version: Linux x64 4.4.0-24-generic, Ubuntu 16.04

Steps to Reproduce:

Open settings
Change a setting that should have an immediate impact, notice there is no change

I have a feeling this is because I have my settings.json symlinked and it's not being watched correctly.
❯ ls -la ~/.config/Code\ -\ Insiders/User
total 16
drwx------ 4 daniel daniel 4096 Jun 23 22:46 .
drwx------ 8 daniel daniel 4096 Jun 27 03:38 ..
drwx------ 2 daniel daniel 4096 Mar  2 10:58 snippets
drwxrwxr-x 5 daniel daniel 4096 Jun 27 02:24 workspaceStorage
lrwxrwxrwx 1 daniel daniel   47 May 21 16:20 keybindings.json -> /home/daniel/.config/Code/User/keybindings.json
lrwxrwxrwx 1 daniel daniel   44 May 21 16:20 settings.json -> /home/daniel/.config/Code/User/settings.json

That is a scenario we do not support officially.

It worked completely fine until a few days ago FYI. I've been using this setup for several months.

@bpasero any idea what could have changed with this? Did someone touch any watching logic recently? I'd rather fix this in vscode than change my dotfiles to duplicate the files.

No nothing changed as far as I know, but feel free to investigate and PR me if you found something.


com.apple.paper.doc.pdf is Unrecognized ZTYPEUTI

ZTYPEUTI to add: com.apple.paper.doc.pdf
Anticipated type of file: Document

I've added this in 59ac8801cf2629af1192dad6233971f4a2c537dd. However, I seem to recall this UTI coming up when I was adding support for the new scan galleries (com.apple.paper.doc.scan) and seem to recall frustration, yet I don't have any of them in my test database. Please make sure it appears the way you are expecting it to and reopen this if something looks off.


Initial Doxygen Creation

It would be great if we could add the html folder to a .gitignore file within the docs/ folder. In order to actually have these ignored, you'd need to make a commit deleting the html folder. Then you can add the .gitignore and rebuild the html with doxygen. If the html folder is correctly ignored, it won't be prompted by GitHub Dekstop to be added to the commit

Search bar does not respond. I can type in it, but pressing the search button or pressing the enter button on my keyboard both do nothing.

It would be great if we could add the html folder to a .gitignore file within the docs/ folder. In order to actually have these ignored, you'd need to make a commit deleting the html folder. Then you can add the .gitignore and rebuild the html with doxygen. If the html folder is correctly ignored, it won't be prompted by GitHub Dekstop to be added to the commit

You'd also probably need to update the docs readme with instructions for how to generate the doxygen project. Once we have all this, we can look into getting a CICD workflow that generates the doxygen for us and hosts it on github pages

Search bar does not respond. I can type in it, but pressing the search button or pressing the enter button on my keyboard both do nothing.

We probably want to get a fix in under a different ticket.


Fix parse_options_header to handle RFC2616

The current version of the function does not handle correctly the
multiple MIME type version of the header as described in RFC2616. This
patches fixes that. It also fixes #404 at the same time.

I've just updated it to latest master, would be nice to merge this now :)

Are you using this function directly in your code, or is this for some other part of Werkzeug?

This is only used in my code for now, but it's likely the rest of werkzeug could be updated to leverage that in a later patch.

@untitaker I've just updated it, it would be nice to merge now :(

Merged, thanks!

:+1: @untitaker


Swipe event doesn't work in Chrome 55.0

We use leftSwipe and rightSwipe to detect the event but neither of it works in Chrome with version higher than 55.0. But before it worked in Chrome 54.0 and version lower than 55.0.
Also tried in Firefox and Safari, and both of them work fine.
hammer.add(new Hammer.Swipe({ event: "leftSwipe", direction: Hammer.DIRECTION_LEFT }));
hammer.add(new Hammer.Swipe({ event: "rightSwipe", direction: Hammer.DIRECTION_RIGHT }));

This problem can also be test here https://hammerjs.github.io/

This is only when using touch - doing the swipe action with the mouse does still work!

I cannot swipe in my Mac chrome in the swipe example in this page https://hammerjs.github.io/

+1

I can confirm this issue on several Android devices. The problem only occurs in Chrome - swipe still works with the default browser on the same devices.

Hi.
In our app we have a relative positioned header where swipe events works fine, the next element in the DOM is a div which has the style overflow-y: auto; breaking the Hammer recognizer.

Seeing this problem also.
Can we make this a high priority item to get fixed and released.
What is the best hotfix for this?  Just to take WoodyWoodsta's branch?

@ritterb82 By all means, go ahead. After trying it out, I ended up abandoning that approach as it appears to break pan support on desktop versions of, at least, chrome. Unfortunately I do not have time to try and find a way around this without help understanding the library from one of the members!
A similar package has also run into the same problem and is taking a similar, temporary approach in https://github.com/zingchart/zingtouch/commit/6ada7839f513f8d13b82750f031e45f2af08111f. Perhaps one could get some hotfix ideas from there.

Also, just to add some more details.  The swipe stops working as soon as I add the overflow property to the div.

Any workaround or fix available?

Also, just to add some more details. The swipe stops working as soon as I add the overflow property to the div.

Same here.

You can try setting { inputClass: Hammer.TouchMouseInput }
Tested on Chrome and FF for android, Chrome and Safari for iOS and Chrome, FF, Safari and Opera for OSX.

You can try setting { inputClass: Hammer.TouchMouseInput }

That doesn't fix it for me. I still don't get any swipe events when swiping over an element with overflow: auto.

I think this is due to chrome making touchEvents passive by default. Ill try to find time to lookinto this and fix this week

Not sure if this is related but this works for me:
Hammer(element).on('swipeleft swiperight', onSwipe);

But this doesn't:
		var hammer = new Hammer(element);
		hammer.add(new Hammer.Swipe());
		hammer.on('swipeleft swiperight', onSwipe);

I'm on Chrome 56 using the device mode from developer tools.

@josex2r I've found a workaround, because I have the same issue as you have. Here it is:

...

var hammered_div_with_overflow_css_property = new Hammer(document.querySelectorAll('[data-div-with-overflow-css-property]')[0]);
hammered_div_with_overflow_css_property.on('swipeleft', swipeLeftHandler);
hammered_div_with_overflow_css_property.on('swiperight', swipeRightHandler);

I have a similar ui-library with similar issues. I noticed that latest Chrome has support for pointer events which does not have "touches" or "targetTouches" properties in the event object. Therefore multitouch events cannot be detected from the event object itself.
Seems that I have to start saving pointerIds and the state (up/down) of pointers. Or somehow force touch events.

Thanks @f3dd3rn, it works 👍

the iscroll also uses pointer event as a default if browser can use pointer event.
but, if you use pointer event, you should controll touchAction property.
so, I solved a similar problem.
https://github.com/cubiq/iscroll/pull/1122

FYI
I've solved my problem (Swipe not working on Chrome 56 on Android) using this
      var hammertime = new Hammer.Manager(document.querySelector('.l-main'), {
        touchAction: 'auto',
        inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput,
        recognizers: [
          [Hammer.Swipe, {
            direction: Hammer.DIRECTION_HORIZONTAL
          }]
        ]
      });

@attiks That solved the issue for me as well, thanks for sharing your solution ❤

Strangely enough I also had issues with the swiping on a div that had "overflow-y" set to "auto". My Hammer was capturing directly on the body:
Hammer(document.body).on("swipe tap press", touchHandler);
adding an empty event handler to my div solved the issue and now I can scroll up and down within the div and still swipe left and right to navigate:
Hammer(document.body).on("swipe tap press", touchHandler);
Hammer(document.getElementById('careerblock')).on('swipe', function(){});

Hope this helps someone!

I've found a workaround, because I have the same issue as you have. Here it is:
...
var hammered_div_with_overflow_css_property = new Hammer(document.querySelectorAll('[data-div-with-overflow-css-property]')[0]);
hammered_div_with_overflow_css_property.on('swipeleft', swipeLeftHandler);
hammered_div_with_overflow_css_property.on('swiperight', swipeRightHandler);
It works fine for swipeleft and swiperight
I need to enable swipeup and swipedown. can anyone help me fix this one?

I had a div element that needed to be scrollable up/down and swipable left/right. None of the above suggestions fixed it... What helped instead was to put
touch-action: pan-y;

to its child element.
Might have to look at this any further: https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

I came about this issue when creating a Hammer instance through new Hammer(...). Haven't looked into what the deeper issue might be, but the immediate remedy for me was to use Manager directly:
import { Manager, Swipe, DIRECTION_ALL } from 'hammerjs';

const hammer = new Manager(element);
hammer.add(new Swipe({ direction: DIRECTION_ALL }));

... or ...

const hammer = new Manager(element, {
  recognizers: [[ Swipe, { direction: DIRECTION_ALL } ]]
});

Thanks @attiks, it works on Chrome 65.

@attiks I noticed this disabled swiping with the mouse on desktop view.  For folks that need to support horizontal swiping on desktop and mobile devices, can try the following (this is 99% Attiks' solution, just one minor change on my part, changing TouchInput to TouchMouseInput):
      var hammertime = new Hammer.Manager(document.querySelector('.l-main'), {         touchAction: 'auto',         inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchMouseInput,         recognizers: [           [Hammer.Swipe, {             direction: Hammer.DIRECTION_HORIZONTAL           }]         ]       });
This doesn't seem to break anything in my project, hopefully it's kosher. :)

Instead of mapping the hammer instance to the scroll able element, I did this...

and
Hammer(document.getElementById("overlay")).on('swipeleft' function(ev) { . . . });
it's kinda hacky tho.

FYI
I've solved my problem (Swipe not working on Chrome 56 on Android) using this
      var hammertime = new Hammer.Manager(document.querySelector('.l-main'), {
        touchAction: 'auto',
        inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput,
        recognizers: [
          [Hammer.Swipe, {
            direction: Hammer.DIRECTION_HORIZONTAL
          }]
        ]
      });

Nice, you save my life!

FYI
I've solved my problem (Swipe not working on Chrome 56 on Android) using this
      var hammertime = new Hammer.Manager(document.querySelector('.l-main'), {
        touchAction: 'auto',
        inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput,
        recognizers: [
          [Hammer.Swipe, {
            direction: Hammer.DIRECTION_HORIZONTAL
          }]
        ]
      });

Saved my life too..


Cleanup pre launch

Removes unused classes in order not to confuse users. Relevant, now that snapshots are being published.
Fixes #70

[ERROR] /home/travis/build/spring-cloud/spring-cloud-gcp/spring-cloud-gcp-pubsub/src/test/java/org/springframework/cloud/gcp/pubsub/converters/PubsubHeaderMapperTests.java:[40,17] cannot find symbol

  symbol:   class PubsubHeaderMapper

  location: class org.springframework.cloud.gcp.pubsub.converters.PubsubHeaderMapperTests

[ERROR] /home/travis/build/spring-cloud/spring-cloud-gcp/spring-cloud-gcp-pubsub/src/test/java/org/springframework/cloud/gcp/pubsub/converters/PubsubHeaderMapperTests.java:[40,49] cannot find symbol

  symbol:   class PubsubHeaderMapper

  location: class org.springframework.cloud.gcp.pubsub.converters.PubsubHeaderMapperTests

[ERROR] /home/travis/build/spring-cloud/spring-cloud-gcp/spring-cloud-gcp-pubsub/src/test/java/org/springframework/cloud/gcp/pubsub/converters/PubsubHeaderMapperTests.java:[64,17] cannot find symbol

  symbol:   class PubsubHeaderMapper

  location: class org.springframework.cloud.gcp.pubsub.converters.PubsubHeaderMapperTests

[ERROR] /home/travis/build/spring-cloud/spring-cloud-gcp/spring-cloud-gcp-pubsub/src/test/java/org/springframework/cloud/gcp/pubsub/converters/PubsubHeaderMapperTests.java:[64,49] cannot find symbol

  symbol:   class PubsubHeaderMapper

  location: class org.springframework.cloud.gcp.pubsub.converters.PubsubHeaderMapperTests

See Travis report and don't hesitate to run build local before pushing commits to PRs.


Support for Angular v18

In a search for solution for angular project with standalone components i find this kind of solution. I hope it will help you.
This works for angular 18 (^18.0.4)
app.config.ts
import {
  ApplicationConfig,
  importProvidersFrom,
  provideZoneChangeDetection,
} from '@angular/core';
import { provideRouter } from '@angular/router';

import {
  HttpClient,
  provideHttpClient
} from '@angular/common/http';
import { provideClientHydration } from '@angular/platform-browser';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { routes } from './app.routes';

function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
export const provideTranslation = () => ({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
});

export const appConfig: ApplicationConfig = {
  providers: [
    provideZoneChangeDetection({ eventCoalescing: true }),
    provideHttpClient(),
    importProvidersFrom([TranslateModule.forRoot(provideTranslation())]),
    provideRouter(routes),
    provideClientHydration(),
  ],
};

app.component.ts
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { MainComponent } from 'components/main/main.component';
import { SpacebgComponent } from 'components/spacebg/spacebg.component';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [RouterOutlet, MainComponent, SpacebgComponent, **_TranslateModule_**],
  templateUrl: './app.component.html',
  styleUrl: './app.component.scss',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AppComponent {
  constructor(public translate: TranslateService) {
    translate.addLangs(['en', 'ru']);
    translate.setDefaultLang('ru');

    const browserLang = translate.getBrowserLang();
    translate.use(browserLang?.match(/en|ru/) ? browserLang : 'ru');
  }
}

app.component.html
{{ "helloworld or any other word from your json" | translate }}

@MarikaKonturova thank you very much.

+1

@MarikaKonturova Thank you so much!
So, this library is no longer mantained?

dunno about this library, but it seems transloco gains popularity for angular v18. still, with my config ngx-translate works too

dunno about this library, but it seems transloco gains popularity for angular v18. still, with my config ngx-translate works too

Will try it; thank you so much. Checked it out transloco and didn't like the way they handle translations. This lib look easier and it's great.

The last commit of this repo was in May 2023... My suggestion is to take a look at transloco.

is not working in angular 18.1 :'(

We have updated our company application to Angular v18 and, unfortunately, cannot get ngx-translate working.
The problem is that HttpClientModule has been deprecated. We already have the module configured as standalone and in version 17 we used something like this:
function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
export const provideTranslation = () => ({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient],
},
});
export const appConfig: ApplicationConfig = {
providers: [
provideZoneChangeDetection({ eventCoalescing: true }),
provideHttpClient(),
importProvidersFrom([TranslateModule.forRoot(provideTranslation())]),
provideRouter(routes),
provideClientHydration(),
],
};
This is a show-stopper for us, so hopefully, this can be fixed soon.
Thanks in advance for your help.

is not working in angular 18.1 :'(

For us it's actually working in angular 18.1 in a library that is exporting the translations. This lib is still using the old module syntax:
export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}

@NgModule({
  declarations: [],
  exports: [
    TranslateModule,
    ...
  ], imports: [TranslateModule.forRoot({
    loader: {
      provide: TranslateLoader,
      useFactory: createTranslateLoader,
      deps: [HttpClient]
    }
  }),
  ...,
  providers: [
    TranslateService,
    ...
  ]
})
export class MyLibModule {
}

fro any one having same issue like me in angular 18.1
https://angular.dev/reference/migrations/standalone it help me to do migration to standAlone and that create a correct code of provider :
export const appConfig: ApplicationConfig = {
  providers: [
    importProvidersFrom( TranslateModule.forRoot(),...),
    ...
  ]
};

`X [ERROR] TS2729: Property 'translate' is used before its initialization. [plugin angular-compiler]
src/app/pages/syslog-analysis/alertRule/alertRuleDetail/alertRuleDetail.component.ts:23:19:
  23 │         true: this.translate.instant('COMMON.TRUE'),
     ╵                    ~~~~~~~~~

'translate' is declared here.
src/app/pages/syslog-analysis/alertRule/alertRuleDetail/alertRuleDetail.component.ts:35:8:
  35 │         private translate: TranslateService,
     ╵         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

I upgraded from angular15 to 18 and found that the version I am using is reporting this error
"@ngx-translate/core": "^14.0.0",
"@ngx-translate/http-loader": "^8.0.0",
How take this?
thanks

Ive created solution for 18.1, you can check here
https://github.com/ngx-translate/core/issues/1485

Thanks for providing this code.
I've updated our tutorial.
https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-angular-app-with-ngx-translate
I'll also update the ngx-translate documentation soon.

Hey there! Thanks so much for your help! I do have a quick question—wouldn't it be nice if we didn't have to import the TranslateModule every time? I was wondering if there are any other ways to make it global with the new Angular standalone versions. Appreciate any insights!

You can switch to my ngx-translate fork. Version 16 fully supports stand alone modules and does not require importing the module anymore. => https://ngx-translate.org/getting-started/installation/


[SDP-867] Change status code for when reCAPTCHA token cannot be validated

What
Change error code from 500 to 401 as suggested by Marcelo https://stellarorg.sentry.io/issues/4442947505/activity/?alert_rule_id=14391750&alert_type=issue&project=4505189092556800&referrer=slack
Why
The specific error in the above sentry log was triggered when the frontend that does not have reCAPTCHA enabled attempts to access the login, but we want to return a more suitable status code for the response
Known limitations
[TODO or N/A]
Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR does not mix refactoring changes with feature changes (split into two PRs otherwise).
[ ] This PR's title starts with the name of the package, area, or subject affected by the change.

Thoroughness

[ ] This PR adds tests for the new functionality or fixes.
[ ] This PR contains the link to the Jira ticket it addresses.

Configs and Secrets

[ ] No new CONFIG variables are required -OR- the new required ones were added to the helmchart's values.yaml file.
[ ] No new CONFIG variables are required -OR- the new required ones were added to the deployments (pr-preview, dev, demo, prd).
[ ] No new SECRETS variables are required -OR- the new required ones were mentioned in the helmchart's values.yaml file.
[ ] No new SECRETS variables are required -OR- the new required ones were added to the deployments (pr-preview secrets, dev secrets, demo secrets, prd secrets).

Release

[ ] This is not a breaking change.
[ ] This is ready for production.. If your PR is not ready for production, please consider opening additional complementary PRs using this one as the base. Only merge this into develop or main after it's ready for production!

Deployment

[ ] Does the deployment work after merging?

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr36.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr36.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr36.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr36.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr36.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr36.previews.kube001.services.stellar-ops.com


[now dev] Use a consistent "pod id" for x-now-id

This matches the behavior in production.

Codecov Report

:exclamation: No coverage uploaded for pull request base (canary@80a82ba). Click here to learn what that means.
The diff coverage is 0%.

@@           Coverage Diff            @@
##             canary   #2679   +/-   ##
========================================
  Coverage          ?    8.1%
========================================
  Files             ?     259
  Lines             ?   10446
  Branches          ?    1328
========================================
  Hits              ?     847
  Misses            ?    9541
  Partials          ?      58

Impacted Files
Coverage Δ

src/util/dev/server.ts
11.8% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 80a82ba...d9fa656. Read the comment docs.


feat: support multiple stmts in one run (simple query)

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
Test locally.
Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation
If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.
Types of user-facing changes
Please keep the types that apply to your changes, and remove those that do not apply.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note
Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.
Refer to a related PR or issue link (optional)
Relates #6789

https://github.com/risingwavelabs/risingwave/issues/6801#issuecomment-1357217483

@BowenXiao1999 Can we continue? It seems a necessary feature for some 3rd-party libs.

@BowenXiao1999 Can we continue? It seems a necessary feature for some 3rd-party libs.

Sure, previously I'm just a little afraid some other potential bugs that may brought by this pr.


Text describing bug severity levels

@mattgreene
Text describing bug severity levels
Fixes #
WIP #
...
What's this change do?
Where should the reviewer start?
Any background context?

This same changes needs to show up agent and heat repos.


The subgraph URL looks no longer available

Version Information
$ python -m curvesim --version
curvesim 0.5.0, CPython 3.11.2 on Darwin
What's your issue about?
Please include information like:
Full output
---------------------------------------------------------------------------
ClientResponseError                       Traceback (most recent call last)
File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/http.py:47](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/http.py#line=46), in HTTP.post(url, json)
     46 async with aiohttp.request("POST", **kwargs) as resp:
---> 47     resp.raise_for_status()
     48     json_data = await resp.json()

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/aiohttp/client_reqrep.py:1093](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/aiohttp/client_reqrep.py#line=1092), in ClientResponse.raise_for_status(self)
   1092 self.release()
-> 1093 raise ClientResponseError(
   1094     self.request_info,
   1095     self.history,
   1096     status=self.status,
   1097     message=self.reason,
   1098     headers=self.headers,
   1099 )

ClientResponseError: 410, message='Gone', url='https://api.thegraph.com/subgraphs/name/convex-community/volume-matic'

During handling of the above exception, another exception occurred:

HttpClientError                           Traceback (most recent call last)
File ~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py:114, in AsyncRetrying.__call__(self, fn, *args, **kwargs)
    113 try:
--> 114     result = await fn(*args, **kwargs)
    115 except BaseException:  # noqa: B902

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/http.py:54](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/http.py#line=53), in HTTP.post(url, json)
     53     # pylint: disable-next=raise-missing-from
---> 54     raise HttpClientError(status, message, url)
     56 return json_data

HttpClientError: (410, 'Gone')

The above exception was the direct cause of the following exception:

RetryError                                Traceback (most recent call last)
Cell In[6], line 1
----> 1 curvesim.pool.get("0x8f043ddc578da04c26763a572cefe50263e710cc", "matic")

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool/__init__.py:183](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool/__init__.py#line=182), in get_pool(pool_metadata, chain, normalize, end_ts, env)
    180     raise CurvesimValueError("`end_ts` has no effect unless pool address is used.")
    182 if isinstance(pool_metadata, str):
--> 183     pool_metadata = get_metadata(pool_metadata, chain=chain, env=env, end_ts=end_ts)
    184 elif isinstance(pool_metadata, dict):
    185     pool_metadata = PoolMetaData(pool_metadata)

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool_data/queries/metadata.py:91](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool_data/queries/metadata.py#line=90), in get_metadata(address, chain, env, end_ts)
     88 chain = Chain(chain)
     89 env = Env(env)
---> 91 metadata_dict = from_address(address, chain, env=env, end_ts=end_ts)
     92 metadata = PoolMetaData(metadata_dict)
     94 return metadata

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool_data/queries/metadata.py:32](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/pool_data/queries/metadata.py#line=31), in from_address(address, chain, env, end_ts)
     14 """
     15 Returns
     16
   (...)
     29 :func:`curvesim.network.subgraph.pool_snapshot`.
     30 """
     31 loop = get_event_loop()
---> 32 data = pool_snapshot_sync(address, chain, env=env, end_ts=end_ts, event_loop=loop)
     34 # Get underlying token addresses
     35 if data["pool_type"] == "LENDING":

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/utils.py:51](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/utils.py#line=50), in sync.<locals>.inner(event_loop, *args, **kwargs)
     49         _setup_extra_event_loop()
     50     future = asyncio.run_coroutine_threadsafe(coro, _loop)
---> 51     res = future.result()
     53 else:
     54     res = loop.run_until_complete(coro)

File [~/.pyenv/versions/3.11.2/lib/python3.11/concurrent/futures/_base.py:456](http://localhost:8888/lab/tree/~/.pyenv/versions/3.11.2/lib/python3.11/concurrent/futures/_base.py#line=455), in Future.result(self, timeout)
    454     raise CancelledError()
    455 elif self._state == FINISHED:
--> 456     return self.__get_result()
    457 else:
    458     raise TimeoutError()

File [~/.pyenv/versions/3.11.2/lib/python3.11/concurrent/futures/_base.py:401](http://localhost:8888/lab/tree/~/.pyenv/versions/3.11.2/lib/python3.11/concurrent/futures/_base.py#line=400), in Future.__get_result(self)
    399 if self._exception:
    400     try:
--> 401         raise self._exception
    402     finally:
    403         # Break a reference cycle with the exception in self._exception
    404         self = None

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py:254](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py#line=253), in pool_snapshot(address, chain, env, end_ts)
    236 async def pool_snapshot(address, chain, env="prod", end_ts=None):
    237     """
    238     Async function to pull pool state and metadata from daily snapshots.
    239
   (...)
    252
    253     """
--> 254     r = await _pool_snapshot(address, chain, env, end_ts)
    255     logger.debug("Pool snapshot: %s", r)
    257     # Flatten

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py:224](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py#line=223), in _pool_snapshot(address, chain, env, end_ts)
    168 # pylint: disable=consider-using-f-string
    169 q = """
    170     {
    171       dailyPoolSnapshots(
   (...)
    221     end_ts,
    222 )
--> 224 r = await convex(chain, q, env)
    225 try:
    226     r = r["dailyPoolSnapshots"][0]

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py:92](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py#line=91), in convex(chain, q, env)
     68 """
     69 Async function to query convex community subgraphs
     70
   (...)
     89
     90 """
     91 url = _get_subgraph_url(chain, env)
---> 92 r = await query(url, q)
     93 if "data" not in r:
     94     raise SubgraphResultError(
     95         f"No data returned from Convex: chain: {chain}, query: {q}"
     96     )

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py:40](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/curvesim/network/subgraph.py#line=39), in query(url, q)
     23 async def query(url, q):
     24     """
     25     Core async function to query subgraphs.
     26
   (...)
     38
     39     """
---> 40     r = await HTTP.post(url, json={"query": q})
     41     return r

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py:189](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py#line=188), in AsyncRetrying.wraps.<locals>.async_wrapped(*args, **kwargs)
    187 copy = self.copy()
    188 async_wrapped.statistics = copy.statistics  # type: ignore[attr-defined]
--> 189 return await copy(fn, *args, **kwargs)

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py:111](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py#line=110), in AsyncRetrying.__call__(self, fn, *args, **kwargs)
    109 retry_state = RetryCallState(retry_object=self, fn=fn, args=args, kwargs=kwargs)
    110 while True:
--> 111     do = await self.iter(retry_state=retry_state)
    112     if isinstance(do, DoAttempt):
    113         try:

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py:153](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/asyncio/__init__.py#line=152), in AsyncRetrying.iter(self, retry_state)
    151 result = None
    152 for action in self.iter_state.actions:
--> 153     result = await action(retry_state)
    154 return result

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/_utils.py:99](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/_utils.py#line=98), in wrap_to_async_func.<locals>.inner(*args, **kwargs)
     98 async def inner(*args: typing.Any, **kwargs: typing.Any) -> typing.Any:
---> 99     return call(*args, **kwargs)

File [~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/__init__.py:419](http://localhost:8888/lab/tree/~/Library/Caches/pypoetry/virtualenvs/curvesimdemo-T_UBs_fm-py3.11/lib/python3.11/site-packages/tenacity/__init__.py#line=418), in BaseRetrying._post_stop_check_actions.<locals>.exc_check(rs)
    417 if self.reraise:
    418     raise retry_exc.reraise()
--> 419 raise retry_exc from fut.exception()

RetryError: RetryError[<Future at 0x12871b3d0 state=finished raised HttpClientError>]

Command I run
import curvesim
curvesim.pool.get("0x8f043ddc578da04c26763a572cefe50263e710cc", "matic")

More info
Once identified that the link to the subgraph is broken, I also tried with the equivalent for mainnet, as I thought it would have been more likely to be up to date, but I've got the same error:
This endpoint has been removed. If you are the owner of this subgraph you can upgrade it by going here: https://thegraph.com/hosted-service. If you have any questions, reach out to<EMAIL_ADDRESS>Learn more about why this happening here: https://thegraph.com/docs/en/sunrise/#upgrading-subgraphs-to-the-graph-network

How can it be fixed?
I believe it should be used a corrected URL to the relevant subgraph.

Sorry for the inconvenience. The subgraph has been deprecated, and we will soon fix the issue by switching to Curve's curve-prices backend API: https://prices.curve.fi/feeds-docs

Fair enough, thanks for the explanation 🙏

Is there a workaround in the meantime?

https://github.com/curveresearch/curvesim/blob/sim-redesign/curvesim/network/curve_prices.py
That's the updated curve prices API code (dev branch). Call pool_snapshot_sync() like a regular function with the parameters of pool_snapshot(). This should give you a dict containing the pool's metadata, including a balances snapshot, in curvesim's made-up format (the same format that curvesim returned for subgraph pulls). Various curvesim functions will accept that dict format as pool metadata

@allt0ld are you able to provide more details on how to use the sim-redesign branch while the curvesim package waits to switch to the new curve-prices backend API?
I tried checking out the sim-redesign branch from the repo and installing the local curvesim package using
python3 -m pip install .

It successfully installs, but it's not picking up the pool_snapshot_sync function.
python
import curvesim
curvesim.pool_snapshot_sync("0x8f043ddc578da04c26763a572cefe50263e710cc")

fails with AttributeError: module 'curvesim' has no attribute 'pool_snapshot_sync'
Any help would be greatly appreciated
Thanks

@naddison36 Can you try
import curvesim
curvesim.network.curve_prices.pool_snapshot_sync("0x8f043ddc578da04c26763a572cefe50263e710cc")

curvesim.network.curve_prices.pool_snapshot_sync is the sim-redesign branch's import path for the pool_snapshot_sync function inside the curvesim.network.curve_prices module (equivalent to the curvesim/network/curve_prices.py file).
Alternatively,
from curvesim.network.curve_prices import pool_snapshot_sync
...

i've gone with using a fork https://github.com/FrancescoMangia/curvesim


htcondor example doesn't seem to work for me

When I ssh to the condor-submit node, the condor tools are not in my path.
I followed the README in
https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/examples/v2/htcondor
I launched a centos-7 VM and edited condor-cluster.yaml to reflect

centos7
the time zone I'm in and that the VM is in  (us-east1-b)
uncommented the version of condor in the README

But when I ssh using
gcloud compute ssh condor-submit
there are no condor tools available and I'm dead in the water. Thoughts?
Matt

FWIW, I tried the same thing with a debian 9 instance and got the same behavior.