Removes unnecessary validations

Description

On PR#2848 the author added the method preStorageMigrationStateCheck that will check tags when the operator runs migrateVirtualMachine command. We do not need this kind of check, because when running migrations, the operator must have the ability to migrate volumes to the destination pool, and assuming the risk/responsibilities of migrations to different QoS primary storage systems as proposed and implemented in Fix limitation on tag matching in 'migrateVolume' with disk offering replacement
Therefore, this PR removes the unnecessary method and permits the operator to run migrate commands without any kind of tags check, as it should be.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[x] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
How Has This Been Tested?
To test this, I used the cloudmonkey to run migrateVirtualMachine command

@blueorangutan package

@RodrigoDLopez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian. JID-1814

@RodrigoDLopez this removes tags checking altogether? This will allow migrating volumes to storages which are not even suitable wrt tags?

Exactly that. This was discussed and developed within a series of PRs I created some time ago, and it was broken while merging forward. Therefore, @RodrigoDLopez is fixing part of the broken code with this PR. These are the following PRs that were used to deliver this feature:

https://github.com/apache/cloudstack/pull/2425
https://github.com/apache/cloudstack/pull/2486
https://github.com/apache/cloudstack/pull/2607
https://github.com/apache/cloudstack/pull/2612
https://github.com/apache/cloudstack/pull/2761
https://github.com/apache/cloudstack/pull/2636

The implementation was broken down into several different PRs to easy development and testing. Moreover, the feature was already discussed, approved, and merged a long time ago and there are already people using it. What @RodrigoDLopez is doing is just fixing this feature that was broken during a merge forward from 4.11 that was executed on 4.12.

@rafaelweingartner what branch should this go on (since it was broken in 4.12 you say)

Hi @DaanHoogland
I think it's okay to merge this branch just on the master.

@shwstppr to me it is very simple. It is a feature to provide flexibility and power to operators. It was already discussed with the community, accepted, merged, and released to people. Moreover, there are CloudStack deployments that take advantage of that. Operators must be responsible and aware of the actions they take. Therefore, ACS must fix it (which is what @RodrigoDLopez  is doing). If we want to remove this feature, we need a new discussion, and this will break API compatibility
@DaanHoogland I do not have any preference on what version this fix must go in. However, I see it as I explained. It is a feature that was proposed, discussed, and accepted. People use it. And therefore, we should maintain it as designed and sold to the community and documented.

@sureshanaparti @shwstppr @rhtyd can we merge? Or do you want to re-start the discussion?

@rhtyd, @DaanHoogland, @PaulAngus, @shwstppr
Hello guys, happy new year.
Is there something missing here? Everything seems to be ok with the patch. it has no errors, and tests are passing.

@rhtyd, @DaanHoogland, @PaulAngus, @shwstppr
Hello guys, happy new year.
Is there something missing here? Everything seems to be ok with the patch. it has no errors, and tests are passing.

@RodrigoDLopez

the tests above are regression tests. They therefore cannot check whether the feature works when used as they can only look backwards.  They are also only one small part of the testing rigour that should be applied to any new feature.

the community is working RCs for the 4.15 release, and certainly, I have not heard that master is available to add new features.

The tag validations are there to stop the service offerings from being broken - if you allow anyone to move VMs or storage contrary to the applied tags they are highly likely to pollute the database with resources in places that their service offerings say that they can't be.

If the problem is with moving between conflicting tags, then there needs to be a mechanism to facilitate changing the service offerings applied to a VM/volume, where the VM/storage is automatically migrated to matching hosts/storage; keeping the integrity of the database intact.

@RodrigoDLopez

the tests above are regression tests. They therefore cannot check whether the feature works when used as they can only look backwards.  They are also only one small part of the testing rigour that should be applied to any new feature.

the community is working RCs for the 4.15 release, and certainly, I have not heard that master is available to add new features.

The tag validations are there to stop the service offerings from being broken - if you allow anyone to move VMs or storage contrary to the applied tags they are highly likely to pollute the database with resources in places that their service offerings say that they can't be.

If the problem is with moving between conflicting tags, then there needs to be a mechanism to facilitate changing the service offerings applied to a VM/volume, where the VM/storage is automatically migrated to matching hosts/storage; keeping the integrity of the database intact.

@PaulAngus it is not that complicated. @RodrigoDLopez is not introducing a feature, but rather fixing a bug. The feature was introduced via https://github.com/apache/cloudstack/pull/2636. It was first released on ACS 4.12. If you check the title of the PR that introduced it "Fix limitation on tag matching in 'migrateVolume' with disk offering replacement", and its code, you will see that there is a mechanism to normalize/update the disk offering in the DB to match the target storage. You can even check this option in the API documentation (https://cloudstack.apache.org/api/apidocs-4.14/apis/migrateVolume.html).
The feature was introduced to allow operators to have means to move the volume around, even if the tags do not match. This allows tasks such as troubleshooting performance problems, or validating if a storage tier upgrade would improve application performance. There was a series of PRs that I created to address these needs two years ago or so. They all have been reviewed, approved and merged, and were released. However, it happens to be that this feature was broken at some point in time, and @RodrigoDLopez is fixing this.
Also, there was an e-mail today stating "[ANNOUNCE] master and 4.15 branches open for merge". Therefore, we expected that to be open for everybody, especially for a bug fix such as this one, that was not even raised as a blocker. We know people using this feature, which required some internal patching to make it work on 4.13 for instance.

@PaulAngus it is not that complicated. @RodrigoDLopez is not introducing a feature, but rather fixing a bug. The feature was introduced via https://github.com/apache/cloudstack/pull/2636. It was first released on ACS 4.12. If you check the title of the PR that introduced it "Fix limitation on tag matching in 'migrateVolume' with disk offering replacement", and its code, you will see that there is a mechanism to normalize/update the disk offering in the DB to match the target storage. You can even check this option in the API documentation (https://cloudstack.apache.org/api/apidocs-4.14/apis/migrateVolume.html).
The feature was introduced to allow operators to have means to move the volume around, even if the tags do not match. This allows tasks such as troubleshooting performance problems, or validating if a storage tier upgrade would improve application performance. There was a series of PRs that I created to address these needs two years ago or so. They all have been reviewed, approved and merged, and were released. However, it happens to be that this feature was broken at some point in time, and @RodrigoDLopez is fixing this.
Also, there was an e-mail today stating "[ANNOUNCE] master and 4.15 branches open for merge". Therefore, we expected that to be open for everybody, especially for a bug fix such as this one, that was not even raised as a blocker. We know people using this feature, which required some internal patching to make it work on 4.13 for instance.

thank you I didn't see the email this morning.
I still disagree with the premise; and having the facility to change the disk offering at the same time gives no guarantee that the disk offering and the new storage placement will match.
I cannot see how an API that has the ability to break the integrity of the database is justifiable.

thank you I didn't see the email this morning.
I still disagree with the premise; and having the facility to change the disk offering at the same time gives no guarantee that the disk offering and the new storage placement will match.
I cannot see how an API that has the ability to break the integrity of the database is justifiable.

Please, check the code, and the cited PRs, you can check there in the PR I created there is a method called doesTargetStorageSupportNewDiskOffering. I have not checked if somebody else also broke this check on master, but the code  I created (please, refer to the PR, you can see the code there) checks if the new disk offering matches the target storage. However, that is not mandatory, as I said, it can be used as a means to facilitate operational tasks, and it must be used wisely by operators. Moreover, it has been merged, and it is in use by people. I really do not see why so much resistance from you guys here.

Please, check the code, and the cited PRs, you can check there in the PR I created there is a method called doesTargetStorageSupportNewDiskOffering. I have not checked if somebody else also broke this check on master, but the code  I created (please, refer to the PR, you can see the code there) checks if the new disk offering matches the target storage. However, that is not mandatory, as I said, it can be used as a means to facilitate operational tasks, and it must be used wisely by operators. Moreover, it has been merged, and it is in use by people. I really do not see why so much resistance from you guys here.

@rafaelweingartner
In your response, you say that the disk offering check is not mandatory, therefore the database integrity problem still exists.
I can't speak for anyone else, but my objection is the perpetuation of the database integrity issue.   I only comment now because I wasn't pinged on the other PRs, I was on this one.  If I'd seen this before, I would have objected before.
Also, there is no double jeopardy, there is nothing to stop any piece of code being revisited at a later date.

@rafaelweingartner
In your response, you say that the disk offering check is not mandatory, therefore the database integrity problem still exists.
I can't speak for anyone else, but my objection is the perpetuation of the database integrity issue.   I only comment now because I wasn't pinged on the other PRs, I was on this one.  If I'd seen this before, I would have objected before.
Also, there is no double jeopardy, there is nothing to stop any piece of code being revisited at a later date.

@PaulAngus I disagree. Your concern is only valid if (and only if) the operator is careless, which they should not be. This API is only available (should only be) to root admin.
If we revise this piece of code, we break API compatibility, which has already been broken as a matter of fact. Right now, it is considered as a bug, but if you want to remove this feature, then this has many other implications such as versioning.

@PaulAngus I disagree. Your concern is only valid if (and only if) the operator is careless, which they should not be. This API is only available (should only be) to root admin.
If we revise this piece of code, we break API compatibility, which has already been broken as a matter of fact. Right now, it is considered as a bug, but if you want to remove this feature, then this has many other implications such as versioning.

One alternative would then be to forbid the override placement. And then, we allow changing the target storage pool, as long as the new disk offering matches it (or the current disk offering, if there is no new disk offering).
What do you think? Then, the DB would always be consistent with the storage where the volume resides.

