Documentation is inconsistent.

https://picocli.info/#_boolean_options
https://picocli.info/#_toggle_boolean_flags
The section Boolean Options must specify clearly that current value toggling is supported in versions prior to 4.0 only. The behaviour becomes clearer only when the section Toggle Boolean Flags is arrived at.
Additionally, deprecated example code needs to be updated.

Thanks for pointing this out. I’ll improve the docs. Can you point me to specific deprecated examples?

I updated the Boolean Options section of the user manual. Is this sufficient? (Also please let me know which deprecated example code needs updating.)

Thank you very much, Remko.
I would have preferred it if you had mentioned that since 4.0, the
behaviour is to toggle the default value as against the current value in
prior versions.
I seem to have been looking at an earlier version of the documentation for
the examples. I had a couple of warnings about using deprecated methods.
With respect to using Graal, what's the best way to do it if I'm using just
the jars from Maven and not the installed version?
https://github.com/Fernal73/LearnJava/tree/master/Picocli

@Fernal73 I updated the boolean options section to clarify further. I hope this is better.
(I did not realize you edited your comment, sorry - I only get email once for the original comment - but regarding your question on the default provider, please see PropertiesDefaultProvider in picocli-examples. (I know this duplicates our other thread in the https://github.com/remkop/picocli/issues/542 ticket, but I did not want to leave your question unanswered here - we can discuss further in #542)).

@Fernal73 Any further changes needed in the documentation for Boolean Options or elsewhere, or can we close this ticket? (We can always open up another one if something else comes up.)

I've closed the issue. Parenthesising all the 'Prior to 4.0' statements would be best.


Updated parameter tree to support explicit lists

Coverage increased (+0.0003%) to 99.739% when pulling 0b22235e0c27446dadd31d926639cde9af221e19 on parameter_tree_list into bbef84b8df057ee2746b3492d551ada8facb1b85 on master.


Format output

Capitalize the first letter to keep the format consistent

The current naming actually matches the code. no strong opinion about that, but I don't see much benefit in this renaming.
I don't think we need a new release for that.
This output is barely used in general as we usually get the json output and reformat using custom templates.
So you could do that we well and use a local template where you are free to format the output as you wish.

It's just code cleanliness, so I mentioned this PR.
There is no need to release a new release.

Thanks for the PR but I don't think we need it.
You can still produce the output you wish using custom templates.


Authorization expiration(?)

From time to time (approximately weekly) my drives fail to mount.  I have to remove them, recreate them and reauthorize them, and then they're fine for a while.
The expiration may depend on time or usage  (I'm not sure).
I'd like to be able to diagnose the problem and if possible to set these drives so that they don't expire.
Has anyone else seen this issue? Do you have any ideas or solutions?
Many thanks,
'ö-Dzin

Yes, sorry, if you set your app on the OAuth consent screen to Testing, the validity of refresh tokens is limited to one week. I don't think there is a workaround.

Dear Alessandro,
Thank you very much for your reply.  This explains the behaviour and gives me the option of changing how things work.
best wishes,
'ö-Dzin

It looks like you can use production mode without Google verification. See rclone/rclone#7963

I just encountered the expiration for the first time.  When I went to move the credential into Production, as recommended above, Google provided this confirmation box:

Push to production?
Your app will be available to any user with a Google Account.
You do not need to submit your app for verification. If you change your app's configuration in the future, like adding more than 10 domains, uploading a logo, or requesting sensitive or restricted scopes, you will need to submit for verification .

I'll come back and update this if it turns out not to be true,

Hi, is there a solution available?
I have done the above way by deleting the ~/.gfuse/default folder, but I get the Google Access_denied

And there is actually no access for 7 days available anymore.
TIA Dirk

Same issue here -


Version 2.6 had an option for custom sql

Does version 3 have the same option?

You can use sqlbefore or sqlafter to execute an SQL statement before or after loading a table. There is an example on the Table Settings wiki page.


Camera rotation on Apple Watch.

Due to my camera mounting I have both vertical and horizontal rotation enabled in Octoprint. While the iOS app shows the video feed correctly, on my Apple Watch series 4 the video rotation has no changed so everything is upside down and mirror image.

Bug confirmed. I thought that I tested this but I guess I did not. Thanks for reporting it. Will fix it for next release.

Fixed! You will need to change camera orientation from OctoPrint or make any changes to printers in OctoPod so that Apple Watch gets proper camera configuration.


Wait for the server to start before making requests in probe tests

Current probe tests may fail because the server didn't start before requests are sent. This adds a time.Sleep before sending requests, which doesn't ensure the server is started but makes it way more probable.

@IvanMartinezBL thanks for your PR. Please check our README and follow our standard.
https://github.com/blacklane/go-libs#commit-messages-issues-and-pull-requests

@giulliano-bueno I changed the commit message as requested


Kibana multi-tenancy, dashboard tab shows 'Edit new Dashboard'

I'm using opendistro 1.2.0
After switching tenant, the first time I navigate to dashboard tab what I see is a screen showing an empty new dashboard, ready to be created and saved.
But if I navigate again on dashboard tab, what I see is the list of available dashboards for this tenant, as expected.
This happens also with a user with a role of read_only. Which is even worse, since it is not allowed to create or edit dashboards. Indeed in this case the 'read only user' sees the same screen for creating/editing a dashboard, but without the buttons 'save', 'cancel' and 'add' on top left corner.
Why is this happing?

Hello,
I have the same issue on opendistro 1.4.0

hi, same issue in 1.7.0. It's not nice because the users that have read_only role also getting a purpose to create a new dashboard which is not allowed for them.

@zengyan-amazon, I think that this should be considered as a bug. Thanks!

I am unable to reproduce this behavior using version 2.1.0, so I'm assuming this issue has been resolved. If that's not the case, please feel free to re-open with additional repro steps. Thanks!


Add Has method

Has method is implemented and tested.
This change fixes #99.

Thank you @gozeloglu


Nick: Watch cargojepang.com

Nick requests the watch of the watch_keyword cargojepang\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

cargojepang\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Remove gallery dependency on flutter_markdown

The gallery doesn't actually use package:flutter_markdown.

@HansMuller

What do we use for the source code snippets? Or did we drop that feature.

I think we dropped that feature.

The gallery still displays the snippets in examples/flutter_gallery/lib/gallery/example_code.dart. For example run the "Buttons" demo and then click the toolbar button on the right.
I don't believe that the support for displaying snippets depends on flutter_markdown.

Yes, I see the code there and it doesn't depend on flutter_markdown.

LGTM


tls: make server options available to the handshaker factory

Commit Message: Make Server::Options available to the SSL handshaker factory
Additional Description:
This allows the handshaker to detect the run mode (Server::Options::mode) and use that
to bypass checks required for serving but not for validation.
Risk Level: low
Testing: added and ran unit tests
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/cc @ambuc


Querying strategy for @NiemanLabFuego tweets?

Hiya. I've been having some fun setting up OpenFuego [instances] (http://saracarothers.com/openfuego/politicsfuego/), and have a question about the Twitter account [@NiemanLabFuego] (https://twitter.com/niemanlabfuego)
I've always really found that account useful, so want to set one up in conjunction with my Fuego pages.
My question is: How often do you query to get the right mix of tweets? How many does it request?
I have a cron job set up that, every half hour, looks for the 1 most popular link over the past 6 hours, and if it's new, tweets that out. (Scoring, metadata set to true). It's ok, but seems like it's not quite right ...
Would love to know how the official account queries! Thanks for any info.

Hi Sara! @phelps coded that up, so I'm not 100% sure, but I believe it's triggered whenever a link is in the top 3 of the past 24 hours. (I feel quite confident about the top 3 part, not as much about the 24 hours part.)

Thanks for the info! I tried that over the past few days, seems like it's on the right track. I'm still getting a lot of links over a 24-hour period that break into the top three (so that means more tweets than the Nieman Lab version, which seems to dull the importance of each one, if that makes sense.). Makes me think it's symptom of the universe I'm following, so am going to try tweaking that.


Solve partial notes delivery

Currently deliver of partial notes encrypted logs is unsolved and we manually add the notes to PXE via pxe.addNote(...) in our tests. Figure out how to deliver partial notes and implement the changes.
Look for #8238 in the codebase when tackling the issue.

My mental model is that a partial note is not a note; only a completed note is a note. A partial note is a commitment that would need to be stored in a public storage slot, and emitted as a non-note log (not as a note log). Does the PXE have code to decrypt non-note encrypted logs?
Maybe my mental model is out of date?

My mental model is that a partial note is not a note; only a completed note is a note.

@iAmMichaelConnor This naming issue also came to my mind and the NFT actually already goes in the direction of fixing this by directly constructing the note hiding point here instead of constructing the "partial note" first as is done in private refunds here.

Does the PXE have code to decrypt non-note encrypted logs?
We have an end-point that decrypts the events when asked for.


profilesTest/mkHosts: include host's configuration

Now that profiles test is done dynamically - first available host - we likely need to include the host configuration itself. I have profiles that depend on the domain being set, which how I ran into this, and I think other problems might occur if we don't include the full host in the profiles test.
targeting core, since its a small bug fix and was planned to make into a release.

bors r+

bors r+


Regression file shouldn't be generated when the test is marked as #[should_panic]

When you run the following code with cargo test, a regression file is generated, even though the test always passes.
proptest! {
    #[test]
    #[should_panic]
    fn foo(_: bool) {
        panic!();
    }
}

The regression file states, in a comment, that these are generated only in case there was a failure:
# Seeds for failure cases proptest has generated in the past. It is
# automatically read and these particular cases re-run before any
# novel cases are generated.

So, it seems to me that generating a regression file for unit tests that are expected to panic is incorrect behavior. it should instead be generated when such tests don't panic. Any thoughts?

Sorry for the delay in getting to this. Given the test passes it makes sense that a regression file should not be generated -- marking this as a bug

I ran into this, and I'm interested to help.
It seems that we should decide to persist or not around here in the test runner:
            if let Err(TestError::Fail(_, ref value)) = result {
                // TODO(erwan): Here we should inspect whether the test is #[should_panic] and avoid
                // persisting the seed if it is. This is not implemented yet.
                if let Some(ref mut failure_persistence) =
                    self.config.failure_persistence
                {
                    let source_file = &self.config.source_file;

                    // Don't update the persistence file if we're a child
                    // process. The parent relies on it remaining consistent
                    // and will take care of updating it itself.
                    if !fork_output.is_in_fork() {
                        failure_persistence.save_persisted_failure2(
                            *source_file,
                            PersistedSeed(seed),
                            value,
                        );
                    }
                }
            }

But I'm not sure if the declarative proptest_helper! macro can match on should_panic:
    // build a property testing block that when executed, executes the full property test.
    (@_BODY2 $config:ident ($($arg:tt)+) [$($mod:tt)*] $body:expr) => {{
        $config.source_file = Some(file!());
        let mut runner = $crate::test_runner::TestRunner::new($config);
        let names = $crate::proptest_helper!(@_EXT _STR ($($arg)*));
        match runner.run(
            &$crate::strategy::Strategy::prop_map(
                $crate::proptest_helper!(@_EXT _STRAT ($($arg)*)),
                |values| $crate::sugar::NamedArguments(names, values)),
            $($mod)* |$crate::sugar::NamedArguments(
                _, $crate::proptest_helper!(@_EXT _PAT ($($arg)*)))|
            {
                let (): () = $body;
                Ok(())
            })
        {
            Ok(()) => (),
            Err(e) => panic!("{}\n{}", e, runner),
        }
    }};

if it can then we could pass a flag to the test runner to help inform the decision of persisting or not.


Is there any way to download Private transparent proxy cache files faster.

###  I am trying to download the file from the file sharing website but it really slow down the execution of the script and for the large file it is giving me the time out error. I tried every thing but still unable to download the file as fast as it can be.
`use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Kevinrob\GuzzleCache\CacheMiddleware;
use Doctrine\Common\Cache\ChainCache;
use Doctrine\Common\Cache\ArrayCache;
use Doctrine\Common\Cache\FilesystemCache;
use Kevinrob\GuzzleCache\Strategy\PrivateCacheStrategy;
use Kevinrob\GuzzleCache\Storage\DoctrineCacheStorage;
use GuzzleHttp\Psr7;
use GuzzleHttp\Cookie\FileCookieJar;
$current_dir = getcwd();
$temp_dir = "/temp/";
$cache_dir = "/cache/";
$stack = HandlerStack::create();
$stack->push(new CacheMiddleware(
new PrivateCacheStrategy(
new DoctrineCacheStorage(
new ChainCache([
new ArrayCache(),
new FilesystemCache($current_dir . $cache_dir),
])
)
)
), 'cache');
// Guzzle init
$cookieJar = new FileCookieJar($current_dir . $temp_dir .'jar.txt', true);
$client = new Client([
'defaults' => ['debug' => true],
'verify' => $current_dir . $temp_dir ."cacert.pem",
'handler' => $stack,
'cookies' => $cookieJar
]);
$download_file = "http://affix.is/mp3embed-1cg17i8ptsc8.mp3";
$resource = fopen($current_dir . $temp_dir ."temp.ext", 'w');
$response = $client->request('GET', $download_file, ['sink' => $resource]);
$html .= html_status($response);
`

This guzzle cache library is not developed by the Guzzle team, so we can't provide support for it, sorry.
Large file downloads should not be a problem, although the server settings and the speed are not something that Guzzle can change.


Migrate the codebase to ES2015 (and up) completely

Do you have any plans to migrate the codebase to newer versions of javascript and use babel stage-4 or something similar?
It looks like that half of some files are written in es6 and half has the same old es5 syntax look at domTree.js for example. We definitely can migrate to es6 classes.
I also think using webpack 2 as a bundler is a good idea after addition of import and export support.
Generally I think having es6 codebase encourages more developers to contribute.
Finally I'm ready to finish the migration as a pull request if it is OK with you.

@HosseinAgha we definitely want to migrate to ES6.  There are certain things we'd like to limit the use of because they use large polyfills or compile to code that's a lot bigger that the original.  Basically everything that's covered by https://github.com/kevinbarabash/eslint-plugin-luddite.
A pull request would be greatly appreciated, but please leave any changes to the build system out.  They shouldn't be necessary as I believe that we can continue to use babeblify and still use import/export.  If there are other reasons to move to webpack then I'd like to discuss those separately.

For small classes like those in domTree, using ES6 class syntax might be a good thing. But for other use cases I'm less certain. When I started converting the codebase to ES6, I gave class notatioin a try for Parser, and noticed that it doesn't neccessarily make things better. We have several top level definitions intermixed with the method definitions in which they are used [1, 2, 3]. Afaik static members are not part of ES6, so there is no simple way to include these elements within the body of a class definition. Moving them away from the methods that use them feels like a bad idea. Since Parser is not the only class to contain intermixed code of this kind, I felt that we shouldn't abandon prototype assignments altogether. And if we keep using them, then I'm not really sure than mixing them with ES6 style class notation for simple classes is a good idea. Now people only have to know one style of writing a class, which I see as a benefit.

We could include the transform-class-properties babel plugin to enable static properties in classes.  It's a stage 2 proposal, but it pretty stable.

@kevinbarabash I started to migrate the remaining files to use ES2015 classes -
I had to make some minor changes to .eslintrc and add transform-class-properties property.
Here is the first commit. all the tests are passing. I will continue if it is okay.

@HosseinAgha looks good so far.  I assume the .eslintrc and babel plugin changes are in a different commit.  Can you update Parser.js next and post those changes to see how it works out with transform-class-properties?

git's diffing algorithm leaves much to be desired.

Yes .eslintrc changes are here. I think we can squash some of the commits at the end.
I've already updated the Parser.js and all the tests are passing.
You can find the updated Parser.js here. Also the commit can be found at the end of this  commit (commit is folded because of the long size)

I had to move all the constants before the prototype functions to a single block at the top the class.

Can you change those constants to static variables on the class so that they can be positioned closer to their use site? e.g.
class Parser {
    ...

    static sizeFuncs = [
        "\\tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize",
        "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge",
    ];

    // A list of the style-changing functions, for use in parseImplicitGroup
    static styleFuncs = [
        "\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle",
    ];

    parseImplicitGroup() {
        ...
    }

    ...
}

Sure.
I didn't do this because statics were not constants of course.

@kevinbarabash Katex uses pure node.js for jasmine tests and rely on node.js support of ES6 features. so I can think of 3 solutions:

Update tests to compile modules to es5 before doing anything
Use (static-accessor-properties)[http://kangax.github.io/compat-table/es6/#test-class_static_accessor_properties] whenever we wanted to use a static property (It works everywhere but using it for our constants looks a bit awkward)
Abandon migrating static functions altogether and use same old ES5 syntax for that

@HosseinAgha have a look at the "Jasmine" section on http://babeljs.io/docs/setup/#installation.

Fantastic! Thanks.

@kevinbarabash I recently found out that for the development server (server.js) you serve ES6 not transpiled code to the browser and a transpiled version to on /babel route.
I think we should transpile the code by default and forget about the /babel route because import and export support is still experimental in all browsers.


TransferProxyAdminOwnership in hardhat plugin does not support dynamic signer

When calling TransferProxyAdminOwnership in the hardhat plugin, the function will attach the admin contract with the default hardhat account. I cannot use a dynamic signer to call the function in my script, which results in the error of 'caller is not owner'

The manual workaround is to call transferOwnership(newOwner) on the admin contract directly.


Possible solutions:

Try to restart Sublime Text: Sublime Text -> Quit or to force quit, hold the Option key on your keyboard while you right-click on the app’s Dock icon and you’ll see that “Quit” is now “Force Quit.” Click it to force quit the app.

Go to Sublime Text -> Preferences -> Browse Packages ... and remove Boxy Theme directory if it exists, then repeat step 1.

Please, additionally provide console output and list of the installed addons.

Restarting Sublime Text did the trick. :)


Update snapshot status selector to take multiple statuses.

Updated snapshot status filter to allow csv for multiple status selection.
When filtering by status, multiple values can be provided. Example:
GET /snapshots?status=ready,provisioning&api-version=2022-11-01-preview
Without this change, the generated SDK is only capable of selecting a single status. Example:
GET /snapshots?status=ready&api-version=2022-11-01-preview

cc @mssfang

@tjprescott We're good on our side. Please let me know if I need to do anything to get this merged.


Experience page UI fixed - Cards color fixed in dark mode

Fixes #803
Cards color on dark mode changes to dark color in the experience page , increasing the readability  of the content .

Nicely done @Sarthakjain594 👏!

UI requirements as per reference not met.


Clean up 'coming soon' documentation.

Some of these docs haven't been updated in a while, despite saying coming soon - as a principle, we should not check in things that are "coming soon" unless the work to do that has already been done and on your box locally and you're about to hit the button to create a PR. Otherwise, we risk creating a "graveyard" of documents that were dead before they even had the chance to live.
Some of these things being removed will be valuable to have docs on, and they can be re-added once they exist, but until then having empty pages has less value than nothing at all.

Also, instead of removing images and pages, it would have been nice to have a call out for action first. I can take a stab at it this afternoon.

Isn't the heat map image used in different doc pages? Even if the description of the tutorial is missing, we could at least describe the demos. Hence, I disagree with "until then having empty pages has less value than nothing at all" because it at least communicates that there is indeed some documentation coming instead of developers asking themselves, whether this will be ever addressed.

This change cleans up the usage in other doc pages as well. There's another composite image that has the same picture as part of some larger PNG.
I don't agree on having empty pages. It's extremely dissappointing as a reader to stumble across a months old documentation that still says coming soon. It gets someone's hopes up and then lets them down.

In the same way, having TODOs in code is a great way to leave teasers of what someone thought about doing but never got around to, and never wrote down in detail for the next person to continue the thread. It leads to the build up of stuff that undermines the confidence in the code (and docs)

Isn't the heat map image used in different doc pages? Even if the description of the tutorial is missing, we could at least describe the demos. Hence, I disagree with "until then having empty pages has less value than nothing at all" because it at least communicates that there is indeed some documentation coming instead of developers asking themselves, whether this will be ever addressed.

I was thinking of the main MRTK landing page, where it is used:

In the same way, having TODOs in code is a great way to leave teasers of what someone thought about doing but never got around to, and never wrote down in detail for the next person to continue the thread. It leads to the build up of stuff that undermines the confidence in the code (and docs)

Yeah, totally agree.

Closing this out to create one that targets stabilization


Replace golang image in loki-operator

I added a replace to the stf-run-ci, which replaces the golang base image used to build the loki-operator for the same image hosted on quay.io instead of docker.io. This should make the loki-operator buildable behind Red Hat firewall and it should fix the #255 issue.

Today I should have CI back up and we can get this patch passing

Ran in to some issues with this and failed builds, but it turns out you need at least golang 1.16 and F33 has 1.15.
I also noticed this when deploying (can be dealt with separately) but we need a way to work with ephemeral storage or things won't be able to deploy against quicklab.
                "logs": {
                    "loki": {
                        "enabled": false,
                        "flavor": "1x.extra-small",
                        "replicationFactor": 1,
                        "storage": {
                            "objectStorageSecret": "test",
                            "storageClass": "standard"
                        }
                    }
                },

I didn't notice any storage.strategy: ephemeral settings available for logs.

test

It will fail our CI without ephemeral storage

I know ephemeral storage would be required for Loki to work on quicklab, but does CI deploy Loki?

test

test

test

Was watching the CI, looks like it's failing the same way as I was seeing when the latest Golang version wasn't used to do the build.

It may be worth updating the golang version in the agent image. I don't think it is a huge deal to suggest using the newest golang version to run the stf-run-ci build path

I could try setting the GOTOOLDIR variable, maybe that would finally do the trick

Looks like library versions are clashing. It may be worth updating the golang version in the agent image. I don't think it is a huge deal to suggest using the newest golang version to run the stf-run-ci build path

Yea I'm not sure if that's the better way, or to build in the ability for the CI script (which I use locally for testing as well) to manage the golang version etc. I'm honestly not sure which path is better; build the smarts in to the scripts, or just have the base test image to deal with the dependencies.
If we do the latter, then I think the stf-run-ci system should do a check for the golang version and gracefully exit out when it isn't found on the local system.

test

If we want to have the script manage golang installations, it just needs to make sure not to interfere with the system installed golang so as not to cause problems for anyone running it from their local machine. But anyway either way is fine with me as long as that criteria is met

Looks like that is basically what @vyzigold has implemented by setting all of the go paths to custom locations

If we want to have the script manage golang installations, it just needs to make sure not to interfere with the system installed golang so as not to cause problems for anyone running it from their local machine. But anyway either way is fine with me as long as that criteria is met

Yea it should be able to be dropped next to the operator-sdk-1.5.0 and then the GOBIN env var passed just like the other 2 we have which should allow it to use the local golang independent of the locally installed golang binary.

test

One file in the loki-operator was rewriting the GOBIN variable and using a which go to find a go binary, which seemed to cause the problems.

It looks like the ES didn't deploy?

I just re-triggered it

Hrmmmm it seems to be looking specifically for the default-interconnect, which seems to not be running (is it named differently than then defaults?).
Based on what was deployed though, it seems to have at least passed that part of the CI, just fails on the validation parts. Not sure if that is a CI issue, or something this PR is implementing (I suspect the former)

Oops it seems I misread what happened. It was just looping through waiting for the default-interconnect objects to exist.
Seems to time out on the ElasticSearch completing. Are we running in to the existing known issue of ES requesting more resources than are available in the CI environment?

Yeah looks like it is timing out on the validation step. I am going to push a change to the Jenkinsfile that will extend the timeout

test

Loki must be using enough resources to stop ES from deploying correctly. I see that it is stuck in the pending state again. Let me see if we can reduce the ES claim even more

test

I suspect we're out of resources running this in quicklab and we're probably going to need to move the CI to a larger cluster.

Yes and unfortunately if we merge this now, it will break the CI for future features until we migrate to a new cluster

Yes and unfortunately if we merge this now, it will break the CI for future features until we migrate to a new cluster

OK cool, I will start on creating a new cluster today with more resources.

test

Yay! Everything looks functional again for CI with these changes (and my recently merged changes to fix the ElasticSearch issues that were hanging up in CI).
Just looking for another review from others, then this is good to go in, and will unblock some other work.

I'm marking the regex issue down and I'll look into it soon.

Any objections to merging this as-is?

:ship:


Record Audio (Simple Example)

I have no idea why the v11 and bellow examples are so much more simple than this. Splitting the files just makes it hard to interpret this.

`// Join with selfDeaf set to false to receive audio
const voiceConnection = joinChannel({ ...options, selfDeaf: false });
voiceConnection.receiver.speaking.on('start', userId => console.log(User ${userId} started speaking));
voiceConnection.receiver.speaking.on('end', userId => console.log(User ${userId} stopped speaking));
// A Readable object mode stream of Opus packets
// Will only end when the voice connection is destroyed
voiceConnection.receiver.subscribe(userId);
// A Readable object mode stream of Opus packets
// Will end when the voice connection is destroyed, or the user has not said anything for 100ms
const opusStream = voiceConnection.receiver.subscribe(userId, {
end: {
behavior: EndBehaviorType.AfterSilence,
duration: 100,
},
});
// -------------------------
// You can re-use the Opus stream, e.g. to play in another channel as an echo
const resource = createAudioResource(opusStream, { inputType: StreamType.Opus });
// You can decode the Opus stream to raw audio using prism-media
const rawAudio = opusStream.pipe(new prism.opus.Decoder({ frameSize: 960, channels: 2, rate: 48000 }));
// You can save the stream to an Ogg file using<EMAIL_ADDRESS>const oggWriter = new opus.OggLogicalBitstream({
opusHead: new opus.OpusHead({
channelCount: 2,
sampleRate: 48000,
}),
pageSizeControl: {
maxPackets: 10,
},
});
pipeline(opusStream, oggWriter, createWriteStream('./myfile.ogg'), callback);`
This should be present in here.


Correction for raw affiliation INRA, UMR 759 LEPSE, 2 Place Viala F-34000, Montpellier, France.

Correction needed for raw affiliation INRA, UMR 759 LEPSE, 2 Place Viala F-34000, Montpellier, France.
raw_affiliation_name: INRA, UMR 759 LEPSE, 2 Place Viala F-34000, Montpellier, France.
new_rors: 05y503v71;03fte3n86
previous_rors: 05y503v71
works_examples: W2029766146
contact: 18f366ead3158295ae1a6b954db4bbad:c08fde7714364a6604f2ca9b77bf754c4419 @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-09. The new affiliations should be visible within the next 7 days.


Migrate completely to Android TV and Material Design.

Need to complete the migration of the interface to Leanback where it makes sense, and upgrade other portions to material design.  This probably should make a 2.0 version as well as supper Mediabrowser.tv.

A lot of this work is done in 2.0.0.   Closing the issue.


equality should evaluate to 1/0 not true/false

In twig, {% set x = 'y' %}{{x == 'y'}} outputs "1"*; in twig.js it outputs "true". Conflating truthiness with the associated integer values seems like a bad habit but, if you do, this difference will quickly lead to trouble.
In twig, this outputs "2"; twig.js outputs "NaN":
{% set x = 'y' %}
{% set m = (x == 'y') %}
    {# in twig, m now equals 1; in twig.js m now equals 'true' #}
{% set m = m + 1 %}
{{m}}

* note that a bare {{ x == 'y' }} has no output in twig or twig.js

Its a little odd, because in JS:
true+1
2
so we have the concept of adding Numbers to booleans (although this seems insane to me but never mind).
I can't fault your reasoning, we should be aiming for parity with twig PHP, but I've never understood why PHP converts booleans to integers when printing them. Oh well.


Debugger mouseover value showing over comments

I was sent here from https://github.com/microsoft/vscode/issues/85321
Environment data

VS Code version: 1.40.1 and 1.41.0-insider
Extension version: 2019.11.49689
OS and version: Win10 64bit
Python version: 3.7.4
Type of virtual environment used: None
Relevant/affected Python packages and their versions: ?
Jedi or Language Server: false

Expected behaviour
It should not show anything over commented text.
Actual behaviour
There is a mouse over if you hover over a word of a commented text that is equal to a variable.
Steps to Reproduce:
Enter this code, set a breakpoint in the stop line and run the file in the debugger.
Hover mouse over var in the comment line.
var = "this is just a string"
# some comment about var
stop = "stop"

@tweakimp  You were right the first time. This is actually VS Code issue we don't control where the tool tip shows up in the UI.

Ok, going back :)


MySQL metrics receiver raising errors due to malformed SQL

Describe the bug
Errors are logged by Ops Agent due to malformed SQL in the MySQL application implementation. There is a missing space in the SQL. This is fixed in opentelemetry-operations-collector > 0.61 so submodule dependencies are in need of updating.
To Reproduce
Configure standard MySQL application metrics on Ops Agent per documentation. Observe errors (example below) via journalctl -u google-cloud-ops-agent*
Environment

RHEL 7.9
MySQL 5.7.40
ops-agent 2.24.0 (and prior)

Example Error
Dec 22 10:27:02 xxxx-development otelopscol[10405]: 2022-12-22T10:27:02.617Z        error        mysqlreceiver@v0.61.0/scraper.go:295        Failed to fetch table io_waits stats        {"error": "Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.table_io_waits_summary_by_tableWHERE OBJECT_SCHEMA NOT IN ('mysql', 'perf' at line 1"}
Dec 22 10:27:02 xxxx-development otelopscol[10405]: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver.(*mySQLScraper).scrapeTableIoWaitsStats
Dec 22 10:27:02 xxxx-development otelopscol[10405]: /root/go/pkg/mod/github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver@v0.61.0/scraper.go:295
Dec 22 10:27:02 xxxx-development otelopscol[10405]: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver.(*mySQLScraper).scrape
Dec 22 10:27:02 xxxx-development otelopscol[10405]: /root/go/pkg/mod/github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver@v0.61.0/scraper.go:98
Dec 22 10:27:02 xxxx-development otelopscol[10405]: go.opentelemetry.io/collector/receiver/scraperhelper.ScrapeFunc.Scrape
Dec 22 10:27:02 xxxx-development otelopscol[10405]: /root/go/pkg/mod/go.opentelemetry.io/collector@v0.61.0/receiver/scraperhelper/scraper.go:32
Dec 22 10:27:02 xxxx-development otelopscol[10405]: go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).scrapeMetricsAndReport
Dec 22 10:27:02 xxxx-development otelopscol[10405]: /root/go/pkg/mod/go.opentelemetry.io/collector@v0.61.0/receiver/scraperhelper/scrapercontroller.go:194
Dec 22 10:27:02 xxxx-development otelopscol[10405]: go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).startScraping.func1
Dec 22 10:27:02 xxxx-development otelopscol[10405]: /root/go/pkg/mod/go.opentelemetry.io/collector@v0.61.0/receiver/scraperhelper/scrapercontroller.go:172

Fixed in 2.25.0


fix(env): checks if windows platform, then send in APPDATA env var.

Checks if the platform is windows. If it is, adds the process.env.APPDATA var to the options sent into spawn.
Also opted for cross-spawn-async as it is the core of cross-spawn, and the other package is only for added spawnSync support, which is not used here.

should fix the issue discussed in #3

Awesome!  This is awesome.
Unfortunately, this drops our code coverage below our threshold. Do you think you could look into that? Just run the tests with npm test and then open the coverage/lcov-report/index.html file to see the report.
Thank you!!!

yeah, i'll check tonight

Thanks :D

lol the string of errors goes on and on and on ;P
npm test gives me an unexpected token error in mocha:

look like it is related to https://github.com/gotwarlost/istanbul/issues/90
I'll get a fix in for this as well in the PR.

Wouldn't might a helpful glance at that istanbul ignore commit.
First time I've use istanbul, and while I understand why the branch is reporting that it's not covered, I'm not quite sure how to mock a process.platform variable.
...Also I get 100% on everything locally, but travis is spitting out different percentages, not sure how to check where travis says coverage is missing.

Actually, thinking about it now, is there a reason that can only happen in a windows environment? Could we just omit the if statement and do it for every platform? I wouldn't expect that to be a problem.

maybe? i really have no idea, dont have a mac or linux os to test if appdata being set matters or not on other OS.
I'm down for taking out the if clause though if you think itll be fine. ill make the change in a little bit.

Current coverage is 100.00%

Merging #4 into master will not affect coverage as of 8f77fe9

@@            master      #4   diff @@
======================================
  Files            1       1
  Stmts           30      31     +1
  Branches         0       0
  Methods          0       0
======================================
+ Hit             30      31     +1
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 8f77fe9

Powered by Codecov. Updated on successful CI builds.


Add notes for table name that contain uppercase letters

When querying table that has uppercase letter in its name, it results in following error.
{
    "code": 3000,
    "error": "Query engine output error: Failed to execute query: select distinct instance from node_memory_HugePages_Total, source: Failed to plan statement, source: Cannot plan SQL: SELECT DISTINCT instance FROM node_memory_HugePages_Total, source: Error during planning: Table not found: greptime.public.node_memory_hugepages_total",
    "execution_time_ms": 1
}

To resolve this, we will have to add single quote to table name: select distinct instance from 'node_memory_HugePages_Total'

Already has a note in compatibility doc, but it must be noted in the user guide @nicecui
https://docs.greptime.com/reference/sql/compatibility#ansi-compatibility


DateTimeOffset and DateTime types must be serialized to ms accuracy

Describe the bug
In the response from the server, the updatedAt field is not returned with ms accuracy.  In order to be effective for synchronization, ms accuracy is needed.
To Reproduce

Send a POST to the server to create an item
Check the response - the updatedAt format is YYYY-MM-DDTHH:mm:ssZ

Expected behavior
The updatedAt format should be YYYY-MM-DDTHH:mm:ss.fffZ
What platforms?

Server:

[ ] ASP.NET Framework (Legacy)

[X] ASP.NET Core

[ ] Node.js (Legacy)

What database are you using?  InMemory

Where are you running the server? TestServer

Client

[ ] Xamarin Forms

[ ] Xamarin.Android

[ ] Xamarin.iOS

[ ] Windows (state UWP, WPF, WinForms)

[ ] Swift / Objective-C

[ ] Android Java / Kotlin

[X] Other (state what other means) (Test Framework for netclient2)

What platform versions are you running on? Windows

Does it happen in an emulator / simulator, or only on a real device? (On tests)

Fixed in f3dbe32.

Introduced DateTimeOffsetJsonConverter to properly write all the DateTimeOffset to zulu time with ms accuracy
Added unit tests for DateTimeOffsetJsonConverter
Updated SystemPropertiesMatch assertion to use zulu/ms accuracy


Document the time and memory complexity of the library

It's not clear whether this library is subject to the same exponential blowups as other RE implementations. Adding a note in the README would be very helpful.
This seems particularly relevant after the recent CloudFlare outage which was partly caused by a bad RE that led to crippling CPU usage.

There shouldn't be any exponential blowup scenarios here.
The precise complexity depends on how you use the library. If it's just matching, then I think it would be O(n) time and O(1) memory for any given regex.
For recognition, I'd predict O(n) memory because of the bookkeeping of which branch was taken at each step. Hopefully the runtime stays O(n), but I'm not sure.
If you're up for confirming these empirically and then preparing a README PR or filing issues (depending on the outcome), I'd gladly accept them.

I was hoping for more than empirical evidence, since you can never be sure there are no expressions that cause problems. I would be much happier with a logical argument based on the nature of the internal algorithm.
AFAICT from the haddocks, there's no way to do backtracking, so that eliminates an entire class of problems. However, is it possible to (inadvertently) create a pathological matcher/recognizer by including the equivalent of many empty in it?

I was hoping for more than empirical evidence, since you can never be sure there are no expressions that cause problems.

So empirical evidence wouldn't convince you yet a note in the README would? :)
Indeed, you can never be sure, period.
The code is sufficiently complex that a manual analysis/proof would require a lot of work and ingenuity. Besides, its runtime behaviour is in part determined by the way the compiler compiles higher-order functions.

However, is it possible to (inadvertently) create a pathological matcher/recognizer by including the equivalent of many empty in it?

It shouldn't be, but the easiest way to check is to try. (Or try to prove if you're so inclined.)


