Fix documentation typo

It should be "Note that deposit is mandatory".

Pre-submit checklist:

Branch

[x] Tests are provided (if possible)
[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[x] Changelog fragments have been written (if appropriate)
[x] Relevant tickets are mentioned in commit messages
[x] Formatting, PNG optimization, etc. are updated

PR

[x] (For external contributions) Corresponding issue exists and is linked in the description
[x] Targeting master unless this is a cherry-pick backport
[x] Self-reviewed the diff
[x] Useful pull request description
[x] Reviewer requested

Thanks!


Check window size position

If multiple events are fired when responding to the first one the window
may already be positioned and resized to the wanted location and size.
Because of that the next events won't trigger a moved/resized
notification keeping Intrinsic flags set indefinitely

Can you format
if((Window->Position.x != X) || (Window->Position.y != Y)) {

like this instead:
if((Window->Position.x != X) ||
   (Window->Position.y != Y))
{


I want to add more courses to free-courses-hi.md

I have many courses in DSA, Flutter, HTML CSS, etc to add in free-courses-hi for adding, Kindly assign me this issue.

I have more than 20 courses to be added

Please Merge My Pr
#7386

Resolved by #7359, Resolved by #7358


Cognee integration

Description
Integration of the cognee GraphRAG to LlamaIndex.
With added tests, README.md and usage example in README.md
Fixes # (issue)
New Package?
Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

[x] Yes
[ ] No

Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[x] Yes
[ ] No

Type of Change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Your pull-request will likely not be merged unless it is covered by some form of impactful unit testing.

[x] I added new unit tests to cover this change
[ ] I believe this change is already covered by existing unit tests

Suggested Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] I have added Google Colab support for the newly added notebooks.
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] I ran make format; make lint to appease the lint gods

@dexters1 since the tests are skipped in CICD, actual coverage there is low. No worries though, understandable


Untitled

Hi,
I created a patch for handling negative default values. The value was prev. included in the c function name for default value construction resulting in function names containing '-'

No reply.


Reduce DB conn usage when fetching device data

slightly terrifyingly this suggests that the impl was written was not atomically doing a get-and-update?

Sadly, yes.


Refactor the documentation

An example of how the documentation will look can be seen here => https://gbenhaim.github.io/infra-deployments/docs/introduction/about.html

Split the long README doc into multiple docs located under the docs folder.

Add the required files for generating a site using Jekyll. The site will be hosted on Github Pages.

Rename AppStudio to StoneSoup.

Add  more information about the staging instance.

Signed-off-by: gbenhaim<EMAIL_ADDRESS>After this PR will get merged, the next step will be to add a contributing doc that will explain the steps for contributing to this repo.

|Please provide ticket based on which this change is done. Other Stone Soups repositories are using standard README.md, if there is decision of using this format then please record it in https://github.com/redhat-appstudio/book
@Michkov IMO, different teams can use the format that is the best fit for their documentation. Not all docs are the same, sometimes having Github pages is an overkill, and sometimes, like in the current case, it's a must in order to provide user-friendly navigation. Because of that, I don't think any architectural decision is needed for this change.
I'll link a ticket.

Thanks, everyone for the review!
@arewm based on your feedback, the following topics should be revisited (I prefer in another PR):

Setting up observability stack
Preview mode when deploying the dev env
Sandbox operator
SPI
Running the E2E against a development environment
Add a contributing doc

/test appstudio-e2e-tests

@Michkov @gorkem can you please merge this PR?

rebased


killing bound wisp with commands breaks wisp binding

quilt
hexal 0.16
after killing a bound wisp with /kill bind wisp and familiar's reflection stop working
binding issue log.txt

Fixed for the next release.


performance issues with attrFunction/attrFunctionNS in attr.js

I came across this while profiling one of my apps:

It seems that the function at issue here:
function attrFunction(name, value) {
  return function() {
    var v = value.apply(this, arguments);
    if (v == null) this.removeAttribute(name);
    else this.setAttribute(name, v);
  };
}

and its sibling, attrFunctionNS, are written in such a manner that the optimized code gets discarded by the v8 compiler and it falls back to the unoptimized code instead.  The details can be found here:
https://github.com/GoogleChrome/devtools-docs/issues/53
listed as item 4 in the section What is a deopt?
Looking at the implementation of the function, it seems that it specifically is fouling the compiler as described in this comment in the thread:
https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358
and the fix would seem to be to modify the function as follows:
function attrFunction(name, value) {
  return function() {
    var args = new Array(arguments.length);
    for (var i = 0, l = arguments.length; i < l; i++) {
      args[i] = arguments[i];
    }
    var v = value.apply(this, args);
    if (v == null) this.removeAttribute(name);
    else this.setAttribute(name, v);
  };
}

Quick follow up: I performed this modification locally in my project and it does seem to resolve the issue. Chrome/v8 no longer deoptimizes the function.

Additionally, this issue is not limited to just this function. Many similarly written functions exist all through d3-selection. It would appear that there is an opportunity to improve performance across a significant cross-section of d3-selection without a lot of effort.

Ugh.
According to https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51945071 and https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#what-is-safe-arguments-usage, “STRICTLY fn.apply(y, arguments) is ok”. Is there something else going on here?

Also, 0.97ms self time still isn’t a significant amount of time (though I’m not sure how long you were profiling for), so it might not be worth fixing even if there is a deopt warning.

@mbostock I will provide most specific details on the overall impact of the change in my application. In the meanwhile, take a look at the difference between the timings before and after in above screenshots. They illustrate the difference (0.97ms/3.53ms -> 0.58ms/1.15ms) for **a single invocation **. One invocation out of 10s of 1000s that occured within the profiling session. This shakes out to an improvement of a couple of percentage points overall and appears to be significant in my application.
I recognize that not all applications might see this sort of improvement. My app happens to benefit from it greatly becuase I am constantly updating a number of graphs that are updated live and continuously from data streaming from multiple RESTful data sources simultaneously and it is meant to run continuously for an extended period of time. If you just draw a few hundred data points as a one-time operation, this is likely an optimization that you can live without.
I will provide you with a detailed breakdown of the impact later tonight.

If you can share numbers on aggregate performance rather than a single invocation that would be more helpful in evaluating the impact of this change. Thank you!

Closing to inactivity.


Reduced frequency of notify calls in expand/collpase methods

Resolves #72.
Replaced RecyclerView#notifyItemInserted() calls with RecyclerView#notifyItemRangeInserted() calls to the number of notify calls from number_of_children to 1.
Also reduces the number of notify calls made when calling ExpandableRecyclerAdapter#expandAllParents() and ExpandableRecyclerAdapter#collapseAllParents() from (number_of_parents * number_of_children) to number_of_parents.

Wrong target branch.


 The code under older versions can not work at all under the new versions and you never know which version you should use. The defintions of  functions in different versions changes greatly and you never know which function is really what you need. When you want to run a new code, you have to try all the versions to make it work if you don't know its original tf version. Or you must change the code to statisfy the demand of the old versions.
Anybody has the same problem? I think it's one of the most important reasons why more and more people are turning to pytorch.

Thank you for your feedback for tensor-flow version compatibility. TF is a growing community and efforts are being made to address this issue. If you have a specific concern w.r.t. t a certain problem, please don't forget to put the code snippets with the version issues for other to look at it.
TF accepts constructive criticism.

@yang-yk,
Thank you for reporting the issue.
In order to expedite the trouble-shooting process, please provide a code snippets along with versions you are facing the issue. Thanks!

@yang-yk,
Thank you for reporting the issue.
In order to expedite the trouble-shooting process, please provide a code snippets along with versions you are facing the issue. Thanks!

Thanks for your reply and sorry for my rudeness. It’s about the tf estimator using multi-gpus. When I try to use the mirroredstrategy as what the official code teaches, there are always errors. Although I have tried tf version from 1.4 to 1.15, I still can't make it work. The errors are always different under different versions. I am so tired to solve the problem becasue it has taken me all day.  And I have experienced the version problems many  times. Once I was a supporter of tensorflow, but now I start try to use pytorch.  As mentioned above, the tf versions are too confusing. Learning the new version tf costs too much, and the previous codes also need to be corrected.  In most cases, when you just get used to the current tf, the completely different tf is released. And it is not compatible with the previous version. Having said so much, I just hope that tf will not be abandoned by researchers in the future.

@yang-yk the issue tracker is for feature requests or bug reports. Your complaint is not constructive in form or content.
TensorFlow conforms to semver for backwards compatibility. If we violated our promises, that would be a bug we can fix.

So disappointed! Both the framework and the reply.


Placing algorithm is poor

Currently, the placing algorithm tried to match with the first word, and then the second, etc. this leads to a bunch of words placed on the first word, with little to no other overlaps. Some alternatives would be trying in reverse order, or in random order. These would likely result in lower success rates but higher quality puzzles.

Running 50,000 times has resulted in better puzzles, but they're still not perfect. Generally about 14 overlaps for 10 words.


Single state machine

Added a baseclass representing a simple machine with no state structure. The user just has to override a ProcessEvent method to process each incoming event. The idea is to make it easy to code simple machines.
@pdeligia @TedHartMS What do you guys think?
Akash

Very nice and minimal, and makes a good introductory example of event processing. Should the bug-finding versions of SharedObjects use this?


Manually adding signature back for records to aid decompilers and javadoc gen

This does seem to replace the signature for classes beside class_6561 (somehow cannot find it in intermediary jar on my side). On a side note, due to a cfr bug, this signature won't show up in the decompiled code yet.
@modmuss50 Is this approach feasible? I want to have this fixed so we can reliably get type parameters for javadocs (and probably mods, too!)

It seems like something we could do with in loom as well, I havent looked into the problem area much but if this is the solution, id make this a json and include it in the extras folder in the mapping jar (see unpick) would then allow loom to use it.
Having said that users of the mojang mappings shouldnt miss out on this so something else might be needed.

Done. Now they are exported to extras/record_signatures.json in intermediary names.

A long time ago it was discussed for a Tiny V2.1 format which would support adding annotations (such as @OverrideOnly) and generics/signatures (originally for older versions which lack generics at all) to the code as a way of allowing changes such as this. Never happened of course but it's an option

A long time ago it was discussed for a Tiny V2.1 format which would support adding annotations (such as @OverrideOnly) and generics/signatures (originally for older versions which lack generics at all) to the code as a way of allowing changes such as this. Never happened of course but it's an option

If you have the link to the spec, I guess I can try implement it in yarn, though the main purpose of this is to get javadoc working for yarn again

For now I would skip adding it to the extras as it’s not a major deal to add it later once the loom side is done (not working for other mappings is an issue as well).
This seems a reasonable quick fix while something more final is done.

A long time ago it was discussed for a Tiny V2.1 format which would support adding annotations (such as @OverrideOnly) and generics/signatures (originally for older versions which lack generics at all) to the code as a way of allowing changes such as this. Never happened of course but it's an option

If you have the link to the spec, I guess I can try implement it in yarn, though the main purpose of this is to get javadoc working for yarn again

There was never anything concrete decided on to get to making a spec. Annotations I don't think went beyond talking about it (although a is the obvious key letter), for generics there was a pair of options:
c	MyClass
	f	myField
		g	java/util/List
			g	java/util/List
				g	[I

or
c	MyClass
	f	myField
		s	Ljava/util/List<Ljava/util/List<[I>;>;

Depending on whether it was better to just write the whole signature or make something a little more immediately understandable (at the expensive of building it into a signature to apply of course)

Hmm, I don't see significant harm in shipping this json. We can leave it for loom to use and remove it at any time.


Element with "position: absolute" is removed from container after calling mCustomScrollbar()

Hello !
I have something like this:

During the call to "$('#container').mCustomScrollbar();" the #handle element is removed.
When the position attribute is 'fixed', the #handle element is not removed.
I looked briefly in your code but could not fix it, so I had to add the element afterwards.
Thanks !

Still here - just not visible, just had $('#handle').prependTo('#container') after mCustomScrollbar() initialization.

Is it visible if you change its top position to a positive value (e.g. top: 1em)?
It might get hidden simply because custom scrollbar's content wrapper (.mCSB_container) overflow is hidden. You could change it to overflow: visible if this is the case.


Additional support for MFF

On behalf of Brain Electrophysiology Laboratory, we would like to add support for all different flavors of MFF. The mne.io.egi module can be used to read in raw MFF files, but we would like to be able to read MFF segmented files (analogous to Epochs class) and MFF averaged files (analogous to Evoked class). We would also like to be able to convert BaseRaw, Epochs, or Evoked objects to continuous, segmented, and averaged MFF files respectively and write these as output files. Finally, we would like to be able to read and store a wider range of event track information from MFF files. MFF event track XML files contain several attributes for each event, such as label, duration, and response, that are not currently captured when reading in raw MFF files.
In order to address these requests, we propose using mffpy, a Python MFF reader/writer created by BEL for handling MFF inputs and outputs. This Python package is capable of reading and writing each of the different flavors of MFF as well as parsing individual XML files within an MFF directory. Our general proposal would be to make mffpy a dependency of MNE and then restructure the mne.io.egi module to read in MFF files with mffpy and then convert them to the appropriate object (Raw, Epochs, or Evoked). We also want to add a module that takes Raw, Epochs, and Evoked objects and converts them to an mffpy Writer object so that they can be output as MFF files. As far as event tracks, we are able to fully parse event track XML files with mffpy. We may need to create a new type of MFF events class to store this information, as it appears that event info is currently stored in a simple array with relative start time and event type.
We have developers at BEL that would be happy to implement these features. We are also happy to answer any questions about mffpy and how it could increase the functionality of MNE.

@jusjusjus

We may need to create a new type of MFF events class to store this information, as it appears that event info is currently stored in a simple array with relative start time and event type.

Have you looked at the MNE-Python Annotations class? https://mne.tools/dev/auto_tutorials/raw/plot_30_annotate_raw.html

no objection on my side is we match the same performance for reading files
and we support the preload option.
maybe start with evoked and epochs as there is not code for this at the
moment

We may need to create a new type of MFF events class to store this information, as it appears that event info is currently stored in a simple array with relative start time and event type.

Have you looked at the MNE-Python Annotations class? https://mne.tools/dev/auto_tutorials/raw/plot_30_annotate_raw.html

I actually hadn't looked at the Annotations class until now. It looks a little more descriptive than what we get from the mne.find_events function. It seems like it would be easy enough to parse an event track XMLs with mffpy and then convert them to an Annotations object. How feasible would it be to add additional attributes to the Annotations class for other aspects of MFF events, such as sourceDevice, response time, trial #, etc.? Could we maybe make a subclass of the Annotations class specifically for RawEGI objects?

no objection on my side is we match the same performance for reading files and we support the preload option. maybe start with evoked and epochs as there is not code for this at the moment
…

Good idea to pilot on the Epochs and Evoked since that will be new code.

How feasible would it be to add additional attributes to the Annotations class for other aspects of MFF events, such as sourceDevice, response time, trial #, etc.? Could we maybe make a subclass of the Annotations class specifically for RawEGI objects?

That is certainly possible in principle...  can you say a bit more about what kind of metadata is stored in MFF events?  Is it the same for continuous, epoched, and averaged data? The Epochs.metadata property is also worth considering here (it's a restricted version of a pandas.DataFrame) though it's not currently implemented for Raw or Evoked objects... here's a primer on Epochs metadata

That is certainly possible in principle... can you say a bit more about what kind of metadata is stored in MFF events? Is it the same for continuous, epoched, and averaged data? The Epochs.metadata property is also worth considering here (it's a restricted version of a pandas.DataFrame) though it's not currently implemented for Raw or Evoked objects... here's a primer on Epochs metadata

Below is an example of a single event from an event track XML. This is a good example of an event generated by a stimulus presentation device at recording. I think the beginTime, duration, code, label, description, and sourceDevice are common to all MFF events and then the number of keys can vary.
There are event tracks in continuous, epoched, and averaged MFF files, although I am not sure how events are preserved in averaged files, as the time scale is not preserved.
The Epochs.metadata looks pretty versatile. Seems like it could be adapted to store event info for a Raw object.
<event>
    <beginTime>2003-04-17T13:35:33.162000-08:00</beginTime>
    <duration>1000</duration>
    TRSP

    <description></description>
    <sourceDevice>Experimental Control Interface</sourceDevice>
    <keys>
        <key>
            <keyCode>cel#</keyCode>
            <data dataType="short">4</data>
        </key>
        <key>
            <keyCode>obs#</keyCode>
            <data dataType="short">1</data>
        </key>
        <key>
            <keyCode>rsp#</keyCode>
            <data dataType="short">4</data>
        </key>
        <key>
            <keyCode>eval</keyCode>
            <data dataType="short">1</data>
        </key>
        <key>
            <keyCode>rtim</keyCode>
            <data dataType="short">645</data>
        </key>
        <key>
            <keyCode>trl#</keyCode>
            <data dataType="short">1</data>
        </key>
        <key>
            <keyCode>Task</keyCode>
            <data dataType="string">trait</data>
        </key>
        <key>
            <keyCode>Cont</keyCode>
            <data dataType="string">lively</data>
        </key>
        <key>
            <keyCode>Valn</keyCode>
            <data dataType="string">Good</data>
        </key>
    </keys>
</event>

as Annotations and events are not as versatile as MFF format I would
suggest to add a function to read the
event file and eventually get metadata as output. If you can accept to
attach Annotations taking
the 3 columns, onset, duration and description then it's ok to attach it to
Raw. So you come up with
a description with / separators to make keys in event_id down the line so
that you can index
your epochs as explained in :
https://mne.tools/dev/auto_tutorials/epochs/plot_10_epochs_overview.html#subselecting-epochs

So @agramfort suggests 2 possibilities:

convert Event Track XML into an Annotations object, where the description field of each annotation is a somewhat unwieldy string where all metadata fields are concatenated, separated by / characters.  This has the advantage that /-separated strings are already parsed by downstream epoch-related code, so when the annotations are converted to an events array and corresponding event_id dict used in epoching, it will be straightforward to sub-select resulting epochs based on metadata fields.

convert Event Track XML into a pandas DataFrame, and accept that it will be a separate object from the Raw data object. If this approach is taken, there should probably at least be a function to create MNE-Python-style Annotations and/or an events array from that DataFrame.  I'm assuming one row per event, with the columns being the union of all keys present in the file, with some suitable NA value (np.nan, empty string, etc) wherever a key is not defined for the event in that row?

Personally I am open to a third option which is attaching a dataframe-like metadata object to Raw, similar to Epochs.metadata.  But then how to make it useful...  a lot of what makes epochs metadata useful is that there is exactly one metadata row per epoch, but the hypothetical Raw.metadata would be one row per event.  I think there is considerable work necessary to figure out the API and supported use case(s) here.

Converting the event track XML to a DataFrame seems like the most attractive option as far as easy access to all the event attributes. However, we do want to be able to create Epochs objects based on the events and certain subsets of events. I think ideally, the events used to create Epochs would then become the contents of Epochs.metadata as a description of each epoch.
What if we store the events in a DataFrame separate from the Raw file and then add functionality to the Epochs class to be able to create epochs around events from a DataFrame?
I think it will be easiest to first focus on implementing reading of segmented and averaged MFFs with mffpy to see how well this works. From there we can look at reading of continuous MFF files and decide how we want to handle events.

Converting the event track XML to a DataFrame seems like the most attractive option as far as easy access to all the event attributes.

Agreed.

However, we do want to be able to create Epochs objects based on the events and certain subsets of events. I think ideally, the events used to create Epochs would then become the contents of Epochs.metadata as a description of each epoch.

That is indeed an elegant-sounding approach.

What if we store the events in a DataFrame separate from the Raw file and then add functionality to the Epochs class to be able to create epochs around events from a DataFrame?

hmm...  perhaps an API like Epochs.from_dataframe(raw, dataframe, ...)?  I think this would be cleaner than trying to make the existing Epochs constructor flexible enough to take in either a DataFrame or an events array + event_id dict.  You'll probably end up with (private?) helper functions similar to the ones I mentioned above (functions to create an events array and event_id dict from the MFF-derived dataframe). But we should hear input from others before proceeding down that line of approach.

I think it will be easiest to first focus on implementing reading of segmented and averaged MFFs with mffpy to see how well this works. From there we can look at reading of continuous MFF files and decide how we want to handle events.

Sounds good.

one idea is to have a function events_from_frame or events_from_dataframe
that converts the dataframe to events/event_id like we have for
annotations. So we keep one way to build epochs.

hmm... perhaps an API like Epochs.from_dataframe(raw, dataframe, ...)? I think this would be cleaner than trying to make the existing Epochs constructor flexible enough to take in either a DataFrame or an events array + event_id dict. You'll probably end up with (private?) helper functions similar to the ones I mentioned above (functions to create an events array and event_id dict from the MFF-derived dataframe). But we should hear input from others before proceeding down that line of approach.

I like this idea from a usability standpoint. This way someone processing an MFF could keep their events in the DataFrame format throughout the workflow.

one idea is to have a function events_from_frame or events_from_dataframe that converts the dataframe to events/event_id like we have for annotations. So we keep one way to build epochs.

This was my earlier suggestion @agramfort, but it would not allow the (really nice) feature of the events dataframe automatically being used to populate the Epochs.metadata.  However, as I implied above, the events_from_dataframe function will probably need to get written under the hood anyway to make Epochs.from_dataframe() work, so it's actually a nice sequential approach to implement events_from_dataframe() first, and then add on Epochs.from_dataframe() as a wrapper of the main constructor in a subsequent step.
But before all that, it sounds like the first steps are to simply read the already-epoched and already-averaged data formats, and come back to the event parsing later.

But before all that, it sounds like the first steps are to simply read the
already-epoched and already-averaged data formats, and come back to the
event parsing later.

+1

@drammock @agramfort would it be wise to wait for some of the other MNE maintainers to get on board before beginning work on the reading of epoched and averaged MFFs? Or do you guys think there will be enough support from the others to merge something like this?

I have not seen the diff nor CIs green so I cannot promise anything. But if
we want mne support
for such files I don't see any other way.

I see no reason not to start work on the Epoched/Averaged reader.  We seem to mostly agree on the big picture, and it's easier to hammer out the little details once there's an open PR that we can look at.

Sounds good. I will start coordinating with my team on this.

I would suggest to start with making a PR to add only read_evokeds_mff, with a dependency (just in that function) on mffpy. It will force us to sort out the mffpy optional depedency, work out general contribution stuff, etc. The API there seems straightforward. After that PR is merged we can work out how to deal with epochs/metadata and whether or not we want to kill our custom MFF raw reading code in favor of mffpy.

I would suggest to start with making a PR to add only read_evokeds_mff, with a dependency (just in that function) on mffpy. It will force us to sort out the mffpy optional depedency, work out general contribution stuff, etc. The API there seems straightforward. After that PR is merged we can work out how to deal with epochs/metadata and whether or not we want to kill our custom MFF raw reading code in favor of mffpy.

Sounds like a good approach. Probably best not to bite off more than we can chew for the first PR.

I was trying to do coregistration with some (raw) MFF files and noticed some issues (below) and thinking about how best to address them. Is the plan still to eventually replace the current raw reader with mffpy? Is somebody already working on this?

Channel locations are added to channels but not added as digitizer points, which would be required for coregistration
Fiducials are not added at all

@christianbrodbeck, great point.  How can we evaluate if mffpy supported your use case?    @ephathaway

If nobody else is working on it already I could start translating the raw reader to use mffpy?

If nobody else is working on it already I could start translating the raw reader to use mffpy?

Sure, would be good!
But actually I think the issue you're encountering with info['dig'] not being populated is actually separable -- when we add the EEG electrode locations in info['chs'][ii]['loc'] we should also add it to dig. So I think there should be two PRs: the first to add dig information and test that it's there and reasonable, then a second separate one to use mffpy. It will require some effort that will end up being discarded (to get the EEG + maybe fids in our native code) but hopefully this is actually a small effort. And it gives us time to move to mffpy, and do so with more complete (dig) tests.
@christianbrodbeck let me know which of the two PRs you're interested in working on. If it's just the mffpy bit, I can add the native-reader bits + tests first.

They're potentially more interrelated in that the fiducials are currently never read (as far as I could tell), and I suspect implementing that would be more straight forward with mffpy than with the current approach. This is why I would have suggested translating to mffpy first. But I might be wrong.

@christianbrodbeck I am not exactly sure what these digitizer points and fiducials are, but I suspect this info is contained in the coordinates.xml in an .mff file. mffpy has a class to parse these.

Thanks @ephathaway , I saw this in coordinates.xml, do you know whether we can rely on the identifier entries corresponding to nasion/LPA/RPA?
            <sensor>
                <name>Nasion</name>
                <number>258</number>
                <type>2</type>
                <x>0.000</x>
                <y>10.564</y>
                <z>-2.051</z>
                <identifier>2002</identifier>
            </sensor>
            <sensor>
                <name>Left periauricular point</name>
                <number>259</number>
                <type>2</type>
                <x>-8.592</x>
                <y>0.498</y>
                <z>-4.128</z>
                <identifier>2011</identifier>
            </sensor>
            <sensor>
                <name>Right periauricular point</name>
                <number>260</number>
                <type>2</type>
                <x>8.592</x>
                <y>0.498</y>
                <z>-4.128</z>
                <identifier>2010</identifier>
            </sensor>

do you know whether we can rely on the identifier entries corresponding to nasion/LPA/RPA?

I'm not sure. I believe the coordinates.xml file is determined by the recording device. So any number os MFFs recorded with a "HydroCel GSN 256 1.0" will have identical coordinates.xml files.

test_egi.mff in the MNE testing dataset has different net and also has the same identifiers, so maybe we can assume they're the same?
            <sensor>
                <name>Nasion</name>
                <number>130</number>
                <type>2</type>
                <x>0.000</x>
                <y>10.356</y>
                <z>-2.694</z>
                <identifier>2002</identifier>
            </sensor>
            <sensor>
                <name>Left periauricular point</name>
                <number>131</number>
                <type>2</type>
                <x>-6.712</x>
                <y>0.046</y>
                <z>-3.712</z>
                <identifier>2011</identifier>
            </sensor>
            <sensor>
                <name>Right periauricular point</name>
                <number>132</number>
                <type>2</type>
                <x>6.712</x>
                <y>0.046</y>
                <z>-3.712</z>
                <identifier>2010</identifier>
            </sensor>

so maybe we can assume they're the same?

@christianbrodbeck you can view all of the possible coordinates.xml files here. It looks like the identifier fields for all of these match except for the Geodesic Sensor Net 64 2.0.xml coordinates file. This does seem odd that it would only be different for this one recording device type, especially given that there are other 64-channel devices.
            <sensor>
                <name>VREF</name>
                <number>65</number>
                <type>1</type>
                <x>0.000</x>
                <y>0.000</y>
                <z>8.943</z>
                <identifier>1001</identifier>
            </sensor>
            <sensor>
                <name>Nasion</name>
                <number>66</number>
                <type>2</type>
                <x>0.000</x>
                <y>10.385</y>
                <z>-1.815</z>
                <identifier>2002</identifier>
            </sensor>
            <sensor>
                <name>Left periauricular point</name>
                <number>67</number>
                <type>2</type>
                <x>-7.004</x>
                <y>0.368</y>
                <z>-3.694</z>
                <identifier>2011</identifier>
            </sensor>
            <sensor>
                <name>Right periauricular point</name>
                <number>68</number>
                <type>2</type>
                <x>7.004</x>
                <y>0.368</y>
                <z>-3.694</z>
                <identifier>1001</identifier>
            </sensor>

@larsoner mind taking a look at https://github.com/mne-tools/mne-testing-data/pull/87? I'll need this to properly test the export function.

https://github.com/mne-tools/mne-testing-data/releases/tag/0.120

https://github.com/mne-tools/mne-testing-data/releases/tag/0.120

Great! Thanks


Registered settings do not activate when selected

The active class is applied when the request.path begins with the MenuItem.url.
The MenuItem.url for a setting is {app_label}/{model_name}/
The request.path for a setting is {pk}/{app_label}/{model_name}/
The fix is to move pk to the end of the url like this {app_label}/{model_name}/{pk}
I have a PR for this.

Fixed in #2308


Local development pipeline

opam-repo-ci currently has a development pipeline (service/local.ml) that is nominally local, but in fact requires:

A GitHub repository along with GitHub authentication
Access to a cluster to run jobs

This PR fixes problem (1) by accessing a local Git repository through its file path, and problem (2) by using Docker to run jobs locally. This is a significant step towards supporting integration testing of the pipeline.
Various quality-of-life changes are also made to the original pipeline, for example to share code between the two. The cluster_build cache was originally a Current_cache.Generic, but as the value in the key-value pair was empty it can simply be specialised to a Current_cache.Make, which better represents its purpose (as far as I understand).
Depends on PR https://github.com/ocurrent/opam-repo-ci/pull/257.

@mtelvers I ran into the same issue with the main pipeline, I believe it's something to do with a complete cold-start (you can test this by deleting the var directory and retrying). I found that force-closing the service and restarting it while keeping the newly created var directory made it work.
As the issue already existed for me on the master branch I believe it's unrelated to this PR. Would you be able to test it? It would be useful to know if these same symptoms occur for you too. If so, I can open an issue.

I deleted var and ran it again.  I could perform the analysis step, but after that, opam-repo-ci-local took a long time to respond.  Next, dot started but the browser timed out before it finished.  I killed the process and opened opam-repo-ci-local again with the same outcome.  The browser disconnects before the graph is produced. Using top, I could see opam-repo-ci-local was using ~17GB of RAM before spawning dot.
The console shows hundreds of lines like this:
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,SZXX.4.0.0,lower-bounds -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,SZXX.4.0.0 -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,SZXX.3.0.1,tests -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,SZXX.3.0.1,lower-bounds -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,SZXX.3.0.1 -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,GT.0.5.2,tests -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,GT.0.5.2,lower-bounds -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,GT.0.5.2 -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,DkSDKFFIOCaml_StdExport-linux_x86_<IP_ADDRESS>~1,lower-bounds -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,DkSDKFFIOCaml_StdExport-linux_x86_<IP_ADDRESS>~1 -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,DkSDKFFIOCaml_Std.1.0.0~1,tests -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,DkSDKFFIOCaml_Std.1.0.0~1,lower-bounds -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 compilers,4.02,DkSDKFFIOCaml_Std.1.0.0~1 -> -
2024-01-17 15:08.35 opam_repo_ci.index [INFO] Index.record local/local 9ed963 (lint) -> 2024-01-17/150609-opam-ci-lint-71805d

I'm not sure if this is related:
sqlite3 sqlite.db
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
sqlite> select COUNT(*) from ci_build_index;
380431

I've pulled opam-repository again just in case it was caused by my out of date local copy.

Here's my trivial diff on opam-repository
$ git diff HEAD~1
diff --git a/packages/conf-dpkg/conf-dpkg.1/opam b/packages/conf-dpkg/conf-dpkg.1/opam
index 01a0344c59..1b5aba1c1b 100644
--- a/packages/conf-dpkg/conf-dpkg.1/opam
+++ b/packages/conf-dpkg/conf-dpkg.1/opam
@@ -7,7 +7,6 @@ license: "GPL-2.0-only"
 build: ["dpkg" "--version"]
 depexts: [
   # Assumed to be there by default on debian/ubuntu based systems
-  ["dpkg"] {os-distribution = "fedora"}
   ["epel-release" "dpkg"] {os-distribution = "centos"}
   ["dpkg"] {os-distribution = "rhel"}
   ["dpkg"] {os-family = "suse" | os-family = "opensuse"}

Reverse dependency checking for the local pipeline is not implemented in this PR as it is large enough. This will be done later.


url, hashcode in scripts/download_data.py

Hi, I found an error when running scripts/download_data.py.
Since the benchmark version was updated from v3 to v5,
the url and the hashcode are changed, but the code has not changed.
So, I change the latest urls and hashcodes in both Lean version 3 and 4.
After making the changes, I run scripts/download_data.py and there are no errors.
Please check them!
Thanks! :)

looks good to me. thanks


Address test warnings regarding deprecated behavior

With all the changes in dataio lately we are emitting a lot of warnings (~450) when running tests due to deprecated behavior. We should silence the warnings by modifying our tests to follow latest standards, or catch the warnings with pytest.warns

Another option is to use mark tests that we expect to emit warnings, but do not want them displayed, with filter warnings fixture


[CRUD VIEW] Dashboard / Chart list page send too many requests

When I open dashboard or chart list page with ENABLE_REACT_CRUD_VIEWS flag:
Actual results

it sends 25 api calls to backend. If i have 50 items per page, then it will send 50 api calls.
each api call is to check if dashboard/chart is favorite

Expected results
Can this favorite information get loaded with other bootstrap data?
We should keep this api in this page, so that user can fav/unfav dashboard without open it. But sending a call for each of item, this design is not optimized.
Environment
latest master
Checklist
Make sure these boxes are checked before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
Add any other context about the problem here.

Thanks for letting us know @graceguo-supercat - we'll take a look at this.

Looks like the favorite/star (?)

Yup.


Consider updating to game version v2020.10.22s

Hi everyone,
first I wanted to say thanks for this amazing software!
I'm using the currently latest version 2.4.1 and I just tried to install the latest beta version v2020.10.22s of the game.
It can't capture the game state correctly. I don't know if they will release this new version as it is right now, just consider you might need to update the memory addresses you read.

https://github.com/denverquane/amonguscapture/issues/55


Remove backend concept of position & add join date field

Removes position attr
Sorts accounts just on the created_at timestamp
removes old promotion / demotion methods
removes old waiting list staff methods

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


[Docs]: feature/docs? - Best practice for Reports

Documentation type
How-to guides
Description
This may also be a few features requests for the SDK. I've seen a number of questions hit Slack about the type of requests that need to go request a Report from an API.
Here's an implementation I did.
https://github.com/AutoIDM/tap-indeed/blob/main/tap_indeedsponsoredjobs/streams.py#L61-L213
Most generic things from this is probably _sdc_line_number encourage keeping the line number from the dataset in the data.
The EmployerStatsReport class is pretty hacky as it overrides a bunch of methods to prevent some of the standard Stream functionalities in order to use other standard RestStream functionalities

@visch in this case a report is a CSV?

@visch in this case a report is a CSV?

Yes where you're calling endpoints to request report csvs. It seems like a semi-common pattern with a number of folks asking about it. Maybe not necessarily the CSV portion but I'm not sure.

Still relevant


Cp cmd

nerdctl cp design https://github.com/containerd/nerdctl/issues/212
PS:  only running container is support for the moment. I will implement not running container in other PR.

@AkihiroSuda  @ktock  would you plz review this PR.
I have some troubles to pass test TestCopyToContainer :
test target: "nerdctl"
=== RUN   TestCopyToContainer
    cp_test.go:42: copying /tmp/nerdctl-cp-test749964100/workFile from host to nerdctl-testcopytocontainer:/tmp
    cp_test.go:46: assertion failed: 0 (int) != 1 (res.ExitCode int): cat: can't open '/tmp/workFile': No such file or directory
        time="2022-01-16T12:59:46Z" level=fatal msg="exec failed with exit code 1"

--- FAIL: TestCopyToContainer (4.15s)

but thus works in my local environnement

error obtaining VCS status: exec: "git": executable file not found in %PATH%

Needs rebase to pass CI

error obtaining VCS status: exec: "git": executable file not found in %PATH%

Needs rebase to pass CI

@AkihiroSuda fixed

--- FAIL: TestCopyToContainer (24.51s)
=== RUN   TestCopyFromContainer
    cp_test.go:64: copying /etc/os-release from nerdctl-testcopyfromcontainer to C:\Windows\system32\config\systemprofile\AppData\Local\Temp\nerdctl-cp-test4134092264\os-release in the host
    cp_test.go:69: assertion failed: error is not nil: open C:\Windows\system32\config\systemprofile\AppData\Local\Temp\nerdctl-cp-test4134092264\os-release: The system cannot find the file specified.
--- FAIL: TestCopyFromContainer (1.56s)

https://cirrus-ci.com/task/6431751521173504?logs=build#L352
(You can just disable cp for Windows)

cc @AkihiroSuda

Docker:
$ docker run -d --name foo alpine sleep infinity
$ docker cp .bashrc foo:/foo
$ docker exec foo ls -l /foo
-rw-r--r--    1 1001     1001          4209 Feb  6 08:49 /foo

This PR:
$ nerdctl run -d --name foo alpine sleep infinity
$ nerdctl cp .bashrc foo:/foo
FATA[0000] /foo should exists
$ nerdctl cp .bashrc foo:/
$ nerdctl exec foo ls -l /.bashrc
-rw-r--r--    1 root     root          4209 Apr 18 08:24 /.bashrc

nerdctl cp .bashrc foo:/foo didn't work.
nerdctl cp .bashrc foo:/ worked but the permission doesn't match Docker.

Carry PR:

https://github.com/containerd/nerdctl/pull/995


Allow setting the outputPath in the config

I just did this visually, didn't test it. It allows a user to configure the path to output the spec file to

@robbiet480 Thanks for the PR. It's still quite a ways off from being ready for everyday sails use. I made it for work and we have some specific outputs that are hard coded as well. I'll go through this when I get a chance probably in a week or two and see about getting it merged in.
Most of the functionality is there but it's not documented yet. The default rest routes work out of the box. Controller actions work as well but take a specifically formatted property on the controller. I can give you an example if you need it.
Manual routes and shortcut routes don't work at all right now though.
Hope you found it useful
Joshwa

@jfugett Maybe not as far away from usable as you might think, I got up and running within 5 minutes of finding it from Google. Just had to patch the output path (because the default Sails asset directory is assets, not public), setup my config/swagger.js with some settings and I was off to the races.
Right now i'm really just doing CRUD with only 1 controller action, so i'm not hurting yet, but it would be great to see an example.
Thanks!

Here you go
'use strict';

let controller = {
  testRun: function testRun(req, res) {
    res.ok({gotHere: true});
  }
};

controller._swagger = {
  testRun: {
    methods: ['get'],
    responses: {
      default: {
        description: 'testRun',
        schema: {
          type: 'object',
          properties: {
            status: {
              type: 'string',
              default: '200'
            },
            error: {
              type: 'string',
              default: ''
            },
            data: {
              $ref: '#/definitions/tests'
            }
          }
        }
      }
    }
  }
};

module.exports = controller;


[WIP] Scroll with mouse wheel

Fixes #14

[x] scrolling with onWheel event

I don't like the frame rate of updates caused by setState. Maybe we shall try request animation frame loop to draw and update canvas instead of using setState and redrawing on componentDidUpdate phase

[x] draw scrollbars
[ ] drag scrollbars

I don't have a mouse and can not test how it works

Omg, just tried it on my macbook pro touchpad and it is super smooth and a really nice UX for infinite canvas growth! Great job!

@vjeux, @giovannigiordano  can I make dragging the scrollbars in another PR?

Yeah, that's a good plan


DRAFT: Every user bound to cf_user role in the root ns

Is there a related GitHub Issue?
#721
What is this change about?
When roles are created (rolebindings are created), users get an additional cf_user rolebinding
Does this PR introduce a breaking change?
No.
Acceptance Steps
Run all tests as normal.
Tag your pair, your PM, and/or team
@clintyoshimura @tcdowney @gcapizzi

@gcapizzi I'm curious about a scenario where we are creating a ServiceAccount role. We implemented this for the case where an SA would also need the cf_user role binding, but are unsure whether this is proper.

@Birdrock yes, I think this behaviour should be in place for service accounts as well.


Can't find velocity in window and window.jQuery when using optimizer of RequireJS

I use the following library by RequireJS. The Fragment of require config file:
...
paths: {
    'velocity': 'bower_components/velocity/velocity',
    'velocity.ui': 'bower_components/velocity/velocity.ui',
    'ngVelocity': 'bower_components/angular-velocity/angular-velocity'
}
...
shim: {
    'velocity': {
      deps: ['jQuery']
    },
    'velocity.ui': {
      deps: ['velocity']
    },
    'ngVelocity': {
      deps: ['velocity', 'velocity.ui', 'angular', 'ngAnimate']
    }
...

And I got the following error in browser when I used the r.js optimize the javascript files:
Uncaught Velocity and Velocity UI Pack plugin required, please include the relevant JS files. Get Velocity with: bower install velocity

Could you tell me how to use angular-velocity with RequireJS? Thank you :D

Hi!
I don't have any experience with using RequireJS, but let's have a go!
Could you replace the angular-velocity.js contents with this gist and let me know if it resolves the issue? If so, I'll look at tidying it up and releasing an update.
Thanks!

Thanks for your reply !
I'm not sure the problem be caused by me or caused by the angular-velocity.js,  I try to fixed it before, but no progress. However, I will try to fixed it next, and tell you at here if I have any problem. Maybe it just because of I use the error way for RequireJS. :D

Hi friend, I solve the problem just now. As I said, the problem be caused by me.
My configuration file is correct for RequireJS, but I use the r.js to compress code then I get the problem. In the docs of r.js, I found the configuration of shim has a option 'wrapShim', and the problem has been fixed when I set the wrapShim as true. The configuration file just like this:
requirejs.config({
  ...
  paths:{
    ...
  },
  shim: {
    ...
  },
  wrapShim: true
});

@PeachScript Ah right, cool! Glad you got it sorted out, I might add a note to the readme about this.

Nice! Maybe you also should note the version of RequireJS, the r.js add the wrapShim option after version 2.1.11 of RequireJS.


Bump Dependencies #1671587416

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/1671587416

 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.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Changes are already included in the master.


[Forwardport] Node count not reflected on cluster list view , until refreshed.

Forwardport of rancher/rancher#23973

Available in latest2.

Tested with Rancher server rancher\rancher:master-head version abd6f58c6
Steps to reproduce the problem:
Create a DO cluster.
When user is brought back to the cluster list view , node count is 1 as expected.
Once the cluster gets to "Active" state , Global->Cluster-> shows that the cluster has "System" and "Default" project as expected.


[stable/postgresql] Cannot connect to postgresql

Is this a request for help?: Help / guidance request...
Is this a BUG REPORT or FEATURE REQUEST?: Possibly BUG
Version of Helm and Kubernetes:
Helm: v2.11.0
k8s: v1.12.2
Which chart:
stable/postgresql only using values.yaml with changes only related to username/password/database
What happened:
i provision a PV (NFS share mounted), the chart starts up and the pod starts as well, but I cannot connect to the database as the password that I set in the values.yaml file appears to be incorrect.
What you expected to happen:
Being able to log in to the database with my username and password as defined in the values.yaml file as per documentation.
How to reproduce it (as minimally and precisely as possible):
persistent volume file for creation:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0
spec:
capacity:
storage: 8Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-storage
mountOptions:
- hard
- nfsvers=4.1
nfs:
path: /k8s/postgresql
server: <IP_ADDRESS>
values.yaml:
image:
pullPolicy: IfNotPresent
postgresqlUsername: pgsql_admin
postgresqlPassword: pgsql_admin_pwd
postgresqlDatabase: postgres
persistence:
enabled: true
storageClass: nfs-storage
size: 8Gi
accessMode: ReadWriteOnce
Anything else we need to know:

I think i figured what the issue is:
The image does not accept "postgres" as name of the database while changing the name of the user as the database postgres is created automatically together with the superuser postgres.


fixes #30 : add coveralls for test coverage reporting

Think repo needs to be added on coveralls side / or i missed something.


Release angular_router v2 GA

It's more popular than angular_forms
It's core to our getting started docs - https://webdev.dartlang.org/angular/tutorial/toh-pt5#update-the-pubspec
It's certainly in better shape than angular_router v1.x

We talked offline and agreed (?) that nothing is blocking releasing v2 GA, but at the same time we realize it is very incomplete with many open issues that can't be easily addressed.


Add missing integration test for telemetry testing

Currently Diagnostic integration tests are skipped due to https://github.com/dotnet/razor/issues/8150
We'll want an integration test that validates the telemetry events we are interested are fired when expected.
/cc @ryzngard

Just my personal opinion, but tests for telemetry seem unnecessary to me, and I can't think how we would do them with our current testing tech without comprising the quality of the code.

I would say that integration tests specifically for telemetry are not needed, but adding telemetry checks to integration tests would be useful to validate we expect certain things to be fired


ci: simplify deploy and introduce nightly workflow

Description

The deployment process has become complex as our project has grown. We want to thoroughly test every possible scenario, but make it easier for outside contributors to get their code included without having to approve every PR. To fix this, we will simplify the deploy workflow and create a nightly workflow that runs extensive tests overnight, so we can test thoroughly without slowing down regular deployments.
References (if applicable)

https://github.com/0xPolygon/kurtosis-cdk/pull/143
https://github.com/0xPolygon/kurtosis-cdk/pull/147

Nightly workflow worked: https://github.com/0xPolygon/kurtosis-cdk/actions/runs/9841670666


Remove call to logging.basicConfig

This PR removes the line logging.basicConfig(level=os.environ.get("LOGLEVEL", "WARNING")), which sets the log level for all calling code. This line makes sense in an application context, but less so in a library, where many different logging configurations could be needed.
For example:
from pathlib import Path
from playsound3 import playsound

logger = logging.getLogger(__name__)

def play_bytes(filepath: Path) -> None:
    logger.info("Playing audio from %s", filepath)
    playsound(filepath)

In this example, we attempt to log the filepath to the audio file being played. However, on import playsound3 updates our logging config and only log levels warning and up are logged.
If in the file calling play_bytes we had run logging.basicConfig(level=logging.INFO, handlers=handlers, format=log_format) this basicConfig would have been overriden.

A temporary workaround for anyone else running into this
import logging
from contextlib import contextmanager
from typing import Iterator

logger = logging.getLogger(__name__)

@contextmanager
def maintain_logging_config() -> Iterator[None]:
    root_logger = logging.getLogger()
    config = {
        "level": root_logger.level,
        "handlers": root_logger.handlers.copy(),
        "formatters": {},
    }
    for handler in root_logger.handlers:
        if isinstance(handler, logging.StreamHandler):
            config["formatters"][handler] = handler.formatter

    yield

    root_logger = logging.getLogger()
    root_logger.setLevel(config["level"])
    root_logger.handlers.clear()
    for handler in config["handlers"]:
        root_logger.addHandler(handler)
        if handler in config["formatters"]:
            handler.setFormatter(config["formatters"][handler])

# with maintain_logging_config():
#     from playsound3 import playsound

Great, thanks for the contribution. It's unintended that playsound3 changed your logging configuration after importing.
Can you remove the now unnecessary os import:
./playsound3/playsound3.py:4:1: F401 'os' imported but unused
./playsound3/playsound3.py:236:5: F811 redefinition of unused 'os' from line 4
Error: Process completed with exit code 1.

You can remove either line 4 or line 236. I will merge the PR right after that.

Done! Thank you for this very functional fork 🙂

Thanks


Fix busctl choking on introspection XML FFY00/dbus-objects#20

As noted in FFY00/dbus-objects#20, feel free to reject this if you think it should be addressed in busctl or it's just not worth fixing.

Oops, messed up the PR -- let me get rid of the signal stuff...

Oops, messed up the PR -- let me get rid of the signal stuff...


series: save entry state before metainfo phase to avoid lazy lookups during backlog (timeframe)

Motivation for changes:
Old issue
Detailed changes:

Take an entry snapshot just before metainfo phase

Addressed issues:

Fixes #1000

Details
It's a hack, but the only reason lazy lookups are causing db locks is that some of the entries were generated after input phase or injected. Any regular entry will actually have a snapshot taken during input phase and not cause any issues, hence the changes in this PR.

Alternative patch that commits after adding all series to db:
Index: flexget/plugins/filter/series.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- flexget/plugins/filter/series.py	(revision 8ccd6739224faabb430482826f2dd5da488d9ba5)
+++ flexget/plugins/filter/series.py	(revision )
@@ -1732,6 +1732,7 @@
                     db_series.identified_by = auto_identified_by(db_series)
                     log.debug('identified_by set to `%s` based on series history', db_series.identified_by)

+                session.commit()
                 self.process_series(task, series_entries, series_config)

         log.debug('processing series took %s', time.clock() - start_time)

Since this is a bug that has existed for a long time, I'm merging this PR in the hopes that this + #2208 + #2211 will squash 99% of these DB lock issues.
For this particular issue (#1000), saving a snapshot of an entry should really not trigger any lazy evaluations. So if someone can come up with an idea to save these lazy fields in the db (jsonified) without performing the lookups and without losing the lookup functions, that'd be awesome.


[RFC] Implement Secret type

password: Annotated[str, Secret('vault path/key')]
password: Annotated[str, Secret('fs /etc/foo/secret/key')]
password: Annotated[str, Secret('fs /etc/foo/secret/key'), Immutable()]

NOTES:
https://github.com/dynaconf/dynaconf/discussions/608#discussioncomment-8860090

In our project we use Dynaconf as a "secrets store" of sorts. The behavior we want is "if the setting being accessed is a secret, fetch it somewhere and return it. Subsequent fetches should be free (i.e., cached)". The use case we were trying to cover is having a simplified interface for using secrets in our project where the user doesn't have to concern itself with knowing where each secret is stored and how to retrieve it, while they could also declare it almost anywhere that Dynaconf knows how to load.
To solve this, we did this:

Set the settings that are secrets to a special string like __<location>_secret:NAME:VERSION (imagine <location> being gcp for GCP secret manager, or aws for its secret manager, or bw for Bitwarden's). I think this Secret type could help with this.
Monkey-patch underlying container classes just before instantiating Dynaconf like this:# Monkey patch Dynaconf's container classes to include our custom post-processing.
dynaconf.utils.boxing.DynaBox.__getattr__ = _maybe_return_from_gcp_and_update(
    dynaconf.utils.boxing.DynaBox.__getattr__
)
dynaconf.utils.boxing.DynaBox.__getitem__ = _maybe_return_from_gcp_and_update(
    dynaconf.utils.boxing.DynaBox.__getitem__
)
dynaconf.vendor.box.box_list.BoxList.__getitem__ = _maybe_return_from_gcp_and_update(
    dynaconf.vendor.box.box_list.BoxList.__getitem__
)
dynaconf.utils.boxing.DynaBox.get = _maybe_return_from_gcp_and_update(
    dynaconf.utils.boxing.DynaBox.get
)

wheredef _maybe_return_from_gcp_and_update(getter: Callable) -> Callable:
    # This is intended as a decorator of `Dynabox` and `BoxList`, so the first arg must be `self`.
    @wraps(getter)
    def check_and_replace(self, item, *args, **kwargs):
        current_value = getter(self, item, *args, **kwargs)
        if isinstance(current_value, str) and value.startswith("__gcp_secret:"):
            _, name, version = current_value.split(":")
            new_value = _get_secret_from_gcp(name, version)
            self[item] = new_value
            return new_value
        return current_value
    return check_and_replace

but could also fetch from any place depending on value.

As you can see, this is quite terrible as it needs monkeypatching internal functions, but it works.
It'd be awesome if Dynaconf had post-processing functions that were called when a setting was accessed. This would help with Secrets as the post-processor could easily fetch the value from somewhere else based on some attributes of the Secret instance.
I also think this would help Dynaconf be more flexible while delegating the implementation of these specific fetchers to the user, instead of maintaining them in this repo (though some implementations could be provided for popular cloud secrets managers, which would introduce complicated extras for the Dynaconf package :S).
This could be applied to normal settings as well (getting them from a DB or whatever).
Maybe this can already be done but, way back when we implemented it, we didn't find a better way :S.

Hi @sebastian-correa there is an undocumented feature added on 3.2.2 that covers your case,
I just added docs and one example on https://github.com/dynaconf/dynaconf/pull/1160
The feature works, however for 4.0.0 and typed.Dynaconf I want to keep it working but with better usability based on the Secret() type.

Interesting! I'll have a look once we get around to upgrading our version.
As an aside, we've been using Dynaconf a lot and I'd like to contribute to the codebase in some more meaningful way than just suggesting an if clause or changing the docs :). Do you think I could help write some of the less vital features of v4? It'd be fine if you're not interested or think it'd introduce too much overhead, but I just want to extend some help to the team that develops a project we heavily rely on.

@sebastian-correa you are very welcome to contribute,
Right now it is only me and @pedro-psb and we are meeting every 15 days to review issues and discuss the future, if you have the availablity you are welcome to join the meeting.
I can add you to the team on github so you can contribute also on PR reviews. (that will be very helpful if you can)
And regarding contribution to codebase, also very welcome, feel free to pick any issue you feel comfortable to work on, can be anything from list of issues
Our plan is to have 3.3.0 out soon (maybe in 2 weeks) with most of the bug fixes we can, the backlog for 3.3.0 is https://github.com/dynaconf/dynaconf/issues?q=is%3Aissue+is%3Aopen+label%3Abug
After 3.3.0 then we will focus on non-breaking typed_dynaconf issues, and then the breaking changes will come last.

Sounds good! I'll try to organize myself a bit this weekend so I can make some personal time within the week to work on stuff. Thanks you!


Warning:` ListView is deprecated and will be removed in a future release

Current Behavior
Displays a warning about ListView
Warning:` ListView is deprecated and will be removed in a future release. See https://fb.me/nolistview for more information

- node_modules/expo/build/environment/muteWarnings.fx.js:27:24 in error
- node_modules/raven-js/src/console.js:35:36 in <unknown>
- node_modules/react-native/node_modules/fbjs/lib/warning.js:30:18 in printWarning
- node_modules/react-native/node_modules/fbjs/lib/warning.js:51:23 in <unknown>
- node_modules/react-native/Libraries/Utilities/warnOnce.js:29:10 in warnOnce
- node_modules/react-native/Libraries/react-native/react-native-implementation.js:70:6 in ListView
- node_modules/react-native-masonry/components/Masonry.js:63:16 in Masonry

Possible Solution
See https://fb.me/nolistview for more information
Context (Environment)
expo sdk33 rn 0.59.8, react 16.8.3

This is not a warning it is an error so remove it as soon as possible.

+1

+1. still not working

npm install deprecated-react-native-listview;
import ListView from 'deprecated-react-native-listview';

This is my temporary solution

Following @jzyds solution, I used patch-package to modify react-native-masonry in node_modules. Tested seems OK so far.
In your project folder:
yarn add deprecated-react-native-listview
yarn add --dev patch-package postinstall-postinstall

Add patch-package to your package.json postinstall script:
"scripts": {
   "postinstall": "patch-package"
 }

Edit /node_modules/react-native-masonry/components/Masonry.js.
Remove ListView from 'react-native', replace with one from deprecated-react-native-listview:
-import { View, ListView, Image, Text, Dimensions } from 'react-native';
+import { View, Image, Text, Dimensions } from 'react-native';
+import ListView from 'deprecated-react-native-listview';

Save your modification as patch:
yarn patch-package react-native-masonry

Verify your modification applied:
yarn install --check-files

yarn should restore react-native-masonry, and after that patch-package will kick in, applying your modification.
Done.

hey, I have the same problem!

Following @jzyds solution, I used patch-package to modify react-native-masonry in node_modules. Tested seems OK so far.
In your project folder:
yarn add deprecated-react-native-listview
yarn add --dev patch-package postinstall-postinstall

Add patch-package to your package.json postinstall script:
"scripts": {
   "postinstall": "patch-package"
 }

Edit /node_modules/react-native-masonry/components/Masonry.js.
Remove ListView from 'react-native', replace with one from deprecated-react-native-listview:
-import { View, ListView, Image, Text, Dimensions } from 'react-native';
+import { View, Image, Text, Dimensions } from 'react-native';
+import ListView from 'deprecated-react-native-listview';

Save your modification as patch:
yarn patch-package react-native-masonry

Verify your modification applied:
yarn install --check-files

yarn should restore react-native-masonry, and after that patch-package will kick in, applying your modification.
Done.

Hey This solution works for the first time i use it them i have this error/Warning

Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
in Masonry (at App.js:89)
in RCTView (at View.js:34)
in View (at App.js:60)
in App (at renderApplication.js:45)
in RCTView (at View.js:34)
in View (at AppContainer.js:106)
in RCTView (at View.js:34)
in View (at AppContainer.js:132)
in AppContainer (at renderApplication.js:39)

Following @jzyds solution, I used patch-package to modify react-native-masonry in node_modules. Tested seems OK so far.
In your project folder:
yarn add deprecated-react-native-listview
yarn add --dev patch-package postinstall-postinstall

Add patch-package to your package.json postinstall script:
"scripts": {
   "postinstall": "patch-package"
 }

Edit /node_modules/react-native-masonry/components/Masonry.js.
Remove ListView from 'react-native', replace with one from deprecated-react-native-listview:
-import { View, ListView, Image, Text, Dimensions } from 'react-native';
+import { View, Image, Text, Dimensions } from 'react-native';
+import ListView from 'deprecated-react-native-listview';

Save your modification as patch:
yarn patch-package react-native-masonry

Verify your modification applied:
yarn install --check-files

yarn should restore react-native-masonry, and after that patch-package will kick in, applying your modification.
Done.

Hey This solution works for the first time i use it them i have this error/Warning

Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
in Masonry (at App.js:89)
in RCTView (at View.js:34)
in View (at App.js:60)
in App (at renderApplication.js:45)
in RCTView (at View.js:34)
in View (at AppContainer.js:106)
in RCTView (at View.js:34)
in View (at AppContainer.js:132)
in AppContainer (at renderApplication.js:39)


P2P sharding network(s)

Have the ability of building and sending collations across those networks.
https://github.com/libp2p/specs
https://github.com/libp2p/rust-libp2p (this is a WIP), but devp2p is not maintained and is poorly documented, so it's still our best option.

Or have one network...
https://ethresear.ch/t/torus-shaped-sharding-network/1720/6

Questions:

What libp2p protocol categories/roles and associated properties, security models, and respective network size are we using on each layer of our stack, and what are scenarios where multiple protocols would run simultaneously?
References:

https://github.com/libp2p/specs/blob/master/2-state-of-the-art.md#22-categorizing-the-network-stack-protocols-by-solutions
https://github.com/libp2p/specs/blob/master/9-references.md

What collection of transport protocols will we be running libp2p protocol over?
Reference: https://github.com/libp2p/specs/blob/master/3-requirements.md#31-transport-agnostic

i) What port(s) will we use on the libp2p network layer to perform operations for each of the transport protocols that we’ll be using?
ii) What is an example scenario where we’ll be protocol multiplexing multiple transport protocols (i.e. UTP, UDT, WebSockets, SCTP, WebRTC, TCP Remy) through a single port?
iii) What is an example scenarios where we'll be multiplexing reliable stream(s) or unreliable datagram(s) in a connection from an IPFS node to other node(s) on the a transport protocol in the network layer of the communication model?
iv) What protocol(s) would we be mounting on top of libp2p with the connection?
v) What type of connection would we be using?
vi) What platforms and network setups will we need to libp2p to support?
vii) How will we build a multiaddr-based network package module like go-multiaddr-net in Rust, for IPFS to delegate the transport dialing to, and for scoping the implementation of other transport protocols.
viii) What portable format encodings do we need to use for protocol messages (i.e. protobuf)?
ix) What are scenarios when we will use multistream, multistream-select, and Stream Multiplexing? What default multiplexor will we use with Stream Multiplexing (i.e. HTTP/2, SPDY, QUIC, or SSH)?
x) How will we use Multicodecs for each IPFS Protocol that we use?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#32-multi-multiplexing
https://github.com/libp2p/specs/blob/master/7-properties.md#72-ports---constrained-entrypoints
https://github.com/libp2p/specs/blob/master/7-properties.md#73-transport-protocols
https://github.com/libp2p/specs/blob/master/7-properties.md#755-portable-encodings
https://github.com/libp2p/specs/blob/master/7-properties.md#751-protocol-multiplexing
https://github.com/libp2p/specs/blob/master/7-properties.md#757-protocol-multicodecs

