Any chance we could get a Prebuilt Windows Release with dependencies included?

It would be nice if we could get a release with everything included to run the code or at least run the demo, something similar to this , there is a folder called _internal with a python virtualenv and all the dependencies to run that DeepFake project, even scripts to do specific tasks fast like training. Currently its hard to run the demo for First Order Motion Model for Image Animation as it has some dependencies that need a specific version of some libraries, in my case I tried to run the demo and it didnt work, after a few hours downloading all the necessary stuff and datasets I couldnt run it no matter what I tried, would be nice to have something we can test at least the demo right away and then we can decide what to continue testing.

Have you tried to use google-colab notebook demo.ipynb? You can run a demo on google servers,  and nothing need to be installed.

I dont really like Colab and I actually have a really potent computer so I would rather run it on my own computer, not only it will be faster it will also be safer to run it on my own computer.

I can hardly help you, since I don't have any windows machine available.

I was able to get it running on Windows. Make sure you've using 64-bit Python, then install the PyTorch 1.0.0 wheel from here. Then you can use pip for the rest of requirements.txt.

@WilliamOConnell  thanks for the info, at least now I know someone was able to make it run on windows so I can try again later, also can you share the exact steps you used on windows to make it run?, if its not a problem of course I would appreciate any extra information.

I downloaded the checkpoint for VoxCelebs (vox-cpk.pth.tar) and put it in a folder called checkpoints/. Then I made a virtualenv, installed the wheel for PyTorch, and did pip install -r requirements.txt to install everything else. I had some bumps along the way (needed to install 64-bit Python as I mentioned) but that was about it.
I was a little confused by the instructions about how to run it so I just copied off the Colab to make my own .py file that looks something like this:
import imageio
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage.transform import resize
import warnings
warnings.filterwarnings("ignore")

source_image = imageio.imread('mycontent/source.png')
driving_video = imageio.mimread('mycontent/driver.mp4')

source_image = resize(source_image, (256, 256))[..., :3]
driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]

from demo import load_checkpoints
generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml', checkpoint_path='checkpoints/vox-cpk.pth.tar')

from demo import make_animation
from skimage import img_as_ubyte

predictions = make_animation(source_image, driving_video, generator, kp_detector, relative=True)

#save resulting video
imageio.mimsave('generated.mp4', [img_as_ubyte(frame) for frame in predictions])

Obviously you should change the paths for the video files and such to wherever you put them.

I see, thanks @WilliamOConnell , im downloading again all the datasets and all the necessary files so I have everything ready, I will try everything in an hour or two, will let you know if it works and if it does I will try to create a virtualenv with some scripts for windows so its "plug and play" and comes with everything included where the only thing you have to install is your video card driver just like the DeepFakeLab link I put on my first comment.

Hey guys, just an update, today when I woke up I tried again following the steps mentioned before by WilliamOConnell and I managed to run the demo on Windows 10, I did get a lot of warnings, some of them were because my two GPUs were different but thats not a problem for what I saw, also had to update numpy to the latest version as the one on the requirements.txt gave me some errors but after updating it did work, I recommend you guys change the requirements.txt file so pip installs the most recent version of numpy instead. Im going to start learning how everything works on the code and how to use it correctly and after that I'll see if I can help with some improvements.

@AliaksandrSiarohin Im opening a new issue to collect all the bugs that are specific to Windows, the goal is to gather there all the windows specific issues or have some comments pointing to issues that happen on windows but not on Linux so its easier for you or someone else to fix those bugs, if you could pin that issue so it appears on the top of the issue tab when someone go to check the issue list it will be easier for people to check there for known problems or solutions on Window.

Please keep us posted, i would love to try this out on my w10.

@AncientSion are you getting some errors when running it on windows? if you are getting some errors post it on Issue #43 or here so I can try to fix it, im currently fixing a log folder issue where the name has characters that are not allowed on windows, I've already fixed a PyYAML yaml.load(input) deprecation warning that happens on windows and not sure if also happens on linux and created a PR for it but have to wait until the repository owner accept it.

@WilliamOConnell have you tried training on Windows? you said the demo ran for you without any problem but have you tried training? if you did, did it run without showing any error or it didnt work for you? im asking because after I managed to run the demo I cant seem to be able to train with my own dataset, the run.py script always show some errors, the last one I was getting was about ffmpeg not reading some frames, Im trying to fix it but no luck so far.
python run.py --config config/test.yaml --device_ids 0,1
Use predefined train-test split.
Training...
D:\Python\lib\site-packages\torch\nn\parallel\data_parallel.py:25: UserWarning:
    There is an imbalance between your GPUs. You may want to exclude GPU 1 which
    has less than 75% of the memory or cores of GPU 0. You can do so by setting
    the device_ids argument to DataParallel, or by setting the CUDA_VISIBLE_DEVICES
    environment variable.
  warnings.warn(imbalance_warn.format(device_ids[min_pos], device_ids[max_pos]))
  0%|                                                                                | 0/100 [00:00<?, ?it/s]D:\Python\lib\site-packages\imageio\core\format.py:403: UserWarning: Could not read last frame of first-order-model-master\data\test\train\91pn9FUZ9NS.mp4.
  warn('Could not read last frame of %s.' % uri)
Traceback (most recent call last):
  File "run.py", line 77, in <module>
    train(config, generator, discriminator, kp_detector, opt.checkpoint, log_dir, dataset, opt.device_ids)
  File "D:\Alejandro\Projects\Python\Otros\Machine Learning\DeepFakes\first-order-model-master\train.py", line 50, in train
    for x in dataloader:
  File "D:\Python\lib\site-packages\torch\utils\data\dataloader.py", line 637, in __next__
    return self._process_next_batch(batch)
  File "D:\Python\lib\site-packages\torch\utils\data\dataloader.py", line 658, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
imageio.core.format.CannotReadFrameError: Traceback (most recent call last):
  File "D:\Python\lib\site-packages\imageio\plugins\ffmpeg.py", line 565, in _read_frame_data
    (len(s), framesize))
RuntimeError: Frame is 0 bytes, but expected 2030400.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Python\lib\site-packages\torch\utils\data\dataloader.py", line 138, in _worker_loop
    samples = collate_fn([dataset[i] for i in batch_indices])
  File "D:\Python\lib\site-packages\torch\utils\data\dataloader.py", line 138, in <listcomp>
    samples = collate_fn([dataset[i] for i in batch_indices])
 first-order-model-master\frames_dataset.py", line 43, in read_video
    video = np.array(mimread(name, memtest=False))
  File "D:\Python\lib\site-packages\imageio\core\functions.py", line 286, in mimread
    for im in reader:
  File "D:\Python\lib\site-packages\imageio\core\format.py", line 397, in iter_data
    im, meta = self._get_data(i)
  File "D:\Python\lib\site-packages\imageio\plugins\ffmpeg.py", line 396, in _get_data
    result, is_new = self._read_frame()
  File "D:\Python\lib\site-packages\imageio\plugins\ffmpeg.py", line 585, in _read_frame
    s, is_new = self._read_frame_data()
  File "D:\Python\lib\site-packages\imageio\plugins\ffmpeg.py", line 571, in _read_frame_data
    raise CannotReadFrameError(fmt % (self._pos, err1, err2))
imageio.core.format.CannotReadFrameError: Could not read frame 347:
Frame is 0 bytes, but expected 2030400.

No, I didn't try training it. Can't help there, sorry.

try docker
https://github.com/AliaksandrSiarohin/first-order-model/pull/55

Have you tried to use google-colab notebook demo.ipynb? You can run a demo on google servers, and nothing need to be installed.

yes lots of errors fighting to make it work

I can confirm I got it working on windows 10 after a bit of struggle. 64 bit python was the main hangup. I also had to re install several files that were presented in obvious error message requests from python even after the requirments file. I used the pytorch website to download the new pytorch https://pytorch.org/
Another odd thing is after running the script it took a full minute before any feed back happened so be patient

I started today to mess around with this and I've gotten 2 errors with Windows.
demo.py:27: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
'ffmpeg' is not recognized as an internal or external command,
operable program or batch file.
Seems like there would be massively helpful step by step documentation for Windows environment setup. Also these couple errors seems to be like a wall for me.


git: move credential helpers to exec path

If git-credential-osxkeychain isn't on your PATH, git will fail to find it. Moving it to git's exec path^1 allows it to be located more reliably. In other distributions such as Fedora^2 and Homebrew^3, credential helpers are not added to the user's PATH unless they are supplied by another package (e.g. git-credential-gcloud).
If there are concerns that people may be relying on referencing these binaries directly we can add symlinks in bin for backwards compatibility, but that's unlikely and easy to address.
This unfortunately affects a lot of packages so I haven't ran nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD" to completion, but since this only affects credential helpers it's unlikely to impact other packages.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I first encountered this just running git fetch with a profile that wasn't on my PATH, but I think this would also affect things like git maintenance which sets up a job in launchd, and likely won't have PATH configured by default. This would likely affect maintenance tasks running via systemd too if folks were relying on git-credential-netrc.

Mass ping, please resubmit.


Example tests to run in parallel

Right now we run each example's tests sequentially in tests/run_all_tests.sh (this is due to https://github.com/pytest-dev/pytest/issues/3151). Because of that, we can't run different example tests in parallel (though pytest can do this within a single run).
Consider either finding a way to work around the pytest "can't define two tests with the same filename in different directories", or if that's really not possible, at least try to find a way to rewrite tests/run_all_tests.sh to run in parallel but safely (e.g. can we run pytest multiple times -- does it keep any state directory that we need to isolate?)

/cc @Marvin182 @andsteing

Marking as "pull requests welcome"

Current timings from test when run on Github:
- flax/ in 61.14s (0:01:01)
- examples/pixelcnn in 10.56s
- examples/seq2seq in 20.55s
- examples/mnist/ in 9.11s
- examples/ppo/ in 20.88s
- examples/graph/ in 5.15s
- examples/sst2/ in 22.40s
- examples/lm1b/ in 42.18s
- examples/imagenet/ in 141.12s (0:02:21)
- linen_examples/pixelcnn/ in 30.65s
- linen_examples/wmt/ in 94.05s (0:01:34)
- linen_examples/seq2seq/ in 25.71s
- linen_examples/mnist/ in 10.00s
- linen_examples/nlp_seq/ in 2.28s
- linen_examples/imagenet/ in 330.18s (0:05:30)

@avital is there a way to see Github VM CPU usage during the build workflow? How many cores do we have?
When running locally, expensive tests like wmt and imagenet that make most of the test time max out a single core, so parallelizing would only make sense if we have multiple cores on Github.

My guess is that the default is one cure, but I'm not sure. Looks like we can use "self-hosted runners" if we want to.
@jheek knows more than me about GitHub actions, maybe he knows how we can find the VM specs for the free GitHub action build machine

The specs of the machine seem to be 2 Cores with 7Gb ram.
We could start using pytest -n auto to automatically parallelize to the number of CPUs available.

I also noticed we are spending most time compiling. I'll try disabling the heavy LLVM optimization in the longer tests

Filed #741 for disabling LLVM optimization in some tests


