OWLS-87041 - Fix to start namespaces when namespaces are listed in multiple chunks

OWLS-87041 - OKD (Openshift) creates a large number of namespaces and domain is not started when namespaces are listed in multiple chunks. This is caused because the last chunk of namespaces (partial list) overwrites any previous chunks and only namespaces contained in the last chunk are started if they also happen to be part of the operator's target namespaces.
This change collects the namespaces returned in all chunks in a bigger list so that all namespaces are started. Integration test link - https://build.weblogick8s.org:8443/job/weblogic-kubernetes-operator-kind-new/3595/ . There's a single test failure which is unrelated to this change.

I think this is okay... The original code, if it had worked, would have indeed started the namespaces in bunches, but those bunches would have only been submitted milliseconds apart (the time it would take to complete the next list continuation call). Now, they are all submitted at once, but that submission is to put them all into the same asynchronous queue. Basically, if we ever hit a scaling problem where there were too many namespaces then I think that both the original code and Anil's proposed fix would have performed identically.

I think this is okay... The original code, if it had worked, would have indeed started the namespaces in bunches, but those bunches would have only been submitted milliseconds apart (the time it would take to complete the next list continuation call). Now, they are all submitted at once, but that submission is to put them all into the same asynchronous queue. Basically, if we ever hit a scaling problem where there were too many namespaces then I think that both the original code and Anil's proposed fix would have performed identically.

The change does resolve the problem. But I am wondering if it would have any potential scalability issues when there are a lot of namespace to start at the same time. If I understand the code correctly, the original logic starts namespaces in parallel in bunches. The change causes all of the namespaces to be start in parallel at the same time.
[ANIL] My understanding of the original logic was that it was creating the steps to start namespaces in bunches (steps that are intended to be executed in parallel). However all those steps were executed only after the NamespaceListResponse step (and other related steps) finish execution i.e. after all the namespaces have been retrieved in different chunks. We can have short zoom call to sync up and make sure if this matches with your understanding. Thanks.

The change does resolve the problem. But I am wondering if it would have any potential scalability issues when there are a lot of namespace to start at the same time. If I understand the code correctly, the original logic starts namespaces in parallel in bunches. The change causes all of the namespaces to be start in parallel at the same time.
[ANIL] My understanding of the original logic was that it was creating the steps to start namespaces in bunches (steps that are intended to be executed in parallel). However all those steps were executed only after the NamespaceListResponse step (and other related steps) finish execution i.e. after all the namespaces have been retrieved in different chunks. We can have short zoom call to sync up and make sure if this matches with your understanding. Thanks.

My understanding is that a subsequent bunch will not start to be processed until the previous bunch completes. If my understanding is correct, the behavior change will be noticeable.

My understanding is that a subsequent bunch will not start to be processed until the previous bunch completes. If my understanding is correct, the behavior change will be noticeable.

The onSuccess method of NamespaceListResponseStep  returns  doContinueListOrNext next action and the next step (return value of createNextSteps method) is passed as a parameter to doContinueListOrNext.
    public NextAction onSuccess(Packet packet, CallResponse<V1NamespaceList> callResponse) {
      final Set<String> domainNamespaces = getNamespacesToStart(getNames(callResponse.getResult()));
      Namespaces.getFoundDomainNamespaces(packet).addAll(domainNamespaces);

      return doContinueListOrNext(callResponse, packet, createNextSteps(domainNamespaces));
    }

The doContinueListOrNext method reinvokes the listNamespaces call and doesn't return/execute next action (return value of createNextSteps) until continue flag is null (or callResponse is null). The continue flag will be null only when all namespaces have been retrieved and steps to start all those namespaces in parallel have been created.
protected final NextAction doContinueListOrNext(CallResponse<T> callResponse, Packet packet, Step next) {
    String cont = accessContinue(callResponse.getResult());
    if (callResponse != null && cont != null) {
      packet.put(CONTINUE, cont);
      // Since the continue value is present, invoking the original request will return
      // the next window of data.
      return resetRetryStrategyAndReinvokeRequest(packet);
    }
    return doNext(next, packet);
  }

The onSuccess method of NamespaceListResponseStep  returns  doContinueListOrNext next action and the next step (return value of createNextSteps method) is passed as a parameter to doContinueListOrNext.
    public NextAction onSuccess(Packet packet, CallResponse<V1NamespaceList> callResponse) {
      final Set<String> domainNamespaces = getNamespacesToStart(getNames(callResponse.getResult()));
      Namespaces.getFoundDomainNamespaces(packet).addAll(domainNamespaces);

      return doContinueListOrNext(callResponse, packet, createNextSteps(domainNamespaces));
    }

The doContinueListOrNext method reinvokes the listNamespaces call and doesn't return/execute next action (return value of createNextSteps) until continue flag is null (or callResponse is null). The continue flag will be null only when all namespaces have been retrieved and steps to start all those namespaces in parallel have been created.
protected final NextAction doContinueListOrNext(CallResponse<T> callResponse, Packet packet, Step next) {
    String cont = accessContinue(callResponse.getResult());
    if (callResponse != null && cont != null) {
      packet.put(CONTINUE, cont);
      // Since the continue value is present, invoking the original request will return
      // the next window of data.
      return resetRetryStrategyAndReinvokeRequest(packet);
    }
    return doNext(next, packet);
  }

My understanding is that each bunch has a different step to actually start the namespace in the bunch,  and the steps for all of the bunches will be chained together. The problem is that the steps for the bunches are not chained correctly.

My understanding is that each bunch has a different step to actually start the namespace in the bunch,  and the steps for all of the bunches will be chained together. The problem is that the steps for the bunches are not chained correctly.

I am okay with going ahead to get this change in because it does fix a critical issue, and the original logic was not working. We can look into the potential scalability issue in a different task.

I am okay with going ahead to get this change in because it does fix a critical issue, and the original logic was not working. We can look into the potential scalability issue in a different task.

Can you create a task to track the potential scalability issue?

Created OWLS-87091 to track this.

Can you create a task to track the potential scalability issue?

Created OWLS-87091 to track this.


[Enhancement]: Better alerts instead of system alerts for snake_game

Do you want to have the enhancement of existing game ? 😀 Describe yourself..
Game enhancement

Currently uses system alerts

Describe the solution you'd like
Solution steps

Alerts with better UI

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @Roshr2211 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/ assign

Hey @Roshr2211 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


session_timeout = 0 -> Help text incorrect

Regarding System->Access->Settings: Session Timeout.
The help text states that 0 means Never Expire. I don't think this is true. A zero value is treated as no value = default i.e. 240 min.
I would not recommend to allow for being logged in indefinitely so the easy fix is to remove the last part of the help text.

@adschellevis is it true that the MVC does not check session_timeout yet ?

PS: It seems the help text was corrected while working on #1929 which is due to hit in 18.7. :)

@fichtner it seems so, it defaults to 4 hours at the moment, let me fix this.

Super, thanks! ❤


depends_on for aiven_kafka resource is not waiting until full resource creation

I'm getting Service Unavailable errors when trying to create aiven_kafka_connector imediatly after aiven_kafka creation:
resource "aiven_kafka" "kafka" {
  project        = var.aiven_project_name
  # config excluded
}

resource "aiven_kafka_connector" "kafka_connect_connector" {
  project        = var.aiven_project_name
  service_name   = aiven_kafka.kafka.service_name
  # config excluded

  depends_on = [aiven_kafka.kafka]
}