i) How do we need to encrypt communications on libp2p for security in our implementation? Under what scenarios would users not need to operate with encrypted communications?
ii) Is libp2p's application of cyphers with only a minimal portion of the whole TLS standard used sufficient for our implementation?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#33-encryption
https://github.com/libp2p/specs/blob/master/7-properties.md#756-secure-communications

i) How will users running a node behind a NAT traverse it in order to establish connections to peers in our implementation of libp2p's IPFS?
ii) Will we use libp2p's ICE-like protocol for full NAT traversal or will we use a different NAT traversal library instead of libnice, such as libwebrtc or natty?
iii) How will we check if our implementation of NAT traversal is interoperable?
iv) How will we implement optional fallback to connection relaying communication as a transport that may be turned off by users to ensure a full connectivity graph?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#34-nat-traversal
https://github.com/libp2p/specs/blob/master/3-requirements.md#35-relay

What network topologies will we be using for our system's routing mechanisms, peer discovery, and message propagation?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#36-enable-several-network-topologies
https://github.com/libp2p/specs/blob/master/6-interfaces.md#6-interfaces

i) What information will records (IPFS Linked Data) in our network store for discoverability?
ii) How will we use libp2p to locate resources in the network and side channels?
Reference: https://github.com/libp2p/specs/blob/master/3-requirements.md#37-resource-discovery

