Unable to setup correct permissions for writable dirs.

Q
A

Issue Type
Bug

Deployer Version
4.3

Local Machine OS
Windows (Running on Ubuntu 16 Laravel Homestead)

Remote Machine OS
Ubuntu 14.04 Linux

Description
If you're reporting a bug, please include following information
Steps to reproduce
dep deploy -vvv
Remote system is running on root so sudo shouldn't be a problem.
Content of deploy.php
<?php
namespace Deployer;
require 'recipe/laravel.php';

// Configuration
set('ssh_type', 'native');
set('ssh_multiplexing', true);

set('repository', 'git@bitbucket.org:oliverkucharzewski/----api-server.git');

add('shared_files', []);
add('shared_dirs', []);

add('writable_dirs', []);

// Servers

server('production', 'manage.-.com')
    ->user('root')
    ->identityFile()
    ->set('deploy_path', '/var/www/api_server')
    ->pty(false);

// Tasks

desc('Restart PHP-FPM service');
task('php-fpm:restart', function () {
    // The user must have rights for restart service
    // /etc/sudoers: username ALL=NOPASSWD:/bin/systemctl restart php-fpm.service
    run('sudo systemctl restart php-fpm.service');
});
after('deploy:symlink', 'php-fpm:restart');

// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');

// Migrate database before symlink new release.

before('deploy:symlink', 'artisan:migrate');

Output log
With enabled option for verbose output -vvv.
vagrant@homestead:/Code/api_server$ dep deploy -vvv
âž¤ Executing task deploy:prepare
[production] > echo $0
SSH multiplexing initialization
Enter passphrase for key '/home/vagrant/.ssh/id_rsa':
[production] < bash
[production] > if [ ! -d /var/www/api_server ]; then mkdir -p /var/www/api_server; fi
[production] > if [ ! -L /var/www/api_server/current ] && [ -d /var/www/api_server/current ]; then echo true; fi
[production] > cd /var/www/api_server && if [ ! -d .dep ]; then mkdir .dep; fi
[production] > cd /var/www/api_server && if [ ! -d releases ]; then mkdir releases; fi
[production] > cd /var/www/api_server && if [ ! -d shared ]; then mkdir shared; fi
â€¢ done on [production]
âœ” Ok [13s 225ms]
âž¤ Executing task deploy:lock
[production] > if [ -f /var/www/api_server/.dep/deploy.lock ]; then echo 'true'; fi
[production] > touch /var/www/api_server/.dep/deploy.lock
â€¢ done on [production]
âœ” Ok [893ms]
âž¤ Executing task deploy:release
[production] > cd /var/www/api_server && (if [ -h release ]; then echo 'true'; fi)
[production] < true
[production] > cd /var/www/api_server && (rm -rf "$(readlink release)")
[production] > cd /var/www/api_server && (rm release)
[production] > cd /var/www/api_server && ([ -d releases ] && [ "$(ls -A releases)" ] && echo "true" || echo "false")
[production] < false
[production] > cd /var/www/api_server && (if [ -d /var/www/api_server/releases/1 ]; then echo 'true'; fi)
[production] > cd /var/www/api_server && (date +"%Y%m%d%H%M%S")
[production] <<PHONE_NUMBER>2529
[production] > cd /var/www/api_server && (echo '20170320142529,1' >> .dep/releases)
[production] > cd /var/www/api_server && (mkdir /var/www/api_server/releases/1)
[production] > cd /var/www/api_server && (if [[ "$(man ln)" =~ "--relative" ]]; then echo "true"; fi)
[production] < true
[production] > cd /var/www/api_server && (ln -nfs --relative /var/www/api_server/releases/1 /var/www/api_server/release)
â€¢ done on [production]
âœ” Ok [4s 576ms]
âž¤ Executing task deploy:update_code
[production] > which git
[production] < /usr/bin/git
[production] > /usr/bin/git version
[production] < git version 2.11.0
[production] > if [ -h /var/www/api_server/release ]; then echo 'true'; fi
[production] < true
[production] > readlink /var/www/api_server/release
[production] < releases/1
[production] > /usr/bin/git clone   --recursive -q git@bitbucket.org:oliverkucharzewski/--api-server.git /var/www/api_server/releases/1 2>&1
â€¢ done on [production]
âœ” Ok [7s 971ms]
âž¤ Executing task deploy:shared
[production] > if [ -d /var/www/api_server/shared/storage ]; then echo 'true'; fi
[production] < true
[production] > rm -rf /var/www/api_server/releases/1/storage
[production] > mkdir -p dirname /var/www/api_server/releases/1/storage
[production] > ln -nfs --relative /var/www/api_server/shared/storage /var/www/api_server/releases/1/storage
[production] > if [ -f $(echo /var/www/api_server/releases/1/.env) ]; then rm -rf /var/www/api_server/releases/1/.env; fi
[production] > if [ ! -d $(echo /var/www/api_server/releases/1/.) ]; then mkdir -p /var/www/api_server/releases/1/.;fi
[production] > mkdir -p /var/www/api_server/shared/.
[production] > touch /var/www/api_server/shared/.env
[production] > ln -nfs --relative /var/www/api_server/shared/.env /var/www/api_server/releases/1/.env
â€¢ done on [production]
âœ” Ok [4s 4ms]
âž¤ Executing task deploy:vendors
[production] > if hash composer 2>/dev/null; then echo 'true'; fi
[production] < true
[production] > which composer
[production] < /usr/local/bin/composer
[production] > which php
[production] < /usr/bin/php
[production] > cd /var/www/api_server/releases/1 &&  /usr/bin/php /usr/local/bin/composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader
[production] < Generating optimized class loader
[production] < The compiled class file has been removed.
â€¢ done on [production]
âœ” Ok [6s 878ms]
âž¤ Executing task deploy:writable
[production] > ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1
[production] < www-data
[production] > cd /var/www/api_server/releases/1 && (mkdir -p bootstrap/cache storage storage/app storage/app/public storage/framework storage/framework/cache storage/framework/sessions storage/framework/views storage/logs storage)
[production] > cd /var/www/api_server/releases/1 && (chmod 2>&1; true)
[production] < chmod: missing operand
[production] < Try 'chmod --help' for more information.
[production] > cd /var/www/api_server/releases/1 && (if hash setfacl 2>/dev/null; then echo 'true'; fi)
Unable to setup correct permissions for writable dirs.
You need to configure sudo's sudoers files to not prompt for password,
or setup correct permissions manually.
âž¤ Executing task deploy:failed
â€¢ done on [production]
âœ” Ok [0ms]
âž¤ Executing task deploy:unlock
[production] > rm -f /var/www/api_server/.dep/deploy.lock
â€¢ done on [production]
âœ” Ok [453ms]
[RuntimeException]
Cant't set writable dirs with ACL.
Exception trace:
() at phar:///usr/local/bin/dep/recipe/deploy/writable.php:83
Deployer{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/dep/src/Task/Task.php:85
Deployer\Task\Task->run() at phar:///usr/local/bin/dep/src/Executor/SeriesExecutor.php:40
Deployer\Executor\SeriesExecutor->run() at phar:///usr/local/bin/dep/src/Console/TaskCommand.php:103
Deployer\Console\TaskCommand->execute() at phar:///usr/local/bin/dep/vendor/symfony/console/Command/Command.php:262
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:826
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/dep/src/Console/Application.php:123
Deployer\Console\Application->doRunCommand() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:189
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:120
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/dep/src/Deployer.php:190
Deployer\Deployer->run() at phar:///usr/local/bin/dep/bin/dep:119
require() at /usr/local/bin/dep:4
deploy [-p|--parallel] [--no-hooks]

Try run each command on server by your self:
cd /var/www/api_server/releases/1 && (chmod 2>&1; true)
cd /var/www/api_server/releases/1 && (if hash setfacl 2>/dev/null; then echo 'true'; fi)

Hi Anton, On line one i get the following:
chmod: missing operand
Try 'chmod --help' for more information.

Thats okay. What on second one?

No output. Thanks :)

