[Hub Generated] Review request for Microsoft.OffAzure to add version stable/2020-07-07

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
Contribution checklist:

[ ] I have reviewed the documentation for AME onboarding.
[ ] Validation tools have been run on swagger spec(s) updated and errors have all been fixed with this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[x] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.

adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Please follow the link to find more details on PR review process.

/azp run automation - sdk

Can one of the admins verify this patch?

Hi, Pls fix Prettier check error.

/azp run automation - sdk

Hi, Pls fix Prettier check error.

Fixed.

/azp run automation - sdk

"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OffAzure/MasterSites/{siteName}": {

You need paths for listing all masterSites. If this is a tracked resource, you must support list at RG scope and list at subscription scope.

Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:2593 in 304bf35. [](commit_id = 304bf35c2b817785bf1cc69f7a2e7eecb09d6da7, deletion_comment = False)

    "sites": {

How large does this get? Does it need to be a nested resource?

Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:4880 in 304bf35. [](commit_id = 304bf35c2b817785bf1cc69f7a2e7eecb09d6da7, deletion_comment = False)

/azp run automation - sdk

"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OffAzure/MasterSites/{siteName}": {

You need paths for listing all masterSites. If this is a tracked resource, you must support list at RG scope and list at subscription scope.
Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:2593 in 304bf35. [](commit_id = 304bf35, deletion_comment = False)

Added paths for listing all masterSites at RG scope and subscription scope.

    "sites": {

How large does this get? Does it need to be a nested resource?
Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:4880 in 304bf35. [](commit_id = 304bf35, deletion_comment = False)

After the introduction of master site, we plan to restrict creation of only one site per type. The sites list will be of size 4 and it will increase when we add a new site type.
This list might increase when we support brownfield customers but the list shouldn't be in tens, not more than that.
We are storing this data in MasterSite properties as a list of strings.

"/subscriptions/{subscriptionId}/providers/Microsoft.OffAzure/MasterSites": {

You should consider adding paging to list calls even if the service only returns everything as one page right now. (Adding paging in the future will likely be breaking changes, so getting in front of that is usually a good idea.)
This applies to listing by RG also.

Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:2593 in 3bc0a07. [](commit_id = 3bc0a072b20f44c5e5dd7ab1613f0800fd641021, deletion_comment = False)

/azp run automation - sdk

"/subscriptions/{subscriptionId}/providers/Microsoft.OffAzure/MasterSites": {

You should consider adding paging to list calls even if the service only returns everything as one page right now. (Adding paging in the future will likely be breaking changes, so getting in front of that is usually a good idea.)
This applies to listing by RG also.
Refers to: specification/migrate/resource-manager/Microsoft.OffAzure/stable/2020-07-07/migrate.json:2593 in 3bc0a07. [](commit_id = 3bc0a07, deletion_comment = False)

Fixed 👍


match_opcode miss some opcode

Hi, awesome project!
But, match_opcode miss some common opcode, like"li , mv"

Sorry for : https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md
look "li..." is a pseudo instructions

Thanks for the interest! Haven't worked on this in a while but it's not "abandoned" per se. If you see anything else missing just open an issue.

thanks, i open a pr,have a look when you have time~

thanks, i open a pr,have a look when you have time~


The task is not stopped when "await BackgroundJob.stop();"

Using the sample application, I added a new TouchableOpacity to call the function "BackgroundJob.stop ()", but when I click on it the loop still sends console.log with "Runned -> index"

@gabriel1lima, you are right, thanks for the feedback! I will release a fix as soon as possible.

Thanks!
Why does it happen? Could you give me a quick solution where I could mess with the lib code and make it work, because I am in urgent need of this functionality that your lib offers

@gabriel1lima, it happens because when the task is "killed", but the promise has not finished, the "killing" process will wait until the promise resolves (maybe indefinitely). The React Native Headless JS docs do not say much about it.
A solution could be to subscribe the background action to an event that causes the promise to resolve. Example code:
const eventEmitter = new EventEmitter();

const backgroundTask = async (asyncData) => {
  await new Promise((resolve) => {
     eventEmitter.addListener('close', () => resolve());
     // Do other stuff
  };
}

// Anywhere else
eventEmitter.emit('close');

I didn't understand where I should add this code, you could exemplify.

I have updated the example code with a more functional one, it may serve you as an example. However, it does not work perfectly.
I am working on an improved API and more useful (non-serializable) parameter handling. Keep in mind that the example might be updated in a few hours.

Thanks!

@gabriel1lima, I have released a new version (v2.1.0), updated the usage documentation and refactor the example code removing the need for an EventEmitter.
I hope this fixes your issue, feel free to reopen this issue if your problem persists.

Hi @Rapsssito, i confirm that the BackgroundJob.stop() works, but i have a similar problem to this closed issue: putting BackgroundJob.stop() inside a componentWillUnmount when the app close, the promise doesn't end, i suppose beacouse the app close before the promise resolves. There's a way be shure that the app doesn't close before the promise ends, or make the promise ends by another way?


Option parsing fixes when args have unexpected suffixes

If a flag has an unexpected suffix and is not supported by the current driver mode, diagnose it as an unsupported option instead of being available in another mode
Reject 'separate' options if they have an unexpected suffix

@swift-ci please test


Questions about compatibility

Is it possible to make Immersive Engineering Assembler recipe unique? I mean.. is possible to make custom recipes that works only in IE automatic Assembler?
This was the first question,
the other one is one that I've already posted on minetweaker 3 forum thread;
Are the Magneticraft electric tools supported?
I noticed that Magneticraft in general is supported (mainly for machinery), but I was wondering if I can use Magneticraft electric tools (such as chainsaw) for craftings and make them discharge as much as you can do for IC2 electric items
Crafting with electric items
You can use and discharge IC2 tools in crafting recipes. For example:
val chainsaw = IC2:itemToolChainsaw.anyDamage();
recipes.addShapeless(minecraft:stick * 3, [ore:plankWood, chainsaw.onlyIC2ChargeAtLeast(100).transformIC2Discharge(100)]);
the Magneticraft chainsaw has these infos:
Magneticraft:item.chainsaw:1.withTag({Charge: 500000})
the charge tag is not needed in this case, I guess...
if the answer is yes, the question is "how?"
I've tryed some pattern like that one above but I still wasn't able to adapt it and make it work
All of this using the latest version of Forge (1614)  and latest of CraftTweaker  (for 1.7.10)

I don't add support for IE.
nope

You mean that you don't add further support to IE, since IE is already mostly supported from base minetweaker.
Btw, there is no need to be so rude :/
(idk, probably this is your normal way to reply when you're in hurry... it just gave me that impression..)

I don't know what you want to do with IE, what I'm saying is that I don't add support for it, the support is added through IE itself, so if it is for an IE machine, you need to speak to them

Yeah, you're right in effect.. but well, wrote in this was your phrase is more likely friendly and comprehensive :)
Just a last thing, since idk if it would be worth to open another issue for this;
In the minetweaker wiki, when you look on the better storage compatibility it says that both the two fuctions:
"mods.betterstorage.CraftingStation.addShaped"
and
"mods.betterstorage.CraftingStation.addShapeless"
can be used to remove recipes too:
"Each of these handlers can have recipes added or removed"
But it does make any example about the remove version of the function..
I've tryed
mods.betterstorage.CraftingStation.remove
and
mods.betterstorage.CraftingStation.removeShapeless
and so on but minetweaker still says that are not valid functions (so it's not a correct syntax)
What should I try?
I'm tryng to get rid of the dupe glitch in the crafting station by removing the glitched recipes, but I've not figured out if there really is a remove function for that as the wiki states..

That is another one that we don't add support for, it would be better to make an issue on the better storage issue tracker

I will :)
Thanks

I will :)
Thanks
Btw, almost forgot, so in the end, is the wiki wrong?
there is no remove function even if it says that those functions works in both cases?

I'm not sure, I have never looked into the mod


notebook() blocks the current process.

When doing:
using IJulia; notebook()
The terminal gets blocked, it would be nice to be able to continue working in the same terminal after the fact, this can be done with:
using IJulia; @async notebook()
It would be nice if notebook ran asynchronously by default instead. So that one could continue using the terminal, this is specially useful from a user perspective, since after calling notebook we can't see the server messages update anymore, like if we did:
jupyter notebook
instead from the shell.
So I think either notebook should not block the process or if it's decided it's better this way, it would be useful if it printed out the server messages this would be useful for debugging purposes, currently if something fails I have to use jupyter notebook manually in order to see such messages.

notebook(detached=true) Since this is possible to do and documented and since that makes exiting harder I think we should keep the same default.

Also why does it block it so much that I can't even CTRL-C to get back to the julia prompt?

@yuyichao Ah I see what you mean, it should be added that notebook(detached=true) will not only persist after the julia process exits, but that it will also wont block the current running process, thank you very much!

I have updated my readme PR at #459, so hopefully new users will have a better workflow experience.


'support  application/octet-stream'

support  application/octet-stream

why

I am happy to review after broken tests are fixed

Closing as abandoned. Please reopen a new PR with passing tests if you'd still like to get this merged.


Update draft environment SSH config

These jumpbox hostnames were originally added before we decided to use publishing.service.gov.uk.

:+1:


Responsiveness of description box

Margins and paddings need to be fixed.. as one example:

added top margin in commit dbfc377


A G Clef is not a Music Note

Just doing a little copy editing here; a G-Clef is not a Music Note. I'd suggest: "Music Sign" or "Music Symbol".

That makes sense, thanks!


Merging variants sorting algo

Hi,
This week we also merged the variant sorting algorithm into the resources2 branch.
While all the unit tests passed, there was one thing that was not covered by the UT but sort of broke one tool we have on top of rez.
We discovered that there is a small issue with the indexes (that are sorted by the variant solving algorithm) at the time the resolved context, .rxt file is saved.
I'll put the comments in the code.
Fede

Hi,
Actually, I am able to pass all the UT only with setting max_depth = 0, plus there are a few other things I did in this merge, that might be dubious. I think Alan is still taking a look at it.

The way you are merging it in this PR seems that is reverting some of the changes in resource2.
Do you want me to send just the diff of solver.py  (resource2 vs  resource2 + variantSorting) ?
or perhaps in my fork update the PR against resource2?

I think a diff would work fine, and yes, my merge is a little shabby.
I'm still fresh to the rez world.
Thanks for your comments.

Hey @fnaum, @holofermes,
Just a note on PackageVariant that might help clear things up. The solver code is almost completely separated from the rest of Rez (this is deliberate - I would like to extract it completely one day). PackageVariant is the solver's own copy of the variant data it needs in order to do its thing. "userdata" is just blind data that the solver keep attached to each variant, then ends up giving back in the result. So the solver should DEFINITELY not be using anything from within userdata. Usedata could be None and the solver should still work.
Thx
A

HI Allan, Fabio
Thanks for the clarification, I guess then the best way (if we are going to
go ahead with that implementation of the variant sorting) is to add an
extra attribute to PackageVariant (unsorted_index) and then revert back
from that one at the end of the solve. I made that change, so now I'm not
touching the userdata
I have attached the diff, also included the file in case you want to copy
directly into a rez working copy with the resource2 branch checked out
Cheers
Fede

Looks like  github blocked the attachments, I've sent you the diff via email

Hi,
Thanks for the files.
I definetely made more changes than necessary, but even with your diff, I'm still getting 4 failures from UT:
test_variant_selection_requested_priority_3
test_asymmetric_variant_selection
test_variant_with_antipackage
test_variant_with_weak_packages
Can't upload files from here, so here's a gist of the test's output.

Hey all,
I've just spent a day looking over all this work and trying to come up with something that gives similar, sane variant ordering but with less code (so performance isn't hit too much). I have a contender in the new 'variant_sorting' branch. I think the trick here is to not worry too much about getting the 'most correct' answer in every edge case - because regardless of how good the variant sorting is, it's already been shown that we can never be guaranteed exactly the variants we might expect to get. At best, if we have non-mutually-exclusive variants in a package then we can only hint at which variant we would like - we do need a new feature that allows us to explicitly request a variant.
So, it behaves like so... consider the pkg:
name: bah
- [ foo-1, maya-2016 ]
- [ maya-2015, boost-1.56 ]

Consider the request "rez-env maya boost bah". Variant #1 is the correct choice, because 'maya' pkg has priority, and this variant has the highest version of maya. Looking at the current sorting code I think there was a problem here - in this eg var #2 has the higher 'intersecting weight' and so would have been chosen first.
The rules I'm using are as follows:
(A) create a list of (-position, version-range) for each pkg in the variant that is also in the initial request list;
(B) create a list of version-range for every other pkg in the variant that is NOT in the initial request;
(C) Create the following tuple:
(A, -len(B), B, variant-index)
(D) Use this tuple as the variant sort key.
So in layman's terms we're sorting first by the presence and version of requested packages, then by the number of non-requested packages, then by the versions of non-requested packages, then by the variant index (this is arbitrary - it just gives us repeatable order).
So the two variants above will get the sort keys:
([(0, 2016)], -1, [1], 0)
([(0, 2015), (-1, 1.56)], 0, [])
Some important points-

The variants don't actually need to be sorted until a split() occurs (I've done this here);

Indices don't need to be reordered. The order of variants in the sorter isn't related to the original variants' indexes. So we can actually shuffle variants around inside the sorter to our heart's content - the variant indexes don't really matter (in fact they're only present in the PackageVariant class largely so the debug output can print something readable). This isn't immediately obvious.

I initially "improved" the sorting by having it based on the current request list, rather than just the initial request list. But this isn't actually a good thing - I think that using the current state of the solve to order variants is a bad idea, because it ties us to this solver implementation too much. For example in a SAT solver, it would be impossible to mimic this behaviour. This behavious so so subtle it's hard for any user to understand anyway - I don't think it really gives us anything.

I initially was using a 'positional weight' like the PR too, but then I realised that we're not getting much for the extra cost - this only takes effect for strange variants such as:

[foo-5, bah-6]
[foo-5, bah-5]
[bah-7, foo-5]
..in this example it isn't even really clear if preferring 'foo' is correct - there isn't any one clear sorting rule. I've opted to keep it simple - in a request not including foo or bah, the above will result in var2 as first preference, then var0, then var1.

Thx
A

Hi Allan,
Thank you so much to for looking into this. I don’t remember the performance of the variant sorting being a big issue (something like 0.09 sec in a ~170 packages environment) but I'm all for less code and a simpler algorithm, and of course any little gain in performance is desirable if we can still get some “predictable” resolves. I also agree with you that we should not focus on this obscure cases I wrote in the unit tests and make the whole thing simpler.
The algorithm you describe sounds ok to us, but I don’t think we will be able to use it until we have a feature that allows us to explicitly request a particular variant.  The way some of our packages are modelled means we need to use the 'intersecting weight' strategy over the the 'highest version' of the packages in the request.  For us to be able to stay in sync with 2.0/resources2 more easily would it be possible to make the sorting configurable?  Perhaps a configuration option for the solver sorting which is either "intersecting" or "highest"?  We understand this is maybe not compatible with future solver changes (SAT) but helps us stay up-to-date while we re-arrange our packages?
On the other hand, does explicitly requesting a variant create a tight coupling between the packages?  I guess this is more a problem where we have variants that aren't mutually exclusive but to have that apply across an entire resolve everything would have to explicitly request the specific variant.  Currently the sorting is doing that for us.
Regarding your points:

That’s a great point, the second time a looked into this with a little bit more understanding of the solver step I thought that was possible, but I did not want to introduce changes until you and Fabio had taken a look at it.

Good to know that.

We thought about that, but at that point we could not decide whether that was preferable.. With the later point your mentioned about changing the solver in the future, then I agree we should base it on the initial request list.

Agree. Simpler is better, and I don’t think we have such a contrived use case in real life.

Cheers
Fede

Hey Fede,
So RE intersecting weight - are you intersecting only with the original request list, or with the current solver request list? And would intersecting only with the original list suffice? I say because this relates to something I've already raised - that choosing variants based on the current solver state is probably a bad thing.
So just so I understand, you're saying that you guys are definitely relying on intersecting weight taking precedence over highest package version? Ie, in my original example earlier, you need for the second variant to take precedence, even though it has a lower version of maya?
If you need that for now then I think we could add a config option. It only slightly changes the sorting code. I'll wait to hear back from you before doing this just so we both fully understand the situation (I think I do though). I think from a purely theoretical POV that the current sorting is more "correct" (because package order precendence is one of the fundamental rules in the solver) but I understand if you need other behaviour until a manual variant selection feature is added.
Speaking of manual variant selection, I would see this being used mostly by the user, rather than in package requirements (since it does couple package together somewhat), but I also think there will be unavoidable cases where we'll have to use it in package requirements. Whatever gets the job done I guess.
Thx
A

Hi Allan,
We were only intersecting with the original request list not with the current solver req list. I does suffice for us ...at least it seems enough in all our use cases (UT and IT) and production.
Correct,  we do rely on intersecting weight taking precedence over highest version. In your previous example the 2nd variant will be the correct for us. We prefer the variant that is more similar to our initial request. Lacking the feature for manually selecting a version, we found this way to hint the solver to try that variant "we want" first. But as you said , if later there is a method to explicitly tell what we want then we can revert back to the more theoretical correct sorting.
That would be great if you can add that config option for us. Thank you so much.
I agree with you, I see the users using manual selection, but I'm pretty sure that if someone building a package sees the 'power' to do that inside a package they will definitely use it to get the job done.
Thanks and have a good Easter break
F

Hey Fede,
I've just pushed an update to 'variant_sorting' branch. To turn on intersecting weight precedence, set this config option:
variant_select_mode: intersection_priority

I haven't included any UTs for this. I'm in two minds about it - now that there are two configurable modes, there are an awful lot of different cases to test - but not much code involved to actually do the sorting. Perhaps if we hit any problems testing this out I'll start adding back some UTs.
Anyway let me know if this behaves the way you expect, if and wen it does I'll merge back to resources2.
Thx
A

Thank you Allan,
We will pull this change and test using our integration tests, if they
pass, that will give us lot of confidence.!!
We'll be back with the results pretty soon as we want to integrate  the
whole resource2 branch and make a release of that version.
F
On Fri, Apr 3, 2015 at 10:44 AM, allan johns<EMAIL_ADDRESS>wrote:

Hey Fede,
I've just pushed an update to 'variant_sorting' branch. To turn on
intersecting weight precedence, set this config option:
variant_select_mode: intersection_priority
I haven't included any UTs for this. I'm in two minds about it - now that
there are two configurable modes, there are an awful lot of different cases
to test - but not much code involved to actually do the sorting. Perhaps if
we hit any problems testing this out I'll start adding back some UTs.
Anyway let me know if this behaves the way you expect, if and wen it does
I'll merge back to resources2.
Thx
A
—
Reply to this email directly or view it on GitHub
https://github.com/nerdvegas/rez/pull/165#issuecomment-89081428.

Hi Allan,
We merged those changes today, and we have a couple of UT and IT failing.
They do fail because the last (arbitrary) criterion of the sorting now is the variant index (arbitrary but repeatable sort order), and before we used to rely in alphabetical order as the last resource .
Consider:
packageA
 - ALboost-1.55.0
 - boost-1.55.0

and
packageB
 - boost-1.55.0
 - ALboost-1.55.0

Where boost and AL_boost are not mutually exclusive, then
rez-env packageA packagesB
will end up with one of each variant and we want both to be the same
packageA-1.0.0     packageA/1.0.0/boost-1.55.0
packageB-1.0.0     packageB/1.0.0/AL_boost-1.55.0

So, sorting by variant index is arbitrary and give you repeatable solves across runs, but to get the consistent variants when not specified across packages it needs that all packages have the variants written in the same order, ie. first the boost variants then the AL_boost variants
Sorting alphabetically as the last criterion, is also arbitrary, but it gives you consistency between runs and also across variants of the packages regardless the order in which they were written.
Of course, we know that that is a vague question to rez, and if we give more clues to the solver specifying boost or AL_boost then we get  consistent variants across packages.
what do you think?

Hey Fede,
Sorry I'm not quite sure from your description if you want to sort on highest package versions THEN alphabetical, or alphabetical THEN highest version? What if we had:
packageA
 - ALboost-1.55.0
 - boost-1.57.0

and

packageB
 - boost-1.57.0
 - ALboost-1.55.0

Are you saying you would want to get the ALboost variant here, even though the boost version is higher, or not?
I've pushed an update that sorts on alphabetical as last resort (higher version takes precedence). Let me know if that gives the results you're after. Note that index is still used as a very last resort - see the docstring on sort_variants().
Thx
A

Hi Allan,
Thank you so much for the quick turn around. This gives us what we are after.
I don't mind if it is higher version and then alphabetical or vice-versa .What we care is that if no package name from the variants is specified in the request and more than one package have the same variants, then it choose the same variant for all of them.  In your example above if it chooses boost-1.57.0 for all packages we are good !!
So we are all good now!! Thanks again!
We are going to release this version today and have a handful of people testing with production packages and presets.
Cheers
Fede
PS: This ends up sorting it in reverse alphabetically because line 712, but this is still OK, as I  said we care that it takes the same variant if available

Great news! I'll do the merge after your testing goes ahead. Good to have this one out of the way.
I've merged the new string escaping with resources2 today btw too. I think we're starting to get into good shape. Still have those pesky docs to write though.
A
Sent from my iPhone

On Apr 9, 2015, at 10:34 PM, Federico Naum<EMAIL_ADDRESS>wrote:
Hi Allan,
Thank you so much for the quick turn around. This gives us what we are after.
I don't mind if it is higher version and then alphabetical or vice-versa .What we care is that if no package name from the variants is specified in the request and more than one package have the same variants, then it choose the same variant for all of them. In your example above if it chooses boost-1.57.0 for all packages we are good !!
So we are all good now!! Thanks again!
We are going to release this version today and have a handful of people testing with production packages and presets.
Cheers
Fede
PS: This ends up sorting it in reverse alphabetically because line 712, but this is still OK, as I said we care that it takes the same variant if available
—
Reply to this email directly or view it on GitHub.

Hey @fnaum, any movement on this? I'd like to go ahead and merge with resources2.
Thx
A

It is working quite well, a bunch of us have been using it internally in RnD and nobody reported any problem with the way it picks the version. UT and IT are all succeeding.
Even more, today we found an edge case where using the old variant sorting algorithm ended up in infinite loop, but this version handled without a hitch
So I'll say it is gold to be merged on resources2 :+1:
Thanks a lot
Cheers
Fede

I've just merged 'variant_sorting' branch into resources2, which deprecates this PR, so closing (finally!)

Awesome!!
Thanks!
On Wed, Apr 22, 2015 at 5:49 AM, allan johns<EMAIL_ADDRESS>wrote:

Closed #165 https://github.com/nerdvegas/rez/pull/165.
—
Reply to this email directly or view it on GitHub
https://github.com/nerdvegas/rez/pull/165#event-286565530.


Inconsistent behaviour when special characters are used in the pseudonym

Pack - beta2
Inconsistent behaviour when special characters are used in the pseudonym
Original
'dilini<EMAIL_ADDRESS>[-1234]' logged out at [2018-03-13 09:39:11,0742]

pu = remove!wso2
command run = ./forgetme.sh -U<EMAIL_ADDRESS>-pu removewso2is-5.5.0-beta2/bin/
replaced value = 'removewso2is-5.5.0-beta2/bin/ [-1234]' logged out at [2018-03-13 09:39:11,0742]

pu =<EMAIL_ADDRESS>Error =<EMAIL_ADDRESS>command not found
replaced value = 'remove [-1234]' logged out at [2018-03-13 09:39:11,0742]

Need to mention the supported values for the pseudonym or handle the special characters properly

Updated the doc with allowed characters.


[BUG] musl binaries overwrite ones built for the normal glibc

Entries here
https://github.com/mono/SkiaSharp/blob/621c52043ed69f639d798e1e96fc48f52d75c40d/binding/SkiaSharp/nuget/build/net462/SkiaSharp.targets#L46
and here
https://github.com/mono/SkiaSharp/blob/621c52043ed69f639d798e1e96fc48f52d75c40d/binding/HarfBuzzSharp/nuget/build/net462/HarfBuzzSharp.targets#L47
get copied to the same directories as normal glibc-built binaries which makes MSBuild to overwrite normal ones with musl ones. That essentially breaks SkiaSharp with desktop Mono.

Indeed. That is a very useful observation... 🤦
Is there a way to detect MUSL at runtime so I can correctly load from a different folder?

Thanks for reporting this and sorry for the long delay. I was doing crazy things with MAUI. I see what I did was basically dumb. What would work in a typical case? Would you want to compile for both glibc and musl and have some runtime check (that I am not sure of the best way to do) or have a project property that you set, say <PreferMuslSkiaSharp>true</>?

PreferMuslSkiaSharp looks like a decent solution, yes.

@kekekeks this seems to be a nice solution that does not require any changes to the project files: https://github.com/mono/SkiaSharp/pull/1657
It also supports the magic of running anywhere if you copy the output dir. No need for Musl-specific builds.


chore: update GroupChatExtension.cs

Why are these changes needed?
initalize -> initialize
Related issue number

Checks

[ ] I've included any doc changes needed for https://docs.ag2.ai/. See https://docs.ag2.ai/docs/contributor-guide/documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Thanks @eltociear . I remember you as a contributor to AutoGen before. Welcome back.

@eltociear would you be able to DM me on Discord, msze_, with your name and email so I can send through a CLA (Contributor License Agreement) for your contribution?


Remove version: RoyQu.RedPanda-C++ version 2.10

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: URL works;


[Infinite loop] D403 Docstring not starting with a letter

D403 should check that the first character of a docstring is a letter :
D403 First word of the first line should be capitalized: `'ele'` -> `'ele'`

Can you include your Ruff version? Thought we fixed this in a recent release.

No worries, if it pops up again feel free to re-open.


136 add regex filter

closes #136
Branching checklist

[ ] There is an issue associated with your PR (bug, feature, etc.. if not, create one)
[ ] Your PR description references the associated issue (i.e. fixes #123)
[ ] Code is in its own branch
[ ] Branch name is related to the PR contents
[ ] PR targets master

Static analysis checks

[ ] All rust files are formatted using cargo fmt
[ ] All clippy checks pass when running cargo clippy --all-targets --all-features -- -D warnings -A clippy::deref_addrof
[ ] All existing tests pass

Documentation

[ ] New code is documented using doc comments
[ ] Documentation about your PR is included in the README, as needed

Additional Tests

[ ] New code is unit tested
[ ] New code is integration tested, as needed
[ ] New tests pass

[ ] config.rs

[ ] add new value to Configuration struct
[ ] update Configuration::default with new value
[ ] update Configuration docstring with the new value/default (if appropriate)
[ ] update Configuration::new so that the new value is stored in config
[ ] update Configuration::merge_config with new value
[ ] update Configuration::tests::setup_config_test with new value
[ ] add unit test to check config parsing

[ ] ferox-config.toml.example

[ ] add new value to example config

[ ] banner.rs

[ ] add new check for the value in banner::initialize
[ ] create new entry to be written in the banner for the new value

[ ] add new emoji to the entry (should be somewhat related to the value name)

[ ] add new integration test (tests/test_banner) or update existing so that it's displayed under test

[ ] Cargo.toml

[ ] bump version: add 1 to minor release and set patch release to 0

[ ] README.md

[ ] update default config section (if needed)
[ ] update example config file section
[ ] update help output section
[ ] add an example with a heading that conforms to others (new in v1.4.0...)

[ ] add an entry for the example in the table of contents

[ ] parser.rs

[ ] add the option to the parser

[ ] wherever.rs

[ ] implement the new feature


useForm: add a way to pass fallback values

Summary
When using loadInitialValues with useForm, the values returned by the hook are empty until loadInitialValues completes.
We should provide a way to pass fallback values to useForm that the hook will return until loadIntialValues completes.
Basic example
const [values] = useForm({
  //...
  loadInitialValues: async () => {
    const data = await loadGithubData
    return data
  },
  fallbackValues:  productionData
})

Motivation
When using loadInitialValues, users have to perform some defensive programming against the initial null state until the values are loaded. Due to how Tina works, the developer will usually have a copy of "compatible" values (the production data) that could be used until loadInitialValues completes. Example of this sort of defensive programming: https://gist.github.com/dwalkr/d97a8495a33ffd766fdb726e0fae2fdf
I think this scenario will be so common to loadInitialValues usage that it should be handled within useForm

After discussing this further with @ncphillips we've chosen not to go with the fallbackValues solution, and instead pursue the following solution:

Form loading state

Forms will have a loading property which is true when forms are created with a loadIntitialValues method that has not resolved yet
form.loading is subscribable
useForm will automatically subscribe to this loading state
Form values will be undefined while a form is loading

So, fallback behavior could be achieved like this:
const [values = prodData, form] = useForm({
  //...
  loadInitialValues: loadData
})

Additionally, a developer could avoid displaying "stale" data when in edit mode by not rendering the component until the form has finished loading:
const [values = prodData, form] = useForm({
  //...
  loadInitialValues: loadData
})

if (form.loading) {
  return <PageLoadingScreen />
}

//... return page component normally


Is it possible to extend the deadline for Sim Agents Challenge

Hi @nicomon24,
Thanks for bringing this great challenge to the research community!
I'm asking this because it really takes time to figure out tons of details of this relatively new task. And, it is very time-consuming to train a model that generates 32 simulations for all agents per scene...

Hi @ZikangZhou,
thanks for your interest in the competition!
For the deadline we are quite constrained by the CVPR workshop dates, so I don't think we can push it back (maybe we can push it by a week if we see a lot users struggling near the deadline).
I wanted to also mention that, while the challenge itself has a deadline, we will leave the evaluation and leaderboard live after that moment too, so you're still able to submit and publish on the leaderboard.
Good luck and let me know if you need any help!

OK, thanks! I'll try to submit some initial results recently.


Use GitHub Projects to track FINOS team workload across public and private repositories

Feature Request
It would be useful for FINOS team to be able to track internal/sensitive issues within GitHub Issues; unfortunately at the moment we could not find the way, without incurring on high expenses for GitHub.com subscription, so we temporarily moved on github.com/finos-admin our private repositories.
The downside of this approach is that private issue cannot be referenced into github.com/finos boards, making reporting duties and backlog scrubbing harder.

Hi @jbjonesjr
Tagging you on this issue as it relates to work being done 💪
I've also changed status to In Progress 🚀
James.

👍. I'll check back to this in a few weeks when I have something to share.
@brntbeer in case i'm out of office at this point.

@mcleo-d please also assign me to this too just to signal the responsibility

TY @brntbeer . FYI - I know @jbjonesjr is working on this.

All done, thanks SO much GitHub for the wonderful new pricing model you adopted.

@maoo oh i am so sorry i didn't reach out earlier. I have a tab open with a comment that never sent! I meant to point out the new team pricing and functionality to hopefully help you all out here more. 🙇


Livecheck: Avoid duplicate URLs

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Some formulae/casks contain duplicate checkable URLs or contain URLs that become duplicates after #preprocess_url is used. With the former, a formula's stable and head URLs can be the same if they both use the Git repository. With the latter, a formula's homepage and stable URLs are different but #preprocess_url can return the same Git repository URL for each (which can also be a duplicate of the head URL).
The fabric-completion formula is a worst case scenario, as it contains both of these conditions but the repository has no tags. By default, livecheck would needlessly check the repository three times (i.e., no versions are found so livecheck tries the next URL, which happens to be the same URL). [That said, I added a skip livecheck block in the past when I noticed this issue.]
This PR avoids duplicate URLs in #checkable_urls and keeps track of checked URLs in #latest_version to avoid a duplicate caused by #preprocess_url. This should effectively resolve the issue of checking the same URL more than once for a given formula/cask. Checking the same URL only once across all the formulae/casks in a given livecheck run will be handled in a later PR (though I've done most of the groundwork already in previous PRs).

Review period will end on 2021-12-15 at 15:32:21 UTC.

Review period ended.


Gabby/notification view index

To test comment out the first return statement in the GetNotifications function on line 179 and uncomment the commented one (in the Notification Controller). This will give you dummy notifications (one unread and one read). For testing index you should just be seeing the difference between Unread Notifications and All Notifications Tab. No functionality such as Mark as Read is in this branch. When looking at the unread tab.. be sure the unread notifications have a small checkmark button to mark as read (dont press it, it wont work).
Next, undo the commenting in the Get Notifications function and be sure the tabs give messages of not having any notifications!

I'm not sure if I followed the instructions properly. I see these two images when I uncommented the notifications. Is this what i should be seeing?

Yes thats perfect! Just seeing the difference between read and unread


Sign MSI for Windows

#1123 Should tell us what we need to sign the MSI. This issue will implement a signing mechanism


Fix - middleware crashes without logger

logger debug function added (thanks @eiabea)
middleware tests added (thanks @eiabea)
tests use now the npm entry point (instead of direct class usage)

Codecov Report

Merging #18 into master will increase coverage by 7.55%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #18      +/-   ##
==========================================
+ Coverage   84.93%   92.49%   +7.55%
==========================================
  Files           8        7       -1
  Lines         498      493       -5
  Branches      123      123
==========================================
+ Hits          423      456      +33
+ Misses         56       31      -25
+ Partials       19        6      -13

Impacted Files
Coverage Δ

src/classes/acl.js
90.65% <ø> (+10.28%)
:arrow_up:

src/index.js

src/stores/memory.js
91.83% <0%> (+12.24%)
:arrow_up:

src/classes/http_error.js
100% <0%> (+100%)
:arrow_up:

Continue to review full report at Codecov.

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


Cannot download file to local

When receiving messages from other people about files (including images, videos, attachments, etc.), downloading to local disk using the FileBox.toFile() API always results in a file size of 0.
This issue was only recently discovered, and was only occasionally occurring before, but is now 100% reproduced.
Some context:

wechaty: 0.63.6
wechaty-puppet: 0.41.7
wechaty-puppet-wechat: 0.28.4

回退到版本 0.27.0 后，也发现这个问题。
"dependencies": {
  "gerror": "^1.0.16",
  "wechaty": "^0.68.1",
  "wechaty-puppet-wechat": "0.27.0"
}

打印 FileBox 信息：

其中 remoteUrl 也可以点击访问，但是下单后的文件依然是 0 kb。

Please try the latest version of<EMAIL_ADDRESS>and let me know if this problem exists in the latest version.

Please try the latest version of<EMAIL_ADDRESS>and let me know if this problem exists in the latest version.

@huan The fix version should be<EMAIL_ADDRESS>🤔
Users using version 0.x but do not want to upgrade to 1.x can rebuild FileBox to solve this problem:
const box = await msg.toFileBox()
const newBox = FileBox.fromUrl(box.remoteUrl.replace(/^http/i, 'https'), box.name, {
  ...box.headers,
  Referer: box.headers.Referer.replace(/^http/i, 'https'),
})

Awesome, your workaround is smart!
Thank you very much for help the community to fix the bug and confirm it works, appreciate it!

@pacoyang 请问对应的 wechaty 版本是多少呢？

@pacoyang 请问对应的 wechaty 版本是多少呢？

这个 issue 跟 wechaty 版本没有联系，可以用最新的<EMAIL_ADDRESS>


Impossible to solve a bug

I'm not able to solve a bug in Acrarium - whenever I select the app version where the crash was fixed, my selection disappears soon after - evidence below. Is there a different (correct?) way of solving a bug in Acrarium which I'm just not aware of? 👀
We're running the v1.0.2 Acrarium in a Docker container (f43nd1r/acrarium:1.0.2)

Is there a different (correct?) way of solving a bug in Acrarium which I'm just not aware of?

No, this is the correct way.
I couldn't reproduce the issue. Is there any message/exception in the logs?

I have found some exceptions in the logs that look relevant, yes - attached (the exception is really long)
Acrarium solve bug exception
The exception:
java.lang.IllegalStateException: Multiple representations of the same entity [com.faendir.acra.model.App#5] are being merged. Detached: [com.faendir.acra.model.App@5];
Detached: [com.faendir.acra.model.App@5]

Further down the stack trace there's a relevant line:
at com.faendir.acra.service.DataService.setBugSolved(DataService.kt:173) ~[classes/:1.0.2]
I have noticed that there are some crashes that I'm able to filter (although a minority) - the app version remains set, and those bugs are filtered out from the full list, unlike the screen recording above.
Is this a problem in the database again? :(

Try again with 1.0.3, should be out soon.

Is this a problem in the database again? :(

No.

Apologies for the delay in replying - we've verified with the 1.0.3 version and it's working as expected now, thank you! Closing this issue then.


SF: Translation of UI for strategic LWC's for Catapult

See issue 22 here: https://docs.google.com/spreadsheets/d/13Y8d3z3JajAoR2B1zDbsjb0q_GLVQaB6iX9rZPM9it4/edit#gid=0

See https://jira.sil.org/browse/SF-2627


Upgrade dependencies to no longer fail migrating empty HTML content

This fixes the None type error from the html-to-draftjs dependency error when ran against empty HTML (https://github.com/NyanKiyoshi/html-to-draftjs/pull/5).
Closes #4567.
Pull rquest Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] Database migration files are up to date.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).
[ ] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Here is the report for c9fb48240a8929efbcae34b475a4ec70074965bf (NyanKiyoshi/saleor @ fix/empty-html-migration)
Base comparison is 94406064dd9eb68951c3b8eeb662718f6d856aae.
No differences were found. (click me)

# api.benchmark checkout
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  add billing address to checkout     	         34	         34	             20
  add shipping to checkout            	          7	          7	              0
  checkout payment charge             	         14	         14	              0
  complete checkout                   	          6	          6	              0
  create checkout                     	         41	         41	             20

# api.benchmark homepage
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  retrieve main menu                  	          5	          5	              0
  retrieve product list               	          4	          4	              0
  retrieve secondary menu             	          5	          5	              0
  retrieve shop                       	          2	          2	              0

# api.benchmark product
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  product details                     	         13	         13	              3

# api.benchmark variant
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  retrieve variant list               	          9	          9	              2


How to refine the parameter of combine_loss

Thanks for you contribution, and could you release the parameter of combine_loss or tell me how to refine them

I will try that later.

see

The combined loss was trained well but it stopped at around 60k iter.
And it complains about Shapes of all inputs must match: values[0].shape = [90] != values[1].shape = [13]...
Do you have an idea why?
Traceback (most recent call last):
File "xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1334, in _do_call
return fn(*args)
File "xxx/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1319, in _run_fn
options, feed_dict, fetch_list, target_list, run_metadata)
File "xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1407, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Shapes of all inputs must match: values[0].shape = [90] != values[1].shape = [13]
[[{{node combine_loss/stack}}]]
[[{{node MobileFaceNet/Logits/Conv/kernel/Regularizer/l2_regularizer}}]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "train_nets_finetune.py", line 235, in
feed_dict=feed_dict)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 929, in run
run_metadata_ptr)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1152, in _run
feed_dict_tensor, options, run_metadata)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1328, in _do_run
run_metadata)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1348, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Shapes of all inputs must match: values[0].shape = [90] != values[1].shape = [13]
[[node combine_loss/stack (defined at /xxx/MobileFaceNet_TF/losses/face_losses.py:103) ]]
[[node MobileFaceNet/Logits/Conv/kernel/Regularizer/l2_regularizer (defined at /xxx/MobileFaceNet_TF/nets/MobileFaceNet.py:224) ]]
Caused by op 'combine_loss/stack', defined at:
File "train_nets_finetune.py", line 155, in
inference_loss, logit = combine_loss(embeddings, labels, args.train_batch_size, args.class_number, w_init_method)
File "/xxx/MobileFaceNet_TF/losses/face_losses.py", line 103, in combine_loss
ordinal_y = tf.stack([ordinal, labels], axis=1)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/util/dispatch.py", line 180, in wrapper
return target(*args, **kwargs)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 1005, in stack
return gen_array_ops.pack(values, axis=axis, name=name)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 5448, in pack
"Pack", values=values, axis=axis, name=name)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
op_def=op_def)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
op_def=op_def)
File "/xxx/anaconda3/envs/tensorflow1_131/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1801, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Shapes of all inputs must match: values[0].shape = [90] != values[1].shape = [13]
[[node combine_loss/stack (defined at /cvdata2/siyiding/Theia/FR/download/MobileFaceNet_TF/losses/face_losses.py:103) ]]
[[node MobileFaceNet/Logits/Conv/kernel/Regularizer/l2_regularizer (defined at /cvdata2/siyiding/Theia/FR/download/MobileFaceNet_TF/nets/MobileFaceNet.py:224) ]]