i) What libp2p messaging protocols will we let users use after they open a new stream and register a stream handler and why?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#37-resource-discovery
https://github.com/libp2p/specs/blob/master/7-properties.md#71-communication-model---streams

How will we adopt naming conventions in our implementation of the network?

References:

https://github.com/libp2p/specs/blob/master/3-requirements.md#39-naming
https://github.com/libp2p/specs/blob/master/4-architecture.md#46-naming

What is a scenario where different libp2p subsystem interfaces (i.e. Peer Routing, Swarm, Distributed Record Store, and Discovery) would use each other in our system implementation?
Reference: https://github.com/libp2p/specs/blob/master/4-architecture.md#4-architecture

What Peer Routing subsystem mechanism will we implement and why?
Reference: https://github.com/libp2p/specs/blob/master/4-architecture.md#41-peer-routing

What are different Swarm scenarios that we need to handle (where we are using a stream)?
Reference: https://github.com/libp2p/specs/blob/master/4-architecture.md#42-swarm

What Distributed Record Store system will we use and why?
Reference: https://github.com/libp2p/specs/blob/master/4-architecture.md#43-distributed-record-store

i) What Discovery Protocols will we use and for what scenarios?
ii) Will our Discovery Protocol need encrypted discovery beacons (i.e. mDNS)?
iii) Would we use a Bootstrap-List Discovery Protocol and make it use configurable?
Reference: https://github.com/libp2p/specs/blob/master/4-architecture.md#44-discovery