The path to TorchScript

Here is what I currently see as the path to enabling the use of equistore within TorchScript.
For reference, TorchScript is a small, Python-like language that is implemented inside the torch library (in C++). It can be extended with new operations/classes in Python (if the new operation/class only use the TorchScript-compatible subset of Python); or in C++ (completely custom operations/classes are possible).
To enable using equistore with TorchScript, we need to add a couple of custom classes (TensorMap, TensorBlock, Labels) to TorchScript, and we need to implement these in C++ (since we need to call into the core equistore library). This mean there will be two version of each class available from Python: the current, pure Python ones, and the TorchScript ones. See point 4 below for how to handle this.
Once we have the basic classes and member functions (such as keys_to_properties) available from TorchScript, we'll have to make sure everything in equistore.operations is available from
0) Clean separation of the core shared library
A pre-requisite to the TorchScript version of equistore (and the ability to use this version together with rascaline) is to ensure only one version of the core functions/structs exists, by splitting it into a standalone shared library that can then be loaded by both rascaline and TorchScript.

[x] pull request: #85

1) Write the new TorchScript classes
We can then start writing C++ code to create new classes inheriting from torch::CustomClassHolder, and registering these classes with TorchScript. This means re-wrapping all classes and exposing all functions in a TorchScript-compatible way (e.g. all data uses torch::Tensor, …). This will first leave in a separate package (equistore_torch) in this repository. This can happen as a set of PR to a long-lived branch if we want to parallelize the work

[X] create a long-lived branch with basic infrastructure to build and install the code #233

[x] implement the new classes:  #263

[x] Labels
[x] Implement equistore::DataArrayBase for torch::Tensor
[x] TensorBlock/Proxy for gradients
[x] TensorMap

[x] merge the long-lived branch

[x] Implement serialization for the torch version, this requires the same core functions as #94.

2) Change how Labels works
Because all the data needs to be either a custom class or one of TorchScript type, we will have a problem with Labels. Right now, these use numpy's structure arrays to carry around the names of the columns in Labels and allow indexing with these columns names. Unfortunately, structured data types are not supported with torch tensors, meaning we will need to have a different API for TorchScript.
We could have a different API for standard Python & TorchScript, but I think it would be better to be able to drop in one or the other version in the same Python code, to make it easier to move between them (see point 4). So it might be better to refactor the Python version of Labels to match what the TorchScript version will be. Instead of inheriting from np.ndarray, the new Labels should be a standalone class, with a values and names attributes (fixing #63), with some functions to support fancy indexing & slicing of the Labels.

[x] change the pure Python Labels class

[x] design the class and update the core tests
[x] update all operations to use the new Labels API

[x] make sure the TorchScript and pure Python version of Labels agree

The first part of this could be done in parallel to point 1.
3) Ensure equistore.operations is usable from TorchScript
Once we have all the base classes available in TorchScript, we'll need to go through the operations one by one, and add a test that they can be exported to pure TorchScript, without any Python.

[x] make sure the functions in _dispatch can be serialized to TorchScript
[ ] go over the high-level operations and port them

[ ] empty_like
[ ] ones_like
[ ] zeros_like
[ ] dot
[ ] lstsq
[ ] solve
[x] allclose
[x] equal
[ ] join
[ ] splice
[ ] split
[ ] sum_over_samples
[ ] mean_over_samples
[x] remove_gradients
[ ] add
[ ] divide
[ ] multiply
[ ] pow
[ ] substract
[ ] any other operation added in the mean time ...

4) Select between pure Python & TorchScript versions of classes
Before or at the same time as point 3, we will also have to pick how the user should interact with the TorchScript version of the code. I can basically see two (and a half) API:
# version A, "explicit"
from equistore import TensorMap  # gives the pure Python class
from equistore.torch import TensorMap  # gives the TorchScript class

# version B.1, "implicit"
from equistore import TensorMap  # if torch can be imported, gives the TorchScript class; otherwise gives the pure Python class

# version B.2, "a bit less implicit", not sure if this is possible
from equistore import TensorMap  # gives the pure Python class

# somehow tell pytorch to replace TensorMap with `equistore.torch.TensorMap` when exporting to TorchScript.

This is a decision we can mostly delay until step 1 is done.

Does this also allows us to use torch.nn.functional operations on TensorMaps https://pytorch.org/docs/stable/nn.functional.html ?

No, we would still have to wrap these with operations. Although for things applied on a block-by-block basis, without metadata manipulation, we could create a single operations (something like apply(tensor, function)).
TorchScript knowing about equistore is more that

TorchScript knows there is a TensorMap class
there is a .block().data function that can be used on TensorMap and return a torch.Tensor
... same thing for all classes and functions in equistore

This means we still have to write code to do something useful, but TorchScript will understand the metadata manipulation and data extraction parts of our code.

Regarding step 4 (Select between pure Python & TorchScript versions of classes), the decision is to force an explicit import like this:
# using Python backend
from equistore import TensorMap
import equistore

data = equistore.load("...")
modified = equistore.dot(data, equistore.transpose(data))
# alternatively modified = data @ data.T

# using TorchScript backend
from equistore.torch import TensorMap
import equistore.torch

data = equistore.torch.load("...")
modified = equistore.torch.dot(data, equistore.torch.transpose(data))
# alternatively modified = data @ data.T

where equistore.torch.dot and equistore.dot are not the same function. Instead we will import equistore-operations twice in different context (defining TensorMap to be the one from equistore-core or equistore-torch), and re-exporting all functions from both equistore and equistore.torch. We need to define the functions twice to make sure the type __annotations__ used by the TorchScript compiler are pointing to the correct versions of the classes.

This will also make it really easy to port a model to TorchScript, just changing the import
import equistore

to
import equistore.torch as equistore

I played around with PR #263 and wanted to share my problems with equistore.operations so far.

most (maybe all) np.where calls need to dispatched because Labels.values can be torch.Tensor
tensor.Tensor.size does not exist
unique does not support return_indices so the dispatch function must implement this, shouldn't be complicated

We might need to remove the typings in the operations. One could also set them all to torch.TensorBlock when HAS_TORCH is True, but this would be obscure typing, since we still can do operations with numpy equistore objects

So the plan here is to have two copies of the operations, generated from the same source code. One of the copies would be in equistore.add/equistore.operations.add, and have type annotation using equistore.core.TensorMap. The other one would be in equistore.torch.add/equistore.torch.operations.add, and have type annotation using equistore.torch.TensorMap.
This is possible by using importlib, which allow re-importing a module with different global context (the global context would either expose equistore.core.TensorMap or equistore.torch.TensorMap).

Now that #320 and #310 have been merged, we can start the final part of this journey, making sure all operations are compatible with torch script! There is an example of how to do this in b4969ed51d55a8a845acb4bad22ed1c86734ddc9, basically the following steps:

add a test file for this operation
check that the operation still runs when called from equistore.torch.<operation>
check that the operation compiles with torch.jit.script(equistore.torch.<operation>), and that the resulting code runs as well.

Please reply here to pick operations you would like to convert!

I'll try to start with empty_like, ones_like, zeros_like. I can take more if that goes well

Acutally, is it a smarter idea to start from the logic functions? These can be used to perform all sorts of checks in other tests

Hm... I don't see that operations like allclose and equal are used in other operations (only in the tests of other operations which should not be relevant for testing if it is torch scriptable). But if you find a function/operation that is not torch scriptable that is used in multiple operations, then yes please do it first. That is why we done so far the functions in _dispatch.py (already merged)  and _utils.py https://github.com/lab-cosmo/equistore/pull/322

Actually Guillaume's sample test does test some basic correctness of the output, and these operations would be useful for that

Ok, I'll work on it

I'll also try add, subtract, divide, multiply, pow if nobody else wants them

Claiming reduce_over_samples operations, if nobody else is interested

All done! 🎉


Add examples/shaders/shaders_lightmap.c to Makefiles

Hello,
This pull request includes examples/shaders/shaders_lightmap.c to the Makefiles (Makefile, Makefile.Web), since it was missing.
Best regards.

@asdqwe thanks for the review!

Hello @raysan5
Thanks for the reply!
Still on this subject, is there some specific reason for core_basic_window_web.c not being included on the Makefiles? I only saw mentions of it: Makefile#L325-L328, Makefile.Web#L295-L298.
If not, I can send a pull request to add it.
Best regards.

@asdqwe I just prefer not to include it, it's just a sample of core_basic_window.c reformatted for emscripten... but actually nowadays it is not really needed, ASYNCIFY works really good with regular C code structure.

Hello @raysan5
Got it! Thanks for the explanation!
Best regards.


Chaining compatibility

This PR makes the module compatible with module chaining by replacing the push approach to burning the hat (IHats.setHatWearerStatus) with a pull approach (IHats.checkHatWearerStatus). The former will not work when the module is chained with other modules since, while the latter will.
Additionally, I've bumped the libs and am using HatsModuleFactory v0.7.0 in the tests, which requires an additional salt nonce argument.

https://github.com/Hats-Protocol/allowlist-eligibility/blob/102aa2c02e8be637fdd95b3c51ca4780daf99b1d/src/AllowlistEligibility.sol#L283-L292
Forgot one more instance of setHatWearerStatus.


I cant really get this thing to work on windows, followed the instruction, downloaded node but i am getting an error when i try to run it

opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v18.15.0
is this to outdated to run anymore or what?

I get the same issue on Windows 8.1 but not on Windows 10

Streamwall is overdue an electron / node upgrade. I'm currently busy with other projects, so can't estimate when I'll be able to get to this. I'd welcome a PR that bumps electron to the latest version and tests functionality.

Hey Chromakode, i understand that this isn't a high priority thing in your life anymore, saw you had some health issues also at some point and the world have moved on from where it was with all the protests in the US back then, and you have more important things to focus on and probably have to earn money doing actual paid work and so on, i'm not that much into this kind of programing, but i feel like it would have been smarter to have ported this to something that wouldn't constantly require all this maintenance for it not to break, even if it was just made as a chrome or firefox app it wouldn't require constant maintenance, anyways that's just my thoughts, also i think the world is going to explode in all kinds of protests the coming year or two, like we see in europe now, ive personally been covering the paris protests lately with thousands of viewers hungering for the multiscreen streams, (which i just do with lots of chrome instances that i use a chrome app that remove all the youtube things from the window)  and even though US has dialed down with the protests for now, the world might blow up soon including in the US so multistreaming will be growing again, and you made the best software to do it with. The fight against the powers that rule us is not over. All the best @chromakode

it would have been smarter to have ported this to something that wouldn't constantly require all this maintenance for it not to break, even if it was just made as a chrome or firefox app it wouldn't require constant maintenance

Funny you would say that... I originally tried to make Streamwall in Chrome and bumped up against the limitations all browser-based options do. The electron architecture is a big part of what makes Streamwall so effective.
I agree that there's important work to come. I will continue to update Streamwall as time permits.