Refactor intro animations into a separate sass variable

Addresses #1146 .
Tested locally, everything seemed to work as expected. Let me know if I need to change anything.

Works great. Adding the following to assets/css/main.scss disables the fade in animations as expected.
---
# Only the main Sass file needs front matter (the dashes are enough)
---

@charset "utf-8";

$intro-transition: none;
@import "minimal-mistakes";

Thanks for taking the time to submit the PR and address the issue @peterdimou


Add terminal block hash override

Motivation
Implement this merge spec https://github.com/ethereum/consensus-specs/pull/2617/files
Description
part of  #3076

I can't merge this due to license/cla check, @dapplion do you have any ideas?


Chat

Hi, is there any discord or telegram group for the projec?
Thx

Sure... welcome aboard! https://discord.gg/J8apCwQ6bY

Ty!


Exposes the Hazelcast enableCompression flag in the CAS config

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


add: context cancel

Create a method on context such as: context.cancel() to cancel the whole event

This isn't possible due to Event being a Generic extends Event from Bukkit that cannot be cancelled.


gateway redirect messes up CORS headers on firefox

Browser: Firefox 59.0.2
AddOn Version: IPFS Companion (RC1@fb21b6d) <IP_ADDRESS>40 or IPFS Companion 2.1.0
Given this webpage:
<!DOCTYPE html>
<html>

