Fix build errors that occur when log level is BOOTUTIL_LOG_LEVEL_DEBUG

Fix for several compile errors that occur with BOOTUTIL_LOG_LEVEL set to BOOTUTIL_LOG_LEVEL_DEBUG.

The simulator test works for me. Travis isn't trying, since the Signed-off-by is missing.

@utzig The commit is signed off on my fork, so not sure what is missing. This is the first time I've used signoff so maybe I did something wrong?

@benmccrea Ah, you're right, but the email is incorrect, your sign-off email on the commit is<EMAIL_ADDRESS>but it is expected to be<EMAIL_ADDRESS>Please force push the new one, and remove the one Andrzej Puzdrowski added.


Port Alerters architecture

Consolidate Alerters around an API to make them easy to add.
Reusing same scheme for actions architecture which simplify the plugability.
Also porting elasticsearch and prometheus alerters into .next.

LGTM


Is there a pre-start hook I can config when swarm cluster change the node position of a service?

Is there a pre-start hook I can config when swarm cluster change the node position of a service?
Assume there are three swam node A, B, C and service X is current running on A;
when A crash, swarm automatically restarts X on either B or C, and I want to catch this change and prepare some environment configuration before X is to start on B (or C), such as layer quota limit, pre-mount, etc.

No, there currently isn't. You can listen for "container" events on each node, but that probably won't help with this (there is an issue for "swarm mode events" in the swarm kit repository)
Also this issue may be related; https://github.com/docker/docker/issues/23880
I'll close this issue, because the question is answered, but feel free to write a more complete proposal / feature request with more details.


Suggestion: Hope to add a timer for hook

how about use hook after some milliseconds when fish being hooked, maybe with a rng even? :)

how about use hook after some milliseconds when fish being hooked, maybe with a rng even? :)

用gather buddy自带的计时器就行

I wouldn't mind seeing this. It it as simple as adding this in to line 260 on HookManger.cs?
Random rnd = new Random();
rnd.Next(300,701); //Gives you a number between 300 and 700

Thread.Sleep(rnd);

Added custom timers on <IP_ADDRESS>

Hi @InitialDet and thanks for your work on this. I see the new feature with timers between casts, but I believe this issue referenced the time between a fish biting and then hooking. Right now, it looks a bit unnatural to hook fish instantly as they bite.


Do nothing on Ubuntu targets

🗣 Description
This pull request updates the role to do nothing on Ubuntu targets.

💭 Motivation and context
Ubuntu (at least all versions we support) ships with the Ubuntu Backports already added as a repository in the default configuration. There's no reason to write another configuration to add this repository.

🧪 Testing
Automated tests pass. I also verified that an uncommented backports repository is listed in every version of Ubuntu we supported (and in the soon to be supported Ubuntu Noble Numbat):
$ for release in focal jammy noble; do echo Ubuntu "$release"; docker run --rm ubuntu:"$release" grep -rin "$release-backports" /etc/apt/; done
Ubuntu focal
/etc/apt/sources.list:34:deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
/etc/apt/sources.list:35:# deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
Ubuntu jammy
/etc/apt/sources.list:34:deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
/etc/apt/sources.list:35:# deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
Ubuntu noble
/etc/apt/sources.list.d/ubuntu.sources:34:Suites: noble noble-updates noble-backports
$ for release in focal jammy noble; do echo Ubuntu "$release"; docker run --platform arm64 --rm ubuntu:"$release" grep -rin "$release-backports" /etc/apt/; done
Ubuntu focal
/etc/apt/sources.list:34:deb http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted universe multiverse
/etc/apt/sources.list:35:# deb-src http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted universe multiverse
Ubuntu jammy
/etc/apt/sources.list:34:deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
/etc/apt/sources.list:35:# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
Ubuntu noble
/etc/apt/sources.list.d/ubuntu.sources:34:Suites: noble noble-updates noble-backports

✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[x] Tests have been added and/or modified to cover the changes in this PR.
[x] All new and existing tests pass.

I updated the testing to show that the original premise for this PR holds true for ARM64 as well as AMD64.


Nvidia error when running docker-compose up

Hi, I am working with your repo and I just noticed an error when I run docker-compose up:

Status: Downloaded newer image for rinong/sg_nada:v1.0
Creating stylegan-nada_nada_1 ... error
ERROR: for stylegan-nada_nada_1  Cannot create container for service nada: Unknown runtime specified nvidia
ERROR: for nada  Cannot create container for service nada: Unknown runtime specified nvidia
ERROR: Encountered errors while bringing up the project.

Do you have any suggestion on how to fix this? Thanks!

Do you have nvidia docker installed?


installation error

I try installing PyCyber with:
pip3 install pycyber
but I get the following error:
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pycyber in /home/mais/.local/lib/python3.8/site-packages (0.0.3)
--- Logging error ---
Traceback (most recent call last):
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/utils/logging.py", line 177, in emit
self.console.print(renderable, overflow="ignore", crop=False, style=style)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_vendor/rich/console.py", line 1752, in print
extend(render(renderable, render_options))
File "/home/mais/.local/lib/python3.8/site-packages/pip/_vendor/rich/console.py", line 1390, in render
for render_output in iter_render:
File "/home/mais/.local/lib/python3.8/site-packages/pip/internal/utils/logging.py", line 134, in _rich_console
for line in lines:
File "/home/mais/.local/lib/python3.8/site-packages/pip/_vendor/rich/segment.py", line 245, in split_lines
for segment in segments:
File "/home/mais/.local/lib/python3.8/site-packages/pip/_vendor/rich/console.py", line 1368, in render
renderable = rich_cast(renderable)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_vendor/rich/protocol.py", line 36, in rich_cast
renderable = cast_method()
File "/home/mais/.local/lib/python3.8/site-packages/pip/internal/self_outdated_check.py", line 130, in _rich
pip_cmd = get_best_invocation_for_this_pip()
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/utils/entrypoints.py", line 58, in get_best_invocation_for_this_pip
if found_executable and os.path.samefile(
File "/usr/lib/python3.8/genericpath.py", line 101, in samefile
s2 = os.stat(f2)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip3.8'
Call stack:
File "/home/mais/.local/bin/pip3", line 8, in
sys.exit(main())
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 70, in main
return command.main(cmd_args)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 101, in main
return self._main(args)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 223, in _main
self.handle_pip_version_check(options)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 148, in handle_pip_version_check
pip_self_version_check(session, options)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/self_outdated_check.py", line 237, in pip_self_version_check
logger.info("[present-rich] %s", upgrade_prompt)
File "/usr/lib/python3.8/logging/_init_.py", line 1446, in info
self._log(INFO, msg, args, **kwargs)
File "/usr/lib/python3.8/logging/_init_.py", line 1589, in _log
self.handle(record)
File "/usr/lib/python3.8/logging/_init_.py", line 1599, in handle
self.callHandlers(record)
File "/usr/lib/python3.8/logging/_init_.py", line 1661, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.8/logging/_init_.py", line 954, in handle
self.emit(record)
File "/home/mais/.local/lib/python3.8/site-packages/pip/_internal/utils/logging.py", line 179, in emit
self.handleError(record)
Message: '[present-rich] %s'
Arguments: (UpgradePrompt(old='22.1.2', new='22.2'),)

maybe you don't have pip3 ? I have already tested in ubuntu 18.04, maybe you should check the pip and try again?

FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip3.8'

I had pip3 22.1.2, I updated it to pip3-22.2 and installed the package successfully but when I run listener I get the following error:
Traceback (most recent call last):
File "/home/mais/.local/bin/listener", line 5, in
from pycyber.examples.listener import main
File "/home/mais/.local/lib/python3.8/site-packages/pycyber/examples/listener.py", line 23, in
from pycyber import cyber
File "/home/mais/.local/lib/python3.8/site-packages/pycyber/cyber.py", line 39, in
_CYBER = importlib.import_module('_cyber_wrapper')
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
I don't know if it is related to python version:
python3 --version
Python 3.8.10

I added the missed library file, and when I run talker I get:
E0726 11:41:39.303786 164200 file.cc:73] [talker_sample]Failed to open file /apollo/cyber/conf/cyber.pb.conf in text mode.
E0726 11:41:39.303802 164200 file.cc:99] [talker_sample]Failed to open file /apollo/cyber/conf/cyber.pb.conf in binary mode.
E0726 11:41:39.303809 164200 global_data.cc:159] [talker_sample]read cyber default conf failed!
F0726 11:41:39.303814 164200 global_data.cc:55] Check failed: InitConfig() [talker_sample]
*** Check failure stack trace: ***
Aborted (core dumped)

I will check and feedback soon.

the python version is indeed an issue, I also notice this.
conf is a new problem that needs to be confirmed

the python version is indeed an issue, I also notice this.

Because cyber need python.so, but it link with python 3.6. There is no easy way to support multi python versions in one release. Next I will release another version to support python 3.8+

conf is a new problem that needs to be confirmed

fix it in #7


Todos for Initial 0.1.0 Release

[ ] Documentation:

[ ] Promote command
[ ] Build command
[ ] Generate command
[ ] Running on Kubernetes
[ ] Update installation command to pip install meowlflow, or pipx install meowlflow

[x] Package publishing

[x] Add details to project.toml https://github.com/connylabs/meowlflow/pull/53
[x] Add poetry build to CI https://github.com/connylabs/meowlflow/pull/53
[x] Set pypi token in CI https://github.com/connylabs/meowlflow/pull/53
[x] Add pypi-publish to CI https://github.com/marketplace/actions/pypi-publish https://github.com/connylabs/meowlflow/pull/53

expose user-selected port?
https://github.com/connylabs/meowlflow/blob/main/meowlflow/build.py#L72
right now port 8000 is hardcoded

Hmm maybe it would be best to remove that entirely since the EXPOSE directive is informational and not frequently used since most containerized tools allow the port they listen on to be modified at run-time