One alternative would then be to forbid the override placement. And then, we allow changing the target storage pool, as long as the new disk offering matches it (or the current disk offering, if there is no new disk offering).
What do you think? Then, the DB would always be consistent with the storage where the volume resides.

There are many ways an admin can wreck their environment which are out of our control.  This is within our control. And i don't believe there is another API that allows the database to be corrupted in this way.
Thats my objection. IMO these checks are not unnecessary, but vital.
I haven't -1'd this.
So if there enough others who aren't worried, I'm not stopping anyone.

There are many ways an admin can wreck their environment which are out of our control.  This is within our control. And i don't believe there is another API that allows the database to be corrupted in this way.
Thats my objection. IMO these checks are not unnecessary, but vital.
I haven't -1'd this.
So if there enough others who aren't worried, I'm not stopping anyone.

just one thing needs to be clear, it does not corrupt the DB. The volume table shows the correct storage pool. The only thing is that this storage pool might not have have tags of the volume's disk offering (in case of an override by the operator). However, this can be fixed if the operator uses the parameter newDiskOffering.
No DB will ever be corrupted by this feature. There is only the possibility to apply some override in case of an emergency or some necessity by the operator. Nothing will break! Tags on pools and volume are merely logical constraints applied by ACS, and nothing more.

just one thing needs to be clear, it does not corrupt the DB. The volume table shows the correct storage pool. The only thing is that this storage pool might not have have tags of the volume's disk offering (in case of an override by the operator). However, this can be fixed if the operator uses the parameter newDiskOffering.
No DB will ever be corrupted by this feature. There is only the possibility to apply some override in case of an emergency or some necessity by the operator. Nothing will break! Tags on pools and volume are merely logical constraints applied by ACS, and nothing more.

Unless I've read the thread incorrectly (and I hope that I have):
The aim of the feature is to allow an admin to move a volume from storage pool A (with tag A) to storage pool B (with tag B), despite the fact that the volume's disk offering tag (A) doesn't match the destination tag (B).
If this is done, then the DB says that the volume should be in a pool with tag A when it's actually on storage with tag B.
Not only is the database then inconsistent with reality, but it will also corrupt the billing of the volume.
If I've understood this correctly, then...
This could be fixed by making it mandatory to supply a 'correct' new disk offering if the migration would otherwise be blocked by the tag mismatch.  The disk offering change should only be made upon successful migration.

Unless I've read the thread incorrectly (and I hope that I have):
The aim of the feature is to allow an admin to move a volume from storage pool A (with tag A) to storage pool B (with tag B), despite the fact that the volume's disk offering tag (A) doesn't match the destination tag (B).
If this is done, then the DB says that the volume should be in a pool with tag A when it's actually on storage with tag B.
Not only is the database then inconsistent with reality, but it will also corrupt the billing of the volume.
If I've understood this correctly, then...
This could be fixed by making it mandatory to supply a 'correct' new disk offering if the migration would otherwise be blocked by the tag mismatch.  The disk offering change should only be made upon successful migration.

@PaulAngus it is your opinion. In my opinion, if the root wants to do a disk placement override, she/he should be able to do so. That is how it was presented for the community, when this feature was first introduced via https://github.com/apache/cloudstack/pull/2425, then we had a series of other patches to improve this feature, one of the PRs introduced the new option in the API to update the DB (https://github.com/apache/cloudstack/pull/2486), if the root admin wants to make a permanent change. The feature was presented to the community as a method to empower/enable root admins to do disk placement override in their daily tasks. Then, to normalize this situation, the root admin can use the option to replace the disk offering.
I really see no harm in this API.

@PaulAngus it is your opinion. In my opinion, if the root wants to do a disk placement override, she/he should be able to do so. That is how it was presented for the community, when this feature was first introduced via https://github.com/apache/cloudstack/pull/2425, then we had a series of other patches to improve this feature, one of the PRs introduced the new option in the API to update the DB (https://github.com/apache/cloudstack/pull/2486), if the root admin wants to make a permanent change. The feature was presented to the community as a method to empower/enable root admins to do disk placement override in their daily tasks. Then, to normalize this situation, the root admin can use the option to replace the disk offering.
I really see no harm in this API.

@rhtyd @shwstppr @sureshanaparti @PaulAngus
Hello to everyone, can I have more reviews/tests here?
I think this is a good one. And I'm just fixing something that at some point was discussed with the community and it was working as @rafaelweingartner  said and showed in previous comments and that can also be seen in my description of this PR.
I don't know why is taking so long to analyze and merge this PR

@rhtyd @shwstppr @sureshanaparti @PaulAngus
Hello to everyone, can I have more reviews/tests here?
I think this is a good one. And I'm just fixing something that at some point was discussed with the community and it was working as @rafaelweingartner  said and showed in previous comments and that can also be seen in my description of this PR.
I don't know why is taking so long to analyze and merge this PR

@RodrigoDLopez I understand this could be a use-case for operators as explained in previous comments but I cannot agree to it in its current form due to the reasons highlighted in Paul's comment. Also, completely doing away tag matching for a particular use-case is not appropriate in my opinion. If this is done on one hand we will have migrateVirtualMachineWithVolumes API which depends on storage tag matching for finding suitable storage pools for volume (when pools for a volume is not passed by the user) and on the other migrateVirtualMachine API which completely ignores storage tags
https://github.com/apache/cloudstack/blob/master/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java#L2824

@RodrigoDLopez I understand this could be a use-case for operators as explained in previous comments but I cannot agree to it in its current form due to the reasons highlighted in Paul's comment. Also, completely doing away tag matching for a particular use-case is not appropriate in my opinion. If this is done on one hand we will have migrateVirtualMachineWithVolumes API which depends on storage tag matching for finding suitable storage pools for volume (when pools for a volume is not passed by the user) and on the other migrateVirtualMachine API which completely ignores storage tags
https://github.com/apache/cloudstack/blob/master/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java#L2824

for vms, we use "cmk find hostsformigration" to list all hosts, it also mentions if the hosts are suitable or not for migration.
if users try to migrate vm to a unsuitable host, cloudstack still allows it.
for volumes, it looks like "find storagepoolsformigration" also mark storage pools with unmatched tag as "unsuitable".
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java#L72
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java#L81
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/LocalStoragePoolAllocator.java#L105
@rafaelweingartner @RodrigoDLopez  could you please confirm it ?
if so, I think we could remove the check.

for vms, we use "cmk find hostsformigration" to list all hosts, it also mentions if the hosts are suitable or not for migration.
if users try to migrate vm to a unsuitable host, cloudstack still allows it.
for volumes, it looks like "find storagepoolsformigration" also mark storage pools with unmatched tag as "unsuitable".
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java#L72
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java#L81
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/LocalStoragePoolAllocator.java#L105
@rafaelweingartner @RodrigoDLopez  could you please confirm it ?
if so, I think we could remove the check.

for vms, we use "cmk find hostsformigration" to list all hosts, it also mentions if the hosts are suitable or not for migration.
if users try to migrate vm to a unsuitable host, cloudstack still allows it.
for volumes, it looks like "find storagepoolsformigration" also mark storage pools with unmatched tag as "unsuitable".
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java#L72
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java#L81
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/LocalStoragePoolAllocator.java#L105
@rafaelweingartner @RodrigoDLopez could you please confirm it ?
if so, I think we could remove the check.

@weizhouapache Exactly! Moreover, even though the override is a possibility, if the operator defines the "newDiskOffering" option, the tags are checked (tags of the new target storage pool with the new disk offering being set). The only situation that the tags are not checked is during a disk placement override that operators might execute in case of emergency or maybe for testing purposes.
The goal here is to enable/empower/provide flexibility for root Admins. They are the root admins of the cloud infrastructure, and they probably know best (better than me at least) how to use/manage their cloud infrastructure.

for vms, we use "cmk find hostsformigration" to list all hosts, it also mentions if the hosts are suitable or not for migration.
if users try to migrate vm to a unsuitable host, cloudstack still allows it.
for volumes, it looks like "find storagepoolsformigration" also mark storage pools with unmatched tag as "unsuitable".
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java#L72
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java#L81
https://github.com/apache/cloudstack/blob/master/engine/storage/src/main/java/org/apache/cloudstack/storage/allocator/LocalStoragePoolAllocator.java#L105
@rafaelweingartner @RodrigoDLopez could you please confirm it ?
if so, I think we could remove the check.

@weizhouapache Exactly! Moreover, even though the override is a possibility, if the operator defines the "newDiskOffering" option, the tags are checked (tags of the new target storage pool with the new disk offering being set). The only situation that the tags are not checked is during a disk placement override that operators might execute in case of emergency or maybe for testing purposes.
The goal here is to enable/empower/provide flexibility for root Admins. They are the root admins of the cloud infrastructure, and they probably know best (better than me at least) how to use/manage their cloud infrastructure.

@RodrigoDLopez can you please resolve the conflicts?

The way I see there is no risk. The migration command is clear about overriding offerings.

if the ADMIN does not want to override the tags validation will happen as expected.
otherwise, if the ADMIN wants to do such migration, the offerings are updated accordingly to one of the offerings that comply with the target storage pool. Thus, allowing the volume migration to the target pool with no harm.

NOTE: I would like to stress how important it is to allow migrating volumes between storage pools as well as overriding disk offerings. We have some annoying issues in production due to such restrictions. For now, we have to manually run MySQL queries any time that such a migration operation is necessary; these, betting that there will be no human mistaken and compromise the DB consistency.

@RodrigoDLopez can you please resolve the conflicts?

Thanks for the review.
I carried out the correction of conflicts as requested.