Everything works then?

Not quite! Only that line of code works as requested
--- Original Message ---
From: "Anton Medvedev"<EMAIL_ADDRESS>Sent: 21 March 2017 6:10 pm
To: "deployphp/deployer"<EMAIL_ADDRESS>Cc: "oliverkuchies"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Subject: Re: [deployphp/deployer] Unable to setup correct permissions for writable dirs. (#1118)
Everything works then?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/deployphp/deployer/issues/1118#issuecomment-287994356, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AKkiBLW2Dz6Mjkg8zA4VUfD4jsWX9NuWks5rn3eygaJpZM4MiEYx.

You need to configure sudo's sudoers files to not prompt for password,
or setup correct permissions manually.

I have the same problem.
I have configured sudoers file to not prompt for password.
I think this is still an open problem.

What problem?

I have the same problem.
Do you mind explaining what this line means
(if hash setfacl 2>/dev/null; then echo 'true'; fi)

(if hash setfacl 2>/dev/null; then echo 'true'; fi) - checks if acl installed. Try this: sudo apt-get install acl

Great. I found out that my ACL wasn't installed. Yes by running it solved my issue. Thank you.

in my case i have right config but not acl in ubuntu server
sudo apt-get install acl

Hi every One,
If you have deploy first one with some problem (bad permission on storage, or package missed, or other, .....), solve all problem, but delete current realese in deployment before restart deploy.
Hope this help you....

In my case, a shared hosting without access to apt-get, I just had to change writable_mode to use chmod instead of the default acl.
->set('writable_mode', 'chmod')

@antonmedv Is it possible to check if acl is installed and show a more helpful error message if not? If that’s not possible, I’d still suggest adjusting the error message slightly to:

Can't set writable dirs with ACL, is ACL definitely installed?

The current error messages don’t suggest that the problem may be a missing dependency

Yes, this will be cool.
Actually I’m thinking about rewriting permissions system to something more reliable.

It looks to me like the chmod command is incomplete. I am having the same problem
cd /var/www/api_server/releases/1 && (chmod 2>&1; true) will return 'missing operand' because chmod requires more arguments.


Added a Ruby program to convert Fahrenheit to Kelvin

Closes #7379
Closes #5615

📑 Description
Added a Ruby program to convert fahrenheit to Kelvin

🤖 Generated by Copilot at 6f87a02
Summary
🌡🔄🚀

Added a Ruby program to convert Fahrenheit to Kelvin. The program takes user input and uses the file program/convert-fahrenheit-to-kelvin/ConvertFahrenheitToKelvin.rb to perform the conversion and output.

Fahrenheit input
Convert to Kelvin and print
Winter is coming

Walkthrough

Implement the main functionality of the program (link)

@anandfresh Issue ID - #7379

@champati-v can you please add the #issue id to this PR

Thank you so much for the approval !! Looking forward to contribute more.


Use 'void' for the contextual type of an unused expression

This Draft PR primarily is intended to investigate the consequence of contextually typing unused expressions to void.

@typescript-bot run dt
@typescript-bot test this
@typescript-bot user test this

From what I can see, using void as the contextual type of any unused expression seems to be a major breaking change.

The most recent commit demonstrates only contextually typing unused await to void.

@typescript-bot run dt
@typescript-bot test this
@typescript-bot user test this

@typescript-bot user test this

From the user tests:
chrome-devtools-frontend:
node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(77,9): error TS2322: Type '(value?: void | PromiseLike<void>) => void' is not assignable to type '(this: FileReader, ev: ProgressEvent<FileReader>) => any'.
  Types of parameters 'value' and 'ev' are incompatible.
    Type 'ProgressEvent<FileReader>' is not assignable to type 'void | PromiseLike<void>'.
      Property 'then' is missing in type 'ProgressEvent<FileReader>' but required in type 'PromiseLike<void>'.

Due to the fact the contextual type is void instead of unknown, this no longer becomes assignable to the onloadend handler of a FileReader. Addressing this would require either a cast of the promise or changing the code to reader.onloadend = () => resolve();
node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1995,65): error TS2345: Argument of type '(value?: void | PromiseLike<void>) => void' is not assignable to parameter of type '(arg0: Event) => any'.
  Types of parameters 'value' and 'arg0' are incompatible.
    Type 'Event' is not assignable to type 'void | PromiseLike<void>'.
      Property 'then' is missing in type 'Event' but required in type 'PromiseLike<void>'.

In this case, the resolve callback is no longer assignable to the click handler. Addressing this would require casting the promise.
puppeteer
src/node/BrowserFetcher.ts(335,64): error TS2345: Argument of type '(value?: void | PromiseLike<void>) => void' is not assignable to parameter of type '(error: Error) => void'.
  Types of parameters 'value' and 'error' are incompatible.
    Type 'Error' is not assignable to type 'void | PromiseLike<void>'.
      Property 'then' is missing in type 'Error' but required in type 'PromiseLike<void>'.