Yeah i was thinking that probably chrome wouldn't be too happy with this, that's why i was thinking about firefox too, i use "Windowed - floating Youtube/every website" on chrome, which puts in 3 options when you hit full screen on any video, one of them "windowed" basically pulls the video out in a separate window consisting of only the video player and you can open as many as you want, which works fine, but theres no attribution and you have to manually scale all the windows. Thank you for taking the time to answer, all the best

I've pushed a lightly tested new version with electron and other dependencies updated: https://github.com/streamwall/streamwall/commit/a581ba2c6f536abbac1d1c1a6326a681b6138c40
This should resolve the above issue. I'll push this version to the release branch after it's had some more testing.

Wow, thank you very much!, can confirm it works for me now. Amazing

So after some quick testing i see that it's not loading tiktok livestreams, if you put the tiktok url ending with the username of the channel, it loads the last video the user uploaded, not his current livestream , if you then add /live after the username, it doesn't load anything at all.
Also i don't know if this is normal but the streamwall window isn't full 1920x1080, seems to be a little smaller, also tried to start it from a toml file where i specified the resolution 1920x1080, but still isnt full resolution

it would have been smarter to have ported this to something that wouldn't constantly require all this maintenance for it not to break, even if it was just made as a chrome or firefox app it wouldn't require constant maintenance

Funny you would say that... I originally tried to make Streamwall in Chrome and bumped up against the limitations all browser-based options do. The electron architecture is a big part of what makes Streamwall so effective.
I agree that there's important work to come. I will continue to update Streamwall as time permits.

I am thinking this project would do better to move to nextjs I am looking at the undertaking now. the code is so complex though its taking me some time to fully understand it

Nice, i see that you are covering the protests too so you probably have some ideas how it can be improved, really hope to see it, please let me know if you get to releasing something

I am thinking this project would do better to move to nextjs

I'm curious as to what you think this might improve or fix aside from adding another build dependency

I am thinking this project would do better to move to nextjs

I'm curious as to what you think this might improve or fix aside from adding another build dependency

Not so much an additional dependency as a rework into a whole new environment. But I am thinking a more web deployable version.
My use case idea is running a media outlet that uses aggregated streams in many ways including from direct broadcast as well as making the studio more accessable on the go.
However i dont think my idea will work due to how electron functions. I do not believe it can be mae to trigger its window for a web user but I have not had time to look into that, its where I got stuck, it can function fine in next as a locally deployed application, and my crude set up runs a lot smoother than the node version.

I do not believe it can be mae to trigger its window for a web user

Oh, what do you mean by "trigger" here? I've been poking at this project again since the college protests picked up, and I'm almost back up to speed with things. There's a lot of cleanup / polish opportunity here, which is why I was curious about your interest in Next.js. I'm not sure it solves any problems in Electron, as you say, but it's a good line of thinking
In my opinion, there's a distribution issue with this project that we can solve by creating multi-platform releases with something like electron-builder. I've toyed with Dockerizing the development of this app, but ultimately I think it should be able to be run natively (i.e., without a working Node dev env) so that OBS and other broadcasting software can "just work." Distribution and catching up on tech debt feels like a good place to spend effort here at the moment
It sounds like your use-case is a little different in that you want a website where users can effectively run their own Streamwall, but within the browser. I'd have to give it some more thought in terms of how that could be accomplished, because much of Streamwall depends on using Electron's BrowserView, which is sort of like an iOS or Android WebView. Off-the-cuff, I don't know how that could be done in a traditional browser without running into some significant iframe and CORS limitations


Error with accuracy coding for biased starting point

Hi! I'm having difficulty with implementing the biased starting point. I'm using the same code as provided in the docs:
import numpy as np
from pyddm import InitialCondition
class ICPointSideBias(InitialCondition):
    name = "A starting point with a left or right bias."
    required_parameters = ["x0"]
    required_conditions = ["left_is_correct"]
    def get_IC(self, x, dx, conditions):
        start = np.round(self.x0/dx)
        # Positive bias for left choices, negative for right choices
        if not conditions['left_is_correct']:
            start = -start
        shift_i = int(start + (len(x)-1)/2)
        assert shift_i >= 0 and shift_i < len(x), "Invalid initial conditions"
        pdf = np.zeros(len(x))
        pdf[shift_i] = 1. # Initial condition at x=self.x0.
        return pdf

But the assertion line for invalid initial conditions is inevitably called after a few iterations. Additionally, the docs explain that x0 can be positive or negative and that this indicates the side of the bias. However, the example code in the cookbook is written so that x0 is always positive:
model = Model(IC=ICPointSideBias(x0=Fittable(minval=0, maxval=1)),
              dx=.01, dt=.01)

I'm just a bit confused as how to how to approach this problem. The model works fine without the bias.

Can you ever get a situation where the boundary is greater than x0?  I.e., can the boundary ever be less than 1?
If not, please post more information including the full error output and the full code for the model and fitting.

Yes, in our unbiased model, bound is often less than 1.

Your bound and x0 cannot intersect, otherwise the starting point will be outside the bounds.  Either adjust the bounds on one or both of the parameters to make sure they don't intersect, or use ICPointRatio instead: https://pyddm.readthedocs.io/en/stable/cookbook/initialconditions.html#ic-ratio

Thank you!


RTIC v2 RTC monotonic drivers

Summary
Adds RTC-based RTIC v2 monotonics drivers.
This addresses issue #765 and is the culmination of a lot of discussion there.
Note that it was decided along with the RTIC team that ATSAMD RTIC monotonics should be released as part of the HAL instead of in rtic-monotonics.
Note that this release of the monotonics is opinionated in the sense that only the best monotonic is provided for each chip variant. See the module documentation of rtc::rtic for details. For reference, the alternative of releasing two monotonics, one for each RTC mode, is preserved in the rtic-v2-rtc-monotonics-full branch. Compare the module documentation of rtc::rtic in that branch for details on why there is clearly a best choice for each chip variant.
Checklist

[x] All new or modified code is well documented, especially public items
[X] No new warnings or clippy suggestions have been introduced - CI will deny clippy warnings by default!

Ok, I just discovered a stress test freezing issue when building in release mode, which I had not really tested before. Please do not merge until I get this fixed.

@kyp44 does the last commit address all the freezing issues? I'm hoping to have the time to read the PR in detail soon™.

@jbeaurivage Yeah, this does fix the issue, which, despite taking me hours to troubleshoot, was a very simple fix. I am still letting the stress test run for a long period of time, but I am 98% confident that there will not be further issues. I like to wait at least 36 hours to get a hardware counter rollover to be sure. Here is a time showing how much time is left. If you want to be sure not to waste any of your time, wait until this timer is done, and I will check in and confirm that it's still going.

Oh also, not a big deal at all, but #[hal_macro_helper] is meant to be able to add the #[hal_cfg] attribute to blocks and statements inside functions, since that's not currently supported by the compiler (apart from the #[cfg] attribute) . For items outside of functions, simply doing use atsamd_hal_macros::hal_cfg is sufficient.


Compilation of MFEM-4.0 with CUDA support

Hello,
My question is related to https://github.com/mfem/mfem/issues/1116. I couldn't find specific instructions on how to build CUDA-aware MFEM and the previous post mentions using cmake. My question is simply which is the recommended procedure to compile and build MFEM-4.0 with CUDA support.
Thank you.

From https://github.com/mfem/mfem/blob/master/INSTALL:
- CUDA support requires an NVIDIA GPU and an installation of the CUDA Toolkit
  https://developer.nvidia.com/cuda-toolkit

You need to have the CUDA toolkit installed on your machine first.
CUDA-enabled build:
   make cuda -j 4
   (build for a specific compute capability: 'make cuda -j 4 CUDA_ARCH=sm_30')

Example 1 GPU run:
     ex1 -pa -d cuda

Optionally you may want to install the OCCA and RAJA libraries that will give you access to additional backends
- OCCA support requires the OCCA library
  https://libocca.org

- RAJA support requires installation of the RAJA performance portability layer
  with (optionally) support for CUDA and OpenMP
  https://github.com/LLNL/RAJA

Hi @tzanio. The latest cuda toolkit was installed, I just wanted to know about the flags. Thanks.

While this instruction works and runs ex1, I am having a difficulty when using CMake. What I
did is following, and the second make somehow calls g++ instead of mvcc. Am I missing something?
cmake .. -DMFEM_USE_CUDA=YES
make -j 4
make -j 4 examples

@sshiraiwa this issue related to the cmake files should be fixed in the upcoming v4.1 release as noted in a similar issue #1316 . In the mean time, you should be able to copy the modified sections of the cmake files related to the CUDA in PR #1104  and get the examples up and running.

I see. Thank you.

On Feb 28, 2020, at 2:43 PM, Robert Carson<EMAIL_ADDRESS>wrote:
@sshiraiwa this issue related to the cmake files should be fixed in the upcoming v4.1 release as noted in a similar issue #1316 . In the mean time, you should be able to copy the modified sections of the cmake files related to the CUDA in PR #1104 and get the examples up and running.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


Migrate DApp and Analytics to Heroku

Migrate to Heroku then deprecate GCP

[ ] dapp.ousd.com
[ ] analytics.ousd.com

Oops. Dupe of #1214


Benchmark results of TextVQA

We got different benchmark results while evaluation the MiniCPM-V 2.0 model provided in huggingface. For example, we got only 66 on TextVQA, which is different from 74.1 provided in the technique report. We directly use the chat api in modeling_minicpmv.py like this.
        output_ids, context, _ = model.chat(
            image=image_tensor,
            msgs=msgs,
            context=None,
            tokenizer=tokenizer,
            sampling=True,
            temperature=0.7
    	)

Would you please provide the detailed hyperparameters for the evaluation?

Hi Cbtor👋, I'm delighted to see that you are trying out MiniCPM-V-2. In order to reproduce the scores reported in our study, you can use the following settings. Additionally, I will publish the evaluation details in the readme to allow more people to directly reference it~
prompt = "Answer the question directly with a single word" + '\n' + question
default_kwargs = {
max_new_tokens: 100,
sampling: False,
num_beams: 3
}
Feel free to contact me if you have any concern😊～

Thank you for your reply. I tried the prompt and the parameters you provided, but only get 68.62 on TextVQA, while the results of MME benchmark I got are even better than that in your technique report (1850). Could you please provide a simple evaluation script on TextVQA?


Unsafe any in catch

Bug Report

TSLint version: 4.5.0
TypeScript version: 2.4.1
Running TSLint via: gulp

TypeScript code being linted
try {} catch (e) {
  var a = e.toString();
}

with tslint.json configuration:
no-unsafe-any: true

Actual behavior
error noUnsafeAny: Unsafe use of expression of type 'any'.
Expected behavior
No error. It is impossible to use try-catch with the rule even for logging error message.

e can be null/undefined too.

So what is the solution? I have been adding
// tslint:disable-next-line:no-unsafe-any
in my catch clauses. But is there a better way?

Use template string:
try { throw null; } catch (e) { console.log(`${e} thrown`) }

@NN--- That's hardly a solution... E.g. my case:
I ended up using @AndyJ's comment:
/**
 * Retrieves a component template from filesystem
 */