<body>
    <button onclick="window.fetchFromPublicGateway()">Fetch from public gateway.</button>
    <button onclick="window.fetchFromLocalGateway()">Fetch from local gateway.</button>
    <script>
        window.fetchFromPublicGateway = () => {
            fetch("https://ipfs.io/ipfs/QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y")
                .then(res => res.text())
                .then(console.log)
                .catch(console.log)
        }

        window.fetchFromLocalGateway = () => {
            fetch("http://localhost:8080/ipfs/QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y")
                .then(res => res.text())
                .then(console.log)
                .catch(console.log)
        }
    </script>
</body>

</html>

when clicking on the public gateway button firefox will cancel the request and issue a same-origin-policy warning due to missing CORS headers even though the local gateway has the necessary CORS-headers set which can be checked clicking the other button (be sure to check which origin you are accessing the document when using the IPFS link).
I checked Chrome 65 for comparison and the issue isn't present.

Thank you for the sample app, it made reproducing it much easier :+1:
Upon inspection of onBeforeRequest hook Firefox indeed blocks XHR right after redirect:

Chrome does not block redirect, second call has updated url field:

I'll look into it.

It seems to be a bug in Firefox (see findings below).
I filled an upstream bug:

https://bugzilla.mozilla.org/show_bug.cgi?id=1450965

