[WIP, ENH] Update plot_ecog tutorial to use real data, visualize seizures

Reference issue
Example: Addresses part of #9060.
What does this implement/fix?
Show seizure data from patient using John's Hopkins epilepsy monitoring unit data.
Additional information
cc @libertyh @adam2392

Ok, I think this is okay for review now

can you see why doc build fails? can you share when you have it the URL to the rendered artifact? thx @alexrockhill !

Rn it's getting hit with the following error:
ERROR: HTTP error 404 while getting https://github.com/mne-tools/mne-bids/archive/main.zip
ERROR: Could not install requirement https://github.com/mne-tools/mne-bids/archive/main.zip (from -r requirements_doc.txt (line 10)) because of HTTP error 404 Client Error: Not Found for url: https://codeload.github.com/mne-tools/mne-bids/zip/main for URL https://github.com/mne-tools/mne-bids/archive/main.zip

Rn it's getting hit with the following error:
ERROR: HTTP error 404 while getting https://github.com/mne-tools/mne-bids/archive/main.zip
ERROR: Could not install requirement https://github.com/mne-tools/mne-bids/archive/main.zip (from -r requirements_doc.txt (line 10)) because of HTTP error 404 Client Error: Not Found for url: https://codeload.github.com/mne-tools/mne-bids/zip/main for URL https://github.com/mne-tools/mne-bids/archive/main.zip

According to this: https://stackoverflow.com/questions/20101834/pip-install-from-git-repo-branch Not sure why this would raise an error. Any advice @drammock ?

The requirement-doc.txt requirements won't work because we use the 0.7dev of mne-bids right? Maybe we have to wait to merge for a new release?

CircleCI timed out when rendering:
https://app.circleci.com/pipelines/github/mne-tools/mne-python/7050/workflows/f8b16fdd-5f2b-40c3-925d-095038002124/jobs/26076
This means either memory usage was too high or it took too long. Locally PATTERN=plot_ecog make html_dev-pattern should complete your example running within about 30 seconds, and with < 1.5 GB of memory used. Let me know if you want help optimizing this

CircleCI timed out when rendering:
https://app.circleci.com/pipelines/github/mne-tools/mne-python/7050/workflows/f8b16fdd-5f2b-40c3-925d-095038002124/jobs/26076
This means either memory usage was too high or it took too long. Locally PATTERN=plot_ecog make html_dev-pattern should complete your example running within about 30 seconds, and with < 1.5 GB of memory used. Let me know if you want help optimizing this

Is this because the whole seizure animation itself is quite long? The seizure is longer than 30 seconds in real time, so either we'd have to chop it and make it shorter or significantly downsample (which would also make it harder to see). I'm not 100% positive this is the issue but I could imagine that that's it.

I suggested to @alexrockhill just to show a little bit of time before onset, and a little after (maybe 5 before, 5 after). Do you think that would work @libertyh ?

I suggested to @alexrockhill just to show a little bit of time before onset, and a little after (maybe 5 before, 5 after). Do you think that would work @libertyh ?

That would work for reducing memory, but in looking at the clinical seizure pattern, there are a lot of things that are interesting at longer time scales. For example, near the onset (https://snipboard.io/QkfacP.jpg), middle (https://snipboard.io/JRPXpV.jpg), and offset (https://snipboard.io/uyHAhO.jpg) of the seizure, the patterns look very different. Perhaps long term it would be interesting to have an input or similar for the user to specify a time onset and offset, and provide some suggestions for these time points?
That's not to say this isn't a good solution for now, but I do think for people involved in seizure localization research it's important to see how the pattern changes across space and time, and 10 seconds isn't enough for this particular dataset.

Makes sense. Unfortunately I think we'll kill CircleCI if we try to do all of this in the example :) Maybe keeping the animations short and copy-pasting/adapting the explanatory text above into the example in some form would work. The idea I think can be just to give people an idea of the ways they can look at the data here, and say in practice they should look at longer stretches of time and/or different segments of data (and probably with less downsampling, etc.).

Yeah it just seems like this is too much for the docs to handle with it actually being useful but at least the dataset is up there and users can change the code and actually run it if they want to

FWIW I don't think this error was on the brain plot but rather on the animations before that, because it died in the matplotlib_scraper, not the brain_scraper

FWIW I don't think this error was on the brain plot but rather on the animations before that, because it died in the matplotlib_scraper, not the brain_scraper

That one is two seconds at 50 Hz so I don't think it can get any shorter without being cut completely...

That one is two seconds at 50 Hz so I don't think it can get any shorter without being cut completely...

I wonder if having 100 frames is problematic for creating a GIF for example. This run:
    - ../tutorials/misc/plot_ecog.py:                                                                  258.97 sec   727.5 MB

is painfully long but maybe we have to live with it :) Let's see how it looks when it finishes rendering!

Locally when trying to run your example I get:
Animation size has reached 31485150 bytes, exceeding the limit of 31457280.0. If you're sure you want a larger animation embedded, set the animation.embed_limit rc parameter to a larger value (in MB). This and further frames will be dropped.
WARNING: /home/larsoner/python/mne-python/tutorials/misc/plot_ecog.py failed to execute correctly: Traceback (most recent call last):
  File "/home/larsoner/python/sphinx-gallery/sphinx_gallery/scrapers.py", line 333, in save_figures
    rst = scraper(block, block_vars, gallery_conf)
  File "/home/larsoner/python/sphinx-gallery/sphinx_gallery/scrapers.py", line 131, in matplotlib_scraper
    image_rsts.append(_anim_rst(anim, image_path, gallery_conf))
  File "/home/larsoner/python/sphinx-gallery/sphinx_gallery/scrapers.py", line 190, in _anim_rst
    anim.save(image_path, writer=writer, dpi=use_dpi)
  File "/home/larsoner/python/matplotlib/lib/matplotlib/animation.py", line 1170, in save
    for data in zip(*[a.new_saved_frame_seq() for a in all_anim]):
  File "/home/larsoner/python/matplotlib/lib/matplotlib/animation.py", line 1170, in <listcomp>
    for data in zip(*[a.new_saved_frame_seq() for a in all_anim]):
  File "/home/larsoner/python/matplotlib/lib/matplotlib/animation.py", line 1726, in new_saved_frame_seq
    return itertools.islice(self.new_frame_seq(), self.save_count)
ValueError: Indices for islice() must be None or an integer: 0 <= x <= sys.maxsize.

Something must be wrong with the number of samples being requested... want me to push a commit with an attempted fix?

Got hit w/ a weird error in build-docs:
Traceback (most recent call last):
  File "/home/circleci/.local/lib/python3.8/site-packages/sphinx_gallery/scrapers.py", line 333, in save_figures
    rst = scraper(block, block_vars, gallery_conf)
  File "/home/circleci/.local/lib/python3.8/site-packages/sphinx_gallery/scrapers.py", line 131, in matplotlib_scraper
    image_rsts.append(_anim_rst(anim, image_path, gallery_conf))
  File "/home/circleci/.local/lib/python3.8/site-packages/sphinx_gallery/scrapers.py", line 190, in _anim_rst
    anim.save(image_path, writer=writer, dpi=use_dpi)
  File "/home/circleci/.local/lib/python3.8/site-packages/matplotlib/animation.py", line 1161, in save
    writer.grab_frame(**savefig_kwargs)
  File "/usr/local/lib/python3.8/contextlib.py", line 120, in __exit__
    next(self.gen)
  File "/home/circleci/.local/lib/python3.8/site-packages/matplotlib/animation.py", line 253, in saving
    self.finish()
  File "/home/circleci/.local/lib/python3.8/site-packages/matplotlib/animation.py", line 354, in finish
    self.cleanup()
  File "/home/circleci/.local/lib/python3.8/site-packages/matplotlib/animation.py", line 390, in cleanup
    raise subprocess.CalledProcessError(
subprocess.CalledProcessError: Command '['convert', '-size', '110x110', '-depth', '8', '-delay', '2.0', '-loop', '0', 'rgba:-', '/home/circleci/project/doc/auto_tutorials/misc/images/sphx_glr_plot_ecog_004.gif']' returned non-zero exit status 1.

I don't really understand this since locally I can't reproduce the problem. I might try running CircleCI with SSH to see if I can fix it. I'll try to do it tonight sometime...

Turns out it was dying (I think) because one of the animations had no frames, and it just gave that cryptic error about no files found. I pushed a commit that allows things to build for me locally, hopefully it works with CircleCI this time. It's still not as fast as I'd like (~1.5 min on my laptop) but might be good enough given that it produces three animations (most time is spent in the raw time one I think).

Okay it at least runs now:
https://26177-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html
@adam2392 @alexrockhill @libertyh WDYT?

Wow looks awesome. The only thing I can think of is that the last two plots are super fast. If we amp up the delay by a bit between frames would that hit the CI too hard?

Wow, thanks for all the improvements @larsoner! And of course for getting it to pass Circle! I had a think about the first two animations and had an idea to try, we can just fix what works too but I'll mock it up if anyone wants chat.

What do you think? https://26243-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html?highlight=plot_ecog @libertyh, I iterated off of the ideas you started, does it look okay? The cropping looks weird and didn't look that way when I ran it locally but I'll see if I can fix it

https://26245-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html#sphx-glr-auto-tutorials-misc-plot-ecog-py
cropping looks better now. I fixed some headers in the docs.

animations look cool. But can we pause one moment to ask how does this example help someone new to MNE interested in analyzing sEEG be bombarded with so much code. I've seen this same syndrome in the stats module and I see folks struggling all the time. Can we simplify? Less code, more interleaving of text and code.
What does the TFR plot tell you?
Will there be similar big code blocks also for sEEG example? Can we develop something that's a bit more generalizable rather than hacking MNE code to work for one dataset?

animations look cool. But can we pause one moment to ask how does this example help someone new to MNE interested in analyzing sEEG/ECoG be bombarded with so much code. I've seen this same syndrome in the stats module and I see folks struggling all the time. Can we simplify? Less code, more interleaving of text and code.
What does the TFR plot tell you?
Will there be similar big code blocks also for sEEG example? Can we develop something that's a bit more generalizable rather than hacking MNE code to work for one dataset?

It's a bit hacked together and we were looking at using layout but it wasn't easy to encapsulate some of this code within the existing mne layout code. I think this is a good start and in future PRs we can pull in more code into generalized functions but that's just my opinion, if you want to abstract specific parts, I'd be happy to give it a shot.
As for the balance of code and comments, I agree that it would be nice to have less code but I'm not sure it's the best to put in the code base right now, it could probably be refactored to use layout. I would say that the plots are very informative, maybe more in a copy paste kind of way for the code, because it does show the activity pretty clearly and because the views are idiosyncratic to the surgical plan, I think it has to be a bit code heavy. I tried to pare it down but still captures the essence of the seizure and its relation to the anatomy so I think that is very informative.

okay to do this iteratively in future PRs!

What does the TFR plot tell you?

But what about this? :)

