Analyzer: Implementation of new static analysis for return statements

The null-safety specification updates in dart-lang/language#941 and dart-lang/language#948 have been unfolded as part of the migration of tests/language/invalid_returns. This issue is concerned with updating the analyzer correspondingly.
The following tests have a missing compile-time error:
language/async/return_types_test
language/invalid_returns/async_invalid_return_48_test
language/invalid_returns/async_invalid_return_50_test
language/invalid_returns/async_invalid_return_51_test
language/invalid_returns/sync_invalid_return_27_test
language/invalid_returns/async_invalid_return_00_test
language/invalid_returns/async_invalid_return_03_test
language/invalid_returns/async_invalid_return_04_test
language/invalid_returns/async_invalid_return_05_test
language/invalid_returns/async_invalid_return_08_test
language/invalid_returns/async_invalid_return_11_test
language/invalid_returns/async_invalid_return_14_test
language/invalid_returns/async_invalid_return_17_test
language/invalid_returns/async_invalid_return_20_test
language/invalid_returns/async_invalid_return_23_test
language/invalid_returns/async_invalid_return_24_test
language/invalid_returns/async_invalid_return_25_test
language/invalid_returns/async_invalid_return_32_test
language/invalid_returns/async_invalid_return_33_test
language/invalid_returns/async_invalid_return_34_test
language/invalid_returns/async_invalid_return_35_test
language/invalid_returns/async_invalid_return_36_test
language/invalid_returns/async_invalid_return_37_test
language/invalid_returns/async_invalid_return_41_test
language/invalid_returns/async_invalid_return_45_test
language/invalid_returns/async_invalid_return_47_test
language/invalid_returns/async_invalid_return_52_test
language/invalid_returns/async_invalid_return_53_test
language/invalid_returns/async_invalid_return_54_test
language/invalid_returns/async_invalid_return_55_test
language/invalid_returns/async_invalid_return_56_test
language/invalid_returns/async_invalid_return_57_test
language/invalid_returns/async_invalid_return_58_test
language/invalid_returns/async_invalid_return_59_test

The main reasons for the above is that the rules about return; are now more strict, and a void expression can no longer be returned in an async function with return type Future<Null> (and several similar types).
The following tests incur some compile-time errors that shouldn't be there:
language/invalid_returns/async_valid_returns_test
language/async/return_types_test

The reason for this is that the old rules required Future<flatten(S)> to be assignable to the return type where S is the type of the returned expression, and the new rules require S to be assignable to the future value type of the function, or flatten(S) to be a subtype thereof.

Should these new rules be applied for both legacy and opted-in libraries, or only to opted-in libraries?

Only for code with null-safety (this is also the reason why these tests are in language, and the language_2 tests have not had a similar update).

I have an issue with this code (language/invalid_returns/async_invalid_return_35_test):
import 'dart:async';

FutureOr<Object?> Function(void) f = (void a) async {
  return a;
  //     ^
  // [analyzer] unspecified
  // [cfe] unspecified
};

For function expressions we need to infer the return type. I'm using these rules.
Imposed type: FutureOr<Object?>.
Context type: FutureOr<Object?>.
Returned types: [void].
Actual returned type: void.
For this rule: Let T be the actual returned type of a function literal as computed above. Let R be the greatest closure of the typing context K as computed above. If T <: R then let S be T. Otherwise, let S be R. Here T = void, R = FutureOr<Object?>, and T <: R by Left Top rule from the subtyping spec.
So, the inferred type of the closure is Future<flatten(S)> = Future<void>.
Then later, when we check return a; with type void, we have T_v = void and flatten(S) = void, and it is not an error. So, the test fails.
@eernstg @leafpetersen Is there a mistake in my calculations? Is this an unexpected interaction between closure return type inference and null safety?

@scheglov Good catch, I agree with your analysis.
This also raises another issue however.  I believe that the change to use futureValueType should also be applied to function literal downwards inference.  In particular, I believe that the line
Otherwise the context type is FutureOr<flatten(T)> where T is the imposed return type.
Should be replaced with
Otherwise the context type is FutureOr<futureValueType(T)> where T is the imposed return type.
with a suitable definition of futureValueType.
@eernstg can you follow up?

@eernstg ping

@eernstg I think the test that @scheglov mentions above is incorrect, can you look into it?

Sorry, don't know why I missed this one. Looking into it now.

Just created https://github.com/dart-lang/language/pull/989 to adjust inference.md. Here is the analysis again:
language/invalid_returns/async_invalid_return_35_test:
import 'dart:async';

FutureOr<Object?> Function(void) f = (void a) async {
  return a;
  //     ^
  // [analyzer] unspecified
  // [cfe] unspecified
};

Rules are here.
Imposed return type schema: FutureOr<Object?>.
Context type: FutureOr<Object?>, so there's no difference here.
Returned types: [void].
Actual returned type: void, also the same.
So the analysis still holds, yielding an inferred return type for the function literal which is Future<void>, and the check on the type of the returned expression is still not an error.
Created https://dart-review.googlesource.com/149163 where the test is updated.

I'm sorry for not being explicit about this, but the test that you reference is just one of the group of tests looked to me as being similar, and exercise function expressions inference and return types validation.
Once I found this, I decided that this is something more serious with tests, and just chosen randomly one test to explain why it did not look right to me. I don't exclude that some of them might fail by a different reason, but random sampling gives me similar tests.
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_53_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_47_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_11_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_05_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_24_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/sync_invalid_return_27_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_41_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_55_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_08_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_58_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_17_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_36_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_52_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_valid_returns_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_03_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_25_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_54_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_04_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_59_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_23_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_37_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_51_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_45_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_32_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_57_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_48_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_20_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_34_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_50_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_33_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_56_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_00_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_35_test
FAILED: dart2analyzer-none release_x64 language/invalid_returns/async_invalid_return_14_test

The change to the spec is needed in order to handle situations like this one:
Future<int>? Function() f = () async => Future<int?>.value(null);

If we use FutureOr<flatten(Future<int>?)> = FutureOr<int?> as the context type then the returned expression is accepted and the return type of the function literal will be Future<int?>. But this means that the initialization of f is an error. We need to find FutureOr<int> as the context type and make the returned expression an error inside the function literal. The underlying principle is that we don't infer some types and then complain that they are wrong.
So this change will be needed in any case.
It's getting late, so I'll look at the long list of tests tomorrow. ;)

About tests/language/invalid_returns/async_valid_returns_test.dart:
There are 12 errors.
STATIC_TYPE_WARNING.RETURN_OF_INVALID_TYPE where the returned expression has type dynamic amounts to 8 of them, and this should not be reported as an error. This follows from the requirement that the type of the returned expression (dynamic) must be assignable to the future value type of the enclosing function (which can be anything, because dynamic is assignable to anything). So this is a consequence of switching to use the future value type rather than flatten for these return statement checks.
The remaining 4 cases return a Future<int> in a function whose future value type is Future<int> (and the return type is Future<Future<int>>). This should be allowed, because T is assignable to T for any T. This is again a consequence of switching to future value type based checks.
So these test failures are all working as intended.

About sync_invalid_return_27_test.dart: This error is legitimate. It is a soundness violation to allow returning the value of an expression of type void with return type Null. Cf. https://github.com/dart-lang/sdk/issues/42093.

CL https://dart-review.googlesource.com/c/sdk/+/149163/ changes the following tests:
tests/language/invalid_returns/async_invalid_return_00_test.dart
tests/language/invalid_returns/async_invalid_return_03_test.dart
tests/language/invalid_returns/async_invalid_return_04_test.dart
tests/language/invalid_returns/async_invalid_return_05_test.dart
tests/language/invalid_returns/async_invalid_return_08_test.dart
tests/language/invalid_returns/async_invalid_return_11_test.dart
tests/language/invalid_returns/async_invalid_return_14_test.dart
tests/language/invalid_returns/async_invalid_return_17_test.dart
tests/language/invalid_returns/async_invalid_return_20_test.dart
tests/language/invalid_returns/async_invalid_return_23_test.dart
tests/language/invalid_returns/async_invalid_return_24_test.dart
tests/language/invalid_returns/async_invalid_return_25_test.dart
tests/language/invalid_returns/async_invalid_return_32_test.dart
tests/language/invalid_returns/async_invalid_return_33_test.dart
tests/language/invalid_returns/async_invalid_return_34_test.dart
tests/language/invalid_returns/async_invalid_return_35_test.dart
tests/language/invalid_returns/async_invalid_return_36_test.dart
tests/language/invalid_returns/async_invalid_return_37_test.dart
tests/language/invalid_returns/async_invalid_return_47_test.dart
tests/language/invalid_returns/async_invalid_return_48_test.dart
tests/language/invalid_returns/async_invalid_return_53_test.dart
tests/language/invalid_returns/async_invalid_return_55_test.dart
tests/language/invalid_returns/async_invalid_return_58_test.dart
tests/language/invalid_returns/async_invalid_return_59_test.dart

The difference is that the expectation to get an error has been removed from those function literals whose inferred return type is different from the type of the variable that it is assigned to, in such a way that the error doesn't arise. The error on the regular functions have not changed.
A couple of variables of type void were changed from having the value null to having some other value, to underscore the fact that it is not guaranteed for an expression of type void to have the value null. A corresponding change was made for a couple of variables of type Future<void>, FutureOr<void>, Future<void>?, etc.
So the problems with the tests were concerned with function literals and their inferred return types, and the remaining test failures look legitimate to me.

I will leave comment for changed tests in the CL that changes them, but there are issues for invalid_returns/async_valid_returns_test.dart that was not changed, so I cannot comment on it.

Return without a value into dynamic in async.

dynamic f() async {
  return;
}

We apply this rule:
It is a compile-time error if $s$ is \code{\RETURN{};},
unless $T_v$
is \VOID, \DYNAMIC, or \code{Null}.

Here T = dynamic, T_v = Object?.
So, T_v is not void, dynamic, or Null.
So, the error.

The same for dynamic? declared return type. The ? does not change anything in analyzer, we treat dynamic as always nullable. So, the same error.

Return void into dynamic in async, lines 285 - 312.

void vv = null;
dynamic async_void_to_dynamic_e() async => vv;

