E5108: Error executing lua ...es/neovim/.config/nvim/plugged/vim-ultest/lua/ultest.lua:60: attempt to index local 'test' (a userdata value)

Describe the bug
While trying to run a TypeScript (filetype typescript) test with UltestDebugNearest, I run into this:
E5108: Error executing lua ...es/neovim/.config/nvim/plugged/vim-ultest/lua/ultest.lua:60: attempt to index local 'test' (a userdata value)

The vim-ultest.log file contains this:
10:02:19 | INFO | MainThread | logging.py:create_logger:74 | Logger created
10:02:19 | DEBUG | MainThread | __init__.py:__init__:40 | Handler created

Additional context
nvim --version
NVIM v0.5.0-dev+1231-g48e805728
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/build/nvim/parts/nvim/build/build/config -I/build/nvim/parts/nvim/build/src -I/build/nvim/parts/nvim/build/.deps/usr/include -I/usr/include -I/build/nvim/parts/nvim/build/build/src/nvim/auto -I/build/nvim/parts/nvim/build/build/include
Compiled by root@lgw01-amd64-055

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

python --version
Python 3.8.6

I believe this has to do with my config:
let test#strategy = "tslime"
let test#filename_modifier = ':p'

It looks like the test file is not detected as a test file which is odd since it uses vim-test. Can you share the name of the file? That is how vim-test knows if it is a test file

For what it's worth it was happening on Python test files, too.
The filename is forms.service.spec.ts and the filetype is typescript.
One important detail is that this is a monorepo, and my test is in a nested package. Maybe that's why it's not figuring things out.
I solved the same problem in vim-test by forking vim-test and adding two commits:

https://github.com/fnune/vim-test/commit/93c93e490e994f9b661b297d100c90e8e30c6e54
https://github.com/fnune/vim-test/commit/f4b0f1c9868b81b784e696e0114694779a2626c5

I did that because vim-test also didn't think my file was a test file. Those patches above fixed it.

Related vim-test issue: https://github.com/vim-test/vim-test/issues/272