https://26267-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html

From talking to @alexrockhill I propose:

Roll back to the commit that I had with the scatter animation with gamma power, time-traces, and brain plot
Remove the time trace one
@alexrockhill makes a PR to add support to plot_topo or something similar to make his cool trace-over-brain-image plot
in that same PR, he could add that trace-over-brain plot to the ECoG example, with animation/interactive updating

That way what we merge into main now is much smaller (to make @jasmainak happier) and we still soon get nice time-overlay-plotting support. Okay with you @jasmainak @adam2392 @libertyh ?

sounds like a great plan. I'd say it will also make your future user happy, not just @jasmainak ;-)

@alexrockhill do you want to push a commit to work toward my suggestion + @drammock's comments above?

@alexrockhill do you want to push a commit to work toward my suggestion + @drammock's comments above?

Yeah sorry I was busy learning to dig clams this weekend with my family... Still interesting even though don't eat meat. Will push in a minute or two

I'm not sure how doc/python_reference.rst should be changed. Isn't it just the datasets as a submodule?

Ok, I think that's good https://26452-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html?highlight=ecog

Ok, I think that's good https://26452-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html?highlight=ecog

I'm getting confused here:

The discussion above converged on keeping the trace and changing the colormap (the whole point of the colormap change was to make the sphere marking the electrode shown in the trace more prominent).  Now the colormap has changed but the trace is gone?
the speed of the animation is a lot faster. Why?  The resulting flickering effect is ironic given that flickering can induce seizure in some viewers.  I'm not susceptible to seizure in those circumstances but I do find it quite hard to watch now.

Ok, I think that's good https://26452-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html?highlight=ecog

I'm getting confused here:

The discussion above converged on keeping the trace and changing the colormap (the whole point of the colormap change was to make the sphere marking the electrode shown in the trace more prominent).  Now the colormap has changed but the trace is gone?
the speed of the animation is a lot faster. Why?  The resulting flickering effect is ironic given that flickering can induce seizure in some viewers.  I'm not susceptible to seizure in those circumstances but I do find it quite hard to watch now.

It sounded like there were more issues with the time course than information from seeing it, I agree that I'm not sure what it adds. It's also hard to see all in one html page on my display at least so now with the smaller size and no time course it all fits on one screen which I like. It didn't seem like there was a strong argument for having a time course, rather just addressing how to fix bugs with the display, is there a good reason to have it?

Just looked at the most recent changes to this, and looks cool! I know I've been out for a bit. A couple of things:

In the "gamma power over time" plot, it's unclear to me what the viridis colormap is supposed to be showing. What is the purpose of the different colored traces? Are they ordered by electrode device or similar? It seems distracting to me if the color isn't meaningful.
How do we interpret the gamma power itself on the plot? Looks like there are a few posterior electrodes in the temporal lobe that have one kind of "spike" -- is this meaningful or just an artifact? Are the traces plotted upside down (is positive power down or up?)
For the animation, I think maybe this was mentioned above, but is it possible to put the electrodes back on top of the plot (they can be small) so it's obvious where the interpolated data is coming from?

It's rather long, so perhaps we should turn up the smoothing but leave the time dilation at none. I think the increased flickering is due to changing the colormap boundaries but I like that the way it is uses the whole color range.

Just looked at the most recent changes to this, and looks cool! I know I've been out for a bit. A couple of things:

There's a few planned changes but we want to start with some rendered plots and animations that don't push the limits of Circle.

In the "gamma power over time" plot, it's unclear to me what the viridis colormap is supposed to be showing. What is the purpose of the different colored traces? Are they ordered by electrode device or similar? It seems distracting to me if the color isn't meaningful.

They are indeed just colored by index. The one thing it really helps with is contrast since the line plots overlap a bit. However, if the colors are all random, it looks quite bad which is why this is the best I could think of. Not sure taking out the colors would be an improvement if that's what you meant...

How do we interpret the gamma power itself on the plot? Looks like there are a few posterior electrodes in the temporal lobe that have one kind of "spike" -- is this meaningful or just an artifact? Are the traces plotted upside down (is positive power down or up?)

Yeah, they are upside down, I'll flip them over. I'm not sure if the spike is meaningful, maybe @adam2392 knows.

For the animation, I think maybe this was mentioned above, but is it possible to put the electrodes back on top of the plot (they can be small) so it's obvious where the interpolated data is coming from?

Hmmm, I'm not sure how to do this, perhaps with brain.add_data. I'll have to look into it.

Re spike: It looks like we're not just cropping to around the seizure, and it's showing a condensed version of the entire trace, so I presume that spike is just some time during the seizure, which is pretty normal to see huge variation in frequency power.

Looks pretty good https://26457-1301584-gh.circle-artifacts.com/0/dev/auto_tutorials/misc/plot_ecog.html?highlight=ecog

Flickering in the movie is much better now, thanks.  For the "gamma power over time" I'm thinking about ways to solve the overlap issue: can you make it as big as the previous image that showed just the electrodes? And/or zoom in slightly?  If you try zooming, I think it would be OK to have some of the extreme anterior/posterior electrodes go out of frame, as long as there were still some electrodes visible that weren't undergoing seizure.

The best way I can think of addressing that is the second view so I added that back

Hmmm, Sphinx renders fine for me for the second plot on the right locally but is all messed up here, any suggestions? cc @larsoner

So I looked into what needed to be done to animate the time series as had been done in the updated example and it looks like evoked.animate_topomap already exists so an evoked.animate_topo could be added but I think this is a bit of a special case using long evoked that wouldn't necessarily be helpful generally where evoked time courses are usually not nearly as long. Not sure if a separate PR to add animation to a topo would be useful, in my opinion, the way I had it previously is the most helpful to a user; it's not too much code although it is a bit code heavy and it conveys the most information about the seizure. I'm fine merging this version too, I just don't think it's as informative as the animated line plots and the animated bar plots. In my opinion, it's really nice to have a bit of code to show how things work as long as it's well-written-- if everything is too encapsulated, the user doesn't learn about the components in a way that makes the code more flexible for them to use.
There is still this issue with the plotting that seems like a backends issue, unless there is a solution to that issue, the cropping + zooming in might have to go.

My vote is to remove the crop+zoom for now and add it later. Same with animations, let's make incremental improvements in subsequent PRs to plot_topo / find_layout etc., then add animation etc. I agree these things are useful -- maybe we want an animate_topo or something -- but let's do those in smaller chunks rather than all at once here.

My vote is to remove the crop+zoom for now and add it later. Same with animations, let's make incremental improvements in subsequent PRs to plot_topo / find_layout etc., then add animation etc. I agree these things are useful -- maybe we want an animate_topo or something -- but let's do those in smaller chunks rather than all at once here.

I addressed @libertyh's comment (good suggestion, thanks) and hopefully fixed the plotting so I think this is okay unless you want to remove it.

Animated gist for the record https://gist.github.com/alexrockhill/fa7fd568eed5fb8996961a7e1564ce0e

Thanks @libertyh @alexrockhill @adam2392 for working through this, it's a great improvement!
Looking forward to the next round with some plot_topo / find_layout gymnastics @alexrockhill :)


Adding videos on open source

Fixes Issue
Closes #1014
Closes #1015

Changes proposed

I added a new subcategory for the Open Source section and a resource that supports it
Screenshots

Note to reviewers

@CBID2 the deployment is failing, please look into that.
And one thing i want to ask, like can we not just add the yt link in db and export that and link, why have you changed the header code?
just asking i'm totally new and don't know as i was doing the same just adding the resource and linking that but was unable to see the result

@CBID2 the deployment is failing, please look into that.
And one thing i want to ask, like can we not just add the yt link in db and export that and link, why have you changed the header code?
just asking i'm totally new and don't know as i was doing the same just adding the resource and linking that but was unable to see the result

I was trying to add a new subcategory and a merge conflict happened.

I'll create a better one @k-deepak04


[String] Solution for License Key Formatting.

@soapyigu after a long time, I am adding this PR :)

@soapyigu , It's done.


Conda recipe here and package in conda-forge channel mismatch