@PaulAngus @shwstppr
This one is not needed anymore.
Those that made trouble to merge this, has merged another branch that do exactly the same result.
Many thanks to you all, prevents mine ideas to go through. but implements those ideas in another way and merge it without testes. you rock
@weizhouapache @rafaelweingartner @GabrielBrascher
thanks for the review

I don’t know anything about another version of your idea, no one has pinged me to comment on it.  I would be sad if the author of the other version hadn’t pinged you for your comments.
Certainly nothing should be merged without tests.  If there aren’t tests you should bring it up with whoever merged it and if you get no joy there, the community.
Kind Regards
Paul Angus
From: Rodrigo D. Lopez @.>
Sent: Friday, June 11, 2021 2:39 PM
To: apache/cloudstack @.>
Cc: Paul Angus @.>; Mention @.>
Subject: Re: [apache/cloudstack] Removes unnecessary validations (#4283)
@PaulAngushttps://github.com/PaulAngus @shwstpprhttps://github.com/shwstppr
This one is not needed anymore.
Those that made trouble to merge this, has merged another branch that do exactly the same result.
Many thanks to you all, prevents mine ideas to go through. but implements those ideas in another way and merge it without testes. you rock
@weizhouapachehttps://github.com/weizhouapache @rafaelweingartnerhttps://github.com/rafaelweingartner @GabrielBrascherhttps://github.com/GabrielBrascher
thanks for the review
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/apache/cloudstack/pull/4283#issuecomment-859588534, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABEWL3DS5YIZWSNORY7PMFTTSIGV7ANCNFSM4QJS6M7Q.


xrefs are malformed - CURIEs should not have space after the colon

E.g
http://purl.obolibrary.org/obo/CDNO_0200174
INFOODs: LA

the xref should be a CURIE (no space)
INFOODs not registered with https://bioregistry.io/

Apologies for the slow response, this issue has been fixed. Thanks a lot for reporting it @cmungall.


New version: StaticArrays v0.11.1

Registering package: StaticArrays
Repository: https://github.com/JuliaArrays/StaticArrays.jl
Created by: @c42f
Version: v0.11.1
Commit: c9537b9de3eef94e9d7a0b1ead3b867e1337c46b
Reviewed by: @c42f
Reference: https://github.com/JuliaArrays/StaticArrays.jl/issues/673

Your new version pull request met all of the guidelines for automatic merging.
I will automatically merge this pull request during the next cron job.
If you want to prevent this pull request from being auto-merged, simply leave a comment.
(If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.)

On a separate note, I see that you are registering a release with a version number of the form v0.X.Y.
Does your package have a stable public API? If so, then it's time for you to register version v1.0.0 of your package. (This is not a requirement. It's just a recommendation.)
If your package does not yet have a stable public API, then of course you are not yet ready to release version v1.0.0.

[noblock]

The mandatory waiting period has elapsed.
Your pull request is ready to merge.
I will now merge this pull request.

[noblock]


"Movilița" is listed in the drop-down menu

Description:
When user writes "Movilița" the location appears in the drop-down menu next to the comune and the county witch is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Movilița"
Expected results
The location appears in the drop-down menu as "Comuna Movilița, ** IALOMIȚA**"


Allow a different background color for the terminal window

Because all of my VSCode is in a dark theme it sometimes is difficult to distinguish the terminal and related windows against the whole project. It would be nice if a user could change the background color of these blocks of related problem solving windows to make it easier to instantly realize that a terminal or serial monitor...etc window is hiding the code.
Thanks for listening.
Sam Bozman

@SamBozman Hi Sam, thanks for the feedback!
I believe this is more of an issue on core VSCode, rather than simply our extension, as this request applies to all of VSCode extensions, output panes, custom views, etc.
Could you please move this issue to the vscode repo issues list? https://github.com/microsoft/vscode/issues


Additional OS: OpenSUSE

This may be helpful: https://github.com/chef/bento/tree/main/packer_templates/opensuse (several other images are defined here).


Extend OpenID Connect sample

As per the Azure Login action's documentation, we always need to set write permissions for id-token:

In your GitHub workflow, Set permissions: with id-token: write at workflow level or job level based on whether the OIDC token needs to be auto-generated for all Jobs or a specific Job.

ref: https://github.com/marketplace/actions/azure-login#github-action-for-azure-login
Hence, I would suggest adding a code block like below to ensure the example is fully functional without additional research being expected:
permissions:
  id-token: write

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

ID: 697f2ea2-3710-1e09-2f3d-51394d780158
Version Independent ID: 382e3393-910c-7359-ccd3-fe5f26884288
Content: Deploy Bicep files by using GitHub Actions - Azure Resource Manager
Content Source: articles/azure-resource-manager/bicep/deploy-github-actions.md
Service: azure-resource-manager
Sub-service: bicep
GitHub Login: @mumian
Microsoft Alias: jgao

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

@jgarplind, thank you for this feedback. I am assigning it to out content team for further review and action.
@mumian, could you review this feedback and share your thoughts.

@jgarplind - thanks for this feedback. I have added the permissions section to the example. It should get published tomorrow.
#please-close


SystemParam with only ignored parameters

I wanted to add a system parameter that contains to fields that should not be part of the ECS.
The SystemParam-macro has an option to mark fields as #[system_param(ignore)] to do this.
But then the SystemParam requires a lifetime. Find, so I got a tip that the equivalent to
PhantomData but for lifetimes is PhantomData<&'a ()>, e.g.
#[derive(SystemParam)]
pub struct ActiveSurveillance<'a> {
    _secret: PhantomData<&'a ()>,
    #[system_param(ignore)]
    detection_rate: f64,
}

Anyways, this doesn't work at all:
error[E0277]: the trait bound `PhantomData<&'a ()>: SystemParam` is not satisfied
  --> src\regulator_active_surveillance.rs:19:10
   |
19 | #[derive(SystemParam)]
   |          ^^^^^^^^^^^ the trait `SystemParam` is not implemented for `PhantomData<&'a ()>`
   |

So anyways, anyone got a tip for this?
By the way, I still think that SytemParam from bevy::ecs::system should be included in the prelude-module.

didn't try, but the #[system_param(ignore)] go over the param to ignore, not under

The following snippet fails:
use bevy::ecs::system::SystemParam;
use std::marker::PhantomData;

fn main() {}

#[derive(SystemParam)]
pub struct ActiveSurveillance<'a> {
    #[system_param(ignore)]
    _secret: PhantomData<&'a ()>,
    #[system_param(ignore)]
    detection_rate: f64,
}

The errors are:

use of undeclared lifetime name 'w
use of undeclared lifetime name 's

Closing as a duplicate of #2711 now that it's been reproduced and investigated.


symlinks in setup.py

symlinks are needed instead of regular files

I guess this is not relevant anymore since we don't use symlinks now, closing.


Create RSTKSPUtils, set relevant filters and dependencies

Ref #4889

TACLS has a dependency on CommunityResourcePack that is holding it back from KSP 1.2.1

New CRP should be out today.

#rebuild

Seems fine to me :)


lumi.gateway.mgl03 ZNDMWG03LM  and BLE device

I connect the lumi.gateway.mgl03 with the addon
lumi.gateway.mgl03 ZNDMWG03LM
da Xiaomi
Firmware: 1.5.0_0027
The plugin view all zigbee device

but not view the BLE device status door sensor 2 (unknown)

what shall i do?

Sorry I Solve with donwgrade of firmware : 1.5.0_0026mod


Alphabetical sorting of the command list?

Is your feature request related to a problem? Please describe.
We don't have the best internal discipline around keeping the commands in our Makefile in any kind of meaningful order, meaning it would be easier to find a command in the extension's list if that list was sorted from A-Z.  I could see this being an extension setting someday, but I wonder what you'd think of making it the default instead of showing the same ordering as in the Makefile.
Describe the solution you'd like
For the command list to be alphabetically sorted.
Describe alternatives you've considered
Manually sorting our Makefile commands and trying to maintain that ordering over time.
Additional context
N/A

Hello Jeremy, thanks for the suggestion!
Personally, in terms of my personal use, I have to admit that the fact that it's not sorted in alphabetical order is very useful because it forces me to keep a certain consistency in the names of my commands and in their organization within the Makefile. So I'd prefer not to have a default sort. However, I'm not against the idea of a setting that can be activated/deactivated to allow this sorting.
I don't currently have the resources to deal with new functionality on this repo but as you've seen, I'm happy to see people contributing to the development of this extension and so don't hesitate to suggest a PR if you can and if having this setting seems like a good compromise.
Thank you very much

Cool @Akecel, I've been wondering how extension settings work anyway so this will be a good reason for me to play with those.  Will give it a shot over thanksgiving break.  Thanks for being open to the idea!

Took me a little over a year to circle back to this but I posted a PR that addresses both this issue and #1 😁
https://github.com/Akecel/makefiles-runner/pull/19


Some ideas to consider, not finished

Just some ideas to consider. It is by no means a finished refactoring. What I am trying to say is:

heed the YAGNI principle (don't build in things you think you might someday use)
don't use apply too liberally. I'm not sure yet either when it is appropriate or "best practise" but I suggest we stick to the idioms we know for sure that it is used for:

constructors
index-like semantics

use longs names for your functions if short names mean other programmers will have to read the implementation (or the full docs) to understand what the function does. Admittedly, this is a bit hard to ascertain, when you wrote the function. That's why I am giving you that feedback here :)

done: 29e030b


Splom UI extensions

This PR adds several features for the SPLOM UI

Option to invert Y axis, so diagonal goes from top left to bottom right instead of bottom left to top right
Make labels at diagonal optional
Option to add labels + ticks at outside of the SPLOM Matrix
Mouse hove labels: move label to left, add tick values
Set minimum tickLength to 0 instead 0.5
Fix label placement for different sizes and offsets
Fix breaking of View2D bounding box by not unbinding texture

TODOs:

[ ] Scientific mode only supports invert Y, but not other label placement flags
[ ] Mouse hover is always in minimal axis mode
[ ] Mouse hover does not draw tick lines, only tick labels
[ ] Bounding box does not include labels

Looks good so far! 👍

Are there issue regarding label placement in scientific mode?
The "mouse hover labels" show axis-labels near a plot on mouse hover?
Text margin/padding looks a bit off (X and Y axis are different)

* Are there issue regarding label placement in scientific mode?

No issues so far, just the new options not implemented yet.

* The "mouse hover labels" show axis-labels near a plot on mouse hover?

Yes, but that feature was already there before, see #545 for details. Here only layout is updated.

* Text margin/padding looks a bit off (X and Y axis are different)

Which margins do you exactly mean? Perhaps lets discuss that one directly.


Getting a field that is null returns an empty object

I have the RethinkDB-connector activated. If I set a field to null with Deepstream and then tries to get it, it returns an empty object instead of null.
Example:
var record = deepstream.record.getRecord('user/1234');
record.whenReady(function () {
  console.log(record.get()); // Output 1
  record.set('field', null);
  record.discard();
});

var record2 = deepstream.record.getRecord('user/1234');
record2.whenReady(function () {
  console.log(record2.get());  // Output 2
  console.log(record2.get('field'));  // Output 3
  record2.discard();
});

Output 1
{id: 1234, field: 'aField', field2: 'anotherField'}
Output 2
{id: 1234, field: null, field2: 'anotherField'}
Output 3
{}

Hey @jwanglof,
Thanks for finding this issue. I have a feeling it's something to do with JsonPath.prototype.getValue.
Since if:
console.log(record2.get());  // Output 2
console.log(record2.get('field'));  // Output 3
are run sequentially and return
{id: 1234, field: null, field2: 'anotherField'}
{}
That means the object conversion is happening only when .get( fieldName ) is used.
Will take a deeper look later today!

Closing since this is a client issue
Raised a pr for hoxton-one/deepstream.io-client-js#36


[docs] Add a comment that React 16.3.0 is a peer dependency

Closes #12110

@chenop Nice! Thankyou


Change the API so it follows the Flutter BottomNavigationBar

rename selectedIndex to currentIndex
rename onIndexChanged  to onTap

Is there a reason for the API's to be different?
cheers

Also:

BottomNavigationBarItem takes an Icon widget while ExpandingBottomBarItem takes IconData.
BottomNavigationBarItem uses a parameter named title for the label while ExpandingBottomBarItem uses a parameter named text.


Change the debug logs tab UI

Description
A clear description of the bug is:
Change the debug logs tab appearance.
They expected that it would be on the left side, without all the colors and boxes.

Work in Progress (WIP)
checked with Thabet ll keep it as is for now and just put the copyright at the top of the logs

Work Completed
I separated the logs from the footer by adding a frame border and made a small border between the footer and the copyright

verified on devnet
version : 85a6fa4
the dashboard logs now is not blocking any part of the page and the footer is more clear now and copyrights

https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=422331#case_4246720
https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=422331#case_4282878


RLocalCachedMap sometime does not sync data from Redis

Hi,
I have 2 servers that use the same RLocalCachedMap. Server A I use to put data and Server B just use to query data.
I'm facing with issue that sometime Server A updates data but Server B data is still old (cached value is not updated). I checked log but no Redisson exception there.
If I invoke localCachedMap.preloadCache() on server B (via SOS REST call), data of server B will be updated.
I'm using Redisson 3.16.5
This is my LocalCacheOptions
LocalCachedMapOptions.defaults()             .evictionPolicy(LocalCachedMapOptions.EvictionPolicy.NONE)             .cacheSize(0)             .syncStrategy(LocalCachedMapOptions.SyncStrategy.UPDATE)             .reconnectionStrategy(LocalCachedMapOptions.ReconnectionStrategy.NONE)             .writeMode(MapOptions.WriteMode.WRITE_BEHIND);
This is my RedissonConfig
config.useSentinelServers()                 .setMasterName(****)                 .setPassword(****)                 .setReadMode(ReadMode.SLAVE)                 .setSubscriptionMode(SubscriptionMode.SLAVE)                 .setKeepAlive(true)                 .setTcpNoDelay(true)                 .addSentinelAddress(redisUri)                 .setSubscriptionsPerConnection(100)                 .setSlaveConnectionPoolSize(1000)                 .setMasterConnectionPoolSize(1000);
Please help me to point out some ways to investigate and resolve this issue.
Thanks

Did you try to change syncStrategy to SyncStrategy.INVALIDATE ?

Thanks for replying.
I had not try yet. SyncStrategy.INVALIDATE will make getting data slowdown.
Does Redisson have any method that can detect the problem? and I can trigger preloadCache.
Thanks

there is no such method

If a message is dropped, wouldn't INVALIDATE also not work?

It may not work.
Anyway, using the latest version of Redisson will fix this problem, It's more stable with RLocalCachedMap right now.


Update pfvar bindings

Uses bindgen 0.69.4 and newer pfvar.h from https://raw.githubusercontent.com/apple-oss-distributions/xnu/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/bsd/net/pfvar.h
This removes pfvar.h from this repo and instead instruct the developer to get their own copy from XNU.
This also changes bindings to generate Rust style enums even for C enums without any name. They still have ugly generated names, but it's way easier to see which constants belong together. Everywhere where we use these constants we cast them using as u8 anyway, so the Rust code "just works".
This supersedes #87. Sorry @pronebird I felt it was easier to just do this than to instruct you how I wanted it.

This change is

Sure. I can do that. Did not feel there was much to cherry pick. Got different bindings than you

@pronebird There is nothing I can cherry-pick. Because all your relevant changes are squashed with the changes I don't want. The only thing you do in your branch that I want is to update --whitelist to --allowlist and change v4 to _v4addr. The rest is done differently in this PR.

I both created and merged #90 before I even saw there was an open PR doing the same thing. I like PRs more isolated to doing one thing.


Allow functions & custom props in rgba params

Functions being passed as params of rgba were flaggins as literals. This change allows functions to be passed properly as params of rgba.
Fixes #853
There's a lot of other things mentioned in that ticket but I believe all the others to be either misconfigured rules or invalid configs. Happy to keep the issue open if we don't agree though.
<DCO 1.1 Signed-off-by: Dan Purdy<EMAIL_ADDRESS>

Coverage remained the same at 97.573% when pulling 1eb2b5b9319d13414664c13bdf268635e43c8990 on feature_fix-functions-rgba into 658f4c42e6e130ad067736f943449512b9095c00 on v1-dev.

Coverage remained the same at 97.573% when pulling 8d0ae41a20f37849433217b16816be105b0e3514 on feature_fix-functions-rgba into 658f4c42e6e130ad067736f943449512b9095c00 on v1-dev.


Missing highlight groups

Xcode has added support for highlighting a few more items since the last update of the theme. The new highlight groups are ‘Heading’, ‘Type Declarations’, and ‘Other Declarations’. As the Nord theme currently does not define these, they take their colours from the default theme, which is quite jarring.
This is what Nord looks like when loaded into Xcode:

Here is a screenshot showing the missing highlight groups:

All the type and variable names in that saturated blue colour are using colours from the default theme.
Before Xcode added highlighting for these elements they were simply coloured the foreground colour. Is this ideal? Or is there a design decision to be made?

Hi @arzg :wave:, thanks for your contribution :+1:
The new groups should be added to Nord to fix this highlighting. Classes and enums like CompassPoint should use nord7, functions like turnNorth() should be highlighted with nord8 and variables like resolution should use nord4.
To me the element name Heading sounds a bit like that it's only used for markup languages like Markdown, but I guess it requires some testing with different languages.
Feel free to submit a PR if you like to implement these new colors, otherwise I'll add it to the backlog to take a look at it later on 😄

Heading color applied to markdown's codeblock.
I make a fork and set Heading to #D7737D


Issue: LANGSMITH API KEY access request

Issue you'd like to raise.
Hello development team, I hope this message can reach you. I took a look at the features Langsmith brings to the community, it's amazing. That's the solution my team needs. I hope I can access it, but I can't find my API key. Can you help me?Please.
Email<EMAIL_ADDRESS>Suggestion:
No response

Hi @dobahoang , could you send an email to<EMAIL_ADDRESS>to be unblocked? Thank you!

Will close this issue :)


ObjectType.FILE

I'm getting an exception on the Workspace.List() call if it encounters an object of type FILE. This doesn't exist in the enum so it just crashes with unable to serialize. Can this be added, or is there some reason it shouldn't be?

I’m on vacation right now. Will fix after I get back.


macOS Menu Bar: Show Icon Without Text Labels

changing this feature should be meaningful
https://community.ferrumgate.com/t/macos-menu-bar-show-icon-without-text-labels/82

done


Bumped production RELEASE for 1.20-17

Bumped production RELEASE for 1.20-17
closes #1015 and related to #986 releases
DO NOT UNHOLD UNTIL ALL RELEASE CHANGES ARE DONE

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/unhold


Provide FORCE when deleting a pod

I am seeking guidance on how to forcefully delete a pod via this library. I would like to do so via DeleteOptions(https://github.com/kubernetes/client-go/blob/6964e37acfd3678087cfb1ced00774753c27ea96/applyconfigurations/meta/v1/deleteoptions.go) but force is not a property.
Thanks,
Corey

/remove-lifecycle stale

I would like to see this too!


[WIP] Introduce helm charts for kubernetes deployment of saleor

Note: PR in WIP status, not ready for review yet
I will use this PR as a means of communicating certain questions and queries I have using the  gitter channel. If you want to ask me questions or make suggestions while this PR is still in the WIP status, please use the gitter channel.
What does this commit/MR do?

Introduce helm charts for kubernetes deployment of saleor

Why is this commit/MR needed?

Kubernetes is a popular way to deploy apps in a configurable and scalable manner

What items need to be completed before changing resolving the WIP status?
Essential:

[x] Currently sensitive ENV variables are not being handled by kubernetes secrets, those env variables need to be handled through kubernetes secrets.
[x] The liveness and readiness probes for the saleor-app deployment and the saleor-celery-worker deployment have not yet been fully written and reviewed. This needs to be done.
[x] Autogeneration of the SECRET_KEY if it is left absent (once the kubernetes secret for this variable has already been introduced)
[x] Make the uwsgi settings configurable based on the values.yaml values.
[x] Implement horizontal pod autoscaling option for the  saleor-app deployment and the saleor-celery-worker deployment
[x] Write the helm chart README.md file
[ ] Add more complete information on the chart.yaml file
[ ] conditional usage of the persistence  for /app/media depending on whether
or not external storage (AWS) is being used.
[ ] Customize the generic NOTES.txt to deliver more pertinent information to saleor.

Nice to have:

[x] Implement a system for adding the admins as a dictionary in the settings.py whereby the values come from a list in the values.yaml, requires core changes.
[x] Seek implementation of changes in custom-settings.py into the core so that effectively the custom-settings.py configMap can be removed completely from the charts. This also makes the a bigger push towards the 12 factor app way of doing things. A PR is open for this see https://github.com/mirumee/saleor/pull/3057

See:
https://github.com/stephenmoloney/saleor-helm/projects/1
Work is being continued there for now, this PR will be updated later in one swoop.

I've continue to work on this PR but in a repository of it's own.
Once I'm happy with the level of maturity of the helm charts there, I'm going to update this PR in one go.
https://github.com/stephenmoloney/saleor-helm

@stephenmoloney Do you know if the charts will make it as part of this (saelor) repo? Also, has anyone used the charts in production yet?

We're not planning on merging this functionality to Saleor now. Please refer to the repository linked by @stephenmoloney: https://github.com/stephenmoloney/saleor-helm.


Error during the installation via AWS ami image

Hey Team,
I use this image https://aws.amazon.com/marketplace/pp/prodview-m2a25gr67xbzk#pdp-reviews
During the installation, I get the next error:
Setting up Django for DefectDojo...(--------*-) ##############################################################################   ERROR: 2024/02/29 14:36:26 - Failed to run OS command cd /opt/dojo/django-DefectDojo && source ../bin/activate && python3 [manage.py](http://manage.py/) makemigrations dojo, error was: exit status 1
In more details it looks like:
Traceback (most recent call last):   File "/opt/dojo/django-DefectDojo/manage.py", line 11, in <module>     execute_from_command_line(sys.argv)   File "/opt/dojo/lib/python3.10/site-packages/django/core/management/init.py", line 446, in execute_from_command_line     utility.execute()   File "/opt/dojo/lib/python3.10/site-packages/django/core/management/init.py", line 420, in execute     django.setup()   File "/opt/dojo/lib/python3.10/site-packages/django/init.py", line 24, in setup     apps.populate(settings.INSTALLED_APPS)   File "/opt/dojo/lib/python3.10/site-packages/django/apps/registry.py", line 116, in populate     app_config.import_models()   File "/opt/dojo/lib/python3.10/site-packages/django/apps/config.py", line 269, in import_models     self.models_module = import_module(models_module_name)   File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1050, in _gcd_import   File "<frozen importlib._bootstrap>", line 1027, in _find_and_load   File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 688, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 883, in exec_module   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed   File "/opt/dojo/django-DefectDojo/dojo/models.py", line 4344, in <module>     with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning): TypeError: catch_warnings.init() got an unexpected keyword argument 'action'

I had to pin the 2.31.0 version in the installation settings to bypass the issue.

@aliaksxssv
What version was being installed initially before you pinned it at 2.31.0?

By default, it pulls the latest one. In my case, it was 2.31.5.

By default, it pulls the latest one. In my case, it was 2.31.5.

OK. Thanks. I knew it pulled the latest but depending on when you ran it and when you posted the PR, the version can't safely be assumed.  I'll test 2.31.5 and see if I can replicate the issue you had.

@aliaksxssv So, the issue is that Ubuntu 22.04 ships with Python 3.10 and DefectDojo has moved on to Python 3.11.
The failure you saw was caused by a difference between Python 3.10 and 3.11 syntax that was introduced somewhere after 2.31.0. It took a while to figure out where the issue since our containers are using Python 3.11, it only shows up when relying on the OS provided Python. Also the error from Python wasn't particularly helpful:
  File "/opt/dojo/django-DefectDojo/dojo/models.py", line 4344, in <module>
    with warnings.catch_warnings(action="ignore", category=ManagerInheritanceWarning):
TypeError: catch_warnings.__init__() got an unexpected keyword argument 'action'

If you install on Ubuntu 23.10 which ships with Python 3.11.6, there are no issues. I have tested that successfully. However, the AMI installer has historically stuck with LTS releases for Ubuntu so doesn't support Ubuntu 23.10 in it's current version.
We'll create a new AMI image which works around this issue and I'll drop a note here when that's available.

@aliaksxssv
Never got the email from AWS to let me know they approved the updated version of the AMI but I just looked and the updated AMI has been published.
Get the updated one at https://aws.amazon.com/marketplace/pp/prodview-m2a25gr67xbzk that works with versions up to and after 2.31.0


update to 1.23.2

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


[UE4] no static meshes crashes using embree

Hi there - more of a minor bug, but I thought I'd post it for you.
If you have a scene with all dynamic objects (no static ones), this seems to crash phonon if you are using embree.
This took me a few days to figure out, so I thought I'd at least share it here for posterity;-)
-a

We've just released Steam Audio 4.1.0, which includes an updated Unreal Engine plugin: https://github.com/ValveSoftware/steam-audio/releases/tag/v4.1.0.
Try it out and let us know if you continue to face this issue in the new version.


Suppress report autofill breakage prompt after previous submission

Task/Issue URL: https://app.asana.com/0/488551667048375/1207767049586678/f
Description
After submitting an autofill breakage report for a site, the user won't be prompted to send another report for the next n days, where n is a value from remote config (defaulting to 42).
Steps to test this PR
ℹ  Local hack to enable feature: In AutofillSiteBreakageReportingFeature, set default value to true

[ ] Manually add a password for fill.dev
[ ] Visit https://fill.dev
[ ] Tap on overflow->Passwords
[ ] Tap on Report a problem with autofill and choose to Send Report
[ ] Verify you no longer see the "report a problem with autofill" view

Verifying you don't see the prompt again for the exact same site

[ ] Return to browser
[ ] Tap on overflow->Passwords again.
[ ] Verify you don't see the "report a problem with autofill" view
[ ] [Optional] set your device date to 2 months into the future then repeat; you should see the report autofill problem view

Verifying another page on same website isn't shown prompt

[ ] Visit another page on the fill.dev site (e.g., https://fill.dev/form/login-simple)
[ ] Tap on overflow->Passwords again.
[ ] Verify you don't see the "report a problem with autofill" view

Verifying on a totally different website you do see the prompt again

[ ] Visit example.com
[ ] Tap on overflow->Passwords again.
[ ] Verify you do see the "report a problem with autofill" view

Merge activity

Jul 24, 5:55 PM EDT: @CDRussell started a stack merge that includes this pull request via Graphite.


How

Hi

Browser metadata
Path:      /
Browser:   Opera 87.0.4390.45 on Windows 10
Viewport:  1880 x 931 @1x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved


Fixed RqMultipart leading to out-of-memory

Fixed issue #115
Used temp files for request storing

Thanks for the pull request, let me find a reviewer..

@ggajos review this one,please

@davvd please fix

@d-molotchko we should add some test cases also

@d-molotchko also, remember that we may NOT use null anywhere in the framework

@d-molotchko I think you over-engineered the problem here. we can just save the entire request into temporary file and then work with a fileinputstream exactly the same way we worked with memory before

@yegor256 I think no sense in it because parsed parts still in memory. I try to parse input stream into requests with fileinputstream to temporary files. I slightly refactor my code. Review please. If my modification is unnecessary, tell me. I remake it like you said.

@d-molotchko Parser is a mutable class and we promise that all our classes are immutable in this framework

@ggajos what's your take on this?

@yegor256 Parser will be immutable. Just not all new OOP things sits in my head yet.

@d-molotchko that's why I suggest to keep the design the way it was before. making it object-oriented will require 3-4 classes and will need a lot of thinking... I would suggest to leave it untouched and only change the temporary storage of data from memory to disc

@yegor256 ok

@d-molotchko I agree with @yegor256 here, apart of that this PR is too big, we should avoid so many changes in single approach.

@d-molotchko any update here?

@ggajos no, sorry

@d-molotchko task was reassigned, you should close this PR

@ggajos ok

@elenavolokhova review this ticket please, for compliance with our quality rules

@davvd There was no final solution provided in this PR and issue was reassigned to another developer. Quality of this one is bad.

@davvd @yegor256 Should QA review be paid for this ticket?

@davvd quality is bad here

@davvd quality is bad here

@yegor256 thank you for paying attention

@ggajos I added 10 mins to @elenavolokhova (for QA review) in transaction 56844025... 20 mins added to your account (payment number AP-24D55698G4069831U), many thanks for your contribution! 383 hours and 38 mins spent here.... extra minutes for review comments (c=5)... +20 to your rating, your total score is +3091


Website not loading

So I installed it perfectly well and now for some reason when I try go onto the site it just doesnt load.
Website: stats.crapplemc.net
Please help <3

Not a fault with bluestats. The server is down


UI Improvement for k8s.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/

I am learning Kubernetes from the available documentation. When browsing through tutorials of this good quality, the medium and the way content is formatted becomes crucial for the learner. But I see that ~ 40% or more of the available screen estate is consumed by the very unnecessary section of "Edit this page, Create child page..." etc. Please refer to the marked portion in the screenshot attached to clearly pinpoint the section I'm talking about. The specific page is https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/.
I feel the section instead of consuming almost half of the page, can be easily moved down at the bottom or moved up to the up of a tutorial. This allows for a better zoomed - in experience as well as a cleaner and more optimal layout when at normal zoom levels.

Page reported in issue: https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
/area web-development

I understand that you might consider changes if others have suggestions.

... I'm concerned about the impact on other pages.

Considering that I'm new to Kubernetes, and not necessarily would have visited other pages, would you mind sharing what is your concern about the impact on other pages?

The blank white sidebar that you are referring to is utilized on other pages to navigate the headings of that page, see below -

Changing or removing the yellow section can break the site's structure.
Removing the sidebar may make some pages look empty that contain less content.
The documentation site is responsive and doesn't cause viewing or reading issues on different devices.


Add auth type token

This PR add authentication type token to remote source. Basically, it's just the same as auth type password, but use a pre-defined token for authorize instead of doing normal password login step to get token.
This feature is useful in case of integrating agola with git provider transparently for user. The user don't have to go through agola-web to register/login and create project.

@cuonglm Thanks for the PR.
Before doing a reviews I'd like to better understand how this will work. Can you provide more details on how this could be used and with which provider does it currently work?

@cuonglm Thanks for the PR.
Before doing a review I'd like to better understand how this will work. Can you provide more details on how this could be used and with which provider does it currently work?

It works with gitea:
agola --token "admintoken" --gateway-url http://<IP_ADDRESS>:8000 remotesource create \
--name gitea-cuong \
--type gitea \
--api-url http://<IP_ADDRESS> \
--auth-type token \
--auth-token 6746290e522e0ac5679353cb3216795e05e128a5 \
--skip-ssh-host-key-check

auth token is the one I generated in gitea dashboard.
After running above command, I can go to http://<IP_ADDRESS>:8000/register and click my account without interact with gitea. Normal oauth flow will redirect me to gitea page.

@cuonglm Sorry but the changes you're proposing won't work. A remote source defines how the integration between agola and a remote git repository happens. Then agola have the concept of a link between a local agola user and a remote source user (LinkedAccount) (an agola user can also have multiple linked accounts).
Instead you are defining a remote source where you define a global remote source token. I can't understand how this will work (how can register and login flow works?).
Perhaps you could try to better explain what you're trying to achieve, before writing the code, creating a proposal here https://talk.agola.io/c/development/ so we can understand if this makes senses and how this could be implemented.

Instead you are defining a remote source where you define a global remote source token. I can't understand how this will work (how can register and login flow works?).

My use case is that I want to integrate agola with my gitea, but in a transparent way for user. With this auth token, eveyrytime I created an user in gitea, I can create a remote resource for that user with given token, then do all the work in agola side (register, login, create project ...).
I don't see why this hard to understand, it's  just the same with auth password type, but instead of asking username/password to get token from gitea, we already stored a fix token in agola and use this token instead.

My use case is that I want to integrate agola with my gitea, but in a transparent way for user. With this auth token, eveyrytime I created an user in gitea, I can create a remote resource for that user with given token, then do all the work in agola side (register, login, create project ...).
I don't see why this hard to understand, it's just the same with auth password type, but instead of asking username/password to get token from gitea, we already stored a fix token in agola and use this token instead.

It doesn't make sense to define one remote source for a single remote user. A remote source isn't tied to a remote user but to a remote source. What you want to achieve is managed by a Linked Account.
Additionally with your implementation everyone could click on a remote source name and be logged in agola without any authentication mechanism...
The solution will be to do like the password flow (that exists only because gitea didn't implemented oauth2 until 1.8 and that I'd like to remove) replacing the password with a token. This will create a linked account that links a local agola user to a remote one. This kind of remote source won't support login (so users cannot login to agola with kind of remote source) since we don't have a way to login (no password or oauth2 flow).
At the end I'm not sure this makes much sense since the real and correct solution already exists and is oauth2.


Surprisingly slow loading of very simple trees compared to root_pandas

Running uproot 2.9.3 on python3.6 I see that loading a simple tree (flat, 5 double branches) takes around four times longer than using root_pandas.
I have two versions of the input root file: ntuple-32k.root with 32kb bucket size (45 buckets per branch) and ntuple-1M.root with 1 MB bucket size (2 buckets per branch). In both cases it takes around 70 ms to read the file into a pandas data frame with root_pandas but 300ms using uproot on my machine.
I attached both files and the ipython log for the benchmark as ntuple.zip

Thanks! I'll take a look.

First observation: it's not I/O. WIth similar results between ntuple-32k.root and ntuple-1M.root,
Time to read into arrays is a quarter of a second:
>>> import time
>>> import uproot
>>> t = uproot.open("testfiles/ntuple-32k.root")["variables"]
>>> starttime = time.time(); q = t.arrays(); print(time.time() - starttime)
0.245407104492

Time to read into a Pandas DataFrame is more than a second:
>>> starttime = time.time(); q = t.pandas.df(); print(time.time() - starttime)
1.08535289764

Reading the arrays and constructing the DataFrame manually is back down to a quarter of a second:
>>> starttime = time.time(); q = pandas.DataFrame(columns=t.allkeys(), data=t.arrays()); print(time.time() - starttime)
0.255214929581

I would check with root_numpy, but my root_numpy installation is broken because I updated ROOT recently.
Reading the arrays and manually constructing the DataFrame makes an extra copy of the data— t.pandas.df() does something clever to try to preallocate the DataFrame and write the data directly into it. It was supposed to be faster, but it's far slower in this case. As usual, clever is bad.
For now, I'll remove the cleverness until I understand Pandas DataFrame constructors better.

Done! It's now available on PyPI. (Time to board a plane. :)


[HOLD] Added better caching strategy and fallback to non-region-specific languages

Just realized I'm going to need another unit test.

Codecov Report

Merging #226 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #226   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          53     53
  Lines        1201   1205    +4
  Branches      172    174    +2
=====================================
+ Hits         1201   1205    +4

Flag
Coverage Δ

#builder
100% <ø> (ø)
:arrow_up:

#runtime
100% <100%> (ø)
:arrow_up:

#srcapp
100% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

runtime/i18n/resources.service.ts
100% <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 a66fb36...7e07b27. Read the comment docs.

Ready for review


Improve configuration file processing

Currently there are multiple problems with the processing of the configuration file. Gerenrally, the impementation makes many assumptions that are not valid for all users. This pull request addresses two of them.
First, the current implementation fails to read options in the configuration file correctly if they contain too much whitespace between arguments. Errors emerges if the user aligns options for example. With this changes, the line is stripped from unnecessary whitespace so the assumtions of the following processing stay valid.
The second problem arises if the user places opening parentheses on a separate line. Although it is not intuitive, but in such case the current impementation fails in a very bad manner. This pull request introduces checks if the opening parentheses can be found in the next relevant line and appends it to the procesed line.
Although the behaviour is not perfect even after this changes, the rebustness of sway will be increased.

@SirCmpwn, lemon? Ragel? I might go for this, If it isn't too yaccy.

I don't think we need a parser generator for a grammar this simple.


Improve classification scheduling and performance

Although the job queue's been relatively stable in recent days, I noticed times where a single source was using all the background-job resources for 5 or so hours uninterrupted. It was something like 1000 images with 400-1000 points each, all getting queued up to be machine-classified. Another example was 30000 images with 30 points each, which seemed to be on pace for 8-10 hours.
A single classification with an average amount of points is quite fast (1-2 seconds), which is why we don't farm classifications out to AWS Batch. However, at 400 points, these were taking like 15 seconds. There's also the matter that CoralNet lets a source queue up as many classifications as it can queue up in 10 minutes (the enforced timeout for the check-source job), which is why it can be thousands of images in a row from the same source.
High point count or not, classifications are - as far as I can think of - currently the biggest way that a single source can monopolize the background-job processes. Which means no harm to webpage responsiveness, but delays any sort of vision-backend work for every other source. Also, whenever the fabled retrain-button gets implemented, there will be heightened potential for a source to repeatedly queue up this much work. So, this PR's main aim was to limit this monopolization potential, and also addresses related concerns.
Details:

Now when a source check schedules classifications, it stops after it schedules a certain amount of classification "work". The "work score" is computed as 100 per image, plus point count for each image. If a single source check reaches 100,000 work score, then it stops scheduling classifications, and you generally have to wait till the previous classifications are finished before another source check will run.
So at 10 points per image, you'll be limited to around 900 images in a row, at 100 ppi you'll be limited to 500 images, and at 1000 ppi you'll be limited to 90 images. Also, once the last classification is finished, the following automatic source check has a delay of 10 minutes, which should allow other CoralNet background jobs to get a chance.
The exact numbers can of course be tweaked later based on performance observations.

When testing, I realized that this part of the classification scheduling logic was no longer particularly accurate:

Here we detect whether the deployed classifier is the latest one used for ANY classifications. We check this because, most of the time, a given classifier has either taken a pass on ALL classifiable images, or it hasn't run at all yet.

In fact, it didn't just become inaccurate now. It also wasn't accurate when I introduced the 10-minute timeout to source checks in PR #480 (part of production starting November 2023). If the check timed out, then the deployed classifier would be the latest one among any classifications, but it wouldn't be queued to run on all classifiable images.
So I ended up introducing a new DB field, ImageAnnotationInfo.classifier, to track the latest Classifier that took a pass over each Image. Assuming this field gets updated when it should, this makes the images-to-classify logic more accurate as well as a lot simpler.
The new field is pre-populated by a data migration, but only for images which have ClassifyImageEvents associated with them. These events were introduced in CoralNet 1.7. So, any images that were last classified before 1.7 are subject to a redundant re-classification on the next source check. However, since 1.7 was 11 months ago at this time of writing, it doesn't seem like this will trigger a concerning number of redundant classifications (given that we no longer try to check every source every day).

I was thinking about what was making 400-point classifications take 15 seconds. At first I was going to farm out these high-point classifications to AWS Batch. But then I remembered that just saving the annotations is slow; they are saved one by one since saving in bulk would skip the django-reversion signals needed for creating Annotation History entries. Indeed, clicking Save in the Annotation Tool also takes at least several seconds with around 200 points.
But the ClassifyImageEvents introduced in CoralNet 1.7 were already a first step towards reworking Annotation History, such that we'd be able to save in bulk. So I took a few next steps:

Instead of just using the ClassifyImageEvents internally (for source checks), the events that are created from now on have their details displayed on the Annotation History page, in the same format as the previous history entries.

django-reversion entries are now turned off for machine-classification, so that we don't have duplicate entries along with the Event-derived ones. However, django-reversion is still used for the Annotation Tool, Alleviate, and Upload Annotations.

Machine-classification of images now uses bulk_create() for a speedup, in the most common case where the image starts off completely unclassified (with zero annotations). Later, we could try to get fancier and bulk-create or bulk-update in other cases, but I thought that most of the time we'd either be creating all the annotations or updating just a few.

I think I now have a clear idea of the next steps to completely replace django-reversion for Annotation History, which would make speedy bulk-saves possible in more cases, and would save a lot of database storage space (potentially cutting it in half, if I recall). I'll detail that in issue #32 .

I think classification performance sped up by a factor of less than 2, if anything. Hard to say beyond that. But the scheduling is improved at least.


Request [Feautre]Anime By Genere

i wonder If you can add to KawAnime the option to organize the anime by genre
for example I love anime in romantic and funny genre something in Fate to Klaied Style so It's be easy to find a specific anime instant explore all the software, or if there is as anime that I don't know so I search in the genre I want

The search method needs improvements and filter search will and must be done.
However, there probably won't be a filter for releases and local animes. Only search.

Alright, I did some research and in the end, this will go in a anime recommandation page which will probably be a better version of this. Also this will probably allow a Random recommandation.
I am currently reworking the app's UI to look greater and to be easier to use so this task will get right after that!

@Kylart
Thank you very much


Getting Error Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process

TestNG Version : 6.9.9 / 6.14.3

Note: only the latest version is supported

Expected behavior
Actual behavior
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project WanderlyScenarios: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process
[ERROR] org.testng.TestNGException:
[ERROR] Cannot find class in classpath: com.scenarios.Wanderly_ApplyJob_Scenario
[ERROR]         at org.testng.xml.XmlClass.loadClass(XmlClass.java:77)
[ERROR]         at org.testng.xml.XmlClass.init(XmlClass.java:69)
[ERROR]         at org.testng.xml.XmlClass.(XmlClass.java:55)
[ERROR]         at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:575)
[ERROR]         at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
[ERROR]         at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
[ERROR]         at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
[ERROR]         at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
[ERROR]         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
[ERROR]         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
[ERROR]         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[ERROR]         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[ERROR]         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
[ERROR]         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
[ERROR]         at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
[ERROR]         at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
[ERROR]         at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
[ERROR]         at org.testng.xml.XMLParser.parse(XMLParser.java:38)
[ERROR]         at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16)
[ERROR]         at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9)
[ERROR]         at org.testng.xml.Parser.parse(Parser.java:152)
[ERROR]         at org.testng.xml.Parser.parse(Parser.java:233)
[ERROR]         at org.testng.TestNG.parseSuite(TestNG.java:295)
[ERROR]         at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:348)
[ERROR]         at org.testng.TestNG.initializeEverything(TestNG.java:995)
[ERROR]         at org.testng.TestNG.run(TestNG.java:1009)
[ERROR]         at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:295)
[ERROR]         at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:84)
[ERROR]         at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:90)
[ERROR]         at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR]         at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR]         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Is the issue reproductible on runner?

[ ] Shell
[yes ] Maven
[ ] Gradle
[ ] Ant
[ ] Eclipse
[ ] IntelliJ
[ ] NetBeans

Test case sample

Please, share the test case (as small as possible) which shows the issue

Have you tried fixing the error of TestNG not being able to find the class in your class path for com.scenarios.Wanderly_ApplyJob_Scenario by checking if the class name is correct ?

While running with Eclipse, my suit is running properly and getting passed [perform both run as maven test & run as testng suite]
But, while running the same suit from command prompt I am getting the above errors.[tried the
mvn compile test / mvn clean compile test]

Hi Krishnan,
That issue got resolved.
Root cause of that issue was : 'src' folder structure.
My folder structure was 'src/com. Scenarios. Wanderly...'
This works inside eclipse but when we invoke code from cmd or externally. It wont work
I changed folder structure to
'src/test/java/com. Scenarios.wanderly...'
This is default maven folder structure.
Which works from both inside eclipse and cmd.
In old structure maven not able identify its default path to find the classes.
Thanks & Regards
Ashish Mishra
+91<PHONE_NUMBER>

From: Krishnan Mahadevan<EMAIL_ADDRESS>Sent: Thursday, March 7, 2019 12:51:27 PM
To: cbeust/testng
Cc: Ashish Mishra; Author
Subject: Re: [cbeust/testng] Getting Error Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process (#2027)
Have you tried fixing the error of TestNG not being able to find the class in your class path for com.scenarios.Wanderly_ApplyJob_Scenario by checking if the class name is correct ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/cbeust/testng/issues/2027#issuecomment-470627550, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AsxAYXiw2xaKwpsLbGdcXvVAi0Dg6F8cks5vUVGfgaJpZM4bjuyJ.

This e-mail and any files transmitted with it are Wanderly US's property, are confidential and are intended solely for the use of the individual or entity to whom this email is addressed. If you are not one of the named recipient(s) or otherwise have reason to believe that you have received this message in error, please notify the sender and delete this message immediately from your computer. Any other use, retention, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited.

any one knows, is this issue solved?, since am getting this issue now.. i couldn't able to fix this. Could you please provide us any soltions. Thanks

@chandru226 - This is not an issue to begin with. So there is nothing that needs to be done to fix this.
You need to look at the stack trace of your failure to figure out what is causing the problem.


DMN Editor's Boxed Expression Editor: FEEL function documentation is not rendered

We have a regression of #353 feature. Once user tries to display FEEL function documentation. It is not rendered and an error appears in the browser console log.

@jomarko Any idea what commit introduced this regression? Might be good to know so we can assess the effort it would take to fix it.

@tiagobento I do not know the commit. My investigation brings this:

the issue is reproducible on https://sandbox.kie.org/
the issue is reproducible on https://sandbox.kie.org/dev
the issue is not reproducible on main built as: pnpm -F online-editor... build:dev

It brings me to a suspicion, it is somehow related to build:prod . Do you think it is possible we pack some js libraries that are in conflict, or something similar?

@jomarko I just investigated, and I concur with your conclusions. In addition

the issue is not reproducible on VSCode Extension

It might be something regarding the configuration of Monaco on build:prod, like @jomarko mentioned...  I'm working on #439 and the documentation for functions listed on autocomplete is working normally on the Dev webapp I put together...

It seems it doesn't reproduce anymore in https://github.com/kiegroup/kie-tools/pull/1869, PR where monaco-editor has been updated to the latest version ( tested here https://danielzhe.github.io/feel/dist/#/).
I'll re-test after the PR merge. If confirmed, I'll close this accordingly.

@yesamer yes, I agree with that proposal. Feel free to close it if not reproducible.

Fixed by https://github.com/kiegroup/kie-tools/pull/1869


❓ [Question] How to install torch_tensorrt python API in ubuntu 20.04?

❓ Question
I want to install torch_tensorrt python API in ubuntu 20.04. could you please provide step by a step installation procedure? I tried
pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases
when I try to import the module
import torch_tensorrt
I'm getting the below error,

Environment

Build information about Torch-TensorRT can be found by turning on debug messages

PyTorch Version (e.g., 1.0): 1.11.0
CPU Architecture:
OS (e.g., Linux): LINUX
How you installed PyTorch (conda, pip, libtorch, source): conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
Build command you used (if compiling from source):
Are you using local sources or building from archives:no
Python version: 3.7.13
CUDA version: 11.3.1
GPU models and configuration:
Any other relevant information:

@narendasan @peri044

Looks like it can't find one of it's dependencies.
You could try following the PyTorch docs: https://pytorch.org/TensorRT/tutorials/installation.html
You'll need to install the different parts manually to get the wheel to eventually work, it does not bundle anything.
(1) install CUDA: https://developer.nvidia.com/cuda-zone
(2) install CUDNN: https://developer.nvidia.com/cudnn
(3) install TensorRT: https://developer.nvidia.com/tensorrt
(in a venv)
(5) install PyTorch: https://pytorch.org/
(5) pip install tensorrt pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases
If you run into missing instructions you can post here and  I'll try to go back through my bash history.
This is what I do:
(1)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin

sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub

sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"

sudo apt update

sudo apt install cuda

(2) and (3)
Get the debs from the links in PyTorch docs and install.
(in a virtual env)
(4) I use pip, so I pip install pytorch
(5) pip install tensorrt pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases

@dignakov , thanks for your reply,
Steps i followed the below steps,

https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-pip - i followed this step to install tensorrt
then using pip command pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases I installed torch_tensorrt.
however, the weird part is, if import torch_tensorrt as a first module in script it throws the same error

Error
same as my above screenshot.
if i do like the below steps
import torch
import tenosrrt
import torch_tensorrt

it gives warning.

I have no idea if those instructions work . . . I've only been able to get a successful system up and running using what I posted . . .
If you're confident you've got cuda, cudnn, and tensorrt running, the other thing to check is if you've got proprietary nvidia drivers installed and they can see your gpu.
(1) Can you run (in a terminal) nvidia-smi and post what you get.
(2) In python, check if it can see your GPU:
import torch
torch.cuda.is_available()  # should return True
torch.cuda.device_count()  # how many devices you have
torch.cuda.current_device()  # which one you're using now
torch.cuda.get_device_name(0)  # what you got above to see what it thinks it is

@dignakov you're right it didn't work now after I restarted the kernel.
could you please help me to install it? To be honest, I'm familiar with installing using Linux commands. But I'm trying my best.

@IamExperimenting can you try following what I had in my comment above (https://github.com/pytorch/TensorRT/issues/1133#issuecomment-1159780655)?
(1) is exactly how I usually do it.
for (2) and (3) you can just download the debs and run sudo apt install ./whatever.deb
I don't use conda, so if you want to follow the instructions below, you need to deactivate any conda environments.
(4) and (5) - I make a virtual environment
python3 -m venv env
source it source env/bin/activate (you'll need to do this every time you want to use pytorch)
install pytorch pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
install torch-tensorrt pip3 install torch-tensorrt -f https://github.com/NVIDIA/Torch-TensorRT/releases

@dignakov , after some continuous debugging and with your support. Now, I'm able install torch_tensorrt. please find the screenshot

however, I still have a question, when I looked into PyTorch official installation page, it has many steps like installing C++ and bazel and python3 setup.py [install/bdist_wheel] and python3 setup.py install --use-cxx11-abi
So, here my question is do I still need to install all those or am I good to go with the above installation?
https://pytorch.org/TensorRT/tutorials/installation.html
I'm still clear with the instruction document to install torch_tensorrt.
it would really help me and others to understand?
@dignakov  if possible could  you please put down a step by step to install for python API.

Unless you'd like to build everything from source, you should be okay just with the 'Precompiled Binaries' section. That's everything you need for the "Python API", if you can import torch_tensorrt and use it, you shouldn't need to do anything else.
The section you're talking about is titled Compiling From Source, and that's for building everything from scratch.

@dignakov  thanks very much for your support.

@dignakov I'm still facing the error ERROR: [Torch-TensorRT] - Cannot get current device

Are you trying to setup cuda or cudnn?

@narendasan  I'm trying to setup CUDA, CUDNN and TensorRT. Finally, to install torch_tensorrt.

Can you try installing the latest package, as long as you have cuda installed all other dependencies will get installed for you via pip. If the issue persists reopen the issue.


Improve documentation

The documentation is poor right now, there are a lot of methods that are not documented and that are realy necessary to make xcomponent useful with changing props for instance.
I'd volunteer to do it but i'd need some time a maybe some guidance :smile:

I agree. So many other priorities right now that I'm having trouble finding time to give the docs here some much needed love. I'll be happy to give any guidance if you'd like to take a stab at it.

Right now only one method is documented. (Create)
There are so many method that idk if they are public API or not, maybe giving a hint on that topic  would be enough so i can create PRs adding docs for each method.

how about proper doclets and auto generaed docs?

@bluepnume i think we should start by documenting at least all the options of xcomponent.create
I see there are a lot of undocumented stuff there

Agreed on that. I just finished a huge effort to get static flow types across all of xcomponent, so now I have a little bandwidth to take up some of this documentation effort.

@bluepnume amazing :smile:
. I'd be really glad to help, i'm now working with xcomponent in my company, so I might have also some questions (so far everything good, but i'd like to add a custom prerender template, i'm not sure how to do that for instance)

I've taken a good stab at this here: https://github.com/krakenjs/xcomponent/blob/master/docs/api.md
There's still gaps, but this is a pretty comprehensive api doc for 90% of the useful parts of xcomponent. If you could review it and let me know any suggestions that would be awesome! Thanks

I've also created this demo app that people can fork: https://github.com/krakenjs/xcomponent-demo

@bluepnume just read the article announcing all the repos. Really cool!
I'm gonna take a look to the docs. Thanks a lot!

@bluepnume just checked the docs, looking good in general, just missing info about what you can find in the iframe window like window.child.onProps and things like that.
I think those are used for more complex use cases.
If you can tell me which file implements those features, i can take a look and make a PR :smile:

Everything on window.xchild is implemeted here: https://github.com/krakenjs/xcomponent/blob/master/src/component/child/index.js
Problem is a lot of those methods aren't intended to be public, but I was lazy when building this for the first time and just exposed the entire class as window.xchild :D so I don't necessarily want to add public docs for all of it. I'll add stuff like onProps though, thanks for reminding me.


feat(plugin-web-service-oidc): add Open ID Connect auth plugin

Cockpit auth implicit flow with PKCE
PKCE (RFC 7636) is an extension to the Authorization Code flow
to prevent certain attacks and to be able to securely perform
the OAuth exchange from public clients.
It is primarily used by mobile and JavaScript apps, but the
technique can be applied to any client as well.
https://oauth.net/2/pkce/
Signed-off-by: Peter Somogyvari<EMAIL_ADDRESS>

Checklist:

[ ] Dependency: consortium management
[ ] Dependency: per plugin instance distinction for the IDs (right now all plugin instances have the same ID and they are not individually routable)
[ ] Dependency: routing mechanism that is aware of individual plugin instances not just plugin IDs
[ ] Define how per consortium member OIDC providers would work (persistent storage is the biggest question)
[ ] Implement per consortium member OIDC providers
[ ] PoC in the cockpit package that uses multiple consortium members

Can you explain how OID will be used in Cactus at the meeting ?
I believe Open ID Connect is known as a single-sign-on functionality. I doubt the acceptance of foreign identities by a blockchain.

Can you explain how OID will be used in Cactus at the meeting ?
I believe Open ID Connect is known as a single-sign-on functionality. I doubt the acceptance of foreign identities by a blockchain.

Fair questions.
It is aimed to be an application layer concern for those who want it (so optional to use like any other plugin).
Will produce much more details about this, but the truth is that I don't have all the answers yet either, just making a lot of it up as I go. I'm deducting most answers on the fly from this vision that it should be easy(er) for a dapp author to use Cactus to create an end user facing application that can run cross-chain transactions on behalf of the end user's identity(es).
Stay tuned for more in the near future, but it has other dependencies that I need to work on before this can even get to the stage where I'm comfortable switching it from a 'draft' to a real PR (of course help/feedback is welcome at any point in time including right now)

@petermetz this looks awesome. So the idea is to allow end users to connect over OIDC to Cactus, and then possibly run transactions on behalf of a certain user registered on the blockchain correct?
So we assume some kind of mapping OIDC - blockchain identity, similarly to what happens today with full-stack dApps built on permissioned blockchains, I suppose?

@petermetz this looks awesome. So the idea is to allow end users to connect over OIDC to Cactus, and then possibly run transactions on behalf of a certain user registered on the blockchain correct?
So we assume some kind of mapping OIDC - blockchain identity, similarly to what happens today with full-stack dApps built on permissioned blockchains, I suppose?

@RafaelAPB 100% correct!

Closing this down temporarily as part of the PR spring cleaning. We'll re-open it later once I have more time to work on it. We bridged the biggest gap with an intermediary PR that added JWT authZ (this is about authN)
cc: @travis-payne


add Gopkg.* files for dep and add gitignore

see this : https://github.com/golang/dep
and then we can install dependency of the same version to /vendor

Hi @Chyroc, I'm not sure about vendoring yet. I tried dep a month ago or so and had some pretty big issues. I'll take a look tonight and see how it fairs, what I do want to do though is help people with vendoring in their generated Lile apps!

Hi @Chyroc, I looked into vendoring but got different results with my dep due to having different libraries installed, so I've pushed that up and closed this. I hope the vendoring helps you out!


Fix(helm): Use spaces in ingress template

What this PR does / why we need it:
The ingress file created by helm create was using spaces to indent, but had two lines tabs in there. This changes it so all lines are spaces.
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

@alexhumphreys Thanks!


How to change the Laravel log file name???

Laravel Version: 5.4.25
PHP Version: 7.0
Database Driver & Version:

Description:
`
I can't use the \Illuminate\Foundation\Bootstrap\ConfigureLogging anymore. I want to override this function:
protected function configureDailyHandler(Application $app, Writer $log)
{
    $log->useDailyFiles(
        $app->storagePath() . '/logs/customLogName.log',
        $app->make('config')->get('app.log_max_files', 5)
    );
}

`
Can you help me please?
Thanks!

Finally, I've got the answer. Add this in your app/bootstrap/app.php file:
$app->configureMonologUsing(function($monolog) use ($app) {
    $monolog->pushHandler(
        (new Monolog\Handler\RotatingFileHandler(
        // Set the log path
            $app->storagePath().'/logs/customLogName.log',
            // Set the number of daily files you want to keep
            $app->make('config')->get('app.log_max_files', 5)
        ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true))
    );
});

That did the trick.

Glad you figured it out, please post questions on the forums in the future, there's more chance you get answers there than here :)