const getComponentTemplate = async (
  p: string
): Promise<string> => {
  let template: string
  try {
    template = await fs.readFile(p, {
      encoding: 'utf8'
    })
  } catch (e) {
    if (isNodeError(e) && e.code === 'ENOENT') {
      throw new Error(`template for element type ${elementType} not found`)
    }
    throw e
  }

  return template
}

/**
 * @param error the error object.
 * @returns if given error object is a NodeJS error.
 */
const isNodeError = (error: Error): error is NodeJS.ErrnoException =>
  error instanceof Error

TSLint complains Unsafe use of expression of type 'any'.
Why would I want to use a template string here?

/* tslint:disable:no-unsafe-any /
// your code
/ tslint:disable:no-unsafe-any */

Change isNodeError to receive any or better unknown if you have TS 3.0.
const isNodeError = (error: any): error is NodeJS.ErrnoException =>
  error instanceof Error;


BaseURL does not prefix favicon path

Environment

Operating System: Linux
Node Version:     v16.14.2
Nuxt Version:     3.3.1
Nitro Version:    2.3.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      app
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-sr6b3x?file=nuxt.config.ts
Start the server and look at the network tab or in the page, the favicon link is not prefixed.
Describe the bug
The favicon is not prefixed using the baseURL
Additional context
No response
Logs
No response

This isn't a bug. Nuxt doesn't prefix the favicon URL or otherwise manipulate it at all (like anything you manually add to your <head>; you will need to handle adding the prefix yourself. You can do that in a Nuxt plugin, for example, where you can access useRuntimeConfig().app.baseURL.
cc: @harlan-zw - not sure if you think we should/could do anything here to improve DX.

This isn't a bug. Nuxt doesn't prefix the favicon URL or otherwise manipulate it at all (like anything you manually add to your <head>; you will need to handle adding the prefix yourself. You can do that in a Nuxt plugin, for example, where you can access useRuntimeConfig().app.baseURL.
cc: @harlan-zw - not sure if you think we should/could do anything here to improve DX.

Okk, nice to know! Thanks for the answer.

Hmm, It sounds like a good idea on the surface.
Wouldn't it cause issues if you need to load an asset from the root domain path though? You would need to provide a full path which may not be ideal.
I think this could only be partially solved once the alias resolving works. Otherwise, you could make an Unhead plugin to resolve the paths yourself quite easily.
import { withBase } from 'ufo';

export default defineNuxtPlugin(() => {
  const head = injectHead();
  if (!head) {
    return;
  }
  const runtimeConfig = useRuntimeConfig();
  head.use({
    hooks: {
      'tags:resolve'(ctx) {
        for (const tag of ctx.tags) {
          if (tag.tag === 'link' && tag.props.rel === 'icon') {
            tag.props.href = withBase(
              tag.props.href,
              runtimeConfig.app.baseURL
            );
          }
        }
      },
    },
  });
});

Nuxt should only consider implementing this if we're going to add support for Metadata Files.
Support is available through https://github.com/harlan-zw/nuxt-seo-experiments which is already tracking potential SEO features landing in the Nuxt core so let's close this issue.


Fix collator power

We first calculate the staked on the collator, and then calculate its power through the staked. The original way is to calculate the power of all nominators of the collator and then add up these powers.
The value of Exposure(darwiniaStaking.exposureCacheX) has been weighted by commission.

@JayJay1024
Hello Jay!
Can you please give examples for community to understand better. I am sorry but I still don't understand how and why this shows on staking dApp. I am sure I am not alone 😉

@JayJay1024 Hello Jay! Can you please give examples for community to understand better. I am sorry but I still don't understand how and why this shows on staking dApp. I am sure I am not alone 😉

Sorry for late reply.
In the previous version, the collator power in the active pool was obtained from the exposure api, and the data in the exposure has been weighted by the commission, and it is weighted again when the UI is displayed, so as discussed in the community, the commission is weighted twice.
The collator power in the waiting pool was previously accumulated from the power of the collator's nominators, which would cause some errors. Now, the total staked of the collator is first calculated, and then the staked is used to calculate the power.

Tottaly understand, it was weekend 😎
I did some calculation images with colours(images attached).
Am I right power of John 135 and power of Ivan 280 would now show in active pool.
And power of Rambo 90 and power of Yoda 100 would show in waiting pool.
![IMG_20231206_172628.jpg](https://github.
ssets/101176902/e3944057-0d26-46d5-9e4f-3739f3c35523)

Tottaly understand, it was weekend 😎
I did some calculation images with colours(images attached).
Am I right power of John 135 and power of Ivan 280 would now show in active pool.
And power of Rambo 90 and power of Yoda 100 would show in waiting pool.

Yes, you are right. Here is a DIP for reference:  https://github.com/darwinia-network/DIPs/blob/main/DIPs/dip-1.md

Great. Yes I took my calculations from that article, just wanted to use more colours and real names as one community member thought it was hard to understand.
I think it is very well explained, but I also love math😍😊


Bug in UWP: interprets special characters as letters

Hi,
there is a bug in UWP where special characters are interpreted as letters when using multi layered keyboards like Neo.
Apparently the UIElement.KeyUp and UIElement.KeyDown events provide the wrong VirtualKey information in the KeyRoutedEventArgs. The problem is when using a physical keyboard and also when using the On-Screen-Keyboard.
The only workaround so far is to write the text in a Win32/WPF application and then Copy&Paste the text into the appropriate fields, which causes a serious security problem when working with critical passwords. It's also a total annoyance when working with data that require handling of lots of special charecters like JSON and XML data.
When using a non-multi layered layout (ie. IBM layout) the VirtualKey information is correct.

This is the UWP samples repo, so issues here are about the samples themselves, not for UWP as a whole. Use the Windows Feedback app to report issues with the platform.

The Windows Feedback app is not helping. This is the right place for UWP bug reports:
https://wpdev.uservoice.com/forums/110705-universal-windows-platform/


blend_mul can no longer make an image brighter

Godot version
v4.0.beta2.official [f8745f2f7]
System information
Windows 10, default, GTX 970
Issue description
blend_mul can no longer make an image brighter, and negative alpha values no longer work (I think it functioned like blend_mul).

Steps to reproduce
shader_type canvas_item;
render_mode blend_mul;

void fragment() {
	vec4 baseCol = texture(TEXTURE, UV);
	baseCol.r *= 5.0;
	baseCol.g *= 5.0;
	baseCol.b *= 5.0;
	baseCol.a *= 1.0;
	COLOR = baseCol;
}

Minimal reproduction project
blend_mul 3.5.zip
blend_mul 4.0.zip

I'm having an absolute impossible time recreating some layered effects from 3.5 without this. blend_add is no substitute, it looks ghastly. I managed to recreate blend_mul using SCREEN_TEXTURE and SCREEN_UV but ran into limitations of SCREEN_TEXTURE not working when used multiple times.
I hope there's desire from others for this feature, I tried compiling Godot myself but it took over 30 minutes to compile and have no idea where to even look to change something like this.


Terminal environmentVariableCollection should respect clearing entries

https://github.com/microsoft/vscode/runs/2216043935?check_suite_focus=true#step:15:431
1 failing
  1) vscode API - terminal
       Terminal
         environmentVariableCollection
           should respect clearing entries:
     Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (D:\a\vscode\vscode\extensions\vscode-api-tests\out\singlefolder-tests\terminal.test.js)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

Confirmed still flaky, 7 failures in last 30 days:

This sort of thing is really hard to diagnose as the timeout is the test one, I'll try tweak the terminal integration tests to make any polling throw its own exception after a short period of time.


Dont respect cache headers when $this->respectCacheHeaders=false

I've updated the PR according to your comments

Actually I meant the first condition as well. :smile:
You could set some helper variables (like the status code list).

($this->getCacheControlDirective($response, 'no-store') || $this->getCacheControlDirective($response, 'private'))
This could go into a separate method, like checkCacheControlCacheble or checkCacheControlAllowsCache or something like that.

ah. Okey. =)
I'll update again and make sure it is readable.

hm, okey. I put it in a variable now since it not reused.

Thanks @Nyholm

Thank you for merging.


Not Support with VS2019

Xamarin.GradleBindings extension not available with VS2019

any solution?

I am looking for a way to recompile this for 2019 and can't get past the missing references.


Kibana chart

Installing this chart creates a Deployment of Kibana, configured with a ConfigMap. I believe this satisfies the contributors guidelines, but it's my first chart so please let me know if there's anything missing/weird.
The chart defaults to Kibana 5.2, which is the latest version at the time of writing; however, this is unfortunately incompatible with the out-of-date incubator/elasticsearch. I figured it better to keep Kibana latest and allow downgrades, than pin Kibana based on an incubator chart.

@k8s-bot ok to test