I'm running OS X and I'm getting a dbus post-script message, but dbus is not a requirement in the recipe anymore (https://github.com/conda-forge/qt-feedstock/blob/master/recipe/meta.yaml#L70)
    If this is your first install of dbus, automatically load on login with:
        mkdir -p ~/Library/LaunchAgents
        cp /Users/cdoig/anaconda/envs/test-notebook/org.freedesktop.dbus-session.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist

    If this is an upgrade and you already have the org.freedesktop.dbus-session.plist loaded:
        launchctl unload -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
        cp /Users/cdoig/anaconda/envs/test-notebook/org.freedesktop.dbus-session.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist

The build number also doesn't match in anaconda.org https://anaconda.org/conda-forge/qt/files
For OSX, latest is: osx-64/qt-5.6.2-1.tar.bz2, but in recipe is 4 for OSX: https://github.com/conda-forge/qt-feedstock/blob/master/recipe/meta.yaml#L28
To reproduce:
conda create -n test-notebook -c conda-forge python=3.6 jupyter notebook

...
    If this is your first install of dbus, automatically load on login with:
        mkdir -p ~/Library/LaunchAgents
        cp /Users/cdoig/anaconda/envs/test-notebook/org.freedesktop.dbus-session.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist

    If this is an upgrade and you already have the org.freedesktop.dbus-session.plist loaded:
        launchctl unload -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
        cp /Users/cdoig/anaconda/envs/test-notebook/org.freedesktop.dbus-session.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist

Additional information:
conda info
               platform : osx-64
          conda version : 4.3.22
       conda is private : False
      conda-env version : 4.3.22
    conda-build version : 2.0.10
         python version : 2.7.12.final.0
       requests version : 2.12.4
       root environment : /Users/cdoig/anaconda  (writable)
    default environment : /Users/cdoig/anaconda/envs/test-notebook
       envs directories : /Users/cdoig/anaconda/envs
                          /Users/cdoig/.conda/envs
          package cache : /Users/cdoig/anaconda/pkgs
                          /Users/cdoig/.conda/pkgs
           channel URLs : ...
            config file : /Users/cdoig/.condarc
             netrc file : None
           offline mode : False
             user-agent : conda/4.3.22 requests/2.12.4 CPython/2.7.12 Darwin/16.7.0 OSX/10.12.6
                UID:GID : 502:20

Thoughts, @ccordoba12?

The build number also doesn't match in anaconda.org

Indeed, the OSX package hadn't been rebuilt since April.  But fortunately, I just rebuilt it yesterday.  The fresh build is waiting in my channel, but someone needs to copy it into conda-forge.
There was one minor question to be answered first.  See https://github.com/conda-forge/qt-feedstock/pull/48#issuecomment-320951745
(I think it's a non-issue, but I guess it would be good to get a second opinion from @msarahan or maybe @pelson.)

@chdoig OK, @ocefpaf just copied the new packge to the conda-forge channel.  Give it a try?

Tested, got the latest build and not getting the dbus message anymore. Thanks!


⚠ Bofrost.nl has degraded performance

In 65ce29b, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 908 ms

Resolved: Bofrost.nl performance has improved in 8cf2539.


Unable to add Chromecast Groups without discovery

Home Assistant release with the issue: all

Last working Home Assistant release (if known): /
Operating environment (Hass.io/Docker/Windows/etc.): all

Component/platform: media_player.chromecast

Description of problem:
Unable to manually add Chromecast groups. This is an issue when running HA in a different network subnet. A simple manually-maintained solution could be to add the group manually by allowing to specify a port in the config. Granted, this poses a problem when the elected leader changes. Not sure what the best solution would be to catch this.
As a quick fix, I added the possibility to specify a port (which I discovered through a manual netdisco run) in the config; this at least helps me.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
cast:
  media_player:
  - host: <IP_ADDRESS>
    name: My_Chromecast
    port: 42625

Traceback (if applicable):

Additional information:

Sorry for bumping an old (and closed) issue.
I have tried the port option to add a speaker group whose devices are in a different subnet than HA, but it has no effect.


Adding Cognitive Web Search API Swagger Spec

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[ ] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[ ] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: sudhansu88 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@NiklasGustafsson / @johanste would one of you mind looking over this submission from a Data-Plane API Review Board perspective?

Another quick question, is the service that this is describing available for public consumption now?

Yes. Its available for public consumption now

We're giving intermediate approval to unblock this now.
The changed that we've requested that are not included will be done by the product group. They are tracking that here: https://msasg.visualstudio.com/Bing_UX/DevEx Team/_workitems?id=966145&_a=edit

There are still a few semantic errors that were introduced. I assume those need to be cleaned up before this gets merged.

The sematic Errors reported in the link seems to be invalid. It is showing other Specs as well apart from WebSearch Swagger Spec! Please let me know if that's the correct link.

Hey, sorry @sudhansu88, my bad those errors do seem to be regarding other Swagger documents. I rescind that comment.

No modification for AutorestCI/azure-sdk-for-python

No modification for AutorestCI/azure-sdk-for-ruby


Adding scaling to e2e test scripts [WIP]

Adding scaling to the e2e test scripts

Hey @dry923, it would be nice to use python virtual envs to install requirements. Same as Mohit is doing at https://github.com/cloud-bulldozer/e2e-benchmarking/pull/40

requires https://github.com/cloud-bulldozer/benchmark-operator/pull/409

Hey @dry923, it would be nice to use python virtual envs to install requirements. Same as Mohit is doing at #40

actually the req's aren't even needed. it came from the folder i copied over to use as a skel. i'll remove it though. thanks!


Update magnolia to 1.3.2

About this PR
📦 Updates com.softwaremill.magnolia1_3:magnolia from 1.3.0 to 1.3.2
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.magnolia1_3", artifactId = "magnolia" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.softwaremill.magnolia1_3", artifactId = "magnolia" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, commit-count:1

Superseded by #991.


[Bug/Glitch] Incompatible with Optifine

Legacy4J Version
1.20.1-<IP_ADDRESS>
Mod Loader Version
Forge 1.20.1-47.2.18
Bug/Glitch Occurrence Context
Only happens when Optifine is in the mods folder along with Legacy 4J. Happens while forge is loading right before the Mojang Screen.
Crash Report
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector tesselate(Lnet/minecraft/client/renderer/block/LiquidBlockRenderer;Lcom/mojang/blaze3d/vertex/VertexConsumer;DDDFFFFFFILnet/minecraft/world/level/BlockAndTintGetter;Lnet/minecraft/core/BlockPos;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;)V in legacy.mixins.json:LiquidBlockRendererMixin failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap Legacy4J-forge-refmap.json
What happened wrong?
Game Crashed before loading Mojang Logo or Title screen. Error: org.spongepowered.asm.mixin.transformer.throwables.mixintransformererror: an unexpected critical error was encountered

Optifine is closed source and it's not meant to work with L4J

Okay, that makes sense. I found a better alternative to what I was trying to use Optifine for anyway.


Minify Images

The images we have are huge. Loading a web page brings in 10mb, which is obscene.

But image quality?


Feat: JSAP, Config, Input dir option, Output modes, Git patches generation

@monperrus  @fermadeiral
Change Logs:

JSAP options
Abstract legacy main for branching to new main
Can now specify workspace of outputs
[Flyweight pattern] SonarQubeConfig
[Strategy pattern] repair modes
Output modes - by default only output files modified by processor
Generate Git patches, if Git project repo root dir specified

Switch to new mode by specifying --versionMode NEW in main . By the default, it's the legacy mode running.
I am in a dilemma regarding Main implemeting MainApi due to legacy test cases make static calls to Main (repair and normalrepair method), since we would have to change the original test cases while the idea is to make zero changes to original code.

@henry-lp, you are going to have conflict here when my PR is merged. Could you put this PR on hold until the release of the project, which will happen this week, so we can discuss about what you are doing, please? For the moment we just need a good ground, i.e., a clean repository, to release it, and then we can start to work on the functionality itself. Is that ok for you?

@fermadeiral yes, sounds good :) . I'll continue with playing with spoon and building the processors locally and make changes to repairnator to integrate this later.

#63 merged, ready for rebase here!

@fermadeiral yes, sounds good :) . I'll continue with playing with spoon and building the processors locally and make changes to repairnator to integrate this later.

Perfect, Henry! I hope you are going well with Spoon!

@fermadeiral yes it tooks time going through the tutorial, docs and reading the papers. But I think I understand the basic to start experimenting :) . The links you sent me helped a lot.

@monperrus @fermadeiral  Green, ready for review :) .

@fermadeiral Green, ready for review :) .

I thought you were ok to wait for the release, but anyway...
You mentioned the changes, but I don't understand why you did them. What is the goal of this PR? Why are there different "main"s?
PS: if you are using IntelliJ, please, use "Reformat Code" or something equivalent in the IDE you are using, the indentation here is broken.

@fermadeiral
Right this can wait. I forgot, It's a habit of my to request review after CI got green :) .
No I don't use Intellj only Sublime text editor. The point is to abstracting the Main to perserve to legacy functionalities until we trust the new Main, then you can just delete the old Main and move the new Main out of its folder :) .
I want this structure since we can have different repair modes later, it's nice to have centralized config and instead of raw input extract we can use JSAP.

conflict?

conflict?

yes, It's resolved :) .

Thanks @henry-lp! @fermadeiral you have merge rights. would you want to handle merging here? Thanks!

@fermadeiral changed per discussion :) . Ready for review .

@fermadeiral all fixed :) . Review ready again.

new feature: only files changed will be output as patches in latest commit :) .

@fermadeiral I assume you're responsible for merging Henry's PR, OK for you?

I will update usage in README once the PR is done review and merge :) .

Ready to merge when green :) .

WDYT?

I think we should keep it that way otherwise I would have to change modifier of all other methods in start to public static in main method , which I don't like very much :) . WDYT ?

I think we should keep it that way otherwise I would have to change modifier of all other methods in start to public static in main method , which I don't like very much :) . WDYT ?

I think you are right to leave it that way!

Thanks for the extreme detail review, Fernanda :) .

Thank you, Henry! Good job, and congrats on your first PR in this repo!

Thanks a lot to both of you!


Add tool

Add Pdf Drive - https://www.pdfdrive.com/
which can be used to download books as pdf

@JasonDsouza212 Can you please assign this to me?


ifValidator / ifAsyncValidator

Hello,
If I add some ifValidator
 'foo': [
        '',
        ifValidator(() => this.areAdditionalFieldsRequired, [Validators.required]),
      ],

control.hasValidator(Validators.required)

Is always false even If it's correctly applied
Should I check it somehow differently or would be please possible to add some feature to check .hasIfValidator ?
Of course I know I can discover required status from the property this.areAdditionalFieldsRequired, but I have generic components for different form controls and there it is infered from
isRequired = signal(false);

this.isRequired.set(this.control.hasValidator(Validators.required))

So I could do that with additional Input property but it would be nice to infer it from hasValidator function directly
Thank you very much :)