Steps to Reproduce
I created a PoC extension to confirm that it is not companion-specific:  ipfs-companion-cors-issue-436-mvp.zip

Make sure IPFS Companion is disabled at about:addons (we don't want to have race conditions)
Load poc extension into Firefox and Chrome
Extension opens the test page at ipfs.io

page provides two buttons for fetching the same resource from two different gateways: ipfs.io (the host used for loading test page) and ipfs.infura.io (3rd party host)
the extension registers onBeforeRequest hook that redirects fetch for the resource from ipfs.infura.io to ipfs.io (this will trigger the bug)

Chrome: Success, No Error
Both buttons result in a successful fetch and This is a string downloaded via JS fetch being printed to the console:

Firefox: CORS Error
Only the first button results in a successful fetch, second button triggers CORS error.
Firefox blocks JS fetch due to CORS.

Note to self: for the same bogus reason Firefox prevents Pannellum from using IPFS-hosted images (rerouted by IPFS Companion) as WebGL textures.

Another thing that is broken by this issue: https://ipfs.github.io/public-gateway-checker/

Due to discrepancy between how Chrome and Firefox handle CORS validation in webRequest.onBeforeRequest context the upstream fix may take longer than expected.
To mitigate the situation, I decided to disable redirect for cross-origin XHRs that would fail anyway, restoring original functionality to websites impacted by this issue.
See PR #494 – it is an interesting edge case, so feedback would be appreciated.

To restore feature parity, I decided to enable gateway redirect for CORS XHRs in Firefox  using  late redirects at a price of small overhead. Details in  PR #511.

Released to beta channel as v<IP_ADDRESS>90. If no issues, we will promote it to stable in a few days.

According to https://bugzilla.mozilla.org/show_bug.cgi?id=1450965#c33 the bug was fixed in Firefox 69.
I am reopening this, so we don't forget to remove workaround introduced in  #511 when FF69 lands to the stable channel in September (2019-09-03 according to this page)

Firefox 69 is released.


Require primary IP addresses for ready hosts

This disallows a host from moving to ready until it has IP addresses. A scenario
where this can happen:

A host is dynamically provisioned
The host sets itself ready before
DynamicProvisioningMaintainer#resumeProvisioning writes the assigned IPs
The host ends up in reserved without IP addresses, unable to activate (because active requires IPs)
DynamicProvisioningMaintainer#resumeProvisioning no longer considers the
host because it's not in provisioned

@hakonhall
FYI @freva

Oops, I'm just FYI, didn't mean to approve. Leaving this for @hakonhall

PTAL


messages_get throws an error / breaks the execution when set the limit higher than 100

Describe the bug
messages_get breaks the execution when set the limit of messages higher than 100!
To Reproduce
try {
            bot.messages_get(845266528676468976, 0, 0, 0, 101, [](const dpp::confirmation_callback_t &event) {
                if (!event.is_error()) {
                    auto mm = get<dpp::message_map>(event.value);
                    cout << "success; amount of messages: " << mm.size() << endl;
                } else {
                    cout << "error: " << event.http_info.body << endl;
                }
            });
        } catch (const std::exception &e) {
            cout << "exception: "  << e.what() << endl;
        }

Expected behavior
it calls multiple api requests to get more than 100 messages
System Details:

DPP 9.0.17

you forgot to provide the details of the exception! A stack trace would be really useful too please 😄

oh yeah. tbh it dont throw any exception there for me, it just breaks the program with Process finished with exit code 139 (interrupted by signal 11: SIGSEGV). the guy who reported the bug got an exception

this broken functionality has been removed.
It could be considered abusive to the api anyway, so had no place in the lib.


Fix the way environment variables are passed to the test subprocesses

This fixes a bug where the "use strict" / module / async flags weren't received from the test subprocess.

The three failing tests are tests which only fail either for the strict case or for the non-strict case. This is something we don't yet encode in the expectations file, so let's merge this even with failing tests, and fix that in a follow-up PR.


replace ms.portal.azure.com in the link to portal.azure.com

Learn Build status updates of commit bdac83e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/defender-for-cloud/defender-for-containers-introduction.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

#sign-off


Warn on injection by name that will fail when minified

It would be awesome to be able to set some sort of configuration to cause angular to throw warnings (or errors) when it is injecting by function argument name.
I'm working on a project that has it's javascript minified in production and therefore need to specify injection arguments explicitly using either the array syntax:
["$scope", function($scope) { ... }]

or the $inject syntax:
controllerFunction.$inject = ["$scope"]

I'm using those (almost) everywhere in my project, but one of them snuck by me into the minified javascript and was a huge pain to find.  I just got errors like
Error: [$injector:unpr] Unknown provider: eProvider <- e

I did eventually find it, but only by trial and error and a lot of searching through the code.
I've modified the angular source a bit to help me find these down the road.  I've modified the annotate function as follows:
function annotate(fn) {
  var $inject,
      fnText,
      argDecl,
      last;

  if (typeof fn == 'function') {
    if (!($inject = fn.$inject)) {
      $inject = [];
      if (fn.length) {
        fnText = fn.toString().replace(STRIP_COMMENTS, '');
        throw 'Using injection by name, should explicitly define ' +
          'requirements using $inject or an array! Function text:' +  fnText;
        argDecl = fnText.match(FN_ARGS);
        forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg){
          arg.replace(FN_ARG, function(all, underscore, name){
            $inject.push(name);
          });
        });
      }
      fn.$inject = $inject;
    }
  } else if (isArray(fn)) {
    last = fn.length - 1;
    assertArgFn(fn[last], 'fn');
    $inject = fn.slice(0, last);
  } else {
    assertArgFn(fn, 'fn', true);
  }
  return $inject;
}