Error:
aiven_kafka.kafka: Still creating... [3m50s elapsed]
aiven_kafka.kafka: Still creating... [4m0s elapsed]
aiven_kafka.kafka: Still creating... [4m10s elapsed]
aiven_kafka.kafka: Creation complete after 4m18s [id=*****]
aiven_kafka_connector.kafka_connect_connector: Creating...
╷
│ Error: 503: {"errors":[{"message":"Service Unavailable","status":503}],"message":"Service Unavailable"} -
│
│   with aiven_kafka_connector.kafka_connect_connector,
│   on main.tf line 86, in resource "aiven_kafka_connector" "kafka_connect_connector":
│   86: resource "aiven_kafka_connector" "kafka_connect_connector" {
│
╵
ERRO[0329] Hit multiple errors:
Hit multiple errors:
exit status 1

This fails almost every time, but succeeds always on the second try. Which for me points to the fact that resource readiness detection is a bit off.

Hi @jkesteris , we have this use case in our acceptance tests https://github.com/aiven/terraform-provider-aiven/blob/7fb5636fff8afb3a819977b1aa056cc2cfc2e53b/aiven/resource_kafka_connector_test.go#L162 which we run regularly and haven't seen this issue.  Can you please add here your entire TF plan, so that we can try to reproduce it?
We determine when service is available by the service status, it is not something unique for each service type (like Kafka in our case) but rather uniform across all Aiven products.

Hi @ivan-savciuc and here you go:
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # aiven_kafka.kafka will be created
  + resource "aiven_kafka" "kafka" {
      + cloud_name              = "aws-eu-west-1"
      + components              = (known after apply)
      + default_acl             = false
      + id                      = (known after apply)
      + maintenance_window_dow  = "sunday"
      + maintenance_window_time = "01:00:00"
      + plan                    = "business-4"
      + project                 = "project-name"
      + project_vpc_id          = "vpc-id"
      + service_host            = (known after apply)
      + service_name            = "service-name"
      + service_password        = (sensitive value)
      + service_port            = (known after apply)
      + service_type            = (known after apply)
      + service_uri             = (sensitive value)
      + service_username        = (known after apply)
      + state                   = (known after apply)
      + termination_protection  = false

      + kafka {
          + access_cert         = (sensitive value)
          + access_key          = (sensitive value)
          + connect_uri         = (sensitive value)
          + rest_uri            = (sensitive value)
          + schema_registry_uri = (sensitive value)
        }

      + kafka_user_config {
          + kafka_connect   = "true"
          + kafka_rest      = "0"
          + kafka_version   = "2.8"
          + schema_registry = "true"

          + kafka {
              + group_max_session_timeout_ms = "70000"
              + log_retention_bytes          = "1000000000"
            }

          + kafka_authentication_methods {
              + certificate = "true"
              + sasl        = "true"
            }

          + public_access {
              + kafka           = "true"
              + schema_registry = "true"
            }
        }
    }

  # aiven_kafka_acl.kafka_topics_acl[0] will be created
  + resource "aiven_kafka_acl" "kafka_topics_acl" {
      + id           = (known after apply)
      + permission   = (sensitive)
      + project      = "project-name"
      + service_name = "service-name"
      + topic        = (sensitive)
      + username     = (sensitive)
    }

  # aiven_kafka_acl.kafka_topics_acl[1] will be created
  + resource "aiven_kafka_acl" "kafka_topics_acl" {
      + id           = (known after apply)
      + permission   = (sensitive)
      + project      = "project-name"
      + service_name = "service-name"
      + topic        = (sensitive)
      + username     = (sensitive)
    }

  # aiven_kafka_connector.kafka_connect_connector will be created
  + resource "aiven_kafka_connector" "kafka_connect_connector" {
      + config         = (known after apply)
      + connector_name = "connector-name-S3-connector"
      + id             = (known after apply)
      + plugin_author  = (known after apply)
      + plugin_class   = (known after apply)
      + plugin_doc_url = (known after apply)
      + plugin_title   = (known after apply)
      + plugin_type    = (known after apply)
      + plugin_version = (known after apply)
      + project        = "project-name"
      + service_name   = "service-name"
      + task           = (known after apply)
    }

  # aiven_service_user.kafka_service_user[0] will be created
  + resource "aiven_service_user" "kafka_service_user" {
      + access_cert  = (sensitive value)
      + access_key   = (sensitive value)
      + id           = (known after apply)
      + password     = (sensitive value)
      + project      = "project-name"
      + service_name = "service-name"
      + type         = (known after apply)
      + username     = (sensitive)
    }

  # aiven_service_user.kafka_service_user[1] will be created
  + resource "aiven_service_user" "kafka_service_user" {
      + access_cert  = (sensitive value)
      + access_key   = (sensitive value)
      + id           = (known after apply)
      + password     = (sensitive value)
      + project      = "project-name"
      + service_name = "service-name"
      + type         = (known after apply)
      + username     = (sensitive)
    }

  # aws_iam_access_key.kafka_s3_connector_user_credentials will be created
  + resource "aws_iam_access_key" "kafka_s3_connector_user_credentials" {
      + create_date          = (known after apply)
      + encrypted_secret     = (known after apply)
      + id                   = (known after apply)
      + key_fingerprint      = (known after apply)
      + secret               = (sensitive value)
      + ses_smtp_password_v4 = (sensitive value)
      + status               = "Active"
      + user                 = "s3-connector-user"
    }

  # aws_iam_user.kafka_s3_connector_user will be created
  + resource "aws_iam_user" "kafka_s3_connector_user" {
      + arn           = (known after apply)
      + force_destroy = false
      + id            = (known after apply)
      + name          = "s3-connector-user"
      + path          = "/"
      + unique_id     = (known after apply)
    }

  # aws_iam_user_policy.kafka_s3_connector_user_policy will be created
  + resource "aws_iam_user_policy" "kafka_s3_connector_user_policy" {
      + id     = (known after apply)
      + name   = "s3-connector-user-policy"
      + policy = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "s3:ListBucket",
                          + "s3:ListBucketVersions",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:s3:::bucket"
                    },
                  + {
                      + Action   = [
                          + "s3:GetObject",
                          + "s3:PutObject",
                          + "s3:AbortMultipartUpload",
                          + "s3:ListMultipartUploadParts",
                          + "s3:ListBucketMultipartUploads",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:s3:::bucket/",
                          + "arn:aws:s3:::bucket/*",
                        ]
                    },
                  + {
                      + Action   = [
                          + "kms:Encrypt",
                          + "kms:Decrypt",
                          + "kms:ReEncrypt*",
                          + "kms:GenerateDataKey*",
                          + "kms:DescribeKey",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + user   = "s3-connector-user"
    }

Plan: 9 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + aiven_kafka_cloud_name                  = "aws-eu-west-1"
  + aiven_kafka_id                          = (known after apply)
  + aiven_kafka_name                        = "service-name"
  + aiven_kafka_plan                        = "business-4"
  + aiven_kafka_project                     = "project-name"
  + aiven_kafka_service_uri                 = (sensitive value)
  + datadog_service_integration_endpoint_id = []
  + datadog_service_integration_id          = []
  + kafka_connect_config                    = (sensitive value)
  + kafka_connect_plugin_class              = (known after apply)
  + kafka_connect_plugin_title              = (known after apply)
  + kafka_connect_plugin_type               = (known after apply)
  + kafka_connect_plugin_version            = (known after apply)
  + kafka_connect_uri                       = (sensitive value)
  + kafka_host                              = (known after apply)
  + kafka_port                              = (known after apply)
  + kafka_schema_registry_uri               = (sensitive value)
  + kafka_schema_registry_uri_public        = (sensitive value)
  + kafka_termination_protection            = false

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

   This may take a few moments...
ERRO[0318] Hit multiple errors:
Hit multiple errors:
exit status 1

@jkesteris, thanks for that. Judging from the logs you've provided, the Kafka service is fully functioning, and Terraform created many Kafka service users and topic ACL, and it is stuck on aiven_kafka_connector. If a Kafka service TF resource weren't ready, it wouldn't be possible t create anything.
I was doing some tests myself, and with some Kafka Connector types, I do get a similar issue, which makes me think it has something to do with the Aiven Kafka Connector API flakiness.
Can I ask you to run one experiment to see if my idea for a potential fix of this problem is correct? After you've executed your TF plan and got this 503 error, can you go and check using Web Consoler whether Kafka Connector was actually created. Because what I think is happening is that resource was created on Aiven side, and when TF client is trying to get a state of a newly created resource and API retrieves 503 for some time, before an actual Kafka Connector was fully provisioned. If my assumption is right (and it is what I'm getting during my tests), I'll add a patch to fix that on TF side.

Unfortunately the connector is not there after I get 503 error. I reran it few times to be sure, and I'm consistently getting 503 without connector being created. I was checking both in Web Console and using cli avn service connector list <service_name> command.

Status report from the frontline trenches we've started to receive 404 errors now:
│ Error: 404: {"errors":[{"message":"Not Found","status":404}],"message":"Not Found"} -
│
│   with aiven_kafka_connector.kafka_connect_connector,
│   on main.tf line 87, in resource "aiven_kafka_connector" "kafka_connect_connector":
│   87: resource "aiven_kafka_connector" "kafka_connect_connector" {
│
╵

which happens even after 1m on sleep between aiven_kafka and aiven_kafka_connector resource creations. After I adjusted the sleep to 2 minutes it started to work again. It seems like when I run apply without sleep I get 503 error when I add sleep <1min then it's 404.

@jkesteris, thanks for checking.
Regarding the Terraform provider Aiven Kafka resource readiness, from the logs, we can see:
...
aiven_kafka.kafka: Creation complete after 5m0s [id=project-name/service-name]
...
aiven_service_user.kafka_service_user[0]: Creation complete after 1s [id=project-name/service-name/user1]
aiven_service_user.kafka_service_user[1]: Creation complete after 1s [id=project-name/service-name/user2]
...
aiven_kafka_acl.kafka_topics_acl[0]: Creation complete after 0s [id=project-name/service-name/acl-1]
aiven_kafka_acl.kafka_topics_acl[1]: Creation complete after 0s [id=project-name/service-name/acl-2]

After Kafka service creation, other Terraform resources were successfully created except the Kafka Connector, so this issue has nothing to do with the aive_kafka resource status. Instead, it looks like the flakiness of Kafka Connector Aiven API or some underlying issue. Again, I would recommend reaching out to our Support team to check what is happening under the hood. Unfortunately, there is nothing right now that can be done on Terraform side to remedy this issue.


Unknown(the genesis block hash for chain mainnet has changed from 578cbc4d9c32fb20b5d232cf5356c801848f3c56f5fc75807bbc355beceec9cb to 626364ecc527797a4ff6921f575ac303a3d255c7776c03c46fe69853db170fe4 since the last time we ran

Do you want to request a feature or report a bug?
bug
What is the current behavior?
Apr 02 08:54:08.304 INFO Graph Node version: 0.22.0 (2021-03-31)
Apr 02 08:54:08.304 INFO Generating configuration from command line arguments
Apr 02 08:54:08.352 INFO Starting up
Apr 02 08:54:08.352 INFO Trying IPFS node at: http://ipfs:5001/
Apr 02 08:54:08.369 INFO Creating transport, capabilities: archive, trace, url: http://rpc:port, provider: mainnet-rpc-0
Apr 02 08:54:08.376 INFO Successfully connected to IPFS node at: http://ipfs:5001/
Apr 02 08:54:08.837 INFO Connecting to Postgres, weight: 1, conn_pool_size: 10, url: postgresql://graph-node:HIDDEN_PASSWORD@postgres:5432/graph-node, pool: main, shard: primary
Apr 02 08:54:09.038 INFO Pool successfully connected to Postgres, pool: main, shard: primary, component: Store
Apr 02 08:54:09.257 INFO Waiting for other graph-node instances to finish migrating, pool: main, shard: primary, component: ConnectionPool
Apr 02 08:54:09.382 INFO Migrations finished, pool: main, shard: primary, component: ConnectionPool
Apr 02 08:54:09.673 INFO Connecting to Ethereum..., capabilities: archive, trace, network: mainnet
Apr 02 08:54:09.862 INFO Connected to Ethereum, capabilities: archive, trace, network_version: 65, network: mainnet
thread 'tokio-runtime-worker' panicked at 'Creating the BlockStore works: Unknown(the genesis block hash for chain mainnet has changed from 578cbc4d9c32fb20b5d232cf5356c801848f3c56f5fc75807bbc355beceec9cb to 626364ecc527797a4ff6921f575ac303a3d255c7776c03c46fe69853db170fe4 since the last time we ran)', node/src/store_builder.rs:230:14
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
Panic in tokio task, aborting!
/usr/local/bin/start: line 52:    46 Aborted                 graph-node --node-id "${node_id//-/_}" --postgres-url "$postgres_url" --ethereum-rpc $ethereum --ipfs "$ipfs"
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
I start with docker for ipfs and postgres, and start graph-node with cargo run
when first runing is ok.
Then i stop graph-node ,and restart graph-node, it will report above bug
What is the expected behavior?
It should restart normally

Is this on ganache? Please delete your database when you modify the ganache chain.

no, this is not ganache. this is okexchain, i do not change chain or graph. node, just restart graph node

no, this is not on ganache. it is okexchain. i do not change chain, just restart restart granch-node.

same error

Click to expand

@landoyjx Did that chain change its genesis block?

no, i just restart graph-node, does not change chain code, include genesis block

@landoyjx does it happen even when you start from a clean database?

no, it does not happen when start from a clean database

Then I'll close this since you found the solution of cleaning the DB, and currently there is no other solution for the genesis block changing.


flask run does not respect debug config in config files

To reproduce:
https://github.com/PlasmaSheep/flask-bug
Clone repo and install flask (python2)
export FLASK_APP=/path/to/repo/flask-bug/autoapp.py
flask run

Notice the output:
[$]>>> flask run
Using config: development
Debug is: True
 * Serving Flask app "autoapp"
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)

So debug is enabled in the config, but the debugger is not actually active.
This does work if you set the FLASK_DEBUG env variable:
[$]>>>  flask run
 * Serving Flask app "autoapp"
 * Forcing debug mode on
Using config: development
Debug is: True
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
 * Restarting with stat
Using config: development
Debug is: True
 * Debugger is active!
 * Debugger pin code: 155-859-497

However I think that the debug parameter should be specified in only one place, and that place should be the application config file so that you don't have to worry about setting environment variables for things you already specified in the config.

And furthermore, FLASK_DEBUG does not work when you are using a custom manage.py script:
>> ./manage.py run
 * Forcing debug mode on
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 155-859-497
<IP_ADDRESS> - - [12/Aug/2016 17:01:07] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/home/plasma/.virtualenvs/quizApp/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/plasma/.virtualenvs/quizApp/lib/python2.7/site-packages/click/globals.py", line 26, in get_current_context
    raise RuntimeError('There is no active click context.')
RuntimeError: There is no active click context.

─[$]>>> cat manage.py
#!/usr/bin/env python
"""Management script for common operations.
"""
import subprocess
import sys

from flask import current_app
from flask.cli import FlaskGroup
import click

from quizApp import create_app

@click.pass_context
def get_app(ctx, _):
    """Create an app with the correct config.
    """
    return create_app(ctx.find_root().params["config"])

@click.option("-c", "--config", default="development",
              help="Name of config to use for the app")
@click.group(cls=FlaskGroup, create_app=get_app)
def cli(**_):
    """Define the top level group.
    """
    pass

if __name__ == '__main__':
    cli()

@PlasmaSheep thks for your  good question...
however maybe there has something mistake with your understand about debug mode.

FLASK_DEBUG enviroment arg only work on flask command .

The flask script can also be instructed to enable the debug mode of the application automatically by exporting FLASK_DEBUG. If set to 1 debug is enabled or 0 disables it.

maybe it's pocoo's misatake for not describe it clearly.

using flask command, it call the Flask object run function in lower level implements, so if your development config not work for command line execute. And the same, only command line would read the FLASK_DEBUG env arg, and if you using manage.py to run your app, it also not affect the debug mode.

@luke0922 is right about FLASK_DEBUG.
Fair enough about the second example. I'm not sure about whether there exists a good solution though.

@luke0922:

FLASK_DEBUG enviroment arg only work on flask command .

In this case I am not surprised, I wish the documentation was a bit clearer though.

using flask command, it call the Flask object run function in lower level implements, so if your development config not work for command line execute. And the same, only command line would read the FLASK_DEBUG env arg, and if you using manage.py to run your app, it also not affect the debug mode.

Yes, but the issue is that there seems to be no way to enter debug mode when using a custom management script. The only way to use debug mode is to have an additional file which creates an application from the factory.

The only way to use debug mode is to have an additional file which creates an application from the factory.

I don't understand where you're getting that. You can set app.debug=True on the app, you don't need to call create_app again.

possible duplicate of #1641

app.debug just turns on debug behavior for the application, while FLASK_DEBUG turns on debugging (and reloading) behavior for the server as well as setting app.debug = True.

app.debug just turns on debug behavior for the application, while FLASK_DEBUG turns on debugging (and reloading) behavior for the server as well as setting app.debug = True.
It's hard to go the other direction because the app may be lazy loaded, so you can't determine its debug state until it's actually loaded, which doesn't happen until after the server is started.

I don't understand where you're getting that. You can set app.debug=True on the app, you don't need to call create_app again.

This doesn't have the same functionality as FLASK_DEBUG , since it seems that reloading is only enabled on FLASK_DEBUG.

possible duplicate of #1641

Actually yes, this did not turn up in my searches. I'll close this, sorry about that.


Module Not Found

Describe the bug
I'm working on Vue project, I was using orm with it. Just updated to 4.x.x, I'm suddenly getting the following error when building for development.
Module not found: Can't resolve imported dependency "react-native-sqlite-storage"
Did you forget to install it? You can run: yarn add react-native-sqlite-storage

It's being installed fine on the emulator without any problems though, for now I'm ignoring the warning message, not sure if this is something of concern.

@vycoder react-native-sqlite-plugin is not needed. It is an error in typeOrm  which initialize it automatically

Hi @jepiqueau, thanks for the quick response.
Does this mean I can safely ignore this warning error?

@vycoder i have tried to add a script like shown in ionic-typeorm-starter and run it as a postinstall script in package.json.
i had to adapt the script for the latest typeORM release like this
#!/bin/bash
# file: patch.sh

replace() {
    # Explicitly specify file ending on Mac OSX.
    # @see https://myshittycode.com/2014/07/24/os-x-sed-extra-characters-at-the-end-of-l-command-error/
    if [[ "$OSTYPE" == "darwin"* ]]; then
      sed -i "" "s/$1/$2/g" "$3"
    else
      sed -i "s/$1/$2/g" "$3"
    fi
}

# ==========================
# Remove typeorm warnings:
# ==========================
#
# WARNING in ./node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js
# Module not found: Error: Can't resolve 'react-native-sqlite-storage' in '.\node
# _modules\typeorm\browser\driver\react-native'

replace 'const sqlite = this.options.driver || require("react-native-sqlite-storage");' '' 'node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js'
replace 'this.sqlite = sqlite;' '' 'node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js'
replace 'throw new DriverPackageNotInstalledError("React-Native", "react-native-sqlite-storage");' '' 'node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js'

check that in node_modules/typeorm/browser/driver/react-native/ReactNativeDriver.js the lines where not existing but i still get the error. May be it is a cache issue on my Mac.
May be try this on yours.
Anyhow you should not care about this warning, even if i do not like it to see it in the build process, as we never use that driver with @capacitor-community/sqlite. This is why everything works fine.

Okay, thanks for all the help! Closing this issue now. Thanks again!


Add aliases that are less verbose

All the command interface is really verbose.
It's really annoying doing testing and typing video_matrix connect input0 output0 a few dozen times.  There should be a better way.
Instead of an elaborate Cisco IOS-style shortcode system, this is a really simple one which just aliases many commands to 1-character versions.
So instead of video_matrix connect input0 output0, you can write x c 0 0.  The difference between input0 and output0 are inferred by the position of the argument, and the ports are unidirectional, so this is all implicit.
There are similar aliases added in the command interface, which are all documented in the help strings.
We don't have any inputX commands, only outputX, so the outputs get the X commands (eg: output0 off :arrow_forward: 0 off).
I don't have an SDK to be able to actually build this (and to do so is 10GB+ of downloads on a mobile connection), so lets see if Travis can build this!
It's not known what effect NetworkManager and GPSd have on this interface.  But it's not like these daemons don't already stomp on all serial devices in order to auto-detect something they might want.

@micolous Can you squash / clean up history a little and then I'll merge this pull request.

Done


Question: Can we use Guid (random string) as instance name (Change Feed)

related to #3067
I saw that the instance name should be unique per compute and should be the VM\pod name
my question is can I use just guid or any random string - will it work and will it have any effect on behavior or RU utilization ?

It's just a tracking id that flows into the lease document in oredr to aid troubleshooting, without any major restrictions.
Unless the size pushes the lease document size over a 1K boundary etc, it should not affect RU consumption etc.

@bartelink thanks for you answer
just to verify and make my question clearer: Using guid is fine and only may affect troubleshooting
I intent to generate new guid\random string each time the process starts so for the same node I will have a lot of instance names
over time
do the lease collection has internal cleanup of process crash ?

Yes, people put process ids and machine names in and all sorts e.g. https://github.com/jet/propulsion/blob/master/src/Propulsion.CosmosStore/CosmosStoreSource.fs#L43
the true persistent identifier is the processorName - that's the thing that's shared across competing consumers and/or replacement processors if you kill one

do the lease collection has internal cleanup of process crash ?

there is a document per physcial range
it records who has it leased and for how long
when that time has elapsed, it's open to be taken over by another consumer
Normally the configured renew interval means it does not expire
When you shut down, you dispose/close the CFP and that releases the lease (stops renewing, and hands back the reserved time)
If you crash, your instance name will remain stamped in the lease document
There is no magic process anywhere that will remove anything (but there also does not need to be)
Remember with the CFP, it's

N physical ranges worth of server clusters that host your data
your process negotiating with other competitors with the same processor name via documents in the -aux container you nominate
the winning processes querying a range of the moniitored container once it has won a lease per the co-operative process

Hi
@bartelink
Thanks for the detailed response. I am not sure I understand all that you mention above. So I will try to summarize
for instance-name I could do whatever I want as long as it's unique - for example use process id that will change after restart.
What is important is processorName that should be constant.
Can you say what will happen if process will set new processorName each time after it restarts and when we don't dispose and the process crash ?

if you do a new processorname each time then

each processorname has a separate set of lease documents
each set starts afresh if it is a new name
2 instances of code can process same data at same time

the "don't dispose and crash" just means nobody will ever touch those documents in the aux container again. Do that 1000 times and you have 1000 docs. Also if you dont use the same processor name and e.g. your host runs 2 copies of your processor, they will work completely independently

In general the latency and RU costs should remain stable - the impl just does point reads and updates of the documents
You'll just pay a tiny bit more for document storage
(If it got to 20/50GB and split due to a truly insane amount, then your RU capacity would become diluted, but that's very theoretical based on your scenario as I understand it)
Though in your case, if there was a delete api as described in https://github.com/Azure/azure-cosmos-dotnet-v3/issues/510 you'd probably use that with a stable name as you're not deriving any value from the document after processing is finished (i.e. nothing is ever continuing based on where the checkpointed posiition got to)

@ealsur  @bartelink
Sorry for not mentioning it earlier - the instance name can be just guid this is clear. Now I'm focusing on processor name and our use case for change feed is a bit different we have multiple nodes, and we want all of them to get updates (like pub/sub) we just gave each one different processor name so they all will get the same updates. now we are considering just creating random string for processor name each time the service starts - different one.
We could use pull for each node but then we needed to manage the current last update time and though that CF will give us this out of the box.
So having a lot of processor names but they do not run in the same time - it is still causing high RU consumption  ?

want all of them to get updates

The problem with this approach is the pressure you put on the Lease Container. It will consume RUs and the higher the number of instances, the higher the RU pressure.
CFP is designed to do 2 things mainly:

Automatic distribution of leases across machines, with dynamic adjustment when the number of machines changes (this is achieved by the common Processor Name + monitored container + lease container across machines).
Store state and recover/resume

Can you expand on exactly what having many machines, tracking progress independently, is trying to achieve? Is each machine doing something different? Is this for cache synchronization?

@ealsur as you mentioned
This is done for cache synchronization
We are keeping container documents in memory with some enrichment on the data in  container and we want to be sync if documents are added or deleted
The amount of insanced are small < 30
So we didn't though it will have pressure on the collection. Our question is on setting the processor name as guid and changing its value on service restart
Could you advise what is the risk taking this approach and alternative to achieve the same functionality

This is done for cache synchronization

Then why using Change Feed Pull model storing the continuation inmemory, is not a valid option?
If the machine crashes, you can start a new Pull model, it is just for cache synchronization, and cache is an optimization. You can even start the pull model from the Beginning if you want to pre-hydrate the cache.

CFP for cache synchronization across a farm of machines does not make much sense. It is costly on the lease container, you are not benefiting from automatic load distribution, and neither from the lease store, because when a machine crashes, because you are using a different processor name, the previous state won't be resumed. Even if you used a fixed processor name per machine, resuming the state does not help with cache synchronization.

@ealsur
These are great insights for sure change Feed Pull model this is what we need - we'll work on it.
Just to verify for the short term - using the same processor name or guid that is changing every restart is equally bad - there is no reason to have is consistent ?

Not sure I fully understand your question. If you change the Processor name on every restart, using a Guid, then every restart creates a new unique set of leases in the lease container, and it will start processing as if it had never done any processing (similar to starting a Pull Model iterator from scratch).
If you keep the Processor name inbetween restarts, then the processor will resume to read the Change Feed from the last time it saved progress (before it restarted), but in your case, because you are using it for cache synchronization, that really makes no benefit.

@ealsur after understanding this is not the correct approach to use CFP my question is if there is different between setting processor name "node_5" vs using guid that will change every restart of the service

My apologies if my response was not clear, I tried to address that scenario with this part of my reply:

If you keep the Processor name inbetween restarts, then the processor will resume to read the Change Feed from the last time it saved progress (before it restarted), but in your case, because you are using it for cache synchronization, that really makes no benefit.

If you always use "node_5" then the processor will pickup the previous saved state and will start to deliver any changes that happened between when it shutdown and when it is coming back up. For cache synchronization, I am not sure what is the value this brings because it will just hydrate whatever changed in between those times, it won't hydrate the state of the entire container. Is this small delta of changes worth the cost (RU) of maintaining the lease container? If the answer is yes, then you can do it, if the answer is no, then probably Pull Model is still the solution.

@ealsur and @bartelink  thanks for making it clear
appreciate your answers


OS Refactor - Data

[ ] I have added the tests to cover my changes.
[ ] I have updated the documentation, VERSION, and CHANGELOG accordingly.
[x] I have read the CONTRIBUTING document.

Closing based on @cjao 's updates to the data service which make this PR redundant


Update index.md

11

Hello, please don't pull the updates from your personal repository to the original repository, thank you 😊
你好呀，请注意不要将个人仓库的更新pull到原始仓库哦，谢谢 😊


Audio stops while car is in reverse mode

I have the same issue.

does this only happen with CarPlayEnable? Which apps are affected

not a carplay-cast bug, my headunit has an option to unmute audio on reverse.please check your headunit settings

In my case, YouTube audio stops while my car gear is in the reverse mode and car monitor shows back view. The issue does not happen in native apps (e.g., Apple music). I think this may be a Carplayenable bug because the same issue does not occur when using Carbridge.

I think its because the app "closes" while you're in reverse (because it's no longer on the head unit screen). So apps that stop playing when you go to the homescreen (youtube) will do this

I think its because the app "closes" while you're in reverse (because it's no longer on the head unit screen). So apps that stop playing when you go to the homescreen (youtube) will do this

I have YouTube premium and it does the same. Even after I put the gear back to D, the screen will come as black and the audio stops. I have to unplug the phone and plug it again to get it to work. Accord 2020 (iOS 14.3, iPhone x)

@EthanArbuckle I use youtube to play audio but the issue only happens when running the youtube on carplay screen while the car is in reverse mode. However it works fine when running youtube from iPhone.

@jly26 my headunit doesn't have an option to mute or reduce audio while car is in reverse mode.

Also audio stops when browsing the headunit as you said because the app closes, I hope there is a solution for this.

By the way I have youtube premium so it should play in the background and I noticed when I return the gear to driving mode the video continues playing it's just the audio that's been stopped and it returns a few seconds later.

Thank you, I’ll look into this. no additional info is needed.


Unity JobSystem schedule pattern

What problem does this solve or what need does it fill?
Sometimes I don't really need the ECS framework but only need the schedule, for example:

Plan all the tasks in a heavy-computation framework such as voxel generation for one generation requirement and run it, the framework generation process should be seen as a whole single system.
Push tasks and generate the tasks dependency graph dynamically in one planning system and run the graph, once per frame. It's for situations like complex damage and effect dealing between characters.

What solution would you like?
Let the user have the ability to fully determine the behavior of the scheduling tool.
Example:
fn task1()...

fn plan1_system(mut commands: Commands){
    commands.spawn(MyTask::new(task1));
    ...
}
fn schedule_system(tasks: Query<&MyTask>,mut scheduler: Scheduler) {
    for task in tasks{scheduler(task,task.dependency); }
    scheduler.complete();//The system completes when the graph completes.
}
fn main(){
    App::new().add_system(...)
    ...
    .add_system(
        schedule_system
     .after(Label::BeforeExecution))
     .before(Label::AfterExecution)
    )
    .add_system(...)
    ...
}

