Last.FM scrobbling not working

Hi, when I play songs on my Pi Music Box they are displayed as "playing now" in Last.FM but are not recorded in song history. I run Pi Music Box 0.7.0 rc 4 in Raspberry Pi 3 with HifiBerry DAC+. Pleaase let me know if you need any further information.

I am having the same issue. If I play via Spotify (ie from the Spotify application), then it scrobbles. But playing a Google Play album via the MusicBox interface does not scrobble.

Are you able to try another service or local file to verify if this is
specific to google music?
On Fri, 13 Apr 2018, 09:54 Aidan Barrington<EMAIL_ADDRESS>wrote:

I am having the same issue. If I play via Spotify (ie from the Spotify
application), then it scrobbles. But playing a Google Play album via the
MusicBox interface does not scrobble.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381070716,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA5DqPG1hNs2Fk762prvxn_jTTWGT1Uqks5toGfQgaJpZM4OCMZ_
.

I just tested with Spotify via MusicBox (ie not using the Spotify
application) and it did not scrobble.
On Fri, 13 Apr 2018, at 10:08, Nick Steel wrote:

Are you able to try another service or local file to verify if this is>  specific to google music?
On Fri, 13 Apr 2018, 09:54 Aidan Barrington,
<EMAIL_ADDRESS>wrote:

I am having the same issue. If I play via Spotify (ie from the
Spotify>  > application), then it scrobbles. But playing a Google Play album
via the>  > MusicBox interface does not scrobble.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381070716
,>  > or mute the thread
https://github.com/notifications/unsubscribe-auth/AA5DqPG1hNs2Fk762prvxn_jTTWGT1Uqks5toGfQgaJpZM4OCMZ_>  > .

— You are receiving this because you commented. Reply to this email
directly, view it on GitHub[1], or mute the thread[2].>

Links:

https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381074248
https://github.com/notifications/unsubscribe-auth/ACSDZtst-ESxCjsihtu-DykUH9IBUpsNks5toGr3gaJpZM4OCMZ_

Thanks. This is on my to do list for the weekend.

No worries. Let me know if there's anything else I can do to help.
On Fri, 13 Apr 2018, at 10:38, Nick Steel wrote:

Thanks. This is on my to do list for the weekend.

— You are receiving this because you commented. Reply to this email
directly, view it on GitHub[1], or mute the thread[2].>

Links:

https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381082377
https://github.com/notifications/unsubscribe-auth/ACSDZmuldGKIh639S9zSiAfvXQgYC3VPks5toHIbgaJpZM4OCMZ_

Can you confirm you are running v0.7.0RC6 (the latest release)?

It was the latest version when I installed it three weeks ago :)
Is there a way to check the version from the webapp? I can't see
it anywhere.
On Fri, 13 Apr 2018, at 10:55, Nick Steel wrote:

Can you confirm you are running v0.7.0RC6 (the latest release)?

— You are receiving this because you commented. Reply to this email
directly, view it on GitHub[1], or mute the thread[2].>

Links:

https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381086862
https://github.com/notifications/unsubscribe-auth/ACSDZs3Xpvxrd0ZIdY0FlDklPAp4i9xCks5toHYqgaJpZM4OCMZ_

The last version was released 25th March so you are probably good. One simple way to tell is by going to the websettings and checking the "Audio Output" drop down menu to see if there are entries for AudioInjector Stereo and AudioInjector Octo cards. It's also possible to read the version info from the file at /etc/issue but that's only possible if you log in (via ssh etc). But that's reminded me that I did want to add that to the webclient somewhere - thanks

I do indeed see AudioInjector Stereo and AudioInjector Octo.
On Fri, 13 Apr 2018, at 15:05, Nick Steel wrote:

The last version was released 25th March so you are probably good. One
simple way to tell is by going to the websettings and checking the
"Audio Output" drop down menu to see if there are entries for
AudioInjector Stereo and AudioInjector Octo cards. It's also possible
to read the version info from the file at /etc/issue but that's only
possible if you log in (via ssh etc). But that's reminded me that I
did want to add that to the webclient somewhere[1] - thanks> — You are receiving this because you commented. Reply to this email
directly, view it on GitHub[2], or mute the thread[3].>

Links:

https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/252
https://github.com/pimusicbox/pimusicbox/issues/428#issuecomment-381146116
https://github.com/notifications/unsubscribe-auth/ACSDZn9HQC8LB9Oc9VQZ1VBKzA6NCf5-ks5toLC6gaJpZM4OCMZ_

Last.fm still not working, I use latest build img (release candidate 7) on Rpi3B. A have correct login and password. I want use scrobble with playing local mp3 files. Please fix it.

I am going to need you to provide a debug log. Thanks.

Another user has since provided a debug log. This is not the same issue as the one originally reported, this one is new and much bigger. It doesn't look like the old version of Python available in v0.7.x is supported by the scrobbler extension's main dependency (pylast).  Time that I do spend on pimusicbox is better spent on the long, long, long awaited v1.0.0 release where this issue simply won't exist by virtue of using the latest python version.

I worked around this by manually downgrading pylast with pip install pylast<1.7


Shoutbox quick gift feature might not be able to determine max values

Description
I'd like it to have the same (user-side) behavior as the Custom Gift Amount feature. Where if the number is NaN or higher than the maximum allowed, it automatically sends the max allowed.
Implementation

[ ] Check if value is NaN
[ ] Determine max value giftable to user (site function?)
[ ] Use max value if NaN or exceeded

What does this mean? You want the Gift Button to determine if Value is within range of allowed gifts and stop button press?
Right now I just have it say the range in Hover over text box and then give the JSON error if its out of that range.

Sorry, just quickly jotted down this issue while the thought crossed my mind. I've updated the description to be clearer (aka. exist). I'll be trying to go over most of the upcoming features in the same way.

I have done some quick edits on the feature for these concerns:

Do a NaN and out of current JSON gift range on button as text is typed
Do a NaN and over max range of JSON gift = 1000 (max)
Do a under min range of JSON gift = 5 (min)

I do not have it linked to the site in any way to check for existing JSON range, as that value changes so rarely (if ever?) that the effort did not make sense to me.
I am merging code to my branch now if you want to open Developer branch on yours (if not already open).

Alright, I'll open up the develop branch, but I just pushed a new change that WILL cause conflicts pretty much universally. Using tslint wasn't working well, so I've implemented eslint, which forces/auto-fixes code to consistent style guides. Often just saving the file is enough to trigger a fix (in VSCode at least, it's not built into the Gulp workflow).

Hmm. I do not have VSCode installed yet, but guess I will look into it and using eslint. I am just working through Notepad++ currently as its quick and easy. Guess I will need to figure out that workflow.

It should still work without, but it will be throwing a lot of warnings for trivial things like spaces/tabs, missing semicolons, etc. I'll try to add eslint to the Gulp workflow so that it automatically fixes issues. I'm not too familiar with N++, but if it has plugins it's likely there's an eslint one.

I tried the plugin for n++, but it requires some XML config file for eslint it seems? idk. I installed VScode instead to at least run the code through for eslint for now. What would be best way to go about setting it up in VScode?

Currently trying to get it to run through the MAM+ package itself. Ideally, it'll run Prettier+eslint when files are committed, so it shouldn't matter what editor you use. Both are already included in the package.json, but installing the "ESLint" and "Prettier - Code formatter" extensions should enable them.

Feature now works acceptably by disabling the button on NaN and >1000. Forgot to close this with a commit message, oops.


Update Safari technology preview

[x] The commit message includes the cask’s name and version.
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] Checked there are no open pull requests for the same cask.
[x] Checked there are no closed issues where that cask was already refused.
[x] When naming the cask, followed the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.

Since the introduction of macOS Sierra, Apple split the Safari Technology Preview into 2 different versions, one for El Capitan, and one for Sierra. So I created 1 more cask and append them with the OS' version.

Keep them in one file and switch between versions with MacOS.version.
Example: https://github.com/caskroom/homebrew-cask/blob/0f28ebbd45e36f9c7192d1ee1e92b1f7d9c69583/Casks/sente.rb

should be ok now


chore: small gas optimization in a loop

This PR does a tiny gas optimization of the loop in the contract
It is safe to do unchecked ++i as the array we loop over will never be longer than uint256.

Thanks for this!


Adding erlang:process_info/2 statistics

Hello,
I'm working on troubleshooting a production Erlang app. I'd like to be able to send statistics about specific registered processes, gathered using process_info/2, and send them through StatsD. Specifically, I'm interested in {message_queue_len, MessageQueueLen}, {reductions, Number}, and potentially several of the memory and gc related stats, depending on if we spot the issue right away or not.
So far vmstats has worked well for me, and I'm very happy to code it up, add tests, configuration, docs, etc, and submit a pr for you review, but only if you're interested in taking it, of course :)
let me know what you think! Thanks!

How many processes would you expect to track? What happens if they go away? What if they come back? And so on?

Thanks for the super quick reply!
For my immediate use case, I can assume that the number of processes and the atoms of their registered names are known in advance, before starting the beam vm, which allows them to be passed as otp application parameters or something like that.
I've scoped out what I need in a test environment with Observer, and now I pretty much want a safer subset of that Observer data, to use in prod if possible. I've already created a little POC that makes some assumptions as follows:

there's about 20-40 processes I'm interested in, and I know their registered names
somehow a list of atoms is provided to vmstats

In the POC I've made, I go through that list of atoms, calling process_info/2 on each. I have another erlang term (known at VM start) with the stats I want to gather, and pass that list as the second argument to process_info/2. If the output of that is 'undefined', I do nothing, otherwise, I create a list with some sub-set of stats on some sub-set of those registered names. Basically, it's a monad. I pass the non-undefined pid from that process as gauges to statsd, meaning that the lack of information on a particular collection run, if a process disappeared, doesn't mean anything from StatsD's perspective, leaving a zero.
There's a couple of problems with that:

people other than me may not know what processes they care about, so a more general implementation I contribute here should either handle dynamically discovering processes or explicitly not handle it, leaving the list-of-atoms-that-are-registered-names approach
if the processes you're tracking include statsderl's ports than there's a potential for feedback I'd expect, depending on the stat collected, so my implementation could filter those out
calling process_info/2 20-40 times a second is not as good of an idea as I think it might be ;)


tf.data.Dataset.map does not support randomization

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Didn't try.
Source
binary
Tensorflow Version
tf 2.11.0
Custom Code
Yes
OS Platform and Distribution
MacOS
Python version
Python 3.8
It seems like tf.data.Dataset.map does not support randomization from numpy.
For the sample code, it gives constant output from the randint function call, but if you switch the function from numpy.random.randint to tf.random.uniform (toggle the comment), then you get good randomization behavior.
I am wondering if this is expected.
Standalone code to reproduce the issue
a = [{"key": i, "value": np.random.random()} for i in range(5)]
dict_of_list = pd.DataFrame.from_records(a).to_dict(
    orient="list")
keys = dict_of_list.keys()

dataset = tf.data.Dataset.zip(
    tuple([
        tf.data.Dataset.from_tensor_slices(dict_of_list[key]) for key in keys
    ])
)
dataset = dataset.map(lambda *x: {key: x[i] for i, key in enumerate(keys)})

for i in range(2):
    for b in dataset:
        print("before map:", i, b)

def test_function(x, f="key", low=0, high=100):
    #x[f] = tf.random.uniform(shape=(), minval=1, maxval=5, dtype=tf.int32) # this is randomized
    x[f] = np.random.randint(low=low, high=high) # this is not randomized
    return x

dataset = dataset.map(test_function)

for i in range(2):
    for b in dataset:
        print("after map:", i, b)

Relevant log output
before map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=0>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.9599878>}
before map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=1>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.5124935>}
before map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=2>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39335275>}
before map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=3>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.1416868>}
before map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=4>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39475128>}
before map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=0>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.9599878>}
before map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=1>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.5124935>}
before map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=2>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39335275>}
before map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=3>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.1416868>}
before map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=4>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39475128>}
after map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.9599878>}
after map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.5124935>}
after map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39335275>}
after map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.1416868>}
after map: 0 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39475128>}
after map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.9599878>}
after map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.5124935>}
after map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39335275>}
after map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.1416868>}
after map: 1 {'key': <tf.Tensor: shape=(), dtype=int32, numpy=44>, 'value': <tf.Tensor: shape=(), dtype=float32, numpy=0.39475128>}

Hello, the problem you are facing @kzhai is because in TensorFlow, the operations within the tf.data.Dataset.map() function are executed eagerly, meaning they are executed immediately during the iteration (as they are run). On the other hand, NumPy's random functions are executed eagerly by default outside the TensorFlow computation graph. This causes the random values to be generated only once and remain static throughout the execution of the tf.data.Dataset.map() function.
You can use the tf.py_function function- Wraps a python / NumPy function into a TensorFlow op that executes it eagerly. This allows you to execute the NumPy code as a TensorFlow operation.
See documentation of py_function here.

Change the NumPy function code in test_function() to:
x[f] = tf.py_function(lambda: np.random.randint(low=low, high=high), [], tf.int64)

OR you can use tf.numpy_function function - Wraps a python function and uses it as a TensorFlow op.
See numpy_function documentation here.

Change the NumPy function code in test_function() to:
x[f] = tf.numpy_function(lambda: np.random.randint(low=low, high=high), [], tf.int64)

This seems to work for me, hope it helps you a little to get started.
Here is a stack overflow discussion you might want to take a look at.

Hello @sushreebarsa, can you please let me know if I understood the problem correctly or not? and is the solution suggest by me above relevant to solving the issue? Thank you.

Hello, the problem you are facing @kzhai is because in TensorFlow, the operations within the tf.data.Dataset.map() function are executed eagerly, meaning they are executed immediately during the iteration (as they are run). On the other hand, NumPy's random functions are executed eagerly by default outside the TensorFlow computation graph. This causes the random values to be generated only once and remain static throughout the execution of the tf.data.Dataset.map() function.
You can use the tf.py_function function- Wraps a python / NumPy function into a TensorFlow op that executes it eagerly. This allows you to execute the NumPy code as a TensorFlow operation. See documentation of py_function here.

Change the NumPy function code in test_function() to:
x[f] = tf.py_function(lambda: np.random.randint(low=low, high=high), [], tf.int64)

OR you can use tf.numpy_function function - Wraps a python function and uses it as a TensorFlow op. See numpy_function documentation here.

Change the NumPy function code in test_function() to:
x[f] = tf.numpy_function(lambda: np.random.randint(low=low, high=high), [], tf.int64)

This seems to work for me, hope it helps you a little to get started.
Here is a stack overflow discussion you might want to take a look at.

@aadityab7 Thank you for your response in this thread.
@kzhai TensorFlow map() method of tf.data.Dataset used for transforming items in a dataset.  Randomization in tf.data.Dataset.map is not random if that comes from outside of TF.  It happens because the functions passed to tf.data transforms are traced and converted into eager execution. Incase of tracing the rd.random() and np.random.rand() are evaluated into constants.  You can use TF ops too for simplification. Another option is to wrap non-tensorflow code in tf.py_function, which executes arbitrary python code as a tensorflow op.
Thank you!


Rich Text Editor Component

Is your component proposal related to a problem? Please describe.
We have a text area right now, but no rich-text editor component.
Describe the solution you'd like
I am not the design guy. But there is https://tiptap.dev/ (based on prosemirror) that is supported in react
Describe alternatives you've considered
Have you considered iterating an existing component?
no
Additional context
https://mantine.dev/others/rte/ mantine has a rich text editor, they used QuillJS, I personally think Tiptap is better since it's very extensible and also supports rendering React comopnent inside editor.
If we decide to work on this, please assign this issue to me, I'd love to work on this, all I need is design for this. :-)

Hey @sereneinserenade could you please move this issue to the Discussions section? thanks 🙌🏻

Yes 👍


RFE: Summary doesn't provide quantiles

If someone sends a PR, it can be added.

@brian-brazil sorry to butt in, but wouldn't it make more sense for this issue to remain open? AFAICT quantiles support still doesn't exist, right?
Tagging it "help wanted" (and probably "enhancement") would make the situation clear for anyone thinking about contributing a PR.


Incorrect Rendering of Mardown Features that Require Tags

Hi,
First, great theme! Thanks for making this.
Now, I noticed that in the demo site, the other elements section of the Markdown Syntax Introduction article doesn't render properly. In my browser, the text just renders as plain content text. I observe the same problem in my personal website running Anubis. I know this isn't purely a browser issue because the elements do render with the correct formatting when I use or demo other themes. Do you have the same problem?
I'm very new to Hugo, so I have no idea what might cause this. But I'll try to look into it and let you know if I find anything.

Hi!
Thank you for pointing to this.
It happens because Hugo new versions changed markdown engine and html rendering are disabled by default now.
I enabled it for demo site and updated config example in README file.
If it's ok now, please, close issue :)
P.S. Please note that it take some time for demo site to update

Got it! Thanks!


Updating "You need to restore a deleted domain"

We changed the amount of days on which customers are allowed to restore an accidentally deleted domain from 7 to 30 days.

@cristhianu : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@cristhianu, Let's discuss this change offline. please send an email to me (Thomas Lin) with the change.
#please-close


Add the support for Djnago 2.2 - BOM-1045 [WIP]

added the drf-jwt package to try and replace djangorestframework-jwt (it doesn't support latest django versions (2.0+)).
relevant JIRA issue can be found here.

Closing in fav of https://github.com/edx/edx-drf-extensions/pull/99


Wrong type in deployment properties

File: themes/default/content/docs/reference/pkg/azure-native/resources/deployment.md
In the example at the top of the page, it shows the mode input as a string, but it should be an enum.
Current:
using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var deployment = new AzureNative.Resources.Deployment("deployment", new AzureNative.Resources.DeploymentArgs
        {
            DeploymentName = "my-deployment",
            Properties = new AzureNative.Resources.Inputs.DeploymentPropertiesArgs
            {
                Mode = "Incremental",
                Parameters = ,
                TemplateLink = new AzureNative.Resources.Inputs.TemplateLinkArgs
                {
                    QueryString = "sv=2019-02-02&st=2019-04-29T22%3A18%3A26Z&se=2019-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=<IP_ADDRESS>-<IP_ADDRESS>&spr=https&sig=xxxxxxxx0xxxxxxxxxxxxx%2bxxxxxxxxxxxxxxxxxxxx%3d",
                    Uri = "https://example.com/exampleTemplate.json",
                },
            },
            ResourceGroupName = "my-resource-group",
        });
    }

}