OK I think I see the issue. So essentially you need a way to run a test from a directory that is not the current one? That should be simple enough. I'll configure the tests to run from g:test#project_root if it exists.
For debugging with nvim-dap, that's a slightly different issue. I think you'll need to provide the project root as part of the adapter config (see https://github.com/mfussenegger/nvim-dap/blob/master/doc/dap.txt#L88) which is totally untouched by vim-ultest. Should be relatively easy to also just get the g:test#project_root variable.

So there was a number of issues that you raised so I'll address separately.

The test#filename_modifier variable will now be respected
Tests will now run with g:test#project_root as the current working directory if it exists
I've added g:ultest_pre_run which should be a function name, which will be called before any test is run with Ultest, UltestNearest, UltestDebugNearest and the corresponding <Plug> mappings

As I said before, you will have to manually configure nvim-dap to respect the project root.
Also the reason vim-test doesn't detect your file as a test is because it can't tell if your runner is installed. Simply explicitly state what your runner is so for example with javascript/typescript and jest
let g:test#javascript_runner = "jest"

Please let me know if anything isn't working as expected!

Thanks a lot for your time/attention!

As I said before, you will have to manually configure nvim-dap to respect the project root.

So setting g:test#project_root isn't enough?
I've updated my plugins but I still don't get the right results. The error I was getting previously (E5108: Error executing lua ...es/neovim/.config/nvim/plugged/vim-ultest/lua/ultest.lua:60: attempt to index local 'test' (a userdata value) no longer appears when I run UltestDebugNearest (or any of the other commands).
This is my config now:
let g:test#javascript_runner = "jest"
let g:test#python_runner = "pytest"
let g:test#filename_modifier = ':p'

I essentially don't get any output regardless of what I run, and regardless of whether I open Neovim in the tests directory or project root. Is my Neovim build too old? NVIM v0.5.0-dev+1231-g48e805728.

We can discard the "Neovim too old" idea. I just ran Ultest on a project that's a bit simpler and everything's working fine: this time the directory containing package.json is also the directory from which I ran Neovim.

Would you be able to provide a reproduction of a file that's having this issue? I imagine python would be simplest as I don't need a requirements file. I'm just not sure of the directory structure so there's likely some complication that I'm missing.

Are you setting the g:test#project_root variable as well? You'd probably get an error if that was the issue but just in case.
Otherwise can you supply a reproduction of one of these files? I'd say python would be simplest, as I don't need a requirements file but javascript works too. I imagine there's some complication that I'm missing

Trying to build a reproduction.
It's unrelated but I believe this:
let g:test#javascript_runner = "jest"
let g:test#python_runner = "pytest"

Is wrong, and instead one should use:
let g:test#javascript#runner = "jest"
let g:test#python#runner = "pytest"

https://github.com/fnune/repro-issue-31-vim-ultest
Copying the README here:

Run yarn
Open Neovim in the root directory
Open packages/app/src/test_does_not_work.spec.ts
Run Ultest there
Notice there's no output

To "fix" it:

Add test dependencies to the root of the repo (this is a bad idea): yarn add -W -D jest typescript @types/jest
Confirm that the test suite now works

So the problem is that the test dependencies aren't installed in the same directory where Neovim was opened. Then vim-ultest (or vim-test) thinks this is not a test file.

What's weird is that I couldn't reproduce it with Python. I think it's because I use a virtual env and the dependencies are elsewhere? I built the same dir structure and it was working correctly in my attempt to reproduce the issue, but it still wasn't working on my production repo.

One important detail about the reproduction: running yarn creates a node_modules directory on the root of the repo but not in the workspace package directory. However, the package.json entries for the test dependencies are listed in packages/app/package.json and not package.json, which makes me think vim-ultest doesn't think the dependencies are installed (even if they are).

Trying to build a reproduction.
It's unrelated but I believe this:
let g:test#javascript_runner = "jest"
let g:test#python_runner = "pytest"

Is wrong, and instead one should use:
let g:test#javascript#runner = "jest"
let g:test#python#runner = "pytest"

Completely correct, sorry for the leading you the wrong way!
Thank you for that reproduction, that is perfect. Unfortunately it looks like the issue might be something with your
config. I cloned that repo, opened the test file from the root directory and could run the test without installing
anything (obviously failed due to no executable).
To be clear, vim-ultest does absolutely no resolution of runners, leaving it all to vim-test. Also with the config of
let g:test#javascript#runner = "jest" vim-test will not even attempt to check for a package.json or if jest is
installed.
I'm running with the latest vim-test/vim-ultest, may I ask if you are running with your fork of vim-test or the regular
version?

I'm sorry it took me so long to answer. I must have lost the notification.
To test this, I was running the regular version of vim-test and vim-ultest.

I'm receiving the same error when I try to run RSpec tests.
Error detected while processing function ultest#run_file:
line   11: E5108: Error executing lua /Users/plindsay/.vim/plugins/vim-ultest/lua/ultest.lua:60: attempt to index local 'test' (a number value)```

Setting `test#project_root` doesn't seem to change anything, and `:TestFile` succeeds, so the issue seems to be with Ultest, specifically.

NVIM v0.5.0-dev+1329-gc46d98146
Build type: Release
LuaJIT 2.1.0-beta3
Compilation: clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20210518-45231-72e2i3/build/config -I/tmp/neovim-20210518-45231-72e2i3/src -I/usr/local/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20210518-45231-72e2i3/build/src/nvim/auto -I/tmp/neovim-20210518-45231-72e2i3/build/include
Compiled by<EMAIL_ADDRESS>Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-c46d981_2/share/nvim"
Run :checkhealth for more info

@tlindsay This seems to be a separate issue manifesting in a similar way. Could you please open a separate issue with the log file and an example file would be very helpful thanks!

@rcarriga Sorry for the noise on this one. Turns out I needed to run :UpdateRemotePlugins, and then everything started working

With this snippet:
let g:test#javascript#runner = "jest"

function UltestSetRoot(file_name)
  let g:test#project_root = join((split(a:file_name, "/"))[0:1], "/")
endfunction

let g:ultest_pre_run = "UltestSetRoot"

I get this when trying to run UltestDebug:
Error detected while processing function ultest#run_file:
line   11:
E5105: Error while calling lua chunk: ...es/neovim/.config/nvim/plugged/vim-ultest/lua/ultest.lua:91: attempt to index field 'fn' (a nil
value)
Press ENTER or type command to continue

Running just Ultest produces no output at all.

Without the snippet and only this as my config:
let g:test#javascript#runner = "jest"

The tests seem to run when running Ultest:

However, when running UltestNearest, a different picture:

It seems like it's not parsing as TypeScript but as JavaScript, so it chokes on keywords like interface and as.
The summary seems to be working fine (barring the wrong test results):

When running UltestDebug:
Error detected while processing function ultest#run_file:
line   11:
E5105: Error while calling lua chunk: ...es/neovim/.config/nvim/plugged/vim-ultest/lua/ultest.lua:91: attempt to index field 'fn' (a nil
value)
Press ENTER or type command to continue

Ah sorry about that, there was a fairly large code change recently and this
functionality isn't set in stone yet so the bug went unnoticed.  Please try
with the latest commit and the snippet I gave previously.
I wouldn't expect it to work at all with no pre run function so I wouldn't
bother trying to decipher the javascript/typescript mixup

That's a : character. All the tests fail with that output.
Here's my config:
let g:test#javascript#runner = "jest"

function UltestSetRoot(file_name)
  let g:test#project_root = join((split(a:file_name, "/"))[0:1], "/")
endfunction

let g:ultest_pre_run = "UltestSetRoot"

FWIW Python now fails with ERROR: file or directory not found: www/tests/unit/test_traces_api.py. pwd outputs the same directory www is in, so www's parent.

At this point I think it's best if I somehow increase my involvement and try to debug it with my own setup? I'm interested in seeing this succeed but I'm afraid I'm wasting a lot of your time...

Without g:ultest_pre_run Python works just fine. TypeScript goes back to the "tis not JavaScript" problem, but funnily enough a full run with Ultest passes all the tests (even if some shouldn't pass because I change the assertions).

Oh that quick function is very much only designed for the example repo you provided so your python repo might not be the
same.  The : character showing generally means that the test runner command failed to be found. Could you check the
logfile agan with debug logging as before and the error should be pretty obvious.
I'm more than happy to figure this one out, I'll have need of it myself anyway but if you'd like to try debug yourself
of course feel free. You can supply the env var ULTEST_DEBUG=1 and debugpy will be wait for a debugger to attach so
you can step through the code as it runs.  Pretty much everything of interest is happening in
rplugin/python3/ultest/handler/runner/__init__.py in the _run_group method at line 148, it makes several calls to
autoload/ultest/adapter.vim as well.


Protect sensitive admin actions with multi-party approvals

This Google product update creates the ability to require multiple super admins to approve changes to the following settings listed below:

2 Step Verification
Account Recovery
Advanced Protection
Google Session Control
Login Challenges
Passwordless (beta)

Based on the review of this update, it was determined that a policy should be added with the criticality of "SHOULD"

@mdueltgen I will work on creating the policy for this update.

Duplicate issue. Deleting.


Added: Implementation of POST login and logout

Hi,
I added support for POST in login and logout.
#308, #280

Just to confirm, would you like me to switch the logout to use only POST and remove the current GET method, or should I add POST support and keep GET as it is?

I think we need to continue to support logouts with GET until django 4.2 is no longer supported. That matches Django's policy.

Thank you @simon-spier0!


docs: avoid using namespace in the examples

The docs say that the source code examples should be read as if preceded by declaration:
using namespace boost::urls;

This is confusing, because I do not know which name comes from which namespace in examples like:
string_view s = "https://path";      // which string_view?
result<url_view> r = parse_uri( s ); // which result<>?

It would be easier to  grasp, albeit a bit longer, if we had instead:
namespace urls = boost::urls;

urls::string_view s = "https://path";
boost::system::result<urls::url_view> r = urls::parse_uri( s );

Would it help if the notice also mentions that the doc snippets are actually "live" compiled code in the repository, including a link to that code in context? This is how some other libraries do things, and I think it removes the problem of "mythical context".
I disagree that last code sample is easier to grasp. It's a lot noiser, and a lot harder to see the moving parts. If one insisted I'd go for in-situ:
using namespace boost::urls;

string_view s = "https://path";
boost::system::result<url_view> r = parse_uri( s );

But I guess that would get repetitive real quick.
Note also that string_view is any string-view here (courtesy of Boost Core), so urls::string_view is doing the reader a disservice by implying that it needs to be a particular proprietary type.

I'm not sure I understand the problem in
string_view s = "https://path";      // which string_view?
result<url_view> r = parse_uri( s ); // which result<>?

which string_view? urls::string_view. What else could it be? We're not using namespace std;.
which result<>? urls::result. What else could it be? We're not using namespace any_namespace_that_contains_some_other_result_type;.

We are discussing the initial page of the docs. At this point the reader is not familiar with the design decisions taken by the authors, or problems like the one with Core.String_view. Everything is new to her. She sees
string_view s = "https://path";

And why would it be obvious to her that it is urls::string_view? At this point no-one suspects that Boost.URL would define its own string_view, given that we have one already in Boost.Utility. Also I hear there is no common understanding between the people who already know the library well. @alandefreitas says it is obvious that we mean urls::string_view, whereas @sehe says making it urls::string_view is doing the reader a disservice. Also, I do not think the reader will understand that the intention is to say "any string_view".
If the goal of the library is to demonstrate that it works with std::string_view and boost::string_view alike, then maybe the example should read:
boost::string_view s = "https://path";

Similarly with result<>. I would not expect that result<> is defined in namespace urls, given that we have one in boost::system and another one in boost::outcome. And while it is obvious for you that result is from namespace urls, the solution proposed by @sehe suggests that it is from boost::system. So how a newbie could figure out what namespace it is?

And why would it be obvious to her that it is urls::string_view?

Because she's neither using namespace std; nor using namespace boost;.

Also I hear there is no common understanding between the people who already know the library well. @alandefreitas says it is obvious that we mean urls::string_view, whereas @sehe says making it urls::string_view is doing the reader a disservice

I don't think these statements are in conflict.
I think @sehe means that even if the user interprets that as std::string_view that would still be OK. Not that users should interpret that as std::string_view.

Similarly with result<>. I would not expect that result<> is defined in namespace urls, given that we have one in boost::system and another one in boost::outcome.

result<> is even worse because there's no std::result<>.
I have the impression you are assuming the user should interpret
using namespace boost::urls;

as
using namespace std;
using namespace boost;
using namespace boost::urls;
using namespace boost::core;
using namespace boost::outcome;

for some reason.

So how a newbie could figure out what namespace it is?

Just like a newbie could figure out the examples are not in Python. Because the documentation says it's C++.
It's in boost::urls because the documentation says the examples should be read as if preceded by the declaration:
using namespace boost::urls;

There's no reason to assume it's preceded by other declarations just like there's no reason to assume the examples are in Javascript.
In fact, Christian's point about making the "example code easier to copy-paste into "real" projects" seems much more reasonable.

It's in boost::urls because the documentation says the examples should be read as if preceded by the declaration:
using namespace boost::urls;
This will be one source of information to a newbie. Another would be their intuition (implicit assumptions), like "this library couldn't possibly add a third type result given that we already have boost::system::result.

Also, you explanation assumes that the user can trust the library authors that they are very strict an consistent about what they say. But my experience shows that a user starts with a mistrust: Is this library good? Do the examples even compile?

In fact, Christian's point about making the "example code easier to copy-paste into "real" projects" seems much more reasonable.

In real projects one would likely not want to do a using namespace. In real project you usually employ more than one library and you want to know which identifiers came from which library.

The docs look wrong. string_view is used before explaining to the user that code snippets are written as if using namespace boost::urls; came before. I suggest the following:

Move the using namespace callout to the beginning of the page.

Add exposition to the callout which reminds the reader that result, error_code, string_view, et. al. are aliases in the boost::urls namespace and as such are used without qualification.

Add additional exposition explaining that Boost.URL uses boost::core::detail::string_view and not boost::string_view.

Add a new sub-section, after the callout (but not inside the callout) which explains the purpose of the core version of string view, and that the choice of alias is subject to change.

If it doesn't already exist, @pdimov might consider making a page explaining the rationale of string_view so that we can link to it instead of repeating it. Also might be nice if Boost.URL links to the page explaining the new std compatibility features of boost::system::error_code.

And while it is obvious for you that result is from namespace urls, the solution proposed by @sehe suggests that it is from boost::system. So how a newbie could figure out what namespace it is?

@akrzemi1 Oof. I did not come up with boost::system::result. That was you, in the preceding post. I believed you. I guess I should have "starts with a mistrust".
(Side note, I 100% expect urls::result to be a type alias for it)

Also, I do not think the reader will understand that the intention is to say "any string_view"

That's not the intention. The intention is to say "a string_view". And the omission of details means two things:

it doesn't matter for the exposition what string_view is meant, reader can happily assume whatever they use on a daily basis
the documentation snippet compiles without further qualification

boost::urls::result is an alias, yes:
https://github.com/CPPAlliance/url/blob/173a32b4476edaf18e96711a601134403060fcd8/include/boost/url/error.hpp#L82

I do not think the reader will understand that the intention is to say "any string_view"

The intention is not "any string_view" - it is that the string view for which using namespace boost::urls followed by uttering string_view, unqualified, will compile.


Use testbench

Rewrote tests to use testbench.
Much better approach for Laravel Packages.
Few things I would love to get some help with, had to uncomment a few lines to get the test to work. Still need a real fix for them.

[ ] VoyagerUser.php line 27
[ ] RouteTest.php line 59
[ ] RouteTest.php line 60

Seems that TravisCI don't like the configuration yet, will figure it out tomorrow.
I'm off to sleep for now. 😴

Just fixed it I see 👍
NOW I will go to sleep.

Merging now, will look into the left issues later.
I think it's still a big improvement for the testing case.


Bot may post as another Reddit user

As posting with the Bot in a reddit channel would behave the channel feeling as it's "maintained by bots", would be nice that who posts the link via the Bot is used also as a submitter of that link on reddit.
Would be nice to investigate if Reddit allows this, and if yes, provide a dedicated command to tell the bot which user I am on reddit.
Again this is matched through the UID of Telegram. For eg. this may be a dictionary payload inside the bot:
[
 {
  "uid": 12345,
  "ruser": "julianxhokaxhiu",
 }
]

where uid is the Telegram User ID, and ruser is the associated reddit user.
An example of private command would be:
/setRedditUser julianxhokaxhiu

IMHO, there are 2 main ways to deal with this proposal.
We can either

include the username in the post title. Something like "Posted by USERNAME | Page title"
let the bot authenticate and behave on behalf of the user

Since we can interact directly with the user through Telegram, letting him authenticate using OAuth2 is a feasible operation.
Since this is a pretty radical change, I don't think we can develop the entire flow in time for the 0.1.

I prefer having the option to authenticate via oauth2 and let the bot post on my behalf.
Easier also to integrate in our reddits and groups too. Looking forward into it!


Ticket 40464: Consistency on Delete Permissions for Workbooks

@labkey-jeckels like we discussed, last year I made a change that made workbooks use the standard container delete pathway.  the problem is that workbooks should require DeletePermission, not AdminPermission.  These changes enforce the right permission based on what's being deleted.  Based on your suggestion, I also changed ContainerType based on your suggestion on the ticket.
Note: I dont know if team city will run tests off this.  i think it will require a branch on the labkey side of the work, but I dont think I can do this.

This change looks good to me.
@labkey-tchad can you assist with pointers on the workflow to get this tested on TeamCity? Ideally, if you could capture the sequence in a doc page (or share an existing link) I can follow them. I looked but couldn't find an existing set of guidelines.

@labkey-tchad thanks trey.  i just added a commit here to fix that.  do i need to explicitly merge my change from bbimber/platform:fb_workbooks into labkey/platform:fb_workbooks?

I just updated our fb to match yours. We can't do the update via PR because the HEAD on our side needs to be on the same commit for the status checks to show up here.


Error: Cannot find module 'webpack'

Hi,
I tried using with   "next": "13.4.9"
im getting the following error
Error: Cannot find module 'webpack'

Encountering the same. Started happening after a recent next.js version bump. Adding webpack as a dependency to my project resolved it though

webpack was listed in next-pwa's dependencies, perhaps your package manager didn't warn you about that.
It no longer is in 9.2.0 though, as we now reuse Next's webpack instance :)

webpack was listed in next-pwa's dependencies, perhaps your package manager didn't warn you about that.
It no longer is in 9.2.0 though, as we now reuse Next's webpack instance :)

But I still have the error which is solved after yarn add webpack

@rohankm I cannot reproduce the issue as described. Perhaps you will need to provide a reproduction.
One thing though, I saw this when trying to install the package using yarn:
warning "@ducanh2912/next-pwa ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS><6.0.0".
warning "@ducanh2912/next-pwa ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^5.9.0".
warning "@ducanh2912/next-pwa ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>
yarn did warn you about peer dependencies missing, but maybe you didn't notice :)


uptracker.cgi displays HTML in size field

Hello,
I've noticed an issue where uptracker.cgi is used, specifically an unintended display of HTML tags in the size field. This issue can be observed in various contexts, such as when uploading a package in the software module or using an upload parameter in a custom module. It's most easily visible with larger files, as the pop-up window remains open for an extended period. I'm opening an issue here because this does not occur with the gray theme, but it does with the authentic theme.

I suspect that theme_nice_size_local outputs the size with span tags, and in uptracker, these tags are escaped here.
Greetings

Hello,
Thanks for the heads up! The problem is actually that the theme did't fully replace uptracker.cgi upload tracker.
The latest commit adds support for it.
Example:

Awesome, thanks!


fix: make rip handle pre-releases more similar to pip

should fix https://github.com/prefix-dev/rip/issues/118
Not sure about #4 but also not sure wether #4 is according to spec, either :)

Hm, while this works to some degree, it currently thinks that there are no candidates other than pre-releases too often. This is because not all "artifacts" are passed into the filter_candidates function. We need to pass in some extra information from the outside or make this filtering different I believe.

I have worked a little more this morning on the pre-release stuff and there is a little problem. Maybe you have ideas. I believe the idea for filtering pre-releases is that it depends on the requirement, for example if I do rip jupyterlab==4.1.0b0 we would only select pre-release candidates for jupyterlab, and so it should be allowed.
However, the get_candidates function only gets a NameId and doesn't know about the spec it came from.

Hm, while this works to some degree, it currently thinks that there are no candidates other than pre-releases too often.

 Because I'm fairly confident Pip is not spec compliant (e.g. https://github.com/pypa/pip/issues/12469) and it's behavior may change quite a bit after https://github.com/pypa/pip/issues/11715 finally lands.

Yeah, indeed, I was trying to see what pip does. I also thought that your interpretation from the linked issue is correct. Unfortunately that is also harder for us to implement (not because the code would be complex, but because our API interfaces don't really support this yet).
The rule we consider implemeting is to allow pre-releases if the version specifier mentions pre-releases, e.g. jupyterlab==4.1.0b0 would work. jupyterlab==4.1 would not work. But apparently that wouldn't be spec compliant ... we'll think further on this :)

Hm, while this works to some degree, it currently thinks that there are no candidates other than pre-releases too often. This is because not all "artifacts" are passed into the filter_candidates function. We need to pass in some extra information from the outside or make this filtering different I believe.

What do you mean with this, can you give an example what would and what would not be passed?

The filter candidates function gets artifacts only for a single version. To check if all versions of a given package are pre-releases I moved the function one level up (check last commit).


watchposition() issues

timeout is not workling properly why ?
code
 let watchId;
 watchId = Geolocation.watchPosition(handleSuccess, handleError, {
        timeout: 1000,
        enableHighAccuracy: true,
        interval: 15 * 60 * 1000,
        maximumAge: 3000,
      });

  const handleError = error => {
        console.log(error, 'error dataaa');
        Geolocation.clearWatch(watchId);
      };

  const handleSuccess = async position => {
        let data = {
          latitude: parseFloat(position.coords.latitude).toFixed(6),
          longitude: parseFloat(position.coords.longitude).toFixed(6),
        };
        console.log(data, 'dataaaa');
     Geolocation.clearWatch(watchId);
      };

I also has watch position issues that I have been trying to fix for a month now. Arguably some people have issues of getting all of geolocation responses in particular heading,speed and timestamp. I have a post on stackoverflow
Please I need some help with this as soon as possible.
This is my code
React.useEffect(() => {
    Geolocation.requestAuthorization(
      (_success?: any) => {
        console.log("Location permission requested successfully");
      },
      (error?: GeolocationError) => {
        console.log("Error requesting location permission:", error);
      }
    );
    if (!origin && !destination && !recordingMode) {
      if (watchId !== null) {
        Geolocation.clearWatch(watchId);
        setWatchId(null);
      }
      const noSaveWatchId = Geolocation.watchPosition(
        (position: GeolocationResponse) => {
          const {
            latitude,
            longitude,
            altitude,
            accuracy,
            speed,
            heading: geoHeading,
            altitudeAccuracy,
          } = position.coords;
          const { timestamp } = position;

          setCurrentPosition({
            coordinate: { latitude, longitude },
            altitude: altitude as number,
            timestamp: position.timestamp,
            accuracy: accuracy,
            speed: speed as number,
            heading: heading || (geoHeading as number),
            altitudeAccuracy: altitudeAccuracy as number,
            isFromMockProvider: (position as any).mocked,
            timeStamp: timestamp,
          });
        },
        (error: GeolocationError) => console.log(error),
        {
          enableHighAccuracy: true,
          distanceFilter: 0,
          interval: 5000,
          fastestInterval: 2000,
        }
      );
      setWatchId(noSaveWatchId);

      return () => {
        if (noSaveWatchId !== null) {
          Geolocation.clearWatch(noSaveWatchId);
        }
      };
    } else if (origin && destination && recordingMode) {
      if (watchId !== null) {
        Geolocation.clearWatch(watchId);
        setWatchId(null);
      }
      const saveWatchId = Geolocation.watchPosition(
        (position: GeolocationResponse) => {
          const {
            latitude,
            longitude,
            altitude,
            accuracy,
            speed,
            heading: geoHeading,
            altitudeAccuracy,
          } = position.coords;
          const { timestamp } = position;

          setCurrentPosition({
            coordinate: { latitude, longitude },
            altitude: altitude as number,
            timestamp: position.timestamp,
            accuracy: accuracy,
            speed: speed as number,
            heading: heading || (geoHeading as number),
            altitudeAccuracy: altitudeAccuracy as number,
            isFromMockProvider: (position as any).mocked,
            timeStamp: timestamp,
          });

          if (
            state &&
            state.location.lat !== latitude &&
            state.location.lng !== longitude
            // state.location.heading !== heading
          ) {
            dispatch({
              type: Types.SetLocation,
              payload: {
                lat: latitude ?? 0,
                lng: longitude ?? 0,
                heading: heading ?? 0,
              },
            });
          } else return;
          makeLogEntry({
            latitude,
            longitude,
            heading: heading || undefined,
          })
            .then(() => console.log("Log made successfully"))
            .catch((error) => console.log("Error making log entry:", error));
        },
        (error: GeolocationError) => console.log(error),
        {
          enableHighAccuracy: true,
          distanceFilter: 0,
          interval: 5000,
          fastestInterval: 2000,
        }
      );
      setWatchId(saveWatchId);

      return () => {
        if (saveWatchId !== null) {
          Geolocation.clearWatch(saveWatchId);
        }
      };
    }
  }, [origin, destination, recordingMode]);

I am able to receive lng and lat accurately but heading is always '0'


Set z-index of dropdown higher (105) than dialog

Coverage decreased (-0.2%) to 21.528% when pulling 7ffd0d7e34c04d27aabdb36e32b2a641e7f36c9d on tprovick:master into 8c057ddaa2403191c80557f5b385684370a343bc on NodeCGElements:master.


Feat: add vmss identity principal id output

abandoning due to multiple folders with different case conflicting with in-casesensitive filesystems. staring the branch over again


readonly rootfs support

A new command line option --read-only is added to hyperctl run and hyperctl create to enable readonly rootfs support. A new field readonly is added to container spec to enable it as well.
Readonly rootfs is enforced in two ways:

when specified, hyperstart will mount the container rootfs readonly
when specified, qemu will hotplug the device readonly for block storage. For aufs and overlay, hyperd will mount the rootfs readonly so that they are shared to qemu readonly, even though the 9p share dir is writable.

Needs: https://github.com/hyperhq/hyperstart/pull/314 https://github.com/hyperhq/runv/pull/511
Fixes: https://github.com/hyperhq/hyperd/issues/564

@bergwolf Any updates on this?

The hyperstart part needs rebase.

CI failures are because of readonly field parsing failure in hyperstart. We should merge  hyperhq/hyperstart#314 first and re-trigger CI here.

retest this please @hykins

it seems that the ro-mount for btrfs driver is not included.

hykins was running too slow (>40 mins) and timed out. retest this please @hykins

LGTM


POC build during the build phase.

This is intended as  POC, I would like to recommend the html-next team take this direction for the build steps.
cc @runspired

I believe @runspired was going to help us through how to get this over the finish line

I'm pretty sure I understand what's going on here. Digging into this now

Bringing this across the finish line in #9. Thanks a ton @stefanpenner!


An issue about the file name: 00_BF.csv

I am using tensile-master-3.3 with rocm-3.3.1. Firstly, tensile did not found 'llvm-config', so I manusally add the path in '.bashrc'

Then, I get such a different issue, which tell me did not find the '00_BF-new.csv' where itself build a file named '00_BF.csv' as shown above.
I wonder how to solve this question, thx.

I tried to rename the file as '00_BF-new.csv'. However, this does not settle the problem.

@shana34 Apologies for the lack of response.  Can you please test with the latest ROCm 6.1.2? If issue does not occur, please close the ticket. Thanks!

@shana34 Closing ticket. Please re-open the ticket if you still see the issue with the latest ROCm. Thanks!


fix: allow setting withMdx option to false

The current check would always force it to be true
Addresses left-over problems from #24

Thank you changeset-bot :)
I guess a patch version increase would be appropriate. Should I add it to the changeset or does someone from the maintainers want to do the honours?

@jpedroschmitz :wave: :slightly_smiling_face:
I assume you're busy with other projects. Just let me know if there's anything I can do to assist to get this merged. I wasn't sure whether I should add a changeset / version bump in the feature branch myself.

I'm hoping for this PR to be merged!

Looks great. Thanks a lot @milgner!

Just released it on NPM! Thanks again ❤


[Bug]GF_INSTALL_PLUGINS doesnt't work as expected

Describe the bug
I try following the instructions described there https://github.com/grafana-operator/grafana-operator/blob/master/documentation/plugins.md in order to install additional plugin
Version
v4.3.0
To Reproduce
Steps to reproduce the behavior:

Define a kind Secret with the following content

apiVersion: v1
kind: Secret
metadata:
  name: grafana-env
stringData:
  GF_INSTALL_PLUGINS: "flant-statusmap-panel 0.4.2"

Check the log file of the grafana deployment

grafana ✔ Downloaded flant-statusmap-panel v0.4.2 zip successfully
grafana                                                                                grafana Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.
grafana
grafana grafana 07:11:49.65 INFO  ==> Installing plugin 0.4.2
grafana Error: ✗ Plugin not found (Grafana v8.5.0 linux-amd64)

Expected behavior
Download and install the given plugin (this feature works when I try installing the plugin with the GUI)
Suspect component/Location where the bug might be occuring
unknown
Screenshots
If applicable, add screenshots to help explain your problem.
Runtime (please complete the following information):

OS: Linux 2d1751a0-54cc-47d8-b4ca-cac502f1eddc 5.4.0-105-generic https://github.com/grafana-operator/grafana-operator/issues/119~18.04.1-Ubuntu SMP Tue Mar 8 11:21:24 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Grafana Operator Version : 4.3.0
k8s : 1.21
Deployment type: running the operator deployed

Additional context
This feature works when I try installing the plugin with the GUI.
The pod has an internet access.

Hello,
It works when I declare plugins directly in the Dashboard CR :
https://github.com/grafana-operator/grafana-operator/blob/master/documentation/dashboards.md
Could you confirm that this behavior is as expected ?
What is the role of the GF_INSTALL_PLUGINS variable ?
Thanks and regards,
Jean-Christophe.

@JCL38-ORANGE as pointed out in the docs did you try to restart the grafana deployment after defining this?
This is a built in feature in grafana so you won't see any errors about this in grafana-operator but in the grafana deployment.

Hello,
Thanks for the precision.
OK. I close the issue because it works when I declare it directly in the dashboard CR.
Regards,
Jean-Christophe.


Implement Leap test as Spock specification

Also changes test cases to match x-common cases.

I'm going to go a head and merge this. We can consider improving failure messages in the future, if necessary.


Separate tabbar tabs from tab content and target programmatically?

The default behavior is that the tabbar tabs are attached in the same container. How can we go about having it separate from the container but still work.
For example, add a ref to each scrollView like ref='tab1' and ref='tab2' and then from a totally separate container on the same page, trigger it programmatically with a prop of tabTarget='tab1' and tabTarget='tab2', or onPress='tabTarget('tab1')?

You can do this by props page.
for example
`
constructor(props) {
super(props);

this.state = {

  selected: 0, // page index

};

}
`
`
<ScrollableTabView
page={this.state.selected}

...

`

 <Text onPress={() => this.setState({ selected: 1 }) }>Clicker to goto Page 1</Text>

I would not recommend to use page property because other guys met few issues with that. I try to avoid using refs. Could you show somehow what you trying to achieve?

Sure, I have multiple pages, and all follow a common skeleton layout, wrapped in their respective containing views: header/subheader/content and I plug in the components in the relevant parts. So I want the tabs to be in the subheader layout container and the content of the tabs to go in the content layout container. Currently, they're all attached together, and I am trying to separate them into their appropriate layout container. Does that make sense?

@skv-headless Any ideas how to do this?

here https://gist.github.com/skv-headless/3a1391d3b52736e7367eb33c3bc1a52b how to use goToPage. But I don't like the idea of separating tab bar and content because I would have to make implicit communication between them. I it would not be easy to do 😢
Why do you need to put tab bat into subheader? Do you really need this?

@skv-headless Thank you for your input. I played around a but more and decided to just use initialPage with the tab index# based on the prop and try to work with the plugin as is without separating the pieces. I'll let you know if I come across any issues/limitations. Thanks again!!

@skv-headless I just ran into an issue with not using my layout skeleton.
For the tab content, I am using 2 imported components, with their tabLabel. Those components should be centered (horizontally and vertically) in the view within the displayed tab content, so I have within each of those components a wrapping <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}} but the components are only centered horizontally because of alignItems: 'center' , but not vertically.
I am not sure why the vertical centering isn't working, since I have justifyContent: 'center'. I know I can use marginTop, but the views need to be centered for all device screens, so I can't really use that. As a tip, when I use a backgroundColor in those components to see the height, I can see that the height isn't extending all the way to the bottom when rendered using the tabs component.
How do you think I can get the vertical centering to work? (note: these are 2 very short components, so scrolling within these specific tab content isn't necassary, that's why I am centering them)