Add some code to stop scopes from being applied twice.

This should fix #289 by overriding the builders implementation of applyScopes() to make it check if scopes have been applied already before attempting to apply them again.

@saernz Thanks so much for this, this is awesome! I will take a look first thing in the morning.

@mikebronner Thanks for the merge man! That's weird there was that compatibility issue that the tests didn't pick up, thanks for fixing it all up.

I think it was because the tests weren't triggering the case where the scopes weren't applied yet. Will experiment with that a bit and see if we can't get a test to do that.


Types not generated/working with AMD module

Acknowledgement

[X] I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.

Comment
When using AMD modules and working in VSCode, type declarations are not being picked up for modules that load dependencies using an array passed to the define function, but they are working for modules that load dependencies using require('./module-path')
In a simple project structured like this:
app
    |app.js
    |lib.js
    |lib.d.ts

The file lib.js contains this:
define('lib', function() {
    return {
        libTest: (msg) => {
            console.log('lib is working!', msg);
            return true;
        },
    }
});

The file lib.d.ts looks like this:
/** @name declaration test */
export module './lib';
/** @name libTest */
export function libTest(msg: string): boolean;

The declarations from lib.d.ts are correctly picked up in app.js with this and Intellisense works as expected, pulling info from lib.d.ts:
const lib = require('./lib');
lib.libTest(); // hovering pointer on 'libTest' shows "function libTest(msg: string): boolean \n @name -- libTest" and hovering on 'lib' shows "@name -- declaration test"

The declarations also work as expected if app.js looks like this instead:
define(function() {
    const lib = require('./lib');
    lib.libTest(); // hovering pointer on 'libTest' shows "function libTest(msg: string): boolean \n @name -- libTest" and hovering on 'lib' shows "@name -- declaration test"
});

However, the declarations do not work at all when the code in app.js looks like this:
define(['lib'], function(lib) {
    lib.libTest(); // hovering pointer on either 'lib' or 'libTest' just shows "any"
});

Why are the declarations from the lib.d.ts file working as expected for the first two variations of app.js, but not the third variation which uses an array of dependencies?
Additionally, if I delete the lib.d.ts file and try to have the compiler generate the declarations automatically (using "declaration": true, "emitDeclarationOnly": true in tsconfig) the tsc command completes successfully, but the generated d.ts file is completely empty

JS module inference only works for calls to the require function; it doesn't support AMD define calls.

Ok, thanks for the quick response Ryan :)
What about if the app file was a TypeScript file instead of a JS file, would that make any difference?

You'd have to write it with "normal" TS syntax and transpile to AMD format for it to be recognized

Got it, thanks so much!


[issue] The permissions required to register the command on velocity are invalid

Whether the latest version has been tried

[X] I have updated TrChat to the latest version, and the issue is also reproduced.

Have you checked the Wiki

[X] I have checked the Wiki for this problem and determined that the problem exists.

Detailed description
Everyone can use this command:    /muteallservers on & off
A check by Luckperms-Velocity shows that Trchat has not registered any permissions on Velocity
https://github.com/TrPlugins/TrChat/blob/d3d059b85313629cf87e6880c0585f821cb07e13/project/runtime-velocity/src/main/kotlin/me/arasple/mc/trchat/module/internal/TrChatVelocity.kt#L36
configuration file
default

logs
null
Server environment
Server version:
Velocity 3.3.0-SNAPSHOT Build #393
Plugin list:
luckperms-Velocity#130，Trchat2.1.1,
Server version:
paper 1.20.4 #497
Plugin list:
luckperms-bukkit#130，Trchat2.1.1，PlaceholderAPI

https://github.com/TrPlugins/TrChat/actions/runs/9451980664


ModuleNotFoundError: No module named 'going_modular'

In the paper replicating code when I write the following:
# For this notebook to run with updated APIs, we need torch 1.12+ and torchvision 0.13+
try:
    import torch
    import torchvision
    assert int(torch.__version__.split(".")[1]) >= 12, "torch version should be 1.12+"
    assert int(torchvision.__version__.split(".")[1]) >= 13, "torchvision version should be 0.13+"
    print(f"torch version: {torch.__version__}")
    print(f"torchvision version: {torchvision.__version__}")
except:
    print(f"[INFO] torch/torchvision versions not as required, installing nightly versions.")
    !pip3 install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
    import torch
    import torchvision
    print(f"torch version: {torch.__version__}")
    print(f"torchvision version: {torchvision.__version__}")

