Blocked UI when using large playlists

Issue
We are experiencing UI lags when using big playlists containing podcast urls. Specifically, we are using a MediaController where we  usesetMediaItems to pass around 600 MediaItems. The Items are presented in a RecyclerView where users can select the desired item. After selecting an item by click, we call MediaController#seekToDefaultPosition. This call clearly freezes the UI and also makes everything unresponsive for a few milliseconds. We have not checked if the problems also occurs with big playlists of local audio files.
Reproduce
We successfully reproduced the issue in your session demo project by slightly modifying the following line
https://github.com/androidx/media/blob/72a4fb082d9e68ecd7db3ff87b19f4232a5991d2/demos/session/src/main/java/androidx/media3/demo/session/PlayableFolderActivity.kt#L161
with
subItemMediaList.addAll(List(500) { children.get(0) })

As you can imagine, this code change only provokes a large playlist.
First select any audio file in the album, artist or genre folder. For example: Artist Folder -> The Kyoto Connection -> click on Intro - The Way ..
You should see the UI lag when you try to scroll in the list immediately after clicking an item in the bottom list view in the PlayerActivity.
We also found out that switching between two MediaItems which have been played before does not produces any lags. So maybe the UI issues are related to ongoing network calls.
For us, the UI lags are visible on the following phones, however, the bug is "better" visible on the Samsung S9:

Samsung S9 (Android 11)
OnePlus 6 (Android 11)

media3 Version: 1.0.0-alpha03
Please let us know if you have any further questions or if there is anything we can do to support you in finding the cause.
Thanks for building media3!
Julian

Maybe related to https://github.com/androidx/media/issues/57

Thanks for reporting!
As you discovered this is a known issue. The time isn't spend with networking I think but with bundling/unbundling the MediaItems when they are sent over the binder to the service and then back to the activity.
As a first step I'd recommend to only send MediaItems that contain the mediaId only from the activity. The service can then load the data for the whole Mediaitem and set it to the player.  Please note that we just introduced an API change that makes it possible to load the data for all the media items asynchronously before setting the playlist and preparing the player. I recommend to wait until we released the 1.0.0-beta001 that will be released within the next two weeks.
I think you will run into similar problems with 1.0.0-beta01 though. So if you want to work around the blocked UI you need, as of now, probably to add the media items in batches - like 50 at a time, wait for the onTimelineChange() event and then add the next 50 media items.
We will try to improve this at some point and we acknowledge that this is slow currently when adding 100+ items.
I wonder, as a last thing, if this is a regression and how the performance for these operations was with androix.media (MediaControllerCompat). Did this work smoothly with 600 items in the legacy MediaSessionCompat world?

Thanks for the reply and the implementation tipps to work around the performance problem @marcbaechinger!
We are planning to implement the workaround, however, I am not exactly sure if I understand correctly how to implement it. Let's say we have 500 playlist items. The user clicks on the first item in the recycler view and then scrolls all to the bottom of the list to plays the last playlist item. Do we have to add the 9 batches (450 items) after the onTimelineChange() was called from the first already playing item? If so, would this fix the performance problem because the lag always happens when changing playlist items and at this point we would also have all 500 items in the playlist.
Thanks for your time and also thanks for the information about the first beta release, really looking forward to it.
PS: As far as I can tell, the legacy implementation works super smooth with the same big playlist we are currently having "trouble" with.

Yeah, you are right. I played around with such use cases some more yesterday and can confirm your findings.
My comment above was more about the addition of 500 media items to the playlist at once. But I see and agree to your point that this happens not only when adding items but also when selecting another current media item. This triggers sending over a new PlayerInfo object from the service to the activity that includes the timeline with 500 items. So my advice from above is not helpful for that case and it seems it also happens when just sending the PlayerInfo from the service to the controller after selecting a new current item.
On a Pixel 6 I can see the lagging UI in some cases, but in some cases it is very smooth also. I see that the phone unbundles PlayerInfo object with 500 items in around 60 ms. This is IMO not enough to cause the lagging UI that I'm seeing that lasts for probably 2 seconds until it gets smooth again. For the case of the demo app some improvements in the UI may help a bit.
So, probably my comment above was a bit a shot from the hip. Sorry for that. I'm currently profiling this a bit to see where the time is actually spent. Will comment here once I found something useful.
(thanks for the confirming it is smooth with the legacy implementation)

No worries and thanks for your support! I will also let you know if we find out anything more.

This problem does exist, it's been bothering me for two days, I set 1500 mediaItems, when I seekToPreviousItem, the androidx.media3.session.MediaSessionImpl.dispatchOnPlayerInfoChanged() was called a dozen times, The more time-consuming over 400ms, and the less is tens of milliseconds, block UI about 2-3s，always.

Hi All,
We have reduced the time required to bundle and unbundle MediaItems, which has reduced the latency to perform actions on large playlists.
These updates have already been published to the main branch and will be included in the release branch during our upcoming release cycle. Please let us know if you continue to experience significant UI latency when using large playlists.

@rohitjoins,
Hi, Rohit. I confirm that the issue is still present in the stable version.

@MaximillianLeonov Could you provide further details regarding your situation that would assist us in replicating the problem on our end? For instance, could you inform us about the number of items present in the playlist initially and the delay you're encountering while attempting to play or scroll through the playlist?

@rohitjoins,
You can find the repository for reproducing the issue here.
I encountered this problem with 500-1000 songs. Although the issue is less noticeable in this repository with only 500-1000 songs, so I set 10,000 songs to make the problem more clearly visible.
Reproduction video

@rohitjoins,
Regarding the devices I experienced lag on, they are the Samsung Galaxy A23 and Xiaomi Redmi Note 8.
In addition, I have noticed that the UI freezes specifically when the mediaController.prepare() command is executed. If I remove this line of code, the UI no longer freezes, but the media does not start playing (intended behavior).

Since I was rewriting a large portion of my old media playing app to reduce laggy UI and ANR's, I have not been too thrilled to discover that Media3 introduces some new problems when using large playlists.
I'm wondering if there was a way for the library to detect if the MediaController(s) is in-process and avoid the binder calls if that is the case? That would completely eliminate the lag I believe. Something like how there was a LocalBroadcastManager to prevent the same kind of thing with BroadcastReceivers back in the day.

@svenoaks Local binder calls should not be a bottleneck at all because they automatically avoid the inter-process communication protocol (=what I think you mean by binder calls) and instead call the receiving method directly. That is, the data being sent is not going through any process or threading jumps and doesn't need to be marshalled and unmarshalled to/from a shared memory space (see first bullet point in this guide: https://developer.android.com/guide/components/aidl)

@tonihei Thanks for the clarification. Since I'm using SimpleBasePlayer, would calling the constructor with something other than Looper.getMainLooper() effectively solve this for me by moving the bundling / unbundling off the main thread?

@rohitjoins probably knows this a bit better, but if my understanding is correct, the blocking happens on the reading side (=the MediaController) while it's waiting for all the data to be transferred. So I think using a different thread for your player on the MediaSession process won't help?

@marcbaechinger @rohitjoins @tonihei
Hi!
I hope this gets your attention.
Context:
I have been working on rewriting https://github.com/SimpleMobileTools/Simple-Music-Player to media3 to take advantage of the features of media3 and delegate some of the responsibilities to the library instead of doing everything ourselves. The app initially used android MediaPlayer in a background service and intents for all UI<->Service communication.
Original MediaPlayer performance:
I did some tests using 10000 items and putting aside the time it takes to initially prepare the data and player (usually 0-10 seconds), the player itself was superfast. No UI lags (obviously because all potentially time-consuming operations were done on a background thread), No delays, nada.
Media3 performance:
It works smoothly up to a certain number of media items but after that, media3 is just unusable. I'm facing significant UI lags, ANRs, and unacceptable delays in player responsiveness. I'm already using ExoPlayer.setLooper() and MediaController.setLooper() to avoid overloading the main thread.
Initially, I thought this issue was an edge case, and not many people have that many media items but looking at the reports from Google Play and on GitHub, the number of users with large playlists turned out to be common enough to warrant a proper solution.

As a first step I'd recommend to only send MediaItems that contain the mediaId only from the activity. The service can then load the data for the whole Mediaitem and set it to the player.

@marcbaechinger this really helped reduce UI lags, however, I'm still getting ANRs with large playlists (only when the media controller is involved). I do not know how things work internally but why can't we move this media controller work to a background thread? The existing MediaController.setLooper() does not seem to help offload this work to the background.

To clarify our optimisations, we have reduced the time it takes to bundle and unbundle playlists, ensuring that the user interface (UI) remains responsive during common use cases, typically a few hundred to thousand items.
However, if you continue to increase the playlist size to 100,000 items, it can still cause the UI to freeze.

This bundling/unbundling process is still slow and it blocks the main thread enough to cause a crash or ANR. Doing this on the main thread is a bad idea/design.

However, when the playlist size was increased to 10,000 items, substantial UI lags were encountered

@rohitjoins even after applying the @marcbaechinger's media ID hack (let's call it), the player is slow enough to not be usable and this has nothing to do with overloaded main thread. How to reproduce:

