Vim9: provide a mechanism to create aliases to builtin functions

Is your feature request about something that is currently impossible or hard to do? Please describe the problem.
It is difficult to get used to some builtin function names, because of their inconsistency.
For example, many function related to Vim windows start with the prefix win or win_; type :h win*( on the command-line then press <C-D>, and you'll get this list:
winnr()           winwidth()        winlayout()       winrestcmd()      gettabwinvar()    getcmdwintype()
wincol()          win_getid()       win_gotoid()      win_execute()     settabwinvar()    windowsversion()
winline()         getwinpos()       win_id2win()      win_findbuf()     tabpagewinnr()
bufwinid()        getwinvar()       getwininfo()      win_gettype()     win_id2tabwin()
bufwinnr()        setwinvar()       getwinposx()      winrestview()     win_screenpos()
winbufnr()        winheight()       getwinposy()      winsaveview()     win_splitmove()

Notice that some of them don't start with win:

getcmdwintype()
gettabwinvar()
getwininfo()
getwinpos()
getwinposx()
getwinposy()
getwinvar()
setwinvar()

I left out bufwinid() and bufwinnr() because those make sense.
I also left out tabpagewinnr() and settabwinvar() because I'm not sure whether it would make sense to rename them; and if it is, I'm not sure how to rename them.  For the same reasons, I left out function names which start with win without an underscore afterward.
Anyway, it might be useful to rename the previous list of functions like this:

win_getcmdtype()
win_gettabvar()
win_getinfo()
win_getpos()
win_getposx()
win_getposy()
win_getvar()
win_setvar()

Describe the solution you'd like
A new Ex command – as a temporary suggestion :defalias – which would work in a similar way as in emacs.
We could use it like this:
:defalias win_getinfo getwininfo

From now on, whenever we write win_getinfo(), Vim knows that it should – in fact – call getwininfo().
Describe alternatives you've considered
Write a wrapper function around getwininfo(), name it Win_getinfo(), make it exportable in a script, and import it whenever I need to call getwininfo().
This presents a few drawbacks though.  First, I would need to import the function in every script where I need to call it; it doesn't seem to scale well when a script needs to invoke dozens of builtin functions whose names are inconsistent; and it would create a lot of noise.  I mean look at this:
import {Win_getcmdtype, Win_gettabvar, Win_getinfo, Win_getpos, Win_getposx, Win_getposy, Win_getvar, Win_setvar}

Or this:
import Win_getcmdtype
import Win_gettabvar
import Win_getinfo
import Win_getpos
import Win_getposx
import Win_getposy
import Win_getvar
import Win_setvar

And this is for only 8 functions.  Imagine the same imports for several dozens of functions with inconsistent names.
Second, the wrapper functions need to be capitalized, which is not exactly the desired result.  It would be nice if the "fix" was transparent.  That is, the new function names should look exactly like builtin function names.
Although, that might be fixed by this todo item:
https://github.com/vim/vim/blob/16a6f91ccb42ebde639a4185322b07719d345e86/runtime/doc/todo.txt#L78-L80
Third, I'm not sure it would always work as expected.  What if the function needs to refer to a script-local or function-local variable?  Since – in the end – the builtin function runs in a different context/script, it might not be able to always work properly, unless we pass the problematic variable as an argument, which changes the syntax of the alias function, and makes the "fix" less transparent.
Additional context
The fact that the most important property has not always been put first in a function name is a known issue, which causes some related functions to be scattered.  See this comment for example:

In the past we have not put the most important property first, which
causes related methods to be scattered.  So getmatches() sorts far
away from other match functions.  matchesget() might have been better,
although it doesn't sounds so good.

Maybe aliases could address this issue.

One could argue that it would create an inconsistent ecosystem: everyone would rename builtin functions however they want, and reading code would be more difficult.
Still, I thought it was worth suggesting the idea.  Maybe the community would come up with some sensible aliases, which would then be merged in the Vim repository as an optional package.  Something similar to vim-sensible which tries to provide good default option settings.
I guess it would make the code slower, because every time a function name is not found, Vim would need to look up whether it's an alias.  But that should not be too much of an issue in Vim9 script, right?  I mean, in Vim9 script the code is compiled, so the cost of looking up whether an unknown function name is an error or an alias would only be paid once, at compile time.

If it is implemented, it would be nice for the documentation to keep working.  That is, pressing K on win_getinfo() in a Vim9 script should still bring up the help topic :h getwininfo(), and not raise an error.

I also wanted to suggest something for the arguments of a function which – over time – can make the syntax of a function look weird and too difficult to remember (e.g. setqflist()), but:

it would make the current report too confusing
I'm not sure the current enhancement is technically possible
I'm not sure the current enhancement receives enough interest

If aliases is a too powerful mechanism which could have a too broad impact, maybe we could at least consider the possibility of providing builtin aliases to some functions.
For example, buffer_exists() is still valid but it's documented as obsolete.  The help says we should prefer bufexists().  Maybe we could do the same for functions like getwininfo(), and recommend using win_getinfo().
Before:
getwininfo([{winid}])					*getwininfo()*
...

After:
win_getinfo([{winid}])					*win_getinfo()*
...
Obsolete name: getwininfo().		*getwininfo()*

If aliases is a too powerful mechanism which could have a too broad impact, maybe we could at least consider the possibility of providing builtin aliases to some functions.
For example, buffer_exists() is still valid but it's documented as obsolete.  The help says we should prefer bufexists().  Maybe we could do the same for functions like getwininfo(), and recommend using win_getinfo().
Before:
getwininfo([{winid}])					*getwininfo()*
...

After:
win_getinfo([{winid}])					*win_getinfo()*
...
Obsolete name: getwininfo().		*getwininfo()*

Yes, I'm closing because it looks like aliases would create more issues than they solve.  Instead, I'll review all the function names, try to come up with more consistent names whenever possible, and open a new issue asking whether these new names could be provided as builtin replacements to the old ones.

Yes, I'm closing because it looks like aliases would create more issues than they solve.  Instead, I'll review all the function names, try to come up with more consistent names whenever possible, and open a new issue asking whether these new names could be provided as builtin replacements to the old ones.

There is still the issue of the arguments of some functions like setqflist().  The syntax of the latter has grown too complex.  It would be easier to use if we could provide them as a single dictionary.  But I don't know whether a new mechanism could solve that.

There is still the issue of the arguments of some functions like setqflist().  The syntax of the latter has grown too complex.  It would be easier to use if we could provide them as a single dictionary.  But I don't know whether a new mechanism could solve that.

Hi,
On Mon, Jan 11, 2021 at 5:52 AM lacygoill<EMAIL_ADDRESS>wrote:

Is your feature request about something that is currently impossible or
hard to do? Please describe the problem.
It is difficult to get used to some builtin function names, because of
their inconsistency.
For example, many function related to Vim windows start with the prefix
win or win_; type :h win*( on the command-line then press , and
you'll get this list:
winnr()           winwidth()        winlayout()       winrestcmd()      gettabwinvar()    getcmdwintype()
wincol()          win_getid()       win_gotoid()      win_execute()     settabwinvar()    windowsversion()
winline()         getwinpos()       win_id2win()      win_findbuf()     tabpagewinnr()
bufwinid()        getwinvar()       getwininfo()      win_gettype()     win_id2tabwin()
bufwinnr()        setwinvar()       getwinposx()      winrestview()     win_screenpos()
winbufnr()        winheight()       getwinposy()      winsaveview()     win_splitmove()
Notice that some of them don't start with win:

getcmdwintype()
gettabwinvar()
getwininfo()
getwinpos()
getwinposx()
getwinposy()
getwinvar()
setwinvar()

I left out bufwinid() and bufwinnr() because those make sense.
I also left out tabpagewinnr() and settabwinvar() because I'm not sure
whether it would make sense to rename them; and if it is, I'm not sure how
to rename them. For the same reasons, I left out function names which start
with win without an underscore afterward.
Anyway, it might be useful to rename the previous list of functions like
this:

I agree that we should have consistent naming for the builtin functions.

win_getcmdtype()

The getcmdwintype() function returns the type of the command window
(cmdwin).
So I am not sure whether splitting win and cmd in this case makes it more
readable.

win_gettabvar()

The gettabwinvar() function returns the window local variable given the
window number and the tabpage number. The new name win_gettabvar()
implies this returns the tabpage local variable (??).

Regards,
Yegappan

win_getinfo()
win_getpos()
win_getposx()
win_getposy()
win_getvar()
win_setvar()

Describe the solution you'd like
A new Ex command – as a temporary suggestion :defalias – which would work
in a similar way as in emacs
https://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Functions.html
.
We could use it like this:
:defalias getwininfo win_getinfo
From now on, whenever we write win_getinfo(), Vim knows that it should –
in fact – call getwininfo().
Describe alternatives you've considered
Write a wrapper function around getwininfo(), name it Win_getinfo(), make
it exportable in a script, and import it whenever I need to call
getwininfo().
This presents a few drawbacks though. First, I would need to import the
function in every script where I need to call it; it doesn't seem to scale
well when a script needs to invoke dozens of builtin functions whose names
are inconsistent; and it would create a lot of noise. I mean look at this:
import {Win_getcmdtype, Win_gettabvar, Win_getinfo, Win_getpos, Win_getposx, Win_getposy, Win_getvar, Win_setvar}
Or this:
import Win_getcmdtype
import Win_gettabvar
import Win_getinfo
import Win_getpos
import Win_getposx
import Win_getposy
import Win_getvar
import Win_setvar
And this is for only 8 functions. Imagine the same imports for several
dozens of functions with inconsistent names.
Second, the wrapper functions need to be capitalized, which is not exactly
the desired result. It would be nice if the "fix" was transparent. That is,
the new function names should look exactly like builtin function names.
Although, that might be fixed by this todo item:
https://github.com/vim/vim/blob/16a6f91ccb42ebde639a4185322b07719d345e86/runtime/doc/todo.txt#L78-L80
Third, I'm not sure it would always work as expected. What if the function
needs to refer to a script-local or function-local variable? Since – in the
end – the builtin function runs in a different context/script, it might not
be able to always work properly, unless we pass the problematic variable as
an argument, which changes the syntax of the alias function, and makes the
"fix" less transparent.
Additional context
The fact that the most important property has not always been put first in
a function name is a known issue, which causes some related functions to be
scattered. See this comment
https://github.com/vim/vim/pull/6932#issuecomment-691212905 for example:
In the past we have not put the most important property first, which
causes related methods to be scattered. So getmatches() sorts far
away from other match functions. matchesget() might have been better,
although it doesn't sounds so good.
Maybe aliases could address this issue.
One could argue that it would create an inconsistent ecosystem: everyone
would rename their functions however they want, and reading code would be
more difficult.
Still, I thought it was worth suggesting the idea. Maybe the community
would come up with some sensible aliases, which would then be merged in the
Vim repository as an optional package. Something similar to vim-sensible
https://github.com/tpope/vim-sensible which tries to provide good
default option settings.
I guess it would make the code slower, because every time a function name
is not found, Vim would need to look up whether it's an alias. But that
should not be too much of an issue in Vim9 script, right? I mean, in Vim9
script the code is compiled, so the cost of looking up whether an unknown
function name is an error or an alias would only be paid once, at compile
time.
If it is implemented, it would be nice for the documentation to keep
working. That is, pressing K on win_getinfo() in a Vim9 script should
still bring up the help topic :h getwininfo(), and not raise an error.
I also wanted to suggest something for the arguments of a function which –
over time – can make the syntax of a function look weird and too difficult
to remember (e.g. setqflist()), but:

it would make the current report too confusing
I'm not sure the current enhancement is technically possible
I'm not sure the current enhancement receives enough interest

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vim/vim/issues/7658, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACY5DGFTPS5TWU6QAGUQUOTSZL7A3ANCNFSM4V5S5IFA
.
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to<EMAIL_ADDRESS>To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/7658%40github.com
https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/7658%40github.com?utm_medium=email&utm_source=footer
.

Hi,
On Mon, Jan 11, 2021 at 5:52 AM lacygoill<EMAIL_ADDRESS>wrote:

Is your feature request about something that is currently impossible or
hard to do? Please describe the problem.
It is difficult to get used to some builtin function names, because of
their inconsistency.
For example, many function related to Vim windows start with the prefix
win or win_; type :h win*( on the command-line then press , and
you'll get this list:
winnr()           winwidth()        winlayout()       winrestcmd()      gettabwinvar()    getcmdwintype()
wincol()          win_getid()       win_gotoid()      win_execute()     settabwinvar()    windowsversion()
winline()         getwinpos()       win_id2win()      win_findbuf()     tabpagewinnr()
bufwinid()        getwinvar()       getwininfo()      win_gettype()     win_id2tabwin()
bufwinnr()        setwinvar()       getwinposx()      winrestview()     win_screenpos()
winbufnr()        winheight()       getwinposy()      winsaveview()     win_splitmove()
Notice that some of them don't start with win:

getcmdwintype()
gettabwinvar()
getwininfo()
getwinpos()
getwinposx()
getwinposy()
getwinvar()
setwinvar()

I left out bufwinid() and bufwinnr() because those make sense.
I also left out tabpagewinnr() and settabwinvar() because I'm not sure
whether it would make sense to rename them; and if it is, I'm not sure how
to rename them. For the same reasons, I left out function names which start
with win without an underscore afterward.
Anyway, it might be useful to rename the previous list of functions like
this:

I agree that we should have consistent naming for the builtin functions.

win_getcmdtype()

The getcmdwintype() function returns the type of the command window
(cmdwin).
So I am not sure whether splitting win and cmd in this case makes it more
readable.

win_gettabvar()

The gettabwinvar() function returns the window local variable given the
window number and the tabpage number. The new name win_gettabvar()
implies this returns the tabpage local variable (??).

Regards,
Yegappan

win_getinfo()
win_getpos()
win_getposx()
win_getposy()
win_getvar()
win_setvar()

Describe the solution you'd like
A new Ex command – as a temporary suggestion :defalias – which would work
in a similar way as in emacs
https://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Functions.html
.
We could use it like this:
:defalias getwininfo win_getinfo
From now on, whenever we write win_getinfo(), Vim knows that it should –
in fact – call getwininfo().
Describe alternatives you've considered
Write a wrapper function around getwininfo(), name it Win_getinfo(), make
it exportable in a script, and import it whenever I need to call
getwininfo().
This presents a few drawbacks though. First, I would need to import the
function in every script where I need to call it; it doesn't seem to scale
well when a script needs to invoke dozens of builtin functions whose names
are inconsistent; and it would create a lot of noise. I mean look at this:
import {Win_getcmdtype, Win_gettabvar, Win_getinfo, Win_getpos, Win_getposx, Win_getposy, Win_getvar, Win_setvar}
Or this:
import Win_getcmdtype
import Win_gettabvar
import Win_getinfo
import Win_getpos
import Win_getposx
import Win_getposy
import Win_getvar
import Win_setvar
And this is for only 8 functions. Imagine the same imports for several
dozens of functions with inconsistent names.
Second, the wrapper functions need to be capitalized, which is not exactly
the desired result. It would be nice if the "fix" was transparent. That is,
the new function names should look exactly like builtin function names.
Although, that might be fixed by this todo item:
https://github.com/vim/vim/blob/16a6f91ccb42ebde639a4185322b07719d345e86/runtime/doc/todo.txt#L78-L80
Third, I'm not sure it would always work as expected. What if the function
needs to refer to a script-local or function-local variable? Since – in the
end – the builtin function runs in a different context/script, it might not
be able to always work properly, unless we pass the problematic variable as
an argument, which changes the syntax of the alias function, and makes the
"fix" less transparent.
Additional context
The fact that the most important property has not always been put first in
a function name is a known issue, which causes some related functions to be
scattered. See this comment
https://github.com/vim/vim/pull/6932#issuecomment-691212905 for example:
In the past we have not put the most important property first, which
causes related methods to be scattered. So getmatches() sorts far
away from other match functions. matchesget() might have been better,
although it doesn't sounds so good.
Maybe aliases could address this issue.
One could argue that it would create an inconsistent ecosystem: everyone
would rename their functions however they want, and reading code would be
more difficult.
Still, I thought it was worth suggesting the idea. Maybe the community
would come up with some sensible aliases, which would then be merged in the
Vim repository as an optional package. Something similar to vim-sensible
https://github.com/tpope/vim-sensible which tries to provide good
default option settings.
I guess it would make the code slower, because every time a function name
is not found, Vim would need to look up whether it's an alias. But that
should not be too much of an issue in Vim9 script, right? I mean, in Vim9
script the code is compiled, so the cost of looking up whether an unknown
function name is an error or an alias would only be paid once, at compile
time.
If it is implemented, it would be nice for the documentation to keep
working. That is, pressing K on win_getinfo() in a Vim9 script should
still bring up the help topic :h getwininfo(), and not raise an error.
I also wanted to suggest something for the arguments of a function which –
over time – can make the syntax of a function look weird and too difficult
to remember (e.g. setqflist()), but:

it would make the current report too confusing
I'm not sure the current enhancement is technically possible
I'm not sure the current enhancement receives enough interest

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vim/vim/issues/7658, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACY5DGFTPS5TWU6QAGUQUOTSZL7A3ANCNFSM4V5S5IFA
.
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to<EMAIL_ADDRESS>To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/7658%40github.com
https://groups.google.com/d/msgid/vim_dev/vim/vim/issues/7658%40github.com?utm_medium=email&utm_source=footer
.

Hi,
On Mon, Jan 11, 2021 at 6:57 AM lacygoill<EMAIL_ADDRESS>wrote:

There is still the issue of the arguments of some functions like
setqflist(). The syntax of the latter has grown too complex. It would be
easier to use if we could provide them as a single dictionary. But I don't
know whether a new mechanism could solve that.
We did discuss about adding a new setqfprop() function last year:

https://github.com/vim/vim/pull/5741
I did create a patch for this several years ago which I haven't sent out
yet.
I will try to create a new PR for this.
Regards,
Yegappan

Hi,
On Mon, Jan 11, 2021 at 6:57 AM lacygoill<EMAIL_ADDRESS>wrote:

There is still the issue of the arguments of some functions like
setqflist(). The syntax of the latter has grown too complex. It would be
easier to use if we could provide them as a single dictionary. But I don't
know whether a new mechanism could solve that.
We did discuss about adding a new setqfprop() function last year:

https://github.com/vim/vim/pull/5741
I did create a patch for this several years ago which I haven't sent out
yet.
I will try to create a new PR for this.
Regards,
Yegappan

Yes, I'm closing because it looks like aliases would create more
issues than they solve.  Instead, I'll review all the function names,
try to come up with more consistent names whenever possible, and open
a new issue asking whether these new names could be provided as
builtin replacements to the old ones.

Yes, the functions have been added one at a time, which has caused
names, and also arguments, to become unpredictable.
Before we add new names, we have to be sure it's an actual improvement.
Otherwise we just create more names and cause more confusion.  It's a
dangerous thing to bring up for discussion, it can consume a lot of time
and disagreement.
We could see what other language has organised functions nicely.
Unfortunately I only know examples of libraries with the same problem of
Vim, where growth over time has caused confusion.
--
I'm writing a book.  I've got the page numbers done.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Yes, I'm closing because it looks like aliases would create more
issues than they solve.  Instead, I'll review all the function names,
try to come up with more consistent names whenever possible, and open
a new issue asking whether these new names could be provided as
builtin replacements to the old ones.

Yes, the functions have been added one at a time, which has caused
names, and also arguments, to become unpredictable.
Before we add new names, we have to be sure it's an actual improvement.
Otherwise we just create more names and cause more confusion.  It's a
dangerous thing to bring up for discussion, it can consume a lot of time
and disagreement.
We could see what other language has organised functions nicely.
Unfortunately I only know examples of libraries with the same problem of
Vim, where growth over time has caused confusion.
--
I'm writing a book.  I've got the page numbers done.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Trying to get property 'urlCacheSessionKey' of non-object

I am getting this error I have configured comment widget in this way.
<?=  Comments::widget();
    ?>

Everything worked the widget is showing the comment section to logged in users also user is able to post comment the comments are getting stored in Db as well but after posting the comment this error is showing to the user.

can you provide more info?

can you provide more info? on my side, with Yii 2 Advanced Project Template seems to work as expected.

I have updated the issue description

To be able to reproduce I would like to know which yii2 template you're using? (basic/advanced), php / mysql version? Otherwise I can't help You.

I am using yii2 advanced template 2.0.16-dev
Mysql: MySQL  Ver 14.14 Distrib 5.5.55
php:PHP Version 7.2.3-1+ubuntu14.04.1+deb.sury.org+1

Well, on my side everything work as expected... try to check if module is connected in main.php config file.

I couldn't retest them can you see the latest comment on this issue https://github.com/ogheo/yii2-comments/issues/7


Install to user folder

Meteor is traditionally installed to a user's folder as ~/.meteor, but the instructions given here call for it to be installed at /usr/local/lib. This leads to permissions problems and other conflicts. Why not emulate the meteor install script and install to the user folder with a script at /usr/local/bin/meteor which looks for ~/.meteor/meteor executable and calls it or instructs the user to install meteor there if it can't be found?

Hi, the problem is that meteor will try to install a general launcher to /usr/local/bin by default. Within this fork I won't be too much away from standard meteor, so I didn't changed that. The problem is, that meteor does not run a multiuser installation like other unix software, which means: Install Apps to /usr/ and user $HOME for private stuff. Meteor will use the INSTALL folder and write also other parts like cache etc. to that folder.
This is why you currently should run meteor as user root when running on ARM like PI.
I created a feature branch for that: https://github.com/4commerce-technologies-AG/meteor/commit/7b246b1294b59986edf52a6d9f6140ae7055bc0e and tried to get this on meteor site as PR https://github.com/meteor/meteor/pull/4330
You may follow the discussion on that to see what already was bespoken.
Cheer
Tom

Hi @lunchboxer
with the new description and work on Meteor universal <IP_ADDRESS> you may do all in your personal home directory. No global resource necessary anymore.
Cheers
Tom


easiest way to move element within list?

having elements with position 0,1,2,3,4,5 and item 5 gets and update to be position 0. there seem to be no automatic reordering, leaving the list with 0,0,1,2,3,4.
what's the most efficient way to do this?

acts as list gem for example.

for reasons, we migrated from AAL to closure_tree. is there any plan to add such a feature?

AAL and closure_tree have different usage.  I use them both in the same model to have list and tree capability.
Can you describe more what you trying to achieve ?


InvalidArgumentException: Invalid resource type: boolean

I am occasionally seeing InvalidArgumentExceptions when sending emails. It appears that Postmark is passing bad values to Guzzle.
"InvalidArgumentException: Invalid resource type: boolean"
Here is my question on SO:
http://stackoverflow.com/questions/33085043/postmark-guzzle-invalidargumentexception-invalid-resource-type-boolean
There is also an issue logged in the Guzzle project:
https://github.com/guzzle/guzzle/issues/628

This turned out to be a character encoding issue on my end (see my SO answer).
Should the Postmark SDK check for such things that would prevent successful interaction with the API? Maybe thrown a character encoding exception?
If that would be helpful to others (it certainly would have saved me a number of hours), I'd be happy to code it up and submit a PR.

@karlwilbur Hi Karl, sorry for the confusion on this. I'd love to see an example of how this was fixed, it might be something we can integrate into the library. I would have also expected Guzzle to handle encoding to UTF-8, which is a requirement of JSON, but it sounds like that didn't happen.

No, Guzzle doesn't make any changes to the input.
If you follow the stack trace in my SO post, you see that the data in the $body param to PostmarkClientBase::processRestRequest just is pretty much just passed along the line. It gets passed in as the $options['json'] param to GuzzleHttp\Client::createRequest (remember, I'm using the v5.3 client here: https://github.com/guzzle/guzzle/blob/5.3/src/Client.php). In there it hands off to GuzzleHttp\Message\MessageFactory::createRequest which in turn hands it off to GuzzleHttp\Message\MessageFactory::applyOptions where is it run through json_endode().
No change at all to my data that gets passed in ...nor is there any validation of my data. Which is fine. I can accept that it is totally up to me to validate my data.
My solution was pretty much just:
$html_body = utf8_encode($html_body);
$text_body = utf8_encode($text_body);

I think that maybe in Postmark\PostmarkClientBase::processRestRequest we could do some validation for the json params. We could change line 92 to be something like this:
$options['json'] = static::validateJsonParams($cleanParams);

Then create a new Postmark\PostmarkClientBase::validateJsonParams which could be something like:
public static function validateJsonParams($params) {
  $json = false;
  try {
    $json = json_encode($params);
    if (!$json) {
      $json_error_code = last_json_error();
      switch ($json_error_code) {
        case: JSON_ERROR_NONE
          $json_error_message = "No error has occurred."
          break;
        case: JSON_ERROR_DEPTH
          $json_error_message = "The maximum stack depth has been exceeded."
          break;
        case: JSON_ERROR_STATE_MISMATCH
          $json_error_message = "Invalid or malformed JSON.";
          break;
        case: JSON_ERROR_CTRL_CHAR
          $json_error_message = "Control character error, possibly incorrectly encoded.";
          break;
        case: JSON_ERROR_SYNTAX
          $json_error_message = "Syntax error.";
          break;
        case: JSON_ERROR_UTF8
          $json_error_message = "Malformed UTF-8 characters, possibly incorrectly encoded.";
          break;
        case: JSON_ERROR_RECURSION
          $json_error_message = "One or more recursive references in the value to be encoded.";
          break;
        case: JSON_ERROR_INF_OR_NAN
          $json_error_message = "One or more NAN or INF values in the value to be encoded.";
          break;
        case: JSON_ERROR_UNSUPPORTED_TYPE
          $json_error_message = "A value of a type that cannot be encoded was given.";
          break;
      }
    }
  } catch (Exception $e) {
    $json_error_code = $e->getCode();
    $json_error_message = $e->getMessage();
  }
  if (!$json) {
    $ex = new PostmarkException();
    $ex->httpStatusCode = 400;
    $ex->message = 'Bad Request: There appears to be something wrong with your data syntax.' .
      'This error was "['.$json_error_code.'] '.$json_error_message.'".';
    throw $ex;
  }
  return $params;
}

Closed due to age of issue.


update and add more references to rio-cogeo

This PR updates the references to rio plugins and add example how to create/validate COG with it

Gah, sorry, saw this go by and forgot to come in and review. Looks good - thanks for merging!

hey no worry I know you have tons on your plate 😄


Simplify Travis build matrix.

Simplify Travis config by using "include" to set the matrix directly.
Also scopes browser installation and xvfb to only those builds that need it.

Wait, so we can express what we want it to do instead of a superset of all things it can do and then excluding what we don't want it to do? Where's the fun in that?!?!
LGTM

:D


Problems connecting to SQL Server 2014

System Information
Connecting OS: Ubuntu 20.04
Server OS: Microsoft Windows Server 2012
SQL Server: Microsoft SQL Server 2014
Problem
Can't connect to my SQL Server after installing mssql-cli through pip. There doesn't seem to be an apt repository for Ubuntu 20.04 so couldn't install via that method like adviced in documentation.
Running mssql-cli -S <IP_ADDRESS> -U <user> -P <user> gives an error of: Error message: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught) .
Running it with --enable-sqltoolsservice-logging gives an output of:
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.SqlTools.Utility.Logger.Close() in D:\a\1\s\src\Microsoft.SqlTools.Hosting\Utility\Logger.cs:line 79
   at Microsoft.SqlTools.ServiceLayer.Program.Main(String[] args) in D:\a\1\s\src\Microsoft.SqlTools.ServiceLayer\Program.cs:line 27
Traceback (most recent call last):
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/contracts/request.py", line 51, in get_response
    response = self.json_rpc_client.get_response(self.request_id, self.owner_uri)
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/jsonrpcclient.py", line 84, in get_response
    raise self.exception_queue.get()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/jsonrpcclient.py", line 124, in _listen_for_response
    response = self.reader.read_response()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/jsonrpcclient.py", line 272, in read_response
    while (not self.needs_more_data or self.read_next_chunk()):
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/jsonrpcclient.py", line 326, in read_next_chunk
    raise EOFError(u'End of stream reached, no output.')
EOFError: End of stream reached, no output.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/main.py", line 122, in <module>
    main()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/main.py", line 115, in main
    run_cli_with(mssqlcli_options)
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/main.py", line 52, in run_cli_with
    mssqlcli.connect_to_database()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/mssql_cli.py", line 278, in connect_to_database
    owner_uri, error_messages = self.mssqlcliclient_main.connect_to_database()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/mssqlcliclient.py", line 91, in connect_to_database
    owner_uri, error_messages = self._execute_connection_request_with(connection_params)
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/mssqlcliclient.py", line 180, in _execute_connection_request_with
    response = connection_request.get_response()
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/contracts/request.py", line 67, in get_response
    return self.response_error(error)
  File "/home/judasmoses/.local/lib/python3.8/site-packages/mssqlcli/jsonrpc/contracts/connectionservice.py", line 22, in response_error
    u'ownerUri': cls.owner_uri,
AttributeError: type object 'ConnectionRequest' has no attribute 'owner_uri'

I faced this same issue. I beleive this is caused by OpenSSL 3.0 having CipherString = DEFAULT:@SECLEVEL=2 in /etc/ssl/openssl.cnf
What solved it for me is to create an alternate config /etc/ssl/openssl_tls1.cnf:
openssl_conf = default_conf

[ default_conf ]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT:@SECLEVEL=1

And then when I make the connection:
OPENSSL_CONF=/etc/ssl/openssl_tls1.cnf mssql-cli -S <server> -U <user> -P <password> -d <database>

Works on Ubuntu 22.04.1 LTS, OpenSSL 3.0.2 connecting to Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Tip
I found it helpful to first troubleshoot getting sqlcmd to work to rule out other connection problem. I was connecting from WSL2 and there were definitely other issues to overcome with that setup.

https://stackoverflow.com/a/72137153/19946316
Maybe this helps?


Can't unselect text or select specific text neither see the text cursor (caret) when using SearchBar

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a SearchBar inside a SearchAnchor
Click on the search bar
Write something
Try to select some of the text
Close the search view keeping the text
Click on the search bar
Try to unselect the text (click in the text like you want to make the caret go to the end of the text)

If you implement a FocusNode for the SearchBar and make it request focus, the caret will not appear, only after pressing the arrow right key.
After closing the view, the text should not be selected too. Check the video for example.
Also, there is no way to configure the 'enter' keypress in the search view to close the view and submit the search.
Expected results
The UX should be exactly like the search bar of common sites, like https://www.google.com/
Actual results
Bad UX experience, can't select specific parts of the text, can't unselect the text without pressing the right arrow key (on the Web, for example)
Code sample
Code sample
THIS IS THE EXAMPLE CODE
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

/// Flutter code sample for [SearchBar].

void main() => runApp(const SearchBarApp());

class SearchBarApp extends StatefulWidget {
  const SearchBarApp({super.key});

  @override
  State<SearchBarApp> createState() => _SearchBarAppState();
}

class _SearchBarAppState extends State<SearchBarApp> {
  bool isDark = false;

  @override
  Widget build(BuildContext context) {
    final ThemeData themeData = ThemeData(useMaterial3: true, brightness: isDark ? Brightness.dark : Brightness.light);

    return MaterialApp(
      theme: themeData,
      home: Scaffold(
        appBar: AppBar(title: const Text('Search Bar Sample')),
        body: Padding(
          padding: const EdgeInsets.all(8.0),
          child: SearchAnchor(
            builder: (BuildContext context, SearchController controller) {
              return SearchBar(
                controller: controller,
                padding: const MaterialStatePropertyAll<EdgeInsets>(EdgeInsets.symmetric(horizontal: 16.0)),
                onTap: () { controller.openView(); },
                onChanged: (_) { controller.openView(); },
                leading: const Icon(Icons.search),
                trailing: <Widget>[
                  Tooltip(
                    message: 'Change brightness mode',
                    child: IconButton(
                      isSelected: isDark,
                      onPressed: () {
                        setState(() {
                          isDark = !isDark;
                        });
                      },
                      icon: const Icon(Icons.wb_sunny_outlined),
                      selectedIcon: const Icon(Icons.brightness_2_outlined),
                    ),
                  )
                ],
              );
            },
            suggestionsBuilder: (BuildContext context, SearchController controller) {
              return List<ListTile>.generate(5, (int index) {
                final String item = 'item $index';
                return ListTile(
                  title: Text(item),
                  onTap: () {
                    setState(() {
                      controller.closeView(item);
                    });
                  },
                );
              });
            }),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
After clicking the search bar, all text is selected:

Clicking anywhere in the text remains selected, even clicking at the end of the text (like normal text inputs should behave).

Video demonstration:
https://github.com/flutter/flutter/assets/10624972/e9584789-0d73-4e91-a8c9-dbfbe3409369

Logs
No response
Flutter Doctor output
Doctor output

Using BETA channel because of another bug of the SearchBar: https://github.com/flutter/flutter/issues/126623

Not using Linux toolchain

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 3.13.0-0.2.pre, on Ubuntu 22.04.2 LTS 5.19.0-46-generic, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Chrome - develop for the web
[✗] Linux toolchain - develop for Linux desktop
    ✗ ninja is required for Linux development.
      It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from
      https://github.com/ninja-build/ninja/releases
[✓] Android Studio (version 2022.2)
[✓] IntelliJ IDEA Community Edition (version 2023.1)
[✓] VS Code (version 1.81.0)
[✓] VS Code (version 1.81.0-insider)
[✓] Connected device (2 available)
[✓] Network resources

! Doctor found issues in 1 category.

Thanks for your report. Reproduced the issue on the latest Flutter channels. But it only appears on Web platform whilst it works as expected on Android/MacOS platforms.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.10.6, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.10.6 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (5 hours ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.13.0-9.0.pre.43, on macOS 13.4.1 22F770820d darwin-x64, locale en-VN)
    • Flutter version 3.13.0-9.0.pre.43 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0733c96e7d (4 hours ago), 2023-07-24 21:55:24 -0400
    • Engine revision 9a0192d965
    • Dart version 3.1.0 (build 3.1.0-333.0.dev)
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 13.4.1 22F770820d darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Following the UX issues, pressing 'enter' key on Web is not submitting the search.

@huycozy there are few UX issues on android too! You can't move the cursor to write in the middle of text you've already written

Thanks for checking that.
I check this issue again on Android, iOS and notice the a little different in result:

On Android: I see the cursor can move if I enter text into the search bar. But the cursor doesn't move if I select one of the suggestion items in its builder.
On iOS: The cursor can not move even with entered text or selected suggestion item from its builder. If I move cursor with spacebar, it works as expected (please watch demo for details)

Demo video (Android, iOS)

Android
iOS

Updating labels since it also affects other platforms rather than only Web.

if you use searchbar without opening the search view, you will see that is impossible selecting the text.

I can't imagine how that case looks like, can you share a demo with specific steps?

If there is no suggestions to show it would be nice to not having to open the view for a better UX experience. Currently is like impossible because the input text of the searchbar itself is pretty much useless without opening the view.

This looks like a new proposal, please file a new issue for this.

Remove both the following lines:
                onTap: () { controller.openView(); },
                onChanged: (_) { controller.openView(); },

You will be able to use the search bar without opening the search view. This is not a new proposal, it's something that is already possible. The problem is that if you do remove these lines, you will not be able to do things we already spoken (move caret, etc) and the search bar input will have a bad UX experience.
This should work. It's not always that you should open the view (or if it is, the search bar should never let people to not open the view after tap). For exemple if there isn't a suggestion to show, there is no reason to open the view.

CC @Renzo-Olivares, you said you had seen this before.

Closing as a duplicate of #128332

@Renzo-Olivares  I don't think this is a duplicate of #128332
SearchAnchor and SearchView are different widgets.

@lucasoares Hello the underlying issue is in SearchBar widget so this issue is a duplicate.


bugfix Upgrade aws s3 sdk to prevent mem leak

Proposed changes
Issue Number: close #xxx
During the use of the AWS S3 SDK, we found that there is a memory leak. According to the official issue, upgrading the SDK should resolve the issue.

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


[Loc] update to sql bindings xlf

This PR fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 42.253%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
27811

Relevant Lines:
61585

💛  - Coveralls


Using the web editor seems to changes something in null ?

v20.0.1
Lets say i have a record, generated via API, that contains a field that is null.
lets call this field demo_field
Querying and filtering by null fields works as expected.
  let resp = await pb.collection('demo').getFullList({
    filter: 'demo_field=null'
  });

(This will return an array, containing the records with the null field
If i use the web editor, to edit one of the other fields in the same record (not the null field), and click save...
Now the field X is still null, shows up as null in the editor, and if i dont filter, the property is still returned as null.... but not longer filters as null...
  let resp = await pb.collection('demo').getFullList({
    filter: 'demo_field=null'
  });

This same response will return an array, containing the records with the null fields, but not including the manually edited record
Dont think im going crazy, but somethig here is a odd.

What is the type of the demo_field?
Is this in a view collection?
I'll have a more detailed look at it tomorrow, but in the meantime could you provide some minimal reproducible steps?

Oh, I think I know why this may happen with json fields that have null values because the serialized json null value is different than the SQL NULL.
I'll investigate it further tomorrow and will submit a query normalization fix with v0.20.2 release.

This would make sense, it is a JSON field
I remember you recently added the Json validation, so might be something related to that
Sorry I don't have a reproduction at the moment
For now I have solved this by just requesting all records and filtering in js later

Should be fixed with v0.20.3 release.


Transition backlog into tickets

One thought on this: We probably don't want to convert everything at once, because we need to adjust how we are breaking things down as we get into more details.
One approach that might make sense is, after each meeting, to transition over whatever backlog items are set to be "due" by the next meeting. If someone is stuck, they can check the backlog and transition things over themselves.


mysql slave alert

I want to monitor the slave status of the MySQL ,when the state is normal, the value is 1, but not in normal state for null, I want to know the value of null, how can I judge through the script:

The following is my script:
var crit_threshold = 1
var data = stream
|from()
.database('telegraf')
.retentionPolicy('telegraf_01')
.measurement('mysql')
.groupBy('host')
|window()
.period(10s)
.every(10s)
data
|alert()
.id('{{ index .Tags "host"}} | {{ index .Tags "slave_Slave_SQL_Running"}}')
.message('{{ .ID }} is {{ .Level }} value:{{ index .Fields "slave_Slave_SQL_Running" }}')
.crit(lambda: "slave_Slave_SQL_Running" != 1)
.stateChangesOnly()
.log('/tmp/alert.log')
Please help me.
telegraf+kapacitor+infuxDB

We try to reserve GitHub Issues for actionable bug reports or feature requests. Please send general questions to the<EMAIL_ADDRESS>mailing list.


[FEAT] Page Indicator dots (PageTabViewStyle.IndexDisplayMode) at the bottom according page count

Is your feature request related to a problem? Please describe.
I started using SwiftUIPager. I like it a lot. I want to use it, because I want to show a pager where the end of the previous element and the begging of the next element in the pager is visible:

There is only one thing I am missing atm. This is a page indicator about the current page index like SwiftUI has for the TabView element. When I use TabView I am setting tabViewStyle to page and there I can specify the PageTabViewStyle.IndexDisplayMode:
TabView {
    ....
}
.tabViewStyle(.page(indexDisplayMode: .always))

This results in:

Describe the solution you'd like
It would be nice to please have a ViewModifier for the Pager element to enable displaying those index indicator dots at the bottom.
But maybe there is already sth like this provided by this library and I did not find it yet? 😬
Describe alternatives you've considered
I considered to implement an own Indicator dots element similar to this:
HStack(spacing: 10){
    ForEach((0...items.count-1), id: \.self) { index in
            Circle()
                .fill(Color.black.opacity(currentPage.index == index ? 1 : 0.1))
        .frame(width: 8, height: 8)
        .animation(.spring(), value: currentPage.index == index)
    }
}
.frame(width: Const.Screen.width - 40)
.padding(.bottom, 20)

But with this I do not achieve this nice effect of dots getting "fade out" on many elements, which fe. standard on SwiftUI when using indexDisplayMode:

Plus on many elements I end up in weird behaviors, like the ForEach overgrow the HStack container:

When I add .clipping() after the .frame(...) on the HStack the ForEach is in the bounds of HStack, but the 1st element of the ForEach is not visible and so on. So I run in one problem after the other.
And with this I have not this "fading and shrinking" out of the page indicator view like with TabView
Additional context
/

I think a PageControl is out of the scope of the library. I leave this to the user to implement if desired


Repeating Number Bug (RNB)

If you enter a number and then enter a number that is the first number, but repeating, it will give the first number.

Thank you MidnightCyber
Check out MidnightCyber (They fixed this bug)


Incompat with LemurFusion

I hate dictionaries
Log.log

devoted lemurians have 2 inventories btw, the 2nd one is a derivative of the first and is mainly used for various item tracking mechanics.


#6 #18: Used shuffle

Added insta-search
Rewrote rendering mechanism
Small improvements on mobile

woah, this is super cool 😄
https://serban-petrescu.github.io/dotabap.github.io/


[chargerot] initial commit

Simple bootloader code to rotate screen during charging. As this is my first attempt, please check it correctly.
Actions turns ok so its ready to be checked if it's ready for release.
Two things to be aware of:

Is there nicer method to get settings strings for rotation name to keep it in sync with settings app?
Is there necessity to put settings app as requirement as I gather settings for screen rotation in normal mode?

Hi! This looks good! I think I'd be a little concerned that when Bangle.js loads an app the screen orientation is changed automatically by the boot code (if it's rotated - otherwise there isn't anything). So if you set orientation and do Bangle.showClock() then in some cases (where the currently loaded app doesn't support fast load) it'll load the app fresh and change the orientation back.
... So I think just having these lines:
if (Bangle.isCharging()) g.setRotation(chargingRotation&3,chargingRotation>>2).clear();

In the boot code just before Bangle.on('charging' should fix it for you in that case

Is there nicer method to get settings strings for rotation name to keep it in sync with settings app?

No, I think that's fine though - the values are based on what's fed to the firmware, and that won't change now.

Is there necessity to put settings app as requirement as I gather settings for screen rotation in normal mode?

I wouldn't bother - pretty much everything needs settings so if it's removed you have more issues :)

Hi! This looks good! I think I'd be a little concerned that when Bangle.js loads an app the screen orientation is changed automatically by the boot code (if it's rotated - otherwise there isn't anything). So if you set orientation and do Bangle.showClock() then in some cases (where the currently loaded app doesn't support fast load) it'll load the app fresh and change the orientation back.

Ideal solution for this (as I imagined it) should be ability to simple force to redraw screen. Then no need for Bangle.showClock() as we can choose app (simply by open it and dock watch) that we are interested in at the moment (i.e. timers) but I have no luck finding good option for refreshing screen with new settings.
For now I added this line and this should do the trick.


Multipart uploads strips date values in the request body

I am making a POST request using needle to upload a file to our API, I'm also including metadata with that file in the body of the request.
I've noticed that I can upload date objects using needle post requests only when I am not also uploading an object, if I do include an object (multipart upload) then the date values are stripped out of the request.
I believe this is happening because the body is stringified only if the upload reaches the last else statement in the big chain if if else statements in the start function in the needle code. I can get around this issue by just stringifying the date fields myself prior to passing the body to needle, but it would be nice if date fields were handled the same way whether or not you are performing a multipart upload

Hi, can you provide a small snippet so I can reproduce at my end?

const endpoint = https://test-api.test.devenv/`;
const data = {
'title' : 'Test Title',
'createdDate' : new Date(),
file : {
file : 'test/fixtures/local/neil-warnock-warnock.gif',
content_type : 'image/gif'
}
};
const options = {
    headers: {
        'Token': 'xyz'
    },
    responseType: 'json',
    multipart: true
};

const result = await needle( 'post', endpoint, data, options );`

Have anonymised it quite a bit, but that's the gist of how it's working. If I log out the parameters I receive in the API side the createdDate isn't there. If I change it so that I do .toISOString() instead it works fine, so looks like the issue is due to the date type. If I don't provide 'multipart: true' in the options it will also work.


Reconcile PDBs on generation field

What this PR does / why we need it:
Reconcile PodDisruptionBudgets that are generated based on deployments on generation field.
The PDBs that should be effected are:

virt-controller-pdb
virt-api-pdb

The expected generation is set on the KV cr. If the generation of the cached PDB is different than the expected or if the metadata in the cached PDB does not match the expected the resource is updated.
Release note:

NONE

/uncc @vladikr @kbidarkar
/cc @ashleyschuett

Dependent upon #4746.
/hold

Dependent upon #4746.
/hold

Merged.
/hold cancel

/test pull-kubevirt-e2e-k8s-1.19

/test pull-kubevirt-unit-test

Unit tests pass locally
/test pull-kubevirt-unit-test

/test pull-kubevirt-unit-test

looks good! Once last thing, lets add 2 unit tests to to make sure if a PDB is changed it gets updated and if it's not that it doesn't.

Was thinking we should have a test-case For PDB under tests/operator_test.go
Probably should go in here, https://github.com/kubevirt/kubevirt/blob/master/tests/operator_test.go#L889
So that we can run these tests in Downstream.
Background: I have a dropped a mail about it.

looks good! Once last thing, lets add 2 unit tests to to make sure if a PDB is changed it gets updated and if it's not that it doesn't.

Was thinking we should have a test-case For PDB under tests/operator_test.go
Probably should go in here, https://github.com/kubevirt/kubevirt/blob/master/tests/operator_test.go#L889
So that we can run these tests in Downstream.
For more Details: I have a dropped a mail about it.

A functional test for PDB is now added in operator_test.go (in this commit).

/test pull-kubevirt-e2e-k8s-1.18

/retest

/retest

/test pull-kubevirt-check-tests-for-flakes

Test constantly passes locally..
/retest

/retest

/retest

/test pull-kubevirt-check-tests-for-flakes
/approve

/test pull-kubevirt-unit-test

/test pull-kubevirt-unit-test

tests pass locally
/test pull-kubevirt-unit-test

/test pull-kubevirt-check-tests-for-flakes

Rebased.

/test pull-kubevirt-unit-test

/retest

/test pull-kubevirt-e2e-k8s-1.17-rook-ceph

/lgtm

/test pull-kubevirt-e2e-k8s-1.19-sig-storage


Expose Data/Character edits for content packs

Any chance the information generated for LittleNPCs' Data/Characters entries can be made accessible by content packs? Among other things like specifying genders that may not match the child's gender and specifying the child's parents and siblings in the "FriendsAndFamily" field, I've been wanting to add appearances using the new system implemented in 1.6 but can't modify the LittleNPC data to do so.
I was thinking it could be handled in a similar way as what Secret Note Framework does for its customizable secret notes, where CP packs would target an asset that LittleNPCs would read from in order to insert it into Data/Characters (if I'm understanding it right).
I'd make a pull request if I understood it better (and might work on and off of trying to make one as a learning exercise)

Great idea! I didn't think about the possibility of specifying Data/Characters and generating character data for NPC creation at the same time. As I learned recently it is possible but doesn't behave consistently. There's work needed. Seems that generated character data is either wrong or not populated correctly.

Looks like the character data modification can sometimes kick in too late for/fail to operate during certain game processes, so any fields that aren't filled in by the content pack might try to use default values for custom NPCs (e.g.: DisplayName not filling in during festivals, 0 birthdates appearing in an error log snippet from a commenter). Haven't tested enough to get these errors myself (just hearing them from reports regarding Farmer's Children), but I'll try and reproduce/investigate them when I have time

(Granted, I could really use control over the "Gender" category for festivals, since I want to have the kids be invite-able to dance with the player and make them consistently dance on the female side so that I don't have to worry about conditional loads to their spritesheets...)


AppVeyor CI integration

We set up basic AppVeyor CI integration for building and packaging on
Windows.

Yay the build passed :tada:
Does that mean the DLL should now also be properly created for the next release? :smile:

Does that mean the DLL should now also be properly created for the next release?

Well, that depends. There is currently an issue with the different librdkafka versions required for this package and rdkafka. These have to be swapped manually on the PECL build machine due to limitations of the build system. So if librdkafka-1.2.1 would be installed, building of this package would fail. I'll keep an eye on that, and can retrigger a build if necessary.

oh i see, i was under the assumption, that this is per extension not on a global level :smile:
But except that, the build should work? Just because the latest logs you provided seemed to indicate an error
If so, i would go ahead and merge this branch and create a new release later :tada:

Also any way i can help out in fixing this in the build system somewhere?
If so, please let me know, i would be glad to help out if i can

Just because the latest logs you provided seemed to indicate an error

I think that should be fixed with PR #40.

oh i see, i was under the assumption, that this is per extension not on a global level

No, it's rather primitive. There are directories for the different VS versions and architectures. where all dependency libraries have subdirectories, and whenever an extension is built, it just uses what is available there. We could work around by having different names for the libraries, but that might be more confusing than helpful. I think the PECL build system for Windows needs to be replaced by something else (maybe similar to the AppVeyor builds) in the long run, anyway.

Thanks a lot for the insight :bow: and thx again for helping out with the windows build :tada:
I'll do another release later tonight :+1:

Worked like a charm, DLLs were generated successfully, thx again :tada:


Installing Bower pulls in unlicensed code

I have the unfortunate task of confirming licenses on software, so I hate to bring up this rather pedantic issue, however including decompress-zip includes binary which includes buffers which is presently unlicensed in all available versions on npmjs.com.
There is a license file in the repo on github, however there's no published version that has a license file, which results in unlicensed software being pulled in when one installs bower via npm.
I have an open issue with the maintainer of this repo, so hopefully they will just publish a new version, and be done with it - I would appreciate any thumbs-up on the issue so it may come possibly to their attention.  Barring that, if there's anything that can be done on the bower side, perhaps to resolve the dependency chain differently, I would appreciate that as well.
https://github.com/substack/node-buffers/issues/12
Thanks
Matt

We'll wait for substack to release licensed version.


Custom client SSL certificate

Either it's not available in the documentation or not implemented at all, but I'd like to set the certificate I want to use myself.
Ideally that would accept pkcs12, or cert+key PEM file.

You can do a PEM file today. you pass the PEM to the verify argument.
You can also set the REQUESTS_CA_BUNDLE OR CURL_CA_BUNDLE environment variable.

I just checked this, but it seems the verify option is for something a bit different. It allows you to pass your own CA / trust chain and verify the other end against it. What I'm looking for is a way to pass my own key and certificate for the client side. Those parameters are called key_file and cert_file in urllib3.
I'd like to reopen this bug if possible.

Sorry for the misunderstanding.
I'd love to support this if the right API can be determined.

# Default, CA Bundle, like browser. Today.
requests.get(..., verify=True)

# No SSL check. Today.
requests.get(..., verify=False)

# Private PEM
requests.get(..., cert='/path/to.pem')

# Private Cert / Key
requests.get(..., cert=('cert', 'key'))

# No SSL check.
requests.get(..., cert='/path/to.pem', verify=False)


Some minor points that might catch out novices

(Or people working from bash on windows).

@iainfoulds can you help review?


Add PyCon India 2015

@MridulS , could you add a default "recorded": "2015-10-03"? The conference took place on October 3rd and 4th 2015 it seems.


Bug when buying all upgrades.

When you buy all the upgrades there is an error:  game can't retrieve the next upgrade.

#10

Merged, thanks.


Module Not Found Error js2py

Trackback (last call):
"C:\Users\sbyte\Desktop\coin\All-In-One\multi-account.py" file, line 4,
import from scripts.tapswap TapSwap
File "C:\Users\sbyte\Desktop\coin\All-In-One\scripts\tapswap.py", line 8,
in js2py import
ModuleNotFoundError: No module named 'js2py'
I downloaded the file but I still get the same error

Use Python 3.10


fix(docs): syntax error, improve examples

Hello good people of react-use,
This PR contains some documentation fixes.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Claim Winnings isn't updating after claiming. Only disappears after manual refresh

Still seeing this full amount despite claiming all

this is working for me. can you let me know if still happening?

@phoebemirman It's working now. On thing though:
I did 'claim all' and the modal instantly disappeared after signing the tx. There was no feedback in the UI that it was processing and only about 20 seconds or so after metamask confirmed the tx did it go away.
Can you add a processing state to the button and then I think we're good

much better


Add TsumiLink client

Changes
Add TsumiLink client to README
Why
Add new client
Checkmarks

[x] The modified endpoints have been tested.
[x] Used the same indentation as the rest of the project.
[x] Still compatible with LavaLink clients.

Heads up -- that are some points that doesn't make it fully NodeLink features compatible:

No compression
Leaks loadLyrics support

I need to take further look, but you also may be interested in:

adding support to fetch the node stats

Besides that, seems fine

k, I'll take a time to code them

loadLyrics implemented, getting stats implemented

Could you drop the commits from your repository so that they don't conflict here?


how to disable sliding?setSliding method is unknown?

any answer on this? setTouchEnabled(false) is not working for me, since I can still drag the panel

Use setEnabled

Thanks for the answer @tokudu. What I would really want was to not being able to drag but still be able to click on the views inside the panel. However, setEnable(false) also prevents me from clicking on those views. Any solution on this ?

How about setTouchEnabled?

@sergiomarquesmoura my question is also same. @tokudu please help on this.

@tokudu right now I am using setTouchEnabled. I've tried both

I look to see if setTouchEnable is buggy

Fixed in https://github.com/umano/AndroidSlidingUpPanel/commit/966fee4f049c43c1fded6371d1501d761f043395. Will be released in 3.3


NullPointerException when running against ohcount sources

To reproduce:
git@github.com:blackducksoftware/ohcount4j.git
git@github.com:blackducksoftware/ohcount.git
cd ohcount4j
gradle build
./ohcount4j ../ohcount

The last command will produce Error - java.util.concurrent.ExecutionException: java.lang.NullPointerException

Moving the project to archive status. Therefore, closing all issues.


Support AWS Lambda (API Proxy Integration)

Hi there,
these changes will add a new AWSLambdaServer (very similar to GCFServer) enabling users to deploy their handler on AWS Lambda as an Amazon API Gateway HTTP proxy integration.
Minimal setup

Login to the AWS Management Console
Navigate to Services → Lambda → Create function
Set a function name, leave Node.js as runtime, click Create function
Create a local Node.js project on your computer, install the proposed version of this library. Use the following example code:

const path = require('path');
const {AWSLambdaServer, SlashCreator} = require('slash-create');

const creator = new SlashCreator({
    applicationID: process.env.DISCORD_APP_ID,
    publicKey: process.env.DISCORD_PUBLIC_KEY
});

creator
    // 'interactions' would also be the default export if the second argument was omitted
    .withServer(new AWSLambdaServer(module.exports, 'interactions'))
    .registerCommandsIn(path.join(__dirname, 'commands'));

Make sure there are some example commands in the commands directory.
Zip the whole project (make sure to include node_modules) and upload it by selecting Upload from → .zip file
Deploy your code
Edit the runtime settings, set your handler (e.g. index.interactions)
If necessary (like in the example code above), add your Discord credentials under Configuration → Environment variables
Navigate to Services → API Gateway → Create API → HTTP API → Build
Add a new "Lambda" integration, choose your previously created function
Make sure to select Payload Format Version 2.0 and assign an arbitrary API name
After selecting Next, add a new route for Discord's webhook (Method: POST, Resource path: /event) and select your Lambda function as integration target
Leave the rest as-is and create the API
Note down your custom Invoke URL and add your resource path to it (format: https://abcdef1234.execute-api.us-east-2.amazonaws.com/event)
Save it as Interactions Endpoint URL in the Discord Developer Portal
Everything should work fine (make sure to sync your commands somehow!)

References

Lambda payload format (note that duplicate headers are comma-separated, this is handled in util/lambdaHeaders.js)

To Do

[x] Implement AWSLambdaServer
[x] Documentation
[x] Add unit tests for Lambda Header utils

Good PR, should make a docs page and put the steps there. Should also note to TypeScript users to install the @types/aws-lambda package to avoid any TS errors.

Done.


Word wrap doesn't affect the text of the base in the merge editor

Does this issue occur when all extensions are disabled?: Yes
Word wrap doesn't affect the text of the base in the merge editor, regardless of whether the base is displayed in the center or at the top.
Steps to reproduce:

Merge a branch with a conflict
Open the merge editor
Select word wrap

Base in the center

Base at the top

Version: 1.76.0-insider (system setup)
Commit: 853b32bad26ed5ffe2d29b95be45adc7f753e35a
Date: 2023-02-09T05:23:28.458Z
OS: Windows_NT x64 10.0.19045
Sandboxed: Yes

I'll pick this up 😄


.env with quoted values keeps the quotes when DEFINE'ing.

Submit a feature request or bug report

[X] I've read the guidelines for Contributing to Roots Projects
[ ] This is a feature request
[X] This is a bug report
[ ] This request isn't a duplicate of an existing issue
[X] I've read the docs and followed them (if applicable)

Replace any X with your information.

What is the current behavior?
I just did a fresh setup of the latest trellis + bedrock.
If the .env file has quoted values, eg:
DB_NAME='database_name'
DB_PASSWORD='example_dbpassword'
DB_USER='database_user'

Those values are defined in WordPress WITH the single quotes which is causing WordPress to fail to load.
The .env is generated by trellis/ansible with the single quotes, so I'm guessing the issue is with Bedrock's config loading stuff.
What is the expected or desired behavior?
The .env values are DEFINE'd without quotes.

Bug report
Please provide steps to reproduce, including full log output:
Literally all I did to reproduce:

Clone trellis
Clone bedrock
Set the domain/site names in the development group_vars
Vagrant up

Please describe your local environment:
Bedrock version: cfb68e1
WordPress version: 5.0.3
PHP version: 7.3
OS: Ubuntu 18.0something
Where did the bug happen? Development or remote servers?
Local development image

Updated phpdotenv to 3.3.6 fixes the issues.

i'm not seeing a 3.3.6 tag? https://github.com/vlucas/phpdotenv/releases

Sorry I meant 3.3.2

not sure why i can't re-produce, but the dependency has been bumped: #417


Licence

Hey @manveertamber!
I'm planning on implementing LiT5 into the rerankers (https://github.com/answerdotai/rerankers) library in the near future. Whenever possible, I prefer to err on the side of re-using official implementations, to make sure the results aren't badly representing any given method.
I was wondering, since this repo doesn't have a licence, do you consider the code in it re-usable (with due credit given of course)? If so, would you be willing to consider adding a permissive licence such as MIT or Apache 2.0 to reflect thus?
Thanks a lot, and congrats on the great work!

Hi @bclavie,
Happy to see your interest in our work! Absolutely, I've added an Apache 2.0 license.
Best of luck with your implementation!

Hi @bclavie,
Happy to see your interest in our work! Absolutely, I've added an Apache 2.0 license.
Best of luck with your implementation!

Perfect, thank you! I'll try and get that integrated soon!


WCF client: Type 'System.ServiceModel.FaultException' cannot be serialized.

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
12:54 PM OS Name:     Windows
 OS Version:  10.0.18362
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.100\

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  2.2.401 [C:\Program Files\dotnet\sdk]
  3.0.100 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]

Visual Studio CE 2019 v16.4.0

I'm trying to consume WCF service. Proxy-reference was generated using VS Connected Service based on WSDL. Then when running RPC-method on Reference class im getting the following inner exception below. The call to service is fine - i can see it in fiddler.
Type 'System.ServiceModel.FaultException' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. Alternatively, you can ensure that the type is public and has a parameterless constructor - all public members of the type will then be serialized, and no attributes will be required.
I checked FaultException class - it's public with parameterless constructor:
...packages\system.servicemodel.primitives\4.7.0\ref\netcoreapp2.1\System.ServiceModel.Primitives.dll
Looks as a bug to me.

@mconnew does this belong in your repo?

This is being tracked in dotnet/wcf#3984.
As mentioned in that issue, passing a FaultException, (or any exception for that matter) isn't something that's generally done in WCF services. It's a bit of an anti-pattern as exceptions are meant for code flow control and not data objects. If you throw a FaultException from a service, it gets turned into a SOAP Fault message and WCF does not serialize the FaultException itself. On the client side a FaultException is instantiated with the details from the SOAP Fault and then thrown. Having said that, we do plan to support it because even though it's not a recommended way to do things, strictly speaking there's not a technical reason to not support it, it's just a bit of a strange way to do things.
@blowdart, can you close this issue (I don't have permission to close it) as it's being tracked in the WCF repo.

Closing as external.


Created test for Gen.intersperse

Fixes https://github.com/javaslang/javaslang/issues/1275 and increases code coverage.

Current coverage is 95.62%

Merging #1282 into master will not affect coverage as of 6b8efb7

@@            master   #1282   diff @@
======================================
  Files           83      83
  Stmts         9592    9592
  Branches      1760    1761     +1
  Methods          0       0
======================================
  Hit           9172    9172
- Partial        100     101     +1
+ Missed         320     319     -1

Review entire Coverage Diff as of 6b8efb7

Powered by Codecov. Updated on successful CI builds.

Thanks!


Clean up psp related resources that maybe present in the cluster after upgrade to k8s 1.29

Tracking issue created to check if there are any psp related resources present in the cluster after being upgraded to 1.29, since all PSP related code has been removed.
If any such resources are found, will need to figure out a way to clean them up from the cluster.

[ ] As part of cleaning process after upgrading from 1.24 to 1.29 including all minor version, we've identified some references in RKE2 that require attention (we can ignore resouces  with 'tigera-operator as it is coming from upstream'):

global-unrestricted-psp-clusterrole
system-unrestricted-psp-role

ref: https://github.com/rancher/rancher/pull/45380#pullrequestreview-2083721953
https://github.com/rancher/rancher/pull/45380#pullrequestreview-2083759733
Parent Issue: https://github.com/rancher/rancher/pull/45380

Closing this issue as "won't do"


Don't check in your PhotonServerSettings

You should make sure that you don't check in:
/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset
At least not in a shared, public repo. It contains your appid.

It was not supposed to be pushed but ended up being pushed anyway. Thanks for the heads up, I'll change the Id.


Reduce or eliminate UI unresponsiveness

I'm not sure if this is a threading issue or what, but it's fairly easy to get the app into a state in which the UI is unresponsive at least briefly.
Sometimes just playing a video is sufficient.

@tzarebczan please be on the look out for performance related comments (positive or negative) after 0.8.x release.
@akinwale says we do not have firm performance metrics and are still relying on anecdotes


improper Rotations / Rotoflections

Extend Rotations to be able to represent also Drehspiegelungen / Rotation + Mirroring
This is useful for Siemens data, which has mirrored acquisition directions:
Although MRD says "Directional cosine of slice normal, i.e. cross-product of read_dir and phase_dir", for siemens it is the cross product of phase_dir and read_dir (opposite sign/mirrored).
Main issues is what the mean over a proper rotation and an improper rotation is -- there is no reasonable mean of mirror / non-mirror.
Currently, I do a majority vote and warn.
Also, what a non-integer power of an improper rotation is, for example (No Rotation + Mirroring)**(0.5).
It should be that applying this twice would result in Mirroring without Rotation.
The as_quats, as_euler etc now have a keyword only option to also return reflections.
The call signature is still compatible with scipy.
Also, I added a scipy compatible apply and type hints for call.
Tests are still missing for the improper rotations.

I had a look through and tried it on some data -> the interfacte looks fine to me and can deal with the Siemens data.

precommit-ci autofix


[Test Only] Regenerate for 2019-07-01/Microsoft.Resources

@erich-wang  can you please merge this PR as it's for a test branch?

@isra-fel


Can't connect to clamd on localhost:3310: Connection refused

im seeing this error when trying on a vanilla k8s cluster.
Fri Jun 17 09:44:24 2022 -> *updatedb: Running g_cb_download_complete callback...

Fri Jun 17 09:44:24 2022 -> *Loading signatures from /var/lib/clamav/tmp.f1166a27c8/clamav-8fa0ecf730a28adb149b8b0e881d3a36.tmp-bytecode.cvd
Fri Jun 17 09:44:24 2022 -> *Properly loaded 92 signatures from /var/lib/clamav/tmp.f1166a27c8/clamav-8fa0ecf730a28adb149b8b0e881d3a36.tmp-bytecode.cvd
Fri Jun 17 09:44:24 2022 -> Database test passed.
Fri Jun 17 09:44:24 2022 -> bytecode.cvd updated (version: 333, sigs: 92, f-level: 63, builder: awillia2)
Fri Jun 17 09:44:24 2022 -> *fc_update_database: bytecode.cvd updated.
Fri Jun 17 09:44:24 2022 -> !NotifyClamd: Can't connect to clamd on localhost:3310: Connection refused
Fri Jun 17 09:44:24 2022 -> !NotifyClamd: Can't connect to clamd on localhost:3310: Connection refused

Hi @debianmaster - are you using the helm chart?
Looks like the clamav-http container isn't being passed the host parameter


Verify if the selection path is not null

The SelectionMode was breaking the application because the selection Path is null when user is just tapping in screen.

@vitorMunizLDS what's the reason downgrade the version?


BFT support after smart BFT in fabric.

Is your proposal related to a problem?

(Write your answer here.)
Describe the solution you'd like

(Describe your proposed solution here.)
Describe alternatives you've considered

(Write your answer here.)
Additional context

(Write your answer here.)

Now it is certain that BFT has been included in Fabric 3.

I suppose we make it here https://github.com/hyperledger/fabric-admin-sdk/blob/main/.github/workflows/golang.yml#L57


Automate validation of Pelorus deployment

What we need:

Shell script to run for install
Shell script for running validation tests
How to handle logging into Prometheus, Grafana, etc.

Things I check:
routes should 200:
$ oc get routes
NAME                 HOST/PORT                                               PATH   SERVICES             PORT      TERMINATION          WILDCARD
grafana-proxy        grafana-proxy-pelorus.apps.ci-1.cop.rht-labs.com               grafana-proxy        web       reencrypt/Redirect   None
prometheus-pelorus   prometheus-pelorus-pelorus.apps.ci-1.cop.rht-labs.com          prometheus-pelorus   web-tls   reencrypt/Redirect   None
[ramius@greengrape noobaa-operator] (master=)
on the grafana one, go to the metrics dashboard:
https://grafana-proxy-pelorus.apps.ci-1.cop.rht-labs.com/d/bOroJ8-Wk/devops-software-delivery-metrics?orgId=1
Then check average lead time and change failure rate are reporting values

Then check connections in prometheus under targets:
https://prometheus-pelorus-pelorus.apps.ci-1.cop.rht-labs.com/targets
Make sure they are all in an up state.

@kkoller Please look into this issue to split it into smaller pieces of work

Automate validation of Pelorus deployment

Verifying that all components come up successfully (health check)

Code quality

Python code quality scanner (figure out what to use, no external hosted service)

(ideas: https://github.com/features/actions; pylama)

Update card names and creating a second one as per the comment above

@etsauer would it be ok to just use selenium or similar (cypress maybe?) to check that we can log in into Grafana/OCP and that all targets are "Up" in Prometheus?
I mean, that way we cover the E2E, and we don't need a script to check Pods running, etc.

@etsauer would it be ok to just use selenium or similar (cypress maybe?) to check that we can log in into Grafana/OCP and that all targets are "Up" in Prometheus?
I mean, that way we cover the E2E, and we don't need a script to check Pods running, etc.

This is now done in prow ci


Adds Poller support for BlobAsyncClient and BlobClient beginCopyFromUrl

Changes startCopyFromURL to beginCopyFromUrl. This conforms with our Java design guidelines.
Adds support for Poller API by exposing BlobCopyOperation.

Every polling interval, getBlobInfo() is called to see if the copy status is complete.
To cancel the copy operation, abortCopyFromUrl is called.

TODOs

[x] Update FileAsyncClient/FileClient
[x] Add tests

Fixes #5643

/azp run java - storage - ci

/azp run java - storage - ci

/azp run java - storage - ci

/azp run java - storage - ci

/azp run java - storage - ci

/azp run java - storage - ci

/azp run java - storage - ci


CodeCov reporting broken

CI passes but code-coverage seems still stuck on the commit prior to adding any flags.

solved with the help of @pckroon


NO-TICKET/Improve libp2p network memory metrics

This PR rolls up a few things:

Completes the memory metrics for the networking component, including adding a special counting channel that makes it possible to inspect queues.
Adds debug-metrics to the libp2p component that track the number of futures created.
Fixes a few bugs in metrics reporting (some still present) for memory in the validator.
Improves/fixes the nctl-utils prometheus metrics setup.

Almost all changes are confined to components::network, thus should have little impact on production.

bors r+


apply_ufunc should include variable names in error messages

This would make it easier to debug issues with dimensions.
For example, in this example from StackOverflow, the error message was ValueError: operand to apply_ufunc has required core dimensions ['time', 'lat', 'lon'], but some of these are missing on the input variable:  ['lat', 'lon'].
A better error message would be: ValueError: operand to apply_ufunc has required core dimensions ['time', 'lat', 'lon'], but some of these are missing on input variable 'status':  ['lat', 'lon']

I am working on this. The error listed here is thrown by the "broadcast_compat_data" function, which is called by "apply_variable_ufunc", which is in turn called by "apply_ufunc". There are other similar error messages that can happen where a variable name would also be helpful.

This is much harder than I thought. The function that throws this error doesn't have access to the variable name data, since it takes Variable objects as input which don't contain name information. apply_ufunc and its dependent functions are designed to take in a Dataset, DataArray, Variable, GroupBy or other object that might contain one or many variables, strip out the individual variable objects and run the computation on each of them. Including the variable name in the error message would require separately specifying the variable name as an input argument to "broadcast_compat_data" and "apply_variable_ufunc" and refactoring the code that calls these functions, which seems like adding too much complexity just for an error message. For now I think I'm going to change "the input variable" to "an input variable", which is at least a bit clearer.

Including the variable name in the error message would require separately specifying the variable name as an input argument to "broadcast_compat_data" and "apply_variable_ufunc" and refactoring the code that calls these functions, which seems like adding too much complexity just for an error message.

I agree that this is more complex, but it still might be worth doing. Good error messages are important!
We do internally in a few other places already.