I get the following error:
[INFO] Couldn't find going_modular or helper_functions scripts... downloading them from GitHub.
Cloning into 'pytorch-deep-learning'...
remote: Enumerating objects: 4028, done.
remote: Counting objects: 100% (1216/1216), done.
remote: Compressing objects: 100% (213/213), done.
remote: Total 4028 (delta 1065), reused 1098 (delta 1000), pack-reused 2812
Receiving objects: 100% (4028/4028), 651.38 MiB | 9.16 MiB/s, done.
Resolving deltas: 100% (2358/2358), done.
Updating files: 100% (248/248), done.
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
[<ipython-input-66-d2111b068830>](https://localhost:8080/#) in <cell line: 18>()
     18 try:
---> 19     from going_modular.going_modular import data_setup, engine
     20     from helper_functions import download_data, set_seeds, plot_loss_curves

ModuleNotFoundError: No module named 'going_modular'

During handling of the above exception, another exception occurred:

ModuleNotFoundError                       Traceback (most recent call last)
[<ipython-input-66-d2111b068830>](https://localhost:8080/#) in <cell line: 18>()
     26     get_ipython().system('mv pytorch-deep-learning/helper_functions.py . # get the helper_functions.py script')
     27     get_ipython().system('rm -rf pytorch-deep-learning')
---> 28     from going_modular.going_modular import data_setup, engine
     29     from helper_functions import download_data, set_seeds, plot_loss_curves

ModuleNotFoundError: No module named 'going_modular'

Importing the helper_functions works but somehow the going_modular is constantly giving an error. Can you tell me what is wrong?

Hi @NaiyerRafique ,
This is strange.
I just re-ran Notebook 08 - PyTorch Paper Replicating in Google Colab and found it worked.
I was able to download the going_modular scripts as well as import various helper functions.
Where are you running the code?

# Continue with regular imports
import matplotlib.pyplot as plt
import torch
import torchvision

from torch import nn
from torchvision import transforms

# Try to get torchinfo, install it if it doesn't work
try:
    from torchinfo import summary
except:
    print("[INFO] Couldn't find torchinfo... installing it.")
    !pip install -q torchinfo
    from torchinfo import summary

# Try to import the going_modular directory, download it from GitHub if it doesn't work
try:
    from going_modular.going_modular import data_setup, engine
    from helper_functions import download_data, set_seeds, plot_loss_curves
except:
    # Get the going_modular scripts
    print("[INFO] Couldn't find going_modular or helper_functions scripts... downloading them from GitHub.")
    !git clone https://github.com/mrdbourke/pytorch-deep-learning
    !mv pytorch-deep-learning/going_modular .
    !mv pytorch-deep-learning/helper_functions.py . # get the helper_functions.py script
    !rm -rf pytorch-deep-learning
    from going_modular.going_modular import data_setup, engine
    from helper_functions import download_data, set_seeds, plot_loss_curves


brokerRedirectUri

Hi, I set brokerRedirectUri to true, but nothing happened, the success nor fail callbacks did not trigger. if it is set to false, everything works fine.
I installed the plugin as indicated.
Here are my options
            authorities: [               {                 type: 'AAD',                 audience: 'AzureADMyOrg',                 authorityUrl: '',                 cloudInstance: 'MSALAzurePublicCloudInstance',                                 default: true                               }             ],             prompt: 'SELECT_ACCOUNT',             authorizationUserAgent: 'WEBVIEW',             accountMode: 'SINGLE',             brokerRedirectUri: true,             scopes: [               'openid',               'profile'             ]
I had set up my application on Azure portal and installed MSAuthenticator on my Android device as well.

Closing this, turns out setting brokerRedirectUri wont work on debug and app should be wrapped by Intune wrapper.

Hi @jeffortdev Can you please help me in understand how to wrap app by Intune wrapper?

sorry for late reply, you can checkout the wrapper here https://github.com/msintuneappsdk/intune-app-wrapping-tool-ios then have documentation there explaining that


mobile: remove unused test method from EngineBuilder

setAdminAddressPathForTests is not used anywhere.

Closing in favor of putting these changes into another cleanup PR


Update URL paths to use dynamic menu structure via useContent hook & also updated the package.json files dev scipts that caused error on windows machine while setting up project locally !

What is it?

Feature / enhancement
Bug

Description

Refactored URL Groups :-

Replaced hard-coded lists (QWIK_GROUP, QWIK_ADVANCED_GROUP, QWIKCITY_GROUP, and QWIKCITY_ADVANCED_GROUP) with a dynamic menu structure utilizing the useContent hook.
This refactor improves code maintainability and simplifies adding or updating paths in the future.

Fixed Local Setup Errors :-

Updated the package.json files to resolve errors encountered while setting up the project locally.
This ensures a smoother onboarding experience for developers working on the repository.

Related Issue :-
#6802
Checklist

[x] My code follows the developer guidelines of this project
[x] I performed a self-review of my own code

@wmertens
About my recent commit,
I had updated the package.json as per requested and am working to resolve bug that, causes the error of not running on Windows OS


Add alert for when a site redirects through a TLD potentially associated with abuse

Add alert for when a site redirects through a TLD potentially associated with abuse
Also changes fetchRedirectUrls to include the current tab URL in the redirect chain, since alert should also trigger when the current site has a low reputation TLD (not just redirects).

Reviewed internally


Problem: no way to calculate stake weight from the CLI for a ledger

e.g. mina-indexer staking-weight --public-key <b62...>

This isn't as easy as it first appeared. Is there value in knowing the current stake weight for a block producer? IMHO, I suspect very little. @robinbb thoughts?

Yes, I would say this is very interesting and useful information. It should be easy to get this info, if we are ingesting staking ledgers logged from the Mina node.


feat: adds support for witch queen

What
feat: adds support for witch queen

:tada: This PR is included in version 1.51.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fix UNC prefix stripping inconsistency (Fixes #561)

@WilliamVenner this is great, thanks a lot!
i'll check it out a bit more tomorrow and merge it. but from quick glance of the code, it looks good.

Codecov Report

Merging #562 (e06a222) into master (1f18941) will decrease coverage by 27.77%.
The diff coverage is 60.00%.

@@             Coverage Diff             @@
##           master     #562       +/-   ##
===========================================
- Coverage   92.78%   65.01%   -27.78%
===========================================
  Files          98       97        -1
  Lines       19260    19184       -76
===========================================
- Hits        17871    12473     -5398
- Misses       1389     6711     +5322

Impacted Files
Coverage Δ

src/lib/environment/mod_test.rs
11.79% <ø> (-83.75%)
:arrow_down:

src/lib/descriptor/mod.rs
43.55% <50.00%> (-42.02%)
:arrow_down:

src/lib/environment/mod.rs
26.74% <100.00%> (-63.44%)
:arrow_down:

src/lib/storage_test.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

src/lib/proxy_task_test.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

src/lib/recursion_level_test.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

src/lib/cli_test.rs
1.98% <0.00%> (-91.42%)
:arrow_down:

src/lib/scriptengine/rsscript.rs
0.00% <0.00%> (-88.34%)
:arrow_down:

src/lib/scriptengine/rsscript_test.rs
0.00% <0.00%> (-86.62%)
:arrow_down:

src/lib/time_summary.rs
11.76% <0.00%> (-85.38%)
:arrow_down:

... and 65 more

Continue to review full report at Codecov.

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

@WilliamVenner code looks really great.
can you verify on windows that all these env vars look good and if not, maybe use your fix?
if needed, maybe create some util function so it can be easily reused?
CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE
CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY
CARGO_MAKE_WORKING_DIRECTORY
CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY
CARGO_MAKE_CRATE_TARGET_DIRECTORY
CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY
CARGO_MAKE_CARGO_HOME

@WilliamVenner just making sure you saw my comment :)

Sorry! I have been really busy over the past week. Btw, edits are open to maintainers for my PR if there's anything you want to clean up before merge.
I did a quick test of those environment variables:
C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\$BLACKHOLE\adwdaw\Makefile.toml
C:\Users\billy\$BLACKHOLE\adwdaw\Makefile.toml

C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\$BLACKHOLE\adwdaw
C:\Users\billy\$BLACKHOLE\adwdaw

C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\$BLACKHOLE\adwdaw
C:\Users\billy\$BLACKHOLE\adwdaw

C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\$BLACKHOLE\adwdaw
C:\Users\billy\$BLACKHOLE\adwdaw

C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\$BLACKHOLE\adwdaw\target
C:\Users\billy\$BLACKHOLE\adwdaw\target

C:\Users\billy\$BLACKHOLE\adwdaw>echo
ECHO is on.

C:\Users\billy\$BLACKHOLE\adwdaw>echo C:\Users\billy\.cargo
C:\Users\billy\.cargo

thanks a lot. I'll be merging it soon.

merging it to a new dev branch. thanks a lot for the PR!!!
i'll probably test few things more myself before publishing it.


An error in calculating MAPE for QoR tasks

/models/qor/SynthNetV1/utils.py line 258，When calling mean_absolute_percentage_error for calculation, are the two parameters placed in reverse order? The first one in the function description is y_true, and the second one is y_pred, but the code uses y_pre as the first parameter.

I am not sure if my understanding is wrong, please let me know if I am wrong

Indeed, you pointed out an error. I did calculate the MAPE score incorrectly. It should have been reversed.
Can you make a PR with the change?

Yes, I maked a PR with the change. But  I'm not sure if I'm doing the PR operation correctly, this is my first time using it.


[BUG] Deephyper and Ray Cluster using GPUs on Cori

Describe the bug
I'm facing an issue when I try to start deephyper running on ray cluster and allocating GPUs on Cori (NERSC).
I'm using Tuster to deploy everything but when Tuster (most likely) attempts to submit the job with srun then I receive the following error on the --gres argument.
srun: error: Unable to create step for job X: Invalid generic resource (gres) specification
This is the sbatch script I'm submitting: Run_Batch_Ray_Bepop_GPU.zip
To Reproduce
Steps to reproduce the behavior:
module load cgpu
sbatch Run_Batch_Ray_Bepop_GPU.sh
Desktop (please complete the following information):

System: Cori dev with GPUs
Python version: 3.7.4
DeepHyper Version: 0.2.1
Tuster version: 0.0.1
Ray version: 0.7.6

Could you please point me to where I should look to debug and resolve this issue?

Hello @papajim , thanks for reporting this bug.
Could you please share with me the Tuster version you are using? I think you may use a "private" version that I don't know about because the "bebop" system was not pushed to the official repo

Hello @Deathn0t!
I have attached the tuster repo I'm using.
tuster.tar.gz

I found an explanation about the error you mentioned  here:

When srun is executed within an existing allocation (salloc or
sbatch), it starts a job step that can only use resources already
allocated to that job (no GPUs in the job then you can't get them from
a job step).

Maybe this tutorial can help us figuring out what is happening. How, do you submit the script Run_Batch_Ray_Bebop_GPU.sh ?

Maybe the issue is coming from:
#SBATCH --cpus-per-task=20
#SBATCH --gpus-per-task=1
``

and

```bash
srun -n 2 python...

If there is only one GPU per task, it looks the the srun is asking for 2 tasks?

Removing these constraints seems to have fixed this issue.
However it doesn't fully make sense since I was explicitly acquiring 2 GPUs (#SBATCH -G 2).
I probably need to ask NERSC support about this...
Could you please point me to the section that Tuster deploys the actual application?

So In your bash script you call
srun -n 2 python -m tuster.system.bebop.run 'python -m deephyper.search.hps.ambs --evaluator ray --redis-address {redis_address} --acq-func LCB --kappa 7 --problem DAIN_KMNIST.problem.Problem --run DAIN_KMNIST.model_run.run'

which will execute the script located in the tuster package at tuster/system/bebop/run
this script is going to start Ray daemons and your nodes and then the application here deephyper which will connect to this Ray daemons. So you may have to edit the way the cluster is launched based on your system. This one was made for Bebop apparently.

Ok thank you!
I will take a look :)


Seq2Seq model support for DPO

Draft PR following #579. The goal is to make DPO support encoder-decoder models like T5.
Things to add:

Improve the collator so that it also returns the text version of the prompt/chosen/rejected samples.
Add decoder input ids to the collator for models that do not directly create them from labels.
Find a better way to know if the model is an encoder-decoder than directly passing a param in init.
Modify the dpo example if needed.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks @tomaarsen I will incorporate that.

The PR is still not ready, I need to add docstrings for the different arguments added and fix the code quality issue that comes from some added imports.

You can try running pre-commit run --all and see if that makes the desired changes. For me it does. If that doesn't work, perhaps you can allow me to somehow push a commit to your branch and then I can resolve it for you, as I have the commit locally. I'm not quite sure how that works, though.

Tom Aarsen

Thanks a lot @tomaarsen it worked!

thanks @gaetanlop gonna start having a look. So perhaps you can also add something about this in the dpo.mdx docs too? Also if I understand now both model and ref models need to be either seq-2-seq or decoder only but not mixed?

Hey @kashif, yes good idea for the dpo.mdx docs. I am still unsure of how we should detect if a model_init is an encoder-decoder. I don't think there is a straightforward way to do it.
Exact, if I remember well in the DPO paper the model and the ref_model are the same model. Making it mixed will require further changes. Are you aware of a recent paper using DPO with different model and ref model architectures?

Hi @gaetanlop
Thanks for the great work on this PR! Do you need any help finishing it up? 🙏 Let us know if you need any assistance!

Hi @younesbelkada, sorry have been busy with other things lately. I need to add information to the dpo.mdx and resolve different conflicts. I will do this over the weekend!

Merge conflicts will be resolved probably if you merge main into your branch.

Hello @younesbelkada @lvwerra, if I do not miss anything I think it is ready for a review


bug/partiton docx with table fail

Describe the bug
partition (auto to docx) cannot parse a docx file. It seems to fail when encounter a table.
>>> elements = partition(filename="example-docs/handbook-872p.docx")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/auto.py", line 230, in partition
    elements = partition_docx(
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/documents/elements.py", line 605, in wrapper
    elements = func(*args, **kwargs)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 731, in wrapper
    elements = func(*args, **kwargs)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/file_utils/filetype.py", line 687, in wrapper
    elements = func(*args, **kwargs)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/chunking/dispatch.py", line 74, in wrapper
    elements = func(*args, **kwargs)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 179, in partition_docx
    return list(elements)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/lang.py", line 475, in apply_lang_metadata
    elements = list(elements)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 435, in _iter_document_elements
    yield from self._iter_table_element(block_item)
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 778, in _iter_table_element
    self._convert_table_to_html(table) if self._opts.infer_table_structure else None
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 553, in _convert_table_to_html
    return htmlify_matrix_of_cell_texts([list(iter_row_cells_as_text(r)) for r in table.rows])
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 553, in <listcomp>
    return htmlify_matrix_of_cell_texts([list(iter_row_cells_as_text(r)) for r in table.rows])
  File "/Users/klaijan/.pyenv/versions/unstructured-all/lib/python3.10/site-packages/unstructured/partition/docx.py", line 542, in iter_row_cells_as_text
    for _ in range(row.grid_cols_before):
AttributeError: '_Row' object has no attribute 'grid_cols_before'

To Reproduce
from unstructured.partition.auto import partition
elements = partition(filename="example-docs/handbook-872p.docx")

Expected behavior
Screenshots
Environment Info
Please run python scripts/collect_env.py and paste the output here.
Fwiw this is my unstructured libs
unstructured==0.15.12
unstructured-client==0.25.8
unstructured-inference==0.7.36
unstructured-ingest==0.0.13
unstructured.pytesseract==0.3.12
Additional context
Add any other context about the problem here.

handbook-872p.docx

@Klaijan Try updating your python-docx installation:
$ pip install -U python-docx

That feature was added relatively recently, although some months ago now.


RPly: Failed writing

How to fix it?

Caching all 2 images.
 I guess it could be the problem of writing nan/inf value in ply. I just added the code to remove nan/inf values (following this).
If it still doesn't work, I would try using nerfstudio's new way of writing ply file: https://github.com/nerfstudio-project/nerfstudio/blob/8d5502db1a599c1ccb68807aa364482a931fb60c/nerfstudio/scripts/exporter.py#L491
I hope this is helpful!

Hello, thanks for quick fix. I got new error with the latest commit. You are right, there are NaN/Inf value. Is this a problem?

If you want my dataset (already processed by HLOC), you can download from HERE

Another test:
>> ns-train nerfgs --data path/to/my_dataset --max-num-iterations 1000 \
    --pipeline.model.ply-file-path path/to/nerfgs.ply \
    --pipeline.model.sh-degree-interval 0 --pipeline.model.warmup-length 100 \
    --optimizers.xyz.optimizer.lr 0.00001 \
    --optimizers.xyz.scheduler.lr-pre-warmup 0.0000001 \
    --optimizers.xyz.scheduler.lr-final 0.0000001 --optimizers.features-dc.optimizer.lr 0.01 \
    --optimizers.features-rest.optimizer.lr 0.001 --optimizers.opacity.optimizer.lr 0.05 \
    --optimizers.scaling.optimizer.lr 0.01 --optimizers.rotation.optimizer.lr 0.0000000001 \
    --optimizers.camera-opt.optimizer.lr 0.0000000001 \
    --optimizers.camera-opt.scheduler.lr-pre-warmup 0.0000000001 \
    --optimizers.camera-opt.scheduler.lr-final 0.0000000001

[07:23:29] Caching / undistorting train images                                            ]8;id=243962;file:///workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/data/datamanagers/full_images_datamanager.py\full_images_datamanager.py]8;;\:]8;id=529903;file:///workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/data/datamanagers/full_images_datamanager.py#179\179]8;;\
Caching / undistorting train images ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:0500:0100:01
Printing profiling stats, from longest to shortest duration in seconds
Trainer.train_iteration: 23.5491
VanillaPipeline.get_train_loss_dict: 23.5482
Traceback (most recent call last):
  File "/usr/local/bin/ns-train", line 8, in <module>
    sys.exit(entrypoint())
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/scripts/train.py", line 262, in entrypoint
    main(
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/scripts/train.py", line 247, in main
    launch(
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/scripts/train.py", line 189, in launch
    main_func(local_rank=0, world_size=world_size, config=config)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/scripts/train.py", line 100, in train_loop
    trainer.train()
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/engine/trainer.py", line 261, in train
    loss, loss_dict, metrics_dict = self.train_iteration(step)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/utils/profiler.py", line 112, in inner
    out = func(*args, **kwargs)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/engine/trainer.py", line 496, in train_iteration
    _, loss_dict, metrics_dict = self.pipeline.get_train_loss_dict(step=step)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/utils/profiler.py", line 112, in inner
    out = func(*args, **kwargs)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/pipelines/base_pipeline.py", line 301, in get_train_loss_dict
    model_outputs = self._model(ray_bundle)  # train distributed data parallel model if world_size > 1
  File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/models/base_model.py", line 143, in forward
    return self.get_outputs(ray_bundle)
  File "/workspace/NERFSTUDIO_ABSGS/nerfstudio/nerfstudio/models/splatfacto.py", line 761, in get_outputs
    n = min(self.step // self.config.sh_degree_interval, self.config.sh_degree)
ZeroDivisionError: integer division or modulo by zero

It success when I train it only 500 iters
>> ns-train nerfgs --data path/to/my_dataset --max-num-iterations 500 \
    --pipeline.model.ply-file-path path/to/nerfgs.ply

but the video render result is really odd

I use Truck dataset from TankandTemples

Fixed as notes from this thread


Efficient workspace storage

Currently NmtWorkspaces save the masks of the two fields that went into computing them. This can become a nuisance for maps with high pixel resolutions. The main reason why they get saved is because they are then used to compute covariances, but this could be done in a different way, by creating the corresponding NmtCovarianceWorkspace object from the 4 associated NmtFields.

This was actually solved while releasing v1.


feat: JWT Authenticator

Needs #703
Needs to rebase after merging #194, #199
Add:

Config\AuthJWT
Authentication\Authenticators\JWT
Filters\JWTAuth
Authentication\JWTManager = service((jwtmanager)

How to Test/Use:

https://github.com/codeigniter4/shield/pull/195#issuecomment-1374456938
https://github.com/kenjis/codeigniter-shield/blob/feat-jwt/docs/addons/jwt.md#jwt-authentication

Sample Test App:

https://github.com/kenjis/ci4-shield-test/tree/test-jwt#how-to-test-json-web-token-jwt-authentication
https://github.com/kenjis/ci4-shield-test/commit/0ef2d5d64afaab49576765d28560f34c31d8c4dc

TODO:

[x] login recording specification
[x] update docs

I don't think we'll be able to get this one in before the initial release.

There are some parts of this feature that require consideration of specifications.
I think it will take some time.

Why choose Firebase's implementation?

I googled CodeIgniter4 jwt, and found most tutorials use Firebase implementation.
And it is commonly used in my country. So first of all, I chose it.
But I know it doesn't provide the most complete implementation, so I made it replaceable.

It is also commonly used in my country.

I don't remember much of the implementation as a lot of time has passed, but I think the implementation itself was done in one way or another.
If there is someone who want to try JWT, please test. Of course code reviews are also welcome.
I am going to run the code and see if it really works.

My only JWT CI4 project currently uses Myth and I've had issues installing Shield alongside because they have some conflicting services and factories. I know some community members have been keen on this - maybe check the forums for volunteers?

Good idea! I've posted the forum.

it finished? how to use this branch?

This should work. You can get the code from my repository:
https://github.com/kenjis/codeigniter-shield/tree/feat-jwt

how to use this branch?

Update your composer.json:
--- a/composer.json
+++ b/composer.json
@@ -7,7 +7,8 @@
     "require": {
         "php": "^7.4 || ^8.0",
         "codeigniter4/framework": "^4.0",
-        "codeigniter4/shield": "^1.0@beta"
+        "codeigniter4/shield": "dev-feat-jwt",
+        "firebase/php-jwt": "^6.2"
     },
     "require-dev": {
         "fakerphp/faker": "^1.9",
@@ -36,5 +37,11 @@
         "slack": "https://codeigniterchat.slack.com"
     },
     "minimum-stability": "dev",
-    "prefer-stable": true
+    "prefer-stable": true,
+    "repositories": [
+        {
+            "type": "vcs",
+            "url": "https://github.com/kenjis/codeigniter-shield.git"
+        }
+    ]
 }

Run composer update.

What is the status on JWT authentication?
Any TODOs I could help with?

Rebased to resolve conflicts.

Rebased to resolve conflicts.

What is the status on JWT authentication?

The implementation was finished. I need to write docs.

Any TODOs I could help with?

Testing and review. As you see, no one has approved this PR yet.

What is the status on JWT authentication?

The implementation was finished. I need to write docs.

Any TODOs I could help with?

Testing and review. As you see, no one has approved this PR yet.

Nice work! I will create an API now to help test this implementation.

Added docs.

Why this error?
ERROR: ReservedWord - tests/Authentication/Authenticators/JWTAuthenticatorTest.php:148:9 - 'resource' is a reserved word (see https://psalm.dev/095)
        $users->delete(1);

https://github.com/codeigniter4/shield/actions/runs/4696752282/jobs/8327382118?pr=195

After reviewing the implementation today, I felt that the current APIs are too narrow for use cases.
I appreciate your feedback on usability.

Various API changes and additions. I believe that more items can be customized without extending classes.
Also, it may be too late now, but I found firebase/php-jwt does not support JWE.
If we need JWE, we need to add another package.

Added a lot of explanations in the docs: https://github.com/kenjis/codeigniter-shield/blob/feat-jwt/docs/addons/jwt.md#jwt-authentication

@MGatner @datamweb Can you review?

@kenjis will try to do today.

Question, how can the site administrator make the tokens expire in general? (I think he should change the secret code. If so, I'd prefer you explain it in the documentation.)
And the next question is there a way to expire the token for a specific user?
Please update the README file, the reference to support JWT is good.

Question, how can the site administrator make the tokens expire in general? (I think he should change the secret code. If so, I'd prefer you explain it in the documentation.)
And the next question is there a way to expire the token for a specific user?

Tokens are to be validated by defining the conditions that make it invalid.
If you want to invalidate tokens to a specific user, you can do it by specifying the user ID and issued at.
Also, as you say, If you change the key, all tokens signed with that key will be invalidated.

@datamweb Thank you for the detailed review!

@MGatner Can you approve? Without your approve, I cannot merge this.

Thank you all!


Added random generation of UID if the user uses u/00000 in the add command. else it will be user defined.

edit cannot change the UID of any guest now
will create tests after this PR

Pull Request Test Coverage Report for Build 468

20 of 35 (57.14%)  changed or added relevant lines in 8 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 64.063%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/address/logic/commands/GeneralMarkCommand.java
7
8
87.5%

src/main/java/seedu/address/logic/parser/EditCommandParser.java
0
1
0.0%

src/main/java/seedu/address/model/person/Person.java
2
3
66.67%

src/main/java/seedu/address/logic/commands/AddCommand.java
4
16
25.0%

Totals

Change from base Build 467:
-0.2%

Covered Lines:
2050

Relevant Lines:
3200

💛  - Coveralls


Expressions optimization and streamlining

Description
Marking this as a product feature, because it opens up a few more things:

I've tested out setting title and tableTitle in textResourceBindings via expressions now, which did not work correctly before (at least it crashed the app for me when I tested on earlier versions).
Some things may be more consistent and as-expected after this change. Such as text resources for title when displaying a component in a Summary (which did not always seem to look up variables in text resources before, but does now).
It should now be a lot more performant to use expressions overall, and less error-prone. Some needs (such as #754) are not as pressing anymore, as it's fairly easy to work around them using expressions (that, as mentioned, sometimes caused the app to crash before).

With that said, some bullet points detailing some of the more technical changes here:

Instead of useExpressions() and useExpressionsForComponent(), most expressions are now evaluated once in the ExprContext (which just loads resolvedNodesInLayouts() and provides the result to all child components via two new hooks - useExprContext() and useResolvedNode()). This is what gives us the much-needed performance boost.
Overall, more usage of the node hierarchy instead of constructing and manipulating component definitions/objects directly. This is especially true in Summary, where the node hierarchy now replaces most component config wrangling.
The node hierarchy could resolve expressions before, but it had no functionality to ensure that some expressions (such as edit.deleteButton) were evaluated per-row (as this is a property on the Group component, but could have different results per-row). Now, instead of just a default value (if the expression fails to evaluate), you have to pass in a configuration for every possible expression. This configuration tells the expression engine if an expression should be evaluated per-row or not, so expressions like edit.deleteButton will stay unresolved in the Group component and will be evaluated and available in the node.item.row[123].groupExpressions.edit.deleteButton property instead (for each row index). This also fixes an issue where these expressions were being resolved in unrelated code, and could end up failing (because, for example, a component lookup was not available when not in a row context), resulting in an error message in the developer console.

Related Issue(s)

closes #822
#754
#377
#345

Verification

Manual testing

[x] I have tested these changes manually

[x] Manually test the new PDF generator (we should have cypress tests for the automatic PDF layout)
[ ] Manually test some prominent/production apps side-by-side with an older version

[x] Creator of the original issue (or service owner) has been contacted for manual testing
[ ] No testing done/necessary

Automated tests

[ ] Unit test(s) have been added
[x] Cypress E2E test(s) have been ~added~ updated
[x] No automatic tests are needed here (this carries no functional changes, only minor new features that did not exist anymore. Tests were only changed to bootstrap correctly for them to work properly, but they were a much-needed aid when making these changes in order to verify existing functionality did not change. I have plans to add tests for some of the new functionality I noticed was working after this change.)
[ ] I want someone to help me make some tests

User documentation @ altinn-studio-docs

[ ] Has been updated

[x] No changes/updates needed

Changes/additions to component properties

[ ] Changes are reflected in both src/layout/layout.d.ts and layout.schema.v1.json, and these are all backwards-compatible
[x] No changes made

Support in Altinn Studio

[ ] Issue(s) created for support in Studio

[x] This change/feature does not require any changes to Altinn Studio

Sprint board

[x] The original issue (or this PR itself) has been added to the Team Apps project and to the current sprint board

@bjosttveit Yup, sorry, it's a huge change that affects everything... The fact that you spotted that multiPageIndex thing means you probably looked more closely at this than I would! :partying_face:


Remove duplicate judgment on dropoff_ingestor property

Bug fix
if (delivery.dropoff_ingestor.empty())
{
RCLCPP_ERROR(
node->get_logger(),
"Required param [delivery.dropoff_ingestor] missing in TaskProfile."
"Rejecting BidNotice with task_id:[%s]" , id.c_str());
  return;
}

As in the above code, there are two same judgments in the code, and one needs to be removed.

Ordinarily we require GPG signing of commits to validate the identities of contributors and ensure that no bad actors are sneaking commits into our codebase.
Given the simplicity of this PR and how obvious of a change it is, we'll make an exception in this case, but for any more complex change we will require GPG signing on all commits.

Ordinarily we require GPG signing of commits to validate the identities of contributors and ensure that no bad actors are sneaking commits into our codebase.
Given the simplicity of this PR and how obvious of a change it is, we'll make an exception in this case, but for any more complex change we will require GPG signing on all commits.


Make ClientTlsContext hostname parameter nullable / optional

It can't be provided with a reasonable value for connection pools, etc.

This has been changed in https://github.com/amphp/socket/commit/fa19cb8acfb85be7476aaf7afca4ea051a80e23a.


Support for auto-batching and manual-batching for the client api

We are not implementing this for now and focus more on things like stream and defer for strawberry shake.


tray menu does not behave correctly when taskbar on left

Keybase GUI Version: 1.0.20-20170317111345+6cc2f52

It's not just the taskbar. Keybase hides itself under everything, including the windows taskbar/tray overflow menu if you need to open it from there. The menu doesn't close itself (much like most taskbars aren't set to hide themselves), and keybase stays underneath, making it difficult to click things.

Cc: @zanderz

Do you have more than one monitor?

I have more than one monitor, not sure about @nathanwcho. However, the issue continues when I switch from extend to duplicate or pc only or second screen only (I just tried all 3). In fact, now the bottom of the Keybase taskbar popup is showing up exactly at the bottom of the screen (ie, behind the taskbar), and while I'm not 100% sure, I don't think it was doing that before.
Hiding itself under everything is not quite accurate--it does show up on top of other programs (like steam, explorer, etc) that are running in the foreground, it's just the windows elements like the taskbar and taskbar overflow menu that show up on top.


[Timezone Converter] allow me to type in any local time to see that time in other zones

Extension
https://www.raycast.com/joao.mainka/raycast-timezone-converter
Description
Right now it seems like I can only see the current local time in other zones, but I'd like to be able to type in a proposed time and see what that time is in my other selected zones of interest
Who will benefit from this feature?
People who are trying to figure out good times for an online meeting across timezones
Anything else?
No response

It would also help of course to type in a time in another zone and see that converted to my local zone. The benefit goes both ways: "I know my colleague can meet until 6pm their evening, I wonder what time that is for me where I am..."


Any idea for an Android release?

Hey wanted to know if there will be a future Android release.

Hey wanted to know if there will be a future Android release.

As of right now, there aren't any plans to get an Android version released anytime soon. We're really short on staff haha!


Delete unused analytics files

Describe the Bug

I noticed that we have some unused files in the cms:

_broken_links_widget.html
_translation_overview_widget.html
_website_size_widget.html
app_size.html and app_size_view.py

These files appear to have been part of the original dashboard, before it was overhauled, but I am not completely sure about that.
I think we should delete these files, if they serve no purpose anymore.

Good catch, most of the mentioned files are just placeholders for the old dashboard. However, app_size.html and app_size_view.py are connected to https://github.com/digitalfabrik/integreat-cms/issues/78.
@osmers Maybe the service team should decide whether we still want this app size information or if this became obsolete?

Can we maybe keep the two files relating to the app size information for now?
IMHO it is not a super relevant or urgent issue to show the app size in the CMS - one bcs even municipalities who knew the functionality never asked for it since the migration and two, most phones have more than enough space and Integreat only makes up a small portion of that...but in case we wanna integrate it in the future, we could keep the two files for now.


REFACTOR-#5908: remove unused parameters from run_exec_plan

What do these changes do?

[x] first commit message and PR title follow format outlined here

NOTE:  If you edit the PR title to match this format, you need to add another commit (even if it's empty) or amend your last commit for the CI job that checks the PR title to pick up the new PR title.

[x] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] signed commit with git commit -s
[x] Resolves #5908
[ ] tests added and passing
[x] module layout described at docs/development/architecture.rst is up-to-date

@AndreyPavlenko what do you think?

@AndreyPavlenko what do you think?

As I see, these parameters are not used and can be safely removed.

@ienkovich let's merge it


Export as ES module

I'm trying to use this package within project written in JS and its not able to import correctly because to type difference. Would you be able to export the module as ES Module instead of a Universal Module?

Datebook v7.1.0 now exports an ESM module.


Ensure a single version of each library is selected at startup

The initialise funciton currently adds each package to the path but it does not ensure that only one version is enabled. This can cause problems, for example when trying to reinstall (now that they checksum behaviour wants to access the avialble and current versions)

Probably want default behviour where the latest version of any package is enabled, then this can be subsequently overriden by the user (e.g. in the startup file)

New initialize function which sets the most recent of each installed package as default


Release the resume to production

It's over, I hope it's error free 🤞

Already, the resume is amazing


Add order to payment description

Minimal description length for PE::Payment should 3. For new merchants, it can be smaller. We need to fix it.

 Add "order" to payment description of Prestashop


[Bug]: Extremely slow to load/stream and low resolution

What happened?
I can connect to the doorbell but it taks longer than with the Eufy app. Also when streaming, the frame rate is very low.
This issue occurs when using latest/beta and bridged/unbridged.
Also there's a very noticeable difference between the resolution shown in the Eufy app and the Home app. I could live with it when it would boost the speed but when it's this slow I'd expect the full resolution.
There are also no snapshots available.
Any solutions for this?
Device Type
Doorbell (Supported)
Plugin Version
beta (Best Effort)
HomeBridge Version
v1.4.x (Supported)
NodeJS Version
v16 (Supported)
Operating System
Mac OS X 11+ (Supported)
Relevant log output
[7/13/2023, 4:14:28 PM] Homebridge v1.6.1 (HAP v0.11.1) (Homebridge 6357) is running on port 51610.
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] INFO:  You're using guest admin account with this plugin! This is recommanded way!
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] INFO:  Updating accessory: Eufy HomeBase
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell is set to handle snapshots with cloud images. Snapshots might be older than they appear.
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] INFO:  Adding new unbridged accessory: Doorbell
[7/13/2023, 4:14:29 PM] Doorbell 2434 is running on port 50520.
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] WARN:  Doorbell Couldt not get cloud snapshot: Error: connect ECONNREFUSED ::1:443
[7/13/2023, 4:14:29 PM] [EufySecurity-2.2.0-beta.19] WARN:  Doorbell snapshot handler is initialized without cloud snapshot. Maybe no snapshot will displayed the first times.
[7/13/2023, 4:16:01 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:16:11 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:16:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  Looking for old cached accessories that seem to be outdated...
[7/13/2023, 4:16:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  No outdated cached accessories found.
[7/13/2023, 4:16:32 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:16:56 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting video stream: 1280x720, 30 fps, 299 kbps
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell pendingSession has been deleted. Add it to ongoingSession and end it immediately.
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell Stopped video stream.
[7/13/2023, 4:17:02 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[7/13/2023, 4:17:04 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:17:04 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:17:07 PM] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Doorbell 2434' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[7/13/2023, 4:17:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[7/13/2023, 4:17:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting video stream: 1280x720, 30 fps, 299 kbps
[7/13/2023, 4:17:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[7/13/2023, 4:17:28 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[7/13/2023, 4:17:48 PM] [EufySecurity-2.2.0-beta.19] ERROR: [Doorbell] [Talkback Process] ffmpeg log message:
[error] tcp://<IP_ADDRESS>:14950: Operation timed out

[7/13/2023, 4:17:48 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell Talkback process ended with error: FFmpeg exited with code: 0 and signal: null (Error)
[7/13/2023, 4:17:54 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[7/13/2023, 4:18:21 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell Stopped video stream.
[7/13/2023, 4:18:23 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:18:40 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[7/13/2023, 4:18:40 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting video stream: 1280x720, 30 fps, 299 kbps
[7/13/2023, 4:18:40 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[7/13/2023, 4:18:40 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[7/13/2023, 4:18:47 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell Stopped video stream.
[7/13/2023, 4:18:47 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[7/13/2023, 4:18:49 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:18:49 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:18:55 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[7/13/2023, 4:18:55 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting video stream: 1280x720, 30 fps, 299 kbps
[7/13/2023, 4:18:55 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[7/13/2023, 4:18:55 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[7/13/2023, 4:19:01 PM] [EufySecurity-2.2.0-beta.19] INFO:  Doorbell Stopped video stream.
[7/13/2023, 4:19:01 PM] [EufySecurity-2.2.0-beta.19] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[7/13/2023, 4:19:03 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Talkback Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:19:03 PM] [EufySecurity-2.2.0-beta.19] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[7/13/2023, 4:19:11 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:19:21 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:19:41 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:20:10 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:20:20 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!
[7/13/2023, 4:20:40 PM] [EufySecurity-2.2.0-beta.19] ERROR: Doorbell No snapshot in memory
[Doorbell 2434] Snapshot request handler provided empty image buffer!

config
"username": "xxx",
            "password": "xxx",
            "country": "xxx",
            "deviceName": "Eufy Doorbell",
            "platform": "EufySecurity",
            "ignoreStations": [],
            "ignoreDevices": [],
            "cleanCache": true,
            "cameras": [
                {
                    "serialNumber": "xxx",
                    "rtsp": false,
                    "enableCamera": true,
                    "videoConfig": {
                        "audio": true
                    },
                    "talkback": true,
                    "talkbackChannels": 1,
                    "hsv": true,
                    "hsvRecordingDuration": 90,
                    "hsvConfig": {},
                    "unbridge": true
                }
            ],
            "preferLocalConnection": true,
            "experimentalMode": false

have a look here : https://github.com/homebridge-eufy-security/plugin/wiki/Streaming-Settings

Hi,
Thanks for the reply, I've fiddled around a bit with the settings based on the wiki.
Copy should to be the best option for better quality, however this doesn't connect in any way:
[8/17/2023, 11:08:56 AM] [EufySecurity-2.2.2] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[8/17/2023, 11:08:56 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Video Process] Starting video stream: native
[8/17/2023, 11:08:56 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Audio Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[8/17/2023, 11:08:56 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[8/17/2023, 11:09:16 AM] [EufySecurity-2.2.2] ERROR: [Doorbell] [Talkback Process] FFmpeg exited with code: 0 and signal: null (Error)
[8/17/2023, 11:09:19 AM] [EufySecurity-2.2.2] INFO:  Looking for old cached accessories that seem to be outdated...
[8/17/2023, 11:09:19 AM] [EufySecurity-2.2.2] INFO:  No outdated cached accessories found.
[8/17/2023, 11:09:23 AM] [EufySecurity-2.2.2] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[8/17/2023, 11:09:26 AM] [EufySecurity-2.2.2] INFO:  Doorbell Stopped video stream.
[8/17/2023, 11:09:28 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[8/17/2023, 11:09:28 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Audio Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)

I tried to disable separate processes, but still no luck using copy
[8/17/2023, 11:13:40 AM] [EufySecurity-2.2.2] INFO:  Eufy HomeBase station livestream (P2P session) for Doorbell has started.
[8/17/2023, 11:13:40 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Video Process] Starting video stream: native
[8/17/2023, 11:13:40 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Video Process] Starting audio stream: 16 kHz, 24 kbps, codec: libfdk_aac
[8/17/2023, 11:13:40 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Talkback Process] Starting audio stream: 16 kHz, 20 kbps, codec: libfdk_aac
[8/17/2023, 11:13:45 AM] [homebridge-eufy-security] This plugin slows down Homebridge. The write handler for the characteristic 'Selected RTP Stream Configuration' on the accessory 'Doorbell 2434' didn't respond at all!. Please check that you properly call the callback! See https://homebridge.io/w/JtMGR for more info.
[8/17/2023, 11:13:45 AM] [EufySecurity-2.2.2] INFO:  Doorbell Stopped video stream.
[8/17/2023, 11:13:45 AM] [EufySecurity-2.2.2] INFO:  Eufy HomeBase station livestream for Doorbell has stopped.
[8/17/2023, 11:13:47 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Video Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)
[8/17/2023, 11:13:47 AM] [EufySecurity-2.2.2] INFO:  [Doorbell] [Talkback Process] FFmpeg exited with code: null and signal: SIGKILL (Forced)

So the only way it (kind of) works is with libx264 and separate processes enabled. However the resolution is about as good as a 90's webcam with about 1fps and connection dropping after 10 or so seconds.


pl.LightningModule.load_from_checkpoint fails when matlab.engine is imported

Bug description
pytorch_lightning fails to load a previously saved model when matlab.engine is imported within the script.
This only happens when import matlab.engine is included in the script. The checkpoint_path is not empty.
How to reproduce the bug
import matlab.engine

from my_custom_model import LITModel # this is a pytorch_lightning.LightningModule model

model = LITModel.load_from_checkpoint(checkpoint_path='/path/to/my/checkpoint.ckpt')

Error messages and logs
model = model_class.load_from_checkpoint(checkpoint_path=ckpt_path)
  File "/home/anaconda3/envs/torch/lib/python3.8/site-packages/pytorch_lightning/core/saving.py", line 139, in load_from_checkpoint
    checkpoint = pl_load(checkpoint_path, map_location=lambda storage, loc: storage)
  File "/home/anaconda3/envs/torch/lib/python3.8/site-packages/pytorch_lightning/utilities/cloud_io.py", line 47, in load
    return torch.load(f, map_location=map_location)
  File "/home/anaconda3/envs/torch/lib/python3.8/site-packages/torch/serialization.py", line 705, in load
    with _open_zipfile_reader(opened_file) as opened_zipfile:
  File "/home/anaconda3/envs/torch/lib/python3.8/site-packages/torch/serialization.py", line 243, in __init__
    super(_open_zipfile_reader, self).__init__(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: [enforce fail at inline_container.cc:106] . archive does not contain any files

Environment
- Linux: Ubuntu 22.04.1 LTS
- python==3.8.12
- pytorch_lightning==1.6.4
- torch==1.11.0
- matlabengine==9.13.1
- Matlab: R2022b
- Lightning Component: LightningModule
- GPU models and configuration: model checkpoint was originally trained on different GPU to the one loading it
- How you installed Lightning: conda
- Running: locally

More info
No response

This is most likely a bug with matlabengine, I need to further investigate to pinpoint the issue.


RequestError for requests that do not adhere to the API

Context
It is expected that a client of an active_shipping API passes valid AND "business-logic correct" arguments.
E.g. An destination being passed in through find_rates should be a valid address, or shipment options codes being passed in must be supported by the API.
If not, a RequestError can be raised to highlight the incorrect request.
Review: @kmcphillips @thegedge
cc: @RichardBlair @mdking

Do you need extra metadata like the ResponseError? Why do you need an exception different from the base exception?

The main motivation of making the distinction of RequestError is so that the client knows there's something wrong with the request parameters that's not a generic Ruby ArugmentError.
We could probably pass in the offending parameters and corresponding messages. We don't enough use cases right now to know what's right, but we could also introduce additional metadata.
Here's some context from Shipify https://github.com/Shopify/shipify/pull/1231#discussion_r75152727.

@richardwu because this is an open source project could you try to explain, in a generic way why this is needed?

I think it might be worthwhile to adjust existing exceptions that potentially fit under this new category of exception. For example, do any of these make sense as a RequestError?

Exceptions like error codes increase the footprint of the interface. I think one of the reason this is being proposed is to have a base exception to indicate an error occurred prior to sending the actual request apart from using ResponseError.
@thegedge based on the exceptions you linked to 3 of the 4 could inherit from this new exception class and leverage any new functionality added beyond what StandardException provides.

Closing for now, re-opening in another PR to refactor all the errors.


The clan and player pages appear to be ranked,

but they are sorted in only two ways: total number of wins, followed by alphabetical. This can confuse people; there's other columns there, but they're not being used for secondary sorts.
This has the greatest impact on the player page due to the large number of ties. If i had two victories and my username was Aaaaaaaosdict, i would be the 29th-best player in the tournament, just after wintergalaxy. But if my username was zzzzzzzzosdict, I'd be the 44th-best player in the tourney, just barely above Albertb.
Perhaps: use the visible columns for secondary and tertiary sort.
Perhaps: remove the Player-page columns that don't actually correlate to any leaderboards (games / ratio). They cloud the issue of what exactly the tournament is measuring, and obfuscate what one can do to improve one's standing.
Perhaps: when there is a multi-way tie, shuffle up the tied players/clans, so that a clan/player named "a a a" doesn't have a hidden advantage over team "abc".

oh, and here's some evidence of players believing that the list of clans is in fact the scoreboard on which to compete: https://dpaste.org/Dus8


Support branches

Provide support for cloning a specific branch in GitCommands
Component of PlaceOS/models/issues/26

Closed by #21


self.data should populate from querystring on GET requests

I notice that request.data is not populated on GET requests because almost no HTTP clients send a request body with GET requests, even though some client libraries allow it.  On the contrary, when clients want to pass data via GET, they (almost always) use querystring arguments.  Wouldn't it make sense for restless to conditionally populate request.data from wherever the data is?

You can get the querystring as a dict by using request.GET.get("parameter").

I'm not sure that mixing up URL parameters and body in the same data structure is actually a good idea. Does anyone have more inputs on that?

I don't think query string parameters should be in request.data as query string parameters are not data; they are queries.

The idea here is that when many http client libraries allow you to specify data to send to the server along with the request, it's passed in via the same parameter.  Here's how python's requests library does it for GET requests:
>>> print requests.get("http://httpbin.org/get", {'foo': 'bar'}).text
{
  "args": {
    "foo": "bar"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "close",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.13.0"
  },
  "origin": "XX.XX.XX.XX",
  "url": "http://httpbin.org/get?foo=bar"
}

Notice there's no change to where/how you specify the data parameter when making a POST request:
>>> print requests.post("http://httpbin.org/post", {'foo': 'bar'}).text
{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "foo": "bar"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "close",
    "Content-Length": "7",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.13.0"
  },
  "json": null,
  "origin": "XX.XX.XX.XX",
  "url": "http://httpbin.org/post"
}

What I was asking about is whether it makes sense to mimic this same parity between GET and POST request data on the server side with restless.  I'm not confused about the fact that the querystring is not the same thing as the request body, I'm just pointing out the incongruity between the client and server side here.
The javascript library jQuery does the same thing, FWIW.

I see. In requests to send query strings you use params argument and to send data in the request body you use the data argument.

I'm going to close this issue because it seems pretty limited to just my brain.  Which is fine, I'm used to that.  ;-)
Thanks for the input everyone.


Import 9aeeaf67a3: Improvements to speech recogr for BV demo (by Caitlyn)

This is an automated proposal to look at a commit made by Caitlyn and import it into Overte

Commit:
9aeeaf67a34b6bd7b6a812c265d589e0afee32e7

Author:
Caitlyn

Date:
Tue, 25 Feb 2020 00:45

Improvements to speech recogr for BV demo

Stats:

Filename
Stats
Lines
Added
Removed
Lines in blame

interface/src/Application.h

6
5
1
5

interface/src/SpeechRecognizer.cpp

25
24
1
24

interface/src/SpeechRecognizer.h

4
3
1
2

3 files
-
35
32
3
31

To work on this, please assign the issue to yourself, then look at the commit and decide whether this would be a good addition to Overte.

If the commit is useful, tag it with "Tivoli: Keep", and keep it open until it's merged.
If the commit is not useful, tag it with "Tivoli: Discard", and close it.
If the commit is not useful right now, but might be later, tag it with "Tivoli: Maybe later", and close it.
If it's hard to decide, tag it with "Tivoli: Discuss", and keep it open.

Useful commits should be submitted as a PR against Overte. Tag this issue in PR, so that it's automatically closed once the PR is merged.
You can cherry-pick this issue with this command:
git cherry-pick 9aeeaf67a34b6bd7b6a812c265d589e0afee32e7

Speech stuff could be useful, code needs looking at


suport cache result

When large data is frequently queried, the speed of building data is too slow. For data over 1W, index queries take only a few milliseconds, and building FeatureRow takes more than 3-5 seconds.
In most cases, only a small part of the data will be updated during map movement. Supporting caching when querying can greatly improve the speed of map loading.
public class FeatureIndexRTreeResults implements FeatureIndexResults {
  public FeatureIndexRTreeResults(RTreeIndexTableDao dao,
                                    UserCustomCursor cursor) {
        this.dao = dao;
        this.cursor = cursor;
        String tableName=dao.getFeatureDao().getTableName();
        this.lruCache= CacheManager.getCache(tableName);
    }
@Override
            public FeatureRow next() {
                Long id=dao.getRow(cursor).getId();
                Object obj=lruCache.get(id);
                if(obj!=null){
                    Log.d("lruCache", "cacheID:"+id );
                    return (FeatureRow) obj;
                }
                FeatureRow row=dao.getFeatureRow(cursor);
                lruCache.put(id,row);
                Log.d("next", "nextID: "+id );
                return row;
            }
}
public class CacheManager {
    static Map<String,LruCache> cacheMap=new HashMap<>();
    public static int MaxSize=1000;
    public static LruCache getCache(String tableName) {
        if(cacheMap.containsKey(tableName)){
            return cacheMap.get(tableName);
        }else {
            LruCache cache= new LruCache(MaxSize);
            cacheMap.put(tableName,cache);
            return cache;
        }
    }
}

I wouldn't want to force caching for all query situations.  Instead, I added the ability to iterate through the ids without creating the feature rows (for certain result types including RTree).  Added some cache classes that you can use to maintain the rows within a single table and the rows for all tables in a single GeoPackage.
Example:
FeatureCacheTables featureCache = new FeatureCacheTables();

List<String> featureTables = geoPackage.getFeatureTables();
for (String featureTable : featureTables) {

    FeatureDao featureDao = geoPackage.getFeatureDao(featureTable);
    FeatureIndexManager featureIndexManager = new FeatureIndexManager(activity,
            geoPackage, featureDao);

    for(int i = 0; i < 2; i++) {

        FeatureIndexResults featureIndexResults = featureIndexManager.query();
        for (long featureRowId : featureIndexResults.ids()) {

            FeatureRow featureRow = featureCache.get(featureTable, featureRowId);
            if (featureRow == null) {
                featureRow = featureDao.queryForIdRow(featureRowId);
                featureCache.put(featureRow);
            }
        }
        featureIndexResults.close();
    }

    featureIndexManager.close();
}


Support multiple files from the CLI command

Close #109
This change allows multiple files to be passed into the CLI with one call:
$ ./exe/dead_end **/*.rb
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK

@bkuhlmann can you take a look. Specifically, I'm interested in what kind of output you might be expecting. This is a naive implementation. It executes each file in a loop and outputs as if each call was independent.
It's a little weird to see all those Syntax Ok calls. When a file has a syntax error in it, it will be a bit more readable as it has the filename in the output. I would look like:
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK

--> /private/tmp/scratch.rb

Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

  1  class Dog
  2    def speak
❯ 3      @sounds.each |sound|
❯ 5      end
  6    end
  7  end

Syntax OK
Syntax OK
Syntax OK
Syntax OK

But that's still not great.
I think alternatively we could do something like:
Syntax OK (38 files)

and
--> /private/tmp/scratch.rb

Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

  1  class Dog
  2    def speak
❯ 3      @sounds.each |sound|
❯ 5      end
  6    end
  7  end

1 failure (38 files)

Though I'm not sure if we want to also extend the same output to when there is only one file being checked:
Syntax OK (1 file)

And
--> /private/tmp/scratch.rb

Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

  1  class Dog
  2    def speak
❯ 3      @sounds.each |sound|
❯ 5      end
  6    end
  7  end

1 failure (1 file)

Recap

I'm looking for feedback on the display output

For the case of multiple files (success and failure)
For the case of N=1 files (success and failure)

:bow: I cloned your feature branch and installed the updated version of your DeadEnd gem locally. I had to tweak your dead_end.gemspec with the following to make it install locally because the lib files were not being installed properly (💡this is something Gemsmith makes easy 😛):
spec.bindir = "exe"
spec.executables << "dead_end"
spec.files = Dir["lib/**/*"]
spec.require_paths = ["lib"]

Then I ran with your modifications on my demo project. Here are the full steps to recreate:
gem install gemsmith
gemsmith --generate demo --cli
dead_end **/*.rb

This yielded the following results:

I agree with your thoughts above, I think it'd be neat to print this instead:
Syntax OK (6 files inspected)

It would also be neat to say this too:
# Zero use case
Syntax OK (0 files inspected)

# One file use case
Syntax OK (1 file inspected)

A couple reasons why the above is nice:

Less burden on you, as a maintainer, to have to deal with any conditional logic. Just print the count each time.
Makes the output consistent which is nice. Kind of like how Rubocop or Git Lint works.

:bulb: You could use my String#pluralize refinement to handle pluralization calculations if you wanted.

One final thought -- in case it helps -- in the situation where you detect no issues, only printing the total count is great. In the case that errors are detected, I think it'd be neat to print each violation with maybe a summary at the bottom. Example:
Syntax OK (5 files inspected, 3 errors detected)

Anyway, hope that helps.

I’m still interested, but no actively working on this. May reopen in the future.


Add Service Worker notes after class

I just finished the service worker lesson and saved my notes in the serviceWorker/README.md

Thanks for your notes. I'm not sure about this because  Awesome lists are curated lists of links.  I suggest creating an extra section specifically for notes.

The notes are not really long (50 lines maybe) plus I included some useful link. I didn't want to add all my notes just an overview of how Service Workers work.

@Mycroft1891  A brief summary for each chapter. I like it very much !  Let @DomanskaGrzyb have the final word on this (i've already made the request for a review)

A brief summary and list of useful links is a great idea. Thank you!


SAPUI5/OpenUI5 Popover Table Error

OpenUI5 version:
1.67.xx
Browser/version (+device/version):
Desktop - Chrome Version 75.0.3770.100
Desktop - IE 11 Version 11.706.17134.0
Any other tested browsers/devices(OK/FAIL):
No other devices tested.
URL (minimal example if possible):
https://next.plnkr.co/plunk/uS3mO6gfAZukbCHB
User/password (if required and possible - do not post any confidential information here):
None required.
Steps to reproduce the problem:

Navigate to the plunker link and view the README.md. I have described the steps there.

What is the expected result?
A Popover control should appear next to the pressed status icon of the ObjectStatus control.
What happens instead?
Popover control does not appear. Toolkit does not throw an error in Chrome debugger.
Any other information? (attach screenshot if possible)
This is an issues that occurs in both SAPUI5 and OpenUI5. I have also submitted this issue through SAP ONE Support Launchpad, but I figured two places couldn't hurt.

I should clarify, this behavior changed in upgrading from v1.66.1 to v1.67.xx. That's what the plunker will demonstrate.

Hello @jzavala ,
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>.
The status of the issue will be updated here in GitHub.
Regards,
Gery


smartie cannot support SAS Disk

I test smartie with SAS disk, here is my disk info:
[root@localhost ~]# smartctl -a /dev/sdb
smartctl 7.1 2020-04-05 r5049 [x86_64-linux-4.18.0-305.3.1.el8.x86_64] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               XXXXXXX ( I hide information here)
Product:              MZILT1T9HBJRV3
Revision:             CN32
Compliance:           SPC-4
User Capacity:        1,920,383,410,176 bytes [1.92 TB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
LU is resource provisioned, LBPRZ=1
Rotation Rate:        Solid State Device
Form Factor:          2.5 inches
Logical Unit id:      XXXXXXX ( I hide information here)
Serial number:        XXXXXXX ( I hide information here)
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Fri Sep  1 07:52:12 2023 EDT
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Percentage used endurance indicator: 0%
Current Drive Temperature:     31 C
Drive Trip Temperature:        65 C

Manufactured in week 41 of year 2019
Accumulated start-stop cycles:  145
Specified load-unload count over device lifetime:  0
Accumulated load-unload cycles:  0
Elements in grown defect list: 0

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:          0        0         0         0          0      44609.083           0
write:         0        0         0         0          0      80920.541           0
verify:        0        0         0         0          0          0.109           0

Non-medium error count:      828

SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background short  Completed                   -     819                 - [-   -    -]

Long (extended) Self-test duration: 3600 seconds [60.0 minutes]

Error occurs when use smartie details:
[root@localhost ~]# smartie details /dev/sdb
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/__init__.py", line 115, in identify
    sense = self.issue_command(Direction.FROM, command16, identity)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/linux.py", line 69, in issue_command
    return self.parse_sense(raw_sense.raw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/__init__.py", line 53, in parse_sense
    raise SenseError(sense.sense_key, sense=sense)
smartie.errors.SenseError: <SenseError(error_code=0x05, err='Illegal Request')>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/smartie", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/cli.py", line 130, in details_command
    details_table.add_row("Model Number", device.model)
                                          ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/__init__.py", line 133, in model
    identity, sense = self.identify()
                      ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/__init__.py", line 124, in identify
    sense = self.issue_command(Direction.FROM, command16, identity)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/linux.py", line 69, in issue_command
    return self.parse_sense(raw_sense.raw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/smartie/scsi/__init__.py", line 53, in parse_sense
    raise SenseError(sense.sense_key, sense=sense)
smartie.errors.SenseError: <SenseError(error_code=0x05, err='Illegal Request')>

Thanks! I don't have any way to fix this except theoretically. I'm trying to see if I can mooch an old server with SAS drives for a bit.

SCSI(like SAS) doesn't support ATA commands, include Smart releated and identify command. The tempeture and some other attributes canbe read by scsi log sense command. Because smartie mix SCSI/ATA into SCSI device, I think it should be a significant change, so need the ownner to do the future-work.
This is an example, get the tempeture by pydiskcmd. The tempeture is in parameter_code=0 filed ->parameter_value byte offset=2(bellow is bytearray(b'\x00!')[1] = 33 ℃) :
# pyscsi log-sense /dev/sdb -p 0x0D
issuing log sense command
/dev/sdb:

Log Page Name : Temperature
page_code     : 13
subpage_code  : 0
spf           : 0
ds            : 0
page_length   : 12
Log Parameters:

  parameter_code  : 0
  ctrl_bit        : 3
  parameter_length: 2
  parameter_value : bytearray(b'\x00!')
  --------------------------------------------------
  parameter_code  : 1
  ctrl_bit        : 3
  parameter_length: 2
  parameter_value : bytearray(b'\x00A')
  --------------------------------------------------

Thanks! I don't have any way to fix this except theoretically. I'm trying to see if I can mooch an old server with SAS drives for a bit.

My server is always here, if you are hard to get a system, let's co-wrok to do it.


Temporarily restrict mthree since latest version is not installing properly

Summary
Temporarily restrict mthree to less than 0.21.0 since the latest version is not installing properly due to bug https://github.com/Qiskit-Partners/mthree/issues/97 in order to make the builds in this repo pass.
Details and comments
Fixes #

This has hopefully been resolved with version 0.22 now on PyPi


Fix Norwegian translation typoes (lower case)

Every character should be lower case except for the first one in each sentence.

I've added Norwwegian translations for the remaining items as well.


Scaling the text with print() function

Can you please add a text scaling for the print() function? Thanks.

added scale param to print and font api
print text [ x y [ color [ fixed [ scale ] ] ] ] -> width
font text [ x y [ color [ fixed [ scale ] ] ] ] -> width

close on .23


Client provided cursors

[x] Update cursor on surface commit
[x] Give surface the cursor role
[ ] The cursor actually changes only if the pointer focus for this device is one of the requesting client's surfaces or the surface parameter is the current pointer surface.
[x] If surface is NULL, the pointer image is hidden.
[x] On surface.attach requests to the pointer surface, hotspot_x and hotspot_y are decremented by the x and y parameters passed to the request. Attach must be confirmed by wl_surface.commit as usual.
[x] The hotspot can also be updated by passing the currently set pointer surface to this request with new values for hotspot_x and hotspot_y.
[x] Rootston: set default pointer when leaving a surface

Docs: https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_pointer-request-set_cursor

Okay, so reading the surface's buffer actually works. However, I get strange behaviors with gnome-calculator: the text cursor is not set when the pointer hovers the text input.

Is it possible that they're reusing the surface and committing it again with an updated buffer

In fact, yes. The hotspot can also be updated.

Okay, this works much better now that I listen to commit events. Finishing the remaining TODOs will be much easier.

This PR is ready for review.

This doesn't seem to work for Xwayland views.

Which client? Works well with xterm.

qutebrowser

It seems that it does work, but the client somewhat updates the surface without sending a commit. Is it possible?

Hmm, not that I'm aware of.

Ah, maybe they're calling set_cursor again with the same surface, updated with a new buffer. I've planned to fix that, but forgot it.

 It gets triggered but handle_cursor_surface_commit doesn't get called.

All right, just fixed cursors for xwayland, after struggling a few hours.

Thanks!


HPC Checkpointing -- Restore Local Step

🚀 Feature
First, I'm not sure if this is a feature request or a bug, as it's not clear what the intended behavior is from the docs. However, when HPC checkpoints are resumed through auto resubmission, it would be useful if the training were to resume from the same epoch with the same local step.
Motivation
Currently, upon resuming an hpc checkpoint, the trainer proceeds to the next epoch, cutting off the epoch that was interrupted by resubmission. This leads to a number of frustrations:

Intended schedules are not followed precisely, as the total number of training steps is fewer than expected.
Experiments (especially those conducted by collaborators on non-hpc systems) are difficult to reproduce, as it depends on when the jobs are resubmitted.

Pitch
Ideally, I would like for the training to be reproducible. From a user perspective, the most convenient solution would be for the training to resume from exactly the same point as it was paused: the same epoch and step. This would allow for reproducible experiments, easier collaboration, and more precise schedules.
Alternatives
If resuming midway through an epoch is not technically feasible, I would be happy with the option to resume from the start of the epoch that was interrupted, instead of skipping to the next one. This would result in some duplicated computation, but it can be worth it for the gain in reproducibility. Obviously, this depends on the user, but it would be nice for this to be an option.
Perhaps this is already possible through the use of the checkpoint hooks in a lightning module, but it is not clear to me how to modify the trainer state. If this is possible, it would be nice if someone were to add an explanation to the docs.
cc @borda @carmocca @justusschock @awaelchli @ninginthecloud

Hey @AlexSchuy,
This is currently supported as an experimental feature. https://pytorch-lightning.readthedocs.io/en/latest/advanced/fault_tolerant_training.html?highlight=fault tolerant training
Would you need to do the following:
PL_FAULT_TOLERANT_TRAINING=1 python script.py

On master, there is currently 2 mode: Automatic and Manual.
The automatic example is here
For manual, you can define state_dict, load_state_dict on your dataset, samplers, and Lightning will collect them and restore them automatically.
I didn't have time to add the documentation yet, but here is a test that could be useful.
Best,
T.C

Hey @AlexSchuy,
Any updates ?


Edited Building an Audience

Proposed changes
added information box regarding what is considered an audience
Merge timing

@Hopes-Chantel  does this works till need to be done? This PR is quite old and still in draft state, with merge conflicts. We plan to close this PR on Friday January 26, 2024. If the work still needs to be done, please let us know.