I messed this comment. Sorry. If it's still an issue please create a new one. With picture please 😃


Line breaks are not working at all

What happened?
Line breaks are not working at all
What did you expect to happen?
I have a README.md file containing:

:box:warning:Do not maintain in Confluence:This document should only be maintained through the README.md file in the ng-template-standard-app project:

Creating a new app from template
Template for a ASPECT4 Standard NextGen app with the standard layout
This template project is for creating standard apps.
It's based on a Next.js project bootstrapped with create-next-app.

After uploading to confluence with v10.0.0, it doesn't show the confluence page correctly. the 3 lines are just showing as 1 line.
How can we reproduce the behavior you experienced?
Steps to reproduce the behavior:
just run the content described above and run it with mark v10.0.0.
I am using a Github workflow:
docker run --rm -v $(pwd):/tmp -i kovetskiy/mark:latest mark -p ${{ secrets.A4_CONFLUENCE_PAT }} -b https://confluence.eg.dk --h1_title --h1_drop -f /tmp/$file || true
if i use v9.13.1, it works:
docker run --rm -v $(pwd):/tmp -i kovetskiy/mark:9.13.1 mark -p ${{ secrets.A4_CONFLUENCE_PAT }} -b https://confluence.eg.dk --h1_title --h1_drop -f /tmp/$file || true
Further Information (please complete the following information)