What alternative(s) have you considered?
https://github.com/bevyengine/bevy/pull/4090 I find the method run_schedule in this issue useful but the current World struct doesn't have it in bevy 0.9.1.
https://github.com/bevyengine/bevy/issues/7707 use commands to add one-shot systems but it seems only to support sequential execution.

You can already do this with TaskPool and its newtypes. It doesn't have the same dependency graph that Unity has, but you can do the same with Task<T> and async/await, it even lets you pass a value through. Task<T> is Send/Sync, so you can embed it inside your own components. schedule.complete() can be replaced with futures_lite::block_on on a provided task.

Well, are the codes behind ecs system and task the same, with equal optimizations?

Unlike Unity, we use the same compiler for every part of the produced binary. Enabling higher optimization levels and LTO (as does Unity's Burst compiler), will result in them applying universally.
As for the backing implementation for ECS systems and tasks, they're identical. ECS systems are tasks running on the same implementation of task executors underneath it all. The main difference is that we segregate the available threads into segments for use case. These currently include Compute (where ECS systems run), Async Compute (where long running CPU-bound operations should run), and IO (short-lived IO bound tasks). This is to prevent longer blocking tasks, like those in Async Compute, from blocking more latency sensitive operations in IO and Compute.


[MM-20479] Migrate 'components/post_view/commented_on_files_message' module and associated tests to TypeScript

Summary

Rename the files to their associated TypeScript extensions (ie. js to ts, jsx to tsx)
Update any components using those to the correct imports
Fix any errors generated by the TypeScript compiler. You can run make check-types to display any errors.

Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/15462

Hello @jakubnovak998,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Thanks @jakubnovak998 for the contribution! It looks like the automated tests are failing, would you be open to help take a look? If you have any questions, let us know, happy to help :)