Hi @jagregory, thanks for the chart and sorry for the delay in responding. It looks like this chart depends on elasticsearch—does that sound right?
$ kubectl logs -f --namespace default $(kubectl get pods --namespace default -l app=mottled-meerkat-kibana -o jsonpath='{ .items[0].metadata.name }')
{"type":"log","@timestamp":"2017-03-22T23:19:41Z","tags":["status","plugin:kibana@5.2.0","info"],"pid":7,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
{"type":"log","@timestamp":"2017-03-22T23:19:42Z","tags":["status","plugin:elasticsearch@5.2.0","info"],"pid":7,"state":"yellow","message":"Status changed from uninitialized to yellow - Waiting for Elasticsearch","prevState":"uninitialized","prevMsg":"uninitialized"}
{"type":"log","@timestamp":"2017-03-22T23:19:42Z","tags":["status","plugin:console@5.2.0","info"],"pid":7,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
{"type":"log","@timestamp":"2017-03-22T23:19:42Z","tags":["error","elasticsearch","admin"],"pid":7,"message":"Request error, retrying\nHEAD http://elasticsearch:9200/ => getaddrinfo ENOTFOUND elasticsearch elasticsearch:9200"}
{"type":"log","@timestamp":"2017-03-22T23:19:43Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://elasticsearch:9200/"}
{"type":"log","@timestamp":"2017-03-22T23:19:43Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"No living connections"}

Yes, that's correct. Kibana is a web interface for querying/visualising elasticsearch.
Is there something I've missed?

Charts that have dependencies should declare them using a requirements.yaml—good explanation how the requirements system works at that link. The Drupal chart is a good example of using dependencies: https://github.com/kubernetes/charts/tree/master/stable/drupal

Thanks @seanknox. I'm not certain this is correct for this chart though, as I don't want elasticsearch to be installed as part of this chart. Users will already have an elasticsearch cluster setup, probably heavily customised, and Kibana is a view into it. To have this chart setup elasticsearch doesn't really make sense. It's akin to Grafana requiring Graphite, Grafana won't work without it but the Grafana chart shouldn't be setting Graphite up.
Does that make sense?

@jagregory That makes sense. One of the technical requirements for new charts is that all pods go to the running state with default values, OR provide further instructions. How about adding a note to that effect in NOTES.txt?

Thanks. This chart should go into running state as is, but it won't be very useful until you supply your own elasticsearch URL. I can certainly add something to NOTES.txt about updating the URL.

@jagregory the pods fail to start without ES (which can be OK as long as those expectations are in NOTES.txt:
$ k get po
NAME                                                           READY     STATUS     RESTARTS   AGE
dozing-bumblebee-kibana-1882671226-3f39f                       0/1       Running    31         1h

Hmm, ok I would've thought it should start up ok; usually it should come up but indicate it can't connect to ES.
I'll take a look and see why this might be. Failing that, I'll update the notes.

@seanknox Looks like I got the readiness probe URLs wrong. I've fixed these up and now the chart starts without any changes. I've also added a note into NOTES.txt about changing the setting.

Two issues with this chart in it's current form:
The notes for this chart are incorrect. To set the ES url it should be --set "config.elasticsearch.url" not --set "elasticsearch\.url"
Additionally, the config volume is being mounted to /opt/kibana/config and not /etc/kibana which is where the process is looking for config files.

To make this work I had to update the volume path as the current one was not read (https://www.elastic.co/guide/en/kibana/current/_configuring_kibana_on_docker.html)
It may also be worth noting the docker image used is from a deprecated repository and should be replaced by: docker.elastic.co/kibana/kibana (https://www.elastic.co/guide/en/kibana/current/_pulling_the_image.html)
--- a/stable/kibana/templates/deployment.yaml
+++ b/stable/kibana/templates/deployment.yaml
@@ -33,7 +33,7 @@ spec:
           initialDelaySeconds: 10
         volumeMounts:
         - name: config
-          mountPath: /opt/kibana/config
+          mountPath: /usr/share/kibana/config
         resources:
 {{ toYaml .Values.resources | indent 10 }}
       volumes:

its also not compatible with the elasticsearch chart in this repo, but this is more an issue with that chart as it should be updated to elasticsearch 5.x, its currently 2.4.0

@jagregory any updates? can you address the comments from @mkrakowitzer and @mstump?

@viglesiasce I'll look into it, thanks.

Closing as this has been stale for more than a week. Please re-open/re-submit when you have a chance to work on it.
https://github.com/kubernetes/charts#stale-pull-requests


completed unlock screen

@kdbusiness121 please pull this branch again
I added eslint configuration. please check eslint errors

There aren't any eslint errors
eslint dependencies are injected


I like guard.

This way you can leave guard running [in a docker container] while doing development work.  Makes writing and using tests very convenient, in my opinion.
Oops - close this by accident the first time?

I'm afraid I don't know of a way.  I never really got into system notifications even before docker.

I'm afraid I don't know of a way.

Don't worry, it's OK. I'm just curious about that.

Thanks!


Add acid test mode to features page, closes #611

@wheresrhys. Rhys would you mind doing some testing on this while you're reviewing? I've only run it in Chrome and FF.

Ping @wheresrhys

Poke @wheresrhys


incus: refactor tests and fix VM CSM support

Replace the bulk of the incus test suite with a single modular test. This provides a much more reliable experience for running the entire suite, while still allowing other leaf packages to do smaller test runs. This also saves a non-trivial amount of time in the full suite case as there are far fewer evals and VM builds happening.
Switched the leaf packages to tests against LTS instead of latest to ensure it gets the coverage, without doubling the testing cost on those packages. Incus latest is updated once a month so will get a regular run of the entire suite anyway.
Tacked on a CSM fix now.
Fixes #365696
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build incus.passthru.tests

incus.tests.all on x86
/nix/store/y3qykbgvi31l897pw17vssw1nr6gylqz-vm-test-run-incus


Improve Axis3 interactivity performance

Description
Change in text
I noticed that Axis3 can be rather sluggish at times and one reason for it seem to be text updates. A large part of the time spent on updating the angles in Axis3 was in the update of camera.projectionview. From there I intercepted the updates with timed updates with this:
using GLMakie, LaTeXStrings
fig = Figure()
ax = Axis3(fig[1, 1], xlabel = L"Test $\frac{1}{1+x}$")

function print_time(f, i)
    x -> begin
        t = time()
        val = f(x)
        dt = time() - t
        if dt > 1e-3
            printstyled("\nTime: $dt\n", color = :red)
            println("@ index $i")
            flush(stdout)
        end
        return val
    end
end

src = ax.scene.camera.projectionview
for i in eachindex(src.listeners)
    src.listeners[i] = print_time(src.listeners[i], i)
end

fig

and found that most of the time was spend in add_ticks_and_ticklabels!, in (and after) label_pos_rot_valign. (You can find that out by doing autocompletes on the functions held by the observable.)
Well, long story shot - I removed the position trigger from text layouting and that reduced this particular timing from ~0.06s to ~0.006s.  I also changed the method with (string, pos) pairs to only update when necessary to avoid rebuilding glyphcollections too much.
In Axis3
For this I tested with src = ax.azimuth. After the text changes the first 3 listeners took ~0.006, ~0.006 and ~0.012s. The first two are mi1 and mi2 and the last is the calculation of projectionview. I changed mi1, mi2 and mi3 to only update on changes which practically eliminates the first two calls.
I also split up some observables for the axis label to avoid triggering text layouting unnecessarily. That (or the changes text! for latexstrings) reduced the last timing to ~0.006s for me.
Type of change

Performance

It would probably be worth testing updates to attributes like xticklabelalign as well. I think those are the most likely to stop working from this

Hm,
f, ax, pl = scatter(1:4; axis=(xticklabelalign=(:left, :bottom),))
ax.xticklabelalign = (:right, :top)

Doesn't update, but also doesn't update on last tagged version..Also, the block refactor actually broke setting it completely, but I'll make a PR to fix that.

https://github.com/JuliaPlots/Makie.jl/blob/b3b0c6daaff5a7c5d5ed36310e5a65fc11832b67/GLMakie/src/drawing_primitives.jl#L313-L327
This is what makes updates of textsize, align, font and probably everything else that isn't position, offset or transfunc fail with Vector{GlyphCollection}. Why is it there?

Good old synchronization issues is why it's there...

Didn't mean to link the second issue here lol. If tests pass the issue with updates to text attributes not propagating properly with vector positions should be fixed.

Somehow this changed the colors in "Dynamically adjusting number of particles in a meshscatter".

ColorTypes.jl changed their rand implementation, which lead to this... I rebased against master and updated the ref images, so hopefully should turn green now!


fix autoformer

According to the class RelativePosition2D_super in Cream/AutoFormer/model/module/multihead_super.py, the results are first calculated on CPU and then moved to CUDA, resulting in low utilization efficiency of CUDA. It can be computed directly on CUDA
https://github.com/microsoft/Cream/blob/43514f073c64b804685aa9b3671ad77ef12b513d/AutoFormer/model/module/multihead_super.py#L40-L61

Thanks for your contribution!
Since the model can be used on CPU, the module may be also called on CPU.
The device can be equal to self.embeddings_table_v.device
device = self.embeddings_table_v
range_vec_q = torch.arange(length_q, device=device)
range_vec_k = torch.arange(length_k, device=device)

Thanks for your contribution!
Since the model can be used on CPU, the module may be also called on CPU. The device can be equal to self.embeddings_table_v.device
device = self.sample_embeddings_table_v.device
range_vec_q = torch.arange(length_q, device=device)
range_vec_k = torch.arange(length_k, device=device)

Yeah, you're right

LGTM. Thank you!


Encoding Data.BigIntegers encodes as string

Area

[ ] Plutus Foundation Related to the GHC plugin, Haskell-to-Plutus compiler, on-chain code
[x] Plutus Application Framework Related to the Plutus application backend (PAB), emulator, Plutus libraries
[ ] Marlowe Related to Marlowe
[ ] Other Any other topic (Playgrounds, etc.)

Summary
Not entirely sure if this is per se something that can be fixed in a convenient way, but it should be documented at least.
BigIntegers encode wrongly as strings by default when using Data.BigInteger and this causes aeson to fail to decode.
Steps to reproduce
A specific example that a user is quite likely to encounter:
The Wallet type (as generated by PSGenerator.Common) will create a newtype containing a BigInteger. Whenever we encode this using Foreign.Class, and consequently with stringify, we will face a "2", for Wallet { getWallet: BigInteger.fromInt 2 }. Which causes aeson to complain on the PAB API decode. The problem lies in JSON.stringify for bignumber.js.
Expected behavior
JSON.stringify should work correctly on a Foreign-encoded BigInteger.
Workarounds
Using json-bigint's stringify seems to circumvent the problem.
Versions

bignumber.js ^9.0.1
web-common(-plutus) from rev 5cdd2c3d708bf4c33514681dee096da6463273b7
node v14.15.4
purs 0.13.8

@emiflake thanks for the report. I did a test in plutus-playground-client and I'm getting a different behavior with encodeJSON if that's an option. Here is what I tried roughly:
import Wallet.Emulator.Wallet
import Data.BigInteger as BI
import Foreign.Generic (encodeJSON)

let
  w :: Wallet
  w = wrap ({ getWallet : BI.fromInt 1 })
in [ div_ [ text $ encodeJSON $ BI.fromInt 100]
   , div_ [ text $ encodeJSON w ]
   ]

Yeah, it appears that encoding with encodeJSON does produce correct stringified results (similar to my approach). Manually encode-ing and then using JSON.stringify doesn't (this is what for example Affjax does when you pass it a Json)

If it helps, I think this is related to a quirk in JSON; for example if you just have a large integer, then tools like jq choose to interpret it as a floating-point:
echo '{"a":9128730192384570193485710934857}' | jq
{
  "a": 9.12873019238457e+30
}

which is frustrating :) So in some sense it really isn't safe to encode BigIntegers as "integers" in JSON at all; they probably need to be wrapped in strings, so maybe that's why some libraries are making this choice.

Yeah, I understand. RFC7159 says "This specification allows implementations to set limits on the range and precision of numbers accepted." So it all comes down to what the specific implementations support. Aeson supports decoding large integers into Integer, and since we can get PureScript to produce those too, it's fine for those purposes. It's unfortunate to stringly-type BigIntegers just out of fear for other implementations not supporting them. I guess in the case of PureScript we seem to have "reasonable" way to choose which encoding we prefer.


Update Composer dependencies (2021-08-13-00-04)

Visual regression test passed!
View the visual regression test report


Sean/march6

SUMMARY
numerous bug fixes from GPTE and @gdykeman
new testing infrastructure demoed for the CODiE contest https://www.siia.net/codie
ISSUE TYPE

Bugfix Pull Request
Feature Pull Request

COMPONENT NAME
provisioner
testing
ADDITIONAL INFORMATION
look at file list

@termlen0 and/or @gdykeman can you just skim this and merge into devel?


Adding support for CN server if possible

Hello,
Chinese server has just recently received endwalker update. I presume that differences in clients may have been much reduced as I noticed many plugins are working as expected on CN server without further modification. I'm wondering if you would like to maybe adapt it and make Glamourer also work on CN clients?
Currently there's an error upon installation which I think might be library path issues from what I can tell from a fork which is partially working. Fixed Design in this fork is broken while others seem good so far.

No, I won't. How would I? I do not have access to a chinese client, I do not have access to the data tables. I can not read it. I can not test anything.

No, I won't. How would I? I do not have access to a chinese client, I do not have access to the data tables. I can not read it. I can not test anything.

Thanks for reply. Yeah as you said I understand and I know it requires you to devote extra time. I was asking because I'm not sure if it would be possible to make it if I provide you with logs and help you to test things, or if it actually requires massive work that goes totally beyond such a workflow.


Outdir in tsconfig is ignored when using nx.dev

🐞 Bug report
Command (mark with an x)

[ ] new
[x] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Description
I'm building a monorepo using nrwl (nx.dev) and am using an outDir in my tsconfig.json, this seems however to be ignored. Someone reported a similar problem in #2267 where it occurred when multiple apps were declared in angular.json, which is the case for me since it's a monorepo.
🔬 Minimal Reproduction
Create a monorepo using Nrwl, make a tsconfig.json in, for example. your Node-app in the monorepo and specify an outDir-option so that the output should be separate files instead of one compiled js-file.
🌍 Your Environment

Angular CLI: 8.3.20
Node: 12.13.1
OS: linux x64
Angular: 8.2.14

The outDir is indeed not used and is by design. To specify the output path of an application you should set it in the builder options in angular.json. Example: for @angular-devkit/build-angular:browser you can use the outputPath option.
That said the Angular CLI doesn’t have a builder that supports building Node applications.
This seem to be more of a Nrwl feature request to support unbundled applications.


Sentry logs utilities

This PR contains utilities to request, load and parse sentry logs.
It also has some functions to extract common log data from sentry and persistent fragments logs and being able to compare them.

So far looks very good. Do you plan to expose above code as cli ?

So far looks very good. Do you plan to expose above code as cli ?

I think we could merge this and I can work on a CLI tool to report the differences between sentry logs and permanent fragment ones. Would that be enough @dkijania ?

Sure. It would also be nice if i could have option to just download sentry logs without comparison. For example during fund i would like to check if everything is ok just limited number of sentry logs


Added Smooth animations

Changes
Added Smoother animations on:

Navlinks
Explore/Github links
Projects section cards
'Send Message' button in the contact us form
footer links

Fixes #64

@Rayman-Sodhi may I get GSSoC'22 & level labels assigned on this PR?


update xrefs from camel 3.12.x to 3.13.x

See apache/camel-website#670

Closing in favor of James' PR https://github.com/apache/camel-quarkus/pull/3299


Commissioner Proxy Issues

I believe there are 2 issues here.
Issue 1 is in the Agent, described here.
Issue 2 is in the embedded side, where the Commissioning Petition is actually handled (there is no provision for duplicate message detection) I believe there should be.
Described here: https://github.com/openthread/openthread/issues/2037
Short Description: The Agent does not seem to handle PROXY requests correctly.
By correctly, I specifically mean with the ability to detect duplicate COAP requests.
Example:
https://github.com/openthread/borderrouter/blob/master/src/agent/border_agent.cpp#L102
When a commissioner request is created (example: by the android app) the message is received with both a OPAQUE tag, and a MESSAGE ID - per RFC7252 - Section 2.1 - the Message ID is used to detect duplicates.
However, when the message is forwarded - a call is made to mCoap->NewMessage(), which results in a NEW message id for each forwarded message, See:
https://github.com/openthread/borderrouter/blob/master/src/agent/coap_libcoap.cpp#L150
If the commissioner (ie: The Android App) sends a duplicate CoAP petition, each forwarded message has a "unique message id" - thus when the leader receives the petition - each comes with a unique message id and thus there is NO means for the Leader to detect a duplicate request.
I'm not sure of the correct solution here,
option (1) would be to duplicate (pass through) the message original message ID,
or
Option (2) in the agent, mapping of the "android-app-message-id" vrs "proxy-message-id"
Separately, there's an issue with the embedded leader where it does not handles duplicate commissioning  CoAP requests. More generally - in the embedded side I think some common scheme to handle duplicate message detection is an important feature that is missing, while this problem was noticed in the commissioning process at the application layer there is a strong need for duplicate message detection.

@DuaneEllis-TI Thanks for identifying this. Ideally we should involve a fully featured CoAP agent in border router. However, currently the implementation might be too light weight, that is, there is no retransmission nor response cache by the border agent. Border agent replies on the client retransmission and cache from the remote server. libcoap is used mostly as a parser. Again, thanks for finding this bug.
I think the option (1) would be a simpler solution for the current design. Would you like to submit a PR for this issue?

@DuaneEllis-TI, has this issue been resolved?


SQLMap API not starting

Hello,
I'm trying to use sqlipy in the default configuration, but I am not able to start it. Below there details about the configuration and installation:
jython2.7.3
Log of Extender:
Calling: C:\Python27\python.exe C:\Users\bruno\AppData\Roaming\BurpSuite\bapps\f154175126a04bfe8edc6056f340f52e\sqlmap\sqlmapapi.py -s -H <IP_ADDRESS> -p 9090

Failed to start the SQLMap API

15:09:44] [INFO] Running REST-JSON API server at '<IP_ADDRESS>:9090'..
15:09:44] [DEBUG] REST-JSON API server connected to IPC database
15:09:44] [DEBUG] Using adapter 'wsgiref' to run bottle
raceback (most recent call last):

Configuration on SQLMap API:

Configuration on Proxy:

What am I doing wrong in this case and how could I fix it to use the extension?
Kind Regards,
Bruno

You are trying to run a proxy on the same port as you are running sqlmapapi. That won't work, you can't have Burp listen on the same ports as sqlmapapi - you don't need a proxy listenting on port 9090 for the API to run.

Hello,
thank you for the fast reply. I made the following change:

And the log gives me this message:
Calling: C:\Python27\python.exe C:\Users\bruno\AppData\Roaming\BurpSuite\bapps\f154175126a04bfe8edc6056f340f52e\sqlmap\sqlmapapi.py -s -H <IP_ADDRESS> -p 9090

Failed to start the SQLMap API

15:35:43] [INFO] Running REST-JSON API server at '<IP_ADDRESS>:9090'..
15:35:43] [DEBUG] REST-JSON API server connected to IPC database
15:35:43] [DEBUG] Using adapter 'wsgiref' to run bottle