Mark Version (mark --version):  v10.0.0
Mark Parameters: --h1_title --h1_drop
Confluence Hosting: [e.g. Cloud, Server or Datacenter]
Confluence Version:  8.5.9
Environment specific Information: running in Github Actions

I had removed paragraph support in v10 because it would work better with macros. We'll need to find a way to support both.


feat: Use new certificate store on First-Party Endpoints

Related with #175

Why do we need to exclude that group?

Not clear, but the test was failing because it was defaulting to an older version of the awala-jvm library, just in test builds. The awala-testing-jvm library is 1.63+, so I tried excluding it and it worked 🤷 .


Suggested: please Add AZURE curl GET feature for Cloud API's

SAMPLE REQUEST FROM AZURE's WEBSITE:
GET https://api.cognitive.microsoft.com/bing/v5.0/news/trendingtopics HTTP/1.1
Host: api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••
USING your Script... from the EXAMPLE section...
<?php
// PHP CURL CLASS
// SOURCE: https://github.com/php-curl-class/php-curl-class

require '/vendor/autoload.php';

use \Curl\Curl;
// curl --request GET "https://httpbin.org/get?key=value"
$curl = new Curl();
$curl->get('https://api.cognitive.microsoft.com/bing/v5.0/news/trendingtopics/', array(
    'Ocp-Apim-Subscription-Key' => '***************************',
));
if ($curl->error) {
    echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n";
} else {
    echo 'Response:' . "\n";
    var_dump($curl->response);
}

I am getting this ERROR:
Error: 401: HTTP/1.1 401 Access Denied
How could that be... IF I am able to see the response and data at AZURE's site...
Any Clue on how to solve and add this feature to your SCRIPT ?
Thanks

Hi. Ocp-Apim-Subscription-Key should be set as a header.
$curl = new Curl();
$curl->setHeader('Ocp-Apim-Subscription-Key', 'my-key');
$curl->get('...');


[FSDP2] LoRA/QLoRA move state dict to cpu

follow up on https://github.com/pytorch/torchtune/issues/1412
FSDP2 will throw error with to remind user to move parameters to cpu when enabling cpu offloading: https://github.com/pytorch/pytorch/pull/135156
Chaging torchtune LoRA/QLoRA to load from cpu state dict when enabling cpu offloading. This makes sure pytorch nightly does not break LoRA/QLoRA
Context
What is the purpose of this PR? Is it to

[ ] add a new feature
[x] fix a bug
[ ] update tests and/or documentation
[ ] other (please add here)

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

Project coverage is 27.20%. Comparing base (66590b4) to head (bc780ff).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1531      +/-   ##
==========================================
- Coverage   27.22%   27.20%   -0.02%
==========================================
  Files         286      286
  Lines       13828    13828
==========================================
- Hits         3764     3762       -2
- Misses      10064    10066       +2

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

Hey @weifengpy @ebsmothers , i see that these changes made to the new recipe. Is that correct? If so, can we close this PR?

yes, they are landed by Evan. closing the issue


Status Bar Row Count not updating in real time

SQL Operations Studio Version: 0.32.5-insider

Steps to Reproduce:

Open Two Editor windows
run select top 1 query in editor  1 SB row count shows 1
run select top 10 query in same editor, SB row count remains 1
click tab to switch to editor 2 then switch back to editor 1, SB row count indicates 10 rows
and so on....

This relates to  closed issue #2023.
also noticed that sometimes when opening new editor window, SB row count does not clear.

@Blindeddie I wasn't able to repo this myself.  The status bar row count is being updated consistently when tab switching.  I'll check on different machines to see if there is some environment component.  Please let me know if you have additional repro details.

@kburtram This appears to be intermittent, not sure why, but does happen frequently when selecting a large number of columns that you need to scroll to see.  Not sure if that helps, but will see if I can get some screenshots when I have a chance.

Closing out older issues.  Please let us know if you're still impacted by this issue.  Thanks!


GridView, have a column class change row options.

I have a few GridView widgets. Each has a common column which shows a date as to when the item will expire so I've made it into a DataColumn class.
I want to make use of Bootstraps contextual classes for tables so the rows are coloured depending on how long is left on the date.
This can be done using rowOptions on the GridView but means repeating code across the grids.
It would be handy if a Column class could change the row options.
e.g. protected function renderDataCellContent($model, $key, $index, &$rowOptions) { ... } or protected function renderDataCell($model, $key, $index, &$rowOptions) { ... }

you definately got a usecase. Im not fond of your proposed solution though. Either the row options should be accessed by something as $this->row within your column class, but this is not how the grid is built.
Ultimately, you want a table that is fully object oriented, but for large tables, perhavs this goes at cost of performance. In you'r scenario, which is quite usecase specific, I would try to hook into the closure GridView::$rowoptions by a Event::init or DI.

It is a bit specific but would help with creating reusable columns.
Currently I do set the $rowOptions from the Column init() but it feels a bit wrong and means it can't be used by the GridView anymore.
It's a shame there's no parent selector in CSS.


Add support for imagePullSecrets

The deployment.yaml file does not support specification of imagePullSecrets.
This is useful for scenarios where this chart is used as a dependency by another chart that includes altering the target image to be used by the deployment.

@crburke Thank you for your contribution. Can you expand a little bit more about your use case?