TODO: Classic confinement compatibility evaluation

After talking with the Snapd devs I'm fairly certain it doesn't affect pre-commit.


Add object selector to provider extension controlplane webhooks

How to categorize this PR?

/area open-source
/area control-plane
/area scalability
/kind enhancement
What this PR does / why we need it:
Add a label to resources intended to be watched by provider extension control plane webhooks.
This label provides a handle to filter for only the resources that actually require a change by the control plane Mutator.
By that, unnecessary Mutator triggers are reduced.
Which issue(s) this PR fixes:
Fixes #9864
Special notes for your reviewer:
/cc @timuthy
Release note:

A label `extensions.gardener.cloud/webhook-controlplane-selector` is added to Deployment|VerticalPodAutoscaler|OperatingSystemConfig resources to allow extension providers to filter for control plane webhook relevance.

An `ObjectSelector` is added to the `gardener-extension-provider-local` control plane webhook.

/assign

/test pull-gardener-e2e-kind-ha-single-zone

Thank you very much @ialidzhikov for taking the time and providing in-depth comments and suggestions. 😊  I have addressed the points and would be happy if you could once again have a look.

/test pull-gardener-e2e-kind-ha-multi-zone

/retest

/retest

/retest

/retest

/hold
as @LucaBernstein had the idea to set the object selector directly in the extension lib instead of every extension doing it