In the current implementation, any validators provided are composed, which breaks these presence checks. I'm about to submit an improvement so that individual validators are preserved. Perhaps further changes can be made to preserve multiple ones by composing them in a different way (that could potentially be its own util 🙂)
It's worth noting that since hasValidator checks by reference, validator factories passed directly will also return false, as they do without this helper, unless the result is saved in a property.
const maxValidator = Validators.max(10);
const control1 = new FormControl(Validators.max(10));
const control2 = new FormControl(maxValidator));

control1.hasValidator(Validators.max(10)); // false
control1.hasValidator(maxValidator); // false
control2.hasValidator(Validators.max(10)); // false
control2.hasValidator(maxValidator); // true

(this is not the case here, just posting for clarification)


Add Tests (better late than never right)

As a developer, I would like to have unit and integration test to make sure that the code works.

Closing this issue as won't fix since we will so a redesign of the software. The current software is just a Prof of concept (POC) to get development going. Now that we know a lot more we would like to design the software so that we can facilitate integration with other project.
For example:

Home assistant, nice to be able to get all the data into it and control everything from a computer or smart phone.
Grafana for graphing and data analysis.
Local food nodes for buying and selling local produce.


Annotate Api::Problem error with thiserror::transparent

Error variant Api::Problem prints "API error: {problem}" however the Problem struct has display impl that starts by printing "API error". Together this results in "API error: API error" followed by the details.
This fixes that by annotating Api::Problem with thiserror's transparent attribute which forwards the display impl to the underlying types display impl.

Nice, thanks!


WA Sustainability Pillar - Using Redshift Data Sharing for Sustainable Data Pattern

This lab will help implement best practices for data patterns defined in WA Sustainability Pillar - specifically, removing unneeded or redundant data, and minimizing data movement across network.
The use case is AnyCompany (an event management organization) running central data warehouse (around 2PBs data size) environment on AWS Redshift in us-east-1 region, which is used by various departments in organization for their respective storage, analytical processing & reporting. Marketing department is the top consumer of the data warehouse, and have data engineers, analysts, and scientists spread across US offices. At present, they have implemented Redshift replication to keep both us-east-1 and us-west-1 region data warehouse in sync. Since Marketing team analytical processing consumes lots of resources, they perform their analytical processing in us-west-1 region, and other departments use us-east-1 region hosted data warehouse. This requires storing redundant dataset in us-west-2 region, and transferring huge amount of data over network between AWS regions. This is not a Sustainability friendly implementation, and can be optimized using AWS WA Sustainability Pillar best practices for Data patterns.
By introducing Redshift Data Sharing feature, Marketing department can optimize their implementation to make Sustainability impact, and avoid redundant storage & reduce data transfer over network between AWS regions. Data sharing enables instant, granular, and fast data access across Amazon Redshift clusters without the need to copy or move it. With data sharing, you have live access to data, so that your users can see the most up-to-date and consistent information as it's updated in Amazon Redshift clusters, and provides cost benefit.

I am closing this as I do not see anything actionable here.  Please feel free to re-open if there is something we can do.

This is being tracked here: https://github.com/awslabs/aws-well-architected-labs/pull/524

oh, ok... I now see the issue is to create a new lab... that was not initially clear.  re-opening


predefined set of CSVConfig

For common and often used CSV files formats, have a pre-defined CSVConfig file that makes it convenient to parse those files without having to manually configure the CSVConfig.

Added refined config for stooq.pl and histdata.com


Feature: Add libwayland-egl FFI bindings

This is chained on #2 but I'm happy to rebase
These are pretty simple bindings since libwayland-egl's interface itself is so small. I hope it's in scope of this project since this lib appears to be included with wayland dev libraries.

My main concern with this is in adding a runtime dependency on libwayland-egl. I typically build applications as images, and cl-wayland-client is designed so that, when built into an image, it doesn't have any dependencies on the wayland development files and the only dependency is libwayland-client itself. (I'm pretty sure I also got concatenate-source-op working, so that you can distribute the application as a .lisp file with the protocol-definition-generated Lisp code already built-in.) For that reason, I don't want to add a hard runtime dep on libwayland-eglfor any user of the library. (On my machine - Fedora 36 - it gets pulled in by GTK3 and wayland-devel, but not by libwayland-client itself.)
With that said, as it's currently implemented, this won't automatically get pulled in by users of #:com.andrewsoutar.cl-wayland-client - it will need to be loaded explicitly as #:com.andrewsoutar.cl-wayland-client/egl-core. If that's fine with you, it seems like a fine compromise to me.
Just a couple other things for you to think about:

Why egl-core and not just egl? Calling it egl.lisp (a) is a bit shorter (com.andrewsoutar.cl-wayland-client is annoyingly long enough - I take full responsibility for that one) and (b) matches the library (libwayland-egl, not libwayland-egl-core).
Especially if this is going to be an optional module, we should probably at least mention it in the README

I don't have much experience with delivering lisp images. I agree I would like any runtime dependency to be optional and at most the binary .so file, not all the dev files. If that's not how it is currently, do you know how it could be corrected? Else, I'll give a look around at other packages like cl-opengl to see how they ensure the lisp core stays linked to the .so files

Why egl-core and not just egl?

I wasn't sure if this was even the right project to put it or if you were interested in pull requests so I tried following convention. I like egl better too. I'll change it.
I'll update the README as well

@andrewsoutar sorry for the delay. I've updated the README and added an example. I put the example in its own file since it seems like the README would get unwieldy with another long example block. I also moved the package to egl instead of egl-core

@andrewsoutar is there anything else I should address or make better? I'm still committed to getting this to a merge-able state if you have any feedback.


Check for incoming-payment in wallet address path during wallet address creation

Context
Todos

[ ]

Fixed in https://github.com/interledger/rafiki/pull/2075


HHH-12464 - NPE upon insert & delete with identity generated id

https://hibernate.atlassian.net/browse/HHH-12464

@dreab8 I'd change it to:
"The Persistence Context does not contain any entry for the [%s] entity instance. This may occur if an entity is created and then deleted in the same JPA EntityManager or Hibernate Session".

"Skipping action - the persistence context does not contain any entry for the entity [%s]. This may occur if an entity is created and then deleted in the same transaction/flush."

Thanks @sebersole , applying your suggestion.


chore(utils): Add online toposort and graph tracer

I'm trying to break out parts of my refactor that make sense on their own. This PR contains two graph utilities that I needed. Hopefully they make sense out of context, although I suspect tracer might not.

Ignore the diff on toposort.rs, the new version has pretty much nothing to do with the old

Thanks

It may be worth upstreaming the OnlineToposort at some point 👀

I agree, although right now I think it's a bit rough and I think it will be too slow. Ideally this algorithm would make "optimistic" decisions, so that it is fast if the graph is unchanged and you only pay a penalty for changes you've made.
Should be possible to get there, but let's first see how far this gets us!


Infinite loop in R "step()"

Executing this code for a linear model
fullnoint <- lm( SGAIN ~ L.SECONDS + LOCUS + ATTPRE + AGENT + EFFORT + GMRT + ACT, data = d2)
step(fullnoint)

Causes an infinite loop (or waits forever)
Strangely if I reduce the number of variables so that the output is smaller, there is no infinite loop.
Also, the current behavior puts about 42 lines into the cell output, then puts ~14 lines into stdout, then truncates the rest. The command works fine in R 3.2.0.
If we force a different processing of the output by wrapping the call:
capture.output(step(fullnoint))

Then there is no infinite loop, but the output text isn't as pretty.
Version is beaker-notebook-v1.2.1-0-g7dc8ced-windows

thanks for the bug report, can you provide a more complete example that reproduces the problem?

Sure thing, this can be replicated with the built in mtcars dataset:
fullnoint <- lm( mpg ~ cyl + disp + hp + drat + wt + qsec + vs, data = mtcars)
step(fullnoint)

As before there are 41 or 42 lines in the output cell, about 11 lines in stdout, and the rest are truncated.
What seems to work best as a workaround is actually to call capture.output() twice, like so:
capture.output()
fullnoint <- lm( mpg ~ cyl + disp + hp + drat + wt + qsec + vs, data = mtcars)
capture.output(step(fullnoint))

I found that sometimes (like if I reboot the computer) that just having the second capture.output() wasn't enough, like it needed to be "initialized" somehow.

Thanks.  I believe this has already been fixed.  On 1.2.1 I can reproduce the problem, and on current master it works fine and I get this:

We fixed R to use the newer and better stdout mechanism.  LMK if this doesn't look right.

OK, building from master fixed for me (version: master-0-g3e4a523)
I also downgraded R 3.2.0 to 3.1.0 to follow the windows build instructions precisely
Some very nice UI improvements in the master branch!

xlnt thanks for the followup.  should work with R 3.2.  In fact you don't have to add it to PATH anymore those instructions are a bit out of date, so I removed that part thanks for the tip.
glad you like it, there are more coming :)


ghc/hadrian: Respect patches argument

Description of changes
Previously any attempt to patch GHC would be subject to the restriction that patches would not be applied to the source tree used to build Hadrian. This is problematic as frequently Hadrian is evolved in conjunction with the compiler proper. Here we introduce a new patches argument to the common Hadrian derivation, allowing the user to specify patches that affect both Hadrian and the compiler build, e.g.:
haskell.compiler.ghc961.override { patches = [ ./wombat.patch ]; }

Things done

Built on platform(s)