Thanks @jakubnovak998 thanks for the PR 🎉  LGTM minus the linter issues ;)

@jakubnovak998 Thanks for the contribution, Can you also update the snapshots for tests?

Hey @jakubnovak998, I just wanted to check if you have any questions about the feedback above.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

Hi @jakubnovak998!  Thanks for your contribution!  Do you have any questions or need any help completing this PR?

Closing this PR as inactive, @jakubnovak998 let us know if you still plan on finishing this up.


Newly created next app with app dir doesn't work with auto: true

Hello!
On a newly created nextjs app, adding auto to the next config (as in the docs) breaks the app.
Here's the code sandbox:
https://codesandbox.io/p/github/andreifilip123/million-auto-nextjs
The issue is that the root layout is converted to a client component while being optimized. Maybe that should be skipped ?

Can you try with v2.5.3?

I tried that and still doesn't work (both with the latest beta and with // million-ignore

Fixed in v2.5.4-beta.2. if you are using RSC, make sure to enable rsc as so: auto: { rsc: true } @andreifilip123

Works now. Congrats and thanks !


IMU acceleration is affected by scale

In IMU calculations, Transform.InverseTransformVector is used to add gravity to acceleration, but this function is scale sensitive, so if the object's scale is changed, the acceleration values will not be calculated correctly.
If the scale is set to 1, there is no problem.

If the scale is changed to 0.1, the gravity of the corresponding axis is calculated as 10 times.

Fixed this issue in #57.

@Autumn60
I have confirmed another problem. InverseTransformVector has the effect of shifting the angle if the scale of each axis is different. For example, when tilted by 45°, the acceleration of the two axes does not have the same magnitude.
I think we should consider a method that does not use Transform.InverseTransformVector.