/hold cancel
as we decided that it makes more sense every extension to specify the objectSelector. For example in https://github.com/gardener/gardener-extension-provider-aws/blob/5a107e30f87b3b1800af3b3ea86d4e1275c4281e/pkg/webhook/controlplane/add.go#L26-L41, the webhook registration is configurable, so internally defaulting the objectSelector would prevent provider extensions to mutate any other types/resources that don't have the label set by gardenlet.

/retest-required


TAU test not producing any valid output

I run the TAU profiler on the coupler using the effis setup as shown below (in line with the setup described in the wdmapp documentation here.
 21 tau: /autofs/nccs-svm1_home1/damilare/dev/spack/opt/spack/linux-rhel7-power9le/gcc-8.1.1/tau-develop-luatsslwgeddre27a56pbvtjvjm6govn/bin/tau_exec
 22 cpl: /autofs/nccs-svm1_home1/damilare/dev/cpl_phy2/build/test/cpl
 23 gene: /ccs/home/damilare/dev/build-gene/src/gene
 24
 25 run:
 26   coupler:
 27     pre-submit-commands: ["mkdir out"]
 28     processes: 4
 29     processes-per-node: 4
 30     cpus-per-process: 1
 31     use-gpus: True
 32     executable_path: ${tau}
 33     commandline_args:
 34       - -v
 35       - -T
 36       - mpi
 37       - -monitoring
 38       - -adios2
 39       - ${cpl}
 40       - ${steps}
 41

The code runs successfully, but TAU fails to provide any meaningful output /file for pprof
It only produces a set of empty files
<EMAIL_ADDRESS>run_1]$ cd tau_3/coupler/tauprofile-cpl.bp/
data.0  data.1  data.2  data.3  md.0  md.idx
<EMAIL_ADDRESS>tauprofile-cpl.bp]$ lss
total 2
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 data.2
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 data.1
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 data.3
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 data.0
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 md.idx
drwxr-xr-x 2 damilare damilare 4096 Aug 11 17:08 .
-rw-r--r-- 1 damilare damilare    0 Aug 11 17:08 md.0
drwxrwxr-x 4 damilare damilare 4096 Aug 11 17:25 ..
<EMAIL_ADDRESS>tauprofile-cpl.bp]$
[0] 0:gene-cuth  1:xgc-develZ 2:coupler  3:te