This is another case of resolve no longer being assignable to an existing callback.

At present this does not seem to be a tenable solution. From the user tests, there are several errors where contextually typing to void resulted in breaks in both JS and TS code, as void is too precise. As this was a change intended to reduce breaks caused by #39817, at this time it does not seem to be a viable solution.


Use sundials from artifacts.

Retry of #225

Do we have appveyor here? I suspect @ChrisRackauckas saw failures on windows, so good to check those.

The AppVeyor on my account is just 22 days behind.

Should we buy more workers?

So the current status here is that  things seem to be ok on mac and windows. We are disabling the jacobian tests that use KLU, and the mass matrix tests are failing on windows. Beyond this, further debugging perhaps requires diving into the inner workings of the package and Sundials itself, which I won't be able to do.
Cc @jd-lara

Locally the dense Jacobian tests are failing on two Windows computer too though, which causes failures in the benchmark runs as well. I don't think I would be comfortable moving over to the new binaries without that getting sorted out. There seems to be some corruption in the matrices directly acting on them from Julia.

I am happy to take a look and help after the Christmas holiday.

@jd-lara We have the artifact building for Sundials 3.1 in fairly good shape. The BLAS/LAPACK linking is strange, but I suspect that the best course of action would be to go to Sundials 5. My understanding from @ChrisRackauckas is that there are API changes.

Yes, the actually just released (yesterday) Sundials 5.1 with fixes to Blas and Lapack. I am planing on working on the updates to the newer version next week.

There's a new sundials 3.1.1 in BB which should be the one to use here. Perhaps tag one release with artifacts - but the same tests continue to fail.
sundials 5 is also available in BB now, and hopefully this package can be updated to use it. cc @jd-lara

Is it just the sparse matrix tests that fail? Something there seems to have gotten corrupted in the change to Julia 1.0, and it looks to be the case on current master as well, so we can just mark that as broken. If anything else is now failing, that'a concern.

You may also want to delete deps/build.jl in this PR

It was what used to fail before. Would be nice if someone can figure out what happened.

I will rerun clang for Sundials 5 and work on the update to 5 after Wednesday this week.

Awesome, sounds great! I'll investigate this today then and see if I can make sure the artifacts version is all good to merge, and that should make upgrading to Sundials 5 smoother. We should make a note to test the sparse examples from https://docs.juliadiffeq.org/latest/tutorials/advanced_ode_example/ and re-run benchmarks of https://github.com/JuliaDiffEq/DiffEqBase.jl/pull/434#issuecomment-583886452 to see the relationship to the pure-Julia methods with MKLPardiso once all is said and done.

Testing locally on Windows, and something seems amiss:
ERROR: LoadError: LoadError: InitError: could not load library "C:\Users\accou\.julia\artifacts\e177c77afc4dbd274277508bd5d069731bbe517e\bin\libspqr.dll"
The specified procedure could not be found.