Which of the libp2p modules (transports) listed at the following reference link will we be using with the Rust implementation of libp2p https://github.com/diasdavid/rust-libp2p?

References:

https://github.com/libp2p/specs/blob/master/8-implementations.md#8-implementations
https://github.com/libp2p/specs/blob/master/6-interfaces.md#61-libp2p

How will we use the Swarm Dialer?

Reference: https://github.com/libp2p/specs/blob/master/8-implementations.md#811-swarm-dialer

I don't think we'll use Swarm as data will be stored on the blockchain, but it could also be done with Swarm as a complementary storage service.

i) How will users running a node behind a NAT traverse it in order to establish connections to peers in our implementation of libp2p's IPFS?

For discovery mDNS-discovery looks like a low priority since it's designed for LANs. random-walk seems like it may be a good candidate. Due to the partial trust with bootstrap list, that is another low priority / enhancement alternative.
For relay when it is not feasible to reach a peer through a NAT, https://github.com/libp2p/specs/tree/master/relay would be useful, however rust-libp2p is unfortunately not listed as an implementor of it.

https://github.com/libp2p/rust-libp2p/issues/187

https://github.com/libp2p/go-floodsub/issues/77
https://ethresear.ch/t/topology-on-libp2p-libp2p-design/2028/3?u=jamesray1