The default configuration looks like that:

As you can see I still haven't manage to start it.
Kind regards,
Bruno

interestingly it actually looks like it really is running since the logs show it starting up. have you run netstat to see if anything is listening on port 9090? the checks to validate whether it is running might be happening faster than it starts up making the extension think it hasn't started.
I would also just try running the above from the command line to see what errors you get. If it isn't starting, that sounds like a sqlmapapi issue, which I don't develop.

FYI, you can still use the extension without starting the API from within the extension. It looks like starting from the command line works, so you would just manually set the SQLMap API IP (in the "SQLMap Scanner" tab) to <IP_ADDRESS> and the port to the right port and you can send requests to the API, retrieve the logs, stop scans, and any successful results will show up in the issues tab.
Unfortunately, I don't have enough in the above to know what is going wrong. The logs indicate that it is starting the API but that the test to validate startup occurs to quickly. The API works from the command line. I cannot replicate this issue.
What version of Python 2.7 is installed? What OS are you running on? What version of Burp?

Hi, thanks for the reply.
Python: 2.7 and 3.8
Os: Windows 11 and WSL Ubuntu
Burp: Professional v2022.8.5

I don't have Windows 11, but I am using Python 2.7.18, with Burp Pro v2022.8.5, and starting it from Windows 10 using those versions works fine. I can't reproduce this error (note that I have tested with 3.10.1 and at least that 3.x branch of Python does not work with the version of sqlmapapi bundled with the extension - I need to update the bundle).

What version of Java are you using? Unfortunately, the extension was written in Python so it relies on Jython. Last I checked, Jython requires Java 1.7 or 1.8 (not the newer releases of Java).

Sorry for the late reply.
Java 1.8.
On burp it did not work, but I was able to use it with the terminal.

Using the latest Burp Suite Professional Stable version on Windows 11 with Python 3.10.7.
Clicking Start API button does not work and nothing is printed in logs.
It starts the sqlmapapi.py briefly and the REST-service is accessible with a web browser for 2 seconds but all fails after that.

Actually, it does appear to work with newer versions. I had a VM that I didn't realize was using jdk-11.0.7 and it works on that version. I don't think that is the issue, as in the past it worked fine on 1.8, but I can't be sure.
In any case, I can't seem to replicate this issue on my host. Does anything get printed in the "Errors" tab (in Burp's Extender tab, click on the extension after trying to start the API and then click on the "Errors" tab below instead of "Output").
If you open the extension for editing and add "import traceback" at the top of the extension and then add: print(traceback.format_exc())
Above each line where it says: print 'Failed to start the SQLMap API\n'
That might help me resolve the issue. You would need to unload and then reload the extension, and then try to start the API again.

What should I edit? The .py file? or where can I open the extension to edit?

Yes, the .py file. Another thing to try, just for kicks, is setting the actual IP versus the loopback.

Ok, I just updated the version of sqlmap used by the extension. You can download this GitHub project and load in Burp and test to see if that resolves the issue. Please test with a newer version of Java, I am testing with JDK 11. If that doesn't resolve the issue, then it might be something to do with Windows 11.

The update now enables support for Python 3.x as well. I successfully used it with 3.10.1.

This appears to be a bug in Jython 2.7.3 - I have been using 2.7.2. When I used the latest Jython (2.7.3) I had the same issue but when I used 2.7.2 it worked.

Hi guys, i had the same problem in linux with this configuration:

burp v. 2022.7.1 community edition
java v. 11.0.16
sqlmap v. 1.6.7
jython v. 2.7.3

After debugging the code i found that the problem was in file "SQLiPy.py" and the way urllib handles request/response.
The issue lies in the response format "unicode" received from the api and this  python lib doesn't like unicode values. For me, converting format to string solved the issue.
I tested this "SQLiPy.py" fix (you can find it in my fork) with both the previous plugin installed via BApp Store (with SQLiPy version 0.8.2) and using the latest files in the repo (with SQLiPy version 0.8.3).
Both work while maintaining the same environment (version of java, jython, burp above).
It also works with manual run sqlmapi on terminal or/and using python3.
If anyone has the same problem, i hope it can help.
PS.
I haven't tested it in windows OS yet.

Just added the above fixes from h3xstone, didn't appear to break anything (tested on Windows).

These updates have now been merged in the latest version within the BApp Store.


KeyError: 'GET_INVENTORY'

Expected Behavior
Actual Behavior
Traceback (most recent call last):
  File "./pokecli.py", line 357, in <module>
    main()
  File "./pokecli.py", line 68, in main
    bot.tick()
  File "/home/lunik/PokemonGo-Bot/pokemongo_bot/__init__.py", line 64, in tick
    if worker(self).work() == WorkerResult.RUNNING:
  File "/home/lunik/PokemonGo-Bot/pokemongo_bot/cell_workers/recycle_items_worker.py", line 14, in work
    item_count_dict = self.bot.item_inventory_count('all')
  File "/home/lunik/PokemonGo-Bot/pokemongo_bot/__init__.py", line 361, in item_inventory_count
    'GET_INVENTORY']['inventory_delta']['inventory_items']