[x] 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/)
24.05 Release Notes (or backporting 23.05 and 23.11 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.

Cc @sternenseemann, @maralorn, @guibou

This looks sensible to me. But sterni needs to judge.

@sternenseemann this PR looks good but it is the 5th least recently updated...

I'd support this use case via #304652 which I think simplifies all the involved expressions.


ProgrammingArticles: 10 Unexpected Challenges Software Developers Face

| 10 Unexpected Challenges Software Developers Face in Their Careers / by Arslan Mirza / Medium / Level Up Coding |

#1856 closed #2323


Fix mobile menu regression on policies page

@JimBugwadia If you please

@JimBugwadia the rendering problem was a caching bug. Rerending the site succeeded.


Regards CLIENT_NOT_SUBSCRIBED

Hi Team,
I have created a Test Company in the Sandbox environment..
I got the list of details like user id, password,address details, VRN and NINO Number etc.
In this i got the NINO as 'AB123456C'.
I have successfully authorised this NINO number,  but while retrieving the list of Businesses for Self-Employment it is throwing an error like
HTTP status: 403 (Forbidden)
Code: CLIENT_NOT_SUBSCRIBED.
This is throwing the error while using the following link
https://developer.service.hmrc.gov.uk/api-documentation/docs/api/service/self-assessment-api/2.0#selfemployment-business_add-a-selfemployment-business-test-support_post_accordion
The same scenario for other NINO number is working fine.
Any help or guidance would be much appreciated!
Thanks in advance.

Hi there,
In the above situation, we have got the NINO as "AB123456C" and the same is throwing an error message. Could you please advise what would be the possible reason for the same.
Any help on the above query would be much appreciated.
Awaiting your response!

Hi @heythisiskishore
Apologies for the delay.
The nino generation in the test environment should be randomised, so we would not expect AB123456C to be returned. It looks like something went wrong with the test user setup, but I can't be sure. Let us know if this happens again.
Thanks


Usage with view components

Today I learned about view components and they seem to have a strict unconfigurable convention for finding component views.
Is there are a cleaner way to use view components with feature folders other than to explicitly specify the full view path when returning a view from a component?

I've used shared view components (Features\Shared) without specifying the full path. Are you using a view component that is restricted to use from a specific feature? I'll have to try that scenario, but I think it should work without a full path.

A quick test revealed that a view component invoked from Features/Projects seemed to look for its view only from Features/. I don't understand how it came up with that path... I'll soon investigate it further.

I have been lazy and haven't investigated further. In the one place I currently use a ViewComponent I just specify the path directly like so return View("~/_Features/ProjectList/ProjectListPartial.cshtml"); and that's good enough with ReSharper navigation support.

This is still an issue. Couldn't get it to work. It doesn't understand {0} and {1}. When hard coded, it works.


CLI endpoints and parameters to manage database backups

Fixes #3122
Short description
This adds the /api/v1/state.json endpoint to allow downloading state dump from a CLI node, and a new --load-state <path.json> parameter, to upload it back in a new instance / database path.
Additionally, we improve UX by not requiring SDK to be shut down for Raiden.dumpDatabase, and now it's also incremental by returning an async generator of rows (more useful on very big databases), instead of forcing collecting everything in an array beforehand.
Definition of Done

[x] Steps to manually test the change have been documented
[x] Acceptance criteria are met
[ ] Change has been manually tested by the reviewer (dApp)

Steps to manually test the change (dApp)

Lauch cli
curl http://localhost:5001/api/v1/state.json -o cli_state_dump.json
Stop cli
rm -rv ./storage/raiden_*_<your_address>_* to clear state
Launch cli with --load-state cli_state_dump.json and see it continue from state before

Apart from the failing Dapp E2E tests, the changes look ok. I'll approve it once the build is green 👍


MRTK Standard Shader - Enable "_MainTex" by default

Describe the bug
Currently, the MRTK Standard shader only enables keywords when the fields are manually enabled on the material. This makes sense with "Rendering Options".
I assumed the "Main Maps" are enabled by default as there is no check box to enable the fields.
Unfortunately, Albedo's Color is the only keyword enabled by default. It was quite a process to figure out why I wasn't able to set a texture on a MRTK standard shader material.
To reproduce
Try setting the "_MainTex" directly with renderer.material.mainTexture = ...
or via MaterialPropertyBlock:
MaterialPropertyBlock materialPropertyBlock = new MaterialPropertyBlock();  obj.Renderer.GetPropertyBlock(materialPropertyBlock);  int MainTexID = Shader.PropertyToID("_MainTex");  materialPropertyBlock.SetTexture(MainTexID, );  obj.Renderer.SetPropertyBlock(materialPropertyBlock);
Expected behavior
As mentioned above, I'd expect the more basic "Main Maps" keywords to be enabled be default.
The fix
A single but not intuitive line to add:
obj.Renderer.material.EnableKeyword("_MainTex");
Setup

Unity Version - 2018.3.11f1
MRTK Version - pulled MRTK_development from last week.

Target Platform

HoloLens
HoloLens 2
WMR immersive
OpenVR

Thank you @radicalad for pointing this out. This is a somewhat frustrating optimization that has "bitten" a few users. I probably need to bubble up the documentation a bit more.
As an optimization albedo operations are disabled when no albedo texture is specified. To control this (as requested by this blog post: http://dotnetbyexample.blogspot.com/2018/10/workaround-remote-texture-loading-does.html) simply check this box:

Note, you don't need to check this box if a texture is specified in the albedo slot at runtime (even a placeholder one).

Albedo Assigned at Runtime field is now on top of the inspector and it is still working in v2.5.1 :)


fix: fix the bug with hypotenuse custom channels

close: https://github.com/image-js/image-js-typescript/issues/406

I removed bitDepth option because it was only used in creating new image. But with getOutputImage the bit depth is the same as the input image's.


Showcase Your Education and Skills

Present your educational background and skillset effectively.

tailoring the education section to highlight relevant coursework or degrees;
creating a skills section that showcases both hard and soft skills relevant to your career goals.

I don't no what to discuss, so I added it just to pass the test.


Add a dark mode to the website

Adding a dark mode to a website may require changing the design. In its current state, dark mode color tones are dominant in general. But if we are considering a redesign to add a light/dark theme option, I would agree.
@lareii What do you think about it?

good idea. i was already thinking about updating the site, i'll take a look at this.

added theme change based on system default, thanks.


spectator mode is bugged

Game only generates asteroids around the player, which means in spectator when flying around it doesn't generate asteroids.
The client mod can be confused between position of spectator camera and the actual player, which I think messes up object tracking, and the client mod deletes asteroids that it shouldn't, which causes a weird bug of no asteroid but it's actually there and the player can hit it physically.
I think it needs rework of the client mod position logic, taking better into account the spectator camera vs. player position.

I reworked the plugin and mod in 01ea0a2045aeb87794b0fdad8d9294faa5088eba, fixed now


Production build before deployment

Hi! I have been trying to achieve the production build before deploying on Heroku. I have this React Chrome extension that tells me whether a website is using the production build or development build of React. When I use create-react-app, I'm able to achieve the production build by following the instructions they have given. However, when I use Bones, I'm unable to achieve the production build. I see that the documentation says we have to use npm start to get the production build, but I have been unsuccessful thus far. How can I do the production build before deploying to Heroku? I have a Procfile that says web: node server/start.js

I was having this problem too, even when using the deploy heroku script. My fix/workaround is to remove build from the .gitignore temporarily and then manually deploy via the usual flow (git add . / git commit -m "[your message]" / git push heroku master) since the heroku deploy script that uses the build branch script doesn't work for me, I get an error in the console saying I tried to deploy from a non-master branch.

Chloe, Thanks for reply! I looked at .gitignore, but I didn't spot any build file there. What did you mean when you said the below?

remove build from the .gitignore temporarily


Clarifying actions of clear and truncate.

I have added to the documentation on the clear and truncate functions to note that the capacity should be unaffected when they are called.
If my reading of the code is incorrect please reject this commit.

See #506 regarding the CI failure.

Can you merge or rebase master?


Make base query immutable

Description
Once the user saves an application with a base query, it can not be changed
Issues Resolved
Resolves #467
Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #500 (ddad215) into main (f14c32c) will increase coverage by 15.74%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##               main     #500       +/-   ##
=============================================
+ Coverage     56.83%   72.58%   +15.74%
  Complexity      272      272
=============================================
  Files           206       38      -168
  Lines          7532     2123     -5409
  Branches       1498      236     -1262
=============================================
- Hits           4281     1541     -2740
+ Misses         3053      420     -2633
+ Partials        198      162       -36

Flag
Coverage Δ

dashboards-observability
?

opensearch-observability
72.58% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...lytics/components/config_components/log_config.tsx

...onents/application_analytics/components/create.tsx

...y/public/components/common/search/autocomplete.tsx

...shboards-observability/common/utils/query_utils.ts

...analytics/components/dashboard/dashboard_table.tsx

...tebooks/components/helpers/legacy_route_helpers.ts

...public/components/explorer/docTable/doc_flyout.tsx

...onents/explorer/visualizations/lens_field_icon.tsx

...tom_panels/panel_modules/panel_grid/panel_grid.tsx

...nents/explorer/visualizations/assets/chart_bar.tsx

... and 158 more

Continue to review full report at Codecov.

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


[fix] opendata seed : save resource files

Coverage decreased (-3.0e-05%) to 84.937% when pulling 6dcb18a533abeb82e9a3f17b4d8d7f4e6026efbf on fix-seed into d1e2648da0a5271154492b2e2b6442f23efa86e7 on master.


isNavigable broken on latest

Expected Behaviour
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">


Fix group listing: don't add root every time

The vector of all gids should be resized (and sorted, deduped) before we translate it to the returned group list
Signed-off-by: Luca Fulchir<EMAIL_ADDRESS>

related to ticket #44

related to ticket #44

Hi, @ogham , any update on this?  I think this is a good fixing :-D

Run into this as well and it's extremely annoying.
@ogham hasn't done any commits since 2021, which makes me wonder if this repo is just abandoned and if so if anyone could take this one over?

Since this project is unmaintained, I forked to gierens/uzers-rs where I for example merged this PR and maintain it from now on. It's also available in v0.11.1 on https://crates.io


[FLINK-10397] Remove CoreOptions#MODE

What is the purpose of the change
This PR is based on #6748 and #6751 and is part of the removal of Flink's legacy mode.
Removes the CoreOptions#MODE option used to switch between the new and legacy mode.
Brief change log

Remove CoreOptions#MODE, CoreOptions#NEW and CoreOptions#LEGACY
Set the mode where it was switchable to new (e.g. isNewMode = true in YarnTestBase)

Verifying this change

Not explicitly tested

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@tillrohrmann The travis reports two issues :
  JobManagerHAProcessFailureBatchRecoveryITCase.testDispatcherProcessFailure:331 The program did not finish in time

and
Running org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.771 sec <<< FAILURE! - in org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase
testFullReferenceCompleteness(org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase)  Time elapsed: 0.724 sec  <<< FAILURE!
java.lang.AssertionError: Documentation is outdated, please regenerate it according to the instructions in flink-docs/README.md.
	Problems:
		Documented option mode does not exist.
	at org.junit.Assert.fail(Assert.java:88)
	at org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase.compareDocumentedAndExistingOptions(ConfigOptionsDocsCompletenessITCase.java:118)
	at org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase.testFullReferenceCompleteness(ConfigOptionsDocsCompletenessITCase.java:76)

Results :

Failed tests:
  ConfigOptionsDocsCompletenessITCase.testFullReferenceCompleteness:76->compareDocumentedAndExistingOptions:118 Documentation is outdated, please regenerate it according to the instructions in flink-docs/README.md.
	Problems:
		Documented option mode does not exist.

@yanghua The former can be discussed at FLINK-10403 and the latter IMO can be resolved by regenerate the doc( not a critical blocker ).

@TisonKun  I know, I just give a reminder so that Travis can be turned green as soon as possible.

@StefanRRichter I would say that the removal of EXECUTION_MODE_OPTION and isNewMode will be part of FLINK-10392. For the isNewMode part, see also my comment under #6748 .

I agree with @TisonKun. Removing the EXECUTION_MODE_OPTION and isNewMode can be done in another subtask of FLINK-10392.


Adding a security section to the docs

fixes https://github.com/airbnb/caravel/issues/538 https://github.com/airbnb/caravel/issues/550

Coverage remained the same at 81.856% when pulling 4dd6ec068375fc7ed4f6f085aff4491b8e348b15 on mistercrunch:doc_security into 5bc50210ad665f3d0348326b49c81d97011b36f3 on airbnb:master.


redirect_to and render not working

Hello!
I've recently found that, from some time, turbolinks supports partial replacing from controller method and i'm super excited about that. However, after few attempts on making it work in my app, i'm still not table to use it. My use case is quite simple - i have a form with two fields which sends a remote POST request to /users/invite path. After successful submission, i want to reload that whole form. It has an id set to #place_users and remote: true.
My invite_user action looks like that:
def invite_user
  @result  = PlacesService::InviteUser.new(@place, invitation_params)
  @result.call

  redirect_to users_place_path(@place), turbolinks: true

And form:
= form_tag invite_user_place_path, data: { remote: true }, id: 'place_users' do
  input type="text"
  input type="submit"

After sending that form, there are no exceptions nor anything else and there are two requests visible in Network tab of chrome's OI: POST /place/invite_user and GET /place/users (the second one is the page with a form) but nothing is reloaded (for simplicity's sake i'm not trying to reload a single div but whole body).
I have completely no idea how can i debug turbolinks and to exactly know what are they doing but interesting thing is that i'm able to run, for example, Turbolinks.visit('/place/users', {change: 'place_users'}) in javascript console and it works as it should. It seems that just runnig turbolinks stuff from controller actions is broken somewhere. I don't know if that's a clue but i'm trying to use it in engine.
Have you any idea on what am i possibly doing wrong in here or how can i debug that?
Thanks in advance

Have you tried:
redirect_to users_place_path(@place), change: 'place_users'

Yeah, but it was not working neither.

What's the response body of the POST /place/invite_user request?

There is no body, just a 302 redirect to users_place_path

Are you using the latest master? What does Turbolinks::VERSION give you in the rails console?

I don't know if that's a clue but i'm trying to use it in engine.

What do you mean?

> Turbolinks::VERSION
 => "2.5.3"

I mean that i have a rails engine and i'm trying to use the code above in it, not in the root app.

You're not using Turbolinks master. Add this to your Gemfile:
gem 'turbolinks', github: 'rails/turbolinks', branch: 'master'

No problem ;)