Similar to (1), T = dynamic, T_v = Object?, S = void.
We apply this rule:
It is a compile-time error if $s$ is \code{\RETURN{} $e$;},
$T_v$ is neither \VOID{} nor \DYNAMIC,
and \flatten{S} is \VOID.

So, the error.

Return without a value into dynamic in async.

That's a good catch! I agree on the analysis, the rules imply that it should be flagged as an error. However, I did not consider that case carefully enough, because it seems inconsistent with the treatment of the type dynamic to have this error.
The rule futureValueType(void) = void was introduced exactly in order to ensure that when we have a fire-and-forget async function then the object that is used to complete the returned future should be considered discarded, exactly like it is discarded when the return type is Future<void> (also, the return type void has an additional effect, namely that the caller cannot await the completion of the invocation). So a return type of plain void is treated as an "extended version" of the return type Future<void>.
Similarly, the return type dynamic could be treated as an extended version of the return type Future<dynamic>, in which case we should allow dynamic f() async { return; }.
We would then add an extra rule, futureValueType(dynamic) = dynamic.

The same for dynamic? declared return type.

Maybe, maybe not, we don't actually give void? the same treatment as void (at least, not unless we rely on normalization to eliminate the ?, and normalization isn't applied eagerly everywhere).

Return void into dynamic in async

This would be covered by a new rule futureValueType(dynamic) = dynamic as well.

Thank you, I added the new rule for futureValueType(dynamic) = dynamic and ran bots for the CL that implements new rules for null safety. With your CL for updating tests these tests started to pass.
I also made a small fix to the legacy rules.
Unfortunately it seems this breaks existing code.
For example in analysis_server.
And Flutter.
An example:
// @dart = 2.7
Future<void> start(Future<List<void>> v) async {
  return v;
}

The change that I made to legacy implementation is what the spec says, I think?
CFE does not report any error on this code, just like analyzer used to not report.
Is this my misunderstanding of the spec, or a real bug in our implementation?
What should we do - leave the old implementation, or fix Flutter and other pkg/ code?
I have a feeling that I have already asked about this or similar return type issue.

Considering this example:
// @dart = 2.7
Future<void> start(Future<List<void>> v) async {
  return v;
}

It is true that we have had the rule which requires this error for years (since SDK commit 5d8501a07ea506ed6c88c20502fd224886d51881, Dec 2018), but for a long time we hadn't detected that it wasn't enforced.
So for the pre-null-safety code we will have to consider this as a known bug and continue to omit reporting it, because the fix is a breaking change.
But with null-safety we can take the step to report this kind of error.
In any case, the rule is based on the observation that the following two functions have a very similar overall dataflow, even though they are of course different with respect to the detailed control flow and typing:
void f1() {
  return 3;
}

Future<void> f2() async {
  return 3; // Or `return Future.value(3);`.
}

void main() {
  f1(); // Discard 3.
  await f2(); // Discard 3.
}

In both cases, a computation yields 3, and it is passed on to a caller. However, the type void in both cases serves to indicate that this object should be discarded, and the rule about "returning non-void to void" for regular (synchronous, non-generator) functions is then mirrored in the async case in the rule that you mention, such that the developer who is working on the body of f2 will be notified if they attempt to discard the value of a non-voidy expression via a return statement.

Thank you for the explanation. I understand this as we never going to report this error in legacy libraries, but will report a similar error in migrated libraries.


SCB message queue

Ideally using some kind of decent library for this kind of thing. Probably doesn't need to be super fancy, but a good testing story would be great.

So far, eventful is looking pretty promising. It appears to be quite mature, and has support for in memory & SQL stores, cached folds over the database, and testing support. I'm rigging up a prototype to exercise the main features before committing...

Last commit in 2017, though :grimacing:

True, true. That might be a sign that it's basically done, though that feels a bit optimistic.
It's not the only option of course...

...research continues. :-)


introduce github.com/rjtsdl/conform dep

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
One part of the effort for ##3111
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

/approve
/lgtm


Profiler Ingestion for PostgreSQL

Affected module
backend & Ingestion Framework
Describe the bug
when I try to get the sample data PostgreSQL DB. Job started with 5 threads and running continuously.
but not able to get the data.
when I check the logs, I found below information.
{system.py:65} INFO - System metrics not support for postgresql. Skipping processing.
To Reproduce

Expected behavior
I tried the same thing in DEV environments, it is working fine.
Version:

OS: centOS 7
Python version: Python-3.9.16
postgresql14
OpenMetadata version: 0.13.1

Additional context
I have installed pg_stat_statements extension in my PostgreSQL

found the solution


Adding containers has a permissions issue when running from Github Runner.

Is there an existing issue for this?

[X] I have searched the existing issues

Greenfield/Brownfield provisioning
greenfield
Terraform Version
1.81
Module Version
0.1.1
AzureRM Provider Version
3.99.0
Affected Resource(s)/Data Source(s)
azapi_resource
Terraform Configuration Files
module "storage_account_emea" {
  depends_on                    = [azurerm_resource_group.emea]
  source                        = "git::https://github.com/Azure/terraform-azurerm-avm-res-storage-storageaccount.git"
  name                          = lower("*****${local.environment_short}data")
  resource_group_name           = azurerm_resource_group.emea.name
  public_network_access_enabled = true
  is_hns_enabled                = true
  shared_access_key_enabled     = true
  use_nested_nacl               = true
  network_rules = {
    default_action = "Deny"
    bypass         = ["AzureServices"]
    ip_rules       = local.ip_rules
  }
  containers = {
    name = {
      name = "bronze"
    }
  }
  private_endpoints = {
    pe1 = {
      inherit_tags        = true
      location            = azurerm_resource_group.emea.location
      resource_group_name = azurerm_resource_group.emea.name
      subnet_resource_id  = var.peered_vnet_subnet_id
      subresource_name    = ["blob"]
    }
  }

tfvars variables values
Not needed.

Debug Output/Panic Output
╷
│ Error: checking for presence of existing Resource: (ResourceId "/subscriptions/***/resourceGroups/***-******-*-rgrp/providers/Microsoft.Storage/storageAccounts/*****/blobServices/default/containers/bronze" / Api Version "2022-09-01"): ChainedTokenCredential authentication failed
│ GET http://<IP_ADDRESS>/metadata/identity/oauth2/token
│ --------------------------------------------------------------------------------
│ RESPONSE 400 Bad Request
│ --------------------------------------------------------------------------------
│ {
│   "error": "invalid_request",
│   "error_description": "Identity not found"
│ }
│ --------------------------------------------------------------------------------
│
│

Expected Behaviour
It should create the container resource.
However the OIDC user assigned managed identity doesn't seem to be getting passed through to the azapi_resource type.
Actual Behaviour
If the resource exists it can't plan.  If it doesn't exist it plans but doesn't apply. The error is as the logs.
Steps to Reproduce
No response
Important Factoids
No response
References
No response

The provider is trying to auth by MSI.
I got around this by creating an iptables rule to reject all outbound traffic to that IP.

name: iptables block MSI endpoint
run: sudo iptables -I OUTPUT --destination <IP_ADDRESS> -j REJECT

The provider is trying to auth by MSI.
I got around this by creating an iptables rule to reject all outbound traffic to that IP.

name: iptables block MSI endpoint
run: sudo iptables -I OUTPUT --destination <IP_ADDRESS> -j REJECT

Thanks @matt-FFFFFF  - But in my case I am using a managed identity for auth. If i add that task it presents another error which is:
##[debug]Error: reading "Resource: (ResourceId \"/subscriptions/***/resourceGroups/****-rgrp/providers/Microsoft.Storage/storageAccounts/*********data/blobServices/default/containers/bronze\" / Api Version \"2022-09-01\")": ChainedTokenCredential: failed to acquire a token. ##[debug]Attempted credentials: ##[debug]	managed identity timed out ##[debug]	AzureCLICredential: ERROR: Please run 'az login' to setup account. ##[debug] ##[debug] ##[debug]  with module.storage_account_emea.azapi_resource.containers["name"], ##[debug]  on .terraform/modules/storage_account_emea/main.containers.tf line 2, in resource "azapi_resource" "containers": ##[debug]   2: resource "azapi_resource" "containers" { ##[debug] ##[debug]

Oh ok. That's odd. I use UAMI in my test pipelines and that works well.
Are you using self-hosted runners?

Not using self hosted.  Just using Github hosted.

So you're using OIDC not MSI?
In that case my previous recommendation stands. Reject traffic to the metadata IP and configure the providers to use OIDC as per the docs.

@matt-FFFFFF Yes using oidc but its still not working.
I still get this error.
Error: reading "Resource: (ResourceId \"/subscriptions/***/resourceGroups/***-***-***/providers/Microsoft.Storage/storageAccounts/********/blobServices/default/containers/applications-state\" / Api Version \"2022-09-01\")": ChainedTokenCredential: failed to acquire a token.
Happy to jump on a call to have a look next week.
My yaml looks like this:

      # See https://github.com/Azure/terraform-azurerm-avm-res-storage-storageaccount/issues/74
      - name: iptables block MSI endpoint
        run: sudo iptables -I OUTPUT --destination <IP_ADDRESS> -j REJECT

      - name: Terraform Plan
        id: tf-plan
        run: |
          export exitcode=0
          terraform plan -detailed-exitcode -no-color -out ${{ inputs.tfvars-filename }}.tfplan -var-file="${{ inputs.subscription }}/${{ inputs.tfvars-filename }}.tfvars" || export exitcode=$?

          echo "exitcode=$exitcode" >> $GITHUB_OUTPUT

          if [ $exitcode -eq 1 ]; then
            echo Terraform Plan Failed!
            exit 1
          else
            exit 0
          fi

Hi this isn't an issue with the module, it's the way the provider is trying to authenticate.
GET http://<IP_ADDRESS>/metadata/identity/oauth2/token
The request the MSI endpoint is failing.
You wither need to block access to this using iptables:
sudo iptables -I OUTPUT --destination <IP_ADDRESS> -j REJECT

or disable MSI auth in the provider

Hello,
seems I got into the same troubles.
 Error: Failed to retrieve resource