KeyError: 'GET_INVENTORY'
```
### Steps to Reproduce
run `./run.sh` in `dev` branch

### Other Information
OS: Ubuntu
Git Commit: c11af09b64df4be77257207dfd147649489c776e

I'm getting the same.
Traceback (most recent call last):   File "pokecli.py", line 357, in <module>     main()   File "pokecli.py", line 68, in main     bot.tick()   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/__init__.py", line 64, in tick     if worker(self).work() == WorkerResult.RUNNING:   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/cell_workers/recycle_items_worker.py", line 14, in work     item_count_dict = self.bot.item_inventory_count('all')   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/__init__.py", line 361, in item_inventory_count     'GET_INVENTORY']['inventory_delta']['inventory_items'] KeyError: 'GET_INVENTORY'

I can confirm and replicate this issue
./pokecli.py -cf conf.json
[21:24:04] PokemonGO Bot v1.0
[21:24:04] Configuration initialized
[21:24:04] [x] Coordinates found in passed in location, not geocoding.
[21:24:04]
[21:24:04] Location Found: **
[21:24:04] GeoPosition: (**)
[21:24:04]
[21:24:04] Attempting login to Pokemon Go.
[21:24:05] Login to Pokemon Go successful.
Traceback (most recent call last):
File "./pokecli.py", line 357, in
main()
File "./pokecli.py", line 62, in main
bot.start()
File "/var/www/PokemonGo-Bot/pokemongo_bot/init.py", line 44, in start
self._setup_api()
File "/var/www/PokemonGo-Bot/pokemongo_bot/init.py", line 234, in _setup_api
self._print_character_info()
File "/var/www/PokemonGo-Bot/pokemongo_bot/init.py", line 265, in _print_character_info
items_stock = self.current_inventory()
File "/var/www/PokemonGo-Bot/pokemongo_bot/init.py", line 335, in current_inventory
inventory_dict = inventory_req['responses']['GET_INVENTORY'][
KeyError: 'GET_INVENTORY'

May be an issue with Pokemon GO servers.

Yes this issue was hit and miss, as the servers went up and down.
Lets wait until they are stable before we start investigating too much.

Can confirm, running bot exits wirh map_cells, and after restart GET_INVENTORY. Oh well, servers were really unstable today ;)

Servers have been going up and down all day so the API can't return any info.

I was able to login with the actual app though... I hope they didn't change the inventory API

Not sure about that, this only happened after I ran a pull request, and another account of mine running via the main branch is running fine.
And this commit did have a change to the init.py file
https://github.com/PokemonGoF/PokemonGo-Bot/commit/c11af09b64df4be77257207dfd147649489c776e

same issue here, I think the problem is server related, too but maybe they changed something... so the bot cn't parse correctly inventory infos.
btw i'm just guessing....

Maybe they're starting to block API requests that aren't using the "random bytes"
https://www.reddit.com/r/pokemongodev/comments/4tzgbw/anyone_knowing_more_about_the_infamous_unknown/

Severs are unstable rn thats it dont worry guys

Seems that swapping line #234 and #237 gets it a little further for me.
I now get this
Traceback (most recent call last):   File "pokecli.py", line 357, in <module>     main()   File "pokecli.py", line 68, in main     bot.tick()   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/__init__.py", line 64, in tick     if worker(self).work() == WorkerResult.RUNNING:   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/cell_workers/recycle_items_worker.py", line 14, in work     item_count_dict = self.bot.item_inventory_count('all')   File "/root/pgo/dev/PokemonGo-Bot/pokemongo_bot/__init__.py", line 361, in item_inventory_count     'GET_INVENTORY']['inventory_delta']['inventory_items'] KeyError: 'GET_INVENTORY'

it's a server instability issue. this has been happening on both google accounts and ptc accounts

Well since I can get my inventory when I am logged in in the actual application I wonder why the bot has this errors :(

ya same here @skartoffel works on iphone just fine aswel ass on bluestacks android emulator

[23:48:24] Starting PokemonGo Bot....
Traceback (most recent call last):
File "pokecli.py", line 357, in
main()
File "pokecli.py", line 68, in main
bot.tick()
File "/web/PokemonGo-Bot/pokemongo_bot/init.py", line 64, in tick
if worker(self).work() == WorkerResult.RUNNING:
File "/web/PokemonGo-Bot/pokemongo_bot/cell_workers/pokemon_transfer_worker.py", line 18, in work
pokemon_groups = self._release_pokemon_get_groups()
File "/web/PokemonGo-Bot/pokemongo_bot/cell_workers/pokemon_transfer_worker.py", line 73, in _release_pokemon_get_groups
inventory_dict = inventory_req['responses']['GET_INVENTORY']['inventory_delta']['inventory_items']
KeyError: 'GET_INVENTORY'
My log

Not sure if this is related, maybe someone can confirm:
My inventory was full. I opened the app, cleared some things out, set stricter limits in config.json, and then removed data/cells-[username].json before restarting.
It works for me now, though that could be coincidence. Need someone to confirm.

Inventory was not full, deleting cells-username.json did nothing :(

my inventory is NOT full.  Still encountering this problem with the bot. Able to login to the game on my phone.

Also, not only did it work on my phone while the bot was failing, but I have a second bot for my brother's account that is working just fine, so I think it's unlikely to be a server problem.

@Kujawadl are the same bots? I mean, same bots with same commits?

@A7F i was running 2 bots aswel and 1 failed a good 20-30 minutes before the other one, running on same install just different screen sessions

@A7F Yes, same commits. His has been running several hours now without problems, mine crashes immediately after login.
Running on different screen sessions like @Dunduro

just tried to revert my pull using
git reset HEAD@{1}
result: same crash but displays me my player infos (those printed in light blue)

master branch works fine while dev branch has this issue.

I'm running the code since many days on the old 6e99169 (dev branch). For the first time today I encountered the Inventory Error.

crashes now and then with this error, correct behavior would be to catch the exception and retry the login procedure

Maybe the bug is the API itself and not in the bot:
2016-07-28 18:11:12,352 [   rpc_api] [DEBUG] Execution of RPC
2016-07-28 18:11:12,353 [connectionpool] [ INFO] Starting new HTTPS connection (1): pgorelease.nianticlabs.com
2016-07-28 18:11:12,505 [connectionpool] [DEBUG] "POST /plfe/263/rpc HTTP/1.1" 200 2
2016-07-28 18:11:12,506 [   rpc_api] [DEBUG] Parsing main RPC response...
2016-07-28 18:11:12,506 [   rpc_api] [DEBUG] Protobuf structure of rpc response:
status_code: 52

2016-07-28 18:11:12,512 [   rpc_api] [DEBUG] Decode raw over protoc (protoc has to be in your PATH):
1: 52

2016-07-28 18:11:12,512 [   rpc_api] [DEBUG] Parsing sub RPC responses...
2016-07-28 18:11:12,512 [    pgoapi] [ INFO] Cleanup of request!
code raw over protoc (protoc has to be in your PATH):
1: 52

2016-07-28 18:11:12,512 [   rpc_api] [DEBUG] Parsing sub RPC responses...
2016-07-28 18:11:12,512 [    pgoapi] [ INFO] Cleanup of request!

First Error
[18:09:20] Attempting login to Pokemon Go.
[18:09:20] Login to Pokemon Go successful.
[18:09:21]
[18:09:21] --- MYUSERNAME ---
[18:09:21] Level: 21 (Next Level: 48290 XP) (Total: 286710 XP)
[18:09:21] Pokemon Captured: 915 | Pokestops Visited: 504
[18:09:21] Pokemon Bag: 177/250
[18:09:21] Items: 204/350
[18:09:21] Stardust: 2011 | Pokecoins: 0
[18:09:21] PokeBalls: 46 | GreatBalls: 50 | UltraBalls: 10
[18:09:21] RazzBerries: 0 | BlukBerries: 0 | NanabBerries: 0
[18:09:21] LuckyEgg: 0 | Incubator: 2 | TroyDisk: 5
[18:09:21] Potion: 10 | SuperPotion: 25 | HyperPotion: 25
[18:09:21] Incense: 4 | IncenseSpicy: 0 | IncenseCool: 0
[18:09:21] Revive: 25 | MaxRevive: 0
[18:09:21]
[18:09:21]
[18:09:21] Starting PokemonGo Bot....
[18:09:22] Releasing Oddish with CP 236 and IV 0.62. Matching release rule: CP < 400 AND IV < 0.8.
[18:09:22] Exchanging Oddish [CP 236] [Potential 0.62] for candy!
[18:09:24] Scanning area for objects....
[18:09:24] Walking from (51.990094618072625, -89.93739658544594) to [51.990094618072625, -89.93739658544594] 0.00km

[18:09:24] Releasing Oddish with CP 236 and IV 0.62. Matching release rule: CP < 400 AND IV < 0.8.
[18:09:24] Exchanging Oddish [CP 236] [Potential 0.62] for candy!
[18:09:27] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.36km
[18:09:27] [x] Need to move closer to Pokestop
[18:09:29] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.36km
[18:09:29] [x] Need to move closer to Pokestop
[18:09:31] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.36km
[18:09:31] [x] Need to move closer to Pokestop
[18:09:33] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.35km
[18:09:33] [x] Need to move closer to Pokestop
[18:09:36] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.35km
[18:09:36] [x] Need to move closer to Pokestop
[18:09:38] [x] Found fort 3769a62d5ffa43ad88cd2954d628cdba.16 at distance 0.34km
[18:09:38] [x] Need to move closer to Pokestop

Traceback (most recent call last):
 File "pokecli.py", line 357, in <module>
   main()
 File "pokecli.py", line 68, in main
   bot.tick()
 File "/root/PokemonGo-Bot/pokemongo_bot/__init__.py", line 64, in tick
   if worker(self).work() == WorkerResult.RUNNING:
 File "/root/PokemonGo-Bot/pokemongo_bot/cell_workers/spin_nearest_fort_worker.py", line 24, in work
   if MoveToFortWorker(nearest_fort, self.bot).work() == WorkerResult.RUNNING:
 File "/root/PokemonGo-Bot/pokemongo_bot/cell_workers/move_to_fort_worker.py", line 39, in work
   if not step_walker.step():
 File "/root/PokemonGo-Bot/pokemongo_bot/step_walker.py", line 61, in step
   self.bot.heartbeat()
 File "/root/PokemonGo-Bot/pokemongo_bot/__init__.py", line 466, in heartbeat
   self.update_web_location() # updates every tick
 File "/root/PokemonGo-Bot/pokemongo_bot/__init__.py", line 112, in update_web_location
   cells = map_objects['map_cells']
KeyError: 'map_cells'

Second Error
[18:08:14] --- MYUSERNAME ---
[18:08:14] Level: 21 (Next Level: 48290 XP) (Total: 286710 XP)
[18:08:14] Pokemon Captured: 915 | Pokestops Visited: 504
[18:08:14] Pokemon Bag: 193/250
[18:08:14] Items: 272/350
[18:08:14] Stardust: 2011 | Pokecoins: 0
[18:08:14] PokeBalls: 46 | GreatBalls: 101 | UltraBalls: 10
[18:08:14] RazzBerries: 0 | BlukBerries: 0 | NanabBerries: 0
[18:08:14] LuckyEgg: 0 | Incubator: 2 | TroyDisk: 5
[18:08:14] Potion: 12 | SuperPotion: 30 | HyperPotion: 30
[18:08:14] Incense: 4 | IncenseSpicy: 0 | IncenseCool: 0
[18:08:14] Revive: 30 | MaxRevive: 0
[18:08:14]
[18:08:14]
[18:08:14] Starting PokemonGo Bot....
[18:08:15] Releasing Oddish with CP 236 and IV 0.62. Matching release rule: CP < 400 AND IV < 0.8.
[18:08:15] Exchanging Oddish [CP 236] [Potential 0.62] for candy!
[18:08:18] Releasing Pidgey with CP 227 and IV 0.4. Matching release rule: CP < 237 AND IV < 0.8.
[18:08:18] Exchanging Pidgey [CP 227] [Potential 0.4] for candy!
[18:08:21] Releasing Pidgey with CP 213 and IV 0.76. Matching release rule: CP < 237 AND IV < 0.8.
[18:08:21] Exchanging Pidgey [CP 213] [Potential 0.76] for candy!
[18:08:25] Releasing Pidgey with CP 206 and IV 0.38. Matching release rule: CP < 237 AND IV < 0.8.
[18:08:25] Exchanging Pidgey [CP 206] [Potential 0.38] for candy!
[18:08:27] Releasing Pidgeotto with CP 405 and IV 0.51. Matching release rule: CP < 427 AND IV < 0.8.
[18:08:27] Exchanging Pidgeotto [CP 405] [Potential 0.51] for candy!
[18:08:29] Releasing Pidgeotto with CP 348 and IV 0.58. Matching release rule: CP < 427 AND IV < 0.8.
[18:08:29] Exchanging Pidgeotto [CP 348] [Potential 0.58] for candy!
[18:08:33] Releasing Pidgeot with CP 590 and IV 0.38. Matching release rule: CP < 729 AND IV < 0.8.
[18:08:33] Exchanging Pidgeot [CP 590] [Potential 0.38] for candy!
[18:08:36] Releasing Pidgeot with CP 309 and IV 0.31. Matching release rule: CP < 729 AND IV < 0.8.
[18:08:36] Exchanging Pidgeot [CP 309] [Potential 0.31] for candy!
[18:08:38] Releasing Rattata with CP 70 and IV 0.73. Matching release rule: CP < 204 AND IV < 0.8.
[18:08:38] Exchanging Rattata [CP 70] [Potential 0.73] for candy!
[18:08:41] Releasing Zubat with CP 221 and IV 0.42. Matching release rule: CP < 225 AND IV < 0.8.
[18:08:41] Exchanging Zubat [CP 221] [Potential 0.42] for candy!
[18:08:44] Releasing Venonat with CP 250 and IV 0.76. Matching release rule: CP < 360 AND IV < 0.8.
[18:08:44] Exchanging Venonat [CP 250] [Potential 0.76] for candy!
[18:08:47] Releasing Venonat with CP 244 and IV 0.64. Matching release rule: CP < 360 AND IV < 0.8.
[18:08:47] Exchanging Venonat [CP 244] [Potential 0.64] for candy!
[18:08:50] Releasing Venonat with CP 218 and IV 0.69. Matching release rule: CP < 360 AND IV < 0.8.
[18:08:50] Exchanging Venonat [CP 218] [Potential 0.69] for candy!
[18:08:52] Releasing Venomoth with CP 290 and IV 0.53. Matching release rule: CP < 660 AND IV < 0.8.
[18:08:52] Exchanging Venomoth [CP 290] [Potential 0.53] for candy!
[18:08:53] Releasing Bellsprout with CP 359 and IV 0.71. Matching release rule: CP < 391 AND IV < 0.8.
[18:08:53] Exchanging Bellsprout [CP 359] [Potential 0.71] for candy!
[18:08:57] Releasing Drowzee with CP 249 and IV 0.42. Matching release rule: CP < 374 AND IV < 0.8.
[18:08:57] Exchanging Drowzee [CP 249] [Potential 0.42] for candy!
[18:09:01] Releasing Exeggcute with CP 207 and IV 0.78. Matching release rule: CP < 384 AND IV < 0.8.
[18:09:01] Exchanging Exeggcute [CP 207] [Potential 0.78] for candy!
[18:09:05] -- Recycled 51x Greatball (keeps only 50 maximum)
[18:09:06] -- Recycled 5x Hyper Potion (keeps only 25 maximum)
[18:09:06] -- Recycled 5x Revive (keeps only 25 maximum)
[18:09:06] -- Recycled 5x Super Potion (keeps only 25 maximum)
[18:09:07] -- Recycled 2x Potion (keeps only 10 maximum)
[18:09:07] Scanning area for objects....
[18:09:07] Walking from (51.990094618072625, -89.93739658544594) to [51.990094618072625, -89.93739658544594] 0.00km

Traceback (most recent call last):
  File "pokecli.py", line 357, in <module>
    main()
  File "pokecli.py", line 68, in main
    bot.tick()
  File "/root/PokemonGo-Bot/pokemongo_bot/__init__.py", line 64, in tick
    if worker(self).work() == WorkerResult.RUNNING:
  File "/root/PokemonGo-Bot/pokemongo_bot/cell_workers/pokemon_transfer_worker.py", line 18, in work
    pokemon_groups = self._release_pokemon_get_groups()
  File "/root/PokemonGo-Bot/pokemongo_bot/cell_workers/pokemon_transfer_worker.py", line 73, in _release_pokemon_get_groups
    inventory_dict = inventory_req['responses']['GET_INVENTORY']['inventory_delta']['inventory_items']
KeyError: 'GET_INVENTORY'

In master branch, it has the same error, but recover soon.
Traceback (most recent call last):
File "pokecli.py", line 220, in
main()
File "pokecli.py", line 206, in main
bot.start()
File "/home/ubuntu/PokemonGo-Bot/pokemongo_bot/init.py", line 31, in start
self._setup_api()
File "/home/ubuntu/PokemonGo-Bot/pokemongo_bot/init.py", line 159, in _setup_api
balls_stock = self.pokeball_inventory()
File "/home/ubuntu/PokemonGo-Bot/pokemongo_bot/init.py", line 234, in pokeball_inventory
inventory_dict = inventory_req['responses']['GET_INVENTORY'][
KeyError: 'GET_INVENTORY'
[2016-07-28 22:22:14] [x] PokemonGO Bot v1.0
[2016-07-28 22:22:14] [x] Configuration initialized
[2016-07-28 22:22:14]
[2016-07-28 22:22:14] [x] Address found:
[2016-07-28 22:22:14] [x] Position in-

perhaps this is it...
UnboundLocalError: local variable 'player' referenced before assignment

the newest commit ec2b7add95da6bc580035d8d4c472c1d41e439a6 fixes it.. somehow xD

[18:30:59] Server seems to be busy or offline - try again - 1/5
[18:31:03] [x] Found fort xxx.11 at distance 0.07km
[18:31:03] [x] Need to move closer to Pokestop
[18:31:04] Server seems to be busy or offline - try again - 1/5
[18:31:08] [x] Found fort xxx.11 at distance 0.07km
[18:31:08] [x] Need to move closer to Pokestop
[18:31:09] Server seems to be busy or offline - try again - 1/5
[18:31:12] [x] Found fort xxx.11 at distance 0.06km
[18:31:12] [x] Need to move closer to Pokestop
[18:31:13] Server seems to be busy or offline - try again - 1/5
[18:31:17] [x] Found fort xxx.11 at distance 0.06km
[18:31:17] [x] Need to move closer to Pokestop

but the bot is walking and catching pokemon!

Just pull the latest dev branch, with the retry this problem is better.

[18:35:16] Level: 21 (Next Level: 48290 XP) (Total: 286710 XP)
[18:35:16] Pokemon Captured: 915 | Pokestops Visited: 504
[18:35:16] Pokemon Bag: 176/250
[18:35:16] Items: 204/350
[18:35:16] Stardust: 2011 | Pokecoins: 0
[18:35:16] PokeBalls: 46 | GreatBalls: 50 | UltraBalls: 10
[18:35:16] RazzBerries: 0 | BlukBerries: 0 | NanabBerries: 0
[18:35:16] LuckyEgg: 0 | Incubator: 2 | TroyDisk: 5
[18:35:16] Potion: 10 | SuperPotion: 25 | HyperPotion: 25
[18:35:16] Incense: 4 | IncenseSpicy: 0 | IncenseCool: 0
[18:35:16] Revive: 25 | MaxRevive: 0
[18:35:16]
[18:35:16]
[18:35:17] Server seems to be busy or offline - try again - 1/5
[18:35:18] Starting PokemonGo Bot....
[18:35:18] [x] Found fort 3763a62d5ffa43ad88cd2954d628cdba.16 at distance 0.32km
[18:35:18] [x] Need to move closer to Pokestop
[18:35:19] Server seems to be busy or offline - try again - 1/5
[18:35:22] [x] Found fort 3763a62d5ffa43ad88cd2954d628cdba.16 at distance 0.32km
[18:35:22] [x] Need to move closer to Pokestop
[18:35:22] Server seems to be busy or offline - try again - 1/5

after the pulling commit 47cf9db seems to be working fine now

Same issue as original poster

Will confirm. 47cf9db53d986f78cf0cce8a2c6aa5863c29a7c8 is a quick bandaid for this issue

Yup https://github.com/PokemonGoF/PokemonGo-Bot/commit/47cf9db53d986f78cf0cce8a2c6aa5863c29a7c8 fixes this, deffintly something with the newly added api_wrapper(since it was the only change)
Totally a server issue right?/s

I also get same issue
In [5]: bot.get_inventory()
Out[5]: {'responses': {}, 'status_code': 52}
In [6]:

pretty sure this error only occurs because people have:

started an account
let the bot roam in a specific location
shut down the bot
changed the config in an attempt to spoof a location nowhere near the first location

I can confirm inexion's theory. New account worked on head of master branch.
There should be a distance check in the algorithm to prevent teleporting. I'd help, but I can't python.

I tested with a new account and I get the same error.
I tested it from an aws server, maybe if inexion theory is correct there is also an ip range block?

Should be fixed in latest dev


Rebroadcast logic for stored gossip messages

Signed-off-by: Alexis Sellier<EMAIL_ADDRESS>

Sorry should have marked this one as draft, didn't realize someone was looking at it :smile:
Anyway mostly refactored stuff.


Convert to noarch python

Converts the package to a noarch: python. Constrains it to Python 3.5+ based on where it is supported.

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy
[x] Ensured the license file is being packaged.

Fixes: https://github.com/conda-forge/pylint-django-feedstock/issues/9

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@CJ-Wright, as you have done more of these (noarch: python with version constraint), could you please double check that I'm doing this correctly?

I think that looks correct.

Thanks for checking. :)