This issue looks solved.
I close this.


callable-types should handle new(): T just like (): T

Bug Report

TSLint version: 5.11.0
TypeScript version: 3.2.0-dev.20181114
Running TSLint via: CLI

TypeScript code being linted
interface I0 { (): void; }
interface I1 { new (): void; }

with tslint.json configuration:
{ "extends": "tslint:latest" }

Actual behavior
Lint failure at I0 but not at I1.
Expected behavior
Lint failure at both, since this can be changed to:
type I0 = () => void;
type I1 = new () => void;

Agreed, thanks for reporting this @andy-ms! I'd be happy to express merge a PR for this.

Fixed by #4352! ✨


Create overall application_logging.enabled flag

Duplicate of LOGGING-7293: Overall application_logging.enabled flag (Internal)
Add a configuration option to  lib/new_relic/agent/configuration/default_source.rb named application_logging.enabled toggles the enablement of all new features implemented by the logging initiative.
This behavior is similar to that of transation_tracer.enabled. It should turn off logging metrics, log forwarding and log decorating when set to false. It should allow logging metrics, forwarding, and decorating to be enabled based on their settings when set to true. Supportability metrics related to logging should still be sent regardless.
See Engineering Brief: Logging in Agents - Configuration section for implementation details.
Note: Log decorating has not been enabled yet. The acceptance criteria related to the overall flag toggling log decorating will be moved to that ticket, #988

Also add the supportability metric: Supportability/Logging/Ruby/Logger/{enabled|disabled}

Closed by #1007


Fix path to ignore only root log, img and cache folder

As in our exchange here https://github.com/PrestaShop/PrestaShop/pull/4246, this PR fix significant following subfolders ignored :
classes/log/

classes/cache/

modules/**/img/

Thanks!


MWPW-155492: Mobile Widget Analytics can_donwload

Resolves: MWPW-155492
Test URL:
https://mwpw-155492--dc--adobecom.hlx.page/

Codecov Report
Attention: Patch coverage is 77.77778% with 4 lines in your changes missing coverage. Please review.

Project coverage is 90.51%. Comparing base (dd352e4) to head (4b4c681).

Files
Patch %
Lines

acrobat/scripts/alloy/mobile-widget-shown.js
75.00%
2 Missing :warning:

acrobat/scripts/alloy/mobile-widget.js
71.42%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #752      +/-   ##
==========================================
- Coverage   90.59%   90.51%   -0.08%
==========================================
  Files          39       39
  Lines        4890     4902      +12
==========================================
+ Hits         4430     4437       +7
- Misses        460      465       +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


navigation in tmux zoom mode

Hi, I noticed that when I'm in tmux zoom mode and only one pane is showing, if I press a navigation keybinding, it will exit zoom mode and navigate to another pane.
Wouldn't it be better if navigation keybindings didn't work in zoom mode?
( I searched a bit and found this command to check if tmux is in zoom mode tmux display-message -p "#{window_zoomed_flag}"  )

I don't use this functionality myself, but I believe the Disable While Zoomed config option should cover what you need.
Closing this now under the assumption that that will cover what you're asking, but please feel free to comment or reopen if you think I missed something.

Thanks let g:tmux_navigator_disable_when_zoomed = 1 works great when there are multiple panes and you're in a zoomed Neovim pane. However, if you're in zoomed non-Neovim pane and navigate to another pane, tmux will exit zoomed mode. I tested this and it seems to be normal tmux behavior, unrelated to the plugin


Add FOSS license check badge

Thanks @ytsarev and @idvoretskyi !

@yruslan it seems there are some build issues - can you check the docs here? https://docs.fossa.com/docs/java

Thanks for the link!


Poe Website - Dedicated button (When CTRL+D) to put selected filters into a browser search.

Title. I understand that clicking on the currency button will open the integrated browser, but no one really knows that at first glance unless you watched the video properly.
Main issue is that some times item would be listed as "No Data" when inputting the same filters brings results on the website. Not sure if connection or using Poe.Trade instead of pathofexile.com/trade

The "No Data" text can also be clicked. Same behaviour as the currency icon. Also i assume the "No Data" is caused by the default search filters (Online Only, 3 Days Indexed). See this part of the video for visualization: https://youtu.be/_cJmW8QkQnM?t=234


Problems with inviting through vs code as opposed to sending link

Issue Type: Bug

invite someone to session through vs code (no link).
continue working with other.
After about 15 minutes the other person just freezes in hte one spot and for them to connect back to the session the host needs to end the session and then submit another invitation.

Extension version: 1.0.1404
VS Code version: Code 1.41.1 (26076a4de974ead31f97692a0d32f90d735645c0, 2019-12-18T14:58:56.166Z)
OS version: Windows_NT x64 10.0.18362

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz (12 x 3210)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.94GB (15.63GB free)

Process Argv

Screen Reader
no

VM
0%

Thanks for reaching out. Can you give us more details about your scenario? Also, your logs may provide us with helpful information. You can access them via the Live Share: Export Logs command from the command palette (ctrl + shift + p) and attach them to this issue.

Sorry for taking so long with this issue.
This does not seem to be happening anymore. I'm not sure what it was that was causing this to happen, but it may have been fixed on the latest update.
I'll go ahead and close this issue.


bsd builds broken

some type mismatches, missing constants, etc.

@alexcrichton this is the libc side of the fix. https://github.com/rust-lang/rust/pull/31230 is the libstd side.  together the bsd builds are green again.

@alexcrichton as soon as this lands, i'll update the liblibc version in https://github.com/rust-lang/rust


Syrmia/ttnn sweeps

I see import tt_lib as ttl inside of most of the newly added test files. It should not be used in ttnn tests. tests/ttnn folder is strictly meant for tests that are written using ttnn APIs.
If you look at ttnn/tensor.py, you will see that we have all the necessary mappings:
i.e.: ttnn.bfloat16 for ttl.tensor.DataType.BFLOAT16

I see import tt_lib as ttl inside of most of the newly added test files. It should not be used in ttnn tests. tests/ttnn folder is strictly meant for tests that are written using ttnn APIs.
If you look at ttnn/tensor.py, you will see that we have all the necessary mappings: i.e.: ttnn.bfloat16 for ttl.tensor.DataType.BFLOAT16

@arakhmati (cc @boris-drazic) Our sweeping infrastructure uses tt_lib constants, so in order to re-use testing infrastructure and not duplicate code we re-used existing methods and constants which are later mapped to ttnn constants when creating tensors. Maybe it's good to have a call to clear things out.

I see import tt_lib as ttl inside of most of the newly added test files. It should not be used in ttnn tests. tests/ttnn folder is strictly meant for tests that are written using ttnn APIs.
If you look at ttnn/tensor.py, you will see that we have all the necessary mappings: i.e.: ttnn.bfloat16 for ttl.tensor.DataType.BFLOAT16

@arakhmati Changed now in unit tests. Can you re check?

Moved
On Wed, Jan 10, 2024 at 4:58 PM Akhmed Rakhmati
@.***> wrote:

@arakhmati requested changes on this pull request.
Everything looks good but can you please add a folder tests/ttnn/python_api_testing and put non_working_unit_tests and sweep_tests under it?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


fix imports order

What kind of change does this PR introduce?
fixes #11871

Did you add tests for your changes?
yes

Does this PR introduce a breaking change?
no

What needs to be documented once your changes are merged?
nothing

Thanks


Add unit tests for: Unary ops, left and right shift, binary arithmetic ops and comparison ops.  Make sure to test both constant evaluated and compiler-optimized for same operands.

Resolved with commit e1c6321.

Resolved with commit e1c6321.


Implement the feature to rename the page hierarchy