Prepare the player with ~10,000 media items on any device with reasonable specs.
Start playing.
Hit next/previous a couple of times (doesn't matter if you do it through player notification, player UI or using android auto)
Wait.

It takes like 30-60 seconds before the player resumes playing again. The observed delay is directly proportional to the number of media items. There's a significant delay even with 5000 media items. I believe this is the same issue as https://github.com/androidx/media/issues/592#issuecomment-1688376202 and https://github.com/androidx/media/issues/402
I tried playing around with the DefaultLoadControl parameters thinking unnecessary buffering is the issue but I did not see any improvements.
To summarise:

Please make MediaController do all blocking operations on a background thread (because the current behavior leads to inevitable crashes and ANRs on many devices and the media ID hack is not enough to fix it)
Is there any way to customize ExoPlayer so it doesn't do whatever unnecessary things it's doing that's causing this delay during the next/previous/play/pause commands? If ExoPlayer was not intended to be used with a large number of media items, can we please get an alternative Player implementation that is simpler and designed or at least optimized for audio playback?

thanks!

@tonihei thanks for the much-needed clarifications!
Blocked UI when using large playlists (pretty much resolved)

Highlighted efficient app setup pattern for large playlists (step (b)), in particular optimizing the calls by only setting mediaId values and avoiding calls by suggesting to incrementally send updates instead of all at once. (see https://github.com/androidx/media/issues/592)

Only setting the mediaId definitely helped reduce UI lag significantly, before this the app was almost unusable with a large number of items. I should mention that once the media items are set and the player is prepared/playing, I'm still getting some slowness on the UI side (not to mention ANRs) but I'm not yet sure about the exact cause (no issues if the media items aren't set).
I did some tests with ~10000 items and after calling MediaController.setMediaItems(), most of the time MediaSession's onSetMediaItems() is called within 5-20 seconds (guess it's acceptable(?) for such playlists).
Could you please provide some guidance on how to send incremental updates using a media controller?
A simple mediaItems.chunked(500).forEach { controller.addMediaItems(it) } doesn't seem to work for me. Are we supposed to set up a Player.Listener (on the controller side) and send each chunk only after  onTimelineChanged() is called?
I'm curious, does sending incremental updates help ExoPlayer prepare faster too or is it just for fast MediaController=>MediaSession communication?
Unresponsive/slow player

Hit next/previous a couple of times (doesn't matter if you do it through player notification, player UI or using android auto)... It >>takes like 30-60 seconds before the player resumes playing again.

This sounds strange, but may be related to a huge backlog of work generated by these actions. We'll have a look at this case to >see if there is something else going on.

The delay is likely not ExoPlayer related, but in the session/controller communication as said above. We'll check your reproduction steps though, just in case there is some additional problem here.

When this happens MediaSession => MediaController updates are delayed as well. The Player.Listener callbacks on the MediaSession side are also delayed so it's probably caused by the player taking too long to prepare with large playlists. I hope this will be fixed by the planned improvements.
Not sure if it's relevant but I was looking at the memory profiler to reduce memory usage and I noticed that when I do next or previous multiple times, the memory usage spikes up and even leads to an OOM if I keep doing it:

My current workaround is to throttle the seekToNext()/seekToPrevious() calls in a forwarding player but it doesn't work very reliably since the player is slow in general when the playlist is huge.
A "paging" Player wrapper (deserves to be highlighted)

"paging" Player wrapper implementation that let's you handle large playlists in the session and UI, but only sets a subset on the actual player. This helps with step (c) for all types of players (not just ExoPlayer).

That is a great idea. If implemented, I think it will solve most if not all of these problems (other optimizations are nice too).

OK, thanks for the help.
Just in case you guys need it, I'm attaching two large CPU traces (compressed) below to demonstrate the main thread getting blocked by the media controller's setMediaItems() for longer durations (leading to ANRs). Recorded when only mediaId is set on the media items but no incremental updates are done.
Since Github doesn't allow large files, here's a google drive link: https://drive.google.com/file/d/1XUdtA5usxPSkhW5HFZZQec-3L5zdvQMd/view?usp=sharing

I am commenting here because large playlists are still a major concern using 1.1.1 or 1.2.0-rc01. I have rolled out to 5% of my user base with no compensation (besides only setting the mediaId for MediaItems) for the fact that media3 library is still badly lagged with large playlists and have already received a few negative reviews mentioning it.
I can reproduce all of the things mentioned in this issue, probably the lagging prev/next buttons are the worst, as there can be a huge backlog of events that can take minutes to play out, but even some kind of debouncing of them would not fix all that lagging and blocking of the main thread with large playlists.
For now the only solution for me seems to be limit the size of the playing queue to 1000 items or so unless the user specifically adds more. I hope that that the "paging" player idea can be implemented quickly on the library side as this seems like the only real good solution.

I ending up implementing a solution where my SimpleBasePlayer implementation only ever sets a playlist size of up to 10 items, and my app handles most manipulation of the actual playlist internally, overrides like handleSetMediaItems are no-ops now. The only flaw I noticed with this setup in my case was a small flickering of the track title when the SimpleBasePlayer predicated state does not line up with the actual result state, a rare occurrence.
As mentioned in the previous edit, the real major lags with prev/next buttons was caused by app code. However, with the large playlists set on the player many mediaController events caused noticeable jank, even where the playlist did not change. With the limiting of the playlist that the player to 10, all the jank has been removed.

Thanks for sharing! The pending improvements I mentioned above should result in a similar behavior out of the box so that no special workaround is required on app side.


Add missing meta files

Overview
Some of the docfx files had meta files generated for them when opening in Unity.

I suppose Unity thinks they're part of the project as they're yaml files. Is there a way to add them to some sort of ignore list so Unity won't create those meta data files?

Is there a way to add them to some sort of ignore list so Unity won't create those meta data files?

Not that I'm aware of. We can stop them from being tracked by git, but I'm not sure we can stop them from being created.


Update auth, dynamodb, s3, sqs to 2.17.138

Updates

software.amazon.awssdk:auth
software.amazon.awssdk:dynamodb
software.amazon.awssdk:s3
software.amazon.awssdk:sqs

from 2.17.66 to 2.17.138.
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!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

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

Superseded by #844.


Error under debian 10/Buster (future stable)

Hello i tried to puppetize a buster/10 debian and i got this error.  This config work fir a debian 8 jessie or 9 stretch.
Thx !
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, 'versioncmp' parameter 'a' expects a String value, got Undef at /etc/puppetlabs/code/environments/production/modules/augeas/manifests/lens.pp:61:24 at /etc/puppetlabs/code/environments/production/modules/postfix/manifests/augeas.pp:13 on node v-templatetest.xxx.fr`

Here is my hiera config
postfix::satellite: true
postfix::myorigin: 'localdomain.local'
postfix::inet_interfaces: 'localhost'
postfix::inet_protocols: 'ipv4'
postfix::relayhost: 'smtp.xxx.fr'
postfix::root_mail_recipient<EMAIL_ADDRESS>

The error indicates that the $::augeasversion fact was not defined. This probably means Augeas is not properly installed on your system. Which version (and mostly packaging) of Puppet do you use?

new facter detect the augeas version from augparse cmd line (https://github.com/puppetlabs/facter/blob/master/lib/src/facts/resolvers/augeas_resolver.cc). you need install augeas-tools package

Thanks @Elbandi !


Any idea to make scroll more easier?

Hello! How can i make card scrolling more "easier"?

@adeldolgov Hello, I'm not quite clear about your question, could you describe it in detail?

@LittleMango try to fast scoll items, sometimes it will not scroll :(

@LittleMango oh sorry, that's my fault. I fixed it now, now everything works great. Thanks!


Add test for handleGetStatisticsFactory

Coverage increased (+3.7%) to 88.663% when pulling 26ce2cafbc05378dd09a9d1dda335728047aaa11 on testing into dcb8e900223165d45cd41f6ac1ee915c9bdf0b18 on dev.


Can you include requirements.txt ?

It's not working for me on the mac with python 2.7
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals
File "/Users/hpineda/Projects/python-console-snake/snake/__main__.py", line 26, in <module> run()
File "/Users/hpineda/Projects/python-console-snake/snake/__main__.py", line 21, in run gameloop.start()
File "snake/gameloop.py", line 45, in startinit()
File "snake/gameloop.py", line 64, in init graphics.drawGame()
File "snake/graphics.py", line 85, in drawGame drawTile(x, y, theme.get_tile('bg'), theme.get_color('bg'))
File "snake/graphics.py", line 16, in drawTile scre_curses.error: addstr() returned ERR

Mmmh that may be a window size  problem, could you try running it with maximised window and let me know if that's the problem?

Yeah, that was it! Thanks

Thanks - I need to fix that eventually


Error when attempting to backfill

Hi!
I keep receiving this error when attempting to run a backfill....
I attempt to run a command like: ./zenbot launch map --backfill
and receive: TypeError: Cannot read property 'indexOf' of undefined
Paste of full log attached:
http://pastebin.com/LjMFKaw0

Anyone?

I tried messing around with this today. I got a backfill to work by running a "full" instance, declaring which pair to use and everything. I just added the --backfill variable to the command in run.sh. Hopefully I'll be able to run some simulations once it gets done collecting the data.

And you are my savior.  @robsteady
Don't know why I didn't think to try that, but thank you so much for replying.
My backfill is running now (off run.sh)
Any idea how far back it will go, or does it just backfill until I say stop?

I believe I read somewhere that it will backfill 84 days. I'm going to let it go to at least 84 days and see if it keeps going or not. The only catch I was just thinking about with the last 84 days of history is that it will be next to impossible for it not to show a positive ROI. I'll probably have to go in to the fine details of whatever sim gets run and really look at the spread to see how well (or if) the current modified logic will work. Unless I find something blatantly screwed up (or I can't manage to make it work) I'll probably throw my sim results up for folks to look at.

Correction, it does hit a point where it gives a message of "backfill complete". I remember seeing it yesterday when I was playing around with an ETH/USD pair.

84 days of history will only show Positive if you're running with all the default logic.
I am attempting to tweak this to make many Same Day trades following the small little ups and downs that the value of BTC makes every day.
84 days should be fine enough for that, otherwise Ill figure out how to force it to pull further back.

Yes, getting it to take advantage of more trades per day would be awesome. Even though it filled 84 days back it looks like the sims only run about 23 back.

Zenbot 4 is out, so I'm cleaning up 3.x issues. Please use and test 4, thanks!


refactor(RingTheory/Trace): Define TraceForm with LinearMap.BilinForm

Redefine traceForm : BilinForm R S using LinearMap.BilinForm instead of BilinForm.
Contributes to  #10553

[x] depends on: #11032

The description of the PR is wrong, right? You use LinearMap.compr₂.

@eric-wieser do you think I should close this PR without merging? I'm not sure that it's useful now #11278 has been merged.

Closing this, for now at least, as I don't think it helps us move things forwards.


Use defer to undo changes on failed update

Defer the function to undo changes and track whether or not the changes
should be kept using a closure over a bool.  This eliminates the need to
explicitly call undoChanges() in every failing return path.
Signed-off-by: Sean Christopherson<EMAIL_ADDRESS>

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

On Mon, Jun 20, 2016 at 01:56:44PM -0700, Sean Christopherson wrote:

Defer the function to undo changes and track whether or not the changes
should be kept using a closure over a bool.  This eliminates the need to
explicitly call undoChanges() in every failing return path.

One problem with using defer like this is that it's not run
immediately after the function returns, but is scheduled in some other
goroutine at some time later on in execution, which can lead to race
conditions.
I haven't explicitly looked to see if there are any race conditions
where the caller of Update() depends on the values being up to date
after the call, but I wouldn't be surprised if there was one.

Signed-off-by: Sean Christopherson<EMAIL_ADDRESS>You can view, comment on, or merge this pull request online at:
https://github.com/lxc/lxd/pull/2141
-- Commit Summary --

Use defer to undo changes on failed update

-- File Changes --
M lxd/container_lxc.go (81)

-- Patch Links --
https://github.com/lxc/lxd/pull/2141.patch
https://github.com/lxc/lxd/pull/2141.diff

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/lxc/lxd/pull/2141

One problem with using defer like this is that it's not run
immediately after the function returns, but is scheduled in some other
goroutine at some time later on in execution, which can lead to race
conditions.

Is this documented somewhere?  My understanding is that deferred functions are stored as a list on the current function's stack, i.e. deferred functions are executed in the context of the surrounding function before the function's stack is unwound.
Things like changing the return value of a function via a closure in a deferred function, which is an example in the official documentation, would not work if the deferred function were executed in a separate goroutine.

On Mon, Jun 20, 2016 at 02:17:02PM -0700, Sean Christopherson wrote:

One problem with using defer like this is that it's not run
immediately after the function returns, but is scheduled in some other
goroutine at some time later on in execution, which can lead to race
conditions.

Is this documented somewhere?  My understanding is that deferred functions are stored as a list on the current function's stack, i.e. deferred functions are executed in the context of the surrounding function before the function's stack is unwound.

Oh, I thought they were just closed over the function's locals, and
didn't necessarily execute in the same stack.

Things like changing the return value of a function via a closure in a deferred function, which is an example in the official documentation, would not work if the deferred function were executed in a separate goroutine.

Yeah, the word "before" sounds like you're right here. Unfortunately,
I've had issues with this (viz.
eb2a87f8d939499a556b6e1c409ea2abd096318e), which is why I brought it
up. If you're sure it won't cause issues I'm fine with it, but I've
had something that smelled funny around this in the past :)

You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/lxc/lxd/pull/2141#issuecomment-227272196

I'm pretty sure the issue with using defer in eb2a87f8d939499a556b6e1c409ea2abd096318e is that driver.Cleanup() needs to be called before s.sendControl(err).  Defer could still be used in that scenario by deferring both function calls, though extra care would need to be taken to ensure err is updated correctly, e.g. not recreated in a new scope via if err := ...; err != nil.
Something like this...
defer func() {
	if driver != nil {
		driver.Cleanup()
		if err != nil {
			s.sendControl(err)
		}
	}
}()

Personally I would prefer to use defer in these cases as I think it leads to more stable code over time, even if it is more difficult to get the defer logic correct.  A missing undoChanges() call is what prompted this PR, and looking at the migration code it also looks like there is a missing driver.Cleanup() when container.Migrate() fails.  Expecting developers to manually perform cleanup in failing flows almost always leads to fragile code.

Actually, a cleaner option for the migration case would be to encapsulate the if live { flow in a separate subroutine.

On Tue, Jun 21, 2016 at 08:12:12AM -0700, Sean Christopherson wrote:

I'm pretty sure the issue with using defer in eb2a87f8d939499a556b6e1c409ea2abd096318e is that driver.Cleanup() needs to be called before s.sendControl(err).

Ah, can you elaborate? Cleanup() should just be removing stuff from
the filesystem, but I'd love to be wrong here :)

Defer could still be used in that scenario by deferring both function calls, though extra care would need to be taken to ensure err is updated correctly, e.g. not recreated in a new scope via if err := ...; err != nil.
Something like this...
defer func() {
	if driver != nil {
		driver.Cleanup()
		if err != nil {
			s.sendControl(err)
		}
	}
}()

Personally I would prefer to use defer in these cases as I think it leads to more stable code over time, even if it is more difficult to get the defer logic correct.  A missing undoChanges() call is what prompted this PR, and looking at the migration code it also looks like there is a missing driver.Cleanup() when container.Migrate() fails.  Expecting developers to manually perform cleanup in failing flows almost always leads to fragile code.

Yes, I absolutely agree here, which is why I was disappointed when I
thought it had problems. But perhaps I was misunderstanding things...

You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/lxc/lxd/pull/2141#issuecomment-227471631

This is just speculation based on the commit message for eb2a87f8d939499a556b6e1c409ea2abd096318e as I haven't done a deep dive into the migration flow...
My understanding is that sendControl(err) informs the migration source that the migration failed.  Deferring driver.Cleanup but not sendControl creates a race condition where the source learns of the failure and starts doing "something", and that "something" conflicts with driver.Cleanup.

Any chance you remember how to reproduce the error that led to eb2a87f8d939499a556b6e1c409ea2abd096318e?  I wouldn't mind taking a look to try and understand why deferring driver.Cleanup caused problems.

On Tue, Jun 21, 2016 at 08:58:48AM -0700, Sean Christopherson wrote:

Any chance you remember how to reproduce the error that led to eb2a87f8d939499a556b6e1c409ea2abd096318e?  I wouldn't mind taking a look to try and understand why deferring driver.Cleanup caused problems.

I think if you revert it and try to migrate stuff it should fail
sporadically, but I don't remember exactly :(

You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/lxc/lxd/pull/2141#issuecomment-227486453

On Tue, Jun 21, 2016 at 08:34:49AM -0700, Sean Christopherson wrote:

This is just speculation based on the commit message for eb2a87f8d939499a556b6e1c409ea2abd096318e as I haven't done a deep dive into the migration flow...
My understanding is that sendControl(err) informs the migration source that the migration failed.  Deferring driver.Cleanup but not sendControl creates a race condition where the source learns of the failure and starts doing "something", and that "something" conflicts with driver.Cleanup.

Well, sendControl() in principle should only send the control message
to the target host, and the cleanup should be independent of this
since it happens entirely on the local filesystem. But who knows, if
you want to take a look I'd welcome another set of eyes on any of this
code.

You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/lxc/lxd/pull/2141#issuecomment-227478989


error on install in new or existing venv

can't import the package. I installed all the requirements and vis_requirements successfully.
import neon or any variation of that yields this:
ERROR: Version information not found.  Ensure you have built the software.
    From the top level dir issue: 'make'

Tried several different ways, following the instructions for conda and pip, ran make with no errors, but still getting the same error when I try to actually use it.
It's not really typical behavior for a python package to expect a makefile to run. From what I can tell of the Makefile contents, it's just looking for a path with the version number. I can see that neon seems to be installed, version 1.4.0. I didn't see this in the FAQ - has anyone else had this problem? I can try hacking the Makefile to just hard-code in the version number and see how that goes, but I'm completely blocked from using the library in the meantime.

Hello,
That error arises either because the virtual environment was not activated, or neon/version.py doesn't exist. That file is created as part of the makefile install. neon isn't a pure python package, and the makefile is required to compile our GPU kernels and our C++ dataloading library.
Can you try a clean virtualenv install by cloning neon, and then issuing make from the neon directory? You can test the install by first activating the virtual environment and then running the MNIST example. Here is the sequence of commands:
git clone https://www.github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
./examples/mnist_mlp.py

Thanks!

No, I can't. I tried that. The default python in my path is python3, which your library doesn't support.
It should be possible to install the dependencies inside an existing venv. Otherwise, I would need to change the makefile so it adds python 2.7 when it creates the venv.

Good point, we should add some python version checking to the virtual env install. Thanks for your suggestion.
To install within an existing venv, activate the virtual env, then run make sysinstall. Neon will install the dependencies in your virtual environment’s python folder.

Thanks, I tried that. It didn't work. That's why I opened this issue.

OK to help diagnose the issue, can you modify the makefile to install a python2.7 venv (or use a sysinstall inside a py2.7 virtualenv), and then share the install logs and the stack trace when you run ./examples/mnist_mlp.py?

ok, will do.

fwiw, now I'm trying to walk through the MNist tutorial and I can't proceed.

In [10]:

# setup training set iterator
train_set = ArrayIterator(X_train, y_train, nclass=nclass)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-10-046ef325b62e> in <module>()
      1 # setup training set iterator
----> 2 train_set = ArrayIterator(X_train, y_train, nclass=nclass)

/Users/szeitlin/mystuff/neon/neon/neon/data/dataiterator.pyc in __init__(self, X, y, nclass, lshape, make_onehot, name)
     76         X = X if isinstance(X, list) else [X]
     77         self.ndata = len(X[0])
---> 78         assert self.ndata >= self.be.bsz
     79         self.start = 0
     80         self.nclass = nclass

AttributeError: 'NoneType' object has no attribute 'bsz'

Great that you were able to get the install working, although if you have the stack trace and install log for the failed sysinstall to share, that would be helpful for us to diagnose.
I was unable to reproduce your error with the MNIST tutorial. That error occurs if the backend has not been initialized yet. The backend is generated at this line: args = parser.parse_args() in the tutorial (preamble section). After executing that line, you can check that the backend was properly generated via:
from neon import NervanaObject
NervanaObject.be

You should see [for CPU]: <neon.backends.nervanacpu.NervanaCPU at 0x1061e3ed0>

Hi @szeitlin, I'm going to close this old issue assuming that Hanlin's suggestion was able to get you past the issue with the MNIST tutorial. Please feel free to reopen if you are still having a problem.


Clearify  documentation

 does not allow child components, wasn't entirely clear from docs

Thanks a lot @bassbump!


[Idea] Pay points for a message on stream or a token

I dunno if that idea was already submitted but what about spend points to display a message on stream (like a donation would do) or to buy tokens?
Of course, the price should be pretty high (at least 10K for one message/token? 50K? 69K? gachiGASM) or the spam would be a nightmare. Or maybe, only subs would be able to do.

Interesting idea, definitely worth implementing as a module (that can be turned on or off)!
:tophat: :briefcase:

The points system is broken at the moment,
if there are auto raffles on subs and/or roulettes people can generate points.
Not sure if this can be used with points.


[ISSUE #8483] Optimize unnecessary broker reverse notification (notifyConsumerIdsChanged) in broadcast mode

Fixes #8483 .

Codecov Report
Attention: Patch coverage is 66.66667% with 2 lines in your changes missing coverage. Please review.

Project coverage is 46.16%. Comparing base (2ed4ba2) to head (075e937).
Report is 1 commits behind head on develop.

Files
Patch %
Lines

...apache/rocketmq/broker/client/ConsumerManager.java
66.66%
0 Missing and 2 partials :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #8484      +/-   ##
=============================================
+ Coverage      46.01%   46.16%   +0.15%
- Complexity     11144    11181      +37
=============================================
  Files           1274     1274
  Lines          89008    89024      +16
  Branches       11444    11449       +5
=============================================
+ Hits           40958    41099     +141
+ Misses         42925    42808     -117
+ Partials        5125     5117       -8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Replayer, check entire account; checkpointing

Add the checkpointing already in place for the mainnet replayer to the berkeley replayer.
Instead of checking just the balances and nonces, check that the entire accounts in accounts_accessed are identical to the ledger accounts.
Closes #13459. Closes #11457.

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!approved-for-mainnet


How to Install GPU Packages

Hello,
You have mentioned in the README to install the GPU drivers before installing the AppImage. How does one do that? I am using Ubuntu 20.04.
Many thanks and kind regards.

Should be these packages stated by,
https://github.com/AppImageCrafters/appimage-builder/blob/5732219cef0985961b477727aca7446a27fa0289/appimagebuilder/modules/deploy/apt/listings.py#L62

You need a package what contain libGL.so.1, both 32 bit and 64 bit versions
It should also install other required depences
On ubuntu/debian:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libgl1 libgl1:i386

On opensuse:
zypper install libglvnd libglvnd-32bit
On fedora/centos:
yum install libglvnd libglvnd.i686

If you need vulkan do also:
On ubuntu/debian:
sudo apt install libvulkan1 libvulkan1:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386
On opensuse:
sudo zypper install libvulkan1 libvulkan1-32bit Mesa-vulkan-overlay Mesa-vulkan-overlay-32bit
sudo zypper install libvulkan_intel libvulkan_intel-32-bit libvulkan_radeon libvulkan_radeon-32bit

On fedora/centos:
sudo yum install vulkan-loader vulkan-loader.i686 mesa-vulkan-drivers mesa-vulkan-drivers.i686

AppImage now includes i386 drivers and works without host i386 packages.


Add CICD stuff

Do research about cool CICD features

TODO: add CI that creates an exe for our game using Pyinstaller https://pyinstaller.readthedocs.io/en/stable/


When starting a repository migration, output the migration's GUID to the logs, as well as its GraphQL ID (RM_)

Right now, when starting a migration, we only print the GraphQL ID (beginning RM_ to the logs).
This also outputs the GUID (aka database ID), which is referred to in certain places (e.g. the Migration Log issue and text file).

[x] Did you write/update appropriate tests
[x] Release notes updated (if appropriate)
[x] Appropriate logging output
[ ] Issue linked
[ ] Docs updated (or issue created)
[ ] New package licenses are added to ThirdPartyNotices.txt (if applicable)

FYI, depending on how visible you want the UUID to be when using the CLI there is a more lightweight way to accomplish this. If you just included the change the the GQL query, but didn't change GithubApi return value, or any of the LogInformation lines, it would still accomplish the goal of getting the UUID in the log. Because all HTTP request/responses are logged in the verbose log. So as long as the GQL endpoint is returning the UUID, it will be in the verbose log file even if we do nothing with it in the code.

👍🏻 I think this approach is probably better, just because it doesn't rely on your being in verbose mode.

Closing in favour of #1032.
This solution was perhaps in some ways prettier - it leads to nicer log output - but it's probably overkill, and it was breaking our generate-script scripts which rely on parsing the output to get the migration ID.


(POC) run_container plan function

This POC introduces the run_container() plan function. The function
accepts the name of an image (optionally with a registry prepended) to
run, and a hash of options to apply when running the container. For this
POC, Docker is the only supported container engine. The function returns
a new ContainerResult object that contains a value, status, and
object. This function is supported on both *nix and Windows systems.
Currently, supported options are:

cmd - A command to run in the container
env_vars - A hash of environment variables to set in the container
ports - A hash of ports to publish from the container to the host
rm - A boolean, whether to remove the container when it exits
volumes - A hash of directories on the host and their corresponding
directories in the container to mount into the container

If you have requests for more options to add, let us know in the
comments, in a new issue, or in Slack (and be sure to smash that 'star'
button 😉).
!feature

run_container() plan function
This introduces a new run_container() Puppet plan function that will
run a container a return its output.

This is what I've tested so far:

[x] Catches errors
[x] Passes env_vars through to the container
Mounts a volume the container can

[x] Read from
[x] Write to

[x] Removes the container when rm is set
[x] Can run a command
[x] Returns a ContainerResult

[x] Can return a ContainerResult from a plan
[x] Can print a ContainerResult

[x] Returns a ContainerResult object with an error if the container errors
[x] Works on Windows
[ ] Pulls containers from an alternative registry if the user is logged in

Sorry the tests keep failing with 'connecting' errors that are transient - this is ready for review.

Serializing ContainerResult objects in ApplyBlocks isn't working (Puppet is converting the value values to Binary datatypes instead of Strings) - I think taking more time to do exploratory testing like that would be the most helpful.


Allow qname in type clauses

In the current grammar, type names that follow class, interface, etc have to be unqualified names. This makes queries such as $ juggle class java.net.InetAddress illegal. Instead such a query has to be expressed clumsily using an import: $ juggle -i java.net class InetAddress.
Although this example query feels pointless (why lookup a class you already know about?), it feels even worse that Juggle doesn't accept the natural way of expressing it.
Change the grammar to allow qualified names in places like this.

Should also search the *.md files for examples that can be simplified once this is available.

This syntax is also critical for specifying inner and nested classes.


JSON rendering always expanded | extended metadata from IPython / Jupyter is ignored

Environment data

VS Code version:
Version: 1.73.0 (Universal)
Commit: 8fa188b2b301d36553cbc9ce1b0a146ccb93351f
Date: 2022-11-01T15:38:50.881Z (1 wk ago)
Electron: 19.0.17
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 22.1.0
Sandboxed: No
Jupyter Extension version (available under the Extensions sidebar):
v2022.9.1202862440
Python Extension version (available under the Extensions sidebar):
v2022.18.1
OS (Windows | Mac | Linux distro) and version:
Apple M1 Pro | macOS Ventura Version 13.0 (22A380)
Python and/or Anaconda version:
python 3.10.5 installed with pyenv
Type of virtual environment used (N/A | venv | virtualenv | conda | ...):
virtualenv
Jupyter server running:
Local

Expected behaviour
In JupyterLab, when rendering a json output one can control if the data is extended or not

Actual behaviour
In VSCode-jupyter, the extended metadata is not used

Steps to reproduce:
Run this on a notebook
from IPython.display import JSON

# first cell
JSON({'a': [1, 2, 3, 4,], 'b': {'inner1': 'helloworld', 'inner2': 'foobar'}}, metadata={'expanded': True})

# second cell
JSON({'a': [1, 2, 3, 4,], 'b': {'inner1': 'helloworld', 'inner2': 'foobar'}}, metadata={'expanded': False})

Logs

Output for Jupyter in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Jupyter)

nfo 12:27:24.118: Restart requested file:///Users/giacomosnidero/repos/test-tech/Untitled-1.ipynb
info 12:27:24.118: Restart kernel execution
info 12:27:24.118: Restarting 7aa332df-9114-4368-87e8-7fc5ff4ea0d1
[I 12:27:24.122 NotebookApp] Creating new notebook in
info 12:27:24.130: installMissingDependencies /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python, ui.disabled=false for resource '/Users/giacomosnidero/repos/test-tech/Untitled-1.ipynb'
info 12:27:24.130: Got env vars with python /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python, with env var count 54 and custom env var count 0 in 0ms
info 12:27:24.130: Got env vars ourselves faster /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python with env var count 54 in 0ms
info 12:27:24.131: Process Execution: > ~/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python -c "import ipykernel"
> ~/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python -c "import ipykernel"
info 12:27:24.236: Spec argv[0] updated from '/Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python' to '/Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python'
info 12:27:24.237: Got env vars with python /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python, with env var count 54 and custom env var count 0 in 1ms
info 12:27:24.237: Got env vars ourselves faster /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python with env var count 54 in 1ms
[I 12:27:24.258 NotebookApp] Kernel started: aa976560-51bb-4d4a-93f2-8b32de369622, name: python3105jvsc74a57bd075b429ef1bb511660894b825902db379d3782b7d15b9e72440ff49932a6e89de
[W 12:27:24.266 NotebookApp] delete /Untitled-1-jvsc-b6a81cb3-8cb6-4b78-8a5b-f38e49c1dd7ecdbf5b7e-0525-470b-9ca2-ec26e60a722c.ipynb
info 12:27:24.691: Got new session aa976560-51bb-4d4a-93f2-8b32de369622
info 12:27:24.691: Started new restart session
[I 12:27:24.694 NotebookApp] Kernel shutdown: 7aa332df-9114-4368-87e8-7fc5ff4ea0d1
info 12:27:24.779: Got env vars with python /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python, with env var count 54 and custom env var count 0 in 1ms
info 12:27:24.779: Got env vars ourselves faster /Users/giacomosnidero/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python with env var count 54 in 1ms
info 12:27:24.779: Process Execution: > ~/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python -c "import sys;print(sys.executable)"
> ~/.pyenv/versions/3.10.5/envs/test-tech-3.10.5/bin/python -c "import sys;print(sys.executable)"
info 12:27:24.780: UpdateWorkingDirectoryAndPath in Kernel

This would be incredibly useful! I'm currently writing json to file and then using the vscode's internal json viewer to inspect unknown large json objects or using jq on command-line. Having functionality of the screenshot in the cell output when using display_json or JSON would make my whole year ❤

tly writing json to file and then using the vscode's internal json viewer to inspe

@mjbvz I know this used to be possible ( I distinctly recall testing JSON and collapsing individual nodes),
looks like we're no longer using the built-in editors to display the outputs, instead we use the mardown renderer to render different languages.
For instance if you look at the docs you can see selection of code and the like is possible (see screesnshots) https://code.visualstudio.com/api/extension-guides/notebook
@mjbvz Is this deliberate? if so, I think we might want to update the docs (I can file a separate issue for that) & perhaps leave the above request as a feature request

@rebornix Do you remember when this changed? I think it's been this way for a long time now since all output items should go through our output renders apis

@rebornix pinging, if this was removed, we might want to update the docs

We don't have the "monaco-editor" renderer support since we moved all renderers out from core to extensions.

we might want to update the docs

Good call, we should update.

are any workarounds or extensions for this?

Kind of workaound for now, install Monaco Editor renderer from extensions manager.

run the code once, and select the 3 dots at the left of the output. select "change presentation"

Select monaco renderer. and its working as expected.

Thank you for filing this issue, given the fact that we haven't had sufficient upvotes on this issue I'm closing this as not planned.


tflite/micro/README: fix binary paths

/cc @dansitu

@petewarden Could you PTAL and approve.

@petewarden, @MarkDaoust can you please review this PR ?

Nagging Reviewer @petewarden, @MarkDaoust: You have been added as a reviewer to this pull request. Please add your review or reassign. It has been 15 days with no activity and the awaiting review label has been applied.


[Site]: Pls HELP me in this issue

Current State
i have been trying to clone the website in the local IDE. But it shows something like this,

I tried everything, but still not working. I'm quite new to open source, pls help me out in this -( i want to work the UI of the website)
By the way this is how my terminal looks like

Desired State
Description of the change you are proposing:
Would you like to fix this issue?
No response

Sorry for taking so long to reply to you, can you please tell me what are the commands you use?
It looks like you are running is the English blog part with yarn start:blog:en? Since our website has been divided into multiple sections, it is normal to behave this way.
If the style you want to modify is for the blogs, please visit localhost:3000/blog.
If the style you want to modify is for the docs, run yarn start:doc and visit localhost:3000/docs.
If the style you want to modify is for other pages, run yarn start:website.

The commands i used were-
1.yarn
2.yarn sync-doc
yarn generate-repos-info
 yarn generate-picked-posts
3. yarn start:doc
and i guess mistakenly i accessed the docs, where as i wanted to access the home page website.
Any ways i ran yarn start:website and it worked, Thank you so much for your help.


tree-sitter: add alemuller/tree-sitter-make

Motivation for this change
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 141597 run on x86_64-linux 1

1 package built:

difftastic


Line - incorrect line coloring when the control style is enabled "simple"

I am using "mIRC v7.67" + "DCX dll v3.1-git469" in system "Windows 8.1 x64".
When enable the control style simple - a colored line is drawn, and for some reason a duplicate is drawn next to it in the form of a light gray line. At the same time, as you can see in the screenshot, the first crosshair of two 1-pixel lines has no color at all. In addition, it is not entirely clear why you need to specify a control style for this, if, according to the logic, coloring or drawing of a colored line should occur automatically when the "/xdid -C" command is used. But if cannot do without this action, then I would suggest renaming this control style to a more intuitive name. For example colored  or colorline.
Would like to see a fix for this problem. Thanks.

Here is a test piece of script to reproduce this the problem. To run the script click on "F5" or enter the command "/line_test":
alias F5 { line_test }
alias -l line_test {
  if ($dialog(line_test)) .dialog -x line_test | else { .dialog -m line_test line_test }
}
dialog -l line_test {
  title "Line test"
  icon $mircexe,0
  option pixels
  size -1 -1 370 120
}
on *:DIALOG:line_test:init:0:{
  .dcx Mark $dname line_test_work
  .xdialog -b $dname +ty
  .xdialog -g $dname +b $rgb(20,20,27)
  .xdialog -c $dname 1 line 20 44 50 1 simple | .xdid -C $dname 1 +b $rgb(255,0,0)
  .xdialog -c $dname 2 line 43 20 1 50 simple vertical | .xdid -C $dname 2 +b $rgb(255,0,0)
  .xdialog -c $dname 3 line 90 44 50 2 simple | .xdid -C $dname 3 +b $rgb(255,0,0)
  .xdialog -c $dname 4 line 113 20 2 50 simple vertical | .xdid -C $dname 4 +b $rgb(255,0,0)
  .xdialog -c $dname 5 line 160 44 50 3 simple | .xdid -C $dname 5 +b $rgb(255,0,0)
  .xdialog -c $dname 6 line 183 20 3 50 simple vertical | .xdid -C $dname 6 +b $rgb(255,0,0)
  .xdialog -c $dname 7 line 230 44 50 4 simple | .xdid -C $dname 7 +b $rgb(255,0,0)
  .xdialog -c $dname 8 line 252 20 4 50 simple vertical | .xdid -C $dname 8 +b $rgb(255,0,0)
  .xdialog -c $dname 9 line 300 44 50 5 simple | .xdid -C $dname 9 +b $rgb(255,0,0)
  .xdialog -c $dname 10 line 322 20 5 50 simple vertical | .xdid -C $dname 10 +b $rgb(255,0,0)
  .xdialog -c $dname 11 line 20 90 330 10 simple | .xdid -C $dname 11 +b $rgb(255,0,0)
}
alias line_test_work {}

I found a temporary workaround to fix this problem. If add text through the command "/xdid -t $dname 1 $str($chr(8195),50)", where instead of letters for writing will be used (wide space), which will be cloned for a certain number of characters, this will help to draw a colored line in the desired size. But at the same time, another problem arises, in which, if such drawn lines are long enough and there will be a lot of them, then in the case of stretching (resizing) the dialog box, there will be a big slowdown in updating the window.


[BEAM-2670] Fixes SparkRuntimeContext.getPipelineOptions()

It used a global variable to store the deserialized options, so even if there were several instances of SparkRuntimeContext created with different PipelineOptions, they would all return the same value depending on which one was asked first.
R: @jbonofre or @staslev or @kennknowles or @tgroh or pretty much anyone

Run Spark ValidatesRunner

Thanks, I'm starting the review.

Run Spark ValidatesRunner

retest this please

The Spark ValidatesRunner tests are pre-existing. This commit does fix the JIRA issue though https://issues.apache.org/jira/browse/BEAM-2670.

retest this please

Run Spark ValidatesRunner

Testing locally as well.

Coverage decreased (-0.06%) to 70.41% when pulling 46bf077a8f7f981839cb0461cd308886de177862 on jkff:fix-spark into 892a2cf5b0f83fcc4cdc2ae75131350735749309 on apache:master.

The Create.ofProvider() test failure looks odd, it doesn't even involve the Spark runner... I'll take a look when I get to the office.

Create.ofProvider test is failing because https://github.com/apache/beam/pull/1796 sets a specific version of Jackson. Jackson is used only in SparkRuntimeContext, to serialize and deserialize PipelineOptions. I don't think either of this is correct (we should use just one version of this library, and SparkRuntimeContext shouldn't do its own serialization/deserialization - that's responsibility of something like PipelineOptionsFactory); fixing.

Astrologers proclaim the week of the nerd-snipe.
I started by fixing SparkRuntimeContext and then noticed that we have 2 more almost identical classes in Flink and Apex, so I instead created a class in runners-core and deduplicated, and deleted SparkRuntimeContext altogether (along with deleting some other dead code hanging onto it). It also turned out that SparkRuntimeContext didn't call FileSystems.setDefaultPipelineOptions - bug averted, I guess.

Run Spark ValidatesRunner

Thanks, PTAL.

Changes Unknown when pulling 0f9c61c173a30e2ab10de9919ba27fbab5489a8b on jkff:fix-spark into ** on apache:master**.


InstanceV1API list_servers raises an exception for any query because it does not instantiate ServerIp correctly

Python 3.12.4
scaleway 2.4.1

Example:
from scaleway import Client
from scaleway.instance.v1 import InstanceV1API

client = Client(
  access_key=SCW_ACCESS_KEY_ID,
  secret_key=SCW_SECRET_KEY,
  default_project_id=SCW_PROJECT_ID,
  default_region='fr-par',
  default_zone='fr-par-1',
  default_page_size=100
)

api = InstanceV1API(client)
result = api.list_servers()
print('Got %i results' % len(result))

Result:
$ python example.py
Traceback (most recent call last):
  File "/Users/jcd/Repos/iplistgen/example.py", line 18, in <module>
    result = api.list_servers()
             ^^^^^^^^^^^^^^^^^^
  File "/Users/jcd/Library/Caches/pypoetry/virtualenvs/iplistgen-gpgcOG1k-py3.12/lib/python3.12/site-packages/scaleway/instance/v1/api.py", line 435, in list_servers
    return unmarshal_ListServersResponse(res.json())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jcd/Library/Caches/pypoetry/virtualenvs/iplistgen-gpgcOG1k-py3.12/lib/python3.12/site-packages/scaleway/instance/v1/marshalling.py", line 2018, in unmarshal_ListServersResponse
    [unmarshal_Server(v) for v in field] if field is not None else None
     ^^^^^^^^^^^^^^^^^^^
  File "/Users/jcd/Library/Caches/pypoetry/virtualenvs/iplistgen-gpgcOG1k-py3.12/lib/python3.12/site-packages/scaleway/instance/v1/marshalling.py", line 798, in unmarshal_Server
    args["public_ip"] = unmarshal_ServerIp(field)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jcd/Library/Caches/pypoetry/virtualenvs/iplistgen-gpgcOG1k-py3.12/lib/python3.12/site-packages/scaleway/instance/v1/marshalling.py", line 565, in unmarshal_ServerIp
    return ServerIp(**args)
           ^^^^^^^^^^^^^^^^
TypeError: ServerIp.__init__() missing 2 required positional arguments: 'gateway' and 'ipam_id'

Hello,
Could you please provide more information about your issue? To help us better understand, you can add the following code to enable logging:
import logging
logger = logging.getLogger("scaleway")
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
This will generate logs that you can share with us for further analysis.
Thank you!

I had the same problem when upgrading from v1.8.5 to v2.5.0.
Please give us a workaround !
My error is:
Exception has occurred: TypeError
ServerIp.init() missing 2 required positional arguments: 'gateway' and 'ipam_id'

Hello,
The issue has been raised to the product team. We apologize for the inconvenience and the delay.
Thank you for reporting this and for your patience.
Laure

Hello,
This bug could occur if an IP was NATed. Now that there is no longer a NAT IP, this problem should no longer occur.
Can you confirm if the bug still exists on your side?


Impossible to override User password hashing algo

@DimaSoroka @vsoroka partially related to https://github.com/orocrm/platform/issues/423

Application configuration should be applied with highest priority so you should be able to have additional control on top of bundle configs.

try to add
            Oro\Bundle\UserBundle\Entity\User:
                algorithm:            pbkdf2
                // algo options here

to app/config/security.yml
and you'll get Fatal Error cause type hinting in ArrayUtil::arrayMergeRecursiveDistinct
public static function arrayMergeRecursiveDistinct(array $first, array $second)
which is because of merge Oro\Bundle\UserBundle\Entity\User: sha512 with array provided above,
yes, it's probably not a downside of that app.yml approach, but ArrayUtil issue
P.S.: checked on 1.9 but as I see master branch can also have the same issue

Hi @ishakuta,
Thanks for your PR, soon you'll see it at master.

@hurricane-voronin won't you update 1.9 branch with this fix?

@ishakuta, feel free to submit PR, we are welcome contributions to maintenance branches with latest minor version and to master. All ongoing maintenance is done in the master except customer support issues and community contributions.

@DimaSoroka that's basically the same two commits to cherry-pick from master :)

The pull request has been merged so I assume this can be closed.


BUG: stream of feedback from @mih and comments by @jshuenis

1

"trying to click on something (e.g. keywords), and nothing happens".
I do not have a good intuition of what to make of that. Best thing I can come up with is that the visual presentation of a keyword does somewhat resemble that of a button, and this might have triggered the expectation of an action when clicking on it.

So: keywords are shown for a dataset, and on the summary cards of a dataset's subdatasets. The keywords on subdatasets are clickable. The keywords on top for the dataset itself are not clickable. This is intentional, because the dataset keywords is a property of the dataset itself, and not of its subdatasets. The keyword search below takes all subdataset keywords into account.
But I agree, it could be expected that the dataset keywords are clickable due to their shape, and then it's a UX issue if they aren't. I could probably make them appear different visually.
2

IIRC javascript should have access to the page URL that the current catalog page was reached from (in terms of browser navigation) -- i.e. the standard "back button" -- I often find myself looking for the in page "back" navigation, and there is none (only to-top, and down)

Investigate whether to implement an in-page back button that serves the same purpose as browser back-button but could make for a more expected/intuitive UX.
3

Some of the keywords are funky: https://psychoinformatics-de.github.io/sfb1451-projects-catalog/#/dataset/a808f9e1-d638-4771-ae4c-ff21da29151a/272e2844cd7c58dda8dfe288e7831ad2fa9c34b6 has "suffix" and "subject"

this comes from the bids_dataset extractor+translator, and they can be handled by those to either be included or excluded. I think specifically the keywords pointed out here can be excluded from the bids_dataset output, since they do not add any useful functionality
4

the preview for a catalog dataset landing page generated by matrix is just "CRC1451 Catalog" -- this could/should have essential info on the actual dataset

Good point. For the general case, we will need to somehow get info from the superdataset into the index.html <meta> tag. Related issue here: https://github.com/datalad/datalad-catalog/issues/285.
For the SFB we can enter it manually: https://github.com/psychoinformatics-de/sfb1451-projects-catalog/issues/16
5

when I search at the catalog entrypoint for a keyword (like that "suffix"), the catalog knows about it (autocompletes)

But if I hit return, I get no hits -- because none of the immediate subdatasets matches. This is nevertheless a UX issue. It could be found, it knows about it.

This is unexpected behaviour. The keyword search space is populated by all keywords of immediate subdatasets, therefore if a keyword is known about (from the keyword search field), then there should be an immediate subdataset that gets matched. If not, this would be some bug. To be investigated.
6

When I click on the copy button here:

I get tons of whitespace

(three lines, plus indentation)

We need to strip whitespace after copying the string and before pasting it to the clipboard.
7

Citation contains HTML markup

Need to filter out markup received from crossref, or perhaps the API has functionality to exclude that?
8

This is now the most frequent property in the catalog. If it is easy to turn off if == zero, I think we should consider it.

Keep the remaining zero in the corresponding tab: Subdatasets (0).
9
Binder functionality:

Update repo/notebook name: parameter-test is confusing
Use bash kernel notebook, not python
Check if useful progress reporting can be shown

10

datalad clone https://gin.g-node.org/Aswendt_Lab/2023_Goetz_RecoveryGenes.git
should be:
datalad clone https://gin.g-node.org/Aswendt_Lab/2023_Goetz_RecoveryGenes

Should add another step to GIN url mangling in the catalog code to remove the trailing .git

This issue was divided into separate issues which were subsequently addresses by PRs


crash when downloading from udemy

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.12.31. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.12.31

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[ ] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'--proxy', u'http://localhost:3128', u'-o', u'%(autonumber)02d - %(title)s.%(ext)s', u'--username', u'PRIVATE', u'--password', u'PRIVATE', u'https://www.udemy.com/understand-nodejs/learn/v4/content', u'--verbose']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.12.31
[debug] Python version 2.7.14 - Linux-4.13.0-21-generic-x86_64-with-Ubuntu-17.10-artful
[debug] exe versions: ffmpeg 3.3.4-2, ffprobe 3.3.4-2, rtmpdump 2.4
[debug] Proxy map: {u'http': u'http://localhost:3128', u'https': u'http://localhost:3128'}
[udemy:course] Downloading login popup
[udemy:course] Logging in
[udemy:course] understand-nodejs: Downloading webpage
[udemy:course] 461160: Downloading course curriculum
[download] Downloading playlist: Learn and Understand NodeJS
[udemy:course] playlist Learn and Understand NodeJS: Collected 93 video ids (downloading 93 of them)
[download] Downloading video 1 of 93
[udemy] Downloading login popup
[udemy] 3452978: Downloading webpage
[udemy] 3452978: Downloading lecture JSON
[udemy] 4113756: Downloading m3u8 information
ERROR: An extractor error has occurred. (caused by KeyError('_Request__r_host',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 438, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/udemy.py", line 340, in _real_extract
    extract_formats(data.get('sources'))
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/udemy.py", line 263, in extract_formats
    m3u8_id='hls', fatal=False))
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1335, in _extract_m3u8_formats
    fatal=fatal)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 537, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 517, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2198, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/local/bin/youtube-dl/youtube_dl/utils.py", line 1088, in https_open
    req, **kwargs)
  File "/usr/lib/python2.7/urllib2.py", line 1195, in do_open
    h.request(req.get_method(), req.get_selector(), req.data, headers)
  File "/usr/lib/python2.7/urllib2.py", line 294, in get_selector
    return self.__r_host
  File "/usr/lib/python2.7/urllib2.py", line 253, in __getattr__
    return self.__dict__[attr]
KeyError: '_Request__r_host'
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 784, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 451, in extract
    raise ExtractorError('An extractor error has occurred.', cause=e)
ExtractorError: An extractor error has occurred. (caused by KeyError('_Request__r_host',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Udemy Course content: https://www.udemy.com/understand-nodejs/learn/v4/content

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
downloads from udemy are breaking on retries and resumes.

@dstftw , sorry buy I couldn´t find another issue regarding the same matter. Can you please link it here?

it seems to be a problem when using python 2.7 in ubuntu (17.10). python3 which youtube-dl`` seems to fix the problem caused by the bad m3u8 parsing.


Add no-https option for all templates

Follow up to https://github.com/aspnet/templating/pull/362

Is this still design?

Can you add at least one test for this?

@javiercn Added a test to check for the HttpsPolicy package in the .csproj


Update Alpine to 3.15 to address critical vulnerability

Description
Update alpine version to address critical snyk finding in apk-tools binary included in alpine 3.10.8
Motivation and Context
This change should mitigate vulnerabilities enumerated here: https://snyk.io/test/docker/alpine%3A3.10.8

Any maintainers still active on this project? @zhouzhuojie @ivanRylach able to merge and release this?

I am no longer involved in this project.
@sesquipedalian-dev, can you help here?


Standalone Publish of textures family

3.0 version of https://github.com/pypeclub/OpenPype/pull/1747
Closes: pypeclub/client#115

Fixed defaults


META: Organize this repo

Figure out an overall structure for marketing docs.

This is now done -- the repo will be structured as a "marketing handbook" using mdbook, covering pitches, rebuttals, comparisons, and notable achievements.


03 Jul 2024 - Diversity Equity & Inclusion Special Interest Group Meeting

Date
20240703 - 12:00pm EST / 5pm GMT
Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[ ] Convene & roll call (5mins)
[ ] Display FINOS Antitrust Policy summary slide
[ ] Review Meeting Notices (see above)
[ ] Approve past meeting minutes
[ ] #56 (Rimma, Paula)
[ ] #41  (Rimma, Paula)
[ ] #53  (Rimma, Paula)
[ ] #52 (Rimma)
[ ] #39 (Kaajal, Serge, Rimma)
[ ] AOB, Q&A & Adjourn (5mins)

Decisions Made

[ ] Decision 1
[ ] Decision 2
[ ] ...

Action Items

[ ] Action 1
[ ] Action 2
[ ] ...

Meeting Info
Join Zoom Meeting
https://zoom.us/j/94969868675
Meeting ID: 949 6986 8675
Passcode: 184472

Mimi Flynn / Morgan Stanley

Aisha Animashaun - turntabl

@Perelmuter can you or @eteridvalishvili add the minutes to this issue so that we can close the agenda and minutes on our next SIG call?


Support magic files for filetype detection

At the moment we only support a small number of files that contain simple magic byte strings, being able to parse the magic format used by services such as file would allow detection of many more files.

Am currently working on this.

Great. Look forward to seeing this!

Support for more filetypes has been added in #440 along with the ability to parse out some file formats from arbitrary byte streams. More formats can be added over time, but I'll close this issue for now.


Slow compile time for "func blurred(withRadius radius: CGFloat) -> Image"

Hi,
The Kingfisher project has previously solved issues with slow compile times (#467, #468), so I am posting this in the hopes of you being able to solve this new one that I am seeing since recently upgrading to the latest version (3.5.0 / 5cfa0dd5c9fc48e1c31f574ad8eaa31a3a9d4003):
1763.4ms        .../Pods/Kingfisher/Sources/Image.swift:442:17   public final func blurred(withRadius radius: CGFloat) -> Image
1761.1ms        .../Pods/Kingfisher/Sources/Image.swift:442:17   public final func blurred(withRadius radius: CGFloat) -> Image

CC @frankrausch @onevcat
Thanks, BR, Erik

Do you remember which version you had before? That would make it easier to isolate the problem.
I took a quick look at the blurred function but didn’t see anything suspicious (like a complex equation in one line).

This is showing up since upgrading from 3.3.3, but I can't see any changes in blurred between those versions. Right now blurred is the function that takes the longest time to compile in our project (according to -debug-time-function-bodies), but I can't say how accurate that is...
I am coming from 7 years of Android development, and I must say the iOS tool chain is quite bad compared to anything Java / Android related.

Should be fixed in https://github.com/onevcat/Kingfisher/pull/613
It took me about 2000ms before. And now 100ms.

Thank you!

Amazing! Still unbelievable that splitting the statement into 3 lines makes such a huge compile time difference.


Error: No component factory found for BSModalContainer

When opening a custom modal using the following code:
this.modal.open(ModalComponent, overlayConfigFactory({},BSModalContext))
I get the following error:

Error: No component factory found for BSModalContainer. Did you add it to @NgModule.entryComponents?

The modal indeed opens and displayed well, but I would like to get rid of that error message.
Have anyone encountered that error before?

Version?
Sent from my iPhone

On Jun 20, 2017, at 9:06 PM, kadosh1000<EMAIL_ADDRESS>wrote:
When opening a custom modal using the following code:
this.modal.open(ModalComponent, overlayConfigFactory({},BSModalContext))
I get the following error:
Error: No component factory found for BSModalContainer. Did you add it to @NgModule.entryComponents?
Have anyone encountered that error before?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@shlomiassaf  sorry forgot to mention.
I am using angular 4.0.2 and angula2-modal 3.0.0

Lazy loading by chance ?
Sent from my iPhone

On Jun 20, 2017, at 10:52 PM, kadosh1000<EMAIL_ADDRESS>wrote:
@shlomiassaf sorry forgot to mention.
I am using angular 4.0.2 and angula2-modal 3.0.0
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Nope :(

found what the problem was. I didn't notice I need to import the BootstrapModalModule.
After importing it the error went away


second bad PR

SonarQube analysis reported 3 issues

 3 minor

Watch the comments in this conversation to review them.

SonarQube analysis reported 6 issues

 4 major
 2 minor

Watch the comments in this conversation to review them.

SonarQube analysis reported 8 issues

 1 critical
 4 major
 2 minor
 1 info

Watch the comments in this conversation to review them.

SonarQube analysis reported 69 issues

 69 minor

Top 10 extra issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 pom.xml#L8: Tab characters found (this is the first occurrence)
 pom.xml#L78: Make this line start at column 7.
 pom.xml#L79: Make this line start at column 7.
 pom.xml#L80: Make this line start at column 7.
 pom.xml#L90: Make this line start at column 7.
 pom.xml#L91: Make this line start at column 7.
 pom.xml#L92: Make this line start at column 7.
 pom.xml#L95: Make this line start at column 7.
 pom.xml#L96: Make this line start at column 7.
 pom.xml#L97: Make this line start at column 7.

SonarQube analysis reported 49 issues

 1 blocker
 2 critical
 12 major
 33 minor
 1 info

Watch the comments in this conversation to review them.
Top 10 extra issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 PropertyHandler.java#L63: Close this "FileInputStream".
 PropertyHandler.java#L98: Define a constant instead of duplicating this literal "Erreur de récupération du fichier properties : " 3 times.
 PropertyHandler.java#L42: Add a private constructor to hide the implicit public one.
 PropertyHandler.java#L62: Extract this nested try block into a separate method.
 PropertyHandler.java#L64: Either log or rethrow this exception.
 PropertyHandler.java#L85: Replace this with a call to the "toFile().isFile()" method
 PropertyHandler.java#L97: Either log or rethrow this exception.
 PropertyHandler.java#L99: Either log or rethrow this exception.
 PropertyHandler.java#L101: Either log or rethrow this exception.
 PropertyHandler.java#L103: Either log or rethrow this exception.

SonarQube analysis reported 8 issues

 1 critical
 4 major
 2 minor
 1 info

Watch the comments in this conversation to review them.

SonarQube analysis reported 8 issues

 1 critical
 4 major
 2 minor
 1 info

Watch the comments in this conversation to review them.


spire-server v.1.10.0 breaks default chart.

Hi,
I have noticed that now the chart 0.21.1 uses the spire-server  1.10.0 which is set to run as the user 1000. Now if you deploy the chart with the default values you will get this:
time="2024-08-12T12:20:34Z" level=warning msg="Current umask 0022 is too permissive; setting umask 0027"
time="2024-08-12T12:20:34Z" level=info msg=Configured admin_ids="[]" data_dir=/run/spire/data launch_log_level=info
time="2024-08-12T12:20:34Z" level=info msg="Opening SQL database" db_type=sqlite3 subsystem_name=sql
time="2024-08-12T12:20:34Z" level=error msg="Fatal run error" error="datastore-sql: unable to open database file: no such file or directory"
time="2024-08-12T12:20:34Z" level=error msg="Server crashed" error="datastore-sql: unable to open database file: no such file or directory"

I had to add the following to the values.yaml to make it work.
spire-server:
  podSecurityContext:
    fsGroup: 1000

Chart version:
helm list -A
NAME      	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART           	APP VERSION
spire     	spire    	1       	2024-08-12 14:32:42.985943129 +0000 UTC	deployed	spire-0.21.1    	1.10.0

Hmm... Its passing our testing. How did you deploy it? Is it a fresh install, or is it an upgrade of an existing deployment?

Filed https://github.com/spiffe/helm-charts-hardened/issues/421

Hi. It was a fresh installed, however,  I have just tried again on a fresh GKE cluster. This are the exact command I run:
helm upgrade --install --create-namespace -n spire spire-crds spire-crds  --repo https://spiffe.github.io/helm-charts-hardened/
helm upgrade --install -n spire spire spire --repo https://spiffe.github.io/helm-charts-hardened/

And got the same error as before:
$ kubectl -n spire logs spire-server-0
time="2024-08-13T06:06:46Z" level=warning msg="Current umask 0022 is too permissive; setting umask 0027"
time="2024-08-13T06:06:46Z" level=info msg=Configured admin_ids="[]" data_dir=/run/spire/data launch_log_level=info
time="2024-08-13T06:06:46Z" level=info msg="Opening SQL database" db_type=sqlite3 subsystem_name=sql
time="2024-08-13T06:06:46Z" level=error msg="Fatal run error" error="datastore-sql: unable to open database file: no such file or directory"
time="2024-08-13T06:06:46Z" level=error msg="Server crashed" error="datastore-sql: unable to open database file: no such file or directory"

$ helm list -A
NAME      	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART           	APP VERSION
spire     	spire    	1       	2024-08-13 06:05:08.669709966 +0000 UTC	deployed	spire-0.21.1    	1.10.0
spire-crds	spire    	1       	2024-08-13 06:04:44.734769824 +0000 UTC	deployed	spire-crds-0.4.0	0.0.1


add possibility to disable strategies (copied)

Copy of https://github.com/gnosis/gp-v2-services/pull/1525 (tried to merge with main and resolve conflicts but got strange build errors)

Codecov Report

Merging #1612 (8694305) into main (8a0610e) will decrease coverage by 0.10%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1612      +/-   ##
==========================================
- Coverage   66.61%   66.51%   -0.11%
==========================================
  Files         171      171
  Lines       33647    33675      +28
==========================================
- Hits        22415    22399      -16
- Misses      11232    11276      +44


Split out configuration settings by task/outcome

Continuing to split out configuration settings based on the System Console UI

/update-branch


New Commands: For people struggling with erela and Djs

New commands, jump, seek, shuffle and skip for people struggling with erela and Djs

Unfortunately none of these will work with the existing index.js example, on top of that they are not of good quality for examples with them not having the top comment, requiring packages and files not specified in the guides, plus overall logic not making sense for these kind of commands. I will add some more example commands though.


Switch to Yarn plug-and-play

Reference: https://v3.yarnpkg.com/getting-started/migration#switching-to-plugnplay

@minht11, looks like both @biomejs/biome and remark-cli are not pnp compliant.

@Borewit I have zero experience with yarn pnp, but by the looks of it it tries to lint those files. You can just ignore them in biome.jsonc files.ignore
"./.pnp.cjs",
"./.pnp.loader.mjs"

Tested locally.

@Borewit I have zero experience with yarn pnp, but by the looks of it it tries to lint those files. You can just ignore them in biome.jsonc files.ignore
"./.pnp.cjs",
"./.pnp.loader.mjs"

Tested locally.

It is as if the configuration file is ignored when switching to pnp. You need to run yarn install to test this branch (peek-readable/node_modules should disappear).

The latest breakage is because you enabled formatter.enabled to true, you can either disable it or run yarn lint --fix

Great, only remark-cli remaining


check resolution of extensions

resolving of
http://pombase2.aska.gen.nz/gene/SPAC23C4.03
http://pombase2.aska.gen.nz/gene/SPAC23C4.03
histone kinase activity (H3-T3 specific)
has substrate hht1
has substrate hht3  involved in chromosome passenger complex localization to kinetochore
should this be
histone kinase activity (H3-T3 specific)
has substrate hht1, hht3  involved in chromosome passenger complex localization to kinetochore
(added hht2 today also, so will check tomorrow, but all 3 now have the same  part_of/involved_in extension)

Do, needed to be comma separated, not pipe


Unecessary opinion and innaccuracy surrounding notes about classes

Describe the Issue
On the topic of ES6 classes in JavaScript, the section in question reads this sentence at the very top of the article:

It should be noted that the class syntax is just syntax, and not a full-fledged class-based implementation of an object-oriented paradigm, unlike in languages such as Java, Python, Ruby, etc.

This is entirely uneccesary, confusing to beginners, and incorrect by any existing definition of a class. While ES6 classes are certainly a syntax sugar for prototypal inheritence, it doesn't make them "not a full-fledged class-based implementation of an object-oriented paradigm."  This makes it a true class based implementation because it allows for the development & behavior of applications using object-oriented-paradigms with classes and all the features you would expect. And for any possible definition I could find of what a class is, it is the programatic behavior of using it that defines it, not any kind of underlying implementation.
This is especially problematic when Python is listed among the languages that do support a "full fledged class-based implementation." Python is also a runtime scripting language that is dynamically typed, with classes that are also entirely mutable, similar to JavaScript. So if someone happens to know Python then it is extra confusing.
Affected Page
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md
Steps to Reproduce
I don't know why the "Steps to Reproduce" section is here. This should be the template for a "content" error, not a challenge error.
Recommended fix or suggestions
Just remove this sentence as it does nothing to help anyone's understanding of programming or features of JavaScript as a language. It may be helpful to have a section about prototypal inheritence here and that syntax instead before showing the class based syntax so the student understands the underlying implementation. However, I don't feel that an extra section is nearly as valuable as it would be to just  remove this sentence.
Screenshots
No response

The quote is necessary because it sets the context for understanding the nature of classes in JavaScript. It is important to understand that the class syntax in JavaScript is just syntax sugar, and does not provide the full range of features and behaviors that are characteristic of true class-based object-oriented languages such as Java, Python, and Ruby.
In other words, the class syntax in JavaScript is just a way of writing code that looks like it is using a class-based object-oriented paradigm, but under the hood it is still using the prototype-based model of inheritance that is the fundamental basis of JavaScript. This is an important distinction to be aware of, because it can affect how you write and think about code when using classes in JavaScript.

Thank you for opening this issue.
I would be happy removing that sentence.

So if someone happens to know Python then it is extra confusing.

What I take from the sentence is Python is an Object-Oriented Programming language, unlike JavaScript. However, I have no understanding about what makes a language one of another 🤷♂

@ShaunSHamilton

What I take from the sentence is Python is an Object-Oriented Programming language, unlike JavaScript. However, I have no understanding about what makes a language one of another 🤷♂

If you're referring to what I said in the quote above, then what I meant was that Python classes operate very similarly to JavaScript prototypes/classes. If someone wanted to say that part of what makes a class-a-class would be OOP specific concepts like abstract classes or interfaces... well Python doesn't have those either. If someone wanted to say that what makes a class-a-class was it's compile time immutability... well Python doesn't have that either.
Wikipedia has two articles that compare and contrast class-based programming and prototype-based programming. And in the prototype topic, they explain the implementation details of inheritance in prototypal languages and then they compare it with this statement:

Compare to the class-based paradigm, where a "fruit" class would be extended by a "banana" class.

However, this once again recurses into more definitions because for what I can find, the concept of "extension" is a reference to syntax and to mental models of behavior. If the implementation of the extension behavior happens to be prototypal, that seems irrelevant to if it's actual true "extension."
I get that this topic & argument becomes really muddy in deep-definition-hell. However, that kind of lends to my point that the article just shouldn't make a claim here that JavaScript classes are "not a full-fledged class-based implementation of an object-oriented paradigm." From any definition I can find, classes are defined mostly by a programatic behavior in-utilization and partially by the right syntax. Both of which JavaScript now has.

to solve this issue, follow EthanStandel suggestion and remove the sentence.

If you would like to fix this issue, please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this.

Thank you for opening the PR @a2937, I have been bogged down with with work this month and haven't been very available to the OSS community.