@Thibaut I have 3.0.0 version of turbolinks and it does not work.
When i run render :show, keep: :foo, flush: true i should get an error. But it just renders the view

@galulex what do you mean you "should get an errror"? If you do render :show, keep: :foo, flush: true, the flush option will be ignored since keep takes precedence over it. However, you'll only get a Turbolinks.replace response on XHR requests (e.g. jQuery.ajax, but not Turbolinks.visit).

@Thibaut thanks for your response. i will check

@Thibaut I was talking about this line. Also I have checked with XHR request and get the same results. I always get the html but it should be wrapped with Turbolinks

@galulex Right. Sorry I forgot we had that. Is request.xhr? true before the call to render?

@Thibaut request.xhr? returns 0 when i click on remote link, in all other cases it is nil.

@galulex the Turbolinks render / redirect_to options only apply to XHR requests (remote links). You should get an exception in that case (only).

Gotcha! the problem was with remotipart gem it overwrites the render method. Will create an issue there. @Thibaut thanks you for your responses.


Can't resolve 'flexsearch'

I just created a brand new next.js project via pnpx create-next-app@latest, using the pages router (not app router), installed nextra with the docs theme and am getting an error resolving the flexsearch module. Is there something I'm doing wrong?
 ⨯ ../../node_modules/.pnpm/nextra-theme-docs@2.13.2_next@14.0.4_nextra@2.13.2_react-dom@18.2.0_react@18.2.0/node_modules/nextra-theme-docs/dist/index.js:535:0
Module not found: Can't resolve 'flexsearch'

Just ran into the same problem as well and have tried across various starter Nextra apps and development environments(on GitHub Codespaces, on a Mac computer, on a Windows computer, etc)
My app is saying:
./node_modules/nextra-theme-docs/dist/index.js:535:0
Module not found: Can't resolve 'flexsearch'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
./pages/index.mdx

I just created a brand new next.js project via pnpx create-next-app@latest, using the pages router (not app router), installed nextra with the docs theme and am getting an error resolving the flexsearch module. Is there something I'm doing wrong?
 ⨯ ../../node_modules/.pnpm/nextra-theme-docs@2.13.2_next@14.0.4_nextra@2.13.2_react-dom@18.2.0_react@18.2.0/node_modules/nextra-theme-docs/dist/index.js:535:0
Module not found: Can't resolve 'flexsearch'

It works fine on my local env, but not on the vercel.
Nothing changed related documents but the error showed for the past 8 hours.
this is vercel compile log.

Running build in Washington, D.C., USA (East) – iad1
--
11:35:51.323 | Cloning github.com/...
11:35:51.333 | VERCEL_FORCE_NO_BUILD_CACHE is set so skipping build cache step
11:35:54.885 | Cloning completed: 3.562s
11:35:55.693 | Running "vercel build"
11:35:56.213 | Vercel CLI 33.0.2
11:35:56.623 | Installing dependencies...
11:35:56.961 | yarn install v1.22.17
11:35:57.000 | info No lockfile found.
11:35:57.005 | [1/4] Resolving packages...
11:36:08.636 | [2/4] Fetching packages...
11:36:42.565 | [3/4] Linking dependencies...
11:36:42.570 | warning " ><EMAIL_ADDRESS>has unmet peer dependency "monaco-editor@>= 0.25.0 < 1".
11:36:42.570 | warning "@monaco-editor/react ><EMAIL_ADDRESS>has unmet peer dependency "monaco-editor@>= 0.21.0 < 1".
11:36:42.587 | warning Workspaces can only be enabled in private projects.
11:36:52.860 | [4/4] Building fresh packages...
11:36:53.072 | success Saved lockfile.
11:36:53.076 | Done in 56.12s.
11:36:53.128 | Detected Next.js version: 13.5.6
11:36:53.130 | Running "yarn run build"
11:36:53.324 | yarn run v1.22.17
11:36:53.359 | $ next build
11:36:54.078 | Attention: Next.js now collects completely anonymous telemetry regarding usage.
11:36:54.079 | This information is used to shape Next.js' roadmap and prioritize features.
11:36:54.079 | You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
11:36:54.079 | https://nextjs.org/telemetry
11:36:54.080 |
11:36:54.188 | Linting and checking validity of types ...
11:36:58.507 | Creating an optimized production build ...
11:37:01.262 | [nextra] Found "_app.tsx" file, refactor it to "_app.mdx" for better performance.
11:37:02.762 | [nextra] Init git repository failed Discover git repo from [/vercel/path1] failed: could not find repository from '/vercel/path1'; class=Repository (6); code=NotFound (-3)
11:39:13.425 | Failed to compile.
11:39:13.425 |
11:39:13.425 | ./node_modules/nextra-theme-docs/dist/index.js
11:39:13.426 | Module not found: Can't resolve 'flexsearch'
11:39:13.426 |
11:39:13.426 | https://nextjs.org/docs/messages/module-not-found
11:39:13.426 |
11:39:13.426 | Import trace for requested module:
11:39:13.426 | ./pages/config/config.mdx
11:39:13.426 |
11:39:13.427 |
11:39:13.427 | > Build failed because of webpack errors
11:39:13.793 | error Command failed with exit code 1.
11:39:13.793 | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
11:39:13.814 | Error: Command "yarn run build" exited with 1

and a part of packages.json dependencies
"dependencies": {
    "@emotion/react": "^11.11.1",
    "@emotion/server": "^11.11.0",
    "@mantine/core": "^6.0.19",
    "@mantine/hooks": "^6.0.19",
    "@mantine/next": "^6.0.19",
    "@monaco-editor/react": "^4.5.2",
    "@tabler/icons-react": "^2.34.0",
    "@vercel/analytics": "^1.1.1",
    "common-tags": "^1.8.2",
    "next": "^13.4.19",
    "nextra": "2.13.1",
    "nextra-theme-docs": "2.13.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "tmp": "^0.2.1", ...
  },