That way I am warned in development mode if my code won't work when minified.  I know this isn't the right way to do it because it prevents injection by name from working at all (which is why this isn't a pull request), but maybe there is a way we can figure out to make this a configurable option.
Or if we can't maybe angular should always throw a warning (not exception) because shouldn't we all be planning to minify our javascript in production?

Thank you @shahata! This saved my entire day! :-) :+1:

@shahata! Thank's a lot, it works like a charm!


Question: Is there a version that supports Android 4.0?

Couldn't figure out how to ask a question other than by filing an issue.
Is there, or was there ever, a version of this that supports Android 4.0?

This is a web project so you'd want to check over at https://github.com/tangrams/tangram-es


Lot of docs missing

There are a lot of docs missing about the extractor.
For example:

What is destinationApimName, why do i need it?
1 .How do I extract policies? In the video he provides some blob url. What is in there? Why is not just extracted?

It's really hard to use this just with the current docs / examples

We've beefed up the docs somewhat and have more to do.  Since this issue does not have a specific ask, I'll close it.  If you have a specific question or bug, please open a new issue with all required information.


fix on gps-entity-place attribute and places-name example

The gps-entity-place attribute wasn't being read on at least FF Android build 66.1.1 without prefixing it with data-. Changed  gps-entity-place to data-gps_entity_place in both places-name and click-places examples.
Returned a Promise instead of an object in loadPlaces function in the places-name example.

Hi @droid001!
for the Promise missing on the return values of places-name, all good!
For the other thing, I'm not sure: with that change it will basically change every place where I create a-frame components. I haven't heard such problem on Firefox. Also, if it was true, aframe (that is based upon custom components added with attributes without 'data' prefix) will not work at all on Firefox.
Do you have any reference of this bug? it is already known or just empiric? thanks!

I didn't find a link to the bug but on MDN it's mentioned that data-* is the way to store information in a standard way:

data-* attributes allow us to store extra information on standard, semantic HTML elements without other hacks such as non-standard attributes, extra properties on DOM, or Node.setUserData().

What I think (speculation here) is that a-frame components have special attributes which browsers are ok with because they are set when they are defined as a Custom Element.
I ran a log on the a-image node when it was created without the data-* prefix and got the following:
<a-image gps-entity-place="" name="Your place name" src="../assets/map-marker.png" material="" scale="" geometry=""></a-image>
The places object had coordinates set to it.

@droid001 can you please try it on Chrome and let me know if the log shows same result?

If you look here it shows the a-frame standard way to add a-frame components.
Just create an HTMLELement and add attribute to it. If the attribute matches the name of an a-frame components, it will work, regardless to the data- prefix.
I know data- prefix is the standard way to define attributes on HTML Custom elements, but in this case I prefer to follow the standard used from aframe to define components.
I haven't find any reference of this bug, I will try to reproduce it myself using latest firefox on android. Will let you know

I got the demo working with FF now. False alert. I would guess that I just had bad luck with the GPS signal when switching over from a working demo on Chrome. Guess you can just merge the Promise fix.

ok great, if you find more issues on firefox just let me know and I will check too! Merging, thanks


About the performance of PTv3 on ScanNet20.

Thanks for your great effort in 3D scene understanding! I have a question about PTv3 on ScanNet20. I noticed that for training semantic segmentation on ScanNet20, two losses are used for optimization, namely CrossEntropyLoss, and LovaszLoss. I trained PTv3 with only CrossEntropyLoss and without "normal" feature, and it seems that the performance drops a lot. I wonder have you tried training PTv3 without LovaszLoss? Will it make a big difference and is the phenomenon I encountered a normal one? Looking forward to your reply! Many thanks to you!

Hi, "normal" was introduced since PTv2, and "LovaszLoss" was introduced since PPT. We found that both of them are beneficial to scene understanding. Consequently, we enabled them by default in PTv3 and did not try to disable them.


Any method to encode a spark's SparseVector and pass it to petastorm

Hi, I have a derived dataframe in spark which has few vector columns with high sparsity. Currently I am storing them as SparseVector and saving as a parquet File.
I tried reading this parquet file  inside a sagemaker notebook but  aws sagemaker notebooks do not support pyspark3 right now and I got RuntimeError: Vector columns are only supported in pyspark>=3.0
Now is there a way to encode this column and read it back on client side(pytorch) and converting it to dense vector at client side before passing for training.
Basically idea is to avoid converting column to denseVector, to save space on disk and network transfer time.
Is there a sparse vector format that Petastorm support and if not, is it possible to add this feature. This seems like a highly usable feature. I am willing to contribute if needed.
My last resort would be to split a sparse vector in three columns namely size(scaler), keys and values and save them to parquet as np dtypes and then combine them in transformSpec function into a dense vector(np array). But this doesn't feel optimal approach. Any suggestions?

That's an interesting question. Do you know how these sparse matrices are read by pyarrow? My guess would be that they are read as coordinate vector and data vector? I would assume that these could be wired into petastorm somehow. I would recommend not making them into dense matrices within petastorm if possible, since some applications would not be able to afford the memory/time overhead of densifying the matrices.
If you are feeling adventurous trying taking a stab at this petastorm extension, I would be happy to provide the support you'd need.


Added operation tf.math.reciprocal_no_nan()

Hello,
This is a PR following feature request #30620. As discussed there, for now I have only added the op in the Python API. If required I'd be glad to add it to the C++ kernels and implement the gradient too.

Yes, it's those two commands
On Mon, Jul 22, 2019 at 12:01 PM Karthik Muthuraman <
<EMAIL_ADDRESS>wrote:

@kmh4321 commented on this pull request.
In tensorflow/python/ops/math_ops.py
https://github.com/tensorflow/tensorflow/pull/30888#discussion_r305981272
:

@@ -4003,3 +4003,37 @@ def polyval(coeffs, x, name=None):
for c in coeffs[1:]:
p = c + p * x
return p

+@tf_export("math.reciprocal_no_nan", "reciprocal_no_nan")
I found these two commands:
$ bazel build tensorflow/tools/api/tests:api_compatibility_test
$ bazel-bin/tensorflow/tools/api/tests/api_compatibility_test \
      --update_goldens True

—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/30888?email_source=notifications&email_token=AAABHROAZWJUDHXOIU22JULQAX7ZTA5CNFSM4IFL5ZM2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB7FW5AI#discussion_r305981272,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAABHRJ5JYZWHZXBKSO522TQAX7ZTANCNFSM4IFL5ZMQ
.

--

Alex

I have regenerated the files.

I ran the bazel test locally, it still fails but with lesser mismatch. I'm not sure if that is do with my code or it was already erroring out.
Earlier:
AssertionError: 2 differences found between API and golden.
Ran 7 tests in 15.535s
FAILED (failures=3, skipped=1)

Now:
AssertionError: 1 differences found between API and golden.
Ran 7 tests in 6.998s
FAILED (failures=1, skipped=1)

Yes, let's raise a separate issue to improve the exception in div_no_nan in
eager mode.
On Fri, Jul 26, 2019 at 1:36 PM Karthik Muthuraman<EMAIL_ADDRESS>wrote:

@kmh4321 commented on this pull request.
In tensorflow/python/ops/math_ops.py
https://github.com/tensorflow/tensorflow/pull/30888#discussion_r307899274
:

  `complex64` or `complex128`.

name: A name for the operation (optional).

Returns:
A Tensor of same shape and type as x.

Raises:
TypeError: x must be of a valid dtype.