We have internal tooling to support adding an internal certificate authority to a docker image. To leverage that tooling I needed to build a custom lakeFS image. Once that image was available I wanted to continue using the helm charts provided in this repo, but I needed to be able to provide imagePullSecrets to be able to access the image from our docker registry. To do so I changed lakefs/templates/deployment.yaml to include the following in the spec section, but ideally this would be supported by the chart without any further customization:
{{- if .Values.imagePullSecret }}
imagePullSecrets:
  - name: {{ .Values.imagePullSecret }
{{- end }}

I would also appreciate this function being added to the chart


Extract limit into constants file so that it can be referenced

Coverage increased (+0.1%) to 87.597% when pulling 8acbdf6780962d34dd4faf0bb47e5015c20e2b63 on extract-truth into 6f99f8d7468e0f6796fb26473f56d6576fd779e3 on master.


Do not use MailAddress.MailAddress(String) class constructor to check email address validity!

The MailAddress.MailAddress(String) class constructor throws no exception when the input string contains empty spaces!
This means that a string with empty spaces would be validated as a proper email address, if we were to use the technique suggested on the top of this article.
I have checked the above with .NET 4.5

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 202e3f9f-a12a-53de-9069-fd469e3dbebc
Version Independent ID: fd3699bb-4881-b6b4-1275-43eed3d5f626
Content: How to: Verify that Strings Are in Valid Email Format
Content Source: docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md
Product: dotnet
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

@davidsh, can you comment on the use of the Mail.MailAddress.#ctor(String) to validate an email address? Do we need to remove mention of it from this regex topic, where it's presented as the preferred alternative to a regex?

To provide provide more context, I've tested the constructor under discussion with some inputs that contain white spaces and checked the resulting MailAddress.Address property.
The following list presents the results:

"" (empty string) results in ArgumentException
" " (string that contains only white spaces) results in FormatException
<EMAIL_ADDRESS>(no white spaces) results in<EMAIL_ADDRESS>"<EMAIL_ADDRESS>or<EMAIL_ADDRESS>" (white spaces at the start or at the end) results in<EMAIL_ADDRESS>(no white spaces)
"jkt@ gmail.com" (white space is directly after @) results in<EMAIL_ADDRESS>(no white spaces)
"jkt@g mail.com" (any not trailing white space after @ except the above case) resuls in FormatException
"jkt @gmail.com" (white space is in front of @) results in<EMAIL_ADDRESS>(no white spaces)
"j<EMAIL_ADDRESS>(white space is before @, inside the username) results in<EMAIL_ADDRESS>(the part after a white space is taken as the mail address)

We've gotten a lot of questions on this topic over the years.  The short answer is that the MailAddress constructor is never going to be up-to-date with manually using a regex.  Changing the parser inside the constructor to fix bugs will break some applications.  So, we have refrained from changing the behavior this class.

Do we need to remove mention of it from this regex topic, where it's presented as the preferred alternative to a regex?

Yes, I would remove that language. Using a regex using the most recent RFC definitions would be the best choice.

@svick I don't think many people attempt to write an email regex, as there's already provided documentation.

@EliCDavis, to my understanding, so far it was an example of how to use regex, rather than the attempt to create the regex that validates any email address. That regex should be improved as well: #5305


Dev: console error on creating new chat or any report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Click on fab icon
Select new chat
Enter any new id which you haven't chat yet
Check inspect element and observe the console error

Expected Result:
Should not be any console error
Actual Result:
Gives error for createChat type pendingFields.createChatof typestringsupplied toReportScreenWrapper`, expected an object.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
Reproducible in staging?: dev
Reproducible in production?: dev
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/a3ac2853-1424-4ef2-95bd-41133bd3ee6a
Expensify/Expensify Issue URL:
Issue reported by: @Pujan92
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1691084126708399
View all open jobs on GitHub

I have raised it as a regression here, and now it is fixed. I think I am eligible for reporting bonus.

Thanks for the heads up, @Pujan92! I'll get that taken care of.

Sorry for the ping, @cubuspl42. I made this External to create the Upwork job to pay the bug reporter.

@Pujan92 I've invited you to the job on Upwork. Can you please ping me when you've accepted that so I can issue payment? Thank you!

@johncschuster accepted, thanks!

Payment has been issued! Thanks for reporting the bug, @Pujan92!


fix rails 5 deprecations

closes #665
@dhh mentioned (https://github.com/rails/rails/issues/24018#issuecomment-191852988) that the maintainers would be open to releasing a new version of turbolinks-classic that fixes these deprecations, so I humbly submit this PR for review. 😁

Is this backward-compatible with Rails 4?

Is this backward-compatible with Rails 4?

Not fully, I think. Module#prepend came with Ruby 2.0 but Rails 4 supports Ruby 1.9.3.

Ping @rafaelfranca, would you be open to a PR that removes compatibility for Ruby <2, maybe even Rails <4.2?
We cannot yet switch to TL 5 in our project, so we want to keep using TL-classic for the time being.

Nevermind, I saw this is actually fixed in the current master branch: https://github.com/turbolinks/turbolinks-classic/blob/80216ce9d89920bf073709405e3fce6d0a3ccd9a/lib/turbolinks.rb#L13-L20

what's the status here?

I'd prefer to not remove support to Rails 4.2 right now. So can we conditionally check the Rails version where it is necessary?

I can take a look how far I can get, but first #678 would need to get merged.

hrm, I guess that whole testing stuff should go to 2-5-stable, like this PR?

please see #679


Bug / improvement: Lock times are too long

Hello!
I want to start off by stating that this is a wonderful peace of software, and we're very pleased with some testing we have given it the past couple of days.
While our testing, we did notice that some page locks were very long. We we're testing it out with several users. Even though these users closed the page in question, and clicked around in other pages of GoNorth, all the pages visited before this remained locked for a pretty extensive time (we didn't explicitly count, but could've been 15 minutes easily). Especially when trying to work on a large map with several people, this becomes quite the issue.
Please let me know if this is intended or not. Perhaps some kind of lock time configuration setting could be added, or perhaps going to a different page will unlock the previous one.
Let me know, and thanks again for making this great software!

Hi,
thanks for the feedback! I am really happy to hear that GoNorth can help you.
Your idea to release the locks on navigation and make the lock time configurable makes a lot of sense and I will include this in the upcoming release. The next release should be done next week or the week after.

Implemented with the latest release. The lock will now be released on navigation or closing of the current page. Also you can now configure the lock refresh interval in the appsettings.json.

Implemented with the latest release. The lock will now be released on navigation or closing of the current page. Also you can now configure the lock refresh interval in the appsettings.json.


how can I use this in OC project?

just as above, i mean using cocoa pods

This is available on CocoaPods as UIImageColors. You would just need to add pod 'UIImageColors' inside your Podfile.


obs confusion with docs and #223

Carrying on from #223 and the example in the readme:
onInit(){
  ever(isLogged, fireRoute);
  isLogged.value = await Preferences.hasToken();
}

fireRoute(logged) {
  if (logged) {
   Get.off(Home());
  } else {
   Get.off(Login());
  }
}

I'm loading isLoggedin from shared prefs like above example. If I use await there, I get "await can only be using in an async functions", if I make it async, I get stuck and LoginScreen after boot up and logged in..
So I've created:
  @override
  void onInit() {
   _loadLoggedIn();
    ever(isLoggedIn, checkLoggedIn);
  }

  // Move to PrefRepository
  _loadLoggedIn() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    // expr1 ?? expr2
    //    If expr1 is non-null, returns its value; otherwise, evaluates and
    //    returns the value of expr2.
    // https://dart.dev/guides/language/language-tour#conditional-expressions
    isLoggedIn.value = prefs.getBool('isLoggedIn') ?? false;
    print('Loading isLoggedIn as "' + isLoggedIn.value.toString() + '" from device.');
  }

In checkLoggedIn:
void checkLogged(_) {
    if (isLoggedIn.value) {
      Get.off(HomeScreen());
    } else {
      Get.off(LoginScreen());
    }
  }

when my app starts from fresh again after a successful login, I see the LoginScreen() flash, then I go to the HomeScreen. My setup is as per #223
What am I doing wrong here?

This is what I'm logging:
I/flutter (21847): [GET] GetMaterialController has been initialized
I/flutter (21847): [GET] AuthController has been initialized
I/flutter (21847): [GOING TO ROUTE] /
I/flutter (21847): [REPLACE ROUTE] /
I/flutter (21847): [NEW ROUTE] /loginscreen
I/flutter (21847): Loading isLoggedIn as "true" from device.
I/flutter (21847): [REPLACE ROUTE] /loginscreen
I/flutter (21847): [NEW ROUTE] /homescreen

ever must is above the modification method.
You are listening for changes after the change, so ever() will never be triggered.
Also consider using https://pub.dev/packages/get_storage
It is synchronous (does not need await), and will make your life much easier if you don't have a lot of time on Flutter, and you still can't understand the flow of async/await/then from the Futures.
wrong
   _loadLoggedIn();
    ever(isLoggedIn, checkLoggedIn);

right
   ever(isLoggedIn, checkLoggedIn);
   _loadLoggedIn();

In version 3 I will remove SharedPreferences from the example, because it makes no sense to use it instead of get_storage.
It is slower, depends on platform channels, does not support flutter_desktop, and needs to be used with await as it has no cache.
get_storage solves all of these problems.

Hi @jonataslaw
Thanks for the pointers and get_storage recommendation. It still flashes the LoginScreen() though after this change, so I switched to get_storage and it's working. What did I miss here? Lack of understanding regarding Futures?
Thanks.


Fix margins

With the new custom text editor the md preview will be on the webview.
This issue should be solved in: coinspect/vscode-coinspect-reports#55


Primer design fixes

The primer designer has never really taken care of self dimers during design and does in practice make bad oligos.   For example the CTTTAAAG in the tail of this oligo can anneal to itself (oligo on opposite strand) and prime to make a dimer.
TTAAGTCGAAACCTAGTGCTCCGCTATTCTTGCCTACGGTTGGGCTTAA**CTTTAAAG**
In addition, there were deficiencies in the GC clamp finding that sometimes the designer would ignore an obvious opportunity to end a primer on a G or a C.   This patch fixes these cases and adds a bunch of tests.   Regression testing was done against a large set of designs and all the changes inspected to ensure the algorithm is behaving as designed/intended.   This will likely result in small changes to oligo designs relative to historical output.  The most common changes will be a 1 or 2 bp change in length to end on a G/C  or to avoid a terminal palindrome.

Ok - all addressed.  I ended up bumping the versioning to .Net 4.6.1 like the other libraries while trying to find Option.defaultarg and can revert if this is aproblem.  We should be moving over to dotnetcore soon anyway

I ended up switching it back to 4.5 after the 4.6.1 update broke a bunch of things.  Probably better to minimize the changes here.


typescript: convert Application to typescript

part of https://github.com/opencollective/opencollective/issues/5893
Sorry for the trouble @Betree, I have been able to recover the commits.

Hi @Betree I am marking the pr ready for review. If there are any changes you require just let me know.


no-dh no-ec doesn't build

ssl/statem/statem_clnt.c:1618:52: error: no member named 'pkey' in 'struct ssl3_state_st::(anonymous at ssl/statem/../ssl_locl.h:1408:5)'
if (s->ext.tls13_cookie_len == 0 && s->s3->tmp.pkey != NULL) {

Addressed via #4369


Plugin translation problem

I have updated rainloop from <IP_ADDRESS>3 to <IP_ADDRESS> and have problem with translations in plugin. Default language of rainloop is set to polish, but plugin texts are in english.
Structure of this plugin is like example one: https://github.com/RainLoop/rainloop-webmail/tree/master/plugins/custom-admin-settings-tab
Any idea what is wrong?

In file: .//rainloop/v/<IP_ADDRESS>/app/libraries/RainLoop/Plugins/Manager.php line 674 variable $sLang gets string "en_US" or "pl_PL" and should be "en" or "pl"


completely-random tree forests

There are two types of forest in the paper, and the first is completely-random tree forests. I think the forest is show in code
crf = RandomForestClassifier(n_estimators=n_tree, max_features=None, min_samples_split=min_samples, oob_score=True, n_jobs=n_jobs) , in function window_slicing_pred_prob, if i'm right, then the parameter max_features should be 1.

Hi @sevenguin ,
Thanks for you comment. I went back to the documentation and indeed setting max_features to 1 makes the classifier a totally random decision tree see documentation. I am now confused about what the deep forest authors meant by "completely random forest".
I'll go back to the paper and make corrections if I misunderstood this part.
Thanks again for the feedback

@sevenguin ,
I have double checked the paper and the scikit documentation and you're right about the max_features. It's now corrected and updated.
Thanks for noticing!!!


added matplotlib.ticker.IndexFormatter serializer

@parhammmm Great! I think it would be best if I review the PRs on sciris/mplexporter too. The reason is that we may choose to use this instead of mpld3/mplexporter. At any rate, it's fine for now, and your changes look good.


Noob Question: Reasons to prefer CollectionView over TableView?

Sorry if opening an issue isn't the right thing to do here, wasn't sure how else to ask a question. What are the reasons to prefer UICollectionView over UITableView? It seems like you're trying to move towards UICollectionView. Is it just for the possibility of having a non-vertical-message-list layout?

thanks! i did see that inverted thing (and discussion about it in HN). thanks again for answering my question!


Add pagination for the get_resources route

Fixes #15
Pagination is implemented using Flask-SQLAlchemy's built-in paginator. The specific page is requested using a query param called page. The request looks like this:
GET api/v1/resources?page=1

The number of resources per page is included in the Config class, so we can easily change it later. I imagine that eventually we will add a CATEGORIES_PER_PAGE and LANGUAGES_PER_PAGE as well, for the GET api/v1/categories and GET api/v1/languages routes.

there's a bit of repetition when the pagenator is set up. perhaps we could make this more DRY by making the paginator a class and doing the setup in an __init__ method, then just importing the class and calling its constructor with something like paginator = Paginator("language") to tell it which config to load. or we could pass it a config dict... or even a 3.7 dataclass!

I think it's inelegant to have five lines of the same config in every endpoint with pagination.
I've been thinking a bit about how to improve on that, design-wise, and the best I can come up with is making a Paginator class that takes a 3.7 dataclass and a model, and handles the initialization.
for example:
# configs.py
from dataclasses import dataclass

@dataclass
class PaginatorConfig:
    per_page: int = 20
    max_page_size: int = 100

class Config:
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI') or alternative_db
    SQL_LITE_DEFAULT = False or (alternative_db != None)
    RESOURCE_PAGINATOR = PaginatorConfig()
    LANGUAGE_PAGINATOR = PaginatorConfig(
        per_page=40,  # we can pass in changes like this, if we want them different
    )

# in utils.py or something like that
class Paginator:
    def __init__(self, configuration, model):
        self.configuration = configuration
        self.model = model

        # request should still work, since it's a context local
        self.page = request.args.get('page', 1, type=int)
        self.page_size = request.args.get('page_size', configuration.per_page, type=int)

        if self.page_size > configuration.max_page_size:
            self.page_size = configuration.max_page_size

    @property
    def items(self):
        return self.model.query.paginate(self.page, self.page_size, False)

# in routes.py
from utils import Paginator

resource_paginator = Paginator(Config.RESOURCE_PAGINATOR, Resource)
resource_list = [resource.serialize for resource in resource_paginator.items]

This is just a suggestion, of course, but something like that would make it easy to add pagination to any number of endpoints.

Yes, I also had a bad taste in my mouth about the code repetition, but I wasn't entirely sure how to abstract it away from those methods. I'm going to play with your suggestion and see if I can get something working.

@wimo7083 Please review the changes one more time and if everything checks out, let's get this merged!
@heavysaturn Thanks for the POC code. There were a few changes that I needed to make (had to pass in the request because it turned out that it was not in scope, had to edit items slightly). Overall, you made the job much easier than if I were trying to figure out all of the syntax on my own, so thanks for that.


HTTPS to more links

Added HTTPS to sass-lang.com. While I was at it, I also added HTTPS to example.com because why not.

lovely, thanks

It looks like I'm the 1000th contributor 😊


Beefs up the railgun again

Railgun has been a shadow of itself for too long. No more!
This simply tweaks the config (and pulls out a couple magic numbers) to make it vastly more destructive again. Naturally that also makes it more laggy.
The main source of the lag is the resulting physics from bouncy loose blocks, and a few shots down into the ground will push any machine to its knees. Shooting up to decapitate hills and trees is more amusing and forgiving. The exact way blocks are chosen as targets is also highly inefficient but I'm not sure how much it impacts the performance (it may be what can freeze the game for a moment, then the physics drags down the FPS after)
Making this in part to see if anybody is interested in a little homework to add on top of this:

[ ] Consider alternative selection of blocks. Currently the action steps along the direction the player is facing and essentially sets off an explosion every few blocks. The explosion is (with this PR) made up by 512 rays cast in random directions from the origin (with lots of overlap), and if I understand it right furthermore each ray can hit up to 4 blocks along its direction. Instead maybe just destroy a central shape (3D plus sign? 27 block cube?) + a percentage of all blocks in a given range from the center (loop through block locations and destroy at 50% chance). Or do that to pop most the blocks then do a few rays that reach further.and makes it look more natural.
[ ] Consider not dropping a physics block for every destroyed block. We used to only drop a few vs. how many blocks are destroyed. If we turn down this number the physics will lag less
[ ] Alternatively scale this as more blocks drop (I like this idea) - the lower the max blocks destroyed counter gets the fewer blocks are dropped at each step (they still get destroyed but the longer the blast goes on the less "productive" it gets). This allows for glorious block showers from surgical strikes but won't fill a shaft going straight down with a huge amount of dropped blocks.
[ ] Consider varying the size of the resulting physics cubes. They used to drop at nearly full size which made them vastly more visible at range (decapitating distant hills resulted in a shower of highly visible blocks)
[ ] Consider adding more power to the physics blocks so they'll fly further if able to
[ ] Move this out of the engine already ;-)

I might turn this into a separate ticket if nobody feels like playing with it now. But c'mon! It's a railgun :D

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/31/
Hooray Jenkins reported success with all tests good!


Resolves #88

Resolves issue #88

replace fitsio usage with astropy
replace missing redmapper files at server linked in the notebook (no change to code necessary)

Flagging the issue specifically, I believe I saw something similarly locally aswell.  @jtmyles this notebook looked good to you?
https://github.com/michaelJwilson/desihigh/blob/13f423afc4ac4a0404b1b39771d75fb18523e4df/Clusters.ipynb

It looks like the notebook file in 13f423afc4ac4a0404b1b39771d75fb18523e4df had zero bytes. I've attempted to add it again. Now I see the notebook having the right size. When I clone the repository into a new directory on a new machine it looks right to me, so I believe the issues are resolved.


FIFO Problem

My received frames are always truncated of the first byte.
This is because you remove the first byte, considering it's only the packet_length stored on it in the case of VARIABLE.
In my implementation, my first byte contain not only the packet_lenght and other flags on it.

According to the specification length must be 1 byte:

Yes, but this will make API inconsistent:

LoRa and "fixed packet" mode don't expect length to be the first byte
Make inconsistent with TX. The uint8_t *data that was set in sx127x_fsk_ook_tx_set_for_transmission should be received as-is in the RX callback.

I also noticed when I used SPI speed ~8Mhz, data gets corrupted. I guess my ESP32 is not fast enough or crystal is not stable enough to generate good 8Mhz SPI signal. Some bit might flip when you send long sequence of "0" or "1". It can be solved by sending scrambled data.

The SX1276 with SPI & DMA is at 10MHz and mode 0

Then maybe this is causing such issue. I don't have oscilloscope with ~16Mhz sampling rate to check that. Even if SX1276 rated at 10Mhz, it is not clear how they got this number. Maybe they used external TXCO with ~1ppm (connected to XTA pin). I think it depends on how the chip is connected to the rest of the board. Internal sx127x crystal is 20ppm.


Network connectivity from WSL2 to a corporate IP via PPTP VPN is flaky

Windows Version
Windows 11 Pro 22H2 22621.3007 Windows Feature Experience Pack 1000.22681.1000.0
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-1
Distro Version
Ubuntu 22.04
Other Software
No response
Repro Steps

I connect to a corporate network via PPTP VPN (Windows built-in). The metric for the VPN interface is set to 5 to make sure only the corporate resources are routed through it; everything else is routed directly.
In WSL2 I am trying to access a corporate resource via SSH, SCP, GIT, etc.
I am also trying to perform the traceroute and ping from both Windows CMD and WSL2

Expected Behavior
The traceability and packet loss are the same from Windows and from WSL2
Actual Behavior
The packet loss when pinging the corporate addresses is close to 100%.
Typically, ping gets the first response, and none beyond those. Sometimes even the first response doesn't come.
Same addresses are pinged fine directly (0% loss).
DNS resolution works fine (i.e. the corporate addresses are resolved on VPN, everything else resolved externally).
Traceroute works fine from both WSL2 and Windows.
Pinging non-corporate resources (i.e. skipping the VPN) also works with 0% loss
Diagnostic Logs

Pinging the corporate address from WSL2:

sinclair@DESKTOP-8L2SM42:~$ ping gerrit.fisgroup.ru
PING sas-gerrit.fisgroup.ru (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from sas-gerrit.fisgroup.ru (<IP_ADDRESS>): icmp_seq=1 ttl=62 time=4.87 ms
^C
--- sas-gerrit.fisgroup.ru ping statistics ---
9 packets transmitted, 1 received, 88.8889% packet loss, time 8223ms
rtt min/avg/max/mdev = 4.866/4.866/4.866/0.000 ms

pinging the same address from Windows:

C:\>ping gerrit.fisgroup.ru
Pinging sas-gerrit.fisgroup.ru [<IP_ADDRESS>] with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=3ms TTL=62
Reply from <IP_ADDRESS>: bytes=32 time=4ms TTL=62
Reply from <IP_ADDRESS>: bytes=32 time=4ms TTL=62
Reply from <IP_ADDRESS>: bytes=32 time=4ms TTL=62
Ping statistics for <IP_ADDRESS>:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 4ms, Average = 3ms

pinging an external resource from WSL2:

sinclair@DESKTOP-8L2SM42:~$ ping microsoft.com
PING microsoft.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=1 ttl=104 time=184 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=2 ttl=104 time=182 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=3 ttl=104 time=181 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=4 ttl=104 time=184 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=5 ttl=104 time=181 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=6 ttl=104 time=181 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=7 ttl=104 time=181 ms
64 bytes from <IP_ADDRESS> (<IP_ADDRESS>): icmp_seq=8 ttl=104 time=181 ms
^C
--- microsoft.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7011ms
rtt min/avg/max/mdev = 180.653/181.809/184.303/1.264 ms

Tracing route to the corporate address from Windows:

Tracing route to sas-gerrit.fisgroup.ru [<IP_ADDRESS>] over a maximum of 30 hops:
1     4 ms     3 ms     3 ms  fmr-pptp.fisgroup.ru [<IP_ADDRESS>]
2     4 ms     3 ms     3 ms  is.fisgroup.ru [<IP_ADDRESS>]
3     4 ms     3 ms     3 ms  sas-gerrit.fisgroup.ru [<IP_ADDRESS>]
Trace complete.

Tracing route to the same address from WSL2 (issues twice to illustrate the random selection of the packets lost):

sinclair@DESKTOP-8L2SM42:~$ traceroute gerrit.fisgroup.ru
traceroute to gerrit.fisgroup.ru (<IP_ADDRESS>), 30 hops max, 60 byte packets
 1  fmr-pptp.fisgroup.ru (<IP_ADDRESS>)  5.927 ms * *
 2  * * *
 3  * * *
 4  sas-gerrit.fisgroup.ru (<IP_ADDRESS>)  3.810 ms * *
sinclair@DESKTOP-8L2SM42:~$ traceroute gerrit.fisgroup.ru
traceroute to gerrit.fisgroup.ru (<IP_ADDRESS>), 30 hops max, 60 byte packets
 1  fmr-pptp.fisgroup.ru (<IP_ADDRESS>)  3.708 ms * *
 2  * is.fisgroup.ru (<IP_ADDRESS>)  3.550 ms *
 3  * * *
 4  * * sas-gerrit.fisgroup.ru (<IP_ADDRESS>)  3.889 ms

Hi. Can you please collect networking logs by following the instructions below?
https://github.com/microsoft/WSL/blob/master/CONTRIBUTING.md#collect-wsl-logs-for-networking-issues

Here it is:
WslNetworkingLogs-2024-01-24_21-06-11.zip

Any ideas on the root cause or troubleshooting steps?

hello @evilguest. thanks for your patience
from the logs it looks like we are not properly mirroring all the interfaces and routes from Windows, particularly we don't seem to mirror the "FIS VPN" interface
can you please do the following to collect new logs? We need to capture "connecting to the VPN" in the logs
disconnect VPN
Run wsl --shutdown
Run .\collect-networking-logs.ps1
Start WSL
connect to the VPN
reproduce the issue
Stop logs

Hello, I apologize for the communication delay.
I've tried to collect the logs (attached), not sure if it provides enough data.
Basically, from Windows I do see my L2TP adapter via ipconfig /all:
...
PPP adapter FIS L2TP:
Connection-specific DNS Suffix  .    : No                                                                                Autoconfiguration Enabled . . . .   : Enabled
...

However, I do see no trace of that adapter from within WSL2. The only link with UP state seen from WSL2 is my WiFi adapter (exposed as eth2, based on the MAC address comparison). This happens regardless of the order of events - whether I connect to VPN first and then start WSL, or start WSL first and then connect to VPN.
WslNetworkingLogs-2024-12-19_21-23-46.zip


Feat: #133 Confirmation popup when clear all data

Summary (Please recap what you changed or fixed)

### Checklist (If you won't pass this checklist please comment why)

[x] I removed all commented or unnecessary code.
[x] Provide the screenshots due to UI changed or bug fixed
[x] My code has covered these test cases (please list down your tested cases):

hi @hoailinh1210 , please refer to mobile version for the popup's text.

After click "next", it requires user to enter password for confirmation

Hi @gaupoit , I updated text for confirmation popup

About "Confirm password" step, I will update later on another PR with common "Password popup"
Thanks

Hi @gaupoit , I updated text for confirmation popup
About "Confirm password" step, I will update later on another PR with common "Password popup"
Thanks

Sure LGTM


Download Org. chart has issue

Hello Folks!
Can anyone help me out, as I am facing issue while downloading Organization chart which has profile images coming from AWS S3 bucket?
So here is code I am using for download org. chart.
const downloadOrgChart = async () => {     try {       // setIsDownloading(true);       await chart.exportImg({         full: true,         save: false,         onLoad: (base64) => {           let link = document.createElement('a');           link.href = base64; // Append timestamp to URL           link.download = ${companyName}-organization-chart + '.png'; // Set the image name with an extension           link.click(); // Trigger the download           // setIsDownloading(false);         }       });     } catch (error) {       console.log('error: ', error);       // setIsDownloading(false);     } finally {       // setIsDownloading(false);     }   };
We have added CORS policy in aws s3 bucket. But still facing issue with profile image missing in downloaded org chart. Please refer attached screenshot.

Your help is appreciated
Thanks!

Hi, when exporting the chart, we are trying to load images as data URLs (base 64) and probably that's where problem happens.
Most probably problem happens here.
https://github.com/bumbeishvili/org-chart/blob/d9334eb2c1f9c7b0babebb5d05fa10987f2f2233/src/d3-org-chart.js#L1719-L1731
But of course I'll need interactive reproduced sample to understand what's happening

Experiencing this same issue. @sandipeq did you ever resolve it?


Gradle - problem with flutter run when we have applicationIdSuffix define in build.gradle

We are having a problem with flutter run when we have applicationIdSuffix define in build.gradle
Starting: Intent { act=android.intent.action.RUN flg=x20000000 cmp=xxx.xxx.xxx/.MainActivity (has extras) }
Error type 3
Error: Activity class {xxx.xxx.xxx/xxx.xxx.xxx.MainActivity} does not exist.

We have this message, but it works perfectly with flutter build apk.
build.gradle updated 2 days ago
Flutter Doctor
[✓] Flutter (on Mac OS, channel master)
    • Flutter at /Users/lejard_h/flutter
    • Framework revision 8b820ccc54 (2 days ago), 2017-02-20 14:27:03
    • Engine revision ab09530927
    • Tools Dart version 1.23.0-dev.0.0

[✓] Android toolchain - develop for Android devices (Android SDK 25.0.2)
    • Android SDK at /Users/lejard_h/Library/Android/sdk
    • Platform android-25, build-tools 25.0.2
    • Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

[✓] iOS toolchain - develop for iOS devices (Xcode 8.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.2.1, Build version 8C1002
    • ios-deploy 1.9.0

[✓] Android Studio (version 2.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Gradle version 2.14.1

[✓] Gradle (2.14.1)
    • gradle-dir = /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1/
    • Consider removing the gradle-dir setting to use Gradle from Android Studio.

[✓] IntelliJ IDEA Ultimate Edition (version 2016.3.4)
    • Dart plugin version 163.13137
    • Flutter plugin version 0.1.10

@jakobr-google


custom-transports.md - fixed a simple typo

support support -> support

This pull request is included in version 11.11.2
The release is available to download on GitHub release or in the MLAPI Installer.


Is there a way to support 2 Factor Authentication?

I have currently no plans to work on 2-factor authentication. I'm happy to consider pull requests if someone wants to work on this. If the addition is a big chunk of code, I may insist to create this as a separate package (Flask-User-2Factor???), with small changes to Flask-User to receive that package as a plug-in.


auto-open-devtools-for-tabs would never be added by defaultArgs

I'm reviewing the Launcher.defaultArgs function.
According to the line 240 and the line 248, it seems that devtools will always be false so --auto-open-devtools-for-tabs will never be added as an argument.
Is that the expected behavior?

That's a default value, it'll be assigned only if there's no value passed in options.
You can play with the following script to see how it works:
const pptr = require('puppeteer');
console.log(pptr.defaultArgs({
  devtools: true
}));

That's true #facepalm. Thanks!


No message when API has not changed

If I run this, it would be great to see explicit acknowledgement that there were no API changes:
$ elm package diff TheSeamau5/elm-shrink 2.2.0 2.2.1

Comparing TheSeamau5/elm-shrink 2.2.0 to 2.2.1...
This is a PATCH change.

Something like adding this at the bottom:
There are no API changes between these versions.

Should be resolved in 0.19. I am seeing the following:
$ elm diff TheSeamau5/elm-shrink 2.2.0 2.2.1
No API changes detected, so this is a PATCH change.

With some pretty colors I cannot show in this format though :)


Support for sending email batches with templates

This pull requests enables support for sending email batches using templates on the /email/batchWithTemplates API endpoint. It adds a sendEmailBatchWithTemplate method to the PostmarkClient class.
See Postmark API Docs: Send batch with templates.
Implements feature requested in #51.

Is it possible to get this reviewed and merged?


fix static keybindings

fix that the keybindings in input.conf does not work if the options of static keybindings is empty.

In fact, in my test, the specified keybindings usage of add_key_binding in this commit https://github.com/jonniek/mpv-playlistmanager/commit/29e40b6c27b8840f97fcb4989ae15670c2bb8141 does not work at all.
I will add a new commit to fix it.

I am not satisfied with the current commit, because it allows the options of static keybindings to override the keybindings in the input.conf.
I think it is better to revert ths commit of https://github.com/jonniek/mpv-playlistmanager/commit/29e40b6c27b8840f97fcb4989ae15670c2bb8141.

Could you make some steps to reproduce like:

use dynamic_binds=no
use --no-input-default-bindings
expected behavior
actual behavior

I haven't seen --no-input-default-bindings before. Looks pretty interesting. I suppose the usecase is for input.conf to contain all weak bindings explicitly.
I noticed one issue with checking for nil but not empty string and made a commit for that. But it sounds unrelated to your issue since it's about no keybindings rather than multiple ones.

I noticed one issue while testing with checking for nil but not empty string and made a commit for that. But it sounds unrelated to your issue since it's about no keybindings rather than multiple ones.

fix that the keybindings in input.conf does not work if the options of static keybindings is empty.

This is exactly what this pr will do at first.

I haven't seen --no-input-default-bindings before. Looks pretty interesting. I suppose the usecase is for input.conf to contain all weak bindings explicitly. I don't think it's correct behavior for a script to always use forced binds, since it would make the --no-input-default-bindings meaningless.

You're right, the --no-input-default-bindings is use  for input.conf to contain all weak bindings explicitly. Someone don't like messy management for keybindings.
The options of static keybindings will disable when use --no-input-default-bindings. So I modified pr to avoid it.
But I also don't like the implementation of forced binds. so I suggested revert this commit of https://github.com/jonniek/mpv-playlistmanager/commit/29e40b6c27b8840f97fcb4989ae15670c2bb8141 because it is not meaningful to implement binding multiple keys for static keybinds.

I am not satisfied with the current commit, because it allows the options of static keybindings to override the keybindings in the input.conf.
I think it is better to revert this commit of https://github.com/jonniek/mpv-playlistmanager/commit/29e40b6c27b8840f97fcb4989ae15670c2bb8141. @jonniek What do you think?

The options of static keybindings will disable when use --no-input-default-bindings. This was expected before the implementation of binding multiple keys to static keybinds. Now it breaks this new function, so I modified pr to avoid it.

For me it still works as expected, but maybe we are talking about different things when we say static keybinds.
Could you make the steps to reproduce, it would clarify a lot.

For me it still works as expected(with the new master), but maybe we are talking about different things when we say static keybinds. Could you make the steps to reproduce, it would clarify a lot.

set --no-input-default-bindings in mpv.conf
set F7 script-binding playlistmanager/showplaylist in input.conf
set key_showplaylist=n alt+s in playlistmanager.conf

expected behavior since https://github.com/jonniek/mpv-playlistmanager/commit/29e40b6c27b8840f97fcb4989ae15670c2bb8141 should be to apply binding multiple keys to static keybinds.
actual behavior is only apply the keybindings in input.conf.
The actual behavior meets the expectations of --no-input-default-bindings, but is not what the script of playlistmanager wants.

I think that is the expected behavior.
I think the input.conf should take priority.
But I see one issue, how to define two keybindings in input.conf.
If you have key_showplaylist=n alt+s then it binds two weak keybinds showplaylist and showplaylist2.
So input.conf like this should work
n script-binding playlistmanager/showplaylist
alt+s script-binding playlistmanager/showplaylist2

The downside is that you need to define two keybinds in the playlistmanager that will not be used, although you can define the same two n alt+s like in your example.
I think the README could use some more detailed explanation on keybinds.

I think that is the expected behavior.

That's good, because I also like this behavior.
I still don't like applying multiple keys to static binds. so I'm not positive about the modified pr.
Since what pr want to do at first has been implemented by the commit of https://github.com/jonniek/mpv-playlistmanager/commit/26d743b34a68a6a9cb8e5449140a1d4cd2ff4d45, I decide to close it.

It is optional though. If you wish you can define all keybindings as empty strings, and then do all the bindings from input.conf.
Thanks for making the PR though. I actually thought something had changed with keybinds in mpv but it was actually a bug in this script :+1:

It is optional though. If you wish you can define all keybindings as empty strings, and then do all the bindings from input.conf.

Yes, that's what I actually do.

Oh actually the above doesn't work for dynamic keys, only the static ones.


support clang with openmp in vsts-ci test

BTW, if a user want to use the binaries built by us, with clang with openmp, what dependency is needed for the user?
only brew install libomp ?

@guolinke

only brew install libomp ?

I believe in this.
What do you think about this idea? https://github.com/Microsoft/LightGBM/issues/1523#issuecomment-405010860
If you want to change the library in wheel at PyPI, I think it'll be very painful for users. I mean, everyone already know that they need the latest gcc to run LightGBM. Changing the easiest (and most common, I believe) way to install LightGBM from brew install gcc to brew install libomp will produce a lot of issues here. For instance, remember the case when we  switched compiling the library for PyPI from gcc-7 to gcc-8.
BTW, what ring LightGBM is? https://github.com/MicrosoftDocs/vsts-docs/issues/610#issuecomment-415412630
Does VSTS PR check available for us?

can we add some log or warnings when user install wheel?

@guolinke Seems to be that no...
https://github.com/pypa/pip/issues/2933#issuecomment-290407667

@StrikerRUS It seems install libopm is much easier than gcc.
Moreover, users doesn't need to install the specific version of gcc.
So I prefer to change to clang in osx.
Maybe we can have a detailed release note from now, and tell user what changes since last release.

@guolinke

It seems install libopm is much easier than gcc.

That's for sure!

So I prefer to change to clang in osx.

Me too. But I want find the way to make this change less painful for users.
I'm worrying about that a lot of users used to install gcc and then install LightGBM. After changing to Apple Clang all of them will start to post issues, because they even don't know where to read about recent changes, except digging into commits history. In addition, all other internet resources (StackOverflow, Kaggle, personal blogs, etc) will suggest them installation with gcc 😢

@StrikerRUS maybe one temporal solution is giving some warnings in python-package when import LightGBM, if detecting the host os is macOS ?

@guolinke Yeah, good idea!


chore(master): release 0.8.12

:robot: I have created a release beep boop
0.8.12 (2024-10-21)
🚀 Features

add warmup minimum execution time option (7718d34)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

0.8.12
:sunflower:


68HC05: Fix #7064 - incorrect handling of X-indexed JMP and JSR

Fix for https://github.com/NationalSecurityAgency/ghidra/issues/7064 (incorrect handling of X-indexed JMP and JSR)

Format / Master
maybe back to "[ADDRI]" ?

How do you expect changing the code back to the broken code, to fix the bug?

This doesn't fix the issue for the HC05/HC08/HCS08. The issue is that the subconstructor is exporting an address, so the goto [ADDRI]; tries to de-reference the address, whereas goto ADDRI tries to go to the unique varnode U500:1. The solution is to change the subconstructor to export the value, rather than the address. But the subconstructors oprx8_8_X, oprx16_8_X, and comma_X are also used in OP1 which should export the address.
So this is what I came up with, and it seems to work well, leaving the brackets in ADDRI. I imagine the same changes would be needed for the 6805:
@if defined(HC05)
oprx8_8_X:		imm8,X   is imm8 & X   { address:2 = zext(X) + imm8;   export  address; }
oprx16_8_X:		imm16,X  is imm16 & X  { address:2 = zext(X) + imm16;  export  address; }
comma_X:		","X     is X		   { address:2 = zext(X);          export  address; }
@endif

@if defined(HCS08) || defined(HC08)
oprx8_8_X:		imm8,X   is imm8 & X   { address:2 = HIX + imm8;       export address; }
oprx16_8_X:		imm16,X  is imm16 & X  { address:2 = HIX + imm16;      export address; }
comma_X:		","X     is X		   { address:2 = HIX;              export address; }
@endif

and
OP1: iopr8i		is op4_6=2; iopr8i       { export iopr8i; }
OP1: opr8a_8	is op4_6=3; opr8a_8      { export opr8a_8; }
OP1: opr16a_8	is op4_6=4; opr16a_8     { export opr16a_8; }
OP1: oprx16_8_X	is op4_6=5; oprx16_8_X   { export *:1 oprx16_8_X; }
OP1: oprx8_8_X	is op4_6=6; oprx8_8_X    { export *:1 oprx8_8_X; }
OP1: comma_X	is op4_6=7 & comma_X     { export *:1 comma_X; }

This doesn't fix the issue for the HC05/HC08/HCS08. The issue is that the subconstructor is exporting an address, so the goto [ADDRI]; tries to de-reference the address, whereas goto ADDRI tries to go to the unique varnode U500:1. The solution is to change the subconstructor to export the value, rather than the address. But the subconstructors oprx8_8_X, oprx16_8_X, and comma_X are also used in OP1 which should export the address.
So this is what I came up with, and it seems to work well, leaving the brackets in ADDRI. I imagine the same changes would be needed for the 6805:
@if defined(HC05)
oprx8_8_X:		imm8,X   is imm8 & X   { address:2 = zext(X) + imm8;   export  address; }
oprx16_8_X:		imm16,X  is imm16 & X  { address:2 = zext(X) + imm16;  export  address; }
comma_X:		","X     is X		   { address:2 = zext(X);          export  address; }
@endif

@if defined(HCS08) || defined(HC08)
oprx8_8_X:		imm8,X   is imm8 & X   { address:2 = HIX + imm8;       export address; }
oprx16_8_X:		imm16,X  is imm16 & X  { address:2 = HIX + imm16;      export address; }
comma_X:		","X     is X		   { address:2 = HIX;              export address; }
@endif

and
OP1: iopr8i		is op4_6=2; iopr8i       { export iopr8i; }
OP1: opr8a_8	is op4_6=3; opr8a_8      { export opr8a_8; }
OP1: opr16a_8	is op4_6=4; opr16a_8     { export opr16a_8; }
OP1: oprx16_8_X	is op4_6=5; oprx16_8_X   { export *:1 oprx16_8_X; }
OP1: oprx8_8_X	is op4_6=6; oprx8_8_X    { export *:1 oprx8_8_X; }
OP1: comma_X	is op4_6=7 & comma_X     { export *:1 comma_X; }

Yep. I think this is the correct fix - it seems to work for me too, so I've pulled it into my branch.
I've applied the same fix to the 6805 SLASPEC too -- this also had a bug where the non-offset indexed syntax would be incorrect -- it would show as LDA X instead of LDA ,X.


Compatibility with iOS6

I received many exception reports. The cause is the following:
Podspec informs that the minimum iOS version supported is 6.0 but line 420 contains a call to method [UIImage imageWithRenderingMode:] that is only available in iOS7 or later.

In my case I still support iOS6 and I only found the problem because I received 160 exception reports but I see your point. I can patch the code in order to make it work (at least it will work for me), but other developers may want to know that it does not work with iOS6 since the documentation say it works.

A simple solution, replacing the existing if:
        // Configure Image
        if (image) {

if ([imaged respondsToSelector:@selector(imageWithRenderingMode:)]) {
tabItem.image = [imaged imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];// crash for ios6, not in ios 7
} else {
// iOS 6 fallback: insert code to convert imaged if needed
tabItem.image = imaged;
}
view.imageView.image = [image imageWithRenderingMode:renderingMode];
view.imageView.tintColor = imageTintColor;
}

Done! Hope I did right.