is there anything wrong with the setup?
I have tau in my PATH and I unloaded unload darshan-runtime before submitting the job

Interesting.  Does the coupler use MPI?  I am curious why the archive would be opened but nothing would get written.  That suggests TAU was initialized but not finalized correctly.  Can you also pass the -vv (two "v") flag to tau_exec - that will enable TAU_VERBOSE output and maybe give us some clues.  Thanks!

The compiler uses spectrum-mpi and I have submitted a job with the -vv flag and would post its output soon

ok, thanks.  Another question - does the coupler exit cleanly, or does it just get killed when XGC and/or GENE/GEM exit?  If it doesn't call MPI_Finalize(), there won't be data if the batch scheduler just kills it.

oh, it doesnt exit cleanly. Thank you very much. I would fic that now and get back to you.

The coupler exits cleanly now, so, it returns valid output now
lss tau_2/coupler/tauprofile-cpl.bp/
total 243
-rw-r--r-- 1 damilare damilare  27658 Aug 12 12:29 data.2
-rw-r--r-- 1 damilare damilare  27658 Aug 12 12:29 data.3
-rw-r--r-- 1 damilare damilare  29188 Aug 12 12:29 data.0
-rw-r--r-- 1 damilare damilare  27658 Aug 12 12:29 data.1
-rw-r--r-- 1 damilare damilare 112582 Aug 12 12:29 md.0
drwxr-xr-x 2 damilare damilare   4096 Aug 12 12:29 .
-rw-r--r-- 1 damilare damilare   1318 Aug 12 12:29 profiling.json
-rw-r--r-- 1 damilare damilare    128 Aug 12 12:29 md.idx
drwxrwxr-x 4 damilare damilare   4096 Aug 12 13:04 ..
<EMAIL_ADDRESS>run_1]$ cd tau_2/coupler/