"""
allowed_dtypes = [dtypes.float16, dtypes.float32, dtypes.float64,

               dtypes.complex64, dtypes.complex128]

with ops.name_scope(name, "reciprocal_no_nan", [x]) as scope:
x = ops.convert_to_tensor(x, name="x")
if x.dtype.base_dtype not in allowed_dtypes:

 raise TypeError("x has incorrect data type: {} \n "

@alextp https://github.com/alextp so I'll remove exception handling
here. But in eager mode, div_no_nan() doesn't give a valid/useful
exception. How should we handle that? I can also raise a separate issue to
discuss this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/30888?email_source=notifications&email_token=AAABHRKGDVZWSXDAVSMSRWLQBNN6PA5CNFSM4IFL5ZM2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB7YA4NY#discussion_r307899274,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAABHRNBPWRZCKOCNQAD45LQBNN6PANCNFSM4IFL5ZMQ
.

--

Alex

@alextp one of the test cases was still failing as it was performing exception handling in both eager and regular modes. I removed that test case for now.


[Bug]: Summoned Fallen Knights will never despawn (leave dead bodies behind)

Mod Loader (Required)
Fabric
Minecraft Version (Required)
1.20.1
Mod Version (Required)
v8.0.1
Notes (Required)
Summoned Fallen Knights never despawn after being killed and their models stay in the world even after running /kill @e[type=enderzoolody:fallen_knight]
Physical models are there, and can be punched.
Initially I used Conjuring mod to capture a fallen knight into a focus and then use it in Conjuring spawner so it summoned a bunch of them but they stayed in the air without animation and when killed stayed in the same place but in the "dead" animation
Then I tried to /summon enderzoology:fallen_knight 1157.65 124.00 -404.81
and similar behavior repeated: fallen knight is summoned in place and wont move, when killed, it goes on the side and stays there in an idle animation.
Tried F3+ I to copy the server side entity data and this is what i got:
/summon enderzoology:fallen_knight 1157.65 124.00 -404.81 {DeathTime: 1s, LeftHanded: 0b, OnGround: 0b, AbsorptionAmount: 0.0f, Attributes: [{Name: "minecraft:generic.follow_range", Modifiers: [{Amount: -0.07759367948104237d, UUID: [I; 616377516, -1657454521, -1489953044,<PHONE_NUMBER>], Name: "Random spawn bonus", Operation: 1}], Base: 35.0d}, {Name: "minecraft:generic.movement_speed", Modifiers: [{Amount: -1.6500000655651093d, UUID: [I;<PHONE_NUMBER>,<PHONE_NUMBER>, -1811001012, 521537680], Name: "effect.minecraft.slowness 10", Operation: 2}], Base: 0.3d}], Invulnerable: 0b, Brain: {memories: {}}, "puzzleslib:spawn_type": "SPAWNER", ActiveEffects: [{ShowIcon: 1b, ShowParticles: 1b, Id: 2, Duration: 60, Ambient: 0b, Amplifier: 10b}, {ShowIcon: 1b, ShowParticles: 1b, Id: 20, Duration: 5, Ambient: 0b, Amplifier: 0b}, {ShowIcon: 1b, ShowParticles: 1b, Id: 9, Duration: 60, Ambient: 0b, Amplifier: 1b}], HandDropChances: [0.085f, 0.085f], ArmorDropChances: [0.085f, 0.085f, 0.085f, 0.085f], Rotation: [223.11203f, 0.0f], HurtByTimestamp: 0, CanBreakDoors: 0b, BalmData: {}, cpaCooldown: 0, ArmorItems: [{}, {}, {}, {id: "minecraft:chainmail_helmet", Count: 1b, tag: {Damage: 0, Enchantments: [{id: "minecraft:projectile_protection", lvl: 2s}]}}], Air: 300s, HandItems: [{id: "minecraft:stone_sword", Count: 1b, tag: {Damage: 0}}, {}], FallDistance: 0.0f, FrameworkDataHolder: {}, Motion: [-0.44195701481331756d, 0.0d, 1.1112927299002686d], PersistenceRequired: 0b, CanPickUpLoot: 0b, FallFlying: 0b, HurtTime: 10s, Health: 0.0f, Fire: 240s, PortalCooldown: 0, cpadidTP: 0b}

Is there any way to get rid of them?
Thanks in advance!
latest.log (Optional)
No response

I tested the issue and I'm unable to reproduce this. So it might be a mod conflict. Can you do some more isolated tests to find the conflicting mod?


Insight2 cannot configure

I tried to configure Insight2, but I encountered an error that indicated a file could not be downloaded. And it seems to indicate that I did not have access permission, so I wonder how to solve it.
Mon Jul  1 10:13:01 CST 2024 Configuring Insight2 database.
Mon Jul  1 10:13:01 CST 2024	 Retrieving database file Insight2DB.tar from http://compgen.cshl.edu/~bgulko/research/Insight2/db/FitCons2/Insight2DB.tar .
wget: /picb/bigdata/project/wanglinxiao/anaconda3/lib/libuuid.so.1: no version information available (required by wget)
--2024-07-01 10:13:01--  http://compgen.cshl.edu/~bgulko/research/Insight2/db/FitCons2/Insight2DB.tar
Resolving compgen.cshl.edu (compgen.cshl.edu)... <IP_ADDRESS>
Connecting to compgen.cshl.edu (compgen.cshl.edu)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2024-07-01 10:13:02 ERROR 403: Forbidden.
Mon Jul  1 10:13:02 CST 2024	 Did not find database in Insight2DB.tar - build failed. Exiting.

Thank you, I wrote this software and have confirmed that the directory is not presently publically available. While I do not believe this software around 2015 and do not think it is actively maintained, however, I believe can offer this file directly.
Please contact me via direct message or email, and I'll find a copy and make it available, if possible. This message should also go to the lab administrator to find a new location for this file. Again, thanks for the note! --Brad

Thank you, I wrote this software and have confirmed that the directory is not presently publically available. While I wrote this software around 2015, I do not think it is actively maintained, however, I believe can offer this file directly.
Please contact me via direct message or email, and I'll find a copy and make it available, if possible. This message should also go to the lab administrator to find a new location for this file. If not, I'll look for a more persistent home. Again, thanks for the note! --Brad

Thanks, Brad. But I don't know how to contact you(email or message), so I will leave my email address and look forward to your reply. My email<EMAIL_ADDRESS>


Match don't match

Found nothing like my issue with : is:issue "match" in:title label:bug state:open searching's filter.
Godot version:
Godot Engine v3.2.3.stable.official
OS/device including version:
Ubuntu 20.04
GPU : Nvidia GeForce GTX 970
GPU driver : nvidia driver 450 (libre)
Proc : AMD® Ryzen 9 3900x
Issue description:
Match is supposed to match with the first option... but don't.

Steps to reproduce:
Don't know too much.
Made a variable match with a enum's const.
Minimal reproduction project:
issue_minimal_project.zip

I can reproduce this on Godot 3.2.3.
That said, the first time I launched the project, I had a different output when clicking the Albums/Artistes button.

I have the same bug at different location on my script, and it's the same.
What's crazy is that there is a part of my code that worked perfectly fine... Then just broke...

@karroffel implemented this, so he might be able to help the most. 🙂

@ShalokShalom karroffel no longer contributes to Godot core, so I'm afraid he can't help much here.

I just tested this on the current master and could not reproduce it. So at least it seems to have been fixed during the GDScript rewrite for 4.0.

That's good to hear ! Just have to wait for 4.0..... JUST ! ^^

JSON parse 0 as 0.0 float and you can't match float 0.0 with int 0 (not sure if it's a bug CC @vnen ) but the bug here is if a float value is equal to an integer it just prints the integer and ignore the decimal point which is harder for someone to debug.

var value = JSON.parse('0').result ## <-- a float value not integer

func _ready():
	print(value) ## <-- prints 0 not 0.0
	match value:
		0:
			print('0')
		1:
			print('1')
		0.0:
			print('0.0') ## <-- matches here
		_:
			print('default')

@ThakeeNathees GDScript is a strongly-typed language, so 0 not being equal to 0.0 is a design decision, not a bug.

Then, why do the if condition work, but match doesn't ?

== works on int and float arguments mostly for convenience. But match is type-strict all the time, since some comparisons would be invalid (if you try to use == with incompatible types you get an error).
So this isn't really a bug, you should cast for the type you expect it to be.
Now I wonder if I broke something on 4.0 or if the test was made with something different, because it should still only match if the type is the same.

@vnen my testing mentioned above didn't go through the json parser, my bad. it seems that it's still type-strict in 4.0

BTW, I think that matching a pattern with a literal, variable or constant should use the same mechanism and provide exactly the same convenience that the equality test == in that language provides. The reason: to avoid exactly the misunderstanding that led to this issue report.
It is also in line with other languages that support some duck-typing, AFAIK. E.g. case in Ruby (I think) and the pattern matching statement proposed for python https://www.python.org/dev/peps/pep-0622/#patterns
But I guess, this change would have to go into a new proposal.

I've encountered this same problem.
Interestingly, the match statement works OK when launched from the editor, and works OK when exported to Windows with debug mode enabled. The match statement only fails when exported to Windows with debug mode disabled.
Adding an explicit type of 'int' fixes the match statement.

Im getting similar results with 4.0 beta 1 that just came out. I wanted to wait to convert until functions were not changed anymore :P. So, match is not firing for me when I try to retrieve a poolbtyearray from firestore. Here is my code. I can print the response_code, which is what match should recognize. Thoughts?

I have been working over 9 hours straight due to this issue thinking the problem was elsewhere.
I'm working with Godot 4.1.2rc1
The following codes is used in my project to controls the value (and if active) of a TextureRect node.
A typical Pixelation effect shader is applied to it with an Shader Parameter called "Pixelation".
Here's the code using a match statement:
(Yes, I'm using semicolons in my coding. Can't shake off that habit.)
extends CanvasLayer

@export var NP_PixelatedMaterial: NodePath;
@export var TextRend_PixelsRenderer: TextureRect;

var CurPixelMaterial: Material;

func SetPixelationEffectValue(val: int):
	print(val);
	CurPixelMaterial = TextRend_PixelsRenderer.material;
	if val == 0:
		#Large Pixels (256px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 256);
	if val == 1:
		#Normal Pixels (448px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 448);
	if val == 2:
		#Small Pixels (768px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 768);
	if val == 3:
		#Disabled
		get_node(NP_PixelatedMaterial).hide();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 1024);

	match val:
		_:
			#Normal Pixels (448px)
			get_node(NP_PixelatedMaterial).show();
			CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 448);
		0:
			#Large Pixels (256px)
			get_node(NP_PixelatedMaterial).show();
			CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 256);
		2:
			#Small Pixels (768px)
			get_node(NP_PixelatedMaterial).show();
			CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 768);
		3:
			#Disabled
			get_node(NP_PixelatedMaterial).hide();
			CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 1024);

Even if I verify (print) that the val integer has the proper value, the match always applies the _ (default) value.
If, instead, I use this:
extends CanvasLayer

@export var NP_PixelatedMaterial: NodePath;
@export var TextRend_PixelsRenderer: TextureRect;

var CurPixelMaterial: Material;

func SetPixelationEffectValue(val: int):
	print(val);
	CurPixelMaterial = TextRend_PixelsRenderer.material;
	if val == 0:
		#Large Pixels (256px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 256);
	if val == 1:
		#Normal Pixels (448px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 448);
	if val == 2:
		#Small Pixels (768px)
		get_node(NP_PixelatedMaterial).show();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 768);
	if val == 3:
		#Disabled
		get_node(NP_PixelatedMaterial).hide();
		CurPixelMaterial.set_shader_parameter(References.Ref_ShaderParam_Pixelation, 1024);

It works 100%.
This has happened quite a few times in my current project where match always returns the _ (default) value even if the matched value is not it.
A side note to the issue:
On a different game engine, this was a common problem ~7 years ago and was due to a compiling & caching issue which made it so that the switch statements (a.k.a. match statement) were cut short to a fraction of their regular content. Like having 48 cases cut down to 27 cases. It didn't returned any compiling error.
Back then, the only fix was to use if() (and its relative options) in replacement until the compiler was updated.
I can't say if this is the case for Godot, but that's a start.

@dongohu Considered the comment two above you, do you also export to Windows with no debug mode enabled?

@dongohu Considering the comment from Poobslag, do you also experience this bug only, when you export to Windows with no debug mode enabled?

No, I experience this via:
• When running the game through the Run Project (F5) from the editor.
• When exporting the game to Windows Desktop (both in Debug and without Debug)
There's no error or issues being pointed out, but every instance of match I uses in GDscript seems to return the default value.

If I'm not wrong, could it be that the engine interpret the match as if's and replace _: for else without reordering?
This would explain why, whenever _: is not last, the rest is skipped right away.

There's no reordering done and it is not expected to be. If the wildcard is the first pattern it will always match anything. You do get a warning if you add patterns after a wildcard or unconditional variable bind.

If I'm not wrong, could it be that the engine interpret the match as if's and replace _: for else without reordering?
This would explain why, whenever _: is not last, the rest is skipped right away.

There's no reordering done and it is not expected to be. If the wildcard is the first pattern it will always match anything. You do get a warning if you add patterns after a wildcard or unconditional variable bind.

That's actually something relatively unique to Godot then and there is no warning currently for having anything after the wild card in Godot 4 neither during the coding nor actual test/play phases. (Otherwise, I would have noticed it and would have corrected the code right away and wouldn't have taken as much time finding the issue.)
To give examples, Unity, Unreal, CryEngine and even RPG Maker apply a reordering to the Switch function, during compilation for Android and iOS build, which replace switch statements by if/ifelse/else functions which is why I though it could have something to do with it. On other builds, they are managing the switch function by only returning the wild card  if none of the other expressions are true.
To quote Microsoft's own documentation on switch function:
The Switch function argument list consists of pairs of expressions and values. The expressions are evaluated from left to right, and the value associated with the first expression to evaluate to True is returned. (...) Switch evaluates all of the expressions, even though it returns only one of them.
Godot is the only case I have found that uses a true value for its wild card for its switch function instead of using a null value as, otherwise, it would detect that a later expression is true and would only return the wild card if none are true.

@dongohu match is not the same as switch. They serve similar purposes but they work differently. In Rust, for instance, patterns are evaluated in order and it warns for unreachable patterns, just like GDScript does.
And there is a warning for that. I do think warnings are a bit hidden in the editor, but the warning exists:

@dongohu switch in C# is a flange-mounted pattern matching, match in GDScript is a glorified if-then-else statement.
The difference explained.

As stated above and described in the GDScript documentation:
1. match treats int and float as unequal, unlike the == operator. You should be careful when getting numeric values from JSON and other external sources.

[!NOTE]
We could add a warning when the types of matching and pattern values are known, unequal, and implicitly convertible to each other. However, this may have false positives.

2. Wildcard ('_') and binding (var x) patterns are universal, the order of match branches is important, so no patterns should appear after a first-level universal pattern. There is already the warning UNREACHABLE_PATTERN.

So the only actionable suggestion I see here is to add a warning when trying to compare int and float. Let me know if I missed anything.


Latest MoltenVK instable on iOS and macOS

Hello,
we tried to use the latest MoltenVK version 1.2.10 in our games. However, this version is quite unstable and crashes a lot compared to the previous release MoltenVK 1.2.9.
We can't pinpoint it down yet on whats causing this. We initially thought it had to do with the introduction of argument buffers, but even setting
mvkConfig.useMetalArgumentBuffers = false;
doesn't help. We still get random crashes either in vkQueueSubmit or in mvkUpdateDescriptorSets.
Any idea what new feature or code change could cause this so we can further investigate the possible causes?

We tried to pinpoint the issue with the latest MoltenVK version, but the results are very random. Again MoltenVK 1.2.9 works fine with no crashes in our game, but 1.2.10 just doesn't work.
A few crash cases:

One crash happens in 'void MVKSamplerDescriptorMixin::write(MVKDescriptorSetLayoutBinding* mvkDSLBind,...'
We get this error
_mvkSampler->reportError(VK_ERROR_FEATURE_NOT_PRESENT, "vkUpdateDescriptorSets(): Tried to push an immutable sampler.");
Then on another occasion we get this:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GCKeyboardInput gpuAddress]: unrecognized selector sent to instance 0x148108700'
*** First throw call stack:
(
	0   CoreFoundation                      0x00000001856fb2ec __exceptionPreprocess + 176
	1   libobjc.A.dylib                     0x00000001851e2788 objc_exception_throw + 60
	2   CoreFoundation                      0x00000001857ad56c -[NSObject(NSObject) __retain_OA] + 0
	3   CoreFoundation                      0x0000000185664f3c ___forwarding___ + 1580
	4   CoreFoundation                      0x0000000185664850 _CF_forwarding_prep_0 + 96
	5   Aerofly FS 4                        0x0000000101ce8894 _ZN22MVKMetalArgumentBuffer9setBufferEPU19objcproto9MTLBuffer11objc_objectmj + 72
	6   Aerofly FS 4                        0x0000000101d774b4 _ZN19MVKBufferDescriptor5writeEP29MVKDescriptorSetLayoutBindingP16MVKDescriptorSetjjmPKv + 252
	7   Aerofly FS 4                        0x0000000101cee3b0 _ZN16MVKDescriptorSet5writeI20VkWriteDescriptorSetEEvPKT_mPKv + 384
	8   Aerofly FS 4                        0x0000000101cedfbc _Z23mvkUpdateDescriptorSetsjPK20VkWriteDescriptorSetjPK19VkCopyDescriptorSet + 120
	9   Aerofly FS 4                        0x0000000101cfe674 vkUpdateDescriptorSets + 80

And another one in 'class MVKDescriptorSet : public MVKVulkanAPIDeviceObject {'

bool hasMetalArgumentBuffer() { return _layout->isUsingMetalArgumentBuffers(); };
In this case, the _layout pointer is zero.
Any idea what might be wrong here? Our game passes Vulkan validation on Windows and Linux and we don't observe any issues with MoltenVK 1.2.9.
Our development machine is an Apple M1 MacBook Pro with the latest macOS version.

Another crash happens if I disable metal argument buffers. I then get a
[mvk-error] VK_ERROR_OUT_OF_DEVICE_MEMORY: MTLCommandBuffer "vkQueueSubmit MTLCommandBuffer on Queue 0-0" execution failed (code 3): Caused GPU Address Fault Error (0000000b:kIOGPUCommandBufferCallbackErrorPageFault) [mvk-info] Encoders for 0x6000022b6940 "vkQueueSubmit MTLCommandBuffer on Queue 0-0": [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed [mvk-info]  - vkCmdDispatch ComputeEncoder: completed [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: affected [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: affected [mvk-info]  - vkCmdBeginRenderPass RenderEncoder: completed
As it happens so randomly, it's hard to further debug this issue. So any idea would be appreciated.

Is there some way that we can replicate this locally? Do you have a game demo we can try here?

Without the ability to test your app, I'm somewhat stabbing in the dark, but PR #2293 may fix some or all of the issues reported here.
Please retest with that PR included, and report results back here. Thanks.

Thank you for your reply. Unfortunately it's difficult to send you something to check and debug it locally on your side.
I also downloaded the latest PR #2293, but the crashes still happen but there is no clear point on where it happens. One crash log for example is this
CVDisplayLink (10)#0	0x000000018556ea60 in __pthread_kill ()
#1	0x0000000105052be8 in pthread_kill ()
#2	0x00000001854b3a30 in abort ()
#3	0x000000018555dd08 in abort_message ()
#4	0x000000018554dfa4 in demangling_terminate_handler() ()
#5	0x00000001851ec1e0 in _objc_terminate() ()
#6	0x000000018555d0cc in std::__terminate(void (*)()) ()
#7	0x0000000185560348 in __cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) ()
#8	0x000000018556028c in __cxa_throw ()
#9	0x00000001854dea28 in std::__1::__throw_system_error(int, char const*) ()
#10	0x00000001854d272c in std::__1::mutex::lock() ()
#11	0x00000001074dc5f4 in std::__1::lock_guard<std::__1::mutex>::lock_guard[abi:ue170006](std::__1::mutex&) at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__mutex/lock_guard.h:35
#12	0x00000001074d9438 in std::__1::lock_guard<std::__1::mutex>::lock_guard[abi:ue170006](std::__1::mutex&) at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/c++/v1/__mutex/lock_guard.h:34
#13	0x0000000107587740 in MVKBufferView::getMTLTexture() at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm:292
#14	0x00000001075e1b9c in MVKTexelBufferDescriptor::write(MVKDescriptorSetLayoutBinding*, MVKDescriptorSet*, unsigned int, unsigned int, unsigned long, void const*) at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm:1295
#15	0x00000001074bfbd8 in void MVKDescriptorSet::write<VkWriteDescriptorSet>(VkWriteDescriptorSet const*, unsigned long, void const*) at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm:444
#16	0x00000001074bf7c0 in mvkUpdateDescriptorSets(unsigned int, VkWriteDescriptorSet const*, unsigned int, VkCopyDescriptorSet const*) at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm:1116
#17	0x00000001074f0d68 in vkUpdateDescriptorSets at .../MoltenVK/MoltenVK/Vulkan/vulkan.mm:1257

And here another one:
CVDisplayLink (10)#0	0x00000001851f02d4 in class_data_bits_t::setData(class_rw_t*) ()
#1	0x00000001851cd82c in realizeClassWithoutSwift(objc_class*, objc_class*) ()
#2	0x00000001851efe40 in realizeClassMaybeSwiftMaybeRelock(objc_class*, locker_mixin<lockdebug::lock_mixin<objc_lock_base_t>>&, bool) ()
#3	0x00000001851d2564 in lookUpImpOrForward ()
#4	0x00000001851d1f64 in _objc_msgSend_uncached ()
#5	0x0000000108c98534 in MVKMetalArgumentBuffer::setSamplerState(id<MTLSamplerState>, unsigned int) at /..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm:72
#6	0x0000000108dc12e0 in MVKSamplerDescriptorMixin::write(MVKDescriptorSetLayoutBinding*, MVKDescriptorSet*, unsigned int, unsigned int, unsigned long, void const*) at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm:1131
#7	0x0000000108dc1690 in MVKCombinedImageSamplerDescriptor::write(MVKDescriptorSetLayoutBinding*, MVKDescriptorSet*, unsigned int, unsigned int, unsigned long, void const*) at ..../MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptor.mm:1215
#8	0x0000000108c9fbd8 in void MVKDescriptorSet::write<VkWriteDescriptorSet>(VkWriteDescriptorSet const*, unsigned long, void const*) at /Users/aerofly/bubu/bubu_molten_vk_test_dont_delete/extern/MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm:444
#9	0x0000000108c9f7c0 in mvkUpdateDescriptorSets(unsigned int, VkWriteDescriptorSet const*, unsigned int, VkCopyDescriptorSet const*) at /Users/aerofly/bubu/bubu_molten_vk_test_dont_delete/extern/MoltenVK/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm:1116
#10	0x0000000108cd0d68 in vkUpdateDescriptorSets at ..../Vulkan/vulkan.mm:1257

What puzzles me a little is the faxct that the call stack shows 'MVKMetalArgumentBuffer::setSamplerState'  even though I disable the MoltenVK argument buffer support uses this code:
  const char *layer_name = kMVKMoltenVKDriverLayerName;

  const VkBool32 setting_true  = VK_TRUE;
  const VkBool32 setting_false = VK_FALSE;
  const uint32_t setting_prefill_metal_command_buffers = MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_NO_PREFILL;
  const uint32_t setting_semaphore_support_style       = MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE_METAL_EVENTS_WHERE_SAFE;
  const uint32_t setting_log_level = 0;

  const VkLayerSettingEXT settings[] =
  {
    { layer_name, "MVK_CONFIG_DEBUG",                                VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_DISPLAY_WATERMARK",                    VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_FAST_MATH_ENABLED",                    VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS",            VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS",           VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_false },
    { layer_name, "MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y",      VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE",              VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_SWAPCHAIN_MIN_MAG_FILTER_USE_NEAREST", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true },
    { layer_name, "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS",        VK_LAYER_SETTING_TYPE_INT32_EXT,  1, &setting_prefill_metal_command_buffers },
    { layer_name, "MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE",           VK_LAYER_SETTING_TYPE_INT32_EXT,  1, &setting_semaphore_support_style },
    { layer_name, "MVK_CONFIG_LOG_LEVEL",                            VK_LAYER_SETTING_TYPE_INT32_EXT,  1, &setting_log_level }
  };

So it seems like metal argument buffers are still used even though I changed the config value? I do get the same crashes if I enable the Metal argument buffers.
Maybe you can point me in any direction of what might cause these instabilities?
I would like to point out, it happens on macOS and iOS.

Looks like some slightly different errors now.
All the errors we've been dealing with are happening in vkUpdateDescriptorSets(), and based on your description of behaviour, are race-condition errors.
The big change in vkUpdateDescriptorSets() behaviour from 1.2.9 to 1.2.10 is that under 1.2.9 the Vulkan resource objects were simply copied into internal descriptor objects, but were not otherwise interacted with, whereas, 1.2.10 also interacts with the objects to retrieve the Metal resources to insert into the Metal argument buffer. It's this interaction with the Vulkan objects that seems to be the source of all these errors.
Since these are race-condition errors, one possibility is that a Vulkan resource object may have been destroyed before being submitted to vkUpdateDescriptorSets(). This wouldn't be a problem in 1.2.9 because those objects are not interacted with, but it is a problem in 1.2.10, where they are interacted with.
Can you investigate in your code whether it's possible that Vulkan resource objects may be destroyed before being submitted to vkUpdateDescriptorSets()?
The bool hasMetalArgumentBuffer() { return _layout->isUsingMetalArgumentBuffers(); }; error you mention above may also be caused by a descriptor set being freed before being submitted to vkUpdateDescriptorSets().

Thanks for pointing out the problem with the config settings not being respected when set via VK_EXT_layer_settings. I've confirmed that is a problem, particularly for MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS.
I'll add a fix for that to this PR. In the meantime, you can set MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS as an environment variable when launching the app.

Sorry for the late reply. I downloaded the latest MoltenVK now and the VK_EXT_layers_settings now works as advertised.
If I run our game now with MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS disabled ( using VK_EXT_layers_settings ), everthing now works fine and we do not observe any crashes on macOS and iOS.
However if I enable MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS I still observe the crashes.
So it seems like our crashes are indeed linked to the new metal argument buffer support.
If I find some more time, we will investigate this issue further and trying to take into account what you said in your previous posting.


"kubernetesIngress" provider does not detect protocol for backend pods correctly

Do you want to request a feature or report a bug?
Bug
Did you try using a 1.7.x configuration for the version 2.0?

[ ] Yes
[x] No

What did you do?
Per the discussion in the Discourse "Traefik v2" topic Kubernetes Ingress annotation doesn't force HTTPS to backend pods, the three ways supported by earlier versions of Traefik to indicate that a Kubernetes Ingress object requires HTTPS communication don't work properly in Traefik version 2 (as of version 2.0.0-beta1). The only method that works as advertised is detecting that a Kubernetes Service port has a name and the name starts with "https."
Suppose you have a Kubernetes Ingress object pointing at a Service for which the backing server pods speak HTTPS. You want Traefik to use HTTPS for its proxy connections to these upstream servers. If your Service port either lacks a name or has a name that doesn't start with "https," you want to fall back to one of the other two methods that used to work in earlier versions of Traefik.
First, the Ingress annotation "ingress.kubernetes.io/protocol" with a value of "https" would allow you to request use of HTTPS regardless of your Service ports; neither the name nor the port value should matter. Traefik no longer honors this annotation.
However, if your Service port—not the target port on the backing pod container, but rather the port on which the Service listens to receive connections—is 443, and if that port is selected by the Ingress rule, then Traefik should use HTTPS. Traefik tries here, but gets the implementation wrong.
What did you expect to see?
An Ingress object annotated with a key of "ingress.kubernetes.io/protocol" and a value of "https" pointing at a Service port that lacks a name—or has a name that doesn't start with "https"—should use HTTPS.
Alternately, an Ingress object pointing at a Service port that's not named but has a value of 443—regardless of the target port used by the selected pods—should use HTTPS.
What did you see instead?

Output of traefik version: (What version of Traefik are you using?)
v2 Beta 1

What is your environment & configuration (arguments, toml, provider, platform, ...)?
The "kubernetesIngress" provider is active.
Detailed Problem Analysis
Let's review the first Ingress inspection predicate, as written for the previous version of Traefik:

If the service port defined in the ingress spec is 443 (note that you can still use targetPort to use a different port on your pod)

At present, the documentation for Traefik version 2's "kubernetesIngress" provider makes no such promise, but the code is adapted from the earlier version of Traefik, and is clearly trying to implement this promise.
In file pkg/provider/kubernetes/ingress/kubernetes.go, rather than inspecting the EndpointPort.Port field at line 228, we should instead inspect the ServicePort.Port field, available in function loadService as the expression portSpec.Port. In other words, line 228 could read as follows:
if portSpec.Port == 443 || strings.HasPrefix(portName, "https") {

That's still not addressing taking the "ingress.kubernetes.io/protocol" annotation into account, but it's an improvement.
The test fixtures don't capture this case. The one that exercises this port 443 detection uses a Kubernetes Service whose service port is equivalent to its target port.
Note that this same problem afflicts the "kubernetesCRD" provider in file pkg/provider/kubernetes/crd/kubernetes.go, in the similarly named loadServers function here.

Hi @seh , thanks for this detailed report. Would you be willing to contribute by submitting a PR (on the branch v2.0?

Yes, I'd be happy to, provided that we agree on the proposed solution. I concede that there could be Services that have Endpoints not backed by pods, and it's possible that a Service's front-end port could be something other than 443, but then it turns out the Endpoint ports are 443. However, I think that goes beyond the heuristic that Traefik intended to apply here.
I'm not the designer, though; I just got here. Hence, we need your opinion as a longstanding project steward as to whether the current implementation is mistaken, or whether the specification was misworded.

I now see the "kind/bug/confirmed" label now, so perhaps that's enough to say that you agree with my interpretation.

Hi @seh,
We agree that the behavior should be consistent with the 1.7 branch, which checks the service ports, not the endpoints.

Closed by #5167.


Adding react native resource

related to #4

Hey @karpin00x !
Congrats on submitting your pull request and from what I can infer, this was your first pull request towards an open-source project. Thank you for giving this repository to help you guide in your first contribution. On behalf of everyone here, I'd like to welcome you to the open-source community!
You PR has been merged and the changes will be reflected on the website in a few minutes,.
Do leave a star, if you liked the repo ;)
Happy hacking ! 🎊


Fork choice: Remove redundant check in validate_on_attestation

Removes a redundant check from fork choice validate_on_attestation.
assert target.epoch in [current_epoch, previous_epoch] already asserts this.
I've raised this for a few reasons:

To ensure I'm not missing something.
If it's impossible to hit then it's impossible to test and I think we should remove it.
The "... delay consideration ..." note becomes ineffective if we can never reach it.

You are correct, but I might argue for still having the a comment above assert target.epoch in [current_epoch, previous_epoch] that says # If attestation target is from a future epoch, delay consideration until the epoch arrives

Done :)


BuildAddressables issues

I'm struggling to get BuildAddressables working properly. Occasionally I'm seeing the wrong Addressable sets copied when building multiple platforms; OSX getting the Android addressables, etc). BuildAddressables is tagged as a pre-build action.

@allansimonsen what is BuildAddressables, exactly? Is it a custom Build Action you've written yourself?

I am having this issue as well.
@robinnorth BuildAddressables is the "new" system unity is using for async loading of the assets<EMAIL_ADDRESS>I am trying to include the build of Addressables into the SuperUnityBuild by calling AddressableAssetSettings.BuildPlayerContent(); before the build but still can't figure out why the output is being mixed between the platforms :(.

Maybe I got it working and integrated into SuperUnityBuild. I'll do some more testing before creating a pull request
BuildProject.cs

Here the code you can try @allansimonsen
        // Build addressables
        #if UNITY_5_6_OR_NEWER
            EditorUserBuildSettings.SwitchActiveBuildTarget(platform.targetGroup, architecture.target);
        #else
            EditorUserBuildSettings.SwitchActiveBuildTarget(arch.target);
        #endif

        AddressableAssetSettings.BuildPlayerContent();

It's working great for me! Need a test on a project without addressables enabled
https://github.com/Chaser324/unity-build/pull/64

Closing in favour of creating an Addressables BuildAction, as per #64 (comment)