rustlib-p2p has implemented relay-0.1.0: https://github.com/libp2p/rust-libp2p/tree/master/relay.

I'm think of implementing gossipsub since it may be preferable to floodsub (still investigating).

https://github.com/Drops-of-Diamond/diamond_drops/issues/94

"Exploring Ethereum on libp2p" https://github.com/libp2p/libp2p/issues/33#issuecomment-390508321

I just want to clarify that we don't need to design a libp2p implementation from scratch, a lot of work has already been done with [rust-libp2p]. I've created a wiki page with your questions here, and will try to answer them in due course.

I've answered about half of the questions, might come back to them some time later after writing gossipsub and looking at other priorities.

@jamesray1 hey, I'll be joining the meetings in Berlin later this week for the libp2p team and starting to prep for it -- is the current state of the questions in the comment above or on the wiki page you mentioned?

@lgierth hi, it's on the wiki page. I haven't bothered to answer all of them yet as I was tending to repeat myself by referring back to rust-libp2p, which Luke didn't seem to be aware of.
Right now I'm reading through tokio (a Rust crate for async networking), and before that was reading up on libp2p, rust-libp2p, Go, gossipsub, etc.


Extend ReactivateUserModal to automatically send password reset email on user reactivation

Background
Frontend work needed to complete #5722
Action requested