Any idea how the profile can be viewed? the documentation says run pprof
<EMAIL_ADDRESS>coupler]$ pprof
Reading Profile files in profile.*
Error: Could not open profile.0.0.0: No such file or directory
profile.ftab: No such file or directory
<EMAIL_ADDRESS>coupler]$ cd tauprofile-cpl.bp/
data.0  data.1  data.2  data.3  md.0  md.idx  profiling.json
<EMAIL_ADDRESS>tauprofile-cpl.bp]$ pprof
Reading Profile files in profile.*
Error: Could not open profile.0.0.0: No such file or directory
profile.ftab: No such file or directory
<EMAIL_ADDRESS>tauprofile-cpl.bp]$

Any pointer would be appreciated

Great!  Because the data is in ADIOS2 format, you have to use ADIOS2 tools to view it.  You can try bpls -lav tauprofile-cpl.bp or bpls -D -d -A tauprofile-cpl.bp to just see the data.  To visualize the data, you can try the tau2svg.py script described here: https://github.com/khuck/wdmapp-config/tree/master/scripts/performance_data - that is what the EFFIS framework is supposed to use.  Thanks!

Thank you very much for this Kevin.
I can visualize the tau-adios2 output using paraprof directly, So, I would attempt this tau2svg approach to visualize the tau+adios2 output and get back to you.
Thank you once again.

Hi @khuck , thank you for the support last week.
I rebuilt my spack stack and the corresponding code bases (gene, xgc and coupler) off it due to this issue I faced https://github.com/SCOREC/wdmapp_coupling/issues/90.
At the moment, I have the same setup of code running to finalization when the TAU is not used to run the coupler.
However, when I run with TAU as shown below, it only completes 3 (instead of 4) RK loops within the timestep before hanging. It does not return an error ... the coupler just hangs while other codes wait for it till the job clocks out.
1312 3: receive gene_density done                                                                        |244 rank=1
1313 1: receive gene_density done                                                                        |245 ../coupling/xgc_field.bp
1314 0: receive engine already exists                                                                    |246 rank=0 The cpl_density was written
1315 1: receive engine already exists                                                                    |247 rank=0
1316 Caught SIGUSR2, toggling TAU instrumentation                                                        |248 ../coupling/xgc_field.bp
1317 Caught SIGUSR2, toggling TAU instrumentation                                                        |249 p3m3d.lj0*p3m3d.blockcount=5130432
1318 Caught SIGUSR2, toggling TAU instrumentation                                                        |250 sending Engine for cpl_density is created.
1319 Caught SIGUSR2, toggling TAU instrumentation                                                        |251 p3m3d.lj0*p3m3d.blockcount=5130432
1320 ERROR:  One or more process (first noticed rank 0) terminated with signal 12                        |252 sending Engine for cpl_density is created.
tau_mpi_adios2_ebs_2/coupler/codar.workflow.stderr.coupler                             1320,1         Bot tau_mpi_adios2_ebs_2/coupler/codar.workflow.stdout.coupler

