Changing test_pvlan vlan id to prevent conflict with smoke tests env config

Description
Changing test_pvlan vlan id to prevent conflict with env config while running smoke tests
Previously failed due to intermittent errors while running smoke tests
The VLAN tag 1234 is already being used for dynamic vlan allocation for the guest network in zone

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)

How Has This Been Tested?
Run the smoke tests and see :wink:

@blueorangutan package

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

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

@blueorangutan test

@davidjumani a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2841)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 48304 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4340-t2841-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_human_readable_logs.py
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_supported_versions.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_hostha_kvm.py
Smoke tests completed. 81 look OK, 4 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_enableHumanReadableLogs
Error
0.34
test_human_readable_logs.py

test_01_add_delete_kubernetes_supported_version
Error
672.78
test_kubernetes_supported_versions.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Error
425.98
test_vpc_redundant.py

test_04_rvpc_network_garbage_collector_nics
Error
3861.93
test_vpc_redundant.py

test_hostha_kvm_host_fencing
Error
174.45
test_hostha_kvm.py

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2850)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 56124 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4340-t2850-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_outofbandmanagement.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_hostha_kvm.py
Smoke tests completed. 83 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Failure
270.60
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Failure
337.41
test_vpc_redundant.py

test_hostha_kvm_host_fencing
Error
170.49
test_hostha_kvm.py


[Question]: How to override the default alert threshold values for specific resource names?

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Description
Let's say I want to change the memory threshold of a specific App Service Plan from the default 85% defined in the policy definition, to e.g. 95%. This threshold should only apply to just this one ASP resource. The other ASP resource would just use the 85%.
The problem is that the policy definition that configures this is part of a policy set (initiative). And the policy assignment is for this policy set. This means that I can't just go an edit the policy definition and create an assignment just for this. I need to modify the policy definition, policy set and the assignment for the policy set. This becomes rather messy and cumbersome to manage.
What's the best practice for situations like this?

Hello @chaoscreater,
thanks for your question. Unfortunately, the concept of override does not exist in Azure Monitor. The only possible workaround is to have resource-dedicated alerts which conflicts with the 'at scale' approach. Given that you can change the threshold in the param file, redeploy and given the threshold being part of the existence condition, the new value will be applied. But again, this is going to be applied to the alert scope (meaning all the resources and not for specific ones).
Modifying the policy definition is something possible and it would require you to change the query to dynamically identified threshold based on resource name(s) provided that you have a naming convention or tagging. You can see an example of the dynamic threshold logic in this post Azure Monitor: Use Dynamic Thresholds in Log Alerts. Querying Azure Resource Graph in the same query will allow you to leverage tagging to identify the resource.
Hope that helps.
Thanks,
Bruno.

@Brunoga-MS - thanks for your quick response.
Problem with updating the policy definition is that if MS publishes new updates, then we'll have to sync them to our repo and manually compare each file for individual changes, which isn't really ideal.
And yes, updating the parameter will update it for all resources in the scope, which we do not want.
In an ideal world, resources of the same type (e.g. App Service Plans) would all have the same alert threshold values, which would make baseline alerts that are deployed at scale seem like a good solution. But in reality, some resources hold less importance or priority compared to another resource of the same type. Problem is, we can't just exclude the policy assignment for resource B, because that would mean all the other policy definitions relevant to that resource type would fail to apply.
I think it would have been better for MS to create policy assignment per policy definition, rather than having policy assignment created for a policy set. It would be much easier to exclude a resource from a policy assignment that is tied to one policy definition. We can then create a custom policy definition and assignment and target that specific resource. I think this would be a clean approach, as the resource is excluded from the default baseline policy and we have our own custom one applied.

@chaoscreater : Got your point. Exclusion is possible via tagging the resources to be excluded from the remediation as documented at Disabling Policies. If remediation was already completed, you have to tag the resource and delete the existing alert so it won't be recreated. A that point you can just assign the current policy definition using your custom values.
I would also ask @arjenhuitema to comment on your suggestion.
Hope that helps.
Thanks,
Bruno.

@Brunoga-MS - I think the tag you're referring to is MonitorDisable? But that would exclude remediation for multiple policy definitions for said resource. Let's say I want most of the AMBA baseline alerts for App Service Plan to apply to resource A, but I want a specific alert (e.g. App Service Plan memory) to be excluded. Well, applying the tag will work, but this would also exclude the CPU alert from being applied to the App Service Plan, since that also references the same tag. I would literally have to change multiple policy definitions to use a different tag for exclusion.
Sometimes, a resource might need a slightly different threshold for just one specific metric (e.g. CPU, memory) and keep the rest of the metrics unchanged - i.e they will use the AMBA default values. I think there needs to be enough flexibility here, as it's not always the case that the baseline recommended by MS is always applicable for all customers and all environments and situations. It's a baseline that we can use and reference as a starting point, but if there isn't enough flexibility to modify certain things with ease, then it makes it hard to apply as a whole.

For now, I got it working by using tags as you've suggested.
I modified the policy definition for the resource type in question, in my case it's the App Service Plan. I added a logic to check if the tag "Custom_Alert_Memory_Threshold" exists on the resource. If yes, it will use the value associated with that tag, otherwise it'll just use the default threshold value that was already defined in the policy definition.
I didn't have to add any parameters in the assignment, didn't have to touch the policy set definition. All I needed to do was add a tag to the existing resource with the value I want, and it worked. Benefit of this is that if I run my script to delete all resources with "deployed_by_amba" tag, then I can always re-deploy them easily and my custom alert thresholds will still apply.

Hi @chaoscreater It's good to hear you've resolved your issue and appreciate you posting it here. Could you please include the code snippets here on this issue?

I think it would have been better for MS to create policy assignment per policy definition, rather than having policy assignment created for a policy set. It would be much easier to exclude a resource from a policy assignment that is tied to one policy definition. We can then create a custom policy definition and assignment with settings unique to that one resource. I think this would be a clean approach, as the resource is excluded from just that one policy definition, while it still applies all the other policy definitions.

That approach has several disadvantages, and in nearly all cases it isn't feasible due to a 200 assignment limit per scope, hence the necessity to group policies into initiatives. Please see Azure Policy Limits

Yeah, our problem is that we'd like to set our non-prod resource thresholds differently to our production resource thresholds, as for instance, we're happy for our dev/test instances to use >85% of the max available RAM if it means we don't have to bump up a SKU which would double the cost.
They may go just over 90% usage every now and then and maybe run a bit slower/longer because of it, which is fine, but we'd still like to be alerted when that dev/test instance is reeeeally getting low on RAM.

hello @chaoscreater ,
any news about adding the code snippet instead of the containing URL?
Thanks,
Bruno.