Stacktrace:
 [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Libdl\src\Libdl.jl:109
 [2] dlopen at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Libdl\src\Libdl.jl:109 [inlined] (repeats 2 times)
 [3] __init__() at C:\Users\accou\.julia\packages\SuiteSparse_jll\EMthE\src\wrappers\x86_64-w64-mingw32.jl:226
 [4] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:692
 [5] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:776
 [6] _require(::Base.PkgId) at .\loading.jl:1001
 [7] require(::Base.PkgId) at .\loading.jl:922
 [8] require(::Module, ::Symbol) at .\loading.jl:917
 [9] include at .\boot.jl:328 [inlined]
 [10] include_relative(::Module, ::String) at .\loading.jl:1105
 [11] include at .\Base.jl:31 [inlined]
 [12] include(::String) at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:1
 [13] top-level scope at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:47
 [14] include at .\boot.jl:328 [inlined]
 [15] include_relative(::Module, ::String) at .\loading.jl:1105
 [16] include(::Module, ::String) at .\Base.jl:31
 [17] top-level scope at none:2
 [18] eval at .\boot.jl:330 [inlined]
 [19] eval(::Expr) at .\client.jl:425
 [20] top-level scope at .\none:3
during initialization of module SuiteSparse_jll
in expression starting at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\wrappers\x86_64-w64-mingw32.jl:5
in expression starting at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:43
ERROR: LoadError: Failed to precompile Sundials_jll [fb77eaff-e24c-56d4-86b1-d163f2edb164] to C:\Users\accou\.julia\compiled\v1.3\Sundials_jll\qJp4o_CMHVV.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1283
 [3] _require(::Base.PkgId) at .\loading.jl:1024
 [4] require(::Base.PkgId) at .\loading.jl:922
 [5] require(::Module, ::Symbol) at .\loading.jl:917
 [6] include at .\boot.jl:328 [inlined]
 [7] include_relative(::Module, ::String) at .\loading.jl:1105
 [8] include(::Module, ::String) at .\Base.jl:31
 [9] top-level scope at none:2
 [10] eval at .\boot.jl:330 [inlined]
 [11] eval(::Expr) at .\client.jl:425
 [12] top-level scope at .\none:3
in expression starting at C:\Users\accou\.julia\dev\Sundials\src\Sundials.jl:25
ERROR: LoadError: Failed to precompile Sundials [c3572dad-4567-51f8-b174-8c6c989267f4] to C:\Users\accou\.julia\compiled\v1.3\Sundials\j8Ppj_CMHVV.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1283
 [3] _require(::Base.PkgId) at .\loading.jl:1024
 [4] require(::Base.PkgId) at .\loading.jl:922
 [5] require(::Module, ::Symbol) at .\loading.jl:917
 [6] include at .\boot.jl:328 [inlined]
 [7] include_relative(::Module, ::String) at .\loading.jl:1105
 [8] include(::Module, ::String) at .\Base.jl:31
 [9] include(::String) at .\client.jl:424
 [10] top-level scope at none:6
in expression starting at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:1
ERROR: Package Sundials errored during testing

That library seems to exist where it says it would though.

It's suitesparse that is failing to load

@ChrisRackauckas on Windows could you please try https://github.com/giordano/SuiteSparse_jll.jl#master?

Same error:
(v1.3) pkg> test Sundials
   Testing Sundials
 Resolving package versions...

Stacktrace:
 [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Libdl\src\Libdl.jl:109
 [2] dlopen at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Libdl\src\Libdl.jl:109 [inlined] (repeats 2 times)
 [3] __init__() at C:\Users\accou\.julia\packages\SuiteSparse_jll\EMthE\src\wrappers\x86_64-w64-mingw32.jl:226
 [4] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:692
 [5] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:776
 [6] _require(::Base.PkgId) at .\loading.jl:1001
 [7] require(::Base.PkgId) at .\loading.jl:922
 [8] require(::Module, ::Symbol) at .\loading.jl:917
 [9] include at .\boot.jl:328 [inlined]
 [10] include_relative(::Module, ::String) at .\loading.jl:1105
 [11] include at .\Base.jl:31 [inlined]
 [12] include(::String) at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:1
 [13] top-level scope at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:47
 [14] include at .\boot.jl:328 [inlined]
 [15] include_relative(::Module, ::String) at .\loading.jl:1105
 [16] include(::Module, ::String) at .\Base.jl:31
 [17] top-level scope at none:2
 [18] eval at .\boot.jl:330 [inlined]
 [19] eval(::Expr) at .\client.jl:425
 [20] top-level scope at .\none:3
during initialization of module SuiteSparse_jll
in expression starting at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\wrappers\x86_64-w64-mingw32.jl:5
in expression starting at C:\Users\accou\.julia\packages\Sundials_jll\4vdeZ\src\Sundials_jll.jl:43
ERROR: LoadError: Failed to precompile Sundials_jll [fb77eaff-e24c-56d4-86b1-d163f2edb164] to C:\Users\accou\.julia\compiled\v1.3\Sundials_jll\qJp4o_GaG8u.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1283
 [3] _require(::Base.PkgId) at .\loading.jl:1024
 [4] require(::Base.PkgId) at .\loading.jl:922
 [5] require(::Module, ::Symbol) at .\loading.jl:917
 [6] include at .\boot.jl:328 [inlined]
 [7] include_relative(::Module, ::String) at .\loading.jl:1105
 [8] include(::Module, ::String) at .\Base.jl:31
 [9] top-level scope at none:2
 [10] eval at .\boot.jl:330 [inlined]
 [11] eval(::Expr) at .\client.jl:425
 [12] top-level scope at .\none:3
in expression starting at C:\Users\accou\.julia\dev\Sundials\src\Sundials.jl:25
ERROR: LoadError: Failed to precompile Sundials [c3572dad-4567-51f8-b174-8c6c989267f4] to C:\Users\accou\.julia\compiled\v1.3\Sundials\j8Ppj_GaG8u.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1283
 [3] _require(::Base.PkgId) at .\loading.jl:1024
 [4] require(::Base.PkgId) at .\loading.jl:922
 [5] require(::Module, ::Symbol) at .\loading.jl:917
 [6] include at .\boot.jl:328 [inlined]
 [7] include_relative(::Module, ::String) at .\loading.jl:1105
 [8] include(::Module, ::String) at .\Base.jl:31
 [9] include(::String) at .\client.jl:424
 [10] top-level scope at none:6
in expression starting at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:1
ERROR: Package Sundials errored during testing

SuiteSparse tests pass though.

  [bea87d4a] SuiteSparse_jll v5.4.0+4 #master (https://github.com/JuliaBinaryWrappers/SuiteSparse_jll.jl.git)

That's not my repo

Close!
(v1.3) pkg> test Sundials
   Testing Sundials
 Resolving package versions...

[IDAS ERROR]  IDASolve
  At t = 0.0317944 and h = 3.07674e-019, the corrector convergence failed repeatedly or with |h| = hmin.

With consistent initial conditions:
With inconsistent initial conditions:
Jacobians: Error During Test at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:29
  Got exception outside of a @test
  LoadError: ArgumentError: invalid Array dimensions
  Stacktrace:
   [1] convert at .\pointer.jl:84 [inlined]
   [2] cvodejac(::Float64, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_SUNMatrix}, ::Sundials.FunJac{ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,typeof(Lotka_jac),DiffEqBase.NullParameters,Nothing,Nothing,Array{Float64,1},Nothing,Nothing,Nothing}, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_N_Vector}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\function_types.jl:53
   [3] __CVode at C:\Users\accou\.julia\dev\Sundials\src\wrapped_api\cvodes.jl:312 [inlined]
   [4] CVode(::Sundials.Handle{Sundials.CVODEMem}, ::Float64, ::Array{Float64,1}, ::Array{Float64,1}, ::Int32) at C:\Users\accou\.julia\dev\Sundials\src\wrapped_api\cvodes.jl:317
   [5] solver_step(::Sundials.CVODEIntegrator{Array{Float64,1},DiffEqBase.NullParameters,Sundials.Handle{Sundials.CVODEMem},ODESolution{Float64,2,Array{Array{Float64,1},1},Nothing,Nothing,Array{Float64,1},Nothing,ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},CVODE_BDF{:Newton,:Dense,Nothing,Nothing},DiffEqBase.HermiteInterpolation{Array{Float64,1},Array{Array{Float64,1},1},Array{Array{Float64,1},1}},DiffEqBase.DEStats},CVODE_BDF{:Newton,:Dense,Nothing,Nothing},ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Sundials.FunJac{ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,typeof(Lotka_jac),DiffEqBase.NullParameters,Nothing,Nothing,Array{Float64,1},Nothing,Nothing,Nothing},Ptr{Nothing},Sundials.DEOptions{DataStructures.BinaryHeap{Float64,DataStructures.LessThan},DataStructures.BinaryHeap{Float64,DataStructures.LessThan},CallbackSet{Tuple{},Tuple{}},Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE)},Array{Float64,1},Tuple{Int64},Array{Float64,1},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Nothing}, ::Float64) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:1091
   [6] solve!(::Sundials.CVODEIntegrator{Array{Float64,1},DiffEqBase.NullParameters,Sundials.Handle{Sundials.CVODEMem},ODESolution{Float64,2,Array{Array{Float64,1},1},Nothing,Nothing,Array{Float64,1},Nothing,ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},CVODE_BDF{:Newton,:Dense,Nothing,Nothing},DiffEqBase.HermiteInterpolation{Array{Float64,1},Array{Array{Float64,1},1},Array{Array{Float64,1},1}},DiffEqBase.DEStats},CVODE_BDF{:Newton,:Dense,Nothing,Nothing},ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Sundials.FunJac{ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,typeof(Lotka_jac),DiffEqBase.NullParameters,Nothing,Nothing,Array{Float64,1},Nothing,Nothing,Nothing},Ptr{Nothing},Sundials.DEOptions{DataStructures.BinaryHeap{Float64,DataStructures.LessThan},DataStructures.BinaryHeap{Float64,DataStructures.LessThan},CallbackSet{Tuple{},Tuple{}},Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE)},Array{Float64,1},Tuple{Int64},Array{Float64,1},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Nothing}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:1145
   [7] #__solve#22(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.__solve), ::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::CVODE_BDF{:Newton,:Dense,Nothing,Nothing}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:12
   [8] __solve at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:10 [inlined] (repeats 5 times)
   [9] #solve_call#442(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(DiffEqBase.solve_call), ::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::CVODE_BDF{:Newton,:Dense,Nothing,Nothing}) at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:40
   [10] solve_call at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:37 [inlined]
   [11] #solve#443 at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:57 [inlined]
   [12] solve(::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,typeof(Lotka),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,typeof(Lotka_jac),Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::CVODE_BDF{:Newton,:Dense,Nothing,Nothing}) at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:45
   [13] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\common_interface\jacobians.jl:23
   [14] include at .\boot.jl:328 [inlined]
   [15] include_relative(::Module, ::String) at .\loading.jl:1105
   [16] include(::Module, ::String) at .\Base.jl:31
   [17] include(::String) at .\client.jl:424
   [18] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:29
   [19] top-level scope at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Test\src\Test.jl:1107
   [20] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:29
   [21] top-level scope at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Test\src\Test.jl:1107
   [22] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:26
   [23] include at .\boot.jl:328 [inlined]
   [24] include_relative(::Module, ::String) at .\loading.jl:1105
   [25] include(::Module, ::String) at .\Base.jl:31
   [26] include(::String) at .\client.jl:424
   [27] top-level scope at none:6
   [28] eval(::Module, ::Any) at .\boot.jl:330
   [29] exec_options(::Base.JLOptions) at .\client.jl:263
   [30] _start() at .\client.jl:460
  in expression starting at C:\Users\accou\.julia\dev\Sundials\test\common_interface\jacobians.jl:23