The termination error only shows after the job times out. My run snippet
 20 cpl: /gpfs/alpine/fus123/scratch/damilare/build2-coupling/test/cpl
 21 gene: /gpfs/alpine/fus123/scratch/damilare/build2-gene/src/gene
 22 xgc: /gpfs/alpine/fus123/scratch/damilare/build2-xgc/bin/xgc-es
 23 tau: /autofs/nccs-svm1_home1/damilare/dev/spack/opt/spack/linux-rhel7-power9le/gcc-8.1.1/tau-develop-luatsslwgeddre27a56pbvtjvjm6govn/bin/tau_exec
 24
 25 run:
 26
 27   coupler:
 28     pre-submit-commands: ["mkdir out"]
 29     processes: 4
 30     processes-per-node: 4
 31     cpus-per-process: 1
 32     use-gpus: True
 33     executable_path: ${tau}
 34     commandline_args:
 35       - -vv
 36       - -T
 37       - mpi
 38       - -monitoring
 39       - -adios2
 40       - -ebs
 41       - -ebs_period=1000000
 42       - ${cpl}
 43       - ${steps}

@Damilare06  With the effis script but without using TAU, I can only run up to the 4th step (the last step of 1 rk loop). The xgc  gives the following output:
 received density in   -66700901892786808.        1.8037007061227632E+017
Linear solve converged due to CONVERGED_RTOL iterations 538
Linear s2_ solve converged due to CONVERGED_RTOL iterations 5
  sending field data in   -3.0014408597626252        8.2641286630294442
 adios writing restart group, #bytes =               1599368

 WARNING:   -log_summary is being deprecated; switch to -log_view

************************************************************************************************************************
***             WIDEN YOUR WINDOW TO 120 CHARACTERS.  Use 'enscript -r -fCourier9' to print this document            ***
************************************************************************************************************************

---------------------------------------------- PETSc Performance Summary: ----------------------------------------------

/gpfs/alpine/fus123/scratch/sxzhang/XGC-Devel/build/bin/xgc-es on a arch-linux2-c-opt named d19n07 with 256 processors, by sxzhang Wed Aug 19 11:58:14 2020
Using Petsc Release Version 3.7.7, Sep, 25, 2017

                         Max       Max/Min        Avg      Total
Time (sec):           6.719e+01      1.00001   6.719e+01
Objects:              6.300e+02      1.00159   6.290e+02
Flops:                2.482e+09      1.08474   2.390e+09  6.119e+11
Flops/sec:            3.695e+07      1.08474   3.558e+07  9.108e+09
Memory:               4.502e+07      1.05688              1.131e+10
MPI Messages:         1.321e+04      2.43376   8.710e+03  2.230e+06
MPI Message Lengths:  1.755e+07      1.24184   1.749e+03  3.901e+09
MPI Reductions:       7.067e+03      1.00000

Flop counting convention: 1 flop = 1 real number operation of type (multiply/divide/add/subtract)
                            e.g., VecAXPY() for real vectors of length N --> 2N flops
                            and VecAXPY() for complex vectors of length N --> 8N flops

Summary of Stages:   ----- Time ------  ----- Flops -----  --- Messages ---  -- Message Lengths --  -- Reductions --
                        Avg     %Total     Avg     %Total   counts   %Total     Avg         %Total   counts   %Total
 0:      Main Stage: 6.7187e+01 100.0%  6.1192e+11 100.0%  2.230e+06 100.0%  1.749e+03      100.0%  7.066e+03 100.0%

------------------------------------------------------------------------------------------------------------------------
See the 'Profiling' chapter of the users' manual for details on interpreting output.
Phase summary info:
   Count: number of times phase was executed
   Time and Flops: Max - maximum over all processors
                   Ratio - ratio of maximum to minimum over all processors
   Mess: number of messages sent

I think at that step, the system is doing some operations like restart or others based on the output.  So you need to check why this happens. That may be due to command from the effis script. Because that doesn't appear without running through effis .

Hi @phyboyzhang , without TAU, xgc exits cleanly for me with my effis run script.
Lets talk on Slack, I don't want this issue to diverge from the Tau problem I am trying to get fixed. Thanks
1 ERROR: Bad var name (ignored): 'nextnode_weight'                                                     |323   SA: frmProl0         4 1.0 1.2653e+00 1.1 0.00e+00 0.0 7.4e+03 1.0e+02 4.0e+01  2  0  0  0  1   2
  2 SST stream open at exit, unlinking contact file /gpfs/alpine/fus123/scratch/damilare/run_1/sst_2/.che|    0  0  0  1     0
    etah/damilare/kittie-run/run-0.iteration-0/coupling/xgc_field.bp.sst                                 |324   SA: smooth           4 1.0 2.6811e-01 1.0 8.58e+06 1.1 3.8e+04 4.9e+02 1.9e+02  0  0  2  0  3   0
~                                                                                |    0  2  0  3  8016
~                                                                                |325 GAMG: partLevel        4 1.0 4.1271e-01 1.1 2.55e+06 1.1 3.1e+04 7.7e+02 1.7e+02  1  0  1  1  2   1
~                                                                                |    0  1  1  2  1547
~                                                                                |326   repartition          2 1.0 2.9719e-03 1.0 0.00e+00 0.0 0.0e+00 0.0e+00 1.2e+01  0  0  0  0  0   0
~                                                                                |    0  0  0  0     0
~                                                                                |327   Invert-Sort          2 1.0 6.8473e-03 1.5 0.00e+00 0.0 0.0e+00 0.0e+00 8.0e+00  0  0  0  0  0   0
~                                                                                |    0  0  0  0     0
~                                                                                |328   Move A               2 1.0 8.8979e-02 1.1 0.00e+00 0.0 1.4e+03 2.6e+03 3.6e+01  0  0  0  0  1   0
~                                                                                |    0  0  0  1     0
~                                                                                |329   Move P               2 1.0 4.3399e-02 1.2 0.00e+00 0.0 9.6e+02 6.1e+01 3.6e+01  0  0  0  0  1   0
~                                                                                |    0  0  0  1     0
~                                                                                |330 PCSetUp                3 1.0 2.5390e+00 1.1 1.43e+07 1.1 1.1e+05 7.1e+02 5.3e+02  4  1  5  2  8   4
~                                                                                |    1  5  2  8  1417
~                                                                                |331 PCSetUpOnBlocks       24 1.0 6.2398e-03 1.4 9.18e+03 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0
~                                                                                |    0  0  0  0    47
~                                                                                |332 PCApply             2150 1.0 4.8450e+00 1.1 9.30e+08 1.1 3.2e+05 4.8e+02 0.0e+00  7 38 15  4  0   7 3
~                                                                                |    8 15  4  0 47390
~                                                                                |333 SFSetGraph             4 1.0 1.2717e-03 1.3 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0
~                                                                                |    0  0  0  0     0
~                                                                                |334 SFBcastBegin          18 1.0 5.9989e-03 1.7 0.00e+00 0.0 1.5e+04 4.4e+02 0.0e+00  0  0  1  0  0   0
~                                                                                |    0  1  0  0     0
~                                                                                |335 SFBcastEnd            18 1.0 3.0866e-02117.1 0.00e+00 0.0 0.0e+00 0.0e+00 0.0e+00  0  0  0  0  0   0
~                                                                                |     0  0  0  0     0
~                                                                                |336 BuildTwoSided          4 1.0 4.5891e-03 2.5 0.00e+00 0.0 1.2e+03 4.0e+00 0.0e+00  0  0  0  0  0   0
~                                                                                |    0  0  0  0     0
~                                                                                |337 -----------------------------------------------------------------------------------------------------
~                                                                                |    -------------------
~                                                                                |338
~                                                                                |339 Memory usage is given in bytes:
~                                                                                |340
~                                                                                |341 Object Type          Creations   Destructions     Memory  Descendants' Mem.
~                                                                                |342 Reports information only for process 0.
~                                                                                |343
~                                                                                |344 --- Event Stage 0: Main Stage
~                                                                                |345
~                                                                                |346               Matrix   129<PHONE_NUMBER>6     0.
~                                                                                |347  Matrix Partitioning     2              2         1312     0.
~                                                                                |348       Matrix Coarsen     4              4         2544     0.
~                                                                                |349               Vector   350<PHONE_NUMBER>2     0.
~                                                                                |350       Vector Scatter    33             33       926072     0.
~                                                                                |351            Index Set    81             81      2070892     0.
~                                                                                |352        Krylov Solver    12             12        16336     0.
~                                                                                |353       Preconditioner    12             12        11692     0.
~                                                                                |354          PetscRandom     1              1          646     0.
~                                                                                |355 Star Forest Bipartite Graph     4              4         3456     0.
~                                                                                |356               Viewer     2              0            0     0.
~                                                                                |357 =====================================================================================================
~                                                                                |    ===================
~                                                                                |358 Average time to get PetscTime(): 4.41e-08
~                                                                                |359 Average time for MPI_Barrier(): 7.2696e-06
~                                                                                |360 Average time for zero size MPI_Send(): 5.24381e-06
sst_2/xgc/codar.workflow.stderr.xgc                                                    1,1            All sst_2/xgc/codar.workflow.stdout.xgc                                                    323,1          56%

Could you leave off the -ebs and -ebs_period options, and see if that has a difference?

Hi @khuck , I just ran without ebs and it worked.
Is there a workaround to using ebs?