   with azapi_resource.containers["tfstate"],
   on main.containers.tf line 2, in resource "azapi_resource" "containers":
    2: resource "azapi_resource" "containers" {

 reading Resource: (ResourceId
 "/subscriptions/xxx/resourceGroups/xxx-rg/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default/containers/tfstate"
 / Api Version "2023-01-01"): ChainedTokenCredential: failed to acquire a
 token.
 Attempted credentials:
 	managed identity timed out
 	AzureCLICredential: Azure CLI not found on path

I use OIDC on self hosted GH runners with provider configured as
provider "azapi" {
  environment = "public"
  tenant_id = "${local.tenant_id}"
  subscription_id  = "${local.subscription_id}"
  client_id  = "${local.client_id}"
  use_oidc = true
  use_msi  = false
  skip_provider_registration = true
}

But I can't make it working.
Any hint would be appreciated.
Thanks

Can you try adding the iptables step?
You might need to use sudo..
#RR

@matt-FFFFFF
all seems to fine after all. No need to create any iptables rule after provider was correctly setup. thanks

To help others can you post your provider config here?

It is exactly the same as I have provided in my first comment. Problem was rather with the GH workflow itself. But for the sake of completeness I provide all azure providers together running with OIDC.
generate "azure_provider" {
  path      = "_azure_provider.tf"
  if_exists = "overwrite_terragrunt"
  contents  = <<EOF
provider "azurerm" {
  features {}
  environment     = "public"

  tenant_id       = "${local.tenant_id}"
  subscription_id = "${local.subscription_id}"
  client_id       = "${local.client_id}"
  use_oidc        = true

  storage_use_azuread        = true
  skip_provider_registration = true
}

provider "azapi" {
  environment     = "public"

  tenant_id       = "${local.tenant_id}"
  subscription_id = "${local.subscription_id~}"
  client_id       = "${local.client_id}"
  use_oidc        = true
  use_msi         = false

  skip_provider_registration = true
}

provider "azuread" {
  environment     = "public"

  tenant_id       = "${local.tenant_id}"
  client_id       = "${local.client_id}"
  use_oidc        = true
}
EOF
}

generate "provider_versions" {
  path      = "provider_versions_override.tf"
  if_exists = "overwrite"
  contents  = <<EOF
terraform {
  required_providers {
    azapi = {
      source = "azure/azapi"
    }
  }
}
EOF
}

generate "backend" {
  path      = "_backend.tf"
  if_exists = "overwrite_terragrunt"
  contents  = <<EOT
terraform {
  backend "azurerm" {
    use_azuread_auth = true

    environment     = "public"
    tenant_id       = "${local.tenant_id}"
    subscription_id = "${local.infra_subscription_id}"
    client_id       = "${local.client_id}"
    use_oidc        = true

    resource_group_name  = "${local.backend_resource_group_name}"
    storage_account_name = "${local.backend_storage_account_name}"
    container_name       = "tfstate"
    key                  = "${path_relative_to_include()}/terraform.tfstate"
  }
}
EOT
}

Mine is now working since I added:
provider "azapi" {
use_oidc = true
}
I had the provider for azurerm but was missing the azapi provider with the oidc flag.

Thanks - we will consider this resolved but please let us know if this is not the case #RR


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-23-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1726

Questions ?
Please refer to the Backport tool documentation


Mar weight

This PR contains the function to generate the weight for metal artifact reduction, along with a function to segment an image with Otsu's method.
Function interfaces:
MAR weight:

Otsu's method

Both the MAR weight and Otsu's method have been tested on two datasets (MAR dataset, AutoInjector).
To test:

checkout branch mar_weight, and build mbirjax.
Go to mbirjax_applications and checkout branch mar_weight.
Run demo_nsi_mar.py. This script takes about 5 minutes to run on Gilbreth.

I tried to run the test scripts, but got an error.

It seems that you are running the program on the front end of Gilbreth (gilbreth-fe00).
You would need to reserve a computation node:
sinteractive -A standby --time 4:00:00 -n 64 -N 1 --gpus-per-node=1
Then you may run the program on the node that you reserved.

This ran fine, so I'm going to accept the PR to prerelease.
We can discuss it tomorrow and see if it is ready for integration into the main branch.


Add optional share and print buttons to BrowsePage and AnswerPage

This change adds the ability for Wagtail editors to optionally include our social media module at the top of BrowsePages  (edit: and AnswerPages), which adds buttons to share and print the page.
Screenshots
BrowsePage
The new checkbox appears on the main content tab in Wagtail like this:

The buttons look like this:

Desktop
Mobile

AnswerPage
In Wagtail:

Rendered:

Desktop
Mobile

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code follows the standards laid out in the CFPB development guidelines

AnswerPage looks good to me! :tada:

Thanks @anselmbradford. That's a good question about the period. @sonnakim any thoughts on this? See right side of very first image above.

(IMO it should include a period because it's a complete sentence. But then again, we don't use a period in our block helper text example in the DS: https://cfpb.github.io/design-system/components/helper-text#types :/ Hmm.)

@chosak Either is fine with me. We're definitely mixed on the period vs. no period approach, so if Ans & Jenn prefer a period, then 👍  I'm more concerned that no one will see it at all, but it sounds like there's not much we can do,

Thanks @huetingj @sonnakim! Due to overwhelming preference I will add the period back:


Fixed #30457 -- Doc'd TestCase on_commit hook behaviour and solution to trigger

https://code.djangoproject.com/ticket/30457

Any thoughts about actually adding the method to TestCase instead of documenting a piece of code that should be copy-pasted in every project?

I've created an alternate PR, #12944, that addresses both of @charettes 's concerns here: it directly adds a method to TestCase, and this runs the callbacks on exit rather than immediately.

Superseded by #12944.


Getting multiple errors when previewing new project

So I'm new to angular and NativeScript programming, but I already have experience in programming. I wanted to dive into webprogramming, but keep running into errors. I tried to create a new Angular NativeScript project with:
ng new --collection=@nativescript/schematics helloworld2 --shared
The dependencies are a bit wrong atm (you can also see it in #279 and #280 so I removed @angular/http and changed @nativescript/schematics from 2.0.0 to 9.0.0 in the package.json file. And while ng serve works, as soon as I try tns run ios or tns preview my build fails with this massive error log, which I have no idea about what it means.
Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.

options[0] misses the property 'patterns'. Should be:
[non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
options[1] misses the property 'patterns'. Should be:
[non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
options[2] misses the property 'patterns'. Should be:
[non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
at validate (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/schema-utils/dist/validate.js:96:11)
at new CopyPlugin (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/copy-webpack-plugin/dist/index.js:24:30)
at module.exports (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/webpack.config.js:304:13)
at handleFunction (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/prepareOptions.js:23:13)
at prepareOptions (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/prepareOptions.js:9:5)
at requireConfig (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/convert-argv.js:136:14)
at /Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/convert-argv.js:142:17
at Array.forEach ()
at module.exports (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/convert-argv.js:140:15)
at /Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/cli.js:241:39
at Object.parse (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/node_modules/yargs/yargs.js:567:18)
at /Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/cli.js:219:8
at Object. (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack-cli/bin/cli.js:538:3)
at Module._compile (internal/modules/cjs/loader.js:1256:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)
at Module.load (internal/modules/cjs/loader.js:1105:32)
at Function.Module._load (internal/modules/cjs/loader.js:967:14)
at Module.require (internal/modules/cjs/loader.js:1145:19)
at require (internal/modules/cjs/helpers.js:75:18)
at Object. (/Users/marco/Documents/Programmieren/02_Angular/helloworld2/node_modules/webpack/bin/webpack.js:156:2)
at Module._compile (internal/modules/cjs/loader.js:1256:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10)
at Module.load (internal/modules/cjs/loader.js:1105:32)
at Function.Module._load (internal/modules/cjs/loader.js:967:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47

System is a MacBook Pro Late 2013. I hope anyone can help me.

Hi @MarcoNPZ looks like you may be using old versions. Can you try npm i -g @nativescript/schematics - you may also want to npm i -g @angular/cli
Then here's a couple examples if starting fresh (which are already documented) but here for quick reference:
A. Starting a new Angular web project and adding {N} to it afterwards:
ng new workspace
cd workspace
ng add @nativescript/schematics --skipAutoGeneratedComponent

// start apps:
npm run ios
npm run android

B. Starting a new Angular NativeScript shared codebase from the start:
npm i -g @nativescript/schematics
ng new -c=@nativescript/schematics workspace --shared --style=scss
cd workspace

// start apps:
npm run ios
npm run android

If updating existing @nativescript/schematics projects:

Delete webpack.config.js (the updated @nativesript/webpack dependency will regenerate a new correct one using latest webpack plugins). If you had customizations, use git change sets to compare the diff.
Update package.json as follows (at least in part - can use as a guide):

"scripts": {
  "clean": "npx rimraf hooks node_modules package-lock.json platforms",
  "ng": "ng",
  "start": "ng serve",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "e2e": "ng e2e",
  "android": "tns run android --no-hmr",
  "ios": "tns run ios --no-hmr",
  "mobile": "tns run",
  "preview": "tns preview",
  "ngcc": "ngcc --properties es2015 module main --first-only",
  "postinstall": "npm run ngcc"
},
"dependencies": {
  "@angular/animations": "~10.0.0",
  "@angular/common": "~10.0.0",
  "@angular/compiler": "~10.0.0",
  "@angular/core": "~10.0.0",
  "@angular/forms": "~10.0.0",
  "@angular/platform-browser": "~10.0.0",
  "@angular/platform-browser-dynamic": "~10.0.0",
  "@angular/router": "~10.0.0",
  "core-js": "^2.6.9",
  "@nativescript/angular": "~10.0.0",
  "@nativescript/core": "rc",
  "@nativescript/theme": "~2.2.1",
  "reflect-metadata": "~0.1.12",
  "rxjs": "~6.5.5",
  "tslib": "1.10.0",
  "zone.js": "~0.10.2"
},
"devDependencies": {
  "@angular/cli": "~10.0.0",
  "@angular/compiler-cli": "~10.0.0",
  "@angular-devkit/build-angular": "~0.1000.2",
  "@nativescript/tslint-rules": "~0.0.5",
  "@types/jasmine": "~3.5.0",
  "@types/jasminewd2": "~2.0.3",
  "@types/node": "^12.11.1",
  "codelyzer": "^5.1.2",
  "jasmine-core": "~3.5.0",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "~4.4.1",
  "karma-chrome-launcher": "~3.1.0",
  "karma-coverage-istanbul-reporter": "~2.1.0",
  "karma-jasmine": "~3.0.1",
  "karma-jasmine-html-reporter": "^1.4.2",
  "@nativescript/webpack": "~2.0.0",
  "protractor": "~5.4.3",
  "ts-node": "~8.3.0",
  "tslint": "~6.1.0",
  "typescript": "~3.9.0",
  "node-sass": "^4.7.1"
}

Clean your projects with npm run clean if using the clean scripts from the example scripts above.

@NathanWalker Unless it's been updated in the last few days, there is no 9.x release on NPM that doesn't include the "<EMAIL_ADDRESS>and the "@angular/http" dependencies. I tested with a clean dev environment. However, if I pull from the master branch in this repo, everything works fine (possibly sans the Webpack Copy plug-in issue, but I haven't tested that).

It was updated just yesterday and now supports Angular 10.


Linq OfType throw exception

Hello. The following code
var result = session.Query<SubClass>().OfType<BaseClass>().ToList();
throw exception: Object reference not set to an instance of an object.

Can you try doing session.Query<BaseClass>().ToList() instead? Marten wouldn't support OfType() in its Linq support.


Add kubicorn to infra automation

Would the CNCF be interested in adding kubicorn to the landscape diagram as an infrastructure automation solution? We have a logo on our README.md but can provide something a little more subtle if needed.
Cheers

Thanks @kris-nova, love the logo, and this will be included in the upcoming 0.9.8 version!

Yay awesome thank you!

Hi @kris-nova, closing as this update was included in the most recent version https://github.com/cncf/landscape#current-version


[sw] Move check.h to sw/device/lib/testing

This makes it clearer that the CHECK macro is intended only for
non-production code.
This commit also removes an unneeded #include in check.h, and updates
the includes in all files that use the CHECK macro.

@mcy this is as discussed. Happy to rebase as needed, this is not an Urgent PR.

Yeah, I thought you might ask that. No problems from me there.


feat: use sf-plugin-core base class SfCommand (#384)

What does this PR do?
Subclasses all commands to use SfCommand base class
What issues does this PR fix or reference?
W-9880969

@RodEsp Hola! I'm not sure if you can help us here, but when we moved to SfCommand base class in this PR, the disable json flag property stopped working. We are adding json flags to commands in other PR's, so I'm concerned about merge this to master with not-yet-implemented json flags. cc @saracope

what we're seeing:

Sorry for the delayed response @RasPhilCo, I was at TDX last week. Will be taking a look at this today though.


Investigate AU_TFN match

#AU_TFN
ID: 9
It looks like AU_TFN may not have been detected properly.

Actually it is correct.


images folder configurable

Is your feature request related to a problem? Please describe.
Cannot find images in folder and use them with other apps.
Describe the solution you'd like
Please, make images folder configurable. There is a need to browse images in another app. Similarly to PDF, please allow to define exact folder where to store images, under Settings. Currently impossible to find the folder, where images are stored. Not in root or Pictures folder. Even search didn't find.
Describe alternatives you've considered
Manual export even images.
Additional context
Currently even when exporting images, cannot choose a folder. Export is currently exporting to Downloads folder among other files, which is quite annoying. Would be good to configure also that location.
Using Android 11. Newest app itself from Google play.

@edmundlaugasson this wont be done due to Secure Access Storage restrictions. The app data (images, db,...) is stored in the app internal folder. You can choose the export folder for images.
I plan on adding a "sync" feature which would automatically sync images/pdf of documents into a phone folder.
However not sure when this will happen. Those implementations take time and without funding it is quite hard to give so much time to my apps.
Hope you understand

This can be done via same way like currently is PDF folder selection - first time selecting, user will provide access permissions to chosen folder and app remembers it.
Sync could be a workaround of direct saving.
I hope the community will appreciate your app and will contribute in both coding and funding. Making app available in F-droid would help to spread the app and engage more people.
I have programming bachelor students (ca 900) who can be involved. Certainly they are not as experienced as professionals but is an option you can consider. Twice per year, September, January they start to search thesis topic. There would be possible to split large tasks into smaller pieces.

@edmundlaugasson I know making it available on F-droid would help. But i have big concerns about the energy cost of F-droid (building every thing used in your app can take ages). So i prefer to stick with izzy right now.


Update question text

Clarified question to show the amount entered should be weekly
:warning: This application is Continuously Deployed: :warning:

Merged changes are automatically deployed to staging and production.

Make sure you follow the guidance for deployments before you merge.

Check your branch is being deployed in the Release app, after merging.

Changes to start pages are not continuously deployed, and are deployed using a different process.

Trello card: https://trello.com/c/FF0tepv6/3147-benefit-cap-calculator-clarify-amounts-to-be-entered-are-weekly
CHANGE
How much do you or someone in your household get for [Child Tax Credit]?
You need the whole weekly amount before anything is taken off (eg utility bills or loan repayments). You must enter the full amount you get for each benefit.
TO
How much do you or someone in your household get each week for [Child Tax Credit]?
You must enter the full weekly amount before anything is taken off (for example, utility bills or loan repayments).
REASON

Some feedback said that users were confused about whether the amount should be weekly / monthly / yearly. Clarified the question text to confirm that the amount entered should be weekly.

Removed repetition - second sentence in hint text doesn’t add anything. Amended first sentence to include the “You must enter” text from the second sentence, rather than “You need”, to clarify that this is the action the user should take on the calculator.

Style change - “eg” should be “for example”

BENEFITS AFFECTED:
Benefits affected:
Bereavement Allowance
Child Benefit
Child Tax Credit
Employment and Support Allowance
Incapacity Benefit
Income Support
Jobseeker’s Allowance
Maternity Allowance
Severe Disablement Allowance
Widow's Pension
Widowed Mother's Allowance
Widowed Parent's Allowance
Widow's Pension (age related)
Housing Benefit

Can this be merged?

Can this be merged?

Yes. I created this as a draft and it won't let me merge them all as it says I don't have permission.


"Download all" not working with S3 Storage

Package version (if known): v.11.0.0
Describe the bug
When using S3 for storage, the "download all" button doesn't work. The user will get an empty .zip file.
Steps to Reproduce

Setup v.11 of InvenioRDM with S3
Upload a file or files
Click "Download all"
Get empty .zip file
Logs show AttributeError: 'bytes' object has no attribute 'mode'

Expected behavior
User gets a zip file with the files for the given record.
Additional context
Looking into the issue a little show that there is a conflict between between fsspec (invenio-s3 uses s3fs which uses fsspec) and zipstream. Zipstream does a comparison here which is performing this comparison from fsspec and is causing the AttributeError above because it's trying to use .mode on an empty bytes object b''.

Thanks for the additional context, this was useful. As a note in case someone checks this again, the fsspec function that is problematic is not __hash__ but __eq__ where other.mode == "rb" is performed, but in principle one cannot expect to only compare an AbstractBufferedFile with other objects that also have a mode.
In addition, I think that the code in ffspec should be changed: the comparison now does
 if data != b'' and arcname[-1] in PATH_SEPARATORS:
    raise ValueError("Can't store data as a directory")

to avoid that non-empty data is set as content of a folder (i.e. an arcane ending with a slash).
However, this check is correct if data is bytes (the lines above convert strings and byte arrays to bytes).
But if data is just an iterator, as allowed by the docstring:

data can be bytes, a string (encoded to bytes using utf-8), or any object that supports the iterator protocol

one does not want to start iterating on it to discover if it's data.
I think that if data is not bytes, one should just assume that it might have some content, and raise the warning. I think therefore that the problem can be fixed by changing the code above with
if arcname[-1] in PATH_SEPARATORS and (not isinstance(b, bytes) or data != b''):
    raise ValueError("Can't store data as a directory")

My colleague @liotf tested this change in zipstream-ng and indeed this fixes this issue in InvenioRDM v11.
I will make now a PR to fsspec (I'll probably also open anyway an issue also with fsspec for the __eq__ function).
Once their PR is merged, one should update the version of the dependencies to use the version with the fix.

"Download all" is working for our S3 install on v12b2. I believe this change https://github.com/inveniosoftware/invenio-records-resources/commit/8821a7042a116a772917fcfaf52df10c09cd962c fixed this for S3. I'm going to leave this issue open in case others want to reproduce the fix or if there is a reason to wait for fsspec to be updated.


fix: Allow localhost to be http

This is in line with Chrome/Firefox, which allow localhost for secure contexts like navigator.credentials.
Without this it's gooing to be much harder to test.
Test itself is stolen from the line below.

Closed in favor of https://github.com/apowers313/fido2-lib/pull/19


update golangci lint

What type of PR is this?

What this PR does / why we need it:
golangci lint has so many tools, by default all of them are enabled. Here we need to diable all and enable those we need explicitly
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/retest

/lgtm


Feature/new data model

Implement the new data model. Lots of new terms which are being harmonised to openDS from ABCD and DWC.
Includes:

Combine digital specimen with the associated digitalMedioObjects
Fix the physicalSpecimenId to include SourceSystemId
Add organisation to digitalMediaObject

Know issues:

Add typeStatus to ABCD(EFG) https://naturalis.atlassian.net/browse/DD-692
Fix topicDiscipline calculation https://naturalis.atlassian.net/browse/DD-693
Fix multiple agents (Agent Object???) https://naturalis.atlassian.net/browse/DD-694

Will also at some point go over all ABCD(EFG) terms and see if we missed any that could be mapped.
Will also at some point go over all DWC terms and see if we missed any

Duplication will remain an issue. The main reason there is duplication is to keep all Terms separate. This helps the overview and allows the implementation of custom logic for terms. The duplication is minimal, a single line per term. However as we have a lot of terms it does add up


[MODPATBLK-77] Add support for ITEM_AGED_TO_LOST events

Resolves MODPATBLK-77.

INFO: lint-raml: Using lint-raml version: 1.4.5
INFO: lint-raml: Investigating and determining configuration: mod-patron-blocks/ramls
INFO: lint-raml-schema: Assessing schema files (https://dev.folio.org/guides/describe-schema/):
INFO: lint-raml-schema: Found 20 JSON schema files under directory './ramls'
ERROR: lint-raml-schema: loan-policy.json: Missing top-level "description".
ERROR: lint-raml-schema: loan-policy.json: Missing "description" for: description, holds, loanable, loansPolicy, name, pages, recalls, renewalsPolicy, requestManagement
ERROR: lint-raml-schema: period.json: Missing top-level "description".
INFO: lint-raml: Not assessing RAML/Schema or examples against schema, as per option '--json-only'.
ERROR: lint-raml: There were processing errors. See list above.

Note: When those ERRORs are fixed, then any INFO and WARNING messages will be gone too. See Jenkins "Artifacts" tab for LintRamlSchemaReport.

INFO: lint-raml: Using lint-raml version: 1.4.5
INFO: lint-raml: Investigating and determining configuration: mod-patron-blocks/ramls
INFO: lint-raml-schema: Assessing schema files (https://dev.folio.org/guides/describe-schema/):
INFO: lint-raml-schema: Found 20 JSON schema files under directory './ramls'
ERROR: lint-raml-schema: loan-policy.json: Missing top-level "description".
ERROR: lint-raml-schema: loan-policy.json: Missing "description" for: description, holds, loanable, loansPolicy, name, pages, recalls, renewalsPolicy, requestManagement
ERROR: lint-raml-schema: period.json: Missing top-level "description".
INFO: lint-raml: Not assessing RAML/Schema or examples against schema, as per option '--json-only'.
ERROR: lint-raml: There were processing errors. See list above.

Note: When those ERRORs are fixed, then any INFO and WARNING messages will be gone too. See Jenkins "Artifacts" tab for LintRamlSchemaReport.

INFO: lint-raml: Using lint-raml version: 1.4.5
INFO: lint-raml: Investigating and determining configuration: mod-patron-blocks/ramls
INFO: lint-raml-schema: Assessing schema files (https://dev.folio.org/guides/describe-schema/):
INFO: lint-raml-schema: Found 20 JSON schema files under directory './ramls'
ERROR: lint-raml-schema: loan-policy.json: Missing top-level "description".
ERROR: lint-raml-schema: loan-policy.json: Missing "description" for: description, holds, loanable, loansPolicy, name, pages, recalls, renewalsPolicy, requestManagement
ERROR: lint-raml-schema: period.json: Missing top-level "description".
INFO: lint-raml: Not assessing RAML/Schema or examples against schema, as per option '--json-only'.
ERROR: lint-raml: There were processing errors. See list above.

Note: When those ERRORs are fixed, then any INFO and WARNING messages will be gone too. See Jenkins "Artifacts" tab for LintRamlSchemaReport.


Allow scaling VM to a service offering having different storage tags

Description
This PR addresses https://github.com/apache/cloudstack/issues/5512

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)
[X] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[X] Minor

Screenshots (if appropriate):
How Has This Been Tested?

Test 1
With the global setting - match.storage.pool.tags.with.disk.offering set to true, scaling a VM to an offering with a different storage tag isn't possible.
Fails with the following exception (tried via cmk):
(localcloud) 🐱 > scale virtualmachine id=ce2897f9-90c0-46de-b3b5-0478175c8d0f serviceofferingid=d5b68cac-415d-4343-bef2-36b4b9787abf
{
  "accountid": "138951c3-8e39-11ec-a631-1e00fb00013b",
  "cmd": "org.apache.cloudstack.api.command.admin.vm.ScaleVMCmdByAdmin",
  "completed": "2022-02-15T09:20:06+0000",
  "created": "2022-02-15T09:20:06+0000",
  "jobid": "faa4faf1-83c5-4927-b135-89431c110782",
  "jobprocstatus": 0,
  "jobresult": {
    "errorcode": 431,
    "errortext": "Unable to upgrade virtual machine; the current service offering  should have tags as subset of the new service offering tags. Current service offering tags: [pool2]; new service offering tags: [pool1]"
  },
  "jobresultcode": 530,
  "jobresulttype": "object",
  "jobstatus": 2,
  "userid": "138a5a9a-8e39-11ec-a631-1e00fb00013b"
}
🙈 Error: async API failed for job faa4faf1-83c5-4927-b135-89431c110782

Also, the UI doesn't list the compute offering:

Test 2
With the global setting - match.storage.pool.tags.with.disk.offering set to false, scaling a VM to an offering with a different storage tag is possible with the automigrate option set to true. The UI also displays the other compute offerings - those with different storage tags, during scale operation:

Successfully scaled the VM & migrated the volume to the appropriate pool

@blueorangutan package

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

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15.  I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2615

@blueorangutan package

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

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 2619

@blueorangutan package

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

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

Trillian test result (tid-3349)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 32791 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5996-t3349-kvm-centos7.zip
Smoke tests completed. 91 look OK, 1 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_nic
Error
134.06
test_nic.py

@Pearl1594
did you test with 4.16 or 4.17 ?
I faced an issue when I tested this PR in 4.17 by following steps
(1) create a service offering with storage tag
(2) update storage tag of pool to same tag
(3) scale vm to new service offering, works
(4) change global setting to false, when scale vm to default "Small Instance". got an exception: "The new disk offering requires that a size be specified."
I think it is caused by @harikrishna-patnala 's PR #5008

I had tested it with mai - but using non customized offering.

Yes @weizhouapache, you are correct. And @Pearl1594 's last commit will fix that issue of "The new disk offering requires that a size be specified."

@blueorangutan package

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2655

@blueorangutan test

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

Yes @weizhouapache, you are correct. And @Pearl1594 's last commit will fix that issue of "The new disk offering requires that a size be specified."

@harikrishna-patnala  thanks. that's great.
@Pearl1594 thanks for the fix

Trillian test result (tid-3386)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31130 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5996-t3386-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File


New post

Docs Build status updates of commit 207a60f:
:warning: Validation status: warnings

File
Status
Preview URL
Details

documentation/blog/MS-OFFINTBLOGLP/348a39fc-9110-4157-aa71-9ec85fc57ae3.md
:warning:Warning

Details

documentation/blog/MS-OFFINTBLOGLP/48299d2a-b5f9-498e-9c73-614d6dea6276.md
:warning:Warning

Details

documentation/blog/MS-OFFINTBLOGLP/712c6f51-d2a3-4333-a44c-1588cde13fb7.md
:warning:Warning

Details

documentation/blog/MS-OFFINTBLOGLP/toc.yml
:white_check_mark:Succeeded

documentation/blog/MS-OFFINTBLOGLP/348a39fc-9110-4157-aa71-9ec85fc57ae3.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

documentation/blog/MS-OFFINTBLOGLP/48299d2a-b5f9-498e-9c73-614d6dea6276.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

documentation/blog/MS-OFFINTBLOGLP/712c6f51-d2a3-4333-a44c-1588cde13fb7.md

[Warning] Author openspecs-office cannot be recognized in GitHub.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fix Azure blob docs

We also need to describe the environment variables involved, e.g. Azure requires AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY, probably AWS needs ones too?
--cloud-url parameter name doesn't seem to be required: pulumi login azblob://state works too. Should we remove it from the call?

We also need to describe the environment variables involved, e.g. Azure requires AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY, probably AWS needs ones too?

Want to submit a separate PR?

--cloud-url parameter name doesn't seem to be required: pulumi login azblob://state works too. Should we remove it from the call?

A paragraph or so below says:

You may omit --cloud-url or -c when logging in to a remote backend and just
use pulumi login s3://my-pulumi-state-bucket.


[Bug]: Sanitise error messages on toast alerts

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Remove the error type(UncaughtPromiseRejection, ReferenceErrror, TypeError, etc...) from all error messages displayed on toast alerts.
Steps To Reproduce

Drag and drop a button
Select onClick action to Navigate To
Specify an invalid URL
Click the button and notice the error type(UncaughtPromiseRejection) displayed on the toast alert

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Cloud

assuming 10% of users who face an error experience this
Stats

Stat
Values

Reach
530

Effort (months)
0.5


Propose design for listing objects and using regular expressions in tests

What type of PR is this?
/kind kep
What this PR does / why we need it:
This proposes a design to support listing objects and regular expressions in tests.
This will allow us to write more tests, like the one described in #374.
Does this PR introduce a user-facing change?:

NONE

Per discussion with @orsenthil and @gerred, I'm going to drop the regex bit from this. We have some other ideas that I want to explore before settling on something.
Right now, the most promising idea is to allow specifying asserts as .rego files which would be evaluated as rego policies - and using the existing behavior if the assert is .yaml.

Per discussion with @orsenthil and @gerred, I'm going to drop the regex bit from this. We have some other ideas that I want to explore before settling on something.
Right now, the most promising idea is to allow specifying asserts as .rego files which would be evaluated as rego policies - and using the existing behavior if the assert is .yaml.


Added correct last pandas version

Last pandas version is 0.25.3
https://pandas.pydata.org/

Miguel, thanks.
Maybe it's a secret pandas release :)


task 2 tan(x) function

How did you guys solve the issue of getting the solution for 90, 270, -90, -270, etc. degrees for the solution of tan(x) function. This solution is not right. How you are dealing with it?

@s4il3sh I root of tan(X) is pi/2 and that of tanh(x) is 0, so you can chose intervals based on these facts.

yes. i chose the interval based on that but the point is, the rootfinding functions throwing out the roots that have infinite values.


Wrong token in ProgressBar helperText

Describe the bug
HelperText in ProgressBar component is using a wrong token for font-family property.
Expected behavior
Change fontFamily token to helperTextFontFamily token.
Screenshots


Why aren't there new releases?

It seems that library is more or less in active developent (or maintenance). There are new commits occurs regularly. Though the last release (0.9.6) was in 2017. I'm new to the library and don't understand which version should I use in 2019? Thanks.

You should use the latest one on maven.
This is kind of a simple library. We don’t really have problems we fee need to be solved. The main feature is the types themselves: Bijection, Injection and Conversion and how they compose with each other and Function1.
There is also a library of useful instances but most users will make the ones relevant to their situation in their own code base.
If you see an issue, please file it but this library was started about 8 years ago and it basically just works now so it doesn’t need many changes.

Ok, I got it.


Add output_filename support

Add this once it's in a released Packer version, so image-$semester.ova files are made automatically.
https://github.com/hashicorp/packer/pull/9174

We probably should have done this earlier, but this will be a convenient time to add min_packer_version as well: https://www.packer.io/docs/templates/#min_packer_version


Equality between collections

Override equals in the immutable hierarchy to compare the collections’ elements.

This introduces a change compared to the current collections. Indeed, the current collections always compare their elements, even mutable collections:
scala> List(1, 2, 3) == Vector(1, 2, 3)
res0: Boolean = true

scala> List(1, 2, 3) == collection.mutable.ListBuffer(1, 2, 3)
res1: Boolean = true

I think it would be better to compare the elements only in the case of immutable collections.
To achieve this change, I introduced an immutable hierarchy (a base immutable.Iterable trait, etc.) that is not shared with mutable collections. The main drawback is that now we have collection.Iterable and collection.immutable.Iterable (and same for Seq), which might be confusing. I’d like to find distinct names.

Can you explain why you think this is better?  This seems on the surface to be a step backwards for ease of use.  Scala takes pains to make sure (4L: Any) == (4.0: Any), for instance.  What does this change gain us / what problem does it solve?

I also think we should not do this. Arguments can go both ways whether it's better to do element-wise comparison for all collections or reference-based equality for mutable ones. In the end I prefer the uniformity of the "elementwise everywhere" rule, in particular since there are collection types which can have mutable and immutable instances.
But in any case I believe this is a point where backwards compatibility rules everything else. Changing equality of collections will lead to change in behavior without changing the types. This I believe we must avoid wherever we can, since these are the hardest porting problems to solve.

FWIW, in Python mutable lists are compared element-wise and nobody has a problem with it. If anyone wants reference equality, it's available using is (eq in Scala) just like it is for every other value in your program.
In Javascript mutable lists are compared by reference equality and there's a 400-vote stackoverflow question on how to do it "properly", with multiple libraries (lodash, underscore) providing element-by-element equality.
Similarly, Java's mutable arrays' reference-equality generally causes headaches and AFAICT people don't like it (http://stackoverflow.com/questions/8777257/equals-vs-arrays-equals-in-java)


Internal link from rich text editor rendering wrong URL

Describe the issue you're facing
I am using the internal link inside a rich text editor and rendering it using renderRichText function. But the anchor link are using the wrong URL in the href. Let's say my contact page has URL /contact and slug of contact. Then the anchor link is just using contact as URL instead of /contact.

"nuxt": "^3.6.5"
"@storyblok/nuxt": "^5.6.2"

Reproduction
--
Steps to reproduce
No response
System Info
System:
    OS: macOS 14.2.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 138.73 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.17.0 - ~/.nvm/versions/node/v18.17.0/bin/node
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.0/bin/npm
  Browsers:
    Chrome: 122.0.6261.57

Used Package Manager
npm
Error logs (Optional)
No response
Validations

[X] Follow our Code of Conduct

Hi @mlalitthapa, thanks for reporting your issue. The renderRichText function is coming from the JS client, so let me redirect this issue to them to check if it's a known issue being worked or if we shall report it at https://github.com/storyblok/storyblok-js-client instead 🙏


[Zuul_Sync] Sync_201904230000_modified_by_theopenlab-ci

Need to update config

The zuul.yaml in env has been changed to:
      - containerd/containerd:
          exclude-unprotected-branches: false
      - envoyproxy/envoy:
          exclude-unprotected-branches: true


get_blob not returning similar version blob as the properties provided

Package Name:  azure.storage.blob
Package Version: 12.14.1
Operating System: linux
Python Version: 3.10.8

Describe the bug
When using the get_blob_client function of the container client, if you provide blob properties which include a version number. It does not return the blob of that version but instead the latest version of that blob.
To Reproduce
Steps to reproduce the behavior:

Make a storage account with 1 blob that has two versions.
Run the following

blobs = container_client.list_blobs(include=["versions"])
for blob in blobs:
    print(blob)
    blob_client = container_client.get_blob_client(blob)
    print(blob_client.get_blob_properties())

Expected behavior
The blob object that is returned has the same version ID as the properties that was provided.

Thank you for the feedback @AWendland-CryptoCompare . We will investigate and get back to you asap.

Hi @AWendland-CryptoCompare Alex, the get_blob_client method does not extract the version_id from the provided properties and pass it into the newBlobClient. We only extract the name. To use the version, you will need to provide the version_id property to whichever operation you need to perform on the blob, get_blob_properties in your sample. Here is what that looks like in your sample:
blobs = container_client.list_blobs(include=["versions"])
for blob in blobs:
    print(blob)
    blob_client = container_client.get_blob_client(blob)
    print(blob_client.get_blob_properties(version_id=blob.version_id))

Hi Jacob, thanks for clearing this up. Just to check, if I were to run.
blobs = container_client.list_blobs(include=["versions"])
for blob in blobs:
    if not (blob.is_current_version or blob.version_id is None):
        container_client.delete_blob(blob)

This would delete the top level blob instead of the blob of that given version?
Would it be possible to make this a feature request? I personally find this behaviour a little counter-intuitive.

Hi @AWendland-CryptoCompare Alex, you are correct that that code snippet would delete the root blob and not the specific version. To delete the version, you would still need to pass version_id=blob.version_id to delete_blob. I do agree that this does not seem very intuitive. Let me chat with the team and see what we can do about making this better.
I see two feature requests here. Both of which would help to make this more intuitive and doing both would provide the best experience.

Operations that accept a BlobProperties input could read the version from the properties and operate on that version.
We could add version_id as a client constructor parameter, like we do for snapshot and all operations with that client would be performed on that version. In this case ContainerClient.get_blob_client could also take a version_id to return a BlobClient that points the right version. This would be very similar to how we handle snapshot today which is a similar concept to version.

Hi Jacob, thank you for getting back to me. I agree with you on all accounts, please let me know how feasible these would be and the outcome of your discussion. Thank you for being so helpful.

Hi, this feature request was completed as part of STG90. Thanks for your suggestion, and with that I will close the issue.


Feat: Updating "Contact Us" page and adding an API for the "Contact Us" button to work.

Describe the feature
I'd implement a google sheet where the user's contact us queries would be stored when they would be submitted from the application. The google sheet would be accessable via a RESTful API which I'd create in order to connect it with the application and send the user's queries through this API. I'd also create new blocks in the same page, which would include:

an email block, for taking the user's email
a timestamp, for taking the timestamp of the query.
a name block, for taking the user's name.

Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'23 contributor
[X] I want to work on this issue

Go Ahead @jaivsh


fix typo in filename

Thank you for this fix!

The package is currently in a broken state as I have not finished a refactoring I started two years ago. I will try to get a new release out by the end of the week.


ipv6 is being used on a client machine when not supported

Version and Runtime
Version: v12.11.1
Commit: 6fbe391628eeeae1adf39522a55078797e6e7f2e
Runtime: go1.20.8 windows/amd64
Date: 2023-10-02T09:05:14Z+0000
Expected Behaviour
attack to work
Actual Behaviour
Errors related to IPv6.
>vegeta report caddy.bin
Requests      [total, rate, throughput]         801687, 26706.74, 19.04
Duration      [total, attack, wait]             30.153s, 30.018s, 134.511ms
Latencies     [min, mean, 50, 90, 95, 99, max]  29.999ms, 165.779ms, 171.123ms, 245.474ms, 281.241ms, 583.789ms, 1.44s
Bytes In      [total, mean]                     661822, 0.83
Bytes Out     [total, mean]                     0, 0.00
Success       [ratio]                           0.07%
Status Codes  [code:count]                      0:801113  200:574
Error Set:
Get "https://is.xivup.com/v2indexdata": dial tcp <IP_ADDRESS>:0->[2600:3c00::f03c:92ff:fef2:8edf]:443: connectex: A socket operation was attempted to an unreachable network.

Steps to Reproduce
host.txt:
GET https://is.xivup.com/v2indexdata
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Referer: https://is.xivup.com/v2
Sec-Ch-Ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

command: cat host.txt | vegeta attack -workers 1000 -rate 0 -max-workers 6000 -http2=false -keepalive=false -duration=30s

Additional Context
I'm on a Windows 10 machine that does not have an IPv6 internet connection.  The host I'm trying to connect to advertises both A and AAAA records.  It seems Vegeta is picking IPv6 network address much of the time, which results in errors.
I also downgraded to v12.11.0 and the above problem went away.  Though, I now get a crash 50% of the time, which looks exactly like https://github.com/tsenart/vegeta/issues/649.  https://github.com/tsenart/vegeta/commit/6fbe391628eeeae1adf39522a55078797e6e7f2e seems to have fixed the crashing if the order of IP addresses come in different orders, but it seems Vegeta will cache only the IPv6 address in some cases, which causes near 100% error rate.

im having the same issue your suggestion of downgrading works for me thanks

Released https://github.com/tsenart/vegeta/releases/tag/v12.11.2

Whoops, this one https://github.com/tsenart/vegeta/releases/tag/v12.11.3


Create Seaport analysis dashboard on dune

https://dune.com/Marcov/opensea-seaport
We can see basic information from here!
We'll create specialized query if necessary

Want to know what token types of transactions are popular
e.g ERC721 <=> ERC721 or ERC721 <=> Native token

Hey seaport supports many types of trade.
It is not good idea to keep this general issue.
Instead, we can create very specify issue like "query how many % is by Kaguraswap in all Seaport transaction"
So let's close this isseu.


Polish App

I have lately creating crude but workable features, need to re-design/refactor app

creating new features or expanding existing features is next on the list


Review collaboration guidelines.

After implementing previous tasks from the milestone we`ll maintain the code style guideline that should be described in the collaboration document.
Contributing file is stored under the cashctrl_api repo. This file is linked in the [Package Development and Contribution](Package Development and Contribution) section in the cashctrl_ledger repo.
This file should be updated with following sections:

Code style rules
Common security rules
Coherence in the code base and docstrings rules
Navigation in large class definitions rules
...

I found below advise by @AlexTheWizardL for working with ChatGPT very helpful.
I suggest to add it to the next version of the collaboration guidelines:

Save these rules and apply to every code you type for me:
[flake8]
max-line-length = 100
ignore = D100,D101,D102,D103,D104,D105,D107,D202,D203,D204,D205,D400,D401,D402,D403,D404,D405,D406,D407,D408,D409,D410,D411,D412,D413,D414,E203,W503
import-order-style = google
docstring-convention = google
exclude = .git,__pycache__,.pytest_cache,*.egg-info


Norway's 12 digits numbers are considered invalid

Imported from Google Code issue #351 created by hadrien.kohl on 2013-09-16T13:13:09.000Z:

What steps will reproduce the problem?

Try to validate the number<PHONE_NUMBER>474825 (or<PHONE_NUMBER>25)
See that it's not valid.

What is the expected output? What do you see instead?

This number is a valid number. The library reports it as an invalid one.

What version of the product are you using? On what operating system?

Both the javascript and java versions (r603) are reporting the number as invalid.

Please provide any additional information below.

According to the Norwegian post and telecommunication authority, the 12 number are defined as follow:
58\d{10}
http://www.npt.no/marked/nummerforvaltning/e.164-nummerplan/8-og-12-sifrede-nummerserier

We don't support M2M numbers. Also see #910.

See:
https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#what-about-m2m-machine-to-machine-numbers


update console docs to be in the open-connectome docs

@kunallillaney can help

@kunallillaney if this is redundant, close it.

great! same question :)
On Thu, Sep 10, 2015 at 3:51 PM, Kunal Lillaney<EMAIL_ADDRESS>wrote:

Closed #81 https://github.com/openconnectome/open-connectome/issues/81.
—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/open-connectome/issues/81#event-406377042
.

--
the glass is all full:  half water, half air.
openconnecto.me, jovo.me, calendar
https://www.google.com/calendar/embed?src=afr9t36kknt629jh4omun20n90%40group.calendar.google.com&ctz=America/New_York

getting pushed. Am with @Aeusman who is wrapping this up. :)

yay!!! thanks @aeusman & @kunallilaney!
On Thu, Sep 10, 2015 at 3:54 PM, Kunal Lillaney<EMAIL_ADDRESS>wrote:

getting pushed. Am with @Aeusman https://github.com/Aeusman who is
wrapping this up. :)
—
Reply to this email directly or view it on GitHub
https://github.com/openconnectome/open-connectome/issues/81#issuecomment-139362857
.

--
the glass is all full:  half water, half air.
openconnecto.me, jovo.me, calendar
https://www.google.com/calendar/embed?src=afr9t36kknt629jh4omun20n90%40group.calendar.google.com&ctz=America/New_York

http://docs.neurodata.io/open-connectome/sphinx/console.html


Deprecate support for docker.elastic.co/elasticsearch/elasticsearch-oss

Since version 7.11.0, there is no more -oss artefact anymore.
This simplifies the code as we don't need to check anymore what is available and what is not.

Is there anything else needed from my side to merge this?

I'd suggest to use 7.17.15 as the latest 7.x version: https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-15

@dadoonet thanks for the suggestion, but default constructor is deprecated and if by any chance there is someone still using it there will be a surprise by using a different image. Users must declare the image to use.

Ha! Indeed. I misread the PR. You actually reverted the change to 7.15. So all good on my end. Thansk for moving forward this PR ;)

Thanks for your contribution, @dadoonet ! Let's discuss via slack or using GH discussions the next steps proposed in the first comment. I think some of them were already addressed.


Docker: tloncorp/vere bails during launch

I have several ships that live inside of Docker volumes. I launch these ships using docker-compose, in combination with Caddy. You can find my entire general workflow here, but the specific docker-compose.yml for one of these ships is:
finmoon:
  image: tloncorp/vere:latest
  restart: always
  ports:
    - "8081:80"
    - "45454:45454/udp"
  entrypoint: /bin/start-urbit
  command: --ames-port=45454
  volumes:
    - littel-possum-finmep-lanteb:/urbit
  networks:
    - web
  logging:
    driver: "local"
  stdin_open: true
  tty: true
  depends_on:
    - caddy

When I attempt to launch this ship (which pre-existed the tloncorp/vere Docker image) from inside of its a volume, the ship repeatedly bails during the boot sequence:
[23:07] [server1.peekabooo.icu ~] $ sudo docker logs web-finmoon-1
~
urbit 1.17
boot: home is /urbit/littel-possum-finmep-lanteb
loom: mapped 2048MB
lite: arvo formula 2a2274c9
lite: core 4bb376f0
lite: final state 4bb376f0
loom: mapped 2048MB
boot: protected loom
live: loaded: MB/461.340.672
boot: installed 351 jets
---------------- playback starting ----------------
pier: replaying events 2461911-2461914
pier: (2461914): play: done
---------------- playback complete ----------------
vere: checking version compatibility
/«arvo»
home: bailing out failed

I tried launching a brand new comet from the same docker-compose.yml and it also bailed:
[23:07] [server1.peekabooo.icu ~] $ sudo docker logs web-comet-1
~
urbit 1.17
boot: home is /urbit/*
loom: mapped 2048MB
lite: arvo formula 2a2274c9
lite: core 4bb376f0
lite: final state 4bb376f0
boot: downloading pill https://bootstrap.urbit.org/urbit-v1.17.pill
boot: mining a comet. May take up to an hour.
 Another thing to note is that the terminal captures my keyboard inputs, but my ship does not. I can type whatever I want and it is completely ignored by the ship. Detaching using ctrl+z does not kill the container, which I believe it used to do in attached mode.
I can also launch the ship from the volume as follows without crashing:
sudo docker run --rm -p 8080:80 -p 34343:34343/udp --mount type=volume,source=littel-possum-finmep-lanteb,destination=/urbit tloncorp/vere:latest

I have had issues in the past attaching through docker and don't do it anymore: https://github.com/urbit/urbit/issues/4750
It is not a solution, but as a workaround and to narrow down the issue you can try removing stdin_open and tty from the compose file and adding -t to the command and see if the problem persists.

@nodreb-borrus Even without -t, if I remove stdin_open and tty then I can launch the containers successfully.
Didn't notice the previous issue - will close this one as a duplicate.

If I launch the ship using a manual docker command through screen with -it enabled, it launches correctly and I'm able to interact with the ship. This is annoying, as now I cannot both have my ship accessible through Caddy and troubleshoot it at the same time, but at least I can do both.

Issue resolved as of today


Fix HVAC EnergyPlus RL Hosting

Issue #, if available:
Description of changes:
The hosting endpoint was using Python2 by default and failed stochastically. Fixed the issue by updating to use RLEstimator deploy module instead.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Looks good to me.


Mixing local offline-tiles with online-tiles from different provider to the map

Thanks to osmdroid-forge-app demo it was easy to learn how to add offline functionality to my existing osmdroid-based app.
I have offline *map files for spain, germany, greece and the canary islands on my android device.
When i zoom out the map for world-view i can see some contures of the offline maps but the rest of the world remains white. (currently i have no offline-world-map file on the device)
Is it possible to tell osmdroid to use an additional online-source for those tiles that are missing in the offline map files so there are no more white-spaces?

You can, just include a different tile provider chain. See MapTileProviderBasic. Extend or override it (or just copy it) and you can change the order and what tile providers are used

Thanks for fast feedback.
I did as you proposed but MapsForgeTileModuleProvider still takes over all tiles as white without chaining to download provider.
Details:
I created a new MapTileProviderWithForge which combines MapsForgeTileProvider and MapTileProviderBasic.
I put MapsForgeTileModuleProvider just before MapTileDownloader that does osm-mapnik download
Next I have to find out how to tell MapsForge to chain to next provider, if there is no data for current tile.
I keep this ticket updated to report progress.....

I think to have to tell mapsforge to return an null image if there's no data available instead of an empty white tile. That would probably solve the problem

I'm pretty sure the correct answer is to tell forge to return null if there's no data in the rendered image. then you're good to go. Also, render the background as transparent may help, otherwise you'll get all kinds of jagged edges. Reopen if there's any other questions but you're at the limit of my knowledge. @MKergall may be able to help too

after adding world.map to my offline tiles the map does not look ugly at the borders of the map any more. so on my side there is no more need to merege.
Thanks for support


No documentation?

Is there any documentation for flzma2, e.g. max dictionary size, fast bytes, cycles, compression levels etc.? I've been wading through the source to look for selectable parameters, saw that dictionary is limited to 1024MB, and apparently there are 3 compression strategies with 10 compression levels each, but I have no idea how to call them. Any help would be much appreciated.

From studying the source and initial trial and error, I've learned that -m0=flzma2:a(0-3) sets compression strategy, dictionary is indeed limited to 1024m (why?!?), fast bytes top out at 273, and matchfinder cycles go up to mc64. Compression levels seem to be set via standard -mx(0-9) switches, analysis levels -myx(0-9) remain original(?), same seems to be the case for literal context, literal position, and position bits. Will study source further for additional parameters to fiddle with.
On a side note: Wow, this thing is fast!!! Minimal memory use and very good compression.
Amazing job, Conor! Thank you for this gift to the world! =)

Thanks for your comments :)
You must be referring to the 7-zip-zstd implementation. Yes there isn't much documentation that I recall. The Fast LZMA2 library documentation combined with the source for the 7-zip interface should cover everything. The 1024 Mb dictionary limit is a legacy of configuration code from Zstandard, which accepts only logarithmic sizes. I have updated the Fast LZMA2 library to fix this, but FL2_DICTSIZE_MAX still limits it to 1024 Mb. This needs to be fixed and tested.

I'm using your excellent library inside the p7zip dev branch (https://github.com/szcnick/p7zip). Had to wrangle with the source a bit, but finally got it to compile on macOS. I am truly amazed at the speed gains and almost laughably low memory requirements for multithreading. Beautiful.

Oh, and yes - the dictionary limit is the only thing holding it back. I'm maxing settings with 1G dictionary on 16 threads here on my machine, and it's barely using 7GB of memory. A dictionary size of 2GB would be perfect to compensate the slightly lower compression ratio (when compared to 1.5GB dictionary in memory-munching "slow" LZMA).

So, just for the fun of it, I compiled again with a modified 2GB dictionary limit (no other modifications). On a 20GB corpus, compression ratio was significantly increased, archive size went from 5.45GB (with 1GB dictionary) to 5.18GB (with 2GB). Compression time went up from 29 to 35 minutes, memory usage from 7GB to 14GB. Will try increasing radix cycles next. :)

Nice :)
In theory LZMA2 only supports a dictionary up to 1.5 Gb, but in practice the decoder can handle more than this. There may be decoders which balk at 2 Gb. I'll try to find out if raising it will cause any trouble.

Thanks, Conor. 👍🏻
With only 16 Gb RAM to test on, memory pressure was too big for extensive testing of the 2 GB dictionary (although decoding with e.g. standard p7zip 16.02 worked flawlessly). Running at 1.5 GB dictionary now (don't know how to set that limit in the source, as it's 2^n defined). Raising match finder cycles did not improve compression, so my max compression command currently looks like this:
7za a -mx -myx -ms1024t -mqs -m0=flzma2:a3:d1536m:fb273:mc64:mt16
Haven't figured out how exactly compression level (x), compression analysis (yx), and compression mode (a) influence each other in flmza2. Your source comments mention 3 compression modes, each with 10 different compression levels, and a plethora of other parameters which appear to be unalterable via command line switches.
While we're at it, what would the absolute fastest compression setting be? I'm currently using
7za a -mx1 -m0=flzma2:a0
(which performs north of 200GB/h, btw) but I have a feeling there's room for further improvement, as CPU load won't nearly reach 100% on that setting, and it's not disk speed bound, either.

The 10 compression levels are made by combining a mode setting with a number of other settings, so there aren't 10 per mode. The problem with levels is the best combination of settings depends on the type of data, so results may not be consistent when comparing 1-10.
Fast compression will probably never compare well with hashing strategies because the algorithm has no advantage on small dictionaries. Also the initial step at depth 0 is single threaded.

Still unclear on some things. Does mode (a0-3) override level (x0-10), or is it the other way around? Does analysis level (yx) have any effect at all? Getting inconclusive results here, so a bit confused.


Remove SwiftyJSON Dependency

What's done in this PR:

Remove completely SwiftyJSON library. This library is 4yrs old and won't compile with Xcode 14.3
Introduce JSONUtility to manage everything what was managed by SwiftyJSON
Introduce codable structs like CryptoData and TestAppSetup

Not every json structure has reflection in dedicated codable structs because I want to keep code as similar as possible in test classes. On the other hand, some of them are too complex to manage as codable, like messages-encoding.json which has various types of expectedValue.

I haven't reviewed this one yet but I noticed that there are still references to SwiftyJSON in the codebase (Xcode project file and Carthage files). Could you remove those please?

I haven't reviewed this one yet but I noticed that there are still references to SwiftyJSON in the codebase (Xcode project file and Carthage files). Could you remove those please?

changed here 575505502d23a8a812b6ecfede6803223ea7e91f

@lukasz-szyszkowski does this resolve https://github.com/ably/ably-cocoa/issues/1668? If so, please can you mark it as doing so, so that when this is merged that issue gets closed?


Add tooltip descriptions to clarify options in task windows

It would be nice to have tooltip descriptors that clarify what certain options in the task windows do.
One example is Aggregate Proteins. It's concise, but vague by itself. Some tooltip information upon hovering over the label/checkbox would help a bunch.

I added tooltips to the protein aggregation settings and the quantification settings, they're very easy to edit and suggestions are welcome

a lot of tooltips added in #1109
please open a new issue (or just put it on slack) regarding new tooltips.
for new tooltip requests, please include a suggested tooltip message.


Add notice about limits for inputsfor aworkflow_dispatch` event

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
I am trying to configure Github Action with more than 10 inputs for a workflow_dispatch event and I am getting the  error:
Invalid workflow file: .github/workflows/create_feature_branch.yml#L1
you may only define up to 10 inputs for a workflow_dispatch event
What changes are you suggesting?
We definitely need to add notice about such limit and increase it
Additional information
No response

@IMKnysh
Thanks so much for opening an issue! I'll triage this for the team to take a look :eyes:

Thanks for opening this issue! You or anyone else is welcome to document this limit. To request an increase to this limit, you can open a discussion in https://github.com/github/feedback/discussions/categories/actions-and-packages-feedback


Create base class for queries

Collection and Granule queries have quite a few parameters (short_name, version, etc) in common. They also have some core functionality that is the same (execute).
We can create a base class for these queries and implement the common parameters between them.
Should be done after Merge #17 and #15 due to high conflict risk. #3 should wait until we are done this change.

Params shared between collections and granule:

Platform
Instrument
Sensor
Updated since
Revision date
Online only
Downloadable
TwoD coordinate system
Provider
Short name
Version
Spatial
Polygon
Bounding Box
Point
Line
Concept id
Entry title
Temporal
Project

See #28 for further work extended base query


*string PrincipalID needs to be nil-guarded

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

*string PrincipalID needs to be nil-guarded

/lgtm


Release Note update for Schema, Fields & Nodes, Rules and Codelists

This PR has conflict because the branch "update-ReleaseNote-Rules-Codelists_Prepare-1-13" was started from an old commit, and the CHANGELOG.md file was significantly changed since that commit.
I'll merge and apply the changes manually, so I'm closing this PR and I will delete the branch "update-ReleaseNote-Rules-Codelists_Prepare-1-13" when I'm done.


Benchmark of casting decimal arrays

Which issue does this PR close?

Closes #2423.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

add to https://github.com/apache/arrow-rs/issues/2388

[05:20:36] 'compile:es2015:umd' errored after 36 s
[05:20:36] Error: gulp-google-closure-compiler: java.util.zip.ZipException: invalid entry CRC (expected 0x4e1f14a4 but got 0xb1e0eb5b)
	at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:410)
	at java.util.zip.ZipInputStream.read(ZipInputStream.java:199)
	at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:143)
	at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:121)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.getBuiltinExterns(AbstractCommandLineRunner.java:500)
	at com.google.javascript.jscomp.CommandLineRunner.createExterns(CommandLineRunner.java:2084)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.doRun(AbstractCommandLineRunner.java:1187)
	at com.google.javascript.jscomp.AbstractCommandLineRunner.run(AbstractCommandLineRunner.java:551)
	at com.google.javascript.jscomp.CommandLineRunner.main(CommandLineRunner.java:2246)
Error writing to stdin of the compiler. write EPIPE

CustomError: gulp-google-closure-compiler: Compilation errors occurred
    at CompilationStream._compilationComplete (/arrow/js/node_modules/google-closure-compiler/lib/gulp/index.js:238:28)
    at /arrow/js/node_modules/google-closure-compiler/lib/gulp/index.js:208:14
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

    at formatError (/arrow/js/node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js:21:10)
    at Gulp.<anonymous> (/arrow/js/node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js:33:15)
    at Gulp.emit (node:events:538:35)
    at Gulp.emit (node:domain:475:12)
    at Object.error (/arrow/js/node_modules/undertaker/lib/helpers/createExtensions.js:61:10)
    at handler (/arrow/js/node_modules/now-and-later/lib/mapSeries.js:47:14)
    at f (/arrow/js/node_modules/once/once.js:25:25)
    at f (/arrow/js/node_modules/once/once.js:25:25)
    at tryCatch (/arrow/js/node_modules/bach/node_modules/async-done/index.js:24:15)
    at done (/arrow/js/node_modules/bach/node_modules/async-done/index.js:40:12)
[05:20:36] 'build:es2015:umd' errored after 2.35 min
[05:20:36] 'build:apache-arrow' errored after 2.35 min
[05:20:36] 'build' errored after 2.37 min
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
1
Error: `docker-compose --file /home/runner/work/arrow-rs/arrow-rs/docker-compose.yml run --rm -e ARCHERY_INTEGRATION_WITH_RUST=1 conda-integration` exited with a non-zero exit code 1, see the process log above.

Ci failed, but it has nothing about this pr

@liukun4515 Any more comments?


sync.RWMutex for concurrent readers?

Would it not make sense to use sync.RWMutex instead of sync.Mutex to allow concurrent read operations (Get, Exists, Len, etc)?

I'd support its addition but I'm not sure it should be default.
It only helps performance when there's high read contention.

In what scenarios is it inferior, that it should not be the default?

For example:
package bench

import "testing"

import "sync"

func bench(mu sync.Locker, b *testing.B) {
	var wg sync.WaitGroup
	for i := 0; i < 4; i++ {
		wg.Add(1)
		go func() {
			defer wg.Done()
			for i := 0; i < b.N; i++ {
				mu.Lock()
				mu.Unlock()
			}
		}()
	}
	wg.Wait()
}

func BenchmarkRWMutex(b *testing.B) {
	bench(&sync.RWMutex{}, b)
}

func BenchmarkMutex(b *testing.B) {
	bench(&sync.Mutex{}, b)
}

BenchmarkRWMutex-4   	10000000	       210 ns/op
BenchmarkMutex-4     	20000000	       114 ns/op
PASS

Added optional support w/ 8409f3dfdf31b33c7cfc9792aaae6fa36baf9984
I'll leave this issue open for a while for arguments to make it default.

Interesting - I'm surprised the penalty for write ops is so high.  If you mix a read and write operation into each loop, it doesn't take much concurrency for perf to flip the other direction though.
Considering the swings in performance, I think you're probably correct in keeping the single-thread winner as default, since the correct choice is entirely workload-dependent.

Go 1.9 features a concurrent access amortised-constant-time map implementation.  It's a lot more complex, but might be worth taking a look at.


Finish typo guides pt-BR [ci skip]

Please, merge for my group start a new revision... Thanks!

Merged https://github.com/yiisoft/yii2/commit/0d5265fbc75b20a3e83e9ca03f6a12ad11421b33. Thanks!


Support React 15

Hi, Thanks for the help but I've moved us straight to 15.x: https://github.com/CassetteRocks/react-infinite-scroller/commit/da17f32f583c2f15c0c7ee62a4a5171b16737106


Create cosmos_sei_installer.sh

This script uses the sei daemon program from version 1.0.2beta to version 1.0.6beta; downloads, builds, installs.
It downloads and installs all necessary tools and programs for the zero linux operating system.
In addition, you can learn some useful commands for seid with the helpsei command.

I don't recommend using scripts like these.


[MAISTRA-430] Add a -version flag and prints the version on startup

This is the same of https://github.com/Maistra/istio-operator/pull/166 but without using Makefile.

lgtm


Added animation to center image when threshold was not reached for dismissal

Hi again,
I had to close my old PR because i accidentially pushed something i didnt intent and i couldnt reopen since i force pushed the branch...
Please take a look at the code, if u have time.
Greetings

Understood, thank you for your PR again, I'll do that soon :)

Perfect! Thank you for the fixes, I will make a release with it soon if everything's fine.