i.t = 0.04436589458068945
i.t = 0.11976370878673312
i.t = 0.19516152299277678
i.t = 0.27055933719882047
i.t = 0.34595715140486416
i.t = 0.42135496561090785
i.t = 0.5878600458168253
i.t = 0.7543651260227427
i.t = 0.9208702062286602
i.t = 1.0
Test error handling

[CVODES WARNING]  CVode
  Internal t = 0 and h = 0 are such that t + h = t on
the next step. The solver will continue anyway.

[CVODES ERROR]  CVode
  At t = 0 and h = 0, the corrector convergence test failed repeatedly or with |h| = hmin.

[IDAS ERROR]  IDACalcIC
  Newton/Linesearch algorithm failed to converge.

Mass Matrix: Error During Test at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:33
  Got exception outside of a @test
  LoadError: ArgumentError: invalid Array dimensions
  Stacktrace:
   [1] convert at .\pointer.jl:84 [inlined]
   [2] massmat(::Float64, ::Ptr{Sundials._generic_SUNMatrix}, ::Sundials.FunJac{ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,Nothing,DiffEqBase.NullParameters,Array{Float64,2},Nothing,Array{Float64,1},Nothing,Nothing,Nothing}, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_N_Vector}, ::Ptr{Sundials._generic_N_Vector}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\function_types.jl:147
   [3] __ARKode at C:\Users\accou\.julia\dev\Sundials\src\wrapped_api\arkode.jl:363 [inlined]
   [4] ARKode(::Sundials.Handle{Sundials.ARKODEMem}, ::Float64, ::Sundials.NVector, ::Array{Float64,1}, ::Int32) at C:\Users\accou\.julia\dev\Sundials\src\wrapped_api\arkode.jl:368
   [5] solver_step(::Sundials.ARKODEIntegrator{Sundials.NVector,DiffEqBase.NullParameters,Sundials.Handle{Sundials.ARKODEMem},ODESolution{Float64,2,Array{Array{Float64,1},1},Array{Array{Float64,1},1},Dict{Symbol,Float64},Array{Float64,1},Nothing,ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing},DiffEqBase.HermiteInterpolation{Array{Float64,1},Array{Array{Float64,1},1},Array{Array{Float64,1},1}},DiffEqBase.DEStats},ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing},ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Sundials.FunJac{ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,Nothing,DiffEqBase.NullParameters,Array{Float64,2},Nothing,Array{Float64,1},Nothing,Nothing,Nothing},Nothing,Sundials.DEOptions{DataStructures.BinaryHeap{Float64,DataStructures.LessThan},DataStructures.BinaryHeap{Float64,DataStructures.LessThan},CallbackSet{Tuple{},Tuple{}},Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE)},Array{Float64,1},Tuple{Int64},Array{Float64,1},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Nothing}, ::Float64) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:1101
   [6] solve!(::Sundials.ARKODEIntegrator{Sundials.NVector,DiffEqBase.NullParameters,Sundials.Handle{Sundials.ARKODEMem},ODESolution{Float64,2,Array{Array{Float64,1},1},Array{Array{Float64,1},1},Dict{Symbol,Float64},Array{Float64,1},Nothing,ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing},DiffEqBase.HermiteInterpolation{Array{Float64,1},Array{Array{Float64,1},1},Array{Array{Float64,1},1}},DiffEqBase.DEStats},ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing},ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Sundials.FunJac{ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Nothing,Nothing,DiffEqBase.NullParameters,Array{Float64,2},Nothing,Array{Float64,1},Nothing,Nothing,Nothing},Nothing,Sundials.DEOptions{DataStructures.BinaryHeap{Float64,DataStructures.LessThan},DataStructures.BinaryHeap{Float64,DataStructures.LessThan},CallbackSet{Tuple{},Tuple{}},Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE)},Array{Float64,1},Tuple{Int64},Array{Float64,1},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Sundials.LinSolHandle{Sundials.Dense},Sundials.MatrixHandle{Sundials.DenseMatrix},Nothing}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:1145
   [7] #__solve#22(::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol,Symbol},NamedTuple{(:abstol, :reltol),Tuple{Float64,Float64}}}, ::typeof(DiffEqBase.__solve), ::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing}, ::Array{Any,1}, ::Array{Any,1}, ::Array{Any,1}, ::Type{Val{true}}) at C:\Users\accou\.julia\dev\Sundials\src\common_interface\solve.jl:12
   [8] #__solve at .\none:0 [inlined] (repeats 5 times)
   [9] #solve_call#442(::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol,Symbol},NamedTuple{(:abstol, :reltol),Tuple{Float64,Float64}}}, ::typeof(DiffEqBase.solve_call), ::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing}) at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:38
   [10] #solve_call at .\none:0 [inlined]
   [11] #solve#443 at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:57 [inlined]
   [12] (::DiffEqBase.var"#kw##solve")(::NamedTuple{(:abstol, :reltol),Tuple{Float64,Float64}}, ::typeof(solve), ::ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,DiffEqBase.NullParameters,ODEFunction{true,var"#mm_f#32"{Array{Float64,1},Array{Float64,2}},Array{Float64,2},var"#mm_analytic#34",Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem}, ::ARKODE{:Newton,:Dense,:Dense,Sundials.Implicit,Nothing,Nothing,Nothing,Nothing}) at .\none:0
   [13] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\common_interface\mass_matrix.jl:32
   [14] include at .\boot.jl:328 [inlined]
   [15] include_relative(::Module, ::String) at .\loading.jl:1105
   [16] include(::Module, ::String) at .\Base.jl:31
   [17] include(::String) at .\client.jl:424
   [18] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:33
   [19] top-level scope at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Test\src\Test.jl:1107
   [20] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:33
   [21] top-level scope at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Test\src\Test.jl:1107
   [22] top-level scope at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:26
   [23] include at .\boot.jl:328 [inlined]
   [24] include_relative(::Module, ::String) at .\loading.jl:1105
   [25] include(::Module, ::String) at .\Base.jl:31
   [26] include(::String) at .\client.jl:424
   [27] top-level scope at none:6
   [28] eval(::Module, ::Any) at .\boot.jl:330
   [29] exec_options(::Base.JLOptions) at .\client.jl:263
   [30] _start() at .\client.jl:460
  in expression starting at C:\Users\accou\.julia\dev\Sundials\test\common_interface\mass_matrix.jl:32