that's not a combination that I have tested, sampling combined with adios2 output.   Glad it worked without ebs.
without ebs...
The other applications (XGC, GENE, GEM) have been instrumented with the perfstubs library: https://github.com/khuck/perfstubs
If you don't sample (ebs) or instrument, you won't see details from the coupler code, but you'll see MPI, ADIOS2, and other calls that have built-in profiling support (like OpenMP, OpenACC, CUDA, etc.).  I'm happy to help suggest how to add perfstubs to the coupler if you would like.  See https://github.com/khuck/perfstubs/blob/master/perfstubs_api/README.md for more information on using it and integrating it into your code.  Please let me know if those instructions are incomplete or misleading.  Thanks!

Thank you very much Kevin, I would work with these instructions

Hi Kevin, in my attempt to view the adios2 output, the tau2svg tool returns this syntax error;
<EMAIL_ADDRESS>performance_data]$ python ./tau2svg.py -i ../../../tau_mpi_adios2_3/coupler/tauprofile-cpl.bp -c chart.json
  File "./tau2svg.py", line 304
    print(f"Processed step in {total_time} seconds", flush=True)
                                                  ^
SyntaxError: invalid syntax

My adios2 install depends on python 2.7 though

Good morning @khuck , using the instructions you gave above, I have been able to link against perfstub and add a few function timer calls to the coupler.
However, the resulting output tauprofile-cpl.bp still returns a segfault when I try to visualize it with the method I described above

Yes, you need python3 to parse the data.  ADIOS2 also needs to be built against the same python3 installation.  On summit, I think I typically use anaconda because the modules are pre-installed.
If you run python3 -m pdb tau2svg.py ... you should be able to debug the script, unless it crashes out of python completely...

Hi @khuck  and @germasch , please what tools can I use to analyse the adios2 results locally?
I have the files but the summit python issue prevents me from converting it to the json format.
Thank you very much

More importantly, I applied perfstub instrumentation to the coupler's driver here and within functions of interests e.g. here but I cannot see any of the timing data within the paraprof visualization I generated below. I can only see mpi, kokkos and adios2 functions

Also, I ensured the driver called PERFSTUBS_DUMP_DATA() before finalization

Sorry for the confusion - it looks like you know to run without the -adios2 flag and that will write profile.* files that can be visualized with either pprof (the command line tool) or ParaProf.
As for the missing timers... when you compiled the instrumented code, did you pass the flag -DPERFSTUBS_USE_TIMERS?  Without that flag, the PerfStubs macros will just get defined as no-ops and they won't actually call any timer code.

No, I didnt pass the flag. I would do that now and get back to you. Thank you very much

Thank you @khuck I can see the functions now with that flag.

Great!

Hi @khuck there appear to be some gcc/thread routines dominating the timing... any idea how to turn these off/ mute so i can observe

Do you mean gomp_thread_start and progress_engine?  Those are the top level functions started by spawned threads, from OpenMP and MPI, respectively.  You can hide them in ParaProf by going to the "Windows -> Function Legend", and right-click on a function you want to enable/disable.  Are you looking at the mean thread profile?  If you look at just the profile for node 0, thread 0, you can see what the master thread of MPI rank 0 did during execution.

I am using the mean statistics as an overview for the entire simulation. As opposed to checking individual threads. Is there a better way to get an overview?

no, that's pretty much what the mean thread is for... you could look at the 3D bar charts to see if those are helpful for getting an overall view

Good morning @khuck  and @germasch . Thank you very much for the help in getting here.
From the results of 3 runs -> 1, 10 and 100 timesteps, certain threading costs appear to be increasingly dominating the timing
gomp_thread_start, rxm_conn_progress and progress_engine as shown below.
Do you have any pointers on how to eliminate or reduce this cost? @cwsmith @phyboyzhang

I was away on vacation last week, sorry for the delay in replying.  Are you looking at the mean profile?  I don't think you need to worry about those functions at all.  I would primarily look at the performance of thread 0.
rxm_comm_progress, progress_engine, and probably the addr <...> are the top-level functions of the progress threads spawned by MPI.  gomp_thread_start is the top level function from the GCC OpenMP library.  I think ofi_uffd_handler is from libfabric.  I don't know what server_thread_func is.
One trick you can do is to create a subdirectory, and link only the master thread profiles from each rank - something like: ln -s ../profile.*.0.0 ..  Then, you can start ParaProf from that directory and only load the master threads.

Thank you very much for this Kevin, I was able to get the correct output by reaching out to Sameer earlier last week.

Hi @khuck , are there specialized ways to identify the hotspots in instrumented simulations aside the comparison window in paraprof.

We are working on some Jupyter notebooks that will provide some automated analysis and visualization, but they are still under development.  In the meantime, yes - ParaProf is the only way to find it at the moment.
Are you wanting to compare multiple runs, or are you comparing across ranks, or are you just trying to find the hotspots for a specific process?

I am trying to get the hotspots for a specific process

Morning @khuck , for comparison across ranks, I can use the paraprof comparison feature. Is there any other method to achieve this?

I'm guessing this is all set.  Please reopen this issue if needed.


[!] CocoaPods could not find compatible versions for pod "GoogleMaps"

Error occurs when running: pod install, pod update, pod outdated
I've been trying to use this package and am stuck with the error:
[!] CocoaPods could not find compatible versions for pod "GoogleMaps":
  In snapshot (Podfile.lock):
    GoogleMaps (= 3.2.0)

  In Podfile:
    GoogleMaps

    react-native-google-maps (from `../node_modules/react-native-maps`) was resolved to 0.26.1, which depends on
      GoogleMaps (= 3.2.0)

    react-native-google-places (from `../node_modules/react-native-google-places`) was resolved to 3.1.2, which depends on
      GoogleMaps (~> 3.1.0)

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * changed the constraints of dependency `GoogleMaps` inside your development pod `react-native-google-maps`.
   You should run `pod update GoogleMaps` to apply changes you've made.

I have followed the instructions exactly. I have enabled my API key with google (as I am using react-native-maps with my provider as Google).
Podfile:
platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

target 'Playground' do
  rn_path = '../node_modules/react-native'
  rn_maps_path = '../node_modules/react-native-maps'

  # Pods for Playground
  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/'
  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'

  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

  pod 'react-native-google-maps', path:rn_maps_path
  pod 'GoogleMaps'
  pod 'Google-Maps-iOS-Utils'
  pod 'react-native-geolocation', :path => '../node_modules/@react-native-community/geolocation'

  pod 'react-native-google-places', :path => '../node_modules/react-native-google-places'

  use_native_modules!
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'react-native-google-places'
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end
    if target.name == "React"
      target.remove_from_project
    end
  end
end

I don't know if this would be helpful, but you could try it.
I recently updated macOS to Catalina and I got a bunch of similar issues, I deleted node modules, ran npm install, then cd ios and pod update.
This seemed to work for me.

**
A quick work around for the moment  just change the version from 3.2.0  to 3.1.0 in react-native-google-maps.podspec file

**

**
A quick work around for the moment just change the version from 3.2.0 to 3.1.0 in react-native-google-maps.podspec file

**

It worked, thanks

work for me with this WAY =>>
Hope it works for you

work for me with this WAY =>>
Hope it works for you

You can show the full version of Podfile? Not working here with last version 0.27.1, i tried replace GoogleMaps version to 3.5.0

Delete podfile.lock and run npx pod-install

platform :ios, '11.0'
pod 'GoogleMaps', '5.1.0'
pod 'Google-Maps-iOS-Utils' , '3.10.3'
this. works for me

After some tries i delete podfile.lock and then pod install and it work

Update :   pod 'Google-Maps-iOS-Utils', '4.2.2'


Hocon support

First of all, great work. I was wondering if you had any plans to support Hocon in the future. I'd be more than glad to work on this feature myself in case you could use some help.

Hey, thanks! I'm generally not opposed to adding more useful configuration formats. Each is behind a Cargo feature anyway, so nothing will change for people not using them. But I do have some requirements:

The biggest one: is there a serde library for it? confique does not implement any parsers itself and that's by design. Unless I'm missing something, there seems to be only this crate which is unmaintained, unfortunately.
Is the format widely used, especially by people using Rust? It's often hard to estimate this, but from some quick search it doesn't seem like it's used super widely by Rust people?
Does it roughly fit into the existing confique structure? If I would have to redesign all of confique, that would be a no go. From just looking at it very briefly, it seems to be OK in this regard.

So overall not a great look for Hocon right now, especially the lack of maintained parser. Adding a format also adds maintenance burden on me. And if I have never heard of a format, that's not particularly great.
So unless you can show me a maintained parser crate for Hocon, my answer for now is sadly: "no". However, note that you can still use confique with non-built-in formats. For example, if u want to use that unmaintained library, you can simply deserialize into the Partial config. And the "configuration template" you can generate yourself from the META description. That's exactly what the built-in "config template" functions do as well. It's not like the built-in functions have access to more internal information.
I hope that helps!

Hey @LukasKalbertodt, that's understandable. I come from Scala where this is widely used. Was only hoping to find something familiar in that regard but truth be told the rust hocon library is unmaintained and there's no other at the moment. I believe that the best bet for me would be to deserialize the Partial configuration as you suggested. Appreciate the fast reply!


[Cosmos] Add AutoScale Header Support 2/2

Adding the ability to update the autoscale settings

will be using a different PR for this


Support different auth methods in WebdavFileSystem

Must support: basic token auth, user/password
Look for other auth mechanisms to support.

Looks like we don't need to implement these on WebdavFileSystem.


I look forward to your reply

Hello, I am very interested in your project. I will try to reproduce your code. Can you publish the library information of the environment used by this project? I look forward to your reply.

Done!

Done!

Thank you


How to run the program with the version 1.0.0?

I ran this command on Windows
python setup.py install
How can I launch the program?

Hi
I just committed a new version.
You can just use
(sudo) pip install pianoplayer
and run it with
pianoplayer file.xml

Thank you, I wonder if there is a windows-friendly approach to use it?