Refactor the ReactivateUserModal and associated parent components to accept the created reset / resend password email
Follow the three  button design from other modals (example below

Update and add the needed tests

Acceptance Criteria

ReactivateUserModal has a reactivate and resend password email button

Additional context

Will need to go in after #6083 so the mutation to consume exists
Some initial implementation done during the spike available here

Further exploration mapping Okta states to our UI

Pending on our end == provision in Okta

Pending === Okta PROVISIONED is when somewhen is moved from deactivated —> activated or when newly added

Password reset === Okta RECOVERY. Our UI doesn’t do anything with this state currently but might be helpful for this to surface on password reset since the backend does send it back to us.
Password reset expires in 1 hour (which is correct in the Okta in the email.) However the confirmation modal says users have 24 hours, which is incorrect and should be fixed


Tetris!

Added Tetris!
It's pretty advanced, since it dynamically generates sprites and the map so pieces are different sizes and so using each one as a sprite would mess up collisions and being able to put multiple in the same general area. It also has music :)

Great work adapting this! It seems to run great, sounds and looks good. You're right it's a bit more advanced but the code is also written nice and simply. Good work! You already earned your Sprig so I won't send the link again but it's a welcome addition to the gallery.
Which classic will you do next?


Additional charge for payment methods

Please describe the feature you would like to see implemented.
Hello,
I would like to have introduced the function of markup on payment types. In Germany it is common to pass on the "cash on delivery" costs to the customer. And to list these extra as charges of the payment method

Ben

Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know.
Thank you again for your valuable feedback.


Content with multiple arrays updates incorrectly

I would like to have a content type with multiple arrays but it seem that it does not update properly.  I made a content type with this command:
gen c listtest name:string list1:"[]string" list2:"[]string"
Then built and ran and in the web editor added two entries to each list.  Upon saving, some of the entries in the first list changed to entries from the other list.  I am also unable to remove list entries: upon hitting save, removed entries reappear.  This was done with no changes to the listtest.go file.

This is related to #59 - unfortunately I haven't had time to dig in and fix. I believe it is a JavaScript bug though, from within the editor package. The Go code for the RepeatController has some JavaScript that re-names the name attributes of each repeated input.
If you get a chance to look into this, please let me know and feel free to ask any questions you have about the code. I'm on the road today and away through this weekend so I may be a bit slow to respond.

@Paulsulli92 there is an active contribution pending that fixes this issue. Give me a day or so and I'll ping you when its ready.

This should be good to go now -- if you find any more issues with it please let me know!


Issue with nesting and sortable

You cannot have nested lists of sortables.  To fix this add a stop progagation to
items.on('dragstart.h5s', function (e) {
e.stopPropagation(); <<---- add this line
var dt = e.originalEvent.dataTransfer;
dt.effectAllowed = 'move';
dt.setData('text', '');

+1

fixing nested list bug #68


add README section on configuring Prometheus to query multiple iDRACs

It wasn't obvious to me how to get Prometheus to query a whole list of iDRACs.  This uses the trick shown in https://prometheus.io/docs/guides/multi-target-exporter/
to achieve that.
I would also love to add some documentation on how to show in Grafana the idrac_sel_entry lines, but I couldn't figure it out!

Hi @dstndstn
Thanks for the addition, I will merge it now :) Regarding Grafana you need to show it as a table. I tried making an example (might have a few labels specific to my setup). Below is the JSON output for the panel, hopefully that can be useful for you.
You probably want to remove the hostname label in the query and you need to set the correct data source.
{
  "type": "table",
  "title": "System Event Log",
  "gridPos": {
    "x": 5,
    "y": 0,
    "w": 15,
    "h": 15
  },
  "id": 2,
  "targets": [
    {
      "expr": "sort_desc(idrac_sel_entry{hostname=\"nodeaa-10\"}*1000)",
      "legendFormat": "",
      "interval": "",
      "refId": "A",
      "instant": true,
      "format": "table"
    }
  ],
  "options": {
    "showHeader": true,
    "sortBy": []
  },
  "datasource": "Infrastructure",
  "fieldConfig": {
    "defaults": {
      "custom": {
        "align": null,
        "filterable": false
      },
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "value": null,
            "color": "green"
          },
          {
            "value": 80,
            "color": "red"
          }
        ]
      },
      "mappings": []
    },
    "overrides": [
      {
        "matcher": {
          "id": "byName",
          "options": "Value"
        },
        "properties": [
          {
            "id": "unit",
            "value": "dateTimeAsIso"
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "severity"
        },
        "properties": [
          {
            "id": "custom.width",
            "value": 129
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "component"
        },
        "properties": [
          {
            "id": "custom.width",
            "value": 273
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "message"
        },
        "properties": [
          {
            "id": "custom.width",
            "value": 915
          }
        ]
      }
    ]
  },
  "pluginVersion": "7.2.0",
  "timeFrom": null,
  "timeShift": null,
  "transformations": [
    {
      "id": "organize",
      "options": {
        "excludeByName": {
          "__name__": true,
          "Time": true,
          "id": true,
          "instance": true,
          "job": true,
          "hostname": true
        },
        "indexByName": {
          "Time": 0,
          "__name__": 1,
          "hostname": 2,
          "id": 3,
          "instance": 4,
          "job": 5,
          "severity": 6,
          "component": 7,
          "message": 8,
          "Value": 9
        },
        "renameByName": {}
      }
    }
  ]
}

Thanks for the tip (and this module -- it's great!)!  It looks like your example panel here fetches the logs for a single node -- do you know of a way to, say, get the most recent log message for each node?  I know this is a generic Prometheus query question, and I'm very new at that (and finding it very unintuitive!), so don't feel obliged to answer.

Say that you want the Top 5 most recent entries for each host, you could do something like this (Prometheus query):
topk(5, idrac_sel_entry) by (hostname)

Here hostname is a unique label for each iDRAC instance. This is a label I have in my setup, you can use something else, such as instance.
The other option is to define a variable in your Grafana dashboard that selects a host to show the entries for, like it's done in the node_exporter dashboard, if you are familiar with that.

Thank you so much for taking the time to answer!
The other thing I was missing was, in the Grafana panel settings, under the Prometheus query, you have to set "Format" to "Table" (not "Time series"), otherwise it only shows the timestamps.
Again, many thanks!

You're welcome :) Happy to help!

And here's the result!  (You can see that our data center is a bit on the hot side...)