Test Summary:    | Pass  Error  Total
Common Interface |   39      2     41
  CVODE          |   24            24
  ARKODE         |    3             3
  IDA            |    7             7
  Jacobians      |           1      1
  Callbacks      |    4             4
  Iterator       |              No tests
  Errors         |    1             1
  Mass Matrix    |           1      1
ERROR: LoadError: Some tests did not pass: 39 passed,
0 failed, 2 errored, 0 broken.
in expression starting at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:25
ERROR: Package Sundials errored during testing

Invalid array dimensions... is it assuming the arrays are 32-bit indexed?

For the record, instead of using my repo,
Pkg.add(PackageSpec(; name = "SuiteSparse_jll", rev = "202ebf9db961644ad225cb53549dedc8f1df9453"))

should be more or less equivalent.  I wanted to use v"5.4.0+2" of SuiteSparse_jll, but Pkg.jl doesn't like build numbers (https://github.com/JuliaLang/Pkg.jl/issues/1568)

Sundials 3.1 appeared very 32-bit oriented when I looked into it for ilp64 blas.

Sundials_jll v5 is now in the General registry.

we are currently working on the API update here https://github.com/Energy-MAC/Sundials.jl

I've updated SuiteSparse now, and I think the last issue for Sundials 5 on windows should now be resolved. @jd-lara Not to pressure you in any way in case you are busy, but perhaps open a PR here so that others can follow along.
If you have something early to test, I would love to see if it fixes the arm segfaults and gets all the existing tests passing again. I don't have a clear understanding of how API compatible Sundials 5 is with Sundials 3 - and hence no idea how far we are.

@ChrisRackauckas For Sundials 3 that is in use right now, should we go ahead and get the artifacts merged? It is clear now that the test failures and various issues are not due to how sundials 3 is built.

Still getting errors on Windows from the new binaries:
Jacobians: Error During Test at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:29
  Got exception outside of a @test
  LoadError: ArgumentError: invalid Array dimensions

Mass Matrix: Error During Test at C:\Users\accou\.julia\dev\Sundials\test\runtests.jl:33
  Got exception outside of a @test
  LoadError: ArgumentError: unsafe_wrap: pointer
0000000000000009 is not properly aligned to 8 bytes

That's because this PR is still using Sundials 3 I guess: https://github.com/JuliaDiffEq/Sundials.jl/blob/7c3769d7ce5a573582526d08ee8edd0e6e90a306/Project.toml#L22

I prepared this PR to replace the BinDeps stuff. I am pretty sure Sundials 3 used to work on Windows for @ChrisRackauckas before. So if the errors are with Sundials 3, that is probably also a real issue.
Probably we should have a separate PR to work with sundials 5?

https://github.com/JuliaDiffEq/Sundials.jl/pull/235

Things seem to run fine on my mac. I wonder if there is somehow still a clash between Julia's SuiteSparse and the jll that is being picked here on windows

Things seem to run fine on my mac. I wonder if there is somehow still a clash between Julia's SuiteSparse and the jll that is being picked here on windows

Should it matter?  What's the difference between SuiteSparse in Julia and in the latest JLL package?

Hardly any difference. Maybe Sundials needs to be compiled to align pointers on certain boundaries or something?

Appveyor is showing the failure on x86_64.
https://ci.appveyor.com/project/ChrisRackauckas/sundials-jl/builds/30999259/job/o4vhprj1c4olfxyu

This was the earlier builder that seemed fine on Windows 64-bit: https://github.com/JuliaDiffEq/SundialsBuilder/blob/master/build_tarballs.jl

We should focus on #235 with Sundials 5.


Fix feature path

The /tailscale path suffix is required as it is mapped to the ./src directory in this repo.
Added :1 to pin the major version.

Fixed in #31 - thank you


Add option to erase options / cached account data

Sometimes cached account data is bad or in a different Muledump format (non-Jakcodex/Muledump). It should be easier to clear this data from the cache.
The same goes for Muledump options.

Added two buttons to Settings Manager:

Erase Cached Data
Erase All Data


Portable installer option and Right hand shortcut

Description of the new feature / enhancement

It would be great if this app could be made portable. If not the entire settings and all apps, perhaps some of the individual apps, like FancyZone, could be.
New setting in mouse utilities for Find My Mouse, toggle between left and right Ctrl key as the effective keyboard shortcut. Because lots of user are left handed.

Scenario when this would be used?

Portable installer comes handy when you concern about mobility

I want to use the right Ctrl button on my keyboard to highlight the position of my mouse. Because I use double ctrl click often

Supporting information
No response

/dup https://github.com/microsoft/PowerToys/issues/598
We currently have no plans for a portable version


[Feature Addition] Gateway/repeater sending battery voltage