Should be:
using Pulumi;
using AzureNative = Pulumi.AzureNative;

class MyStack : Stack
{
    public MyStack()
    {
        var deployment = new AzureNative.Resources.Deployment("deployment", new AzureNative.Resources.DeploymentArgs
        {
            DeploymentName = "my-deployment",
            Properties = new AzureNative.Resources.Inputs.DeploymentPropertiesArgs
            {
                Mode = AzureNative.Resources.DeploymentMode.Incremental,
                Parameters = ,
                TemplateLink = new AzureNative.Resources.Inputs.TemplateLinkArgs
                {
                    QueryString = "sv=2019-02-02&st=2019-04-29T22%3A18%3A26Z&se=2019-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=<IP_ADDRESS>-<IP_ADDRESS>&spr=https&sig=xxxxxxxx0xxxxxxxxxxxxx%2bxxxxxxxxxxxxxxxxxxxx%3d",
                    Uri = "https://example.com/exampleTemplate.json",
                },
            },
            ResourceGroupName = "my-resource-group",
        });
    }

}

@viveklak Is this a bug in arm2pulumi, in that it doesn't know about enums?
Or perhaps in the central code generators?
Do we have similar issues in code generated by tools like tf2pulumi, the import command, etc?

@viveklak Is this a bug in arm2pulumi, in that it doesn't know about enums?
Or perhaps in the central code generators?
Do we have similar issues in code generated by tools like tf2pulumi, the import command, etc?

Program gen currently doesn't honor strict enums, see https://github.com/pulumi/pulumi/issues/6263. It is limited to azure-native and kubernetes since we actually model strict enums in these schemas while the bridged providers only support relaxed enums (so arm2pulumi is uniquely affected by this).

Gotcha, should this be closed as a dupe of https://github.com/pulumi/pulumi/issues/6263?

Gotcha, should this be closed as a dupe of pulumi/pulumi#6263?

Yup. Closing in favor of https://github.com/pulumi/pulumi/issues/6263


feat: nova 4 support

I adapted the code to make it work for the new nova release.
For the webpack configuration I used the same template as laravel nova (separate mix.js file)

It's not compatible with Nova 3 so it should be a major version change.

I don't think this PR is necessary since Nova 4 have a built-in slug field. This package should modify its readme to add this information I guess

Oh thanks didn't noticed this ^^


Update dependencies

This update is necessary because ffmpeg_kit_flutter_full 6.0.3 has an updated gradle version, which we need to complete our dependency update.

No worries, I'm gonna merge it after we merge the dependency updates branch


[WIP] Fix race condition in SerializeConcatHostBuffersDeserializeBatch

Signed-off-by: Andy Grove<EMAIL_ADDRESS>The following code had a race condition. The object was created with numRows = 0 and then updated. Another thread could access the object before the row count was set.
this.batchInternal = new ColumnarBatch(new Array[ColumnVector](0))
batchInternal.setNumRows(numRows.toInt)

I made some other changes:

Use AtomicReference for lock-free get/set on this shared object
Changed readObject to return an object rather than set the shared object as a side-effect

This closes https://github.com/NVIDIA/spark-rapids/issues/724

@andygrove can you elaborate more on the scenario you think is happening that triggers the race?

Curious, what does AtomicReference bring to the table that volatile doesn't solve?  It's using volatile underneath, and we're not leveraging the lazy set/get functionality.

I didn't realize that AtomicReference still used volatile underneath. I thought it was more efficient as a result but if that is not the case then I agree there is no point. I will revert.

Note that GpuCartesianProductExec has its own serializer which looks similar, not sure if we want a similar change there as well.

@andygrove can you elaborate more on the scenario you think is happening that triggers the race?

I'm not sure I fully understand the access pattern yet, but my process here was:

Make the issue very reproducible by running the broacast nested loop join test in a loop at the same time as running a heavy process to slow my desktop down. It consistently fails pretty fast (< 5 minutes)
Added debug logging and saw broadcast batches with row count of zero instead of 25, sometimes
I saw that we were creating the batch and making it available before setting the row count, and confirmed that changing that meant I could no longer make the test fail

build


Update helper script to include 2nd cheapest

Improved output message (was static before) and added possibility to set percentage for second_cheapest behaviour.
In the not-so-long-run we should port the script to python and improve it, but I don't have the time right now.

Carsten, feel free to merge in case you have nothing to add.


Drive Browser tests with playwright

Replaces the intern-powered functional test suite with one powered
by playwright.
The majority of the changes made aim to preserve the structure and
method names of the original intern suite. There are some
out-of-the-box Playwright features that could replace many of our
bespoke helpers, but that work should be done after the migration.
As a result, the majority of the changes involve a combination of:

replacing async "test ..."() { ... } with test("test ...", async ({ page }) => { ... }
replacing calls in the style of this.methodName with calls in the
style of methodName(page)

In some cases, exceptions were made. For example, most calls to
this.clickSelector were replaced with calls to page.click.
The unit test suite
Playwright's focus on a browser-powered test harness make it an odd fit
for our small suite of "unit" tests. Unlike their browser-test
counterparts, the unit tests do not have a history of flakiness.
This changeset defers migrating those tests off of intern for a later
batch of work.

cc: @keithamus


SPIKE: Investigate force submit

Description
For a few postmortems now, we've had an issue where the identification and fix for an issue were quickly identified but the issue persisted because the full merge to main and deploy to production took longer than anticipated. We do have a breakglass emergency rollback, but this only works to roll back the last commit and therefore can't be used if the rollback needs to happen on a slightly older commit.
Action items
This ticket will be used to track an investigation into the possibility of a force submit to bypass tests and checks on a merge to main for emergencies. In the postmortem meeting 11/30, we discussed the possibility of limiting this force submit option to rollbacks for now. We also discussed turning off non-test checks like SonarCloud, but given that our tests are by far the longest checks this might not make much sense.

Closing in favor of focusing on app rollbacks.


Calc needs an "info" variable of the current script name, so we can find included files located alongside it

So, for instance, if I run a .bat file in C:\Utilities (on the PATH) that references a .calc file there, which also has ":include" in it, the ":include" should be able to find other .calc files in that same location. Right now it doesn't seem to be able to find them....
Either it should just find them alonside the current file, or there should be an internal variable so we could do:
:include `${info.basedir}/blah.calc

Hmm, maybe this is because the ":include" processing doesn't handle "lib_junk, library" (that is, names separated by ", " [extra space in there]).

Another thought I had was to allow N strings on ":include", with the last one being a charset name if it matches, and the other N - 1 being file names.  Might be a bit weird with N names, and the last one NOT being a charset, unless the charset was separated with ";" instead:
:include 'file1', 'file2'; 'charset'

We could adopt one or the other of the platform or charset specifiers from Tester for the charset thing:
{{ charset }} or [< charset >] (I think I prefer the first, though it ISN'T the charset specifier).

Unfortunately at this time we don't really save the "current" file name, in that it is lost as we concatenate the content strings together. We do save the "inputDirectory" but that doesn't get changed for each file either.


thrift-ls: change binary name to mimic upstream

Description of changes
Change binary name and added another maintainer for thriftls.
Addresses comments in https://github.com/NixOS/nixpkgs/pull/340773#discussion_r1751531786
@callumio

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

I'm guessing your editor is configured to auto-format files upon saving.

@nbraud I formatted the file with nixfmt because i've had PR checks fail in the past  😅

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

1 package built:

thrift-ls


[SPARK-14390][GraphX] Make initialization step in Pregel optional.

What changes were proposed in this pull request?
Suppose a sendMsg function depends on the state of a edge's vertices to send messages, and those Pregel messages update such state. In this scenario, initialMsg will initially enforce the same message on all vertices, effectively removing a custom initialization one may have per vertex.
To deal with this situation, we must define a dummy initMsg (i.e. None), and all Pregel functions must be modified to handle this type of message. A simpler and less cumbersome solution is to make initMsg and the initialization step in Pregel optional.
How was this patch tested?
No new tests were added. Previous functionality was kept.

Can one of the admins verify this patch?

Jenkins, test this please.

Test build #54908 has started for PR 12159 at commit 611fe6b.

Test build #54908 has finished for PR 12159 at commit 611fe6b.

This patch fails Scala style tests.
This patch does not merge cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/54908/
Test FAILed.

Build finished. Test FAILed.

I've updated this PR to fix some style errors and add change I missed. Tests passed locally.

Jenkins, test this please.

Test build #55401 has started for PR 12159 at commit 4edccf3.

Test build #55401 has finished for PR 12159 at commit 4edccf3.

This patch fails R style tests.
This patch does not merge cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55401/
Test FAILed.

Build finished. Test FAILed.


fix some post-processing issues

Objective
fix some post-processing issues
Solution

make upscaling load existing color, and use Some(BlendState::ALPHA_BLENDING) when writing each camera's result to the output texture instead of just overwriting
also fix a minor issue with bloom where the output image's alpha was just the bloom alpha. this now needs to be maxed since we blend the output

todo:

[ ] maybe add a CameraBlendMode(Option<Wgpu::BlendState>) component to allow controlling the blend mode
[ ] maybe clear instead of loading on first upscale for a given target (wgpu docs say you must clear before loading, but it seems to work for me without ... but my ci seems to be crashing on linux examples)
[ ] check for performance impact

fix #7435
fix #7361
hopefully fix #5721 (again i haven't tested that)

Migration Guide

Using a clear color with alpha != 1 will lead to ghosting. make sure your clear color alpha is 1 on the first camera for a given target.
Previously where you would use ClearColor::None on secondary cameras, you will now probably want ClearColorConfig::Custom(Color::NONE), which will clear the texture to transparent
this may change the apparent sensitivity of bloom on secondary cameras. this is because previously the bloom was using the clear color from previous cameras, which will now not be present in the camera's texture. you can work around this by changing the sensitivity (i found turning up the knee to 4.0 seemed to be the same as a clear color of 0.1, ymmv) or re-ordering the cameras.

Just tested #5721 again and unlike #7460 this PR does not fix it in its current state.

Just tested #5721 again and unlike #7460 this PR does not fix it in its current state.

thanks for checking it. do you have a small reproduction?

Sure, this is what I've been testing it with:
use bevy::{core_pipeline::clear_color::ClearColorConfig, prelude::*, render::view::RenderLayers};

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_startup_system(startup)
        .run();
}

fn startup(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.spawn(Camera2dBundle {
        camera_2d: Camera2d {
            clear_color: ClearColorConfig::Custom(Color::WHITE),
        },
        ..Default::default()
    });
    commands.spawn((
        UiCameraConfig { show_ui: false },
        Camera2dBundle {
            camera_2d: Camera2d {
                clear_color: ClearColorConfig::None,
            },
            camera: Camera {
                order: 1,
                ..Default::default()
            },
            ..Default::default()
        },
        RenderLayers::layer(1),
    ));

    commands.spawn(NodeBundle {
        style: Style {
            size: Size::new(Val::Percent(100.0), Val::Percent(50.0)),
            ..Default::default()
        },
        background_color: BackgroundColor(Color::rgba(0.0, 0.0, 0.0, 0.5)),
        ..Default::default()
    });

    commands.spawn((
        SpriteBundle {
            texture: asset_server.load("branding/icon.png"),
            ..Default::default()
        },
        RenderLayers::layer(1),
    ));
}

if you change the second camera's clear color to clear_color: ClearColorConfig::Custom(Color::NONE), then i think it looks like you're describing. the top half is a bit darker, but only behind the sprite.
i mentioned that in the migration guide, but i think if we decide this is the right approach it might be worth changing the behaviour of ClearColorConfig::None so that it does a transparent clear (which is what Custom(NONE) does) instead of no clear, then this would work without change.

Ah, you're right. That does fix it. I do agree about maybe changing ClearColorConfig::None. Using ClearColorConfig::Custom(Color::NONE) when ClearColorConfig::None exists is very counter intuitive.

closing too for #7490


OpenAPI extensions are not supported

OpenAPI extensions are used by various tools such as documentation generators, API gateways, or code generators. Here is an attempt to list all of them: https://github.com/Mermade/openapi-specification-extensions
It should be possible to add extension properties to the endpoints documentation.

While thinking about this, one problem I have is that extensions can contain arbitrary JSON data. This means that an API described at the algebra level needs to be able to construct JSON values:
trait MyEndpoints extends endpoints4s.algebra.Endpoints {
  val foo = endpoint(
    get(path / "foo"),
    ok(emptyResponse),
    EndpointDocs()
      .withExtension("x-some-extension" -> Json.obj("bar" -> Json.str("baz"))) // HERE
  )
}

Currently, this is not possible because the algebra does not depend on a JSON library, and the philosophy of endpoints4s is to not introduce such a dependency.
So, I see two solutions.

We abstract over the JSON AST in the algebra, and the openapi interpreter fixes it to the ujson AST (this is what is currently used by the openapi interpreter),
We introduce our own (concrete) JSON AST.

Introducing our JSON AST would have the following benefits:

less abstract things,
this is an opportunity to also fix the default ujson AST which can’t represent some JSON numbers (it can only represent JavaScript numbers).

But it would have the following drawbacks:

yet another JSON AST,
we might loose some performance if we are not super careful in the design?

Thoughts?

In my playground project (similar project to this one), I also introduced a JSON AST. It allowed me to export the JsonSchema to various formats like circe, etc.
Also it would nice to be able to encode extra information about JsonSchema. Like a refined Int can have interval bounds, which is supported by JsonSchema. As well as a String can have a regex

This was the algebra I was using
trait JsonAlgebra[F[_]] extends JsonAlgebraFormatN[F] with Invariant[F] with Partial[F] with CoCartesian[F] {
  def int(bound: Range): F[Int]
  def float(bound: Range): F[Float]
  def double(bound: Range): F[Double]
  def long(bound: Range): F[Long]
  def string(description: StringDescriptor): F[String]
  val bool: F[Boolean]
  val cnil: F[CNil]
  def option[A](from: F[A]): F[Option[A]]
  def list[A](of: F[A]): F[List[A]]
  def set[A](of: F[A]): F[Set[A]]
  def vector[A](of: F[A]): F[Vector[A]]
  def seq[A](of: F[A]): F[Seq[A]]
  def nel[A](of: F[A]): F[NonEmptyList[A]]
  def enum[A](all: Set[A], show: A => String): F[A]
}

Would this JSON AST be used outside of extensions? If not I don't think the performance would be really a problem.
I like working with Endpoints4s, but it has a bit of a learning curve. More abstract stuff would mean more traits to mixin, and this already can get a bit confusing if you are new to this sort of working.

Would this JSON AST be used outside of extensions?

We could use it to encode and decode JSON entities, but this is not required (we can continue using the default ujson AST). I have an intuition that it should be possible to not use an intermediate AST (by using an abstract algebra like @Fristi shown), this is why I’m tempted to explore this approach as well.

I would be happy to help (I have some time starting next week), though I am not entirely sure how you guys envision the solution. Let me know if there is anything I can do to help

@bmeesters I think this blog post could be a good source of inspiration: https://www.lihaoyi.com/post/ZeroOverheadTreeProcessingwiththeVisitorPattern.html
So, most probably, we want to fix the type JsonSchema[A] in our interpreters to something that provides a Visitor[A]:
trait JsonSchema[A] {
  def visitor: Visitor[A] // Or maybe a `Visitor[Validated[A]]` so that we can produce nice error messages?
}

At the moment, it is not clear to me why the ujson visitor takes two type parameters, instead of just one: https://www.javadoc.io/doc/com.lihaoyi/upickle-core_2.13/latest/upickle/core/Visitor.html
(FTR, it was forked from Jawn, which uses only one type parameter: https://www.javadoc.io/doc/org.typelevel/jawn-parser_2.13/latest/org/typelevel/jawn/Facade.html)
Also, I must say that I’m still not sure how would this (parsing JSON entities to case classes without using an intermediate AST) interact with the current issue (defining an abstract algebra for constructing JSON values vs defining a refied AST).

Alright, I'll look into it (next week). I'll see if I can figure something out and get back to you.

So I looked a bit more into it, but I don't have that much time, and I think there are too many open questions now to be able to solve it this week. Instead I am going to take a smaller issue. So anybody feel free to start on this.

Just thinking out loud here (I'm still learning about both Endpoints4s and OpenAPI extensions), but could a design without Json at this level also work? For example, instead of defining the extension as Json object, would it be possible to define the extension as a data type and requiring a JsonCodec in the interface? Or would this overcomplicate things?
I imagine you could create something like this:
trait MyEndpoints extends endpoints4s.algebra.Endpoints with endpoints4s.algebra.JsonSchemas {
  case class Bar(bar: String)

  val barSchema: JsonSchema[Bar] = (
    field[String]("bar")
  ).xmap(Bar.apply)(unlift(Bar.unapply))

  val foo = endpoint(
    get(path / "foo"),
    ok(emptyResponse),
    EndpointDocs()
      .withExtension("x-some-extension" -> Bar(bar = "baz"))(barSchema) // HERE
  )
}

That’s an interesting idea! I think it would work, although it’s a bit convoluted.

I agree that it would be quite involved. The JSON AST approach sounds more elegant and has more benefits as you pointed out.

I think @agboom idea is interesting because is allows to decouple the question of defining a JSON AST from the question of supporting OpenAPI extensions. If I understand correctly, the JSON AST would have its own JsonSchema so if @agboom proposal was implemented as is, then JSON AST could be passed to withExtension instead of custom types like Bar in the example. In other words, both approaches would be possible.

I gave it a try using JsonSchemas (see https://github.com/mleclercq/endpoints/commit/ad6317cf50e4db3a9164e49ec3f303060335fe44).
Here is what it looks like in practice:
trait MyOpenApiExtensions extends openapi.ExtensionsFromSchemas {
  val `x-foo` = extensionType[String]("x-foo")
  val `x-bar` = extensionType[Int]("x-bar")
}

trait MyEndpoints extends algebra.Endpoints {
  val e = endpoint(
    get(path / "e"),
    ok(emptyResponse)
  )
}
object MyEndpointsDocumentation
    extends MyEndpoints
    with openapi.Endpoints
    with openapi.JsonSchemas
    with MyOpenApiExtensions {

  val api =
    openApi(Info("MyEndpoints", "1.0"))(
      e.withExtensions(`x-foo`("helloworld"))
    )
      .withExtensions(`x-bar`(42))
}

With this approach, extensions are not specified on the EndpointDocs but instead are specified on DocumentedEndpoints and OpenApi objects.


Event queue is not empty, internal error

Sometimes I get an error: java.lang.IllegalStateException: Event queue is not empty, internal error which invalidates state machine. I tried to research, but it did not become clearer to me
Questions:

What is the exact reason of that?
How to avoid it?
Is that really necessary to throw?

coroutines version.
Thanx. I got the idea. Will dig further.

Issue hopefully is gone

was it related to multithreading usage?

Since I used single thread dispatcher, i have not seen it. If It appear again, I definitely notify you


csv-diff: init at 1.1

Motivation for this change
This tool is useful for diffing CSV files. This can be handy for workflows that deal with frequently changing CSV files, such as git scraping.
Things done

Built on platform(s)

[x] 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, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

I was testing building this on a nixos install (as I'd originally only tested on macOS). I encountered problems building:

Missing setuptools-scm on dictdiffer. Adding this as an input seems to have resolve that problem.
Issues with pip satisfying the pytest-runner requirement that both projects had in setup_requires, even if I added it as a check input. Adding the patch lines to remove pytest-runner from both projects' setup.py resolved that, even if that feels a bit worse. My understanding is that package was used to integrate setup.py test with pytest and that is a deprecated approach and shouldn't impact a nix build if we use the pytest check hook anyhow.

This now builds for me on both macOS and NixOS, and I've re-verified basic functioning of the csv-diff binary.

Please rebase and resolve conflicts. Happy to review and merge it afterwards :)

Tentatively closing this since it's been about a year since onny asked about getting it moving again.
@davidwilemski I'm happy to reopen if you still want to get this landed.


Remove all uses of CF from the framework's interface outside of Linux or Darwin.

See https://forums.swift.org/t/formalizing-the-unavailability-of-core-foundation/40216 for details.

@swift-ci please test

@compnerd

@swift-ci please test


Pontoon documentation: update users page, add page for notifications

Fixes #205 and fixes #210.
For users.md, the page has changed enough that it makes more sense to just look at the new content, not the diff.
@mathjazz
Adding you to double check the notifications part, as I mostly copied over from the comments, but rephrased things in somee cases.

Forgot to mention: the profile.md is mainly a placeholder, so that I can have links and avoid repeating explanations. Filed #212 to get that page done.

One last thought on notifications: should we mention the Pontoon Add-On?

Thanks Bryan. I'm going to merge this, so that we can clean up the queue.
Filed #215 to track structural changes. For missing topic, we already have #206


luci-app-adblock commands hang

Hello,
I have found that when I operate adblock from luci-app-adblock, then all commands hang excepting actual start of /etc/init.d/adblock
Luci fires adblock command with "/bin/sh /etc/rc.common" before the actual command.
Examples:
Luci: I choose "Refresh Report" in "DNS Query Report" page.
2 processes appear:
11519 root      1328 S    /bin/sh /etc/rc.common /etc/init.d/adblock report + 50 false false
11526 root      1456 S    /bin/sh /usr/bin/adblock.sh report + 50 false false

end they never stop.
Manual: I run
/usr/bin/adblock.sh report + 50 false false
it starts end finishes properly.
The same with other commands from Luci, like "reload" or so.
I am not sure but while actual file /etc/init.d/adblock already has the init line inside as:
#!/bin/sh /etc/rc.common
maybe Luci also should run those commands without:
/bin/sh /etc/rc.common
in front, the same way when I run them manually?

Which router model? Which adblock version? Which luci version? Please provide the output of /etc/init.d/adblock status. Thanks!

No feedback & not reproducible - close this by now.


Rest APIs Backward Compatibility

Issue #, if available:
#11
Description of changes:
CheckList:
[ ] Commits are signed per the DCO using --signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #15 (e0aee49) into main (d41f662) will decrease coverage by 0.04%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               main      #15      +/-   ##
============================================
- Coverage     76.87%   76.83%   -0.05%
- Complexity     1544     1555      +11
============================================
  Files           199      199
  Lines          8325     8395      +70
  Branches       1323     1323
============================================
+ Hits           6400     6450      +50
- Misses         1228     1240      +12
- Partials        697      705       +8

Impacted Files
Coverage Δ
Complexity Δ

...pensearch/indexmanagement/IndexManagementPlugin.kt
89.13% <ø> (ø)
12.00 <0.00> (ø)

...statemanagement/resthandler/RestAddPolicyAction.kt
80.00% <100.00%> (+6.66%)
8.00 <1.00> (+1.00)

...temanagement/resthandler/RestChangePolicyAction.kt
95.00% <100.00%> (+1.66%)
7.00 <1.00> (+1.00)

...temanagement/resthandler/RestDeletePolicyAction.kt
85.71% <100.00%> (+3.89%)
5.00 <1.00> (+1.00)

...exstatemanagement/resthandler/RestExplainAction.kt
100.00% <100.00%> (ø)
5.00 <1.00> (+1.00)

...statemanagement/resthandler/RestGetPolicyAction.kt
96.66% <100.00%> (+1.01%)
6.00 <1.00> (+1.00)

...atemanagement/resthandler/RestIndexPolicyAction.kt
95.12% <100.00%> (+0.67%)
9.00 <1.00> (+1.00)

...temanagement/resthandler/RestRemovePolicyAction.kt
93.75% <100.00%> (+2.84%)
8.00 <1.00> (+1.00)

...t/resthandler/RestRetryFailedManagedIndexAction.kt
85.71% <100.00%> (+4.46%)
7.00 <1.00> (+1.00)

...atemanagement/step/snapshot/AttemptSnapshotStep.kt
90.27% <100.00%> (ø)
10.00 <0.00> (ø)

... and 15 more

Continue to review full report at Codecov.

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


Requesting custom thumbnail size does not work

Hi,
I use OneDrive for Business and its Graph API.
I am trying to get a custom thumbnail size following the documentation but I am getting a strange error.
My request looks like:
https://graph.microsoft.com/v1.0/me/drive/items/<item_id>/thumbnails/0/c32x32_Crop/content
and the response is:
{   "error": {     "code": "BadRequest",     "message": "Unsupported segment type. ODataQuery: users/<user_id>/drive/items/<item_id>/thumbnails/0/c32x32_Crop/content",     "innerError": {       "request-id": "<request_id>",       "date": "2017-11-17T09:41:57"     }   } }
If I try to retrieve thumbnails with "select" query parameter and its value "c32x32_Crop" I will get empty values.
Is there any special permission required by the API or it can be a bug? (It works correctly for OneDrive Personal API)

Unfortunately ODB has a limitation that blocks select=c32x32_Crop from working, but direct selection via a path segment is expected to work. This looks to be an issue in Microsoft Graph itself (as the same request made directly against our service works as expected). We'll forward this issue on to them and hope that we can get a quick resolution.

Just to update this, while we're still waiting on Graph to support the direct selection via a path segment we were able to unblock the use of select=c32x32_Crop against ODB. This will allow you to access custom thumbnails via Graph using the select syntax.


Fix a small missing word from the docs

added the sentence "new configuration object" in https://ui.gluestack.io/docs/styling/variants

Thanks for your contribution. This issue was resolved by internal team.


Need information/confirmation on Azure Relay (zonal by default ?)

Need information/confirmation on Azure Relay https://learn.microsoft.com/en-us/azure/azure-relay/ status (zonal by default ?)

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 1860979b-0bcb-08cd-5674-b5e894a03f72
Version Independent ID: 17ba109c-a2cf-5c56-17bc-56a8aaebf067
Content: Azure services that support availability zones
Content Source: articles/reliability/availability-zones-service-support.md
Service: reliability
Sub-service: availability-zones
GitHub Login: @anaharris
Microsoft Alias: anaharris

@cbezenco
Thanks for your feedback! We will investigate and update as appropriate.

@cbezenco
Thank you for bringing this to our attention.
I've delegated this to content author, who will review it and offer their insightful opinions.


How to --dump to file?

It looks like --dump only prints the found links to the console.
I would like to dump the extracted links to a file to further work with it.
Not sure how to do this with the action.
output: is not considered, or I'm not sure of the actual location 🤔

Yeah, that's a bug in lychee then. It should consider the output setting. Let me move that over to the main repo.


Speckles in the canvas

I have an SKContol in a Windows Form. After drawing the bitmap to the canvas and Invalidating the control, I am often seeing speckles in the image similar to this:

This happens on the PaintSurfaceEvent. I also see these random speckles when drawing an empty bitmap to the canvas. Here is the code I use to draw to the bitmap to the canvas in the paint event:
Dim canvas As SKCanvas = e.Surface.Canvas
canvas.Clear(SKColors.White)
Dim bitmap As New SKBitmap(e.Info.Rect.Width, e.Info.Rect.Height)
canvas.DrawBitmap(bitmap, 0, 0)

I can also verify that the speckles also appear on Android device too, not just windows.
Is there a work around to get rid of this, or is this a problem with drawing?

This is because both the surface canvas an the bitmap needs to be cleared. In you code, you are clearing the canvas, and then drawing a uninitialized bitmap.
This may just be because this is just a snippet, but what is the reason for creating the bitmap?
If the drawing in the bitmap is not transparent, such as with clear white, then you don't need to clear the surface - saving on that processing.

Thanks for the reply. The reason for creating the bitmap is so that I can draw multiple images and vectors to it. Think of a map, where the user loads and elevation layer, then an aerial image, the some vector layers such as a boundary or a road. On top of that, another bitmap is drawn with the gps cursor (see example above in my previous post) which gets refreshed every second depending on how far the user has moved.
In my actual code, I initialize the bitmap separately and then draw all the map layers to it, Then I draw the final bitmap to the canvas. I apologize for not showing the entire code above, but I can reproduce the same results with the code below:
`Protected Overrides Sub OnPaintSurface(e As SKPaintSurfaceEventArgs)
Dim clip As New Rectangle(e.Info.Rect.Location.X, e.Info.Rect.Location.Y,
e.Info.Rect.Size.Width, e.Info.Rect.Size.Height)
If clip.Width < 1 OrElse clip.Height < 1 Then Return 'Nothing to paint
    Dim bitmap As New SKBitmap(clip.Width, clip.Height)
    Dim canvas As SKCanvas = e.Surface.Canvas
    canvas.Clear(SKColors.White)
    canvas.DrawBitmap(bitmap, 0, 0)

    MyBase.OnPaintSurface(e)
End Sub`

I did a bitmap.Erase(SkColors.White) and it does seem to help considerably. But this also seems a bit redundant to have to do this on a newly created bitmap.
After further testing, the issue is better with bitmap.Erase method, but I still see some subtle speckles near the top of the canvas

Hi, I confirm this issue as explained in https://github.com/wieslawsoltes/Svg.Skia/issues/28
While it is expected a newly initialized element in C contains random memory you expect the contrary in C#, SKCanvas should be clear on new.
Regards

Moving this to 2.80.3 so we can make sure the initial drop in of the canvas is nice and clean.


Harden host ID generation to allow characters that are valid in function app name

From @mathewc in issue: https://github.com/projectkudu/AzureFunctionsPortal/issues/883

The Function runtime imposes some restrictions on the format for HostId, and HostId is derived from the Function App name by default. E.g. runtime restrictions on HostId are here.

This can result in issues where someone can successfully create a Function App in the portal, but it fails at runtime - we've had cases of this.

Ideally we'd find a way to prevent names we know are going to fail. This is somewhat complicated by the fact that we have logic that derives the HostId from the Function App name here.

The right fix is to change the script host to handle these characters. Otherwise, we need to do the following:

Change the Web Apps RP to disallow these function app names at the API layer
Update Ibiza and FunkyUX to validate
Update Visual Studio

Many of the character restrictions on HostID are due to the fact that host ID is used in the names of several different storage artifacts (e.g. blob names, queue names, etc.). We can't break any of that - lots of downstream assumptions are made on the current longstanding restrictions.

@mathewc Is there a way to escape these illegal characters?  If not, we have to start a fairly big chunk of work to disallow them.

@lindydonna  can you provide some examples of Function-App name? Was there any customer pushback?

Won't fix for now


feat: rename deposit receipt to deposit request for Pectra

EL uses the term "deposit request" while CL uses the term "deposit receipt" as per current devnet 0 spec. See ethereum/consensus-specs#3757 for more context
This PR renames deposit receipt to deposit request for:

Internal reference
ssz types

:tada: This PR is included in v1.22.0 :tada:


[V6] Introduce PlatformFactory to run Server with any library (express, koa, fastify)

Information

Version: 5.x
Type: Issue/Story

Description
As a developer we want to bootstrap application on Express, Koa or Fastify
Example
import {PlatformExpress} from "@tsed/express";
import {Server} from "./Server";

async function boostrap(settings = {}) {
    const server  = await PlatformExpress.bootstrap(Server, settings)

    await server.listen() // listen accept a custom port to override default port
}

And the application:
import {ApplicationSettings} from "@tsed/common";

@Configuration({ })
export class Application implements $BeforeRoutesInit {
   @Inject()
   app: PlatformApplication;

   $beforeRoutesInit() {  // eq $onMountingMiddlewares
       this.app.use(MyCustomMiddleware)
       // this.app.get("/") etc..
       this.app.raw.engine()
       this.app.raw.set()
   }
}

Lifecycle

contructor
$onInit (platform)
[LOADING PROVIDERS AND BUILD CONTROLLERS]
$onInit (providers)
$beforeRoutesInit (platform)
$beforeRoutesInit (providers)
[RESOLVE routes and mount routers to PlatformApplication]
$afterRoutesInit (providers)
$afterRoutesInit (platform)
$onDestroy

Acceptance criteria

[x] Server run with the given platform

Works done and available as hidden feature on v5


Scroll to top on flaky test

Let's try scrolling to the top on this flaky test where the global search is apparently stuck open. By scrolling to the top we should be able to get a failure screenshot that has the global search visible, which may help with further debugging.

Wow, that'd be really great if GHA can store and serve (for free) the functional test failure snapshots. Nice job finding that option.


[openSUSE] Skip compiling internal qdldl when qdldl dependency already install?

Hello,
I am trying to package osqp and qdldl.
I found that osqp without bundled qdldl submodule (and probably others submoldules) does not able to compile.
I tried packaging qdldl separately, then package osqp (without bundle) with qdldl as dependency. ospq could not detect install qdldl.
Do you think it is better to just package osqp with qdldl bundle or use qdldl separately?
Thank you.

Hi @kevinsmia1939, we had a related discussion in https://github.com/oxfordcontrol/osqp/issues/85 . As far as I remember, for various reason only the use of the internal qdldl was supported, but I do not know if this is still the case now.

Hi @kevinsmia1939, we had a related discussion in #85 . As far as I remember, for various reason only the use of the internal qdldl was supported, but I do not know if this is still the case now.

I think it is still the case, I could not figured out how to make osqp use external qdldl.
I think I might have to try package osqp with bundled qdldl for now.
Thanks.


Error in import of "from pyqvd import QvdDataFrame"

Hi, I try to work with this libray, unfortunately I got below error message on loading the lib
Error:
Exception has occurred: TypeError unsupported operand type(s) for |: 'type' and 'NoneType'   File "/home/user/biap_pocs/biap_qlik_qvd_worker/qvd.py", line 3, in <module>     from pyqvd import QvdDataFrame TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
Environment:
Python 3.8.12 on a GCP-Environment
(currently not possible to update to newer version)
Operating System:
Linux-Debian
Source-Code:
import pandas as pd
import argparse
from pyqvd import QvdDataFrame # error raised here

My thoughts
It seems it could be a Python version issue. Found this Git-Repo: TypeError: unsupported operand type(s) for |
It is possible to provide a version for Python 3.8 ?

Hi there, the latest PyQvd release (v1.0) is supposed to support Python from version 3.8. The error occurred directly when importing the module, right? I'll check it and try to reproduce your error.

The problem was that the source code used the | operator for union typing, like str | None. This feature isn't supported in Python 3.8. For backwards compatibility, we switched to explicit typing with Union[str, None], which is also supported by Python 3.8. The problem should be fixed with the latest patch release (v1.0.1) with commit 2c0ae625b9f621a2766f46ba6a1c20d9410e98db.

ah ok - sounds good - will give it try
Thanks a lot for this very quick response


Default font does not render properly

Describe the bug
Currently the default font renders as solid bars that are the max height and width of the character.
To Reproduce
Steps to reproduce the behavior:

use the DrawText() method to render text using the default font to the screen

Expected behavior
Text should render with the Raylib default font

After troubleshooting and looking into the texture in RenderDoc I discovered that the image data was not being properly loaded into the buffer.
I also discovered that this texture directly impacts the fragment shader. Thus I will be closing issue #14 and tracking both issues here.

After digging a bit more columns 31, 63, 95, and 127 of the texture buffer are loading incorrectly causing lines to cut through the characters that fall on those columns.

Fixed with commit b37cde0


Ubuntu

Ubuntu
Ubuntu is a general-purpose, free-as-in-speech, zero-cost operating system based on Debian GNU/Linux, designed for use on desktops, laptops, servers, and mobile devices.
The thousands of software packages available for Ubuntu are organised into four key groups or components: main, restricted, universe and multiverse. Software is published in one of these components based on whether or not it meets our free software philosophy, and the level of support we can provide for it.
Design Principles
There should be exactly one recommended way to accomplish a task in the default installation, to promote consistent documentation and support
Applications should work immediately upon installation, without requiring additional steps, whenever possible. This "instant gratification" makes users more productive and allows them to explore the software choices available
Features should be easily discoverable, or they will go unused
The system should fit on a single CD, to make it available to the widest audience (no longer valide since ubuntu 12.10)
Dialogs should conform to the GNOME Human Interface Guidelines (HIG) to promote ease of use
User-visible text should be written in plain language so that non-technical users can understand what the system is telling them
System boot
The boot process of an Ubuntu system starts with the boot loader (typically GRUB) which loads the kernel and an initial ramdisk (initramfs). The initramfs sets up the console, usually including a splash screen, starts the udev daemon to process device events from the kernel, finds and mounts the root filesystem, and chains to it, mounting some important virtual filesystems along the way.
Once the root filesystem is mounted, upstart takes over as PID 1, and begins to start tasks specified in /etc/init/. While this will change in the future, at the moment these tasks are essentially shims for System V init scripts and runlevels, defined in /etc/rc*.d/. In the default configuration, upstart runs the contents of /etc/rcS.d/, which sets up hardware and filesystems, and then runs the contents of /etc/rc2.d/, which starts a variety of system services.
In a desktop installation, one of the services launched is an X display manager, which presents a login screen. Otherwise, the user may log in on a virtual console using one of the getty instances started by upstart.
Packages
Ubuntu packages are created in the Debian format. That is, source packages consist of a .dsc control file, plus either a .tar.gz tarball or an .orig.tar.gz tarball plus a .diff.gz patch, while binary packages are .deb files (or .udeb files for specialised use by the installer). For further information, see the dpkg manual pages and the Debian policy manual's sections on binary and source packages.
The Ubuntu policy manual applies, and is maintained collaboratively by the Ubuntu core developers. It is derived from the Debian policy manual, and technical standards are similar to those in Debian. Different standards apply to some subsystems.
Ubuntu-specific changes are logged in debian/changelog as usual, with ubuntu1, ubuntu2, etc. being appended to the version number, or -0ubuntu1 appended to the upstream version in the event that a new upstream release is needed in Ubuntu. The presence of ubuntu in a version number means that the package will not be automatically synced from Debian, and must have changes merged by hand.
Ubuntu was originally initialised by taking a copy of Debian unstable, and new versions are merged from Debian at the start of every Ubuntu release cycle in order to be able to make good use of the expertise and effort available in the Debian development community. Ubuntu developers are expected to bear this process in mind when making changes.
Package Control
Seeds are the lists of packages we want to include in the distribution. We have seven primary seeds, minimal, boot, standard, desktop, ship, live, and supported, that define what goes into the archive's main component.
Boot
The boot seed lists default kernels and boot loaders required for each processor architecture. It is kept separate from the minimal seed for technical reasons, chiefly that having debootstrap install default kernels and bootloaders reduces the flexibility of the installer to choose alternatives.
Minimal
The minimal system provides enough packages to install a basic command-line system, boot, and install more packages. It also contains any packages that should be available the first time the system boots after installation (for example, hardware detection blacklists). It does not provide X11 or any services listening on any non-localhost ports.
Packages in minimal should be:
absolutely stable, standard tools that we think will be around forever and we are prepared to maintain even if the whole world moves on
useful diagnostic tools that one can use to get the system and network up and running, and are valuable to have "always there" in case of need
widely applicable (in the Lowest Common Denominator sense) to every installation, desktop or server
A "minimal" system is not expected to be useful for any particular purpose; it's simply there for bootstrapping of more interesting systems.
Standard
The standard system provides a solid foundation for a desktop or server without providing X11 or any services listening on any non-localhost ports. This seed package list, once the complete dependency set has been added, provides that system.
The criteria for packages in standard are similar to those for packages in minimal, but we concentrate more on the Greatest Common Factor than on the Lowest Common Denominator: the standard system includes packages that make up a traditional comfortable UNIX system, a variety of networking clients and tools, advanced filesystem support, and various diagnostic utilities.
A "standard" system is not expected to be useful for any particular purpose. It's simply the minimal working system that we will support. It should be a platform that one can quickly get working, and on top of which one can construct a useful collection of services. Typically, servers would start out life as a "standard" system, and the system administrator would then add specific services and packages as needed.
###Desktop
The Desktop seed, minimally summarised, ought to be a checklist of desktop features that would appeal to a user or procurer. Our default Desktop install should include every single package mentioned in the Desktop seed. Thus, the seed should be as simple as possible without being too simple, and be directly focused on solving desktop problems.
[ One of the valuable design choices in Debian is that if you install a daemon, it is assumed that you intend to use it. If you don't want to run it, don't install it. Requiring that a daemon be installed but not wanting to run it is a rarely-by-few use case, so Debian doesn't optimise for it. Rightly so. We ought to look at our Desktop seed in a similar light. If we put it on the list, it should be installed. If we install it, assume that it will be used. In some cases, this will be "running by default", but in most cases on the desktop, it just means "available or visible by default". ]
Resource

[ ] https://wiki.ubuntu.com/UbuntuArchitecture, https://odm.ubuntu.com/uhs/2011/Ubuntu System Architecture.pdf
[ ] https://odm.ubuntu.com, https://ubuntu.com/licensing, https://ubuntu.com/community/mission
[ ] https://ubuntu.com/blog/static-code-analyzer-for-ubuntu
[ ] https://askubuntu.com/questions/187888/what-is-the-correct-way-to-completely-remove-an-application
[ ] https://itsfoss.com/apt-command-guide
[ ] https://wiki.ubuntu.com/LightDM
[ ] https://askubuntu.com/questions/7858/why-is-ksoftirqd-0-process-using-all-of-my-cpu
[ ] https://en.wikipedia.org/wiki/Bodhi_Linux

Speed Up Ubuntu

[ ] https://itsfoss.com/speed-up-ubuntu-1310

Speed Up Ubuntu

[ ] https://itsfoss.com/speed-up-ubuntu-1310

Start Ubuntu in CLI
sudo nano /etc/default/grub // Open grub and paste the two lines below
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console
sudo update-grub Execute
sudo systemctl set-default multi-user.target Execute
If anything goes wrong and unable to boot, then edit in recovery mode:

With BIOS, press and hold the Shift key, which will bring up a GNU GRUB menu screen.
With UEFI, press the Esc key to get to the GNU GRUB menu screen.

Issue with Docker on Ubuntu

Daemons
tracker-miner-f found this running and wanted
to know it's purpose. I did not need it so I just
removed it.

http://manpages.ubuntu.com/manpages/trusty/man1/tracker-miner-fs.1.html
https://ubuntuforums.org/showthread.php?t=2217610
https://askubuntu.com/questions/346211/tracker-store-and-tracker-miner-fs-eating-up-my-cpu-on-every-startup
https://www.linuxuprising.com/2019/07/how-to-completely-disable-tracker.html

https://wiki.ubuntu.com/UbuntuDevelopers#Ubuntu_Core_Developers

https://unix.stackexchange.com/questions/127432/logging-ssh-access-attempts
https://serverfault.com/questions/130482/how-to-check-sshd-log
Note that the default configuration on Ubuntu is to NOT log ssh logins to the /var/log/auth file. This is the INFO logging level.
If you want to have it include login attempts in the log file, you'll need to edit the /etc/ssh/sshd_config file (as root or with sudo) and change the LogLevel from INFO to VERBOSE.
After that, restart the sshd daemon with
sudo service rsyslog restart
After that, the ssh login attempts will be logged into the /var/log/auth.log file.

Switching from CLI to GUI

Simply comment #GRUB_TERMINAL=console
sudo systemctl set-default graphical.target
sudo reboot

If desktop is uninstalled, reinstall ubuntu-desktop or what ever desktop that you are using.
https://unix.stackexchange.com/questions/326352/how-to-switch-from-cli-to-gui-ubuntu


Change configuration names for optimizations, arrays, etc..

There are a variety of options available in the opimizations and collections that were previously handled by dask.set_options, but are now under dask.config.set like fuse_ave_width and array_plugins.  Do we want to change these names and place them into a configuraiton namespace like optimization.fuse.width and array.plugins ?

@mrocklin are you still interested in namespacing these options ?  @jcrist you recently worked on config name changes.  Do you have opinions here ?

Yes, I'm still in favor of this happening.
We would need to also add aliases for the old versions.
https://github.com/dask/distributed/blob/2d431399ee32aef85f4ccd386623d599fa1ca50c/distributed/config.py#L24-L55
Probably we should think more carefully about how we want to structure things like ideal partition size and so on in between collections.

cc @jcrist


doc: add docs

A series of markdown files under the docs/ directory that helps to explain the repository.

getting started
commit
commands
pull request

@barsinister hold off until I get into to marge this request.  Have to make a change before we merge into main.

@barsinister @hellogoodbyte this can now be reviewed and squashed once approved


NETOBSERV-1076 Fix CR stuck in Updating state [1.3 backport]

Backport of https://github.com/netobserv/network-observability-operator/pull/374
The problem was that copying certificates across namespaces was done on every reconciliation call, with or without digest change. This is not a critical issue as it would only trigger a no-op update, but it was screwing up our "updating" state detection.
There's actually two changes in this commit:

Fixing the "Updating" flag, so that it's not set when an update is actually performed (we need to fetch back the object (from cache) and check if the resource version was actually modified)
Fixing the certificate watching process to avoid unnecessary tries to update

Also:

Add / fix tests
Modify some logs to make important information more visible
Makefile change for building manifest without error (unrelated)

/lgtm

/ok-to-test

@Amoghrd I think we didn't backport to 1.3 branch the various fixes that we did regarding the ok-to-test workflow ... so maybe it can be verified post-merge, on the downstream build directly? (given you verified already the PR on main)

/label qe-approved

/approve


decompiled "pow" assembly code issue

When browsing some Ghidra 10.1.1 generated decompiler output I came across this example that did not make
much sense to me:
  d1 = (float10)1.442695040888963 *
       (float10)0.6931471805599453 * (float10)DOUBLE_00430088 * (float10)param_1[0x58];
  d2 = ROUND(d1);
  d1 = (float10)f2xm1(d1 - d2);
  d1 = (float10)fscale((float10)1 + d1,d2);

looking at the original x86 assembly (see below) I think that the original C code would have actually read (I confirmed that by tracing at the actual FPU registers in the debugger):
d1 = pow(DOUBLE_00430088, param_1[0x58]);
It would be a nice-to-have if Ghidra's handling of respective pow() implementation patterns could be improved.
However the serious bug is that Ghidra completely ignored the effect of the FYL2X instruction, making it look as if all those factors where simply multiplied for the initial d1 assignment - which is incorrect. This is a problem since it undermines the confidence that a user can have into respective decompiler output: I need to know when generated C code actually performs the function of the original assembly and when there is stuff that I need to look into manually (like the "fscale" above - which is totally fine).
        0040aed5 dd 9e e8        FSTP       qword ptr [ESI + 0x2e8]
                 02 00 00
        0040aedb d9 ed           FLDLN2
        0040aedd dd 05 88        FLD        qword ptr [DOUBLE_00430088]
                 00 43 00
        0040aee3 d9 f1           FYL2X
        0040aee5 d8 8f 60        FMUL       dword ptr [EDI + 0x160]
                 01 00 00
        0040aeeb d9 ea           FLDL2E
        0040aeed de c9           FMULP
        0040aeef d9 c0           FLD        ST0
        0040aef1 d9 fc           FRNDINT
        0040aef3 d9 c9           FXCH
        0040aef5 d8 e1           FSUB       d2[0],d1[0]
        0040aef7 d9 f0           F2XM1
        0040aef9 d9 e8           FLD1
        0040aefb de c1           FADDP
        0040aefd d9 fd           FSCALE
        0040aeff dd d9           FSTP       d1[0]

See also: #2881, #2434.


Update post-pagination.html

Can't believe this slipped through the cracks! Sorry for the delay, thank you for contribution @skvale !

@all-contributors please add @skvale for code


Fix data flow of js object notation

https://github.com/joernio/joern/blob/518992dd540498b51f7acd1e66e57bb80c66be8a/dataflowengineoss/src/main/scala/io/joern/dataflowengineoss/passes/reachingdef/DdgGenerator.scala#L108
if call.name != Operators.fieldAccess

This condition is blocking the data flow from inside object notation to outside. Here is the test case.
    val cpg: Cpg = code(
      """
        |const a = { b : 47 } ;
        |fn(a);
        |""".stripMargin)

    val sink = cpg.call.nameExact("fn")
    val src = cpg.literal("47")
    sink.reachableBy(src).nonEmpty shouldBe true

{b: 47} is traslated to {tmp.b = 47; tmp}.
The dataflow algorithm should first find tmp, then reach tmp.b and finally reach 47.
But it's blocked by if call.name != Operators.fieldAccess and stopping at tmp.b

Actually, let me merge this. I'll cleanup the tests in a follow-up PR.

@fabsx00 Should we split Block into 2 kinds of block: StatementBlock for method body and ExpressionBlock for lowering like js object nation？And deal with them separately？


Enable IBM Block Storage via SCBE as Ubiquity backend

This change is

Reviewed 1173 of 1173 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Implement flexible evaluation API

Currently there is no easy method for conducting an evaluation procedure for an arbitrary dataset to test the efficacy of the compression procedures. We need to implement simplified APIs that allow for easier evaluation.

yeah openaieval is so clunky...


Automated cherry pick of #2994: Allow operations on felixconfigurations in tigera

Cherry pick of #2994 on release-v1.32.
#2994: Allow operations on felixconfigurations in tigera

/merge-when-ready delete-branch

OK, I will merge the pull request when it's ready, leave the commits as is when I merge it, and delete the branch after I've merged it.

I'm sorry but I failed delete the branch after merging the pull request.


Fix typo in docstring in client.py

Fix typo in client.py causing broken link in the docs.

CLA agreed!

thank you for your contribution! We will update the documentation with the next release!


Replace homepage 'Community Blogs' section by the Blog's page. Issue 102

Closes: #102
Describe the changes you've made
Replaced the homepage 'Community Blogs' section with the Blog's page.
Type of change
What sort of change have you made:

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

Checklist

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented on my code, particularly wherever it was hard to understand.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] Any dependent changes have been merged and published in downstream modules.

Screenshots (if applicable)

Original
Updated

Code of Conduct

[x] I agree to follow this project's Code of Conduct

@krishguptadev I had not removed the previous code commented it because not present anywhere in the repo.

@shuklaritvik06 Thank you for merging it. Is it valid for hacktoberfest?


seal

it smudge

@OverLordGoldDragon  Thanks for reporting it.
The result on this image is not good 😞
We will try to improve it~

@OverLordGoldDragon   I tried your image on SwinIR Colob demo. It seems BSRGAN and SwinIR are a little better.
realesrgan

bsrgan

swinir

@aoao0206 Water in swinir looks best, but snout and eyes could be a bit better. Tried this image with several other sources - can't tell if upsamplers generally struggle with blur or it's an adversarial example, especially with some GANs making realistic photos from mere doodles.


GameplaySettings fail to serialize

Describe the bug
 Squiggles.Core.Data.GameplaySettings fails to save/load custom settings
Expected behavior
GameplaySettings should save and load a valid dictionary
Additional context
Entirely possible I just made a dumb mistake. Honestly hoping it's that and not something bigger :fearful:

Lesson Learned. SaveDataBuilder works much better than the built-in JSON serializer. Mainly due to ability to determine key-value to store.


Show queue and run sums and averages in stats

In GitLab by @mcastril on May 14, 2024, 18:04
Hi @ltenorio
I think that someone mentioned it in the session with users at the BSC. In the (old) GUI there's an option under the Tree/Graph views to show a Summary of the workflow. It provides averages and sums for the queue and run-time per section.
I am not suggesting adding this information in the Tree/Graph views in the new GUI but in the stats section. I think it fits better there and I also asked for this feature for Autosubmit, to have homogeneous views of the stats with both resources.

In GitLab by @ltenorio on May 15, 2024, 09:26
Hi Miguel, this feature is already in the new GUI with the name "Table View".

I can move it to the Stats View but I think it can make the section quite large.

In GitLab by @mcastril on May 15, 2024, 20:01
Thanks, Luiggi; I overlooked the table view before.
I understand the concern; I was referring to the "aggregated by job section," of course. But it's true that some workflows may have many sections.
My point was that I considered this as "statistics", and also that it would be nice to visualize them with Autosubmit too. But we can use a different acronym like "summary". And maybe in the statistics only add the total average queue time (we already have wallclock and CPU time there).
Let's discuss tomorrow.


Deployment cannot be created again with the same name in IstioOperator

Bug Description
sample yaml (iop-test.yaml):
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: ingressgw-test
  namespace: istio-system
spec:
  components:
    ingressGateways:
    - enabled: true
      k8s:
        replicaCount: 1
        resources:
          limits:
            cpu: "0.2"
            memory: 200Mi
          requests:
            cpu: "0.2"
            memory: 200Mi
      label:
        app: ingressgw-test
        istio: tuhao-test-ingressgw-test
      name: ingressgw-test
      namespace: tuhao-test
  profile: empty
  revision: 1-10
  values:
    gateways:
      istio-ingressgateway:
        autoscaleEnabled: false
        injectionTemplate: gateway
        replicaCount: 1

Reproduce steps:

kubuectl apply -f iop-test.yaml
wait for deployment and pod to be created
delete the deployment
repeat the first step

Expect:
deployment will be created again
Actual:
no deployment created.(you must change ingressgw-test to another name in iop-test.yaml)
Version
$ istioctl version
client version: 1.10.5
control plane version: 1.10.5-v3.7.5
data plane version: 1.10.5-v3.7.5 (10 proxies)
$ kubectl version --short
Client Version: v1.21.4
Server Version: v1.21.4

Additional Information
No response

@zirain  I have closed the old pr and recreated a new one #40800


Do not update last changed date when a new version is created

Description of the bug
If I create a new version of a resource (with say a 2020 date on it) in 2022 the last updated date for the original resource is changed to the present time.  This is incorrect as the last updated date is what is used in the citation of the original resource and should remain unchanged.
Steps to reproduce the bug:

Go to a resource that was last updated previously (e.g. https://www.hydroshare.org/resource/1a64f1c4cbcc4a2b919c943fc5ec111f/)
Click on Create a new version
From the new version (e.g. https://www.hydroshare.org/resource/3244cea9618b4048ab0937cf9468a821/) click back to the previous version
See that the older version now has a last updated date that is the time the new version was created

Expected behavior
When a new version of a resource is created, the last updated date of an old version should not be changed.

@dtarb I have tested on the newly released production and verified last changed date did not get changed after a new version is created, so I am closing this issue.


[BUG]: Small message box Size

The message box should be bigger so that it is easier for the user to see what they typed.

Please assign it to me under gssoc24

Can you please assign me this issue ?

can you please assign this issue to me?