Overview
Implement the feature to rename the page hierarchy.
ex. /products/sushi/* -> /products/pizza/*
The feature seems simple at first glance, but in fact, it is a bit complicated, so I will explain the specification while showing screens.
Screens

User can open modal from Page, Portal and PageList.

A list of pages to be changed is displayed when a user enters a new path

If /products/APL-ZS/design exists, it becomes the parent of /products/APL-ZS/desing/*

If there are pages that can't be renamed, the reason is displayed

I added some tests and fixed bugs for the backend.

It is possible to rename a tree without limited to a number of pages
Even if a page started with the name of another page, it no longer treats it as a child

e.g. /car and /carrot


Sprint 10 Review

General Information about sprint reviews
As we will release a working iteration of the new framework after every sprint, everyone is invited to help with testing the sprint results.
The only thing to remember is that you should only report bugs in this issue, which are caused by the contents of this sprint (which are listed below). So it is vital to look at the content description to see what was actually added. Only by reading this you know what we've really intended to implement and defined as done.
I guess you understand that reporting things which weren't even planned to be part of the sprint won't help in any way.
This releases (which are also marked as Pre-release) aren't meant to be played as replacement for the current framework. It is for testing purpose or a kind of first look at features/changes which will be part of the 0.97 release in some months.
For serious playing use the latest stable release: v0.963a
Summary of this sprint
In Sprint 10 we added the first parts of the logistic and enemy commander modules. Also it comes with some bugfixes which appeared after sprint 9. It took longer than usual, as we're all having some new liablities and things appeared in 2019 we've to take care of. Therefore Sprint 10 also doesn't contain that much like in the sprints before. But we're confident, that we can get back to the old speed and content amount of the last year.
The logistic module brings functionalities to the logistic building:

Currently we've implemented two dialogs with this first part. The recycle dialog makes it much easier to recycle vehicles, provides a status overlay about what you'll get back and why. This will be a huge improvement compared to the old "go to vehicle, hope for action menu entry, recycle it", which was sometimes not as reliable as it should be.

And the second one is the resupply dialog which gives you the possibility to replenish your vehicles, even the "replenish resources" for the repair/ammo/fuel trucks. This comes directly with compatibility to the ACE resupply functionality, where resupply repair/ammo/fuel trucks is more common.

All of this with sensible CBA settings to adjust the experience to your personal playstyle.
Furthermore the enemy commander module will simulate strategical behaviour of the enemy troops. Means that the enemy commander will send convoys with reinforcements from bases to sectors or also from one sector with a huge distance to the frontline to sectors which are closer to the players terrain. Currently the functionalities are implemented and in the next iteration there will be the logic implementation to trigger these events. Additionally with functionalities for counter attacks on sectors, reconnaissance of player FOB positions and following attacks on them. After the enemy commander module will be finished in maybe 3-4 further iterations, it should provide a much more sensible experience concerning the enemy strategical behaviour which reacts naturally to the players progress.
That's it for now, the Testserver also got the latest missionfile, so it's up to date for quick tests from your side.
Content of this sprint

Task
Description
PR

#529
Enemy Commander pt1
#566

#533
Logistic Station pt1
#567

#562
Bugfixes for S9
#564

Released sprint result
https://github.com/KillahPotatoes/KP-Liberation/releases/tag/v0.97S10
Official public Testserver
The latest pre-release missionfile is running on our public Testserver. Feel free to join and have a look at the current development state. We would highly appreciate any feedback and/or bug reports.
Name: KP Liberation Dev Testserver
IP: <IP_ADDRESS>
Port: 2322
Needed Mods:

CBA A3
KP Ranks

Bugs found so far

Related Task
Description
Reported by

#517
Limited camera in zeus estimate the height limit from the ground not from player height (issue if on Water)
@Wyqer

#529
Vehicles could spawn at the same place and explode, when convoy is spawned. Needs some timing optimization
@Wyqer

#533
Spacing between Logistic menu buttons isn't final
@Wyqer

none
STR_KPLIB_HINT_HELIMOVEBLOCKED doubled in stringtable.xml fixed with https://github.com/KillahPotatoes/KP-Liberation/commit/ffb9c256570b46e77447cd41b98156ded45943f0
@Wyqer

Sprint History

Sprint
Quick Summary
Details

9
Permission and resources modules, second part of the garrison module, finished universal preset
#562

8
Arsenal, complete settings overhaul and universal unit preset templates
#544

7
Persistent sector garrison, build menu implementation part 4, common functions module
#520

6
Own Respawn template, object manipulation in build menu, event based save/load
#505

5
Freedom replaced with Liberty, extended CBA implementation, refactor mission init, build camera refactor
#494

4
Player and Admin menu, building camera overlay
#471

3
First UI overhaul, config guard, free build camera
#445

2
Event handling and action manager
#427

1
Basic CTI functionality: Intro, Spawn, FOB deploy, capture sector, win campaign
#404

General Information about sprint reviews
As we will release a working iteration of the new framework after every sprint, everyone is invited to help with testing the sprint results.
The only thing to remember is that you should only report bugs in this issue, which are caused by the contents of this sprint (which are listed below). So it is vital to look at the content description to see what was actually added. Only by reading this you know what we've really intended to implement and defined as done.
I guess you understand that reporting things which weren't even planned to be part of the sprint won't help in any way.
This releases (which are also marked as Pre-release) aren't meant to be played as replacement for the current framework. It is for testing purpose or a kind of first look at features/changes which will be part of the 0.97 release in some months.
For serious playing use the latest stable release: v0.963a
Summary of this sprint
In Sprint 10 we added the first parts of the logistic and enemy commander modules. Also it comes with some bugfixes which appeared after sprint 9. It took longer than usual, as we're all having some new liablities and things appeared in 2019 we've to take care of. Therefore Sprint 10 also doesn't contain that much like in the sprints before. But we're confident, that we can get back to the old speed and content amount of the last year.
The logistic module brings functionalities to the logistic building:

Currently we've implemented two dialogs with this first part. The recycle dialog makes it much easier to recycle vehicles, provides a status overlay about what you'll get back and why. This will be a huge improvement compared to the old "go to vehicle, hope for action menu entry, recycle it", which was sometimes not as reliable as it should be.

And the second one is the resupply dialog which gives you the possibility to replenish your vehicles, even the "replenish resources" for the repair/ammo/fuel trucks. This comes directly with compatibility to the ACE resupply functionality, where resupply repair/ammo/fuel trucks is more common.

All of this with sensible CBA settings to adjust the experience to your personal playstyle.
Furthermore the enemy commander module will simulate strategical behaviour of the enemy troops. Means that the enemy commander will send convoys with reinforcements from bases to sectors or also from one sector with a huge distance to the frontline to sectors which are closer to the players terrain. Currently the functionalities are implemented and in the next iteration there will be the logic implementation to trigger these events. Additionally with functionalities for counter attacks on sectors, reconnaissance of player FOB positions and following attacks on them. After the enemy commander module will be finished in maybe 3-4 further iterations, it should provide a much more sensible experience concerning the enemy strategical behaviour which reacts naturally to the players progress.
That's it for now, the Testserver also got the latest missionfile, so it's up to date for quick tests from your side.
Content of this sprint
Task	Description	PR
#529	Enemy Commander pt1	#566
#533	Logistic Station pt1	#567
#562	Bugfixes for S9	#564
Released sprint result
https://github.com/KillahPotatoes/KP-Liberation/releases/tag/v0.97S10
Official public Testserver
The latest pre-release missionfile is running on our public Testserver. Feel free to join and have a look at the current development state. We would highly appreciate any feedback and/or bug reports.
Name: KP Liberation Dev Testserver
IP: <IP_ADDRESS>
Port: 2322
Needed Mods:

CBA A3
KP Ranks

Bugs found so far
Related Task	Description	Reported by
#517	Limited camera in zeus estimate the height limit from the ground not from player height (issue if on Water)	@Wyqer
#529	Vehicles could spawn at the same place and explode, when convoy is spawned. Needs some timing optimization	@Wyqer
#533	Spacing between Logistic menu buttons isn't final	@Wyqer
Ace3 PIP-Optics destroy FPS. When having a weapon with a PIP optic attached, the frames drop from 100 to 10. Tested on Local MP
Sprint History
Sprint	Quick Summary	Details
9	Permission and resources modules, second part of the garrison module, finished universal preset	#562
8	Arsenal, complete settings overhaul and universal unit preset templates	#544
7	Persistent sector garrison, build menu implementation part 4, common functions module	#520
6	Own Respawn template, object manipulation in build menu, event based save/load	#505
5	Freedom replaced with Liberty, extended CBA implementation, refactor mission init, build camera refactor	#494
4	Player and Admin menu, building camera overlay	#471
3	First UI overhaul, config guard, free build camera	#445
2	Event handling and action manager	#427
1	Basic CTI functionality: Intro, Spawn, FOB deploy, capture sector, win campaign	#404

Not liberation releated. Should be fixed in next ACE3 update.

i havn't encountered this issue with those optics in any other mission than yours, and we play alot with ace and their pip optics.

It's not a Liberation issue.
Liberation dosn't touch any items or something at all.
Have a look at the ACE issue, @veteran29 was already talking about:
https://github.com/acemod/ACE3/issues/6811

yeah, right. sorry guys.
i should keep up studying ace github issue-tracker more often.

Ran into the problem where as soon as I got close enough to an enemy base for the AI to spawn in it froze up and crashed my game. not sure if its the mission or what but I've only ever seen it on Sprint 10

@Rogue19
Was the crash similar to one here: Vdauphin/HeartsAndMinds/issues/638
There are some issues with Arma 1.90 I'm not sure if this is fixable on our side.

I'm the reporter of the H&M crash, and I've posted the issue on Arma 3 Feedback Tracker and got no reply from their stuff, so I bet we can only count on our own.
One of my servers is now currently running KP Liberation v0.963-Hotfix3, another is H&M v1.19.2, and I'll report any new circumstances related to the issue.

I'm the reporter of the H&M crash, and I've posted the issue on Arma 3 Feedback Tracker and got no reply from their stuff, so I bet we can only count on our own.
The most "important" symptom of the error is that all players crash at the same time with the same error "Too many virtual memory blocks requested".
One of my servers is now currently running KP Liberation v0.963-Hotfix3, another is H&M v1.19.2, and I'll report any new circumstances related to the issue.

I found that if some certain units of RHS AFRF are spawned, clients crash immediately if the unit is in players View Distance. I use CSAT as the enemy faction, problem solved. So the crash problem reported by me seems to have nothing related to the missions.
Please see: https://github.com/Vdauphin/HeartsAndMinds/issues/638#issuecomment-470925340

Bug report
Setting enemy forces as NATO, causes them to shoot each other. // Mass spawning
Basic Information
Changing preset modes to the following on the CBA settings (server);
Player - CSAT (not custom)
enemy forces - NATO (not custom)
Resistance - FIA
Civillins - Vanilla
Restart mission.
deploy fob at random area
redeploy
causes some weird behavior, making all the AI turn into a 1 big death match killing eachother.
they also spawned all over the map at the sectors making my game nearly die, not sure if that part of the development is done yet...
I can local host again with a developer if required.
Mission version: 0.97 S10
Map used: Altis
Mods used: CBA (required)
Dedicated or local game: Local hosted
Source of the mission file (URL): https://drive.google.com/open?id=1iwtLztkWYzYRkGrhu7CbwyvkWfKzbC4K
Individual Things
Did you edit anything within the mission files?
Nope only changed the CBA preset settings.
Expected Behaviour
 Nato not to shoot eachother and spawn all over the map at all the sectors
Steps to Reproduce the Issue
 mentioned above in description

Screenshots, Serverlog or any other helpful Information
http://prntscr.com/n8s4f9

We'll look into this in S12.
And even if you restart the mission after the parameter change, it gives you this behaviour? Not only after change and continue without restart?

Yep i restarted straight away as I the huron helicopter "potato" didnt change so I thought it needed a restart mandatory.
Upon mission restart the Huron was replaced with the CSAT version with the underbelly container
Had trouble figuring out how to detach container to pickup fob if im honest.
Anyway yeah i randomly placed fob down and redeployed and went into zeus and heard gun fire everywhere and investigated.


.text cannot be computed in isolation for removing/normalizing trailing spaces

opening a web page in a Web browser and executing the following code:
p = document.createElement("span");
p.innerHTML="   hello  6  world";
document.body.appendChild(p);
p.innerText // it returns "hello 6 world"

p = document.createElement("span");
p.innerHTML="   hello  6  world";
document.body.appendChild(p);
p.innerText // it returns " hello 6 world"

we see that it produces different results (the second node has a trailing space).
this means that jsoup Element.text() should also see the previous tags to see if it can remove the training space.

Hi there, if you're still impacted by this, could you add some detail on what you're trying to do? The text() method does aim to provide normalized and trimmed output per invocation. It is not aiming to ape the innerText method directly but is aimed to pull clean text out of the DOM. It does consider surrounding elements when working at an aggregate level (e.g. if you call text() on a div containing multiple P tags, they will be space seperated.

Hi there, if you're still impacted by this, could you add some detail on what you're trying to do? The text() method does aim to provide normalized and trimmed output per invocation. It is not aiming to ape the innerText method directly but is aimed to pull clean text out of the DOM. It does consider surrounding elements when working at an aggregate level (e.g. if you call text() on a div containing multiple P tags, they will be space seperated.


toString on fresh SyslogMessageSenders causes NPE

Whenever I used (TcpSyslogMessageSender.) in my exploratory Clojure REPL session, I got NullPointerExceptions. I traced this back to the toString:
https://github.com/CloudBees-community/syslog-java-client/blob/master/src/main/java/com/cloudbees/syslog/sender/TcpSyslogMessageSender.java#L242
this.getSyslogServerHostname() will raise NPE on uninitialized objects, because it's implemented as:
 return syslogServerHostnameReference.get().getHostName();

I'm not sure if the correct behavior would be to catch that exception and return null in that method, or in toString; either way, NPEs when toStringing a fresh object is probably a bug. If we can reach consensus on the fix, I'd be happy to contribute it.

Thanks @lvh , syslog-java-client:1.0.8 has been released, it should soon be available on Maven Central.

Whoa, that's a pretty amazing response time. Thank you!!!

On Wed, Jan 13, 2016 at 4:06 PM, lvh<EMAIL_ADDRESS>wrote:

Whoa, that's a pretty amazing response time. Thank you!!!
—
Reply to this email directly or view it on GitHub
https://github.com/CloudBees-community/syslog-java-client/issues/10#issuecomment-171322827
.

--
Cyrille Le Clerc
email & gtalk<EMAIL_ADDRESS>/ mob: +33-<IP_ADDRESS>.86 / skype:
cyrille.leclerc
CloudBees, Inc
www.cloudbees.com


Adding flops and input img size to leaderboard

I think this will be nice addition.

The image size is passed as a parameter already, and can be found by hovering over the gear icon. For now it would be a column of 640, so it wouldn't be very useful.
I agree with the FLOPS, as it would show computational complexity of the model and may differ from model size.
Is there a way to estimate FLOPS dynamically? If not, this is something to be added to MODEL_DICT in each run.py file. In some cases MODEL_IDS would needs to be refactored to MODEL_DICT.

The image size is passed as a parameter already, and can be found by hovering over the gear icon. For now it would be a column of 640, so it wouldn't be very useful.
I agree with the FLOPS, as it would show computational complexity of the model and may differ from model size.
Is there a way to estimate FLOPS dynamically? If not, this is something to be added to MODEL_DICT in each run.py file. In some cases MODEL_IDS would needs to be refactored to MODEL_DICT.
Is that something you'd like to help us with, @kostum123?

Sadly, I don't have the compute resources to measure and update it for all models.


Search for 'Spellcheck' first leads to 'Language Packs' (German/Deutsch: Suche nach 'Rechtschreibung' führt zuerst zu 'Sprachpaket')

Dear Thunderbird-Team,
if a german-speaking user, using the German localization of Thunderbird already(!), wants to activate the spellchecker in Thunderbird, he can do that in menu Extras/Einstellungen/Verfassen/Rechtschreibung, see screenshot 1.
There is a link "Weitere Wörterbücher herunterladen" (meaning: "download more dictionaries").
Klicking on this link, the first option in the new window is: "In Ihrer Sprache verfügbar: German - Deutsch - Sprachpaket herunterladen" (meaning: "download language pack") - see screenshot 2.
That is confusing, as you can read in many users' comments (see screenshot 3). Only if he scrolls down underneath "Alle Sprachen" (All Languages), he will be able to find the needed spell check dictionary.
Of course I noticed the explaining text above - but I guess not everyone reads it. The default user expects after klicking on "dictionary" to find dictionaries, and nothing else.
Even more: the title of the page is "Wörterbücher & Sprachpakete" (dictionaries and language packs) - and not the other way round, i.e. "language packs" first and then, second, "dictionaries".
My suggestions:

change the linked AddOns-Website to show dictionaries as the uppermost option, or:
change the linked AddOns-Website to show only dictionaries. (That might require to put another link in Thunderbird code for language packs, I don't know that)

Thank you for all your efforts!
Dietmar
Screenshot 1:  Thunderbird options

Screenshot 2: AddOns Page

Screenshot 3: confused users' comments on AddOns Page

For most languages, the first line on the page contains a dictionary under "Wörterbüch" in addition to a language pack, see English: https://addons.thunderbird.net/en-US/thunderbird/language-tools/
But because there are multiple variations of German, there was no actual dictionary for "de", only "de-DE", etc. The easiest way to solve this is to move this one to being the default for "de". There are still the other variations below for those who want them.
I agree this UI isn't great, but making significant modifications to ATN UI is not going to happen anytime soon. Long term we will be rebuilding at least the public facing parts of the site UI and things like this could be improved.


State reducer getting called 6 times for MockableMavericks

My team recently discovered that using MockableMavericks.initialize() causes the state reducer to get called six times in debug mode, as opposed to the regular debug behavior of Mavericks.initialize() which calls all state reducers twice.
Is this a bug or intended behavior?

this is intended

it gets called double for the debug checks, plus each of the state stores internally have the state reducer set on them to enable switching between state store types (synchronous vs asynchronous, etc)
Given reducers should be pure it should not create a behavior difference

Gotcha, makes sense. We have a couple instances where we use if(it is Success) inside of the execute to trigger certain functions once, but I think we need to move away from that.
For asyncSubscribe is there a way to trigger certain actions only once, similar to the asyncSubscribe in the fragment that can use uniqueOnly?

Makes sense, thanks. Closing this out.


GitHub API Authorizations endpoint deprecated

When I recently released from an account with two factor auth I got a deprecation notice. It worked fine, but seems as though it won't work starting 2020?

You or an application you used recently accessed the deprecated Authorizations endpoint on the GitHub API with the useragent gh-release.
We will remove the Authorizations API endpoint on November 13, 2020. If you accessed the API via password authentication, then we recommend you use the web flow to authenticate. Please check that your app uses the web flow for authentication: https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow
You can learn more about these changes by visiting our developer blog:
https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/

yay

This is very confusing, is web application flow even possible from the command line?

Woo change for changes sake.  My favorite.
Yeah web flows are possible in CLI.  From memory, you show/open a url to the user, they open it in a browser, log in and click authorize, while the CLI polls in in the background at some token URL. When the flow in the browser completes, the CLI gets a token.

Going to take a look at this.

Draft PR: https://github.com/hypermodules/gh-release/pull/93
Not quite fixed yet, but baselined all the deps.


SpaceVaryingInput

Purpose
Adds a "SpaceVaryingInput" function which has the following methods

2D - returns a regridded field
1D - returns a regridded field
1D - returns a field of structs with the regridded values
analytic. Takes in a function of (coords) and can return whatever you like

Future extensions could be for depth resolved global data (3D), or to extend the struct case to the 2D case if needed
For the struct case, this is because: some parameters get packaged into a struct which we then dispatch on. For example, the soil retention model (vanGenuchten, BrooksCorey). Each has a few parameters which will spatially vary. If we have a field of structs, we can still use dispatch +broadcasting. Im not sure if this is also needed for the BucketModel and for the Canopy Model subparameterizations. If it is very niche, we can put these methods in the Soil module. This may also lead to performance issues as per @Sbozzolo
The goal is to unify the way we handle parameters for spatially varying parameters regardless of the simulation domain.  Note that non-spatially varying parameters are scalars and do not use the SpaceVaryingInput function.
To-do

Write more tests?
see discussion point below

Content

add SpaceVaryingInputs module
defined linear interpolation function, moved to general_utilities. Now Space and Time VaryingInputs share this. Slightly modified to account for edge case (double check if needed)
generalize Richards and EnergyHydrology parameters struct to allow for FT or Fields as arguments
BucketAlbedoStatic and Function use SpaceVaryingInput under the hood now.
1D case is in the layered soil tutorial experiment
update soil boundary condition functions to use some helper functions (extract the top or bottom level of a center field, put onto the corresponding 2D face field).
extract the top or bottom level ^^ as described above for the parameters if they are fields vs scalars. Discussion: if they are passed into the constructor as scalars, should we create a field of constant value? then we would not need this if statement (or method).

Note that many files have changed for two reasons which are seemingly unrelated to this PR:

RichardsParameters{FT, typeof(hcm)}() -> RichardsParameters(). Before we had scalars (FT) and a scalar struct (hcm). Now we can support scalars or fields. we could do typeof(field_parameter), typeof(hcm), but Im not sure what we are gaining from this, so I ended up just removing it. We may want to do the same for other parameter structs. For EnergyHydrology, I kept the {FT}, since there are some default global scalar parameters in that struct. in the long term, I think this will need to update too. But im a little unsure on all of this.
I had to add in a parametric type to vanGenuchten{FT}'s inner constructor. Im not sure, but without it, the SpaceVaryingInput call in the 1D case does not have an inferrable eltype.

Future PRs

simplify BulkAlbedoFunction and BulkAlbedoStatic to be PrescribedBaregroundAlbedo, and we can compute the bareground albedo in the driver using the "SpaceVaryingInput" function.
test 1D depth varying input with energy hydrology model - update parametric type in that model's parameter struct too
set up global soil run using mask + soil parameters from a file, add in 3D case
propagate to canopy..

[ ] I have read and checked the items on the review checklist.

for the GPU test, I need to use CuArrays, I think. will fix.


Comment-based help for Get-, Set-, Test-method in mof resources

I need some guidance for a discussion that @randomnote1 and I had over at https://github.com/PowerShell/xSQLServer/issues/425.
Currently (in xSQLServer at least) we document parameter descriptions in three places; schema.mof file, comment-based help, and the README.md. The same parameter description in all three places.
If we use the document helper, we don't have to document in the README.md. Because those will be built automatically from the schema.mof.
But when we add that functionality we still have to document the same description in the comment-based help in the .psm1 file as well as in the schema.mof file. We do that because there is a style guideline saying we should. But that seems redundant.
https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#functions-have-comment-based-help
Do we need the comment-based help for the Get-, Set- and Test-methods, if so, why do we need them? :)

related: https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/11088453-inline-help-for-dsc-resource-properties

IMO - we shouldn't need comment based help. With the ability to auto-gen the documentation using our existing modules the schema should be our source of truth. To me the comment based help doesn't get us much.

I'd +1 that!

I agree with @tysonjhayes and @PlagueHO - the documentation generation gives us a wiki for github as well as the PowerShell based helped through "Get-Help about_[resourcename]" so I don't think we need comment based help at all.

@zjalexander Apparently there is no comment-based help in class based resources yet. https://github.com/PowerShell/PowerShell/issues/2225

@kwirkykat and @mbreakey3 what do you say? :) You two are the deciding vote :wink:

Awwwww. I love the comment-based help 😿
I do agree it's annoying to have to copy descriptions everywhere, but I am wary to just remove the comment-based help since there are some valuable dev notes that we put in the help comments that don't go into the README. Like knowing if a parameter is included in say Test-TargetResource but isn't used in that function.
Plus the parameters often act differently between the Get/Set/Test functions and I use the help comments to document some of those differences. Like the Validate parameter in xArchive/Archive as an example: https://github.com/PowerShell/xPSDesiredStateConfiguration/blob/dev/DSCResources/MSFT_xArchive/MSFT_xArchive.psm1#L201
Also with the help comments in the code you don't need to have internet connection or have to find the module's README in order to understand how to use the resource or edit the code. It's all right there above the function.
Maybe I'm just too attached to my pretty help comments...
@mbreakey3 What do you think?

I agree with @kwirkykat on this one. While it is somewhat of a pain to have them copied in multiple places, I do find the help comments more helpful than not.

@kwirkykat @mbreakey3 It might be us that is not using the comment-based help as much as you guys do. Maybe the problem is that we should use it more. Right now 99% of the times it is just the same description as in the README.md (in xSQLServer at least).
But more thoughts...
In the DSC resources how a parameter should be used is put into the README.md (and copied to schema and comment-based help). If we instead added the description to the README.md (if not using "Auto-Documentation") and to the schema.mof. Then let the comment-based help just contain information about things that a coder would appreciate.
That would mean that adding all parameters to the comment-based help would be optional. But a requirement to add the parameter to the comment-based help if another guideline says you need to document something, like if a parameter is not used in a method. But at least we don't need to copy the same parameter description to the comment-based help.
When I code, for xSQLServer, or a user of a resource, if I need to know how a parameter is expected to work then I look at the README.md. I do not look at the comment-based help. The README is the original, because that is what the user reads.
Comment-based help should be mandatory for all helper functions though.
@mbreakey3 @kwirkykat you guys have veto 😄 We follow. 😉

Closing since I think we came to the consensus to keep the comment-based help, also as per style guidelines.


Start to document the installation

I agree on app. I've checked, and it's not on PyPI.  I've made the necessary changes.


when i submit, its not taking me to the next challenge

Challenge Create a Set of Checkboxes has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">

CatPhotoApp

Click here for cat photos.

Things cats love:

cat nip

laser pointers

lasagna

Top 3 things cats hate:

flea treatment

thunder

other cats

<form action="/submit-cat-photo">
  <input type="checkbox" name="personality"> 1
  <input type="checkbox" name="personality"> 2
  <input type="checkbox" name="personality"> 3
  <input type="radio" name="indoor-outdoor"> Indoor
  <input type="radio" name="indoor-outdoor"> Outdoor
  <input type="text" placeholder="cat photo URL" required>
  <button type="submit">Submit</button>
</form>

This works for me, I submit the challenge and see the modal to go to the next challenge.
Can you confirm with a screenshot? Also it would be great if you can see anyone else is facing the same issue in the chat room as well.
P.S : Please go through Help I have found a bug

Check to make sure all challenges have been completed. Also sometimes there is a sizing issue for your web browser (e.g you have it zoomed in or out, also if you have a reduced size of web browser) mess about with that and see if it works

I don't work to do this

DON'T WON'T TO DO THIS

Bye

Hello

Suck

My bad

Stop


added/dropped data into the db bagIt2_DB in MySQL

resolves #6

tested. had to push to start circle ci.


Add deps for the tics tox target

Adding the required dependencies for the tics action to work

@samuelallan72 Ah, I started looking at the PRs mentioned in https://github.com/canonical/solutions-engineering-automation/pull/129 from the bottom and merged them. And only after that, saw your comment here


WIP: Fetchable assets - i.e. make this library work out a CDN

A discussion here;
https://github.com/SAP/ui5-webcomponents/discussions/9487
The change looks like it'll be released as part of the 2.2.x series. I upgraded package.json and replaced the imports, and as far as I could tell, the demo still worked.
However, the console had plenty of errors. I need to try and figure out whether that's related to this change or not. Definitely don't merge right now :-).

I royally stuffed this up. I'll put up another one in due course,...


How can I use quetz with docker-compose

Hi, I didn't found any documentation about how to use the docker-compose.yml that is found in repository.
Thanks for help

Hi, same problem and the docker compose with this project doesn't work.
Thanks .


update ihaskell jupyterlab extension and align directory name

PR that brings the ihaskell jupyterlab extension up to date with https://www.npmjs.com/package/jupyterlab-ihaskell .

it renames the directory
it aligns the extension name with the one used on npmjs

Thank you!


[W5.11][T15-A3] Kaiser Tan

Added a new command of sorting the list of contacts in reverse alphabetical order.

Hi Kaiser, do note that you need to submit 1 more feature to get full credit for the 2kLoc submission, as you did not complete the 1kLoc enhancement.

@Esilocke Hi Kelvin, I believe I have shown evidence for my 1kLoc code to the other TA already on week 3. It was my nus orbital project.

With documentation + testing?

@Esilocke I had the documentation, however the testing was mainly manual, so didnt manage to demonstrate it.

@kaisertanqr Alright noted! You can ignore the second submission then!


Non-static method Tymon\JWTAuth\JWTAuth

message":"Non-static method Tymon\JWTAuth\JWTAuth::parseToken() should not be called statically, assuming $this from incompatible context","status_code":500
I'm getting this when I pass over the token do you know any way to resolve it?

Can you give us more context about the error? It also seems something related to the auth package, not the boilerplate itself.

I actually found the answer to this here: https://github.com/tymondesigns/jwt-auth/issues/104
The JWT-AUTH full path caused the error in a controller I was using.  I saw a couple of people who asked about this in the comments of your tutorial, so I'll explain it here:
I created a new controller and put: use Tymon\JWTAuth\JWTAuth;
This caused the error indicated in the subject line.
I changed it to this: use JWTAuth;
And it worked.

please instead config\jwt..php :  'jwt' => 'Tymon\JWTAuth\Providers\JWT\NamshiAdapter', as  'jwt' => Tymon\JWTAuth\Providers\JWT\Namshi::class  , 'auth' => 'Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter' as  'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class , 'storage' => 'Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter' as  'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class


Crouton not working.

Please paste the output of the following command here: sudo edit-chroot -all
name: scotty
encrypted: no
Entering /mnt/stateful_partition/crouton/chroots/scotty...
crouton: version 1-20160902144033~master:9f8e9a22
release: stretch
architecture: armhf
xmethod: xorg
targets: xfce,x11
host: version 8350.68.0 (Official Build) stable-channel nyan_big
kernel: Linux localhost 3.10.18 #1 SMP Tue Aug 2 21:26:16 PDT 2016 armv7l GNU/Linux
freon: no
Unmounting /mnt/stateful_partition/crouton/chroots/scotty...

#### Please describe your issue:

Can not run sudo startxfce4 as a normal user.

#### If known, describe the steps to reproduce the issue:

Installed with:

sudo sh ~/Downloads/crouton -n scotty -r stretch -t x11
Already done the add netsurf. then installed xfce:
sudo sh ~/Downloads/crouton -n scotty -r stretch -t xfce -u

so when I try and run "sudo startxfce4" from the shell, I get:

Entering /mnt/stateful_partition/crouton/chroots/scotty...
/usr/bin/startxfce4: Starting X server

X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.16.0-4-armmp-lpae armv7l Debian
Current Operating System: Linux localhost 3.10.18 #1 SMP Tue Aug 2 21:26:16 PDT 2016 armv7l
Kernel command line: cros_secure console= loglevel=7 init=/sbin/init cros_secure oops=panic panic=-1 root=PARTUUID=55760093-0e90-484a-a064-40726354a825/PARTNROFF=1 rootwait rw dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=0 dm="1 vroot none ro 1,0 2506752 verity payload=ROOT_DEV hashtree=HASH_DEV hashstart=2506752 alg=sha1 root_hexdigest=2ab4c21ff344dabc8ec0163f7b0c5574e7f8b7e1 salt=5e811e9aca74fe76440955a2a8a9b15a6f497debd357eedfac918b74d5a802b8" noinitrd vt.global_cursor_default=0 kern_guid=55760093-0e90-484a-a064-40726354a825
Build Date: 20 July 2016  05:16:11AM
xorg-server 2:1.18.4-1 (http://www.debian.org/support)
Current version of pixman: 0.33.6
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/chunkyz/.local/share/xorg/Xorg.1.log", Time: Thu Sep 22 16:28:23 2016
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 3 (Permission denied)
(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/home/chunkyz/.local/share/xorg/Xorg.1.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.

Before that ^ error. I got /dev/tty0 permision denied so I added my username to the tty group:

sudo -i
gpasswd -a chunkyz tty

help?????

PS: I have an Acer Chromebook 13 CB5 311.

PSS: If I enter the chroot with:

sudo enter-chroot -n scotty

I can sudo startx and it loads XFCE.

for anyone else on the Acer Chromebook 13 CB5 311. Try this, worked fine for me...
Hi again.
Seems that my case is connected to my NVIDIA card and this bug:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1525735
The following solved my problem:
sudo apt install xserver-xorg-legacy
In /etc/X11/Xwrapper.config I replaced
allowed_users=console
with
allowed_users=anybody
https://bugs.launchpad.net/ubuntu/+source/xinit/+bug/1562219
Now I have it working. :)