As discussed in #112 , there is idea that repeater/gateway could send some value as well (eg. battery voltage, or some other sensor reading)

Cool.
I'll put my ideas forth and if anyone has feedback, please chime in!
The feature will be to read a voltage via the ADC and do the calculations needed to convert it to a 4.2v scale. I think two voltages would be nice for situations with a solar panel and battery. The ESP8266 only has one ADC, but I will debate adding a second for 32 once the first is implemented.
Three or four config parameters should be sufficient: First the ADC pin, and a multiplier that is correlated to the voltage divider of the individual board.
Would you prefer that it sends the voltage only when sending other data? That would be easy enough to implement, just add a condition in the ESP-NOW and LoRa sending functions I think. Otherwise an interval (delay) parameter will be needed.
The final parameter we'll need the user to provide is a reading ID for the data.
My next concern is the best practice for reading the ADC quickly and without blocking anything. I'm not sure if this is really even a problem yet.
All advice and feedback is appreciated!

I was thinking about this much more generically. Yes, for my purposes, battery voltage is what I want to send, but I could see others wanting to send temperature/humidity or some other value.
As far as piggybacking on other messages - again, that probably works for my case, but I wonder if FDRS would quickly reach a limit of packet size for ESPNow/Lora.

I don't like hardcoding voltage to 4.2 it could be default one,but I would like to customise it as well, eg what if I am using 12 battery. Also I wouldn't make it over ADC only, eg what if I have BMS or somethig giving me capacity percentage. Maybe it could be defined as some kind of header where custom data could be set as temp, voltage ...

My concern still lies in the fact that if we open up the gateway to user-customized code, then there's a chance that the code to receive transmissions could be blocked by the user's code, and generally things become more difficult to troubleshoot. The ADC is available on every chip, so I don't mind adding the code to interface with it.
I just moved all of the code from the gateway.ino files into the fdrs_functions.h header, leaving very little code in the .ino.  This will make it easier to add experimental elements like this.  Check it out in the clean gateway branch.
I'll keep thinking about this. I know what you're looking for, I'm just worried about adding complication to the system. It's really easy to write in the documentation: "Nodes are sensors and controllers; while gateways are only access points." It becomes much harder to explain when "Nodes are sensors  and controllers, gateways are access points but can also be sensors, however there are certain limitations to this functionality...".
@Stips5 It's worth noting that the 4.2 isn't actually hardcoded. The system would take the raw ADC value and multiply it by a number specified by the user (which itself would be dependent upon your hardware's voltage divider), and that would convert the raw reading to whatever scale the user wanted. I have an idea of how to deal with a BMS.  A pin definition of -1 will indicate there's a BMS in use, and for the multiplier value you would define the function that gets the voltage from the BMS.
@nglessner I hadn't really considered how that would be at scale, but you're right: it could cause a bit of a snowball.

Any news, plans?

I'm pretty indecisive about this, which is a large part of the delay. At this moment, I'm leaning towards a concept that allows the user to define functions that are called at timed intervals. My idea is that the user can define a function in the setup() of the sketch something like this:
//Gateway Sketch
const int interval = 60  // seconds
DataReading functionName(){
  float volts = getVoltage();
  DataReading data = { id = GTWY_READING_ID, t = VOLTAGE_T, d = volts };
  return data;
}

void setup() {
  beginFDRS();
  addFunctionFDRS(functionName, interval);
}

So the user can provide a function that returns a DataReading, and it will then submit the returned DataReading as ESP-NOW and LoRa general traffic at the interval provided. I think all of this is possible.  Maybe the ability to send it to a certain interface instead of general traffic.
I've been busy working on other things and generally mulling this over. What do you guys think of the function idea?

I like it, do you have idea what messenge form will it be like

I like it, do you have idea what messenge form will it be like

The message will be sent as a DataReading just like any other incoming sensor value, using the ESPNOWG_ACT (or LORAG_ACT) definition to decide where it goes. I'm still not sure about the mechanics of everything, especially making it simpler to send multiple values at once.

Hey @Stips5, I'm finally getting to the point where I can think about exactly how this feature will work. In the newest branch I recently removed the old buffering functionality and replaced it with an internal timer/scheduler, which makes all LoRa transmissions at one constant interval. The same scheduler can be used to tell the gateway to run a user-defined function at a constant interval as well. In the following example, myFunc() will be called every 10 seconds:
#include "fdrs_gateway_config.h"
#include <fdrs_gateway.h>
void myFunc() {
  DBG("Timed Function");
}
void setup() {
  beginFDRS();
  scheduleFDRS(myFunc, 10000);
}

void loop() {
  loopFDRS();
}

In this function you could take a voltage or temperature reading. The next question is how to submit it and where to send it. My current idea is to adapt loadFDRS() and sendFDRS() used for sensors to the gateway, which will enter them to the system just like other incoming data. Next, I'll add an INTERNAL_ACT action to config, which the user could use to direct the data with sendSerial, sendLoRaNbr, etc.
I'll probably mull it over for a bit and add it in the next day or two. Please let me know if you have any input!

Looks great! I agree that using existingn FDRS metgods fornsending would be good solution. I am sure you'll make it work great. Cant wait to try it :)

First I want to thank you both. Thanks to your suggestions, I ended up changing course completely from my original plan. I think the scheme presented here is far superior!
The gateway INO looks like this:

#include "fdrs_gateway_config.h"
#include <fdrs_gateway.h>
void sendReading() {
  loadFDRS(random(0, 100), HUMIDITY_T, 23);
  sendFDRS();
}

void setup() {
  beginFDRS();
  scheduleFDRS(sendReading, 30000);
}

void loop() {
  loopFDRS();
}

The gateway config will look like this by default:
#define INTERNAL_ACT   sendSerial();

I don't know yet if I'll build something like this into the default examples, or use a separate example to demonstrate the feature.

@timmbogner, now that gateways can send FDRS packets for internal data should we assign the gateways a READING_ID like nodes?   Also, should we implement a new type called TIME_T?  I know it might be useful to query or report the time of the gateway.  Could also use TIME_T to report the time of the nodes.  I'm also adding a calculation to report how many seconds the time changes when it is adjusted.  Might be useful to have that information as a reading to track how accurate the time is.  I'm not sure if the 4 bytes of time_t will fit in a float off hand without looking.

I'm not sure about the READING_ID, for now I'll keep it unattached to avoid confusion.
I've been thinking about TIME_T as well. DataReading.d does hold 4 bytes, but I don't think converting the uint32 to a float and back will be ideal. Eliminating floats, at least in transport was actually one of Andreas' first and biggest suggestions before the video, but it was too tricky for me to accomplish with my skills at the time. I've also always had an idea to borrow two bits from the type to use to tell what to cast the data into. That could even be backwards compatible if we say 0b00 is a float.
So for instance: the first two bits of the type are now the data type. So decimal types 0-63 are now the "float version" of what we've already defined. There are currently 30 types, so plenty of room. Types 64-127 are the now 'uint32_t versions', (a humidity sent as an integer would be expressed as type (64 + HUMIDITY_T) then probably byte and boolean at 128 and 196. It would be a bit of a waste, for example the boolean versions of most types will never be used. But I've always thought it would be a good way to tackle this issue without defining different data types to specific DataReading types or breaking compatibility.
Anywho... I know you didn't really ask, but that's how that's gonna go.

So without READING_ID defined in the gateway like the node then people will just have to add the variable themselves or manually put in a number into loadFDRS function like:
loadFDRS(var, STATUS_T, 111);
In regards to storing time in a float to send the DataReading it seems there is no issue with it.  Here's how it is recorded in my MQTT client:

I actually made an example earlier today.
I'll think about doing it in config and maybe bringing over the shorter loadFDRS() function. I guess there's no big reason not to.
That's good about times. I just looked it up and with floats we'll have up to<PHONE_NUMBER> in integers. This means we have until the year 2038 to find a different way to go about this.

I think there are still issues with this. Floats aren't accurate when they're really high, so we'll lose accuracy on integers (unless I'm missing something).
If I send [{ id: 1, type: 6, data:<PHONE_NUMBER>}] to the MQTT gateway, I get {"id":1,"type":6,"data":1677886848,"time":106} from the Node-red debug.