upstream issue goes from flexsearch
lock working version in your package.json, example with pnpm
  "pnpm": {
    "overrides": {
      "flexsearch": "0.7.31"
    }
  }

  "pnpm": {
    "overrides": {
      "flexsearch": "0.7.31"
    }
  }

wow... it works me. thanks!!!

  "pnpm": {
    "overrides": {
      "flexsearch": "0.7.31"
    }
  }

wow... it works me. thanks!!!

This one does not work for me following the nextra-docs-template example.

In my case, with yarn. This works.
"resolutions": {
  "flexsearch": "0.7.31"
},

@dimaMachina thank you :)

Just adding on to the pile, my team was facing the same issue, and the frontend dev was able to make the build compile by reverting to an older version of flexsearch.

upstream issue goes from flexsearch
lock working version in your package.json, example with pnpm
  "pnpm": {
    "overrides": {
      "flexsearch": "0.7.31"
    }
  }

Just to append to that,
That pnpm override should be in the root package.json if you're in a monorepo.

for those using bun,
 "overrides": {
    "flexsearch": "0.7.31"
  }


Use label selectors to filter Kubernetes pods

Issue #162
Replaces config k8s_app_label with k8s_dn_label_selector to allow the use of Kubernetes label selector for more flexible K8s deployments.
The old k8s_app_label is still supported for backward-compatibility.
Creates the test case K8sListDnTest to test both configs. This test case requires kubectl to be available and creates dummy namespaces and pods to setup the test environment.

Could you fix the flak8 errors listed here: https://github.com/HDFGroup/hsds/runs/7907409516?check_suite_focus=true?
Thanks!

Looks like the k8s_label_selector_test is being picked up by pytest and failing since we aren't testing with kubernetes currently -- see: https://github.com/HDFGroup/hsds/runs/8041629026?check_suite_focus=true#step:7:89.
I'd suggest just putting a: @pytest.mark.skip(reason="no automated testing for kubernetes currently") in the first lie of the test program.  Can run this manually to verify code.

I'd suggest just putting a: @pytest.mark.skip(reason="no automated testing for kubernetes currently") in the first lie of the test program. Can run this manually to verify code.

Done it in commit 431415c. I've used @unittest.skip instead of @pytest.mark.skip, as all tests within the tests folder seem to use unittest. I've put it in the test class declaration.


Action can be executed against a resource (no parameters required, just action name)

[ ] add action route
[ ] validate action
[ ] put message on service bus
[ ] add ability for resource processor to invoke custom actions

We should as need audit trail.

@damoodamoo this is complete and can be closed?


plugin-cloud-storage: Create new file (and upload) from URL.

I can't seem to figure out how to create a new Images document with the file uploaded to my S3 bucket via a given URL and alt string (required in collection config). Uploading from admin UI is working, so not a config issue.
Here is the code I'm using (assumes url and alt given):
let fimg = await fetch(url)
let data = Buffer.from(await fimg.arrayBuffer())

const file: File = {
  data,
  name: url.split("/").at(-1) ?? "",
  mimetype: getMimeTypeFromArrayBuffer(data) ?? "",
  size: data.byteLength,
}

console.log("File info", file.name, file.mimetype, file.size, alt)

const newImage = await payload.create({ collection: "images", data: { alt }, file })

console.log("New image", newImage)