I never used windows. :-)
I guess the friendliest would be using anaconda (?)

I think you should keep the previous commit as a separated branch for Windows users

doesn't the latest one work with windows?

the binary only works on linux system

@marcomusy When I run the binary under console, Windows prompts me to choose a program to execute.

if with binary you refer to the 'pianoplayer' file, then this is not a binary but a python script without the .py extension (see e.g. https://docs.python.org/3.3/using/windows.html#shebang-lines )
What if you try
python pianoplayer
or
py pianoplayer ?

Pardon my Python skills :)


Change all views to new projections

[x] Org (https://github.com/caos/zitadel/pull/2342)
[x] OrgDomain (https://github.com/caos/zitadel/pull/2383)
[ ] OrgMember

[x] projection (https://github.com/caos/zitadel/pull/2699)
[ ] query

[ ] IAM Member

[x] projection (https://github.com/caos/zitadel/pull/2699)
[ ] query

[ ] ProjectMember

[x] projection (https://github.com/caos/zitadel/pull/2699)
[ ] query

[ ] ProjectGrantMember

[x] projection (https://github.com/caos/zitadel/pull/2699) (grant_id on project_members projection)
[ ] query

[x] LoginPolicy (https://github.com/caos/zitadel/pull/2401)
[x] IDPConfig (https://github.com/caos/zitadel/pull/2411)
[ ] IDPProviders (needs mapping projection between LoginPolicy and idp which subscribes to provider-events)

[x] projection (https://github.com/caos/zitadel/pull/2590)
[ ] query

[ ] LinkedIDPs

[x] projection (https://github.com/caos/zitadel/pull/2583)
[ ] query

[ ] ExternalIDP

[x] projection (https://github.com/caos/zitadel/pull/2583)
[ ] query

[ ] Styling

[ ] projection
[ ] query

[ ] LabelPolicy

[x] projection (https://github.com/caos/zitadel/pull/2479)
[x] query (https://github.com/caos/zitadel/pull/2479)

[x] PasswordComplexityPolicy (https://github.com/caos/zitadel/pull/2417)
[x] PasswordAgePolicy (https://github.com/caos/zitadel/pull/2418)
[x] LockoutPolicy (https://github.com/caos/zitadel/pull/2419)
[x] PrivacyPolicy (https://github.com/caos/zitadel/pull/2431)
[x] OrgIAMPolicy (https://github.com/caos/zitadel/pull/2432)
[ ] MailTemplate

[x] projection (https://github.com/caos/zitadel/pull/2591)
[ ] query

[ ] MessageText

[x] projection (https://github.com/caos/zitadel/pull/2591 )
[ ] query

[ ] CustomText

[x] projection (https://github.com/caos/zitadel/pull/2591)
[ ] query

[ ] Features

[x] projection + query (https://github.com/caos/zitadel/pull/2578)
[x] fix und tests (https://github.com/caos/zitadel/pull/2610)

[ ] User
[ ] UserMembership
[ ] UserGrant
[ ] NotifyUsers
[ ] Notifications
[ ] UserSession
[ ] Token
[ ] Key
[ ] AuthNKeys
[ ] LoginNames

[ ] projection (https://github.com/caos/zitadel/pull/2698 )
[ ] view for other queries (https://github.com/caos/zitadel/pull/2698 )
[ ] query

[x] Project (https://github.com/caos/zitadel/pull/2613, https://github.com/caos/zitadel/pull/2433)
[x] ProjectGrant (https://github.com/caos/zitadel/pull/2433)
[x] ProjectRole (https://github.com/caos/zitadel/pull/2433)
[x] Application (https://github.com/caos/zitadel/pull/2576, https://github.com/caos/zitadel/pull/2612)

keep https://github.com/caos/zitadel/issues/1117 in mind when migration UserGrants

keep https://github.com/caos/zitadel/issues/2233 in mind when migrating user grants

keep https://github.com/caos/zitadel/pull/2612#discussion_r750957068 in mind when migrating token

as discussed with @adlerhurst I suggest to postpone the following into new separate packages:

Notifications (Notifications and NotifyUsers)

no heavy consumption

Authentication related stuff to the login refactoring (UserSessions, Token, internal query of users)

we have to ensure, that data requested by id especially with tokens, must be up to date
user sessions should be a better projection (computed states, ...)

listMyProjectOrgs currently returns orgs either from orgs table or from user grants (depending on the management role)
the org details (e.g. creation date) is obviously missing in the user grants table. therefore is cannot be returned in the api
this should be easy to solve with the new projections

list queries don't ensure the limits at the moment


[Bug] The setting: Trakt > Progress > Sort shows in the list - doesn't work properly

Hi,
It seems that in Kodi Matrix, the setting of "Trakt > Progress > Sort shows in the list" doesn't work properly no matter what I choose. Currently, the "Trakt > Shows > My Progress" items are consistrntly arranged by unknown rule.
In Kodi 17.6 it seems to be ok.

Elementum 0.1.83
Kodi Matrix 19.2
Windows 10, 64bit

I don't know what was changed but it seems to be ok now.


Nova Configuration Override

What is the purpose of this pull request?:
Initial Commit of Nova Configuration Overrides

This commit is an evolution of the initial keystone configuration
overrides work

It expands upon that work by introducing many of the same concepts
into nova.  It differs in that a few concepts were changed.  Namely
the helm-toolkit/_oslo.tpl concept was abandoned, as there are too
many unique oslo paths for configuration elements, so dynamic oslo
setting mechanism was moved locally into configmap-etc.yaml, where
it is generally used.  The references in keystone were updated and the
helm-toolkit function removed.

Secondly, in nova the mount override effort was altered to instead
provide mount "append" capability.  Keeping the manifest mounts
closer to the actual pod, and keeping values.yaml a tad smaller.
This still allows the original flexibility of operators adding
mounts, but they cannot "undo" any of the charts built in mounts.

There were several manual tweaks that needed to be done to _nova.conf.tpl
after the oslo-config-gen process this time.  This is because there is a
bug in the newton version of generating this file. It does not include
the proper service authentication credentials in the [keystone_authtoken]
section.  Future releases have a separate service credentials section
so future config generations will likely not need these added lines.

What issue does this pull request address?:
Notes for reviewers to consider:
This differs, somewhat from the keystone override pull request.  A minor subsequent PR to keystone would follow to bring that in line.
Specific reviewers for pull request:
@v1k0d3n @wilreichert @DTadrzak @intlabs @wilkers-steve @larryrensing

relates back to issue #200 (for tracking). also, @alanmeadows sorry about the conflicts.

@alanmeadows I've rebased this PR against master and made the changes suggested in this review as well as explicitly setting the read-only flag for mounts where appropriate in this branch: https://github.com/portdirect/openstack-helm/tree/alanmeadows-nova_config, if possible could you either apply these to this PR, or can we merge this instead?

@intlabs @larryrensing resolved, and feedback incorporated

Once the volume mount name @larryrensing pointed out gets resolved, this should be good to go


Crash on latest version 1.60.2

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.60.2
OS Version: Ubuntu 20.04

Steps to Reproduce:

Run code --verbose --disable-extensions

Log
[main 2021-09-28T10:07:59.052Z] Resolving machine identifier...
[main 2021-09-28T10:07:59.052Z] Resolved machine identifier: 5d919843797366f0957f3cfbfa030bd6b8c65edbcfd642e94110688caf01c78b
[main 2021-09-28T10:07:59.053Z] Main->SharedProcess#connect
[main 2021-09-28T10:07:59.068Z] StorageMainService: creating global storage
[main 2021-09-28T10:07:59.068Z] lifecycle (main): phase changed (value: 2)
[main 2021-09-28T10:07:59.068Z] windowsManager#open
[main 2021-09-28T10:07:59.068Z] windowsManager#open pathsToOpen [
  {
    backupPath: '/home/tuan/.config/Code/Backups/1632823646409',
    remoteAuthority: undefined
  }
]
[main 2021-09-28T10:07:59.069Z] IPC Object URL: Registered new channel vscode:f94db414-ff09-4b21-9e99-5e15ffefc5d7.
[main 2021-09-28T10:07:59.069Z] window#validateWindowState: validating window state on 1 display(s) { mode: 0, x: 46, y: 64, width: 2514, height: 1016 }
[main 2021-09-28T10:07:59.069Z] window#validateWindowState: 1 monitor working area { x: 46, y: 27, width: 2514, height: 1053 }
[main 2021-09-28T10:07:59.069Z] window#ctor: using window state { mode: 0, x: 46, y: 64, width: 2514, height: 1016 }
[main 2021-09-28T10:07:59.113Z] windowsManager#open used window count 1 (workspacesToOpen: 0, foldersToOpen: 0, emptyToRestore: 1, emptyToOpen: 0)
[main 2021-09-28T10:07:59.118Z] lifecycle (main): phase changed (value: 3)
[main 2021-09-28T10:07:59.119Z] update#setState idle
[main 2021-09-28T10:07:59.119Z] resolveShellEnv(): skipped (VSCODE_CLI is set)
[main 2021-09-28T10:07:59.196Z] resolveShellEnv(): skipped (VSCODE_CLI is set)
/dev/fd/3: No such file or directory
Server response:
/dev/fd/3: No such file or directory
Server response:
Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
[main 2021-09-28T10:07:59.531Z] CodeWindow: renderer process crashed (reason: crashed, code: 132)

Can you follow these steps https://github.com/microsoft/vscode/wiki/Native-Crash-Issues#creating-and-symbolicating-local-crash-reports and attach the crash report. Thanks!

I update the dmp files
crash.tar.gz

Can you check if the crash happens after deleting ~/.config/Code/CachedData and ~/.config/Code/Code\ Cache

thanks,
I remove the CachedDta and Code Cache but they can not fix.
I must remove all ./config/Code folders.

Does it no longer crash after deleting the config folder ?

yes, It does not crash again.
Thank you.