@aviateur17
I closed this, let's continue the 'time as a DataReading' convo in the timekeeping discussion thread.


Tag a new release

Dep warns have been eliminated for 0.6 would be good to get  a release (last tag was May 16)

bump

Tagged https://github.com/JuliaWeb/HttpCommon.jl/releases/tag/v0.2.7.
Not sure why @attobot has not made the PR yet.
Maybe there's something wrong with the tag.
@tkelman ?

Says it was enabled 3 months ago. @simonbyrne is the only one with access to the logs as far as I know. Don't know whether deleting the tag and trying again would overwrite the logs or anything.

The problem is that it's just a tag, not a proper release: see instructions at https://github.com/attobot/attobot

Thanks! That was it.
PR https://github.com/JuliaLang/METADATA.jl/pull/8404 made now.


Add option to disable showing parameters.yml content

Great bundle, but I have a small issue with it. The fact that it displays parameters.yml content. There should be an option to disable showing those contents. Sometimes they contain sensitive data and it might cause trouble. Obviously, the documentation does recommend storing sensitive data somewhere else, but in the development process it is easier to use this file.
What do you think?

This bundle should only be used in dev environment (and you must not deploy your app_dev.php file)

Obviously, but sometimes there is a public version of the website that is being tested and needs to be debugged with the dev environment.

Spring cleaning, If this issue is still relevant, please reopen-it.


"getpeers" JSON RPC method

What current issue(s) does this address, or what feature is it adding?
According to issue #189, getpeers RPC method was not yet implemented. I added the possible functionality for it.
How did you solve this problem?
I added the functionality based on the methods used by the equivalent commands on the prompt.
How did you make sure your solution works?
Manually, plus automated tests
Are there any special changes in the code that we should be aware of?
No
Please check the following, if applicable:

[x] Did you add any tests?
[x] Did you run make lint?
[x] Did you run make test?
[x] Are you making a PR to a feature branch or development rather than master?
[x] Did you add an entry to CHANGELOG.rst? (if not, please do)

Coverage increased (+0.1%) to 78.684% when pulling c909bfaa155715a81e855f5eae13bb298d08ea37 on dethos:rpc-get-peers into 026dd2f951e1e551767a793e92ee7b27dded032a on CityOfZion:development.

Looks great!

Awesome

I am trying to map Neo nodes to countries by their IP address.
Is there a way to query peers of peers using the json_api in any of the clients?


Part 2/2: Added in the exponential backoff codeand added in the function which forces a wifi state

This must be merged together with this PR to reconnect to WiFi.

Tested disconnection and re-connection of WiFi network, ensuring that packets were published to MQTT topic after re-connection and idf.py tool monitors and notifies of re-connection accordingly.


Documentation: "EXCEPT without messages matches any error."

There are 2 places where the TRY-Except syntax is explained.

When I read the Release notes for 5.0 line 123 ...
"It is also possible to have an EXCEPT without messages, in which case it matches any error."
... I thought every error would be handled by EXCEPT.
So I made two test cases ...

Catch any exception from keyword Fail
    TRY
        Fail    # AssertionError
    EXCEPT
        Log    EXCEPT with no arguments catches any exception.
    END

Catch any exception from keyword Log
    TRY
        Log    \nLog keyword runs on error    INFOx    # Invalid log level 'INFOx'.
    EXCEPT
        Log    EXCEPT with no arguments catches any exception.
    END

... and wondered why the first one passed and the second one failed.
So I'd suggest to change the note:
"It is also possible to have an EXCEPT without messages, in which case it matches
any error except those which are caused by wrong keyword syntax."

I also had a look to the User Guide, 2.9.5:
"If the keyword fails with a message Error message (case-sensitive), the EXCEPT branch is executed."
Maybe it would help other users to see known examples where the Error message is not catched which is the case for
a) keywords with false syntax
b) keywords used in teardown #4293

EXCEPT not catching syntax errors is by design but clearly not adequately documented. Need to fix that in RF 5.0.1.
I don't think using invalid log level should really be a syntax error. I'll submit a separate issue about changing it to a normal error. It's a functional change so better to wait until RF 5.1 with it.
Finally, need to make sure we have adequate tests for syntax errors with TRY/EXCEPT. Should also test how they work with TRY/FINALLY.


You may need an appropriate loader to handle this file type

I got this error while loading a css file, is there anything to do with loaders in weback.base.babel.js file? Thanks in advance.

This boilerplate uses styled-components allowing you to write your CSS in your JavaScript, for more info check out the CSS docs.
If you would still like to import CSS files, you can do so by adding the css-loader and style-loader to webpace.base.babel.js like you suspected. See the official webpack docs for more info.


Correct all arrow alignments using puppet-lint

Doh! I just opened a PR for this too.  I will merge this when travis finishes.