The error I'm getting is:
[22:12:38] ERROR (payload): There was an error while uploading files corresponding to the collection images with filename immersion-heaters.jpg:
[22:12:38] ERROR (payload): getStorageClient(...).putObject is not a function
    TypeError: getStorageClient(...).putObject is not a function
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:154:48)
        at step (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:107:23)
        at Object.eval [as next] (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:48:20)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:26:71)
        at new Promise (<anonymous>)
        at __awaiter (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:8:12)
        at Object.eval [as handleUpload] (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/adapters/s3/handleUpload.js:141:16)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:209:57)
        at step (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:107:23)
        at Object.eval [as next] (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:48:20)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:26:71)
        at new Promise (<anonymous>)
        at __awaiter (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:8:12)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:203:36)
        at Array.map (<anonymous>)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:202:42)
        at step (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:107:23)
        at Object.eval [as next] (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:48:20)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:26:71)
        at new Promise (<anonymous>)
        at __awaiter (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:8:12)
        at eval (webpack-internal:///(rsc)/./node_modules/@payloadcms/plugin-cloud-storage/dist/hooks/beforeChange.js:133:16)
        at /FULL_SYSTEM_PATH/node_modules/payload/dist/collections/operations/create.js:105:23
        at async create (/FULL_SYSTEM_PATH/node_modules/payload/dist/collections/operations/create.js:103:5)
        at async createImageFromUrl (webpack-internal:///(rsc)/./PROJECT_PATH/utils/createImageFromUrl.ts:17:22)
        at async formatCategory (webpack-internal:///(rsc)/./PROJECT_PATH/utils/formatCategory.ts:35:30)
        at async syncCategories (webpack-internal:///(rsc)/./PROJECT_PATH/categories/route.ts:59:50)
        at async GET (webpack-internal:///(rsc)/./PROJECT_PATH/categories/route.ts:92:13)
        at async eval (webpack-internal:///(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:254:37)

Oddly enough the payload document still gets created and the last console.log outputs:
New image {
  id: '64e9275658eacfe6f6f1b23c',
  alt: 'immersion-heaters',
  prefix: 'CONFIGURED_PREFIX',
  filename: 'immersion-heaters.jpg',
  mimeType: 'image/jpeg',
  filesize: 5252,
  width: 500,
  height: 500,
  createdAt: '2023-08-25T22:12:38.547Z',
  updatedAt: '2023-08-25T22:12:38.547Z',
  url: 'FULL_URL/immersion-heaters.jpg'
}

Perhaps I am doing something wrong in getting/creating/passing the Buffer that's created from the URL?

The proper way to read data into buffer would be to use fs.readFileSync or similar.
We use a getFileByPath helper in our test suites to do this with the following:
const getFileByPath = async (filePath: string): Promise<File> => {
  if (typeof filePath === 'string') {
    const data = fs.readFileSync(filePath)
    const mimetype = fromFile(filePath)
    const { size } = fs.statSync(filePath)

    const name = path.basename(filePath)
    const ext = path.extname(filePath).slice(1)

    const mime = (await mimetype)?.mime || mimeTypeEstimate[ext]

    return {
      name,
      data,
      mimetype: mime,
      size,
    }
  }

  return undefined
}

I hope this provides you with some direction.

Thank you for your response, but I was trying to create an image from a remote url without using the filesystem. Apparently I was missing the new Uint8Array conversion before passing it to Buffer.from. The code below has been working for me:
const imageResponse = await fetch(encodeURI(imageURL), {
  referrerPolicy: "origin"
})
const responseArray = await imageResponse.arrayBuffer()
const imageBufferArray = new Uint8Array(responseArray)
const imageBuffer = Buffer.from(imageBufferArray)

const mimetype = imageResponse.headers.get("content-type") || "image/jpeg"
const newImageFile: File = {
  data: imageBuffer,
  name: filename,
  size: imageBuffer.length,
  mimetype
}

const newImage = payload.create({
  collection,
  data: { alt: alt ?? filename, title: filename },
  file: newImageFile
})


do djl support distributed Deep Learning training

Description
I have a spark cluster, but I don't have a GPU. Do djl support distributed training of BERT models using Spark CPU?

No we don't support training on spark. This isn't a common deep learning use case.


vanilla example throwing a require not defined Uncaught ReferenceError

Loading examples/vanilla/index.html throws the following error -
Uncaught ReferenceError, as require isn't defined.

@jasonmarah Sorry, i forgot to remove require from dev version. Now it should work.

Perfect, thanks! :+1:


Adds export table functionality

Allows the user to export individual text files as .csv, .tsv, or .txt files.

Tested, looks good.


Ensure automatic force-closure of LN-DLC channel is safe

It seems like LDK will eagerly publish the commitment transaction to force-close the channel in a lot of cases, even if the split transaction and the glue transaction are missing.
In our experience, when LDK fails on the commitment transaction publication it still removes the channel from the ChannelManager, so we're left in a state where it's hard (perhaps impossible) to recover the funds. In theory we should be able to recover the funds with the information stored in the ChannelMonitor, but we haven't verified this yet.

Tibo is looking into this atm.

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

Good timing as https://github.com/p2pderivatives/rust-dlc/pull/138 was opened just a couple days ago. I just need to review it!

We can address this one by upgrading to a later patch of our rust-dlc branch, as https://github.com/p2pderivatives/rust-dlc/pull/138 was merged.


Stored Data object as shared pointer to fix data alignment #1201

Hi @jcarpent
Let me tell you the story behind this. I though that storing the object by value might create issues with data alignment at Boost Python level. As you might know, Eigen instructs us to do not pass objects by value. Then I did a quick research on google and I found the following article: https://stackoverflow.com/questions/13177573/how-to-expose-aligned-class-with-boost-python
With this, I started to believe that makes sense my hypothesis. I decided to quickly implement it and voila, it is working.
I hope this solution meets Pinocchio standards.
Carlos
PD: this fixes the issue #1201.

@cmastalli At most, we are trying to avoid relying on smart pointers for efficiency reasons.
The interpretation you make is not correct:

Eigen allows the storage by value. But we cannot pass an argument by value to a function, otherwise, we cannot guaranty that the resulting allocated memory will be aligned.
To have memory aligned enforced with a container, Eigen makes easy the overloading of the new operator
The solution is that we need to force Python to hold an aligned segment in memory. One solution is to rely on Smart pointer as you did, the other one is to use template specialization.

we are trying to avoid relying on smart pointers for efficiency reasons.

Here, would they be bad ?

At least, they would save your time.

At least, they would save your time.

I do agree, but we cannot apply this strategy for all the types in fact. In EigenPy for instance, the same issue will occur for Numpy array which won't be aligned on 32 bits (as suggested by the report) because the default alignment is 16 bits.
I think there is no good solution. Smart ptr will partially fix the issue, not totally.
I'm afraid at some point we have to comply with these Python constraints. Don't you think so @cmastalli and @jmirabel ?

At least, they would save your time.

Going in this direction, I believe that pursuing the template specialization might be a nightmare. It will make the Pinocchio bindings highly depended of the boost version.
This comment arises after analyzing the solution posted in the article (and precisely explained here: http://fhtagn.net/prog/2015/04/16/quaternion_boost_python.html). I noticed that the code of my boost version looks completely different to the one used in this article. It would safe a lot of time and headaches. And it could be not justifiable to invest our coins on it.
I. Alternative solution: Eigen::DontAlign in bindings
The author also proposed, as alternative solution, to enforce Eigen::DontAlign for the Python bindings. I initialize thought that it was simple to implement in Pinocchio Data (due to Option argument) but I quickly realized that "it's not that simple". Furthermore, this solution could create problems in libraries such as Crocoddyl which it can inherit Python code as well.
II. The solution of ignoring this problem
This is a plausible solution, I believe, if we are not convinced on any path. This issue can be easily patched by using pinocchio.Model.createData(model). My point is we don't need to enforce the shared_ptr solution because we can still patch the code temporally.
Probably @nim65s and @gabrielebndn should give us a third opinion to make a conclusion about it.
@jcarpent thank you for taking this extra time on it. I promise, I won't continue on this topic :)

I do agree, but we cannot apply this strategy for all the types in fact.

Do we need to do it?

Smart ptr will partially fix the issue, not totally.

Could you elaborate this? Are cases where this solution won't work?
Note that this code works (I assumed that other functions as well, am I correct?):
import pinocchio
import example_robot_data

robot = example_robot_data.loadTalosLegs()
model = robot.model
for i in range(100):
  data = pinocchio.Data(model)

q0 = robot.q0
pinocchio.forwardKinematics(model, data, q0)

Just to be able to track the issue later, this is coming from this line: https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/object/make_holder.hpp#L93 where the memory pointer is not guarantied to be aligned.
This constructor is in fact called by boost::python::init<...> at this level https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/init.hpp#L310, which is then calling: https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/detail/make_keyword_range_fn.hpp#L65

pinocchio.forwardKinematics(model, data, q0)

This function is calling the constructor of Eigen::VectorXd, which is performing dynamic allocation of an aligned segment. So, you won't get any issue at this level. You will get trouble if you pass for instance a statically allocated object, such Eigen::Vector4d or Eigen::Quaterniond

Whatever, the main question is: do we really alignment of over 16-bits in Python?  My personal answer is no, and I don't think @cmastalli is really looking to this feature neither. It was a good occasion to understand the mechanism behind Boost.Python alignment issues at least. But personally, I won't push towards this direction.
We can keep this in mind for future.

Just to be able to track the issue later, this is coming from this line: https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/object/make_holder.hpp#L93 where the memory pointer is not guarantied to be aligned.
This constructor is in fact called by boost::python::init<...> at this level https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/init.hpp#L310, which is then calling: https://github.com/boostorg/python/blob/1727b67a5a92c8c3564d4ee244fffd758e54d7cc/include/boost/python/detail/make_keyword_range_fn.hpp#L65

boost does not allow to write your own holder type ?

Whatever, the main question is: do we really alignment of over 16-bits in Python? My personal answer is no, and I don't think @cmastalli is really looking to this feature neither. It was a good occasion to understand the mechanism behind Boost.Python alignment issues at least. But personally, I won't push towards this direction.
We can keep this in mind for future.

I don't think it is necessary to have this in the bindings. However, this means that, to have alignment in C++, we should not compile (or just not use) the Python bindings (because of the library, used by both).

You will get trouble if you pass for instance a statically allocated object, such Eigen::Vector4d or Eigen::Quaterniond

Do we have this kind of functions? Or could we have it?
My point is Pinocchio data always works with elements that don't need alignment in Python (e.g. configuration point, velocity, accelerations and forces).
I thought that forces might be a problem, I conducted a simple test with this code:
import pinocchio
import example_robot_data

robot = example_robot_data.loadTalosLegs()
model = robot.model
data = pinocchio.Data(model)

q = robot.q0
v = pinocchio.utils.rand(model.nv)
tau = pinocchio.utils.rand(model.nv)
fext = pinocchio.StdVec_Force()
[fext.append(pinocchio.Force.Zero()) for k in range(model.njoints)]
pinocchio.aba(model,data,q,v,tau,fext)

which is working.

this is working because you are not calling the corrupted Python constructor

I don't think it is necessary to have this in the bindings. However, this means that, to have alignment in C++, we should not compile (or just not use) the Python bindings (because of the library, used by both).

Thanks @jmirabel for this statement. I suggest closing this issue and to come to it latter if needed.


Play alert/features

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
In this PR:
Data tables  & Call to Action component

Screenshot(s):
Before
N/A
After

merging after approval and success checks


Infinite calling an API Ajax at map by line

Description
after you select in the form the fourth drop-down (choose drive route)
It begins an infinite loop in the useEffect make ajax with different time (recorded_at_time_from/to)
Screenshots

It's not infinite,
each request getting another minute

If you are okay with 2000 + requests in a few seconds and nothing show...
also at the map in real time the modal is flickering.

this should stop the flickering:
https://github.com/hasadna/open-bus-map-search/pull/119
and about the requests - you're right. we need to fix the splitMinutes parameter of the useVehicleLocations hook

that will solve other problems we now have:
https://github.com/hasadna/open-bus-map-search/pull/121

that fixed in pr #121
but now from some of the pr there is not API call at all.

Anyway, it's not infinite,
It's sending 24 * 3 requests. each request covers 20 minutes.
We can improve it. I agree.
Anyway, I'm closing this ticket as it's misleading.


Please merge on 3-05-2020, morning

Updated tubing on freecad assembly
staging more commits

Okay, standing by.


normalize() and norm() for Vector[Float]

I understand that both breeze.linalg.normalize() and breeze.linalg.norm() are implemented only for Vector[Double] and Vector[Int] types. However, these methods should also be applicable for Vector[Float] types. To my understanding, this should be straight-forward to do in the same fashion as for the other types.

Mysteriously, it works so long as the scalar argument is a double:
scala> val v = Vector[Float](1.0f, 2.0f)
v: breeze.linalg.Vector[Float] = DenseVector(1.0, 2.0)

scala> norm(v, 2.0)
res3: Double = 2.23606797749979

scala> norm(v)
res4: Double = 2.23606797749979

scala> norm(v, 2.0f)
<console>:12: error: could not find implicit value for parameter impl:
breeze.linalg.norm.Impl2[breeze.linalg.DenseVector[Float],Float,VR]
              norm(v, 2.0f)

This needs to be fixed, of course
On Tue, Aug 11, 2015 at 7:47 AM, Carsten Schnober<EMAIL_ADDRESS>wrote:

I understand that both breeze.linalg.normalize() and breeze.linalg.norm()
are implemented only for Vector[Double] and Vector[Int] types. However,
these methods should also be applicable for Vector[Float] types. To my
understanding, this should be straight-forward to do in the same fashion as
for the other types.
—
Reply to this email directly or view it on GitHub
https://github.com/scalanlp/breeze/issues/432.

Thanks for fixing that! Does this imply that normalize() will also work on a Vector[Float]? (I suppose these should actually have been two different issues)

it's also fixed. :)


Can't retrieve unregistered extension attribute 'blob'.

Copy pasted from tutorial
import spacy
from spacytextblob.spacytextblob import SpacyTextBlob

nlp = spacy.load('en_core_web_sm')
nlp.add_pipe('spacytextblob')
text = 'I had a really horrible day. It was the worst day ever! But every now and then I have a really good day that makes me happy.'
doc = nlp(text)
doc._.blob.polarity                            # Polarity: -0.125
doc._.blob.subjectivity                        # Subjectivity: 0.9
doc._.blob.sentiment_assessments.assessments   # Assessments: [(['really', 'horrible'], -1.0, 1.0, None), (['worst', '!'], -1.0, 1.0, None), (['really', 'good'], 0.7, 0.6000000000000001, None), (['happy'], 0.8, 1.0, None)]
doc._.blob.ngrams()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-30-b84122143817> in <module>
      6 text = 'I had a really horrible day. It was the worst day ever! But every now and then I have a really good day that makes me happy.'
      7 doc = nlp(text)
----> 8 doc._.blob.polarity                            # Polarity: -0.125
      9 doc._.blob.subjectivity                        # Subjectivity: 0.9
     10 doc._.blob.sentiment_assessments.assessments   # Assessments: [(['really', 'horrible'], -1.0, 1.0, None), (['worst', '!'], -1.0, 1.0, None), (['really', 'good'], 0.7, 0.6000000000000001, None), (['happy'], 0.8, 1.0, None)]

/opt/anaconda/anaconda3/envs/venv/lib/python3.6/site-packages/spacy/tokens/underscore.py in __getattr__(self, name)
     45     def __getattr__(self, name: str) -> Any:
     46         if name not in self._extensions:
---> 47             raise AttributeError(Errors.E046.format(name=name))
     48         default, method, getter, setter = self._extensions[name]
     49         if getter is not None:

AttributeError: [E046] Can't retrieve unregistered extension attribute 'blob'. Did you forget to call the `set_extension` method?

Can you please confirm the version of spacytextblob that you are using? From the command line you can run:
pip list

Note that ._.blob is new as of version 4.0.0 (https://spacytextblob.netlify.app/changelog/).

@SamEdwardes I just pip installed it so assume latest? but turns out 3.0.1

Ok make sure you are using 4.0.0 and it should work. Does it work after upgrading?


Fix worker stream register forget release lease

What changes are proposed in this pull request?
When we have a large cluster, we found that is very slowly to register all workers to master. Because of default 25 workers  register a time and the lease lasts for 1 minute since the worker have finished the register. And I found when not use stream register, it will release lease. So I think it should be the same as before.
Why are the changes needed?
Greatly increase the worker registration speed when you have a large scale cluster.
Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including
no

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.8 please

fix #16170