Hi @Brunoga-MS, here it is below:
{   "$schema": "https://raw.githubusercontent.com/Azure/enterprise-azure-policy-as-code/main/Schemas/policy-definition-schema.json",   "name": "Deploy_WSF_MemoryPercentage_Alert",   "properties": {     "displayName": "AMBA - Deploy App Service Plan Memory Percentage Alert",     "description": "Policy to audit/deploy App Service Plan Memory Percentage  Alert",     "mode": "All",     "metadata": {       "version": "1.1.0",       "source": "https://github.com/Azure/azure-monitor-baseline-alerts/",       "Category": "Web Services",       "_deployed_by_amba": "True"     },     "parameters": {       "evaluationFrequency": {         "allowedValues": [           "PT1M",           "PT5M",           "PT15M",           "PT30M",           "PT1H"         ],         "defaultValue": "PT5M",         "metadata": {           "description": "Evaluation frequency for the alert",           "displayName": "Evaluation Frequency"         },         "type": "String"       },       "autoMitigate": {         "allowedValues": [           "true",           "false"         ],         "defaultValue": "true",         "metadata": {           "description": "Auto Mitigate for the alert",           "displayName": "Auto Mitigate"         },         "type": "String"       },       "windowSize": {         "allowedValues": [           "PT1M",           "PT5M",           "PT15M",           "PT30M",           "PT1H",           "PT6H",           "PT12H",           "P1D"         ],         "defaultValue": "PT5M",         "metadata": {           "description": "Window size for the alert",           "displayName": "Window Size"         },         "type": "String"       },       "enabled": {         "allowedValues": [           "true",           "false"         ],         "defaultValue": "true",         "metadata": {           "description": "Alert state for the alert",           "displayName": "Alert State"         },         "type": "String"       },       "severity": {         "allowedValues": [           "0",           "1",           "2",           "3",           "4"         ],         "defaultValue": "2",         "metadata": {           "description": "Severity of the Alert",           "displayName": "Severity"         },         "type": "String"       },       "threshold": {         "defaultValue": "85",         "metadata": {           "description": "Threshold for the alert",           "displayName": "Threshold"         },         "type": "String"       },       "monitorDisable": {         "defaultValue": "MonitorDisable",         "metadata": {           "description": "Tag name to disable monitoring resource. Set to true if monitoring should be disabled",           "displayName": "Effect"         },         "type": "String"       },       "effect": {         "allowedValues": [           "deployIfNotExists",           "disabled"         ],         "defaultValue": "deployIfNotExists",         "metadata": {           "description": "Effect of the policy",           "displayName": "Effect"         },         "type": "String"       }     },     "policyRule": {       "if": {         "allOf": [           {             "equals": "Microsoft.Web/serverfarms",             "field": "type"           },           {             "field": "[concat('tags[', parameters('MonitorDisable'), ']')]",             "notEquals": "true"           }         ]       },       "then": {         "effect": "[parameters('effect')]",         "details": {           "type": "Microsoft.Insights/metricAlerts",           "roleDefinitionIds": [             "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"           ],           "existenceCondition": {             "allOf": [               {                 "equals": "Microsoft.Web/serverfarms",                 "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricNamespace"               },               {                 "equals": "MemoryPercentage",                 "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].metricName"               },               {                 "equals": "[concat(subscription().id, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Web/serverfarms/', field('fullName'))]",                 "field": "Microsoft.Insights/metricalerts/scopes[*]"               },               {                 "equals": "[parameters('enabled')]",                 "field": "Microsoft.Insights/metricAlerts/enabled"               },               {                 "equals": "[parameters('evaluationFrequency')]",                 "field": "Microsoft.Insights/metricAlerts/evaluationFrequency"               },               {                 "equals": "[parameters('windowSize')]",                 "field": "Microsoft.Insights/metricAlerts/windowSize"               },               {                 "equals": "[parameters('severity')]",                 "field": "Microsoft.Insights/metricalerts/severity"               },               {                 "equals": "[parameters('autoMitigate')]",                 "field": "Microsoft.Insights/metricAlerts/autoMitigate"               },               {                 "equals": "Average",                 "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft-Azure-Monitor-SingleResourceMultipleMetricCriteria.allOf[*].timeAggregation"               },               {                 "equals": "GreaterThan",                 "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.operator"               }, //              { //                "equals": "[parameters('threshold')]", //                "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold" //              },               {                 "equals": "[if(contains(field('tags'), 'Custom_Alert_Memory_Threshold'), field('tags.Custom_Alert_Memory_Threshold'), parameters('threshold'))]",                 "field": "Microsoft.Insights/metricAlerts/criteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria.allOf[*].StaticThresholdCriterion.threshold"               }             ]           },           "deployment": {             "properties": {               "parameters": {                 "resourceId": {                   "value": "[field('id')]"                 },                 "evaluationFrequency": {                   "value": "[parameters('evaluationFrequency')]"                 },                 "autoMitigate": {                   "value": "[parameters('autoMitigate')]"                 },                 "windowSize": {                   "value": "[parameters('windowSize')]"                 },                 "enabled": {                   "value": "[parameters('enabled')]"                 },                 "severity": {                   "value": "[parameters('severity')]"                 },                 "threshold": {                   "value": "[if(contains(field('tags'), 'Custom_Alert_Memory_Threshold'), field('tags.Custom_Alert_Memory_Threshold'), parameters('threshold'))]"                 },                 "resourceName": {                   "value": "[field('name')]"                 }               },               "template": {                 "parameters": {                   "resourceId": {                     "metadata": {                       "description": "Resource ID of the resource emitting the metric that will be used for the comparison",                       "displayName": "resourceId"                     },                     "type": "String"                   },                   "evaluationFrequency": {                     "type": "String"                   },                   "autoMitigate": {                     "type": "String"                   },                   "windowSize": {                     "type": "String"                   },                   "enabled": {                     "type": "String"                   },                   "severity": {                     "type": "String"                   },                   "threshold": {                     "type": "String"                   },                   "resourceName": {                     "metadata": {                       "description": "Name of the resource",                       "displayName": "resourceName"                     },                     "type": "String"                   }                 },                 "contentVersion": "[<IP_ADDRESS>](http://<IP_ADDRESS>/)",                 "resources": [                   {                     "type": "Microsoft.Insights/metricAlerts",                     "properties": {                       "description": "Metric Alert for App Service Plan Memory Percentage",                       "evaluationFrequency": "[parameters('evaluationFrequency')]",                       "autoMitigate": "[parameters('autoMitigate')]",                       "parameters": {                         "evaluationFrequency": {                           "value": "[parameters('evaluationFrequency')]"                         },                         "autoMitigate": {                           "value": "[parameters('autoMitigate')]"                         },                         "windowSize": {                           "value": "[parameters('windowSize')]"                         },                         "enabled": {                           "value": "[parameters('enabled')]"                         },                         "severity": {                           "value": "[parameters('severity')]"                         },                         "threshold": {                           "value": "[parameters('threshold')]"                         }                       },                       "windowSize": "[parameters('windowSize')]",                       "enabled": "[parameters('enabled')]",                       "severity": "[parameters('severity')]",                       "criteria": {                         "allOf": [                           {                             "threshold": "[parameters('threshold')]",                             "timeAggregation": "Average",                             "name": "MemoryPercentage",                             "operator": "GreaterThan",                             "metricNamespace": "Microsoft.Web/serverfarms",                             "criterionType": "StaticThresholdCriterion",                             "metricName": "MemoryPercentage"                           }                         ],                         "odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria"                       },                       "scopes": [                         "[parameters('resourceId')]"                       ]                     },                     "apiVersion": "2018-03-01",                     "location": "global",                     "name": "[concat('AMBA-', parameters('resourceName'), '-MemoryPercentage')]",                     "tags": {                       "_deployed_by_amba": true                     }                   }                 ],                 "variables": {},                 "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#"               },               "mode": "incremental"             }           }         }       }     }   } }

hi @chaoscreater ,
thanks for sharing the code snippet. We were thinking about using the same approach but we stopped since this is only applicable to Metrics and Log alerts which are one per resource. In case of VM alerts, for instance, where you have 1 alert covering more than 1 VM (or hybrid vm) the override will be applied to all resources making that 'not an override' but a new default value. However, we will investigate more to see if we can find something working in scenarios.
Thanks,
Bruno.

@Brunoga-MS - sorry, I'm not sure I follow. Could you give an example of a VM alert?
In our case, the metric alerts are what we're trying to set a custom threshold for. If I have 3 App Service Plans and I want custom memory thresholds of e.g. 75%, 80% and 95% for them, I can just set the same tag but with different values. And I'll just need to use one policy definition and policy assignment, no need to pass in parameters. The definition just reads the tag and the value and applies it.
For VM alerts, we might sometimes see e.g. VM deallocated, or VM unavailable, or User Initiated Restart of VM or something like that. We can supress these by just creating a custom policy definition that uses an Alert Supressing Rule and then specify the names of the resources. But I think with the tagging method, it could also work, as it can just check if a tag with a specific key-value exists, then suppress it (or do whatever).

@Brunoga-MS - Ah yes, I get what you mean now.
I think in this case, we may need to modify the policy definition to exclude resources that we don't want to apply to. Perhaps we could modify the tag "MonitorDisable" to "VM_Heartbeat_Alert_Disable" or something like that. Essentially, this tag will only be applicable to this policy definition. Then we can apply this tag to the VM resources that we want to exclude. Finally, create a custom policy definition for VM heartbeat and apply to the excluded VMs.
The other policy definitions that are part of a initiative policy set will still apply to this VM. But this approach would mean we may potentially have lots of tags to manage :(


About PoseNet encoder

First, thank you for your outstanding research, and appreciate providing code to use.
I have a question that
What is the pretrained model of the PoseNet you used when you trained the KITTI to reach the SOTA performance?
In your code  networks/pose_cnn.py
the default encoder backbone is resnet18, is that you used when you reach the KITTI 1st benchmark? or any recommend backbone because I want to train in my dataset.
Waiting for your answer, thank you!

Hi @ahtso, thank you for your interest in our model! I’d really appreciate it if you could upvote our GitHub repo if you find the model helpful—it encourages us to continue improving it.
Regarding your question, the key point is that the commonly used PoseNet architecture tends to be somewhat limited in performance. Switching to a larger, pretrained model can significantly boost accuracy. As for the code in networks/pose_cnn.py, the parameters and code provided are exactly what I used to achieve the SOTA results on the KITTI benchmark. While ResNet18 serves as the default backbone and provides a substantial increase in accuracy without noticeably affecting training time, larger models that I've tested could do offer slight improvements but come with the tradeoff of increased parameter count and longer training times. (you could investigate more if you want)

Hi @ahtso, thank you for your interest in our model! I’d really appreciate it if you could upvote our GitHub repo if you find the model helpful—it encourages us to continue improving it.
Regarding your question, the key point is that the commonly used PoseNet architecture tends to be somewhat limited in performance. Switching to a larger, pretrained model can significantly boost accuracy. As for the code in networks/pose_cnn.py, the parameters and code provided are exactly what I used to achieve the SOTA results on the KITTI benchmark. While ResNet18 serves as the default backbone and provides a substantial increase in accuracy without noticeably affecting training time, larger models that I've tested could do offer slight improvements but come with the tradeoff of increased parameter count and longer training times. (you could investigate more if you want)

Thank you for your clear explanation and quick reply.


Rearrange webservice API classes

This move a number of POJOs describing web service requests and responses to
the public package. It adds a few POJOs that were not required by the server
since the JSON objects are created directly in PostgreSQL; these are meant for
client consumption.

I also add an equals method that Shesmu is going to need.


Update jQuery to latest 1.x stable version

See http://blog.jquery.com/2016/01/08/jquery-2-2-and-1-12-released/.
Should be backwards compatible.
Fixes a lot of bugs and improves performance.

Tested and works well. Thank.


Fix for ECC Curve secP256k1

Fixed fido2-net-lib support for ECC Curve secP256k1
Fixes issue #233

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

Codecov Report

Merging #234 (d7de6a1) into master (86f7767) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #234      +/-   ##
==========================================
- Coverage   70.27%   70.22%   -0.05%
==========================================
  Files          70       70
  Lines        3115     3117       +2
==========================================
  Hits         2189     2189
- Misses        926      928       +2

Impacted Files
Coverage Δ

Src/Fido2/Objects/CredentialPublicKey.cs
83.44% <0.00%> (-1.13%)
:arrow_down:

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 86f7767...d7de6a1. Read the comment docs.


docs: change from v.3.5.2 suffix to release-3.5.2

Relates to #12414
Motivation
Backport doc changes
Modifications
change from tag to branch since backported changes will be to the branch and also this matches what ArgoCD is doing to help keep our projects in sync
grep command I ran locally (OSX) to update the urls
 grep -ilr 'https:\/\/argo-workflows.readthedocs.io\/en\/v3.5.2' * | xargs -I@ sed -i '' 's/https:\/\/argo-workflows.readthedocs.io\/en\/v3.5.2/https:\/\/argo-workflows.readthedocs.io\/en\/release-3.5.2/g' @

Verification

I thought we realized those pointed to 3.5.0 and 3.4.0. So not the latest docs on the minor version. Right?

Ah. If we sync the branch we'll be good. Ok. Will close this PR and do one to release-3.5 branch.

@agilgur5 continued in #12462


Move FAST tests to main tests workflow

We also need to remove the deleted action from the branch protection rules. :)


Different behavior with @main vs extends App for variables in scope

This might just be me misunderstanding something, and I know expression evaluation isn't supported for Scala 3 yet, but I stumbled on this today and don't fully get what's happening. Give the following two pieces of code both using 3.1.1:
package example

@main def dapExample() =
  val greeting = "hello people interested in DAP"
  println(greeting) // <-- set a breakpoint here

This returns the following in scope:
Local

  greeting: "hello people interested in DAP"
  this: Hello$package$@183

Whereas doing the same for this snippet:
package example

object Main extends App {
  val greeting = "hello people interested in DAP"
  println(greeting) // <-- set a breakpoint here
}

Will return
Local

  this: Main$@186
    MODULE$: null
    executionStart: 0
    greeting: null
    scala$App$$_args: null
    scala$App$$initCode: null

Why is greeting null in the second?

In the second example:
package example

object Main extends App {
  val greeting = "hello people interested in DAP"
  println(greeting) // <-- set a breakpoint here
}

Looking at the class file of $Main (I am using javap -l -p -c example.Main$) we can see the sequence of instructions. It is roughly:

Call the static constructor of Main$
Call the constructor of Main$
Return from the constructor of Main$
Initialize the static field $MODULE with the instance of Main$
Initialize the static field greeting
Get the value of greeting
Call println

And the debugger stops twice on the line println(greeting), once for 3 and once for 7. On 3 the greeting field is not yet initialized.
Why does the compiler set line println(greeting) as being the return instruction of the constructor of Main$. That's probably because this is the last line of the body of object Main. It is a debatable choice.
And it is not specific to objects that extends App. I can see the same behavior in:
@main def foo(): Unit =
  val _ = Foo

object Foo {
  val greeting = "hello people interested in DAP"
  println(greeting) // <-- set a breakpoint here
}

What can we do?

So first, maybe the compiler should not link this instruction to any source line (is it permitted by the Java spec?). There are plenty of cases like this where a source line in the bytecode does not really correspond to the user code in the source file. I don't know if it is possible for the compiler to not emit those lines but that would make the debugger a lot more user-friendly. This is somehow related to https://github.com/scalacenter/scala-debug-adapter/issues/122 and the proposed Solution 2.

In the debugger itself maybe we can skip the return line of the constructor of the classes that are associated to objects.


Empty Out Dir only once for watcher mode

Description
I would like an option similar to build.emptyOutDir that only occurs once. For vite build, having build.emptyOutDir set to true works perfectly fine. But if you are using vite build --watch, emptying out the out dir with every change is unnecessary file IO. I would like the option to clear the directory once, and not have the directory cleared with subsequent file changes being pushed by the watch process.
Maybe there is a way to do this, but I couldn't find anything obvious in the config documentation or through google searches.
Suggested solution
build.emptyOutDir = true - the default behavior for watch mode could be emptying out the out dir on initial run.
OR
change build.emptyOutDir to accept bool | string to provide various modes of operation. "always", "once", etc
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Initially, I prefer the first option, in which watch mode empties out the out dir only once. It would require us to wait for Vite 5 if we decide to go with this change. I'll add this feature request for discussion in a future team meeting.

If it's only done once, I think it defeats the purpose of emptyOutDir, which is to remove the previous lingering artifacts in the final build folder, which would not be true on the second build. Besides file IO, is there other benefits of this to introduce a new option?

The watcher shouldn't be related to the time it takes to clean up the out dir. Given that the request originated from this idea, I think it is better to close this issue for now. We have other issues tracking Vite's watcher perf during dev (we have discussed switching to parcel watcher). Improving the watcher during build would be something for rollup to do. Maybe we can get there if the new watcher in Vite dev results in a better story.


How to target last 2 versions of FF ESR?

How can I target the last 2 versions of FF ESR?  If I use last 2 versions, I only get FF 52 and 53; I would expect to get FF 45, 52, 53:

53 is latest FF
52 is previous version of FF, plus latest FF ESR
45 is previous FF ESR

Using the demo at http://browserl.ist it does not seem possible to write a query that pulls in "the last two versions of Firefox ESR".
This is important because there's always a qualification period during which the previous ESR version and the next ESR version overlap, so they're both active and supported for a time (such as right now). Also, institutions/enterprises are notoriously slow to upgrade, so it would be nice to be able to target N versions back, based on the target audience.

I have better solution. What do you think if Browserslist will return firefox 52, firefox 45 on firefox esr?
So firefox esr will  return actual ESRs.
I think there is no sense to return old non-supported ESRs.

That's certainly better than what exists today.
However, I'd prefer if Firefox ESR was actually queryable by version.  It seems weird that it's the only browser which cannot be version queried: it is a separate browser with it's own feature set and release schedule. A reasonable approximation would be to match the features for any given FF ESR release onto the corresponding FF release. So FF ESR 45.9.0 maps to FF 45, but could then be queried by last 2 Firefox ESR versions, or 3, or however many I wanted -- like all the browsers.

ESR is not a browser, it is a version alias.
What is your use case to select 3 ESR versions? Or to select 2, when only one is supported?

Why do you allow people to select ie 6-8? Because they're still used. Just because something is unsupported doesn't mean it's not used.

Why selecting it y version Firefox 42, Firefox 38 doesn't fit your needs.
last 3 ESR versions also doesn't have semantics reasons. ESR is supporting level. When Mozilla stop to support a version, it could not called ESR anymore.

Why selecting it y version Firefox 42, Firefox 38 doesn't fit your needs.

Because I want to use a semantic query string such as "last N versions". Using hard coded values means I need to update my list of browsers whenever there's a new ESR release.

last 3 ESR versions also doesn't have semantics reasons. ESR is supporting level. When Mozilla stop to support a version, it could not called ESR anymore.

Maybe this is our point of confusion. ESR is not just a support level: it is a distinct software baseline. Here's the repo for ESR 45: https://hg.mozilla.org/releases/mozilla-esr45/ It is definitely a separate piece of software. When the Mozilla Foundation stops supporting a particular ESR release, the tag does not disappear from the repo. (Go up a level and you can go all the way back to the ESR 10 baseline.) It's still an ESR, just an unsupported one -- the same way that Microsoft no longer supports IE 8.

What exactly use case do you have for selecting 3 ESR versions?
IE 6-9 example doesn't fit it, because you support 6 because you have users with it, not because it is last 6 IE versions.
last n versions used mostly for last 2 versions. Modern browsers have autoupdate. When Chrome n+1 will be released some users will be on Chrome n because of autoupdate lag. But I don't see any reasons for semantic request of last 4 versions.
Let's me explain my concerns with dealing with Firefox ESR as separated browser:

It will require major release.
Can I Use doesn't deal with Firefox ESR browser. So it will require increase Browserslist code complexity and reducing maintability.
Most of developers don't think about Firefox ESR as separated browser. So they will be surprised too see unsupported previous Firefox ESR in last 2 versions query (it loads all browsers, so with you suggestion it will load last 2 Firefox ESR versions too).

As you can see, I need really good reason for making Firefox ESR as separated browser.

It's simple: organizations and enterprises are slow to upgrade and do not follow the Mozilla schedule. There's likely a number of intranets that are still running ESR 38 because they haven't upgraded their infrastructure. Those computers are locked down and cannot be autoupdated by users. Organizations running ESR 38 at this point are just a little slow and are just under a year out of date. That doesn't seem like a good reason to punish those users.
I don't think this requires a new version in the code. You're already aliasing ESR to a particular Firefox version. Why not just alias it to a list and make it synthetic browser version in order to support the queries with browserlist? If you were tracking bugs, this wouldn't be right; however, you're tracking browser capabilities and ESR freezes those upon first release, so this approach sounds correct.

Most of developers don't think about Firefox ESR as separated browser. So they will be surprised too see unsupported previous Firefox ESR in last 2 versions query (it loads all browsers, so with you suggestion it will load last 2 Firefox ESR versions too).

And I was surprised to see browsers that are primarily used in China (it's not my target market). People will adjust the same way they did with how the 2.0 release changed the last 2 versions results.

Those computers are locked down and cannot be autoupdated by users. Organizations running ESR 38 at this point are just a little slow and are just under a year out of date. That doesn't seem like a good reason to punish those users.

If it is not autoupdated machines, why you are think that last 3 ESR versions is good for this companies? You think they update Firefox 38 when Mozilla will release next ESR?

Having worked with one of those large organizations, I can tell you they have an upgrade schedule. If it's "upgrade annually", that often translates to 12-14 months. So last 3 ESR versions would cover them.

“Annually update” doesn’t semantically equal to “last 3 versions”.
Also you didn’t show me how I can fix other problems with “ESR as separated browser”. For my perspective it will be worse for everyone else and better only for you.
Writing firefox 38, firefox 42 will solve your problem and keep other 4-5 M developers happy.

Done https://github.com/ai/browserslist/commit/afc8bd3bc057acb71fe2aa9ecef7768655c83b7d


Upgrading to Ruby3.2

Summary
Ruby 2.7 is being deprecated. Aws has announced support for Ruby3.2. This PR updates to Ruby 3.2.
Details

Update ruby env version
Rerun bundler
Update Cloudformation template

https://www.ruby-lang.org/en/downloads/branches/


Option to disable code splitting completely

As for now, there is no way to disable code splitting feature with some option.
Build & rebuild time is more with code splitting, so, it is useful from developer experience point of view to disable it in development mode. https://www.npmjs.com/package/babel-plugin-remove-webpack could handle some of cases, excluding modern import() signature.

Have you profiled and confirmed that code splitting is a main cost. I'd need to see it to believe it. Chrome Dev tools JS Profile Heap snapshots, etc.

@TheLarkInn I've not profiled this deeply, but I have simple test case for my project:
without babel-plugin-remove-webpack rebuild time ~10-12s
with babel-plugin-remove-webpack rebuild time ~4-5s
The biggest difference in webpack builtin profiler output is "sealing" operation: 100-300msec without splitting (with babel plugin enabled) and 4-5 sec with it.

Could you make a small example repo that I could clone to test locally?

Notable performance difference would be only on big repo.

I'm interested in this feature, but not because of performance.
I have a config to bundle my tests... additional files in this case present no advantage for me.

LimitChunkCountPlugin with 0 chunks

using LimitChunkCountPlugin with 0 chunks produces
TypeError: content.indexOf is not a function

Webpack 4. Use 1 as the limit, as the single bundle also counts as a chunk.
plugins: [
    new webpack.optimize.LimitChunkCountPlugin({
         maxChunks: 1
     })
 ]

Just tried webpack.optimize.LimitChunkCountPlugin and it actually added 7 seconds to build time, probably because LimitChunkCountPlugin merges chunks post processing?

LimitChunkCountPlugin can post-process your chunks by merging them.
source

Seems a bit of a performance waste to add a plugin just for this (that merges the chunks). Shouldn't there be a built-in option for this?

Also in webpack 5 I believe, the plugin is changed making this option infeasable.
[webpack-cli] Failed to load '/Users/tobiasanhalt/Development/bamboo/blueprint-nodejs/sample/webpack.config.js' config
[webpack-cli] Invalid options object. Limit Chunk Count Plugin has been initialized using an options object that does not match the API schema.
 - options.maxChunks should be >= 1.
   -> Limit the maximum number of chunks using a value greater greater than or equal to 1.

How to disable code chunks / splitting in Webpack 5... Use the output section of the config, not the optimization section:
{
  output: {
    chunkFormat: false
  }
}

How to disable code chunks / splitting in Webpack 5... Use the output section of the config, not the optimization section:
{
  output: {
    chunkFormat: false
  }
}

For webpack5, this is the proper way, thx @nl-brett-stime ~

quite sad how hard this was to figure out


MODBULKOPS-388 - TD: Retrieve tenants list from internally stored files

MODBULKOPS-388 - TD: Retrieve tenants list from internally stored files
Purpose
Avoiding calls to retrieve tenants list - using json with extended entities to retrieve tenants.
Approach
Switching populating tenants list to bulk operation after completing of matched records downloading.
TODOS and Open Questions

Learning

Pre-Merge Checklist:
Before merging this PR, please go through the following list and take appropriate actions.

Does this PR meet or exceed the expected quality standards?

[x] Code coverage on new code is 80% or greater
[x] Duplications on new code is 3% or less
[x] There are no major code smells or security issues

Does this introduce breaking changes?

[ ] Were any API paths or methods changed, added or removed?
[ ] Were there any schema changes?
[ ] Did any of the interface versions change?
[ ] Were permissions changed, added, or removed?
[ ] Are there new interface dependencies?
[x] There are no breaking changes in this PR.

If there are breaking changes, please STOP and consider the following:

What other modules will these changes impact?
Do JIRAs exist to update the impacted modules?

[ ] If not, please create them
[ ] Do they contain the appropriate level of detail?  Which endpoints/schemas changed, etc.
[ ] Do they have all they appropriate links to blocked/related issues?

Are the JIRAs under active development?

[ ] If not, contact the project's PO and make sure they're aware of the urgency.

Do PRs exist for these changes?

[ ] If so, have they been approved?

Ideally all of the PRs involved in breaking changes would be merged in the same day to avoid breaking the folio-testing environment.  Communication is paramount if that is to be achieved, especially as the number of intermodule and inter-team dependencies increase.
While it's helpful for reviewers to help identify potential problems, ensuring that it's safe to merge is ultimately the responsibility of the PR assignee.

@khandramai please remove unused interfaces/permissions if there are any

Handled in https://github.com/folio-org/mod-bulk-operations/pull/294


Is this still actively maintained?

Hi,
This project is not actively maintained at this time, because I cannot find time to make a good release. We have users and teams still using it and you can get in touch with some of them by joining our slack community at https://slack.teamhephy.com and you can get help deploying this project or working on it at #support or #general channels there.

We maintained a fork, but it has changed a lot, for example:

drycc.yaml Similar to heroku.yaml
exec Execute a command in a container.
volumes Mounting volumes for an Application.
gateways Use gateway replace router.
addons A feature similar to Heroku Addons

You can visit the official website to see more, currently, we are using it, with approximately 300 bare metal servers.


Unable to select Build Action as per Readme

In VS 2017, I Installed the necessary SpecFlow packages, made some feature files and emptied the "Custom Tool" property.
However, I can not enter SpecFlowFeature or SpecFlowEmbeddedFeature as "Property value is invalid".
I've double-checked all steps and seen your video (where you don't set it that way btw).
Did I miss something or is it a bug?
The test project builds fine, but on building it adds the .cs code-behind files again.
I should mention that I'm using .NET Core. The example project works fine.

I have the same issue in a .NET 4.6.2 library.

I think it could be due to the new csproj layout, not specifically .NET Core.
In that case, I think it would be solved if SpecFlow itself implements support for the new csproj layout.
It is currently being worked on: https://github.com/techtalk/SpecFlow/pull/649

.NET core and and the new project format is not supported by the build actions. I will add this to the readme.md


ActivePageTable is still called RecursivePageTable in page_tables code

Reported by Hoschi via email

Fixed by cherry-picking #88 to page_tables tag.


The url language identifier cannot be set to uppercase?

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.92.0-B3549403+extended windows/amd64 BuildDate=2022-01-12T08:23:18Z VendorInfo=gohugoio

Does this issue reproduce with the latest release?
Yes!
When I set 'languageCode' with uppercase letters in the configuration file, the generated language folder name is still lowercase.
Language config:
disablePathToLower = true

[en]
contentDir = 'content/en'
languageName = 'English'
languageCode = 'en'
weight = 10
title = "My New Hugo Site"

[zh-Hans]
contentDir = 'content/zh-Hans'
languageName = '简体中文'
languageCode = 'zh-Hans'
weight = 20
title = "我的新Hugo站点"

Generated directory：

First, I assume that you placed 'disablePathToLower = true' in the root table of your site config, or in one or more of the [languages.xx] tables. As shown, under the [languages] table, the build will throw en error.

Error: Failed to parse multilingual config: Language config is not a map: bool

Second, disablePathToLower has no effect on the public/langcode directory name. It will always be lowercase.
Third, be aware of this proposal:
https://github.com/gohugoio/hugo/issues/9171
Finally, be aware of this issue:
https://github.com/gohugoio/hugo/issues/9109
If you use zh-Hans instead of zh_hans localization of dates, currencies, numbers, and percentages will fail.
Related: https://github.com/gohugoio/hugo/issues/7344

@jmooring
I read these issues carefully. I fully understand the original intention of this design, but I think these should be set by the user's configuration and not by default in Hugo.

Can anyone tell me this problem will be fixed?

This is counterintuitive and problematic when trying to migrate an existing website to Hugo without breaking existing URLs  on a case-sensitive server.

"8-Character Limit for Language Names in i18n/" issue (closed as completed) creator here, adding a languagePrefix key to language config would be very useful
Another use case from my original issue: We are working on a website for students at Sapienza University of Rome, and we are using languages as versions, one for each degree program. Therefore, we would like to have sapienzastudents.net/computerscience for the Computer Science Master's Degree version of the website, instead of the current sapienzastudents.net/29932, which we are using because we can't have language names longer than 8 characters.

@matypist Your are, obviously, using Hugo's multilingual feature for something other than its intended application... it's a hack. If I were you I would find another way. You might consider creating a topic on the forum to see if anyone has a suggestion.

Coming from this forum topic and would really love to see this be implemented.
My use case is that I have an existing language code as the first segment of the URL path and would love to keep it. However, I must use another language code for Hugo to format dates and numbers with the locale. Hence, being able to customize the language code in the URL path would solve the issue.
301 redirect was...sort of okay, but I'd really don't go down that path unless I had no other choice.

Related to https://github.com/gohugoio/hugo/issues/9109.
Ideally you would be able to independently control translation (i18n lookups), localization, and URL prefix.


Update docs theme patching:

Issue #, if available:
There is a docs theme patch that is needed for security reasons. See the patch commit for details. This patch wasn't being applied properly. This fixes the patch apply.
Description of changes:
Testing (if applicable):
Tested locally with make container-build && make container-serve
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/cherry-pick release-0.20

/cherry-pick release-0.21


Security ATF feature

It was implemented security support feature for ATF
Main ATF features for checking SDL security are:

Support of secure SDL sessions;
Support of testing broken handshake;
Support of sending raw data via secure channel;
Support of expected secure requests\responses\notifications;
Support Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS).

There are new ATF components:

SecurityManager
Security (subcomponent of MobileSessionImpl)

There are significantly changed ATF components:

Event dispatcher
Expectations
Mobile connection
Mobile session
Protocol handler
Control service
RPC service
ATF utils
ATF Logger

There are minorly changed ATF components:

SDL
Events
Message dispatcher

@aderiabin Please update description:

It was implemented security support feature for ATF -> Security support feature was implemented for ATF
In Main ATF features - please update the following: Support of testing broken handshake; -> Support of failed handshake testing;

@aderiabin PR is approved, but please resolve conflicts

@theresalech this PR is ready for review.

@mrapitis does this correspond to a feature planned for the Core 5.0 Release? Can you please provide a link to the issue?

@theresalech Yes, the DTLS and GetSystemTime features linked below:
smartdevicelink/sdl_core#1479
smartdevicelink/sdl_core#1963
Thanks!

@mrapitis thanks!  It appears there are already test scripts added for those features specifically (https://github.com/smartdevicelink/sdl_atf_test_scripts/pull/1856 and https://github.com/smartdevicelink/sdl_atf_test_scripts/pull/1864).  Is this PR a duplicate?

@theresalech those are actually the test scripts, while this PR targets the changes needed to the framework that runs the test scripts.

@mrapitis I see.  This wasn't explicitly planned for the Core 5.0 Release, but we will make an effort to review if time allows.

@dboltovskyi I have a couple of questions about how ATF secured services work with core with only the DTLS Core feature branch?
According to the Core PR and @mrapitis : https://github.com/smartdevicelink/sdl_core/pull/2068
In order to start a secured service, I need to use the getSystemTime feature with the DTLS feature and a couple of other bug fixes mentioned here.

This feature should be merged after #2105 and before security fixes #2217 + #2218

How do the DTLS tests pass if getSystemTime isnt implemented in the Core DTLS branch?
Also in order to run the tests manually, I needed to use a CA Certificate and Key, but in the atf code I only find the usage of this file https://github.com/smartdevicelink/sdl_atf_test_scripts/blob/develop/files/Security/client_credential.pem
What are the contents of this file that allows ATF to start a secured service if the other certs/keys aren't provided?

Hi Jack,
Let me give you some explanations.

How do the DTLS tests pass if getSystemTime isnt implemented in the Core DTLS branch?

ATF tests on DTLS do not depend on GetSystemTime feature.
They checked just a possibility to start protected service and to perform secured interaction.
In these tests default certificates are used:

Client (SDL): ./files/Security/client_credential.pem
Server (App): ./files/Security/spt_credential.pem

These certificates were generated by using python script in sdl_core (./sdl_core/tools/Utils/generate_test_certificates.py)
Certificates are valid starting from Dec 2017 till Apr 2045
Without GetSystemTime feature Core takes current system time during SSL handshake.
So using above certificates there will be no fails due to dates restrictions.

What are the contents of this file that allows ATF to start a secured service if the other certs/keys aren't provided?

Let's assume we have client/server architecture, where SDL is a client, and mobile App is a server.
Such configuration is used by default in SDL.
So content of the files with certificates is the following:
A) client_credential.pem file used on SDL side and contains the following:

client key

client certificate

server root CA certificate

server issuer CA certificate

B) spt_credential.pem file used on mobile App side and contains the following:

server key

server certificate

client root CA certificate

client issuer CA certificate

All these certificates are generated by python script.
Having them is completely enough to establish secured connection between SDL and mobile App.
There is a following sequence of SSL handshake:

SDL (client) asks mobile App (server) to provide it's certificate
Mobile App provides it's certificate to SDL (B-i,ii).
SDL validates mobile App's certificate using mobile App's root and issuer CA certificates (A-iii,iv).
Mobile App (server) asks SDL (client) to provide it's certificate.
SDL provides it's certificate to mobile App (A-i,ii).
Mobile App validates SDL's certificate using SDL root and issuer CA certificates (B-iii,iv).

Notes:
This is a complete sequence and it's used in ATF by default.
However in SPT simple sequence is used where steps 4-6 are excluded.
In ATF it's possible to use simple sequence as well by changing parameter config.isCheckClientCertificate.


Gift sats:UI change.

Long pressing on plus icon should continuously create gifts. Same way long pressing on minus should reduce.

"Long press to create gifts continuously" is not working

I have tested this on android and IOS both. It is working fine in featue/2.0.75

fixed


Add adversarial tests or verification that error cases return reasonable errors for IM message df

I don't see any adversarial tests or verification that error cases return reasonable errors.  Are more than functional tests coming at some point?
Originally posted by @rwalker-apple in https://github.com/project-chip/connectedhomeip/pull/3491#discussion_r524804428

Moving to post V1.0, not clearly required for V1.0


update support for tools already installed

For the leftovers from #110 I create this new issue:
For a tool that is already installed the update should be able to check if the installed version (via .devon.software.version file) matches the configured software version. If not the configured version is to be installed while creating a backup of the previously installed tool.
This will allow to change versions of tools in devon.properties of the settings in GIT and roll this out to the entire team with only devon ide update command (e.g. to upgrade maven version to 3.6.1 within a project).

Completed with PR #154


Missing Favicon and Title change

Missing Favicon and Title change
The dashboard web app is missing a favicon, which can make it difficult for users to quickly identify the website in their browser's tabs or bookmarks. Also, the title of the dashboard web app is not descriptive and does not match the name of the web app.
Steps to reproduce

Open the dashboard web app in a web browser
Inspect the web page and notice the missing favicon and the title of the web app

Expected behavior

The dashboard web app should have a favicon that is displayed in the browser's tabs and bookmarks.
The title of the dashboard web app should be descriptive and match the name of the web app.

Actual behavior

There is no favicon displayed in the browser's tabs or bookmarks.
The title of the web app is not descriptive and does not match the name of the web app.

Suggested solution

Add a favicon to the web app, using the appropriate file format (e.g. .ico, .png) and size (e.g. 16x16 pixels)
Add a link to the favicon in the <head> of the HTML file, using the <link> element
Change the title of the web app to a more appropriate and descriptive name
Update the <title> element in the <head> of the HTML file with the new title

For Solution
Favicon Asset File : favicon.zip
Title : "< Page Name > | Dashboard Real Dev Squad"
Eg. : Create Tasks | Dashboard Real Dev Squad

@sahsisunny @ankushdharkar @iAmAshuSahoo Hey , I want to work on this issue, Please assign me. Thanks.

@sahsisunny @ankushdharkar @iAmAshuSahoo Hey , I want to work on this issue, Please assign me. Thanks.

You are in the discord channel of Real Dev Squad ?
If you are then tag in the "new-task" channel else you can join the Real Dev Squad Discord the. Work on the task.

Please send me the discord link. Also please assign me this issue as this is my college assignment. Thank You.

Please send me the discord link. Also please assign me this issue as this is my college assignment. Thank You.

I guess it's not an easy process Go to Members page and connect with the members and tell them that I want to join RDS.

@sahsisunny is it necessary to join discord then ? Please can you assign me the issue directly?

I don't think it can happen if you really want to work then you have to follow this procedure.

@sahsisunny Actually , I have sent message to some members of RDS on twitter for joining RDS discord. But I have not received reply from them. Can you please convey my request to join RDS to any member who can approve me.

fix merged in #297 PR


248 numpy 2 0 migration

Description
Code modifications for numpy 2.0 compatibility
Fixes # 248
Type of change
Minor code modifications to support Numpy 2.0
Key checklist

[ ] Make sure you've run the pre-commit checks: $ pre-commit run -a
[ ] All tests pass: $ poetry run pytest

Further checks

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

yes I breathed a sign of relief!


Use favourites from Safari bookmarks bar

Rather than having its own selection of links, please allow the contents of the original Safari bookmarks bar to be displayed. This would save a lot of time, and would allow me to consider using the extension - as it is, I don't have time to set it up.

This is on my long-term todo list, but I'm not 100% certain it's possible.  I know that I can't access Safari's favorites from within the extension so it would require writing an App Store app to do the conversion.  Due to the App Store's sandboxing I am not completely sure that favorites can be accessed from there either.  I'm not going to close it, but it's still up in the air.  Thanks for the suggestion.

Actually since this is a duplicate of Issue #8 I am going to go ahead and close this request, but it's still planned.


Added changelog for upcoming 1.1.1 release

Once this is merged in, I'll cut the release in Catapult.

Coverage remained the same at 92.7% when pulling<PHONE_NUMBER>e6778097348cbe0dd03ff9f10cdc96 on jw-changelog-1-1-1 into 542ae575fe6ce85c57b6ce4250146d3576a7ffc4 on master.


Create ruby.yml

Checklist

[ ] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[ ] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[ ] I've read the Contribution Guidelines
[ ] I've updated the documentation if necessary.

Motivation and Context

Description

Testing Steps

Closing this PR since missing a lot of information in PR description


NuGet-packages

Hi, I guess I could infer it from the nuspec files and git tags, but could you add some docs towards these nuget packages?
https://www.nuget.org/packages/Thinktecture.IdentityModel.WebApi
https://www.nuget.org/packages/Thinktecture.IdentityModel.WebApi.ScopeAuthorization
The latter seems most recent, but I guess both will be continued after the beta?
Really like the scope auth attributes! Thanks for that.

A little bump on this, as there has been some recent developement and new nugets. Could you add git tags for which commits referring to what NuGet package, similar to what you do idsrv?
Seeing as this repo is the source of a couple of nugets, it's kinda hard figuring out what commit is in what package. For instance, not sure what commit is in the 4.0.0 release of Thinktecture.IdentityModel.Client
Is everything in master deployed as new NuGets?
Or am I missing something, perhaps.

Yea - sorry - forgot to tag the Client 4.0.0 - it is https://github.com/IdentityModel/Thinktecture.IdentityModel/commit/663f8232cac51d3d697eaa702a9874cc22e31c13
I want to move the more popular projects so separate repos - but i am a bit time constrained right now.

I actually did add a tag - but forgot to push. But are right - it is messy.


Locale feature

locale: "DE" f.e.
something like this..
function setLocale(locale) {
if (locale) {
locale = locale.toUpperCase();
}
switch (locale) {
case 'BR':
return 'webservices.amazon.com.br';
break;
case 'CA':
  return 'webservices.amazon.ca';
  break;

case 'CN':
  return 'webservices.amazon.cn';
  break;

case 'FR':
  return 'webservices.amazon.fr';
  break;

case 'DE':
  return 'webservices.amazon.de';
  break;

case 'IN':
  return 'webservices.amazon.in';
  break;

case 'IT':
  return 'webservices.amazon.it';
  break;

case 'JP':
  return 'webservices.amazon.co.jp';
  break;

case 'MX':
  return 'webservices.amazon.com.mx';
  break;

case 'ES':
  return 'webservices.amazon.es';
  break;

case 'UK':
  return 'webservices.amazon.co.uk';
  break;

default:
  return 'webservices.amazon.com';

}
}

https://github.com/dmcquay/node-apac/pull/66

This is fixed in v1.4.0 which has been published to npm.

Hi Dustin, I today tested your new api, respectively the promise feature together with the throttling limit. I did not debugged it...but it is not working properly if you inject the querys into the operation execute....
All queries are executed at once...
Best Matthias
Von meinem iPhone gesendet

Am 16.04.2016 um 01:19 schrieb Dustin McQuay<EMAIL_ADDRESS>Closed #62.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

I would like to test locale feature...but it is not online?
Best Matthias
Von meinem iPhone gesendet

Am 16.04.2016 um 01:19 schrieb Dustin McQuay<EMAIL_ADDRESS>This is fixed in v1.4.0 which has been published to npm.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

@Hucho - Regarding the throttling feature, did you set the the maxRequestsPerSecond parameter to a positive number? Can you send me your code?
The documentation for the auto-throttling is here:
https://github.com/dmcquay/node-apac#throttling--request-limits
Regarding the locale feature, it is available, both via git and npm. Just install v1.4.0. I apologize I have not yet documented the locale parameter, but you can see how to use it in the tests here:
https://github.com/dmcquay/node-apac/blob/master/lib/operation-helper.specs.js#L33

@dmcquay I tried the code on Git yesterday and it works perfectly, but it seems the changes have not been included in the v1.4.0 on npm (I tested that again just now). Maybe that's why others  are having problems with it?

Thx I will check on yhay
On Sat, Apr 16, 2016 at 5:35 AM DaanOlbrechts<EMAIL_ADDRESS>wrote:

@dmcquay https://github.com/dmcquay I tried the code on Git yesterday
and it works perfectly, but it seems the changes have not been included in
the v1.4.0 on npm (I tested that again just now). Maybe that's why others
are having problems with it?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/dmcquay/node-apac/issues/62#issuecomment-210794887

Thanks @DaanOlbrechts. Indeed that was missing in v1.4.0 for some reason. I have published a new version (1.5.0) that includes the locale changes.

@Hucho - see prev comment

Perfect! Thanks!

Hi Dustin,
I would like to use the German locale setting now; how can I easily change the locale? Do I understand it correctly that I can just set "locale" to "DE" and pass it into the OperationsHelper with my other credentials?

Yes. See example here: https://github.com/dmcquay/node-apac/blob/master/lib/operation-helper.specs.js#L33


Gloucester facts doesn't exist

Mentions listening to this skill in action by adding skill "Gloucester Facts", which isn't on the marketplace when searched, also a dead link from the ReadMe.

+1 to this issue: The "Gloucester" link is dead in README.md and 0-intro.md

The link has been removed.  As you've noted, that skill is not currently available.


I can't switch months 😞

First i want to thank you for your fantastic calendar 🎉
I do have a problem, I just think I don't know how to do it correctly.
I can see the callendar on the chat, but I can change month or year just once and than it stops.
I have the following Wizard scene:
const reminderWizard = (userId) => {
	return new WizardScene(
		"my-wizard",
		async (ctx) => {
			await ctx.reply(`What's your name?`);
			ctx.wizard.cursor = 0;
			return ctx.wizard.next();
		},
		async (ctx) => {
			const resp = ctx.message.text;
			ctx.scene.session.state.subject = resp;

			await ctx.reply(`What's your job?`);
			return ctx.wizard.next();
		},
		async (ctx) => {
			const resp = ctx.message.text;
			ctx.scene.session.state.description = resp;
			console.log("Received response: ", resp);

			// show calendar!!!
			calendar.startNavCalendar(ctx.message);

			return ctx.wizard.next();
		},
		async (ctx) => {
			const resp = ctx.message.text;
			console.log("Received response: ", resp);

			// Hmmm how does this work???
			if (
				ctx.callbackQuery.message.message_id ==
				calendar.chats.get(ctx.callbackQuery.message.chat.id)
			) {
				res = calendar.clickButtonCalendar(ctx.callbackQuery);
				if (res !== -1) {
					await ctx.reply("You selected: " + res);
				}
			} else {
				await ctx.reply(`Thank you for your payment!`);
			}

			return ctx.wizard.next();
		},
		async (ctx) => {
			const resp = ctx.message;

			console.log("Received response: ", resp);

			await ctx.reply("I registered your subscription");

			return await ctx.scene.leave();
		}
	);
};

My assumption is that this snippet is not enough:
if (
				ctx.callbackQuery.message.message_id ==
				calendar.chats.get(ctx.callbackQuery.message.chat.id)
			) {
				res = calendar.clickButtonCalendar(ctx.callbackQuery);
				if (res !== -1) {
					await ctx.reply("You selected: " + res);
				}
			}

Can you please help me with a solution?

Hello, @MrBouchtaoui!
First of all, thank you, I’m glad that my library was useful to someone)
Did I understand you correctly, you want it to be possible if you select the wrong month, say, to be able to go back to choosing the month?

I found the solution after studying your code.
if (
    ctx.callbackQuery.message.message_id ==
    calendar.chats.get(ctx.callbackQuery.message.chat.id)
    ) {
        res = calendar.clickButtonCalendar(ctx.callbackQuery);
        if (res !== -1) {
	        await ctx.reply("You selected: " + res);
        } else { // rewind this step to handle next button action!
                ctx.wizard.cursor--;
        }
}

Maybe you can update your examples with a wizard demo. Anyway, thank you very much for sharing this nice library 👌🏼

I understood you.
Today I will try to test and release an update)

Hello, @MrBouchtaoui!
I apologize for the long response, I’m currently busy with my main work, I’ll test it and release an update in the near future.

Good afternoon, @MrBouchtaoui!
Sorry for the long response, it was too much work.
Regarding your issue: I tested and carefully studied your comment. The problem occurs due to the use of wizard scene, which is a special case of using the library. A little later I will add a FAQ where I will describe such cases. Thanks for your support and use of the library.


perf: improve performance of reactplay.io

Descrcibe the bug?
we have to improve the performance, Accessibility, Best Practices, and SEO of the site.
Steps to reproduce the bug?

visit https://reactplay.io & open the developer tool then click on the lighthouse tab & produce the report

Expected behavior
.
Desktop (Please provide your system information)
.
Mobile (Please provide your device information)
No response
Screenshot / Screenshare

Relevant log output
No response
Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[ ] I want to work on this issue

Code of Conduct

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

I can work on this.

I can work on this.

sure


Update GatewayClass status based on EnvoyProxy validation

Refactor EnvoyProxy's Validate API
If a GatewayClass references a EnvoyProxy resource, ensure that that the GatewayClass status condition is based off the EnvoyProxy validation result

Relates to https://github.com/envoyproxy/gateway/issues/31

@Xunzhuo, Im unable to generate the manifests for the webhook by adding the kubebuilder annotations to the file and running make manifests, has something changed with the helm stuff ?

Nothing changes except the output path in make manifests.
Can you tell where,what annotations you add? I will have a try too
@arkodg

kindly ping @arkodg , are you still working on this?

kindly ping @arkodg , are you still working on this?

yes 😅  will resume next week

Below logs highlight that the the Accepted condition is set to False with a reason of InvalidParameters when validation fails on the referenced EnvoyProxy resource
🐳 ~/go-workspace/src/github.com/envoyproxy/gateway$ kubectl get envoyproxy/ep-config -n envoy-gateway-system -o yaml
apiVersion: config.gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"config.gateway.envoyproxy.io/v1alpha1","kind":"EnvoyProxy","metadata":{"annotations":{},"name":"ep-config","namespace":"envoy-gateway-system"},"spec":{"bootstrap":"blah","logging":{"level":{"system":"debug"}}}}
  creationTimestamp: "2023-04-05T21:58:31Z"
  generation: 2
  name: ep-config
  namespace: envoy-gateway-system
  resourceVersion: "5009"
  uid: ee973c95-a96f-49f3-90ec-233349dbe1bc
spec:
  bootstrap: blah
  logging:
    level:
      system: debug
🐳 ~/go-workspace/src/github.com/envoyproxy/gateway$ kubectl get gc/eg -o yaml
apiVersion: gateway.networking.k8s.io/v1beta1
kind: GatewayClass
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"gateway.networking.k8s.io/v1beta1","kind":"GatewayClass","metadata":{"annotations":{},"name":"eg"},"spec":{"controllerName":"gateway.envoyproxy.io/gatewayclass-controller","parametersRef":{"group":"config.gateway.envoyproxy.io","kind":"EnvoyProxy","name":"ep-config","namespace":"envoy-gateway-system"}}}
  creationTimestamp: "2023-04-05T21:54:21Z"
  finalizers:
  - gateway-exists-finalizer.gateway.networking.k8s.io
  generation: 2
  name: eg
  resourceVersion: "31384"
  uid: 0db8dcfd-b3f7-4cff-8c82-acedc388b78f
spec:
  controllerName: gateway.envoyproxy.io/gatewayclass-controller
  parametersRef:
    group: config.gateway.envoyproxy.io
    kind: EnvoyProxy
    name: ep-config
    namespace: envoy-gateway-system
status:
  conditions:
  - lastTransitionTime: "2023-04-05T22:10:54Z"
    message: 'Invalid parametersRef: unable to unmarshal user bootstrap: proto: syntax
      error (line 1:1): unexpected token "blah"'
    observedGeneration: 2
    reason: InvalidParameters
    status: "False"
    type: Accepted
    ```

what's the expected behavior when apply a wrong EnvoyProxy? EG use last correct EnvoyProxy?
what will happen when EG control plane restarts after a wrong EnvoyProxy applied?

what's the expected behavior when apply a wrong EnvoyProxy? EG use last correct EnvoyProxy?
what will happen when EG control plane restarts after a wrong EnvoyProxy applied?

thanks for raising this, even w/o this PR we were failing fast -  removing the GatewayClass from being accepted if EnvoyProxy was invalid, causing entire deletion of data plane. Imo this should be discussed in a separate issue if we want to handle this more gracefully


Update test browsers.

Coverage remained the same at 98.227% when pulling 936fb1b1b11af8f8ff69bdeb7d0899562972e78d on update_tests_systems into 1bb59e243b8f76189596cf1f1f2707ec71069d95 on master.

iOS testing seems to not work. :( But at least we have 4 more browsers.

I noticed on Penpal my iOS testing fails about half the time. :/

Coverage remained the same at 98.227% when pulling af6f691760fc704d635c9b1e83aa15d3d9b67823 on update_tests_systems into 1bb59e243b8f76189596cf1f1f2707ec71069d95 on master.

Coverage remained the same at 98.227% when pulling 3ebd3e5d7cb7059d04744b8f236bfa0f9c28941e on update_tests_systems into 1bb59e243b8f76189596cf1f1f2707ec71069d95 on master.


The require statement in onlyController() should contain an error message

So that the error is easier identifiable.

Done in https://github.com/raiden-network/raiden-contracts/commit/6f2142eeef4bebf39b6ad38fee6558ca6de85506.


Increase gRpc channel message size to int.MaxValue

Related issue https://github.com/Azure/azure-functions-host/issues/5650
In order to remove size limit on gRpc channel, worker needs to update channel message size to max init.

Possible to get this into current host sprint 71?


refactor!: add agent context

Signed-off-by: Timo Glastra<EMAIL_ADDRESS>This is the same PR as #881, but based off the 0.3.0-pre branch instead of main. There's no changes compared to #881 except for making it work with this branch (making the new w3c services stateless). Due to the breaking changes we don't want to have this in main just yet.
BREAKING CHANGE: To make AFJ multi-tenancy ready, all services and repositories have been made stateless. A new AgentContext is introduced that holds the current context, which is passed to each method call. The public API hasn't been affected, but due to the large impact of this change it is marked as breaking.

Codecov Report

Merging #920 (eae5f82) into 0.3.0-pre (938a889) will increase coverage by 0.11%.
The diff coverage is 86.80%.

@@              Coverage Diff              @@
##           0.3.0-pre     #920      +/-   ##
=============================================
+ Coverage      86.51%   86.62%   +0.11%
=============================================
  Files            512      515       +3
  Lines          12468    12542      +74
  Branches        2103     2131      +28
=============================================
+ Hits           10787    10865      +78
+ Misses          1585     1582       -3
+ Partials          96       95       -1

Impacted Files
Coverage Δ

packages/core/src/agent/AgentConfig.ts
90.16% <ø> (-0.47%)
:arrow_down:

packages/core/src/constants.ts
100.00% <ø> (ø)

...les/credentials/formats/CredentialFormatService.ts
100.00% <ø> (ø)

...cation/handlers/V1RevocationNotificationHandler.ts
71.42% <ø> (ø)

...cation/handlers/V2RevocationNotificationHandler.ts
71.42% <ø> (ø)

...ges/core/src/modules/credentials/services/index.ts
100.00% <ø> (ø)

...ore/src/modules/dids/methods/web/WebDidResolver.ts
60.00% <ø> (ø)

...c/modules/routing/handlers/MediationDenyHandler.ts
62.50% <0.00%> (+6.94%)
:arrow_up:

...ckages/core/src/transport/HttpOutboundTransport.ts
9.75% <0.00%> (-1.88%)
:arrow_down:

packages/core/src/transport/WsOutboundTransport.ts
9.23% <0.00%> (-2.37%)
:arrow_down:

... and 98 more

Continue to review full report at Codecov.

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

I assume the test will succeed once #935 is merged.

Yes, locally that's the only tests failing

Merging as the only failed test is the one as fixed in https://github.com/hyperledger/aries-framework-javascript/pull/935 so we can keep the PR review going


Add DataTable methods

First of all, thank you for taking over PetaPoco and continuing the great work it started.
I am trying to use NPoco in the DL for a simple project, but have run into a few use cases where a DataTable would be much more useful. An example is exporting data to a CSV file. I understand that NPoco is designed for POCOs, but it would be a small change to add a DataTable method, while it would be a lot more difficult to build my own, including the factory/database agnostic pieces.
BTW: I tried to just extend the Database class, but some required pieces are marked "private", making extension impossible. The items I needed "protected" access to were CreateCommand() and _factory.
I can add this functionality if you accept pull requests.

Just thought I would mention that this issue (ToDataTable method) seems to overlap with #113

You can always map to a object[] using Fetch<object[]> or Fetch<Dictionary<string, object>> if you want dynamic mappings.


Latest automatic update broke my preferred main shortcut.

I use option-space to activate Sol and the latest auto-update (I can't ID version because it's not visible anywhere) broke that key combo.  After I press it one time and briefly see Sol's UI, it won't work again until I restart the app.
Additionally, ability to edit keyboard shortcuts is also broken.  When I try to select any of the three drop-downs I can only see choices for the clipboard shortcut and selecting either of those choices has NO EFFECT on any shortcut.  There is NO WAY to edit shortcuts currently so I can't use Sol unless invoked with a double click in the applications folder, making it totally useless.
Please roll back the latest update.
I was really liking this app but it's lack of "mac-like" features (command-comma to get settings, a basic compliment of menus for example) makes it a gui app without any kind of standard interface and makes it extremely hard to use if the shortcut key is broken as it is now.

I can now see that the version is 1.1.44 - Version was not visible in the finder when I submitted the issue.

There seems to be a crash happening at the moment. At the same time I work on this project on my free time, so a fix or a rollback might take some time.

gotta love open source... in any case 1.1.46 but I still haven't been able to locate the cause of the issues


PR for #121: Add friendly exception when default roles are not found

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Fixed issues
#121

Thanks!


Tided up imports for project

As discussed

Third party imports will be casted as a * as named so it makes sense in the code
Only import what we need in each module from internal classes/functions

I have 1 more PR to come but no point me doing it until the 2 PR are merged into master.

Cool, vscodelang is not necessary is external (sorry)

Nice thanks :)

If all ok can get this merged in so I can do my last PR 👍

Can you revert vscodeLang to vscode? Reasoning this is for server operations so it does not make any difference. Mainly is not necessary.
I want to avoid changes for changes without value add, if not the next person will come and say, hey why don't we call this vscodeServer (more correct) and yet again another PR to review and go through, validation of changes etc.
Apologies, not being picky, I am just avoid extra work if not necessary.

Ok I only named it like that because if anyone imported just the “vscode” module it would end up being even stranger names. Naming it as per the namespace in my eyes makes sense. I understand what your saying happy to change.
So just to confirm you want me to change vscodelang to vscode for every reference?

In file solErrorsToDiaganosticClient.ts vscode and vscode-languageserver are both used hence why I choice a more relevant name for importing vscode-languageserver.
What do you suggest here? Changing to what you suggested will cause huge confusion + would not compile in that file.
Let me know your thoughts. Personally I see naming vscodelang only makes it more explicit when used rather then just naming it vscode.

In that scenario it will be vscodeServer, yes I understand. But also see my point, I want to avoid change for the sake of change (not your fault) I do need to add contribution guidelines.

No worries I will change it as per above 👍

This has now been changed as per your suggestion 👍

@joshstevens19  this one merging was going to be a nightmare with all the let / const changes so I have just done and quickly do it myself, also i have added other rules etc. See the commit reference.
Thanks again for this, interesting exercise.
Btw I have not touched anything but local references, projectService (which as a service could have been ignored the new "rule"), utils (which the name was clashing and could have been ignored too) and errorToDiagnostics.
Probably I would have give you a much better feedback, tackle it from this end earlier (weekend / mobile) was not an ideal situation.
Thanks again.

Also check both pull requests, I would love to know what linter settings / code formatter you use, although in some scenarios fix all does not really help. I preferred to do this one manually (ish).


Plugin Commands with Mel

Hi! Thank you for the great plugin.
I want to use your plugin to export models in batches. I tried exporting models with mel using:
maya2glTF -outputFolder "C:\Users\Lee\Desktop\export"
I got the same error as mikebourbeauart in Issue 58.
I tried running a version of the solution you posted with my script where his was:
global string $gMainProgressBar;

// Returns -1 if abortion is requested
global proc int maya2glTF_advanceExportProgressUI(string $stepName)
{
    global string $gMainProgressBar;  // This is defined on maya startup

    progressBar -edit -step 1 -status ("maya2glTF: " + $stepName + "...") $gMainProgressBar;

    if(`progressBar -query -isCancelled $gMainProgressBar`) {
        print ("maya2glTF: aborting at "+`date -time`+"\n");
        return -1;
    }

    return 0;
}

maya2glTF -outputFolder "C:\Users\Lee\Desktop\export" -sn "cubeTest"

I got the error:
Cannot find procedure "maya2glTF_exportProgressUI". Start of trace: (command window: line 1). maya2glTF_exportProgressUI (command window: line 1). maya2glTF (command window: line 20).
How can I use plugin commands through mel or python?
Thank you again for your awesome work!

Yeah I should add a flag to disable progress UI when batch exporting... Or actually the other way around. Should be easy to do, I will do that asap.
But you need to define two procedures:
global proc maya2glTF_exportProgressUI(int $max) {
    // This is defined on maya startup
    global string $gMainProgressBar;

    $max = max(1, $max);

    progressBar -edit
        -beginProgress
        -isInterruptable true
        -status "maya2glTF: exporting..."
        -minValue 0
        -maxValue $max
        $gMainProgressBar;
}

// Returns -1 if abortion is requested
global proc int maya2glTF_advanceExportProgressUI(string $stepName)
{
    global string $gMainProgressBar;  // This is defined on maya startup

    progressBar -edit -step 1 -status ("maya2glTF: " + $stepName + "...") $gMainProgressBar;

    if(`progressBar -query -isCancelled $gMainProgressBar`) {
        print ("maya2glTF: aborting at "+`date -time`+"\n");
        return -1;
    }

    return 0;
}

Note that these could be just empty procedures too, they just have to be defined.

Thank you for the quick response and for the code!
Followup question:
I received this error when I used it and ran maya2glTF -of with an existing directory:
// Error: line 1: create_directories(p): invalid argument: operation not permitted //
Do I need to to build the plugin from the repo in order to access additional functionality?
I downloaded version 9.09 and loaded it in maya through the plugin folder.

That is interesting.
If you are on windows, make sure to pass the directory using / not , so forward slashes, not backslashes.
Could you paste your complete command?

It worked! I am on windows and I was using back slashes when I should have been using forward slashes!
Thank you for your help!

Yeah it is sad that Windows uses backslashes for directory separation :-(
Good luck and thanks for trying out Maya2glTF!


Separate Main Loop

Based on: https://github.com/diasurgical/devilutionx-gamelist/pull/18
Fixes: https://github.com/diasurgical/devilutionx-gamelist/issues/17

There are a few small conflicts, could you please resolve them?

There are a few small conflicts, could you please resolve them?

Should be all set.

Looks like this change causes it to get stuck here:

I'll try to debug it a bit alter


Including yarn

I saw that you mentioned you were thinking of including in yarn in https://github.com/lambci/lambci/issues/71
Just wondering if there has been anymore thought into this?
It would be useful for my particular use case at the moment

Yep – still on the cards. A decent workaround is just downloading it as the first step in your build.

yeah I was thinking that, but my builds are already approaching 5m as it is, for now I'm just using the npm equivalent commands so everything is working dandy 👍

Oh, the downloading would add only literally a couple of seconds to your build – network speed is fast from Lambda – so I wouldn't worry about that aspect.

Going to close this – I think just installing this in your build is the best bet – yarn actually has some issues with disk usage that's made me avoid it on Lambda anyway.

I've had trouble downloading yarn as my first build step using these commands;
FROM lambci/lambda:build-nodejs10.x

ENV AWS_DEFAULT_REGION us-east-1

RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo |  tee /etc/yum.repos.d/yarn.repo
RUN yum install yarn

COPY . .

Is there a working example that could help guide me?

Use that in a .sh script:
# manual install yarn
curl -o- -L https://yarnpkg.com/install.sh | bash

# enable yarn in cli
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"

yarn install


Format of training label

Hi Yancong, Its needless to say what a incredible job you are doing.
I am trying to write a data loader to train the model. Can you give some idea about format of label data.
How can I train my custom dataset? (The datasets for this project is unfortunately not available)
I would like to know, essential information needed to train the model. Specifically I don't understand the following:-

See, if you can help me.
Thank you in advance.

Here is what I already understand:
The structure of the dataset is as follows:
data/wireframe
--> train(folder) ----> label for train image in '.npz' format
--> valid(folder) ----> label for validation image in '.npz' format
--> images with same name as their label counterparts in train/valid folder, having an extension of ".png"

hi, Omrastogi,
thanks for the interest.
please check the details there: ht-lcnn/dataset/wireframe.py
You will find all the details about the data format.
Yancong

Feel free to re-open if you have further questions.


Prevent no impact updates from creating version - sql

Description
If a user updates a record that already exists and nothing has changed in the content,  then the user should get a 200 but nothing should update the record. Updated UpsertAsync method to add validations in the code instead of in UpsertResource SP and check the existing resource rawData with new resource rawData by ignoring meta.versionId and meta.lastUpdated. If its an absolute match then we simply return Ok with existing resource information without updating VersionId and lastUpdated. If the strings do not match then we proceed with further steps of creating a new version.
Current login -
Inside a transaction in SP

Read a row with a lock
Validate
Update/Create/Delete

Updated logic -
In code -

Loop to continue below transaction when the resource is updated by the time we reach the SP

Read the latest resource info

Validate

Parse, Replace, and Compare resource content with old and new data

If match return OK with existing resource

If do not match then calls SP with compared version

In SP transaction

Read a row with a lock
Compare old with existing DB version
If a match (in code comparison was with valid versions) then go ahead with version creation based on if resource Changed
VersionMatched = true -> Create new verson
If no match (somebody else updated or added new resource) then throw an error for client to retry

Notes -

IsMetaSet

Added logic to check IsMetaSet flag while forming verisonId string (before comparing resource content), if it's false then the version id in rawResource is invalid
NewResource has VersionId=1 and IsMetaSet=true
SQL

Update requests - Saves IsMetaSet = false and does not update the raw Resource data - retaining versionId = 1

Cosmos

JSON Update requests saves IsMetaSet = true and updates the rawResource only for JSON request data type versionId is set correctly
Other than JSON Update requests saves IsMetaSet = false and does not update the raw Resource for other request data types like XML - retaining versionId = 1

Can this be possible ?

"meta": {
"lastUpdated": "2022-03-23T00:03:05.378+00:00",
"versionId": "1"
}  => "meta" : {,}

"meta":{"lastUpdated":"2022-03-23T00:03:05.378+00:00"}   => "meta" : {}

Above comparison will fail, but this should not happen. Generally we set lastUpdated and versionId both in a meta depending on the flag keepMeta which is set by canUpdateCreate (UpdateCreate from capability statement)

Delete - Set as false
Create - Hardcoded to true
Update - Depends on policy (canUpdateOrCreate)
- True = all good
- False = Shouldn't be set to false and not toggled**

We are forming versionId and lastUpdated strings to use String.Replace on raw resource data. Forming lastUpdated with a valid date format is little tricky. We set the value of lastUpdated by using ToString("o") which formats the datetimeoffset to Formats to 2022-03-09T01:40:52.0690000+02:00. String serializer converts this to 2022-03-09T01:40:52.069+02:00 and saves it.
In C#, millisecond value can range from [0 to 999]. Below are some useful examples of how date is stored in rawResource data in DB.
0000000+ -> +, 0010000+ -> 001+, 0100000+ -> 01+, 0180000+ -> 018+, 1000000 -> 1+, 1100000+ -> 11+, 1010000+ -> 101+

Related issues
Addresses 89485
Testing
Manual testing
Updated existing tests
Additional tests to cover duplicate data do not creates a new version
If metadata has other properties which were changed during the update then new version should be created
FHIR Team Checklist

[x] Update the title of the PR to be succinct and less than 50 characters
[x] Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
[x] Tag the PR with the type of update: Bug, Dependencies, Enhancement, or New-Feature
[x] Tag the PR with Azure API for FHIR if this will release to the Azure API for FHIR managed service (CosmosDB or common code related to service)
[ ] Tag the PR with Azure Healthcare APIs if this will release to the Azure Healthcare APIs managed service (Sql server or common code related to service)
[ ] CI is green before merge
Review squash-merge requirements

Semver Change (docs)
Patch|Skip|Feature|Breaking (reason)

/azp run

/azp run

/azp run


Drop onto Canvas

Allow Challenge Trackers to be dropped onto the canvas as a token element. Double-click or some other function to pick up (open in application window). See if completing segments while displayed as a token element is also possible.
This one will take a while.

I don't know if this worth. The clocks (same feature) have lots of problems. I replace their use for your module.
https://github.com/mattd/foundryvtt-progress-clocks

Good point. It's also probably not as necessary now with the challenge tracker UI.
I'll let this one chill and see if anyone else really wants it or if I get desperate for it myself. In either case I'd do it as an addition, so you can display it either way.


Literals support

Codecov Report

Merging #3 (beea9c1) into master (7152316) will decrease coverage by 12.23%.
The diff coverage is 79.34%.

@@             Coverage Diff             @@
##           master       #3       +/-   ##
===========================================
- Coverage   97.39%   85.15%   -12.24%
===========================================
  Files           3        3
  Lines         115      128       +13
===========================================
- Hits          112      109        -3
- Misses          3       19       +16

Impacted Files
Coverage Δ

typed_argparse/type_utils.py
79.34% <79.12%> (-16.86%)
:arrow_down:

typed_argparse/typed_argparse.py
100.00% <100.00%> (ø)

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 7152316...beea9c1. Read the comment docs.


Chan.Part.API IT: Join as follower and transition to member

Type of change

Test update

Description
Integration test for join as follower and transition to member.
Related issues
FAB-18031

This test is flakey without: https://github.com/hyperledger/fabric/pull/1734

And yep, hit the expected error. :)


Add first version of IP Service proto

I have docs like this:
title Initial Provisoning Flow

Agent->Service: Call ProvisionInstance
activate Service
Service->AWS: Create ENIs
Service->AWS: Attach ENIs
Service->Agent: Success + Cache Token
deactivate Service

No idea if they're valuable to include.


Add all tests in /test/integration/smoke to Travis run

This modified .travis.yml file to include missing tests in /test/integration/smoke.
It expands the coverage of the Travis runs.

looks like all tests passed but in fact some did not run...someone needs to check what happened exactly

Following are the tests that run on Simulator basic and adv - separately, please add ".py" to the end.
Simulator Basic -
integration.smoke.test_affinity_groups
integration.smoke.test_deploy_vms_with_varied_deploymentplanners
integration.smoke.test_disk_offerings
integration.smoke.test_global_settings
integration.smoke.test_iso
integration.smoke.test_multipleips_per_nic
integration.smoke.test_over_provisioning
integration.smoke.test_portable_publicip
integration.smoke.test_primary_storage
integration.smoke.test_reset_vm_on_reboot
integration.smoke.test_scale_vm
integration.smoke.test_secondary_storage
integration.smoke.test_service_offerings
integration.smoke.test_ssvm
integration.smoke.test_templates
integration.smoke.test_vm_life_cycle
integration.smoke.test_volumes
Simulator Adv -
integration.smoke.test_affinity_groups
integration.smoke.test_deploy_vms_with_varied_deploymentplanners
integration.smoke.test_disk_offerings
integration.smoke.test_global_settings
integration.smoke.test_guest_vlan_range
integration.smoke.test_iso
integration.smoke.test_multipleips_per_nic
integration.smoke.test_network
integration.smoke.test_nic_adapter_type
integration.smoke.test_non_contigiousvlan
integration.smoke.test_over_provisioning
integration.smoke.test_portable_publicip
integration.smoke.test_primary_storage
integration.smoke.test_privategw_acl
integration.smoke.test_public_ip_range
integration.smoke.test_pvlan
integration.smoke.test_reset_vm_on_reboot
integration.smoke.test_resource_detail
integration.smoke.test_routers
integration.smoke.test_scale_vm
integration.smoke.test_secondary_storage
integration.smoke.test_service_offerings
integration.smoke.test_ssvm
integration.smoke.test_templates
integration.smoke.test_vm_life_cycle
integration.smoke.test_volumes
ntegration.smoke.test_vpc_vpn

Sanjeev, good point, Travis only runs advanced zone tests. Maybe we should figure out a way to also run the tests with a basic config.

@runseb @pvr9711 @sanjeevneelarapu
Can we include all regression simulator tests also?

@sanjeevneelarapu

We should look at ways to improve the simulator to run faster.
We have PRs open for more than a day in most cases. I would rather wait for 6hrs than to have code which might break some functionality.

When we get CI based on real hardware in future, it'll take even more time. At that point we can look at running it once a day on latest master instead of per PR.

@runseb Could you rebase and push again? If so, and Travis and Jenkins are green, we can merge.
Ping @remibergsma @karuturi

@borisroman yes will do tonight