fix(vnet)!: moving ngs rules management into nsg resource

Description
Put NSG management into one resource (instead of two: NSG itself and NSG rule separately).
Motivation and Context
Although there is no change in the module behaviour, the code is:

cleaner
easier to understand (no flattening, nested for loops etc)
represents the structure of the NSG variable (NSG rules are managed inside the NSG resource using dynamic block)

How Has This Been Tested?
Two tests were done:

a new VNET was set up using the new module (using the example code) to prove that the module is working
a VNET was set up with the old module and then an update was run against that resource with the new module. This showed that this is a BRAKING change, meaning that in such situation two runs of terraform are required:
2.1. the 1st one removes the old rules
2.2 the 2nd adds the rules again, but using the new code.

Types of changes

Breaking change as described in How Has This Been Tested

Checklist

[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[ ] All new and existing tests passed.

Additional tests were done regarding the Azure API behaviour during NSG rules update. In this situation the dynamic block does not act like a count loop. There is no list created that is maintained inside the state file. Therefore any change in the (for example) order of rules is not treated by terraform (nor Azure) as a change.
The azurerm_network_security_group resource is using this AzureRM API. The list of rules comes in as a body parameter. This means that the comparison of  the existing rules against the requested ones is done by AzureRM instead of terraform and this leads to terraform reporting this change as in-place update instead of a resource replace.

Additional tests were done regarding the Azure API behaviour during NSG rules update. In this situation the dynamic block does not act like a count loop. There is no list created that is maintained inside the state file. Therefore any change in the (for example) order of rules is not treated by terraform (nor Azure) as a change.
The azurerm_network_security_group resource is using this AzureRM API. The list of rules comes in as a body parameter. This means that the comparison of the existing rules against the requested ones is done by AzureRM instead of terraform and this leads to terraform reporting this change as in-place update instead of a resource replace.

Thanks for the effort you put in to testing

Additional tests were done regarding the Azure API behaviour during NSG rules update. In this situation the dynamic block does not act like a count loop. There is no list created that is maintained inside the state file. Therefore any change in the (for example) order of rules is not treated by terraform (nor Azure) as a change.
The azurerm_network_security_group resource is using this AzureRM API. The list of rules comes in as a body parameter. This means that the comparison of the existing rules against the requested ones is done by AzureRM instead of terraform and this leads to terraform reporting this change as in-place update instead of a resource replace.

Are you sure? My state indicates those rules are maintained as a list in the Terraform state
  "resources": [
    {
      "mode": "managed",
      "type": "azurerm_network_security_group",
      "name": "example",
      "provider": "provider[\"registry.terraform.io/hashicorp/azurerm\"]",
      "instances": [
        {
          "schema_version": 0,
          "attributes": {
            "id": "/subscriptions/xxxx-xxxxx/resourceGroups/example-resources/providers/Microsoft.Network/networkSecurityGroups/acceptanceTestSecurityGroup1",
            "location": "westeurope",
            "name": "acceptanceTestSecurityGroup1",
            "resource_group_name": "example-resources",
            "security_rule": [
              {
                "access": "Allow",
                "description": "",

Are you sure? My state indicates those rules are maintained as a list in the Terraform state

Yes you are right, but that'a list in a resource, not a list of resources. Therefore it does not behave like a loop with count.
I did some more testing, it's to much code to paste it in a comment so I leave it here.
With this change the code is more readable, so it's easier for someone just to go in and contribute.
On the other hand changing a single rule (not the order, but a change in the rule or adding/deleting one) triggers a whole NSG to be updated. By whole I mean replacing all rules in a single update. It's not that precise like with managing rules as a separate resources. The questions is how often this code is used to manage existing infrastructure and can we 'sacrifice' precision in favour of readability :)
Still, that's just an idea.

moving to draft - found bugs for scenarios where no NSG rules are defined
additionally, when using this module with inbound load balancer, some rules are being created outside of the VNET module. Tests have to be performed to check if an update will not cause deletion of some of the rules.

After a discussion with @migara this PR will be closed. Proposed functionality is a nice way of handling things with azure, but it misses the flexibility the current approach has. It would also not work in brown field deployments, where NSG rules are partially managed by customer.


:seedling: Split the operator controller

Summary
Related issue(s)
Fixes # https://issues.redhat.com/browse/ACM-10852

/retest

/retest

/test images

/test images

/retest

/retest

https://github.com/stolostron/multicluster-global-hub/pull/982


After running php artisan budget:install my yarn.lock is updated

See https://github.com/sebastiaanspeck/budget/commit/0d5aaef08845224d242e4ca72b30bee1a9699cb5 for the contents. Maybe we/you need to update the dependencies (and update composer as well)?

Hmm... The yarn.lock file isn't supposed to stay locked until we perform a yarn update? Like with npm?
I have the impression that it re writes following a yarn install in BudgetInstall.php

After running yarn install it doesn't update, but when using npm install it does update

It's seem to be a know issue https://github.com/npm/cli/issues/5126 on npm

So the fix for now is to use yarn over npm

Someone say

I mean, the workaround is just to restore the file with git restore yarn.lock after npm is run, but it gets boring.

We can maybe add on budgetinstall this restore if we select npm as package manager ?

Sounds like a good idea


Added Ola Sitarska to a team page 🎉

Finally got around to do it (took me a while, I know :blush:)

merged in f1635ba4332391502fbdb8b7a54e151b68fc35ce, thanks!
p.s. I'm afraid git log doesn't support emoji?

It does: 742fba94554818a988fe1e6cc8aa547831cca872 ;)

But not unicode emoji (see title of this PR)?


Update patch version for Azure RG task.

Hi @codito, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Arun Mahapatra). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

gulp should update task.loc.json too

apart from above comment - signoff


Support encrypted databases

I'd be very interested to see support for including open source extensions to sqlite, such as SQLCipher.

Generally I think Lighter should just work w/ a direct fork of SQLite like SQLCipher which has the exact same API like SQLite.
For the non-raw API (Lighter module) one might need a custom ConnectionHandler to pass in the encryption key.
The key question is how one would embed SQLCipher. It has a CocoaPod which apparently shows up and overrides the systems SQLite3 module?
Looks like there are no plans to provide an SPM package as well: https://github.com/sqlcipher/sqlcipher/issues/371
Either way, I think we should provide a configuration that allows the user to override how SQLite is imported in generated code. So that one could say it is import SQLCipher instead of import SQLite3.
Though that doesn't help with Lighter as a lib. That could have something like:
#if canImport(SQLCipher)
import SQLCipher
#elseif canImport(SQLite3)
import SQLite3
#else
#error "Could not locate SQLite library."
#endif

I think I'm willing to do that, but it should be clear what SQLite alternatives should be supported and what SPM packages they would come wrong.
Good feature request, I'd also like to have encrypted SQLite!


syzkaller "aarch64-linux-gnu-gcc": fatal error: cannot execute ‘cc1plus’: execvp: No such file or directory compi│ lation terminated.

When I was compiling the new Syzkaller, I encountered this error.The reason is that there is no cross-compiled g++ arm64 environment. My solution is as follows:
sudo apt install g++-aarch64-linux-gnu

Hopefully this solution will help others, I've been struggling with this problem for hours.

Also see:
https://github.com/google/syzkaller/blob/1c9013acc70de325dbb554c8c40c17ed02eff33f/Makefile#L376-L394
https://github.com/google/syzkaller/blob/1c9013acc70de325dbb554c8c40c17ed02eff33f/docs/contributing.md#using-syz-env


Possible mx.array bug?

I think the mx.array is not initializing arrays the way one would expect and does not raise an error when one references array elements that are out of bounds, which can be a trap when implementing complex logic, especially for guys like me, who have been trained in fortran and always have to be conscious about the indexing 😄 ...
Here's a simple example to highlight what I think is a bug:
import mlx.core as mx
import numpy as np

# Initializing the temperature field and copy on the GPU
T_mx = mx.ones([4, 4])
T_np = np.ones([4, 4])

print(T_mx)
print(T_np)
print(T_mx[0,0], T_mx[0,1], T_mx[0,2], T_mx[0,3], T_mx[0,4], T_mx[0,5], T_mx[0,6])
print(T_np[0,0], T_np[0,1], T_np[0,2], T_np[0,3], T_np[0,4], T_np[0,5], T_np[0,6])

and here's the output
array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]], dtype=float32)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

array(1, dtype=float32) array(1, dtype=float32) array(1, dtype=float32) array(1, dtype=float32) array(1, dtype=float32) array(1, dtype=float32) array(1, dtype=float32)
Traceback (most recent call last):
  File "/Users/m2/PycharmProjects/pythonProject_MXL/bug.py", line 11, in <module>
    print(T_np[0,0], T_np[0,1], T_np[0,2], T_np[0,3], T_np[0,4], T_np[0,5], T_np[0,6])
                                                      ~~~~^^^^^
IndexError: index 4 is out of bounds for axis 1 with size 4

Process finished with exit code 1

MLX is happy putting 1 into the out of bounds elements, while Numpy properly raises error for those elements.

Thanks for flagging this! I'll get working on a fix right away

Actually, this is expected behavior. This is in general once place where we might end up being different than NumPy and go more like Jax. You can try the same example in Jax, I believe the default behavior is to use the last value for out of bounds indexing (but it doesn't throw).
One reason we go this route in general is that's we don't raise exceptions from Metal kernels and we don't want to sanitize inputs before the kernel as that is costly / doesn't make sense with the execution model.
There maybe some simple cases (like Python integer based indexing) that we can properly throw (or at least make it an option) for. But when you start to do more fancy indexing with other mx.array, we may have to follow Jax.
Another thing we should do @jagrit06 is document this a little more clearly so it's not a surprise.

I'm going to mark this as docs/enhancement since it's not actually a big.

@awni I agree about raising exceptions from metal kernels
My thinking was we let the underlying gather/take metal kernel remain the same, but instead do a check in the __get_item__ call - that way most cases are covered before ending up at the metal kernel - what do you think ?

I can see the performance motive, but if by mistake you use an out of bounds index to set the value (i.e. you think you are setting the last value but your index actually overshoots) the value of the last element is not being set. So this works one way (reading) but not the other way around (writing).  This can be nasty to track. I run into just this error, I thought was setting the last element, but I overshooting the bounds by 1 in the time stepping, so I was actually setting a non-used ghost element. It took me quite a while to figure out.  It would be nice if at least there was an option to enforce NuMpy like behavior.


Update stream-files-dotnet-quickstart.md

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

Looks good. @vishnupasuleti Thanks for submitting this typo fix.


Successful Lints should have different descriptive text

Currently tests that pass still have negative descriptive text. We should have different text for passes, or potentially even different UX (failures get sorted to the top of the list, passes got to the bottom and are minimized by default)

#16 addresses this but I'll leave this open in case we want to iterate some more on the UX here.


#44 -  refactor database

Still work in progress
What's in the PR

database design has been changed and java classes have been modified accordingly

How to test manually

there is no migration path from the old database. so you need to start over.
see the curl examples from the readme and check if this works as intended

Contains things that need to be dealt with in future issues. Due to lack of time, we will merge this anyway. Related Issues will be linked as they are created.


Includes with actual passed data instead of Item\Collection\Null that implements with ResourceInterface

Most common part of providing a data is to provide the counts for something, counting something really loads a lot or even in DB Query if we want to.
I have these set of counts where I need to count specific statuses for each job, so let us say I have 5statuses, I want to count separate the counting per include.
public function includeCountCompleted(Models\Job $job)
{
    return $job->completed()->count();
}

The above will never work since it requires us to return a class that implements ResourceInterface either [Item, Collection, Null].
In anyway, I could override the Scope class to inject something inside executeResourceTransformers.
What I could do for now is to include all counters in 1 include as array.

with 0.17.0
you may try the primitive()

public function includeCountCompleted(Models\Job $job)
{
    return $this->primitive($job->completed()->count());
}

and result will then like

{
    'id' : '1',
    ....
    'count_completed': '12345'
}

Thanks @terrylow, I didn't notice the primitive method.


Config/float marshal

As it turns out, converting from a floating point number to a string and back is actually an exceptionally hard problem with multiple research papers published. Current state of the art for a correct, fast implementation would be Grisu3 with Dragon4 or one of it's variants as a fallback. If absolute correctness is not an requirement, Grisu2 would also be appropriate. An implementation can be found at
https://github.com/google/double-conversion or in the RapidJSON library.
Until we have that, disable for safety.

AutoConfig seems to require float marshalling, so I don't think it's an option to disable it.
But as autowiring::marshall seems to only be used by AutoConfig, we probably don't need floating point marshalling to be perfect across denorms, quiet NaNs, or signalling NaNs either.
How about we restore the custom floating point code and bring this branch home? Then we still benefit from an integer marshalling implementation that is 30 lines smaller.

@jdonald I'll open a separate PR to use the STL functions where appropriate, but float parsing is still a serious problem and the implementation given here is actually wildly incorrect - 0.0001f is printed as 0.00001

I'm gonna cancel this PR - if we want to introduce a proper JSON or double-marshaling library we can do so later.


Release v1.3

Support for monitoring forked child processes
Improved handling of incompatible agent versions

Also new are onesdk_stub_get_agent_load_info and some fixes/improvements in the CMake package config file. I think we could mention at lest the first one in the readme. OTOH it's not really a big feature :)

@pgroke-dt Sorry, I somehow missed your comment, I amended the README on master directly.

@Oberon00 No problem. Not sure if it's worth mentioning it in the readme anyway.


Prioritized Buffer doesn't have the extend method used in Trainer

Adding this to #154

Sorry #151


Add support for hidden strings - passwords, sensitive data

Proposed changes
Sometimes you do not want to log/report passwords/sensitive data to logs/reports when using SelenideElement setValue.
I have created a simple HiddenString class to store plainTextValue (e.g. password) and user defined toStringValue. User defined toStringValue can be set e.g. to:

"********"
"Description of password for user A"
"HashiCorp Vault path: 'path-for-password-for-user-a', Vault crypted value: 'sg363hey343h366g'"

The HashiCorp Vault version allows:

to have all passwords be stored in HashiCorp Vault
all test logs and reports be public without exposing or leaking passwords or sensitive data
privileged users be able to decrypt values from logs and reports from HashiCorp Vault

You can use setValue("some string text") as before (backward compatibility)
or:
HiddenString hiddenPassword = new HiddenString(PasswordManager.getPasswordForUserA(), "This is description of my password visible in logs and reports");

$("#password").setValue(hiddenPassword);

Or with Vault in a way (simplified):
String vaultPath = "vault-store/prod-users/team-a/user-123";
String plaintextPassword = VaultUtils.getPasswordForUser(vaultPath);
String cryptedPassword = VaultUtils.encryptPassword(vaultPath, plaintextPassword);
String toStringValue = "Path: '" + vaultPath + "'";
toStringValue +=  "; CryptedPassword: ''" + cryptedPassword + "";

HiddenString hiddenPassword = new HiddenString(plaintextPassword, toStringValue);

$("#password").setValue(hiddenPassword);

What can I do with failing Firefox checks?
https://travis-ci.org/selenide/selenide/builds/543708087

@firyx Technically, your solution is good.
But I am in doubt because:

Why do you use real passwords in tests? I think it's not a good practice. You should use a dedicated environment with test data for running tests. Isn't it a world-wide best practice?
It doesn't solve the problem anyway because passwords are still visible e.g. in chromedriver.log
For example, command $(By.name("password")).val("sherlyn"); produces the following lines in "chromedriver.log":

[1563916584.390][INFO]: [5e5bb4972119c35fe8247bafaa10eb24] RESPONSE ClearElement
[1563916584.396][INFO]: [5e5bb4972119c35fe8247bafaa10eb24] COMMAND TypeElement {
   "id": "e39c1d05-f4f5-493a-ba16-1a34053da12a",
   "text": "sherlyn",
   "value": [ "s", "h", "e", "r", "l", "y", "n" ]
}

Closed due to inactivity.


yarn install checksum issue

➤ YN0013: │ react-native-quick-sqlite@https://github.com/margelo/react-native-quick-sqlite.git#commit=99f34ebefa91698945f3ed26622e002bd79489e0 can't be found in the cache and will be fetche ➤ YN0013: │ react-native-quick-sqlite@https://github.com/margelo/react-native-quick-sqlite.git#commit=99f34ebefa91698945f3ed26622e002bd79489e0 can't be found in the cache and will be fetche ➤ YN0018: │ react-native-quick-sqlite@https://github.com/margelo/react-native-quick-sqlite.git#commit=99f34ebefa91698945f3ed26622e002bd79489e0: The remote archive doesn't match the expected checksum ➤ YN0000: └ Completed in 44s 604ms ➤ YN0000: Failed with errors in 46s 61ms

I am know in the process of native version upgrade, code has already been merged to main but is not stable (I keep branch for the bug fixing the currently live version only locally). Will keep an eye on this during end 2 end tests.

Should now be fixed, at least I was able to get rid of the issue in github pipeline.


feat(v2): add support to import assets using relative link in markdown syntax

Motivation
Help in importing assets.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
By adding test
Here working example -> https://deploy-preview-3096--docusaurus-2.netlify.app/build/docs/next/markdown-features#common-assets

I converted pr to use remark plugin since it will be more uniform.

LGTM :)


[DCA] Add descriptors for Pods and Object metrics to custom metrics store.

What does this PR do?
This PR continues the work on custom metrics to additionally parse HPAs for Pods and Object metrics.
$ datadog-cluster-agent status

  Custom Metrics Provider
  =======================
    ConfigMap name: datadog-hpa

    Detected Metrics
    ----------------
      Number of descriptors detected: 3

    External Metrics
    ----------------
      Number of external metrics detected: 1

The delimiter that is used to join parts to build the key to store metrics can also be used in the hpa namespace, hpa name or metric name. So attempting to split the key may split in more parts than intended. The solution may be to move to using JSON for the key, or try using an internal map stored under a single key. Either way I need to fix this in this PR before it can be reviewed.

I am closing this since I have decided to take a different approach similar to the MetadataController.


Granularity/Types of Profiles

In issue #17 (closed) I pointed out we need more clarity on the difference between vocabulary and profiles (or merging them into a single concept of profiles as Russell proposed). However, we also need to determine the level of granularity allowed for profiles (or clearly specify the different types of profiles supported in xAPI). I'll try to explain in bulleted sections below.

First let's talk vocabulary vs profile. ADL created a vocabulary list (https://w3id.org/xapi/adl), and it also has a specific profile (SCORM) that uses the vocabulary. The SCORM profile (https://w3id.org/xapi/scorm) also defines additional types of properties that are used specifically in that profile. The SCORM profile exclusively uses the ADL vocabulary terms but also defines additional custom data elements within the profile to address concepts unique to SCORM (e.g., attempt state, temporal model). Another example of this is medbiquitous. They have a core vocabulary list of terms they plan to add to, but plan to build out several different profiles over time based on their various medical scenarios or use cases. The have already built one (virtual patient), but anticipate the need to create additional profiles in the near future. So my question here...isn't there a need to have vocabularies and profiles as separate datasets? If we merge them together conceptually then it opens up more questions on how to deal with the current ADL & medbiq vocab terms as well as older xAPI terms and old practices from activity streams, tincan, etc. For example, if we merge the ADL vocab and SCORM profile together then are we saying that ADL terms are only skos:inScheme of the SCORM profile? If so, that's fine we just need to figure how to handle all of the older IRIs and associate them with certain profiles. It also might impact  IRIs and content negotiation. For example, if you GET the SCORM profile IRI it returns all of the SCORM profile data, not just the vocabulary dataset/list or even the individual terms.

In addition to distinguishing between vocabularies and profiles there are larger, existential questions about just profiles. See (2) below.

What are the different types of profiles? It seems we currently have the concept of what I'm calling a "project profile" that may define a vast amount of custom properties, vocab, and extensions. Project profiles seem to be rather large implementations that are based on other specifications, concepts, or broader use cases. In addition to SCORM, cmi5, IEEE ADB, and Medbiq virtual patient project profiles, another example of a project profile is Across X: https://w3id.org/xapi/acrossx. In addition to these project profiles (e.g., cmi5, SCORM, IEEE ADB, Across X), more granular types of "activity-based profiles" can be created to represent specific implementations of learning activities. For example, activity profiles (e.g., assessment or video) can be used as a stand-alone profile or within a broader project profile. This is similar to the granularity that IMS Caliper is attempting to achieve where they have the concept of "metric profiles" for very discrete event-based activities such as posting or interacting with a discussion forum, media (audio/video), etc. These metric profiles can then be reused inside of any type of implementation. I think it's important that we recognize the potential levels of granularity here when talking about profiles. They could be very small reusable profiles or they could be very specific implementations with lots of requirements and not very reusable. Should the more granular types of profiles be activity/event based? Should they only be project / specification based? Or both? Do we need tighter control / governance over granular profiles (those that have the most reuse potential)?

I'm not sure "project profile" vs "activity profile" is the best way to describe these. Any thoughts on normalizing the terminology and concepts around profiles is much appreciated. It seems like we need to step back and figure this out. It has big implications on how people will understand the importance of profiles, but also will have bigger implications on the interoperability & validation of profile data in general, and also in how we will develop tools to support creating/authoring and publishing profiles.

Profiles can be vocabulary-like by being mostly concepts, and the statement templates can refer to terms from other profiles. inScheme is only used in profiles for being a concept in the profile -- terms used across profile are not also inScheme of the profile they're additionally used in.

I expect to see some profiles that are more about providing a rich set of constructs and other profiles that are more about setting up communications rules, and every mix in between. I also expect to see smaller more focused profiles as well as larger, expansive ones, and every mix in between.

I think the appropriate term for both is profile. I don't see the value in attempting to set up delineations between these, and I see a lot of potential confusion and harm.

Been meaning to follow up on this. So just so I'm clear on what is being proposed...the new profile spec and the updated example of the SCORM profile looks like you suggest that all of the ADL vocabulary terms should be associated with existing profiles? For example, terms like abandoned and waived should now be associated with the cmi5 profile. And all of the other concepts should associated with the scorm profile? Then we should version out the old ADL vocabulary list. That way everything is connected to a profile. Is that the general idea? I need to make sure we have this right before adding the wrong tool functionality for publishing profile data.

Therefore, every concept that belongs to a profile should use the "skos:inScheme" property to connect them to the profile.
What are your thoughts about the referencedBy property we created previously as part of the vocab working group? I see no mention of that being deprecated yet I only see use of skos:inScheme. Can you elaborate on why we still do (or do not) need referencedBy?

@jhaag75 first, re: referencedBy. The use of inScheme here is the same as the use of inScheme you can see in the example vocabularies, for example at https://github.com/fugu13/xapi-vocabulary/blob/master/examples/sports.jsonld#L23 . referencedBy was for a different purpose that is not (currently) possible in profiles, and so isn't present.
Regarding particular vocabulary terms, I see a few possible ways forward for the ADL and its compendium of terms, with the two main ones being:

put all verbs and activity types in a profile with no templates or patterns, then just use them in the profiles that have templates and patterns

put verbs and activity types that strongly associate with a particular profile (SCORM, mostly) into that profile, and put the rest in a catchall like described in 1.

Either one of these would work fine. In both cases, the descriptions of each profile should probably crosslink to all the other profiles, since people are used to finding all the information together.


Defender Plan 1 vs Defender Plan 2 vs Defender Azure vs Onboarding

Hello,
Some time ago we have enabled the full Azure Security Center (Defender for Azure), this activated Defender ATP's old platform that is now migrated to the Microsoft 365 Defender (security.microsoft.com), then later we enabled Microsoft 365 E5 security for some users, then enabled Defender Plan 2 and we onboarded those users devices to Microsoft 365 Defender using Endpoint, now all users with Microsoft 365 E3 received Defender Plan 1, assuming that onboarding process is still same via Endpoint...
But, because Defender for Azure and Defender Plan 2 activate other services like "vulnerability management" etc. in Microsoft 365 Defender, how can we make sure we stay compliant with the license?
Or if we onboard:

Azure servers via Azure Defender - this triggers extra services because servers licensed for this
Defender Plan 2 - this enabled all futures from Defender ATP and those devices will show all data from the full license
Defender Plan 1 - all those devices, if we go to the device will show us some limited information

Will it be the case?
Or because we have 1-2 enabled, the 3 will allow us to see all options possible to get from Microsoft 365 Defender?
How can we stay license complaint, split deployment or we shouldn't care about it because it is as it is and there is no way to do so, so it is not a customer problem?
This message is to request documentation about a possible combination of licenses per single-tenant, like what if we have Plan 2 and Plan 1 or what if Azure Defender and Plan 1, etc.

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

ID: 3d966a60-ffac-d1b0-4a2c-34bd64edd5ce
Version Independent ID: da866056-2041-3c18-77c9-05fdd5fa7caa
Content: Overview of Microsoft Defender for Endpoint Plan 1
Content Source: microsoft-365/security/defender-endpoint/defender-endpoint-plan-1.md
Product: m365-security
Technology: mdep1
GitHub Login: @denisebmsft
Microsoft Alias: deniseb

@denisebmsft Please help us in resolving this issue. Thanks

@yogkumgit I have reached out to PMs for help with this issue and will respond here soon.

Hello @lightupdifire and thank you for posting this excellent question. We understand that this is an issue, and we are working on it at priority.


Redirect via redirect()->intended() to a file download not working after re-login

I used your demo application as boilerplate and nearly everything works fine. Great work.
My current problem:
I have an endpoint which allows users to download a file
    public function download(Download $download)
    {
        return response()->download(storage_path(Download::BASE_DIR . $download->filename));
    }

If a user is logged in it works correctly.
If a user is not logged in and tries to reach a download url it looks the following after login:

The redirect via redirect()->intended() in the AuthenticatedSessionController redirects to the correct url but it seems that something is mixed up in response.
(FYI: I had a similar looking problem before when I am using  component to link to the download, changing this to a normal <a href="..."> solved this, also described here https://github.com/inertiajs/inertia-laravel/issues/101)

Sorry, I updated to v0.6.4 and it seems that this was fixed already (now it's redirecting to HOME after login if you try to download a file)

Is it somehow possible to actually download file after login?


sixgill  metaproteomics  database  for LC-MS/MS

https://github.com/dhmay/sixgill/wiki
Sixgill (Six-frame Genome-Inferred Libraries for LC-MS/MS) is a tool for using shotgun metagenomics sequencing reads to construct databases of 'metapeptides': short protein fragments for database search of LC-MS/MS metaproteomics data.
Tasks:

[ ] Conda recipe for six gill
[ ] Datatype: metapeptides.tsv.gz - tab-delimited gzipped files
[ ] Datatype:  MetaGeneAnnotator.txt -
[ ] sixgill galaxy tools

### class SixgillMetapeptides(Binary):
    """Class describing a Sixgill Metapeptides bgzipped TSV peptidei database"""
    file_ext = "metapeptides.tsv.gz"

    def sniff( self, filename ):
        # Sixgill Metapeptides is compressed in the BGZF format, and must not be uncompressed in Galaxy.
        # The first line has column headers: sequence tlength tmin_qualscore tpartial_orf_length tmetagene_score tread_ids
        try:
            header = gzip.open( filename ).read(73)
            if header.startswith('sequence\tlength\tmin_qualscore\tpartial_orf_length\tmetagene_score\tread_ids'):
                return True
            return False
        except:
            return False

Start on tools in sixgill branch

https://github.com/bioconda/bioconda-recipes/pull/2596
https://github.com/galaxyproteomics/tools-galaxyp/tree/sixgill/tools/sixgill

sixgill tools committed.   sixgill version 0.2.4 has option to omit gzipping files, so no new datatype is currently needed.

Great work! Thanks @jj-umn!


Umzug does not support newest migration format from sequilize and sequelize-cli

When using the following library versions (all latest available at time of writing)

sequilize: 6.6.5
sequelize-cli: 6.2.0
umzug: 3.0.0-beta.16

After following the sequelize-cli documentation and running the following commands to create and validate up and down behaviors for the following sequelize-cli generated migration
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
npx sequelize-cli db:migrate
npx sequelize-cli db:migrate:undo
'use strict'
module.exports = {
    up: async (queryInterface, Sequelize) => {
        await queryInterface.createTable('Users', {
            id: {
                allowNull: false,
                autoIncrement: true,
                primaryKey: true,
                type: Sequelize.INTEGER,
            },
            firstName: {
                type: Sequelize.STRING,
            },
            lastName: {
                type: Sequelize.STRING,
            },
            email: {
                type: Sequelize.STRING,
            },
            createdAt: {
                allowNull: false,
                type: Sequelize.DATE,
            },
            updatedAt: {
                allowNull: false,
                type: Sequelize.DATE,
            },
        })
    },
    down: async (queryInterface, Sequelize) => {
        await queryInterface.dropTable('Users')
    },
}

When you setup Umzug with the following configuration defined in the Readme
const umzug = new Umzug({
    migrations: { glob: 'migrations/*.js' },
    context: sequelize.getQueryInterface(),
    storage: new SequelizeStorage({ sequelize }),
    logger: console,
});
await umzug.up()

You get the following error (slightly modified for readability) when the migration (which was found successfully) is attempted to be applied by Umzug
{
event: 'migrating', name: '20210810150559-create-user.js'
Migration<PHONE_NUMBER>0559-create-user.js (up) failed:
Cannot read property 'INTEGER' of undefined
}

This is because the migration at the top of this issue, which was generated by sequilize-cli, requires the following to parameters to be passed to the up and down methods

queryInterface
Sequelize

It seems Umzug@3 is only passing the queryInterface parameter (meaning Sequilize is undefined and causing the Cannot read property 'INTEGER' of undefined error)
From what I can tell in the documentation it does not look like there is a way in Umzug@3 to pass this additional parameter (it seems Umzug@2 has support for a params option in config) which means (I believe) that Umzug@3 does not currently support the latest version of sequilize / sequilize-cli.
Remedy Options:

Umzug@3 is updated to support the latest sequilize / sequilize-cli generated migration format which expects this second parameter
If there is a specific version of these libraries that the latest version of Umzug supports up to, they should be added to the Readme prominently so new users know what version of libraries to use to generate migrations in a way that Umzug can digest and run correctly.

I don't have much experience with this library but would be happy to help with version upgrades or documentation of version requirement in the meantime if the creators / maintainers would like!
Basically it would just be nice if the newest version of Umzug supported the newest version of Sequilize and Sequilize-CLI out of the box

@mmkal that is exactly what I was looking for, I must have completely missed that, thank you!
In case anyone wanders on this thread I'll post my full Sequlize + Umzug config which is working with the following library versions

node: 14.17.0
sequilize: 6.6.5
sequelize-cli: 6.2.0
umzug: 3.0.0-beta.16

import { Sequelize } from 'sequelize'
import { Umzug, SequelizeStorage } from 'umzug'

const sequelize = new Sequelize(
    'habitapper',
    `${process.env.POSTGRES_USER}`,
    `${process.env.POSTGRES_PASSWORD}`,
    {
        host: `${process.env.POSTGRES_HOST}`,
        dialect: 'postgres',
    }
)

const umzug = new Umzug({
    migrations: {
        glob: ['db/migrations/*.js', { cwd: __dirname }],
        resolve: ({ name, path, context }) => {
            // adjust the migration parameters Umzug will
            // pass to migration methods, this is done because
            // Sequilize-CLI generates migrations that require
            // two parameters be passed to the up and down methods
            // but by default Umzug will only pass the first
            const migration = require(path || '')
            return {
                name,
                up: async () => migration.up(context, Sequelize),
                down: async () => migration.down(context, Sequelize),
            }
        },
    },
    context: sequelize.getQueryInterface(),
    storage: new SequelizeStorage({ sequelize }),
    logger: console,
});

(async () => {
    try {
        await sequelize.authenticate()
        await umzug.up()
        console.log('Connection established and migrations run.')
    } catch (error) {
        console.error('Unable to connect to the database:', error)
    }
})()

My guess is the following is the most common use case for new users for this library

User sets up a JavaScript (e.g express based) API
User wants to connect to database so adds Sequilize
User wants to generate migrations files so follow's Sequilize's Documentation and adds Sequilize-CLI and uses it to generate their first migration
User wants to automate the programmatic running of their Sequilize-CLI generated migrations on startup for their application so follows documentation and adds Umzug
User uses the most prominent configuration from the top of the Umzug readme which seems like it should work just fine for their configuration
User gets error when migrations are found and attempted to be run and can't quickly figure out why
User gives up on Umzug (even though it's awesome) and prepends sequelize-cli db:migrate to the front of their npm start command

This is initially what happened to me (I was new to the entire JavaScript API stack) but I'm so glad that I'm now able to run my migrations from code instead of relying on a command in my npm scripts!
I'm going to marinate on this for a little bit so and come up with what's hopefully a good way to express this information in the Readme (without being unnecessarily verbose) and then I'll submit a PR.

@mmkal that is exactly what I was looking for, I must have completely missed that, thank you!
In case anyone wanders on this thread I'll post my full Postgres + Sequlize + Umzug config which runs migrations created by Sequilize-CLI.

database: postgres
node: 14.17.0
sequilize: 6.6.5
sequelize-cli: 6.2.0
umzug: 3.0.0-beta.16

import { Sequelize } from 'sequelize'
import { Umzug, SequelizeStorage } from 'umzug'

const sequelize = new Sequelize(
    'MY_DATABASE_NAME',
    `${process.env.POSTGRES_USER}`,
    `${process.env.POSTGRES_PASSWORD}`,
    {
        host: `${process.env.POSTGRES_HOST}`,
        dialect: 'postgres',
    }
)

const umzug = new Umzug({
    migrations: {
        glob: ['db/migrations/*.js', { cwd: __dirname }],
        resolve: ({ name, path, context }) => {
            // adjust the migration parameters Umzug will
            // pass to migration methods, this is done because
            // Sequilize-CLI generates migrations that require
            // two parameters be passed to the up and down methods
            // but by default Umzug will only pass the first
            const migration = require(path || '')
            return {
                name,
                up: async () => migration.up(context, Sequelize),
                down: async () => migration.down(context, Sequelize),
            }
        },
    },
    context: sequelize.getQueryInterface(),
    storage: new SequelizeStorage({ sequelize }),
    logger: console,
});

(async () => {
    try {
        await sequelize.authenticate()
        await umzug.up()
        console.log('Connection established and migrations run.')
    } catch (error) {
        console.error('Unable to connect to the database:', error)
    }
})()

My guess is the following is the most common use case for new users for this library

User sets up a JavaScript (e.g express) based API
User wants to connect to database so adds Sequilize (most prominent JavaScript ORM)
User wants to generate migrations files so they follow Sequilize's Documentation and adds Sequilize-CLI and uses it to generate their first migration
User wants to automate the programmatic running of their Sequilize-CLI generated migrations on startup for their application so they follow Sequilize-CLI documentation and adds Umzug
User uses the most prominent configuration from the top of the Umzug readme which seems like it should work just fine for their configuration
User gets an error when their migrations are found and attempted to be run and they can't quickly figure out why
User gives up on Umzug (even though it's awesome) and prepends sequelize-cli db:migrate to the front of their npm start command

This is initially what happened to me (I was new to the entire JavaScript API stack so lots of new pieces to learn) but I'm so glad that I'm now able to run my migrations from code instead of relying on a command in my npm scripts!
I'm going to marinate on this for a little bit so and come up with what's hopefully a good way to express this information in the Readme (without being unnecessarily verbose) and then I'll submit a PR.

Also, I did encounter some issues when using migrations with SQLite database (for testing purpose only). So I did add a third parameter named sqliteMode: boolean in the resolve callback, that I can get in my up() method of my migration. This lets my run some conditional instructions depending on the dialect I'm using in the current environment. Hope this helps too


Add GH_USERNAME as default Vault value

What is your feature idea?
tl;dr:
Add the GitHub username as a value in Vault so that operators can use that if they need to interact with GitHub from inside the cluster.
Implementation:
When a cluster is created, there should be a GitHub username value somewhere in Vault, preferably near the GH Token value that is already stored.
I believe that Kubefirst already has this information, but even if you only have token, it is possible to generate the username from a curl request:
curl -Ls \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer ${GITHUB_TOKEN}" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/user | jq -r '.'

Thanks!
Why is it needed?
Right now there are a number of useful default values in Vault. One of those values is the GitHub token used during cluster creation. This can be useful for cluster operators to interact with GitHub using other in cluster tools, however these interactions often require both the token and the username.
More specifically, I am a contributor to the tool Kratix which is in your catalog and requires users to provide GitHub credentials. My goal is to reduce user inputs by autogenerating the resources they need based on the Kubefirst credentials.
As you will see in the implementation details above, this is able to be generated by the operators, but feels nicer to not have to generate it given the other useful data is already in Vault.
Is this missing feature preventing you from using kubefirst?

[ ] Yes

Code of Conduct

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

Thanks for the idea @abangser. As discussed on our Slack community, not sure when we'll be able to prioritize this, but I think it's a good feature idea.

It's not exactly what you wanted, but it is now accessible for applications installed from the GitOps Catalog with the new tokens available. It may solve your issue if you needed that for Kratix deployment.


Preparation dashboard

feat: Put DebugPanel inside Accordion
fix: At least zero for voronoi (prevent errors while drag and dropping charts)
refactor: Use styles for slider
refactor: Decouple state creator from store creation
refactor: Diminish API surface of interactive filters provided value
refactor: Make it clear that useInteractiveFilters is bound to a particular chart context
refactor: Use MUI exported classes
fix: Sort termsets by label
refactor: Make interactive filters provider more flexible
feat: InteractiveFiltersProvider wraps the necessary components
feat: Update storybook
refactor: Better error
refactor: Adapt test to use interactive filters dashboard context

Thanks for the thorough review, I've created an issue for the problem you saw 🙇


Crithack

Description:
The crithack is working but the bucket state is always on 1000 no matter what I do after I fill it. It also sometimes random crit even without me holding the button.
Steps to reproduce:

[x] I am able to consistently reproduce this error

Steps to reproduce the behavior:

Enable crithack
Shoot a crit (works as normal) but the bucket state will not change
After 1 crit the bucket will always show full even nomatter if it is not currently able to crit or it is able to.

[ ] I have included the steps to reproduce to the best I am able to share.

they need a better indicator

Ignore what the bucket says - it isn't accurate and I want you to know that its value is literally nonsense. Stop looking at it, stop thinking it impacts anything, and you will enjoy the crit hack much more.

Bootleg crithack is better than no crithack, same for bootleg DT. I've been dreaming of crithack ever since it got added, best feature 10/10


Update master

DS PR: https://github.com/mozilla/DeepSpeech/pull/1936

All green before the rebase to split changes into commits: https://tools.taskcluster.net/groups/U_leLyaqRdmRk8N4RcgiEg

@reuben The linked PR shows lots of non trivial failures, is this really good ? I'd like to see a green (minus tensorflow versions) DS PR before we merge :)

The DS PR is not ready yet.

The DS PR is not ready yet.

My bad, I thought it was.


Centralize documentation for parametric, backend and default system-tests

documentation is split between different folders in github, and confluence.
Lets put everything in a single place to have one single place to start development of feature tests.

Done for different folders in github


[WIP]: add FORCEDINLINE macro

Coverage decreased (-2.6%) to 97.411% when pulling efd862ec09eb90f79e1ac03ee49cb23791fb433a on pr-forcedinline into d613055462bcbeacfd188cbd53de56c1dbc7b94d on master.

Removing https://github.com/PX4/Matrix/pull/103 👀 (FYI @jkflying )

Selectively building with -O2 or higher accomplishes the same thing.


Very long lines make right-side buttons inaccessible

The more we know about your system and use case, the more easily and likely we can help.
Environment info

OS: macOS and Linux (probably Windows too)
App Version: 1.5.0

Description of the problem / feature request / question:
When viewing a gist with very long lines, the buttons on the right side become inaccessible.
They can be accessed via keyboard (hitting Tab enough times).
If possible, provide a sample gist or screenshot:
https://gist.github.com/goodevilgenius/5548330

After tabbing to the buttons:

@goodevilgenius I have to admit, you are a genius on testing.

fixed 04da7b6


[QST] - Spark3 question

I'm trying to run some queries on big data. I've taken a portion of our data (only 43GB) and test some query with 15 fields in two scenarios:
24 CPU cores with 200 files, up to 400MB per file
X CPU cores with one V100 GPU with 10 files, each about 4+GB as per the tuning guide suggestions.
The GPU is mostly idle and runs much slower than the CPU. Running the Spark on the GPU with the 400MBs files, runs slow as well.
I'm using the following command to run the GPU code:
$SPARK_HOME/bin/spark-shell --master "local[10]" --driver-memory 50g --conf spark.locality.wait=0s --conf spark.rapids.memory.pinnedPool.size=30G --conf spark.sql.files.maxPartitionBytes=256m --conf spark.rapids.sql.concurrentGpuTasks=2 --conf spark.plugins=com.nvidia.spark.SQLPlugin --jars ${SPARK_CUDF_JAR},${SPARK_RAPIDS_PLUGIN_JAR}
Changing maxPartitionBytes or concurrentGpuTasks or any other parameter, doesn't seem to have any effect.
As far as I can see most of the time the network I/O is not working nor does the GPU.
Any idea would be highly appereciated.

With the GPU being mostly idle, I'm wondering about two possibilities:

is the entire query eligible to run on the GPU?  There are costs to transitioning between CPU and GPU, and this could potentially cause some of the slowdown
is the query mostly bound by the filesystem read?

To answer the first question, you could run with the config spark.rapids.sql.explain set to true, and then you should see log messages for any portions of queries that are not on the GPU (and why they're not on the GPU).  Depending on how many rows are being processed by nodes not on the GPU, it could contribute substantially to the slowdown you're seeing.  Also if there are portions of the query not running on the GPU then the reduced parallelism of the GPU cluster (10 cores vs. 24) will impact the query performance.
If the query is dominated by filesystem access, then running the query with less than half of the CPU cores (10 vs. 24) could significantly slowdown the GPU run.  Fetching the raw data (as opposed to decoding the data) is still processed by the CPU, so this could be a significant contributor of the slowdown in comparison.  To help answer this question, you could try running with more CPU cores for your GPU-configured setup and see how it impacts the query.  Separately, you could use the Spark SQL web UI to examine the graphical query plan and see if the bufferTime metric for the GpuFileSourceScanExec or BatchScanExec is significantly higher than the gpuDecodeTime.  The former metric is how log the tasks spent reading the raw data from the filesystem, while the second reflects how much time the task spent waiting for the GPU to decode the raw data after it was fetched from the filesystem.

To help on 1st possibility mentioned by @jlowe , we have a workload qualification doc here:
https://nvidia.github.io/spark-rapids/docs/get-started/getting-started-workload-qualification.html
Since you already have GPU spark env, so you can refer to option #3 in above doc.
After setting spark.rapids.sql.explain=all and then check spark driver log to see if you find any CPU fallback related messages.

Wow, that a ton of information. Thank you both!
I am first trying to create a bigger input file (as suggested in the Tunning guide). Currently I have files of 300-500MBs, trying to merge them to bigger file.
Once this is done, I'll explore all the tips you've mentioned and report back.
Thanks!

@viadea Thanks for the input, very helpful :)
I have a huge dataset and huge amounts of data to be processed, seems its still a bit challenging with RAPIDS.
I've added the following as per the comments in the explain output
--conf spark.rapids.sql.explain=all --conf spark.rapids.sql.variableFloatAgg.enabled=true --conf spark.rapids.sql.castDecimalToFloat.enabled=true --conf spark.rapids.sql.incompatibleOps.enabled=true
As far as I can say, these are the remaning issues preventing the query to run entirely on the GPU:
`
!Exec  cannot run on GPU because ArrayTypes or MapTypes in grouping expressions are not supported
!Exec  cannot run on GPU because not all partitioning can be replaced; Columnar exchange without columnar children is inefficient
!Partitioning  cannot run on GPU because hash_key expression AttributeReference sort_array(InfoList#1123, true)#2078 (ArrayType(StructType(StructField(experimentId,LongType,true), StructField(experimentLayerTemplateId,LongType,true), StructField(experimentVariantId,LongType,true)),true) is not supported); hash_key expression AttributeReference CASE WHEN isnull(map_keys(pv_supplyFeaturesStat#1134)) THEN null ELSE array_intersect(sort_array(map_keys(pv_supplyFeaturesStat#1134), true), [READ_MORE,EXPLORE_MORE,TABOOLA_REMINDER,NEXT_UP]) END#2080 (ArrayType(StringType,false) is not supported)
!Exec  cannot run on GPU because not all expressions can be replaced; ArrayTypes or MapTypes in grouping expressions are not supported
!Expression  sort_array(InfoList#1123, true) cannot run on GPU because expression SortArray sort_array(InfoList#1123, true) produces an unsupported type ArrayType(StructType(StructField(experimentId,LongType,true), StructField(experimentLayerTemplateId,LongType,true), StructField(experimentVariantId,LongType,true)),true); array expression AttributeReference InfoList#1123 (child StructType(StructField(experimentId,LongType,true), StructField(experimentLayerTemplateId,LongType,true), StructField(experimentVariantId,LongType,true)) is not supported)
@Expression  InfoList#1123 could run on GPU
@Expression  true could run on GPU
!NOT_FOUND  array_intersect(sort_array(map_keys(pv_supplyFeaturesStat#1134), true), [READ_MORE,EXPLORE_MORE,TABOOLA_REMINDER,NEXT_UP]) cannot run on GPU because no GPU enabled version of expression class org.apache.spark.sql.catalyst.expressions.ArrayIntersect could be found
`
Is there anything further I can try to make it run on the GPU?
The query also gets spark killed, I'll have a look at this as well.
thanks
Eyal

The RAPIDS Accelerator does not currently support hash partitioning on ArrayType, nor does it support sort_array.   on ArrayType.  #3715 tracks sort_array and I've filed #4887 to track adding support for GPU hashing of ArrayType.

@jlowe I've updated #4900 with all the missing ops I've encountered so far.

Are there further questions for this issue, or is it covered by the other issues?


HSEARCH-3416 Use ID bridges from the mapper when building ID predicates

https://hibernate.atlassian.net//browse/HSEARCH-3416
No need to review: most of this is not my code and I reviewed it already. Just creating this to have the CI check it.

Pull Request Test Coverage Report for Build 1

102 of 126 (80.95%)  changed or added relevant lines in 28 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.09%) to 87.072%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

engine/src/main/java/org/hibernate/search/engine/backend/document/converter/ToIndexIdValueConverter.java
0
1
0.0%

engine/src/main/java/org/hibernate/search/engine/backend/document/converter/spi/StringToIndexIdValueConverter.java
2
3
66.67%

engine/src/main/java/org/hibernate/search/engine/mapper/mapping/building/impl/NonRootIndexModelBindingContext.java
0
1
0.0%

mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/IdentifierBridge.java
0
1
0.0%

mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/builtin/impl/DefaultEnumIdentifierBridge.java
4
5
80.0%

mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/building/impl/PojoIdentifierBridgeToIndexIdValueConverter.java
12
15
80.0%

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/impl/ElasticsearchSearchTargetModel.java
5
13
38.46%

backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchTargetModel.java
5
13
38.46%

Totals

Change from base Build 99:
-0.09%

Covered Lines:
12568

Relevant Lines:
14434

💛  - Coveralls

Merged! Thanks @DavideD!


Debug session doesn't connect to launched backend

Fresh install of 0.0.14:

Open jpeg.dfdl.xsd in VSCode, choose menu "Daffodil Debug: Debug File".
Backend launches waiting for connection from extension. Nothing connects, backend exits after 10 seconds.

Will try to reproduce locally at the HEAD of the main branch.

I'm looking into this one...

This code executes:
      if (config.data.includes('${command:AskForDataName}')) {
        config.data = await vscode.commands.executeCommand(
          'extension.dfdl-debug.getDataName'
        )
      }

but sets config.data to ''.

It is the caching thing being tripped:
➜  example-daffodil-vscode git:(master) ✗ ls -l /Users/arosien/Library/Application\ Support/dapodil/.programFile
-rw-r--r--  1 arosien  staff  0 Aug 27 11:44 /Users/arosien/Library/Application Support/dapodil/.programFile

Zero length file stops the debugging:
if (programFile === '') {
  stopDebugging()
  return ''
}

So I can update this the reason for the caching as it was the way so that if the user uses both ${command:AskForProgramName} and ${command:AskForDataName} that if they don't select a file for AskForProgramName that the debugger stops. However I did not catch that it breaks the Debug File and Run File so I am looking into how to make sure it is only happens on certain cases

@Shanedell i think i have the fix: getProgramName shouldn't save an empty program name in the cache. I'll post a PR.

@arosien Oh okay I think I see what you are saying

Well, I need to think it through... :)

@arosien Nevermind my previous comment it is needed as the stopDebugging on selecting a programFile does not actually cause a full stop

I think the real issue is that once the choice of program or data file is persisted, it doesn't get cleared. Now I'm not sure why it is persisted in the first place.

@arosien So one thing I remember being a requirement was for the extension to not prompt for a dataFile if no programFile was selected, this was the purpose for the caching. So I we may want to put that back into that check (I can do it here in a sec) because as I was running yours it stills prompts me for a dataFile when I select nothing for a programFile. So I will just add some better checking into the caching to make sure the prior issues are resolved as well.

@arosien So one thing I remember being a requirement was for the extension to not prompt for a dataFile if no programFile was selected, this was the purpose for the caching. So I we may want to put that back into that check (I can do it here in a sec) because as I was running yours it stills prompts me for a dataFile when I select nothing for a programFile. So I will just add some better checking into the caching to make sure the prior issues are resolved as well.

That's very strange, I don't see how the code allows the data dialog to appear after an empty program is selected, but it does happen.

Ah, it's appears there's hooks in the debugger extension package.json that launch commands:
        "variables": {
          "AskForProgramName": "extension.dfdl-debug.getProgramName",
          "AskForDataName": "extension.dfdl-debug.getDataName"
        }

So perhaps our code shouldn't do this substitution "manually"?

Ah, it's appears there's hooks in the debugger extension package.json that launch commands:
        "variables": {
          "AskForProgramName": "extension.dfdl-debug.getProgramName",
          "AskForDataName": "extension.dfdl-debug.getDataName"
        }

So perhaps our code shouldn't do this substitution "manually"?

Oh, I'm guessing if this is used then the backend launches too soon while the dialogs are waiting to be filled in.

Yeah them being inducted via package.json is why getDataName will still get execute so I am working on getting a good work around here.

Mutable data is evil.

@arosien That fix you put in looks good going to merge it in here I just had to push up one commit for lint issues


[New Port Request] STX

Library name: STX
Library description: C++ 17 & C++ 20 Error-Handling and Utility Extensions
Source repository URL: https://github.com/lamarrr/STX
Project homepage (if different from the source repository): https://lamarrr.github.io/STX/
Anything else that is useful to know when adding (such as optional features the library may have that should be included):

it fetches dependencies using git
optional features: enable backtrace library ( STX_ENABLE_BACKTRACE ), panic backtrace ( STX_ENABLE_PANIC_BACKTRACE ) , override the global panic handler ( STX_OVERRIDE_PANIC_HANDLER ), make panic hooks visible when loaded as a DLL ( STX_VISIBLE_PANIC_HOOK )

I have been working on an initial version of this port here: https://github.com/jeanga/vcpkg/tree/master/ports/stx
It still requires some testing but so far so good it seems to work.
I will submit a PR when more testing is done (WSL, etc..)


About  validation results  of client

Hello,
Thanks for the interesting work!
Train Model:
python train_FedAVG.py --FL_platform ViT-FedAVG --net_name ViT-small --dataset cifar10 --E_epocmax_communication_rounds 100 --num_local_clients -1 --split_type split_3 --save_model_flag
Then ,  I find that every client has same Valid metric after first train and have tried many times in different ways with the same result. I'm not sure that is a normal result.
Calculate the model avg----
Update each client model parameters----
++++++ Running Validation of client train_1 ++++++
Valid Loss: 1.59348 Valid metric: 0.62360
The updated best metric of client train_1 0.6236
++++++ Running Validation of client train_1 ++++++
We also update the test acc of client train_1 as 0.628
++++++ Running Validation of client train_2 ++++++
Valid Loss: 1.59348 Valid metric: 0.62360
The updated best metric of client train_2 0.6236
++++++ Running Validation of client train_2 ++++++
We also update the test acc of client train_2 as 0.628
++++++ Running Validation of client train_3 ++++++
Valid Loss: 1.59348 Valid metric: 0.62360
The updated best metric of client train_3 0.6236
++++++ Running Validation of client train_3 ++++++
We also update the test acc of client train_3 as 0.628
++++++ Running Validation of client train_4 ++++++
Valid Loss: 1.59348 Valid metric: 0.62360
The updated best metric of client train_4 0.6236
++++++ Running Validation of client train_4 ++++++
We also update the test acc of client train_4 as 0.628
++++++ Running Validation of client train_5 ++++++
Valid Loss: 1.59348 Valid metric: 0.62360
The updated best metric of client train_5 0.6236
++++++ Running Validation of client train_5 ++++++
We also update the test acc of client train_5 as 0.628
train_FedAVG.py:140: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  args.record_val_acc = args.record_val_acc.append(args.current_acc, ignore_index=True)
train_FedAVG.py:142: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  args.record_test_acc = args.record_test_acc.append(args.current_test_acc, ignore_index=True)
train_FedAVG.py:147: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.
  tmp_round_acc = [val for val in args.current_test_acc.values() if not val == []]
Train the client train_1 of communication round 1

Thanks!

If the vision transformer is applied as baseline, and if the validation dataset is a union validation dataset, then it is normal that the results of difference clients are the same.
For Retina and Cifar-10, we use the union validation dataset, thus it is normal that each client has the same validation acc.


Initial Commit for Hello world example

Add uP Hello World App and Hello World Service.

@stevenhartley
please review again.

Moved to https://github.com/eclipse-uprotocol/up-android-helloworld


Can't connect to cloud w/ electron

Hey,
I was trying to integrate this lib with my Particle Electron project with no luck.
Went through the example and my electron is stuck on connecting to the cloud (blinking cyan).
I tried to build and flash the example from this repo with the same result as well.
I even tried this https://community.particle.io/t/new-library-papertrail/28105/7 workaround with no luck.
No matter what, it stays blinking cyan.
Only when I comment out the (with my values)
PapertrailLogHandler papertailHandler("logsX.papertrailapp.com", 12345, "MyProject");
The particle cloud connects and moves to breathing cyan, am I doing something wrong?
Or it just doesn't really work well with electron running 0.6.2 firmware?
Thanks.

This was already reported in #7. I don't have an electron, so I can't repro it.
It seems like an error in the electron FW. Others have tried to send UDP in log handler and reported the same problem.
I suggest to open an issue in the spark/firmware repo, with a good repro case and hope for the best.

Hello Friends! Firmware 0.8.0-rc.3 Pre-release is out on the Web IDE for Core/Photon/P1/Electron.  This release fixes the issue seen above where recursive logging would lock up the application thread on the Electron.  It's still not advisable to log too much over UDP on the Electron.  I'll suggest two that work well below. https://community.particle.io/t/particle-firmware-updates-thread/14378/60
// app level over papertrail
PapertrailLogHandler papertrailLogHandler1(PAPERTRAIL_HOSTNAME, PAPERTRAIL_PORT, "MyAppName", System.deviceID(),
    LOG_LEVEL_NONE, {
    { "app", LOG_LEVEL_ALL }
    // TOO MUCH!!! { "system", LOG_LEVEL_ALL },
    // TOO MUCH!!! { "comm", LOG_LEVEL_ALL }
});

// system info and app level over papertrail
PapertrailLogHandler papertrailLogHandler2(PAPERTRAIL_HOSTNAME, PAPERTRAIL_PORT, "MyAppName", System.deviceID(),
    LOG_LEVEL_NONE, {
    { "app", LOG_LEVEL_ALL },
    { "system", LOG_LEVEL_INFO }
    // MAYBE { "comm", LOG_LEVEL_INFO }
});

Just a note: Many cellphone networks are very aggressive in deciding to drop UDP packets if a cell is congested.  So that may be the root problem for some users.


createSelectSqlPart - correctly identify space before table name.

... for a space between the rightmost '(' and the rightmost '.' after it.
It has code to look for a space, but it doesn't work because $tableName is null when strpos is done.
Fixed to set $tableName first, and to use strrpos.

Magic fix ?
You should provide a unit test to prove the bug and the fix :)

Need to generate a select statement with a column expression like
"IF(a, FLOOR(t.b), t.c)" - it thinks t.b), t is the table name.
I'm afraid I don't have access to groups or github from work where this problem arises - ridiculous I know.
I have a laptop at home which is somewhat freer, but belongs to another employer, and I can't install phpunit there.
So I'm not in a position to provide a unit test. If I were, are there test/demo tables/models to test against?
Visual inspection is sufficient to confirm the bug, and the change is fairly trivial.

Inspected the bug in #186 - looks like it finds a space outside the original tablename candidate.
Eg "COUNT(DISTINCT IF(1, book.ID, book.TITLE))"
The '(' found is the one following IF.
The '.' found is the one preceding TITLE.
But the first space is the one before IF.
My code looks for the rightmost space between '(' and '.', so it should never give a worse guess at table name than the original code.

All done - you need anything else from me?

On 04/12/11 17:49, William DURAND wrote:

Magic fix ?
You should provide a unit test to prove the bug and the fix :)

All done. Any idea when/whether it might get included?
I'm using Symfony 1.4 with Propel - would it get retrofitted to that?
Anything I can do for that?
These are the revisions I'm loading:
2332 (sfPropelPlugin/lib/vendor/propel)
2332 (sfPropelPlugin/lib/vendor/propel-generator)
1387 (sfPropelPlugin/lib/vendor/phing)
Thanks
Chris

@ChrisSharman can you port this PR on Propel2 ?

Merged, thanks!


[SPIKE] Check available solutions for providing/deploying Kafka

Is your feature request related to a problem? Please describe.
Right now we are installing kafka directly from tar.gz file and perform its configuration.
Describe the solution you'd like
Do research on available Kafka installer and compare them. Opensource solutions managed 'outside' are preferred, but also we want to provide guidance when to choose commercial solution, because of potential requirements.
Describe alternatives you've considered
Maybe some commercial soft?

Regarding Kafka on Kubernetes I noticed once this article. It's almost 2 years old, but I believe that it still provides some good base to start our own research.

Regarding Kafka on Kubernetes I noticed once this article. It's almost 2 years old, but I believe that it still provides some good base to start our own research.

My thoughts for now:

We cannot start with the Kafka module while we don't know about offline/upgrade parts - this is important as we will implement that. As this spike is only about installation, new tasks have to be created.
It's better to start with offline/upgrade after installation spike, not to do the same work a few times. Also after this spike we can reduce the number of solutions to verify for upgrades and offline mode.
Upgrade and offline installation spikes can be done in parallel.

I reviewed document in internal location (Epiphany->Development->Spikes/PoCs->Kafka Deployment Options) and it looks good as first review of available options.

I also reviewed the document, LGTM.
If we choose Strimzi, it's not clear if we are going to integrate it somehow with modules.


PROBE

No modification for AutorestCI/azure-sdk-for-node

 https://github.com/Azure/azure-sdk-for-python/pull/1489


Hoe Enchants - BentoBox Support

Hello,
Some of the new Hoe enchants seem to work on other people's islands (using BentoBox's BSkyBlock). The one I've seen working is GreenThumb.
Thanks!

it's only for 1.13 why do you need for this

If “it’s only for 1.13” then why is the whole plugin being updated for 1.13-1.14 support? That’s the point in these Betas, and they’re betas for a reason - they may have issues that need to be fixed. This is an issue report.

Ah, I see the issue. I forgot to add region checking. Ill make sure to fix this.


fix: Update built-in map-based ExperimentOverrideStore implementation to be concurrently usable

The built-in default implementation of ExperimentOverrideStore should be production ready, so it should be safe to use concurrently.
In this PR:

The default implementation is renamed to MapExperimentOverridesStore
A sync.RWLock is added to MapExperimentOverridesStore
A SetVariation method is added for setting an override, which uses the mutex
The GetVariation method is updated to use the mutex
A new test is added that calls GetVariation and SetVariation concurrently from several goroutines

@thomaszurkan-optimizely Based on reading this: https://golang.org/pkg/sync/#Map I gather that sync.Map, gives you better performance for certain use cases and frees you from needing to implement locking, but at the cost of type safety. Implementing locking is easy, and I don't know that we will always match one of those use cases, so it didn't seem worth giving up type safety. Let me know if you agree.
Also, aside from all that, can we even use it if we want our SDK to be usable in version <1.9?


Add files via upload

Proposed story board for Callie Quartile

Thanks for contributing the content..
There's quite a few scenario documents for coco pharmeuticals at https://github.com/odpi/data-governance/tree/master/docs/coco-pharmaceuticals
Is this a start of a series of different scenario docs? Should they extend the above? Or do you think they are closer to egeria itself? If so I think we need to choose a new location other than the developer guidelines?
Is this a proposal for a new feature? Or is it trying to capture how you see egeria working today? Most likely how you propose the UI interaction should work?
On the doc itself it's probably worth running the spell check as I noticed some typos, stray bullets, capitalization - but happy to mark up if it helps when I understand the context ?

@lizsping I agree with Nigels comments, the file should probably live where Nigel points to. Also

The file should be draw.io or markdown and pdf , so others can update it.
the title of the file is Gary Geeke but the content refers to Callie Quartile.
I think we need a copyright on docs.

As there's no further updates here I am going to suggest we close this PR
@lizsping if you are able to update please do reopen the PR and continue the discussion


feat(dynamic_log_level): support timeout for dynamic log level

Sister PR: https://github.com/Kong/lua-kong-nginx-module/pull/60
Fix KAG-457, KAG-5

Should we add a change log entry to describe this new feature?

Will cherry-pick by @ADD-SP .


Setup pipeline testing framework

Finished #48 from @mirceatlx branch as he missed my last merge 🙈 I cherry-picked from the other branch as much as I could, and then fixed some tests.

@mirceatlx I think you didn't push the expected_preprocess_masked.npy file needed in one of the tests

The expected_preprocess_masked.npy file is too big to be pushed here. We should fix the test once we are able to fetch the file from the cloud.


Can't connect to mysql instance after mysql_service install

This statement in a recipe
mysql_service 'default' do
  version '5.7'
  bind_address '<IP_ADDRESS>'
  port '3306'
  initial_root_password 'test'
  action [:create, :start]
end

And then using
mysql -S /var/run/mysql-default/mysqld.sock -u root -p

with password test, does not allow me access
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Could this be because of line 153 in helpers.rb?
 TO 'root'@'%' WITH GRANT OPTION ;

Is that BTW not completely unsafe? Isn't it better to only allow root access from localhost?

This is fixed in PR #341 .

I think we need two separate rules... one for the TCP connection and one for the socket connection.
GRANT ALL ON . TO<EMAIL_ADDRESS>WITH GRANT OPTION ;
GRANT ALL ON . TO 'root'@'localhost' WITH GRANT OPTION ;

Fixed up in v6.0.24


[EPIC] Clean URL phase 2

Requirements for Clean URLs Phase 2:
Allow users to customise app URLs so that they can make their apps as searchable as their requirement. This is the first step to having public apps as well.
Reasons for change:

Allow users to make their apps far more searchable and accessable
Optimise their URLs for SEO

In scope for this Project:

Allowing the user to customise the URL with the app and page name to make apps far more searchable
Allow the user to set a completely custom single string name for their apps

Out of scope for this project:

Removing Page ID

Design inputs:
We would like to have the URL customisation at a page level, where a user can customise the URLs for each page. There are a few options for this which are as follow:

Adding in a component in this submenu, which adds an “Edit URL” component

Adding in an edit button which allows users

Page properties page (this page can go through a refactor/redesign, but for now, we should add a button into the page properties page, which will allow this to be done easily)

What we want to allow the user to do:
the user should be able to edit the URL from the “page properties” page.
The current format of the URLs are:
https://app.appsmith.com/app/<App-Name>/[<](https://app.appsmith.com/app/<App)Page-Name>-PageID/

The new format should allow the user to either continue with the current URL structure, or refactor into the following:
https://app.appsmith.com/app/<Custom-App-Slug>-PageID/

When the time comes to deal with Page grouping, our intention is to allow users to create the page groups, and have them reflect in the URL as well. When this happens, we can address this using a ‘-’ to seperate out groups, thereby allowing users to create infinately deep groups, and the layout would look like this
Possible wireframes (only to highlight functionality).

These wireframes are of the page properties page. This page will continue to grow in functionality. For now, the new functionality we want to add is the page URL, and allowing us to edit the page URL.
The 2nd page is to show the editor, where a user can create a new editor. In this editor, all special characters will be replaced with a ‘-’, but this will allow users to edit the slug. The PageID, and the domain
Job stories:

Job Stories

When I use an application regularly I want it to be highly searchable so when I use an app regularly I want the URL to be easily recallable so that I can get to it faster?
When I see a URL for an application I want it to reflect what the application does so I can see if it is relevant to me

Developer Stories

When I create an application I want to be able to create a custom URL so I can have it be relevant to the application title
When I share my app with my team I want to share a customised but rememberable link so that they can easily get back to it?
When I create a single page application I want the URL to be as simple as possible so I can have it as short and memorable as possible
When I create a custom URL I want to be able to have a different one for every page so users can access each page seperately
When I create an application I want the default URL to be relevant so I can have a relevant URL without having to edit it every time
When I create a public application I want the URL to be SEO friendly so I can have my app be discoverable on search engines

Zeplin handoff link for the above issue
https://zpl.io/09WMW6x
Figma designs handoff link for the above issue
https://www.figma.com/file/Q6s9qidrQX6b15yUUGR0ES/Clean-URLs---Phase-2-%26-App-settings-design